Compare commits

..

495 Commits

Author SHA1 Message Date
Bryan Petty
32e9664653 This commit was manufactured by cvs2svn to create tag 'WX_2_2_8'.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/tags/WX_2_2_8@12118 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2001-10-20 21:37:27 +00:00
Vadim Zeitlin
dc3d889d0b 1. some (benign) warnings fixed
2. make dist/install fixes for wxBase


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6884 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-20 18:41:55 +00:00
Vadim Zeitlin
b18cfdd9bd wxThread::Kill() doesn't call OnExit() incorrectly
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6883 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-20 17:39:18 +00:00
Julian Smart
f8f3e76318 Had to #ifdef out wxGetFullHostName for Cygwin b20
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6882 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-20 16:52:43 +00:00
Julian Smart
f47cd02d71 Win16 BC++ makefile fixes, other v. small fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6881 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-20 16:32:55 +00:00
Julian Smart
05edc41991 SetBrushOrgExt broke WIN16 compilation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6880 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-20 15:48:54 +00:00
David Webster
6aa929e784 gsocket update. Fix for EMX broke VA.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6879 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-20 14:47:47 +00:00
Vadim Zeitlin
8916026b7e always link with libm
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6878 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-20 13:46:14 +00:00
Julian Smart
0a0352f2f8 Docview mended (grrr) and OGL studio partially working under wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6877 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-20 13:41:16 +00:00
Guillermo Rodriguez Garcia
26993c4f64 Added extern "C" around winsock and moved it before "wx/msw/private.h"
to make it work with mingw (2.95 is buggy)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6876 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-20 13:00:27 +00:00
Guillermo Rodriguez Garcia
062a3faae7 Patch to add extern "C" to winsock.h in gcc2.95
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6875 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-20 12:57:26 +00:00
Julian Smart
09fb214e01 Added joytest Makefile.in
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6874 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-20 10:54:26 +00:00
Julian Smart
34cb2199dc Fixed wrong cursor problem in wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6873 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-20 10:53:48 +00:00
Julian Smart
cca602accb Fixed problem with CaptureMouse if cursor is null.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6872 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-20 10:53:04 +00:00
David Webster
dae167759c OS/2 Updates
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6871 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-20 00:31:11 +00:00
David Webster
8c5907cea3 OS/2 Updates
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6870 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-20 00:20:29 +00:00
Guillermo Rodriguez Garcia
c2c436609d A duplicate case label broken mingw compilation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6869 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-19 23:43:38 +00:00
Guillermo Rodriguez Garcia
dbf75be725 Added a Motif-only extra call to UpdateInfoText() just after frame creation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6868 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-19 23:19:52 +00:00
Ron Lee
ceded8b925 fixed broken test for wxUSE_JOYSTICK in configure.
added joytest sample to samples_dist and samples/configure.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6867 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-19 23:04:18 +00:00
Julian Smart
281b0186b8 Misc small changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6866 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-19 19:55:13 +00:00
Robert Roebling
1f3c610d03 The Return of WM Size Hints Part IV.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6865 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-19 19:51:08 +00:00
Vadim Zeitlin
a20b6d3ab3 zlib objects linked together with wxBase
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6864 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-19 18:51:40 +00:00
Vadim Zeitlin
7ff26ec2ae wxFTP::Close() shouldn't hide base wxSocket function
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6863 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-19 18:46:55 +00:00
Robin Dunn
bae411099c Allows wxStatusBar95 to send common events like other windows
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6862 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-19 17:21:28 +00:00
Vadim Zeitlin
bd3277fec0 1. corrected HAVE_PW_GECOS detection in configure (which never worked)
2. added and documented wxGetFreeMemory() for Unix (Linux/Solaris only)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6861 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-19 16:45:43 +00:00
Robert Roebling
15909a16b3 Funny resize behaviour fix.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6860 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-19 16:23:09 +00:00
Václav Slavík
3d6f72618e fixed KeySym handling ((keysym & 0xF000) != 0 instead of keysym < 0xFF to determine printable characters
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6859 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-19 15:28:45 +00:00
Julian Smart
9c6751aa46 Small mods to distrib files
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6858 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-19 15:24:27 +00:00
Julian Smart
7fee680be8 Some VC++ makefile fixes; minor comment mods to setup0.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6857 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-19 14:47:13 +00:00
Ron Lee
8e792b5432 added missing object file for vidxanm to unix makefile
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6856 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-19 14:43:52 +00:00
Stefan Neis
3720ab6a98 Added info about versions for XFree86/OS2.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6855 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-19 14:34:23 +00:00
Vadim Zeitlin
2633045c32 some old Danish translations
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6854 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-19 14:18:16 +00:00
Vadim Zeitlin
c837a756e8 OS/2 info added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6853 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-19 13:59:52 +00:00
Vadim Zeitlin
a5ea1d7cc8 compilation fix for anything different from VC++
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6852 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-19 13:52:50 +00:00
Ron Lee
08c921042e added missing object files for oss & esd to unix makefile
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6851 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-19 13:51:13 +00:00
Vadim Zeitlin
e9f88d0414 some more (apparently harmless) changes from Klass Holwerda
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6850 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-19 13:27:52 +00:00
Vadim Zeitlin
af7451accc translator for Swedish added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6849 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-19 13:20:06 +00:00
Vadim Zeitlin
f7aa71fa81 some more explanations about thread exiting/killing/deleting
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6848 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-19 13:10:02 +00:00
Stefan Neis
444cb676b2 Chnaged includes to work without precompiled headers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6847 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-19 12:57:08 +00:00
Vadim Zeitlin
6e58645e86 apparent gcc bug workaround
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6846 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-19 12:36:04 +00:00
Robert Roebling
d06b34a73e Highly experimental, unstable code (for determining the
encoding of the default GUI font). #ifdeffed.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6845 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-19 10:31:26 +00:00
Robert Roebling
aaef15bf82 Small speed-up.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6844 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-19 09:08:09 +00:00
Ron Lee
3711412e38 repaired some of the more obvious horrors in the contrib (configure) Makefiles
reworked makelib.env so that it now can create shared libs and has (un)install
targets.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6843 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-19 04:09:08 +00:00
Robin Dunn
ede8795ff0 wxUSE_DYNAMIC_CLASSES was left out.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6842 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-19 03:41:25 +00:00
Unknown (NI)
e8741ccae8 fixed wxListMainWindow::HitTest
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6841 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-19 02:10:09 +00:00
Vadim Zeitlin
feea7c52e9 don't compile docvwmdi sample if !wxUSE_MDI_ARCHITECTURE
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6840 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-19 00:57:10 +00:00
Vadim Zeitlin
3b415ba4cd 1. fixed crash in wxDateTime::ParseDate
2. some DLL compilation fixes
3. wxHandleFatalExceptions() implemented for MSW and documented
4. some attempts to make setup0.h a bit nicer


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6839 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-19 00:56:22 +00:00
Stefan Neis
b59c98ddb8 Added includes needed if not using precompiled headers.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6838 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-18 23:42:28 +00:00
Stefan Neis
999e841c9e Removed redundant member variable.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6837 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-18 23:24:51 +00:00
Stefan Neis
7a85f3f97c Don't try to use Tooltips, if they are not available.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6836 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-18 23:12:01 +00:00
Stefan Neis
6040c9de74 No precompiled headers for gcc, even if compiling WXPM.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6835 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-18 22:50:07 +00:00
Stefan Neis
468e327aac Added a couple of fixes.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6834 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-18 22:28:28 +00:00
Vadim Zeitlin
eb4efbdc86 some files for wxHandleFatalException() I previously forgot to commit
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6833 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-18 22:25:22 +00:00
Václav Slavík
08abd69b58 changed titlebar text colour from white to fg[GTK_STATE_SELECTED]
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6832 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-18 21:46:18 +00:00
Ron Lee
c56371028f These two makefiles were *horrid* abominations.
In fact they still are.  But at least now they have
some _chance_ of actually working..


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6831 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-18 21:15:16 +00:00
Ron Lee
99ad02720b made makefile more robust
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6830 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-18 20:22:18 +00:00
Robert Roebling
1bd59dddc3 wxAccel fix.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6829 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-18 20:18:00 +00:00
Julian Smart
fac2666314 Added def files for making OpenGL DLLs (Mingw32); added comment to wxHTML format
doc; added OpenGL libs to makeg95.env


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6828 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-18 20:11:10 +00:00
Robert Roebling
7c1122c4eb I don't think the last person to edit splitter.cpp did
actually run the sample afterwards. I did.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6827 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-18 18:47:00 +00:00
Stefan Neis
2b33b72819 Added conversion of menu labels (&->~)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6826 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-18 17:39:14 +00:00
Guillermo Rodriguez Garcia
90cfeaab3f Had to #ifdef out all the new wxGetFullHostName code as it breaks all
the samples and apps _at least_ under mingw (and I think it will also
cause other problems). Sorry, will have to wait for 2.1.14 to be released
before this can be properly fixed.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6825 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-18 16:48:02 +00:00
Julian Smart
2d027cfa88 Removed the wonderfully malicious WS_CLIPSIBLINGS style.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6824 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-18 15:50:40 +00:00
Julian Smart
d50af7148c Corrected my correction.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6823 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-18 14:12:11 +00:00
Julian Smart
2c68bdb64e Moved position of WXDLLEXPORT keyword
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6822 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-18 13:24:58 +00:00
Julian Smart
541418efad Corrected WXDLLEXPORT keyword position.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6821 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-18 13:19:54 +00:00
Julian Smart
741f371c68 Restored sane way of using BC++ linker
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6820 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-18 09:34:56 +00:00
Julian Smart
6787e41e49 Added stub for wxHandleFatalExceptions. But where's the implementation?
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6819 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-18 09:26:44 +00:00
Julian Smart
528e0faf1c Doc tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6818 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-18 09:20:21 +00:00
Robin Dunn
ee284519e4 When making the DLL with glcanvas then you have to link the dll with
the gl libraries.  Added a flag to let the makefile do that.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6817 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-18 08:33:15 +00:00
Robin Dunn
bd53731ec3 When making the DLL with glcanvas then you have to link the dll with
the gl libraries.  Added a flag to let the makefile do that.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6816 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-18 08:15:25 +00:00
Robin Dunn
4107335720 new swig generated code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6815 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-18 07:57:59 +00:00
Robin Dunn
de9d9ed211 changes for wxDash
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6814 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-18 07:57:15 +00:00
Vadim Zeitlin
89e6035748 more tests: OS/user info functions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6813 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-17 23:02:38 +00:00
Vadim Zeitlin
2e8a1588f8 compilation fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6812 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-17 23:02:03 +00:00
Stefan Neis
c092213d52 Added include of module.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6811 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-17 23:01:33 +00:00
Vadim Zeitlin
1f0500b3ee 1. wxGetFullHostName() does return the full host name now under MSW
2. wxGetEmailAddress() doesn't always return empty string...
3. status bar created under MSW is of type wxStatusBar, hence wxWin RTTI
   works for it
4. carsh in IPC sample fixed


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6810 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-17 23:00:10 +00:00
Robin Dunn
8759d4d519 fixes for drop source and for capturing the mouse
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6809 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-17 19:30:19 +00:00
Robin Dunn
aa9fb2be6d Some wxPython doc changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6808 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-17 18:59:26 +00:00
Robin Dunn
6a6d5b4731 fixing the STC sample makefile to find the include directory
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6807 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-17 18:49:18 +00:00
Vadim Zeitlin
a7987cc1a2 fix in fontspec parsing
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6806 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-17 18:29:58 +00:00
Vadim Zeitlin
b2b3552407 HTTP_PROXY bug (freeze on program startup) should be fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6805 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-17 18:18:58 +00:00
Robin Dunn
fb04b3438d wxFont remembers facename of actual font used
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6804 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-17 18:16:08 +00:00
Julian Smart
b2cf617cb8 Some doc fixes; BC++, Watcom C++, Mingw32 fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6803 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-17 17:59:56 +00:00
Vadim Zeitlin
a37a5a73c5 wxHandleFatalExceptions() added, documented
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6802 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-17 16:55:34 +00:00
Stefan Neis
3bfbab1e83 Added missing IMPLEMENT_DYNAMIC_CLASS
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6801 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-17 16:41:12 +00:00
Robert Roebling
5d9fe0892b Small makefile change.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6800 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-17 15:42:54 +00:00
Vadim Zeitlin
7d9fd00474 skip status bars in wxWindow::Fit
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6799 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-17 15:30:55 +00:00
Guillermo Rodriguez Garcia
e5b502f3a6 Fixed bug for late events arriving after connections had been destroyed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6798 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-17 15:09:18 +00:00
Vadim Zeitlin
bc1dcfc1aa warnings from FreeBSD compilation log removed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6797 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-17 14:08:54 +00:00
Julian Smart
f4bfe7e0c1 Removed an include from windres flags since it can't cope with a long command line
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6796 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-17 14:05:16 +00:00
Vadim Zeitlin
a18db02249 oops, compilation error - fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6795 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-17 13:59:54 +00:00
Vadim Zeitlin
2d8a5cb1da wxSTIPPLE_MASK_OPAQUE implementation from Klaas Holwerda
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6794 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-17 13:58:17 +00:00
Bart A.M. Jourquin
7ef53f2dc5 fix for textctrl height
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6793 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-17 13:39:45 +00:00
Bart A.M. Jourquin
5a074a3c22 *** empty log message ***
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6792 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-17 13:31:51 +00:00
Bart A.M. Jourquin
780ee02d16 default font for dialog
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6791 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-17 13:12:10 +00:00
Stefan Neis
1c85008fcf Added #pragma implementation for gcc.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6790 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-17 12:47:10 +00:00
Stefan Neis
a78e08d6cb bool-> int, gcc doesn't like bool in _C_ code.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6789 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-17 12:46:29 +00:00
Stefan Neis
27f37ae504 bool->int, since gcc doesn't like bool in _C_ code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6788 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-17 12:45:29 +00:00
Julian Smart
f6a3517155 Added back gnuwin32 include
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6787 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-17 12:01:00 +00:00
George Tasker
ec974d2300 RCS left a turd in the previous checkin
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6786 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-17 11:18:46 +00:00
George Tasker
2750885629 Fixed compilation in release mode
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6785 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-17 11:15:57 +00:00
Julian Smart
6158481fe5 Added some makefiles, more BC++/win16 fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6784 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-17 10:08:07 +00:00
Julian Smart
9c824f2977 Doc updates; new grid disabled for BC++/WIN16 (too much global data)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6783 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-17 09:19:37 +00:00
Mark Johnson
595b5c4eb6 db.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6782 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-17 08:44:44 +00:00
Mark Johnson
e2f1cfb2cc browsedb.cpp browsedb.h doc.cpp doc.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6781 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-17 08:43:57 +00:00
Unknown (MT)
6fb8177afd added WS_CLIPSIBLINGS
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6780 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-17 08:10:09 +00:00
Unknown (MT)
d3f5d09d47 no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6779 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-17 08:07:00 +00:00
David Webster
c3cea74805 more framework fixes for menu displays
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6778 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-16 23:24:38 +00:00
Guillermo Rodriguez Garcia
cc534ff767 Removed bool params and retvalues in GSocket interface to avoid mismatch
between C-compiled bools in gsocket and C++ real bools as passed by wxSocket


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6777 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-16 21:57:21 +00:00
Guillermo Rodriguez Garcia
5c9eff3055 Removed bool params and retvalues in GSocket interface to avoid mismatch
between C-compiled bools in gsocket and C++ real bools as passed by wxSocket


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6776 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-16 21:57:20 +00:00
Guillermo Rodriguez Garcia
032d558182 Fixed a problem in GAddress related to CHECK_ADDRESS macro
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6775 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-16 20:46:52 +00:00
Robert Roebling
80629c8bf6 Next take at getting mini-frames even with Life! to work...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6774 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-16 20:41:27 +00:00
Guillermo Rodriguez Garcia
609c60af5e More debug code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6773 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-16 20:09:08 +00:00
Robert Roebling
8185521695 Fixed mini-frame problems.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6772 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-16 19:47:23 +00:00
George Tasker
69d042c37d Fixed a typo in wxDbConnectionsInUse()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6771 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-16 19:42:29 +00:00
Stefan Neis
039bec17f4 Readded #if wxUSE_UNICODE to ~wxApp.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6770 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-16 19:27:40 +00:00
George Tasker
3f755e2d96 Modified to use the newly defined names for functions/classes/structs defined to match the wxWindows conventions for naming (primarily prefacing these items with wx).
Fixed program so it would not crash when using FILE|EXIT
Fixed widget alignment issues


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6769 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-16 19:09:42 +00:00
George Tasker
df991b9dfb Modified to use the newly defined names for functions/classes/structs defined to match the wxWindows conventions for naming (primarily prefacing these items with wx).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6768 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-16 19:02:22 +00:00
George Tasker
fdc0367851 Cleaned up the API for class/structure/function names to follow the wxWindows conventions (mostly prefixing wx to all of them). Backward compatability is maintained by keeping the old names calling the new functions, or typedef-ing the old names to the new names. The old names can be totally disabled at the end of the file by changing the #if 1 block that surrounds the old names
Added a wxDbCreateDataSource() function, though it only works under MSW using VC6, because the API is not available with iODBC.  To use this, it requires linking in odbccp32.lib and #including odbcinst.h in db.h.  This function is disabled with #if 0 for now.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6767 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-16 19:00:24 +00:00
George Tasker
4a8fc2c8b3 Cleaned up the API for class/structure/function names to follow the wxWindows conventions (mostly prefixing wx to all of them). Backward compatability is maintained by keeping the old names calling the new functions, or typedef-ing the old names to the new names. The old names can be totally disabled at the end of the file by changing the #if 1 block that surrounds the old names
Added a param to GetWhereClause() so that now the LIKE operator can be applied to strings rather than EQUAL


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6766 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-16 19:00:07 +00:00
George Tasker
8128349e81 Cleaned up the API for class/structure/function names to follow the wxWindows conventions (mostly prefixing wx to all of them). Backward compatability is maintained by keeping the old names calling the new functions, or typedef-ing the old names to the new names. The old names can be totally disabled at the end of the file by changing the #if 1 block that surrounds the old names
Undid RRs last change, as it breaks backward compatabilty with using this class with 1.6x (GetData() is still a supported function, and is used in dozens of other places in this file, so it could not have broken compilation).
Added a param to GetWhereClause() so that now the LIKE operator can be applied to strings rather than EQUAL


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6765 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-16 18:59:40 +00:00
Vadim Zeitlin
ab0f03868e added test for bug #38
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6764 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-16 17:57:19 +00:00
Robin Dunn
4e0dcbb14a converted some args to return values
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6763 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-16 17:37:32 +00:00
Vadim Zeitlin
0d910be798 tooltip fix: compile-time test removed, comment explaining it added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6762 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-16 17:37:18 +00:00
Václav Slavík
23d38b36f8 added remark on hhp2cached
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6761 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-16 17:22:25 +00:00
Vadim Zeitlin
ccdb23df47 better TestSocketServer()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6760 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-16 16:47:45 +00:00
Vadim Zeitlin
9239628cfc bug fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6759 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-16 16:30:14 +00:00
Guillermo Rodriguez Garcia
8e3aec856b Only added \n to debug printfs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6758 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-16 16:00:19 +00:00
David Webster
13588544c5 compile bug fixed in SetCursor
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6757 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-16 15:53:49 +00:00
Guillermo Rodriguez Garcia
aac67d4c3d More debug code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6756 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-16 15:35:10 +00:00
Guillermo Rodriguez Garcia
29c25a8e01 MSW: Grouped all MSVC #pragma disable
Unix: Fixed GAddress_destroy leak as Vadim did for MSW


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6755 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-16 12:26:15 +00:00
Guillermo Rodriguez Garcia
0ca580f6fb Process pending events before deleting pending objects, and do it
regardless of the value of wxUSE_THREADS (wxPostEvents can be used
in single threaded apps). Changed: wxApp::OnIdle


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6754 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-16 12:05:01 +00:00
Jouk Jansen
967a572877 Committing in .
Modified Files:
 	wxWindows/docs/readme_vms.txt
 ----------------------------------------------------------------------


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6753 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-16 08:49:44 +00:00
Jouk Jansen
27df579a6f Committing in .
Patches for the wxGTK compilation on VMS

 Modified Files:
 	wxWindows/descrip.mms wxWindows/setup.h_vms
 	wxWindows/include/wx/gtk/app.h
 	wxWindows/samples/minimal/descrip.mms
 	wxWindows/src/generic/descrip.mms
 	wxWindows/src/generic/filedlgg.cpp wxWindows/src/gtk/app.cpp
 	wxWindows/src/gtk/descrip.mms wxWindows/src/gtk/listbox.cpp
 	wxWindows/src/gtk/utilsgtk.cpp wxWindows/src/gtk/win_gtk.c
 	wxWindows/src/gtk/window.cpp
 	wxWindows/src/gtk/wx_gtk_vmsjackets.c
 ----------------------------------------------------------------------


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6752 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-16 08:07:59 +00:00
Vadim Zeitlin
117082d17b 1. fixed memory leak in GAddress
2. fixed memory leak with wxLogStderr in wxBase
3. updated tmake files/makefiles for wxBase with wxSocket under MSW
4. fixed wxSashWindow cursor bug by allowing SetCursor(wxNullCursor)
5. fixed warning in gsock*.c


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6751 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-16 01:12:31 +00:00
Vadim Zeitlin
89fc5e5d66 removed test code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6750 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-16 01:05:20 +00:00
Vadim Zeitlin
9fc3cba7fa some fixes in TestSocketServer()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6749 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-16 01:04:50 +00:00
Vadim Zeitlin
8a9c22462a 1. fixed memory leak in GAddress
2. fixed memory leak with wxLogStderr in wxBase
3. updated tmake files/makefiles for wxBase with wxSocket under MSW
4. fixed wxSashWindow cursor bug by allowing SetCursor(wxNullCursor)
5. fixed warning in gsock*.c


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6748 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-16 01:03:52 +00:00
Robin Dunn
9eb662e94c dropTarget is now dynamically allocated.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6747 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-16 00:15:48 +00:00
Unknown (NI)
7e42f2f863 included missing header files - without them mingw32 compilation failed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6746 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-15 23:31:15 +00:00
David Webster
c0dbf1fb90 no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6745 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-15 23:27:47 +00:00
Stefan Neis
8138a3b0c6 Bugfix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6744 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-15 22:01:45 +00:00
Ron Lee
a99b3d76f2 removed TAB_TRAVERSAL style
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6743 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-15 20:51:43 +00:00
Julian Smart
d834f22c8e Some C++Builder fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6742 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-15 19:53:30 +00:00
Vadim Zeitlin
8dfea369ea wxSocketServer test added to console sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6741 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-15 19:19:44 +00:00
Julian Smart
669f7a111f Various compiler changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6740 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-15 18:52:23 +00:00
Vadim Zeitlin
2d8e9af9c9 test data file for console sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6739 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-15 17:16:56 +00:00
Vadim Zeitlin
8e907a13ea 1. wxFTP works (somehow)
2. wxSocket/GSocket wxBase support for Unix


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6738 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-15 17:16:35 +00:00
David Webster
76990f630b no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6737 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-15 16:39:36 +00:00
Ron Lee
e893cd66dc added some missing makefile.unx to samples_dist
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6736 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-15 16:16:53 +00:00
Ron Lee
39fc1a6a05 makefile changes for utils_dist
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6735 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-15 14:58:04 +00:00
Guillermo Rodriguez Garcia
5f3629babd Fixed _Read() when waitall was not set and there was data in the pushback buffer
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6734 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-15 14:35:33 +00:00
Guillermo Rodriguez Garcia
7b28543293 Fixed typo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6733 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-15 14:34:41 +00:00
Guillermo Rodriguez Garcia
f4d5e0098a Fixed a endianness stupidity in the sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6732 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-15 13:29:07 +00:00
Guillermo Rodriguez Garcia
52fbdb5892 Added a warning for unknown events
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6731 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-15 13:28:07 +00:00
Julian Smart
53adbc34a2 Changes to ProjGen for new sample filenames
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6730 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-15 12:11:38 +00:00
Guillermo Rodriguez Garcia
896e4cbf4d list.h was included twice
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6729 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-15 09:31:26 +00:00
Guillermo Rodriguez Garcia
2288191b9c Forgot to commit this one - changes for wxBase
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6728 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-15 09:03:40 +00:00
Bart A.M. Jourquin
032da43172 *** empty log message ***
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6727 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-15 08:49:20 +00:00
Bart A.M. Jourquin
3cfd2b707d removing ogl from utils
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6726 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-15 08:48:14 +00:00
Julian Smart
de8e98f133 Added missing includes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6725 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-15 08:41:00 +00:00
Vadim Zeitlin
bbd41262ca mingw32 compilation fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6724 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-15 08:09:17 +00:00
Vadim Zeitlin
9f303149a0 some fwd declarations added to the header
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6723 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-15 07:52:46 +00:00
Guillermo Rodriguez Garcia
ed2eb9afcb Some modifications and additions for full wxBase support -
not tested yet, but it should work OK as is or with little
changes.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6722 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-15 06:05:00 +00:00
Guillermo Rodriguez Garcia
bac6b9676c Fixed a bug in the latest 'micro optimization' - was skipping one
of each two events.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6721 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-15 03:30:40 +00:00
Guillermo Rodriguez Garcia
f6f13cd4a8 err.. not sure :-)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6720 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-15 02:14:54 +00:00
Julian Smart
627a3091c8 Possible fix for DestroyWindow message in MDI apps (call DestroyChildren in destructor)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6719 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-15 00:22:33 +00:00
Julian Smart
fa482912e4 Some doc proofreading
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6718 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-15 00:21:49 +00:00
Robert Roebling
8cb9f0d0f8 Fixed missing paint events when overriding DoMoveWindow()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6717 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 20:08:31 +00:00
Ron Lee
07a9af327e renamed treelay sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6716 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 19:55:34 +00:00
Ron Lee
11e2dfd37d renamed dragimag sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6715 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 19:47:10 +00:00
Ron Lee
c4f02b1fd8 renamed thread sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6714 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 19:35:40 +00:00
Ron Lee
6718d773ad renamed splitter sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6713 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 19:30:04 +00:00
Ron Lee
b2f757f9b7 renamed notebook sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6712 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 19:24:14 +00:00
Ron Lee
14057bf4dc renamed minifram sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6711 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 19:17:41 +00:00
Ron Lee
f30dcba95d renamed grid sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6710 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 19:09:12 +00:00
Ron Lee
8fef0a6eae renamed tab sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6709 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 18:58:22 +00:00
Ron Lee
13f5935c36 renamed wizard sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6708 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 18:50:24 +00:00
Vadim Zeitlin
68662769ff some micro optimisations in SearchEventTable
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6707 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 18:46:17 +00:00
Ron Lee
5301d93336 renamed treectrl sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6706 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 18:37:46 +00:00
Vadim Zeitlin
e72007907a call wxMenubarSetInvokingWindow for submenus appended during run-time
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6705 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 18:28:19 +00:00
Ron Lee
eeb75ae603 ...and extra proplist makefiles too
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6704 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 18:22:50 +00:00
Ron Lee
30b641919c renamed proplist sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6703 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 18:20:11 +00:00
Vadim Zeitlin
9ce2171eed portuguese translator added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6702 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 17:58:33 +00:00
Julian Smart
9ba09ba5e6 Removed some redundant files
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6701 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 17:53:11 +00:00
Robert Roebling
b4bee866f3 Corrected status bar redraw problems.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6700 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 17:20:42 +00:00
Vadim Zeitlin
8461a0598c removed -Icontrib from src/make.env, use APPEXTRADEFS for such things instead
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6699 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 17:09:45 +00:00
Vadim Zeitlin
aaa2f29761 fixed crash in OnChar() after m_key_current was deleted
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6698 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 16:51:43 +00:00
Vadim Zeitlin
624d1a4f31 fixed infinite recursion in TAB handling with panels inside panels
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6697 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 16:35:03 +00:00
Vadim Zeitlin
110b5d83a6 stc targets in the global makefiles
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6696 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 16:11:33 +00:00
Vadim Zeitlin
0f8df1b95c wxDropSource should have def ctor
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6695 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 16:01:06 +00:00
Vadim Zeitlin
e9b663934d makefiles for stc lib and sample for Unix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6694 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 16:00:24 +00:00
Julian Smart
5d525ad911 Doc edits; adding mmedia.rsp; added STC BC++ makefiles
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6693 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 15:18:20 +00:00
Vadim Zeitlin
e32ddbaae5 temp ugly hack around the bug under GTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6692 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 15:15:35 +00:00
Vadim Zeitlin
4e6bceff3b reverted all changes by Mark Johnson
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6691 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 15:10:15 +00:00
Vadim Zeitlin
8e97b17bbd 1. aapplied patch for bcc makefiles from Ricky Gonzales
2. regenerated makefiles with tmake


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6690 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 14:57:16 +00:00
Vadim Zeitlin
a1a4396142 some appearance fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6689 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 14:50:30 +00:00
Bart A.M. Jourquin
8ba3dcde1e better dialog for Motif
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6688 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 14:43:30 +00:00
Vadim Zeitlin
f6c881b448 compilation fir for !WX_PRECOMP
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6687 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 14:42:25 +00:00
Vadim Zeitlin
73fd4a6046 changed test -a into 2 tests
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6686 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 14:34:28 +00:00
David Webster
dafec3de59 Tiff library icc for VisualAge 4.0
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6685 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 14:07:33 +00:00
Ron Lee
367e57ec9b updated samples makefiles
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6684 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 14:06:41 +00:00
Robert Roebling
a8a0b892df Even more printfs in GSocket,
Copmile fix for splitter.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6683 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 13:53:34 +00:00
David Webster
ee453a161f Some changes to fix event processing
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6682 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 13:36:35 +00:00
Karsten Ballüder
0902e71a16 fixed arguments to "test"
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6681 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 12:33:37 +00:00
Julian Smart
9f15eeb32a Added/updated some BC++ makefiles
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6680 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 11:51:29 +00:00
Václav Slavík
0f3168aa5b Czech message catalog is now up to date
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6679 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 11:33:48 +00:00
Václav Slavík
997e13fca4 removed files that have nothing to do here (cz is alias for cs, .mo files for other languages are not here)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6678 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 11:33:22 +00:00
Julian Smart
c0bcc48068 Fixed crash-on-exit bug due to status bar being deleted twice (MDI apps);
small changes


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6677 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 11:25:54 +00:00
Guillermo Rodriguez Garcia
bc7e88ae03 Changed Socket() and SocketEvent() to Get... in the samples, also added
a few more comments and output messages for easier understanding of what's
going on inside wxSocket.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6676 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 09:56:38 +00:00
Guillermo Rodriguez Garcia
da051b23fe Changed declaration of functions taking an empty arglist (which means
no prototype in C, not (void) like in C++) to take (void) instead.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6675 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 09:32:27 +00:00
Julian Smart
09707570eb Added gsockmsw.c to VC++ project files
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6674 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 09:02:13 +00:00
Julian Smart
8c014dbafe Added prototypes to eliminate BC++ warnings
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6673 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 09:00:46 +00:00
Guillermo Rodriguez Garcia
1c282a3a62 Added new file: gsockmsw.c
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6672 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 04:44:32 +00:00
Guillermo Rodriguez Garcia
70988afbb1 Added gsockmsw which now contains all GUI-specific code for the MSW version
of gsocket - a step towards wxBase


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6671 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 04:43:58 +00:00
Guillermo Rodriguez Garcia
5ff8699684 src\unix\gsocket.c
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6670 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 04:41:34 +00:00
Unknown (MT)
ac6482e0eb remove HWND association when DestroyWindow
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6669 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 03:13:01 +00:00
Guillermo Rodriguez Garcia
711df835d3 Removed the PREEXTRALIBS hack - no longer needed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6668 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 01:05:54 +00:00
Guillermo Rodriguez Garcia
672186efa8 A few unimportant changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6667 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 01:00:08 +00:00
Vadim Zeitlin
8b8bff20d0 1. demo of status bar at the top in statbar
2. kbd accels added to splitter


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6666 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 00:47:03 +00:00
Vadim Zeitlin
43b5058d59 1. status bar can now be positioned on top (and anywhere, in fact)
2. status bar without wxST_SIZEGRIP style won't have the size grip (wow)
3. scrollbars don't get the cursor of the main window any more
4. introduced wxSetCursorEvent and use it in wxSplitterWindow


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6665 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 00:45:54 +00:00
Guillermo Rodriguez Garcia
e828e4f7f1 Added PREEXTRALIBS and .cxx rule
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6664 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 00:09:00 +00:00
Guillermo Rodriguez Garcia
d29e95a922 Added PREEXTRALIBS (ugh)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6663 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-14 00:08:41 +00:00
Guillermo Rodriguez Garcia
afc68427d8 new
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6662 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-13 23:41:18 +00:00
David Webster
8df85a6123 Some changes to fix event processing
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6661 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-13 23:29:44 +00:00
Stefan Neis
399b60a0ad Improved selection mode handling in wxGrid::SelectBlock
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6660 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-13 22:11:24 +00:00
Václav Slavík
add95ac378 replaced 'wxPCX/GIFHandler:' by 'PCX/GIF:' in error messages -- these are for users, should not reveal internals
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6659 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-13 17:22:49 +00:00
Vadim Zeitlin
58b3bdc933 added test for selection events
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6658 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-13 17:20:39 +00:00
Robin Dunn
c6e7d14fa9 Initialize the field count in Create(). It was using a garbage value
and causing havoc...


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6657 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-13 17:12:31 +00:00
Robert Roebling
2035e10e83 Found bug that skrewed up display wrt horizontal
scrolling of wxListCtrl. The selected area still
    seems wrong, though.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6656 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-13 16:45:26 +00:00
Vadim Zeitlin
5f170f33fd 1. some patches from Janos Vegh to docview template detection
2. fixed reentrancy bug in wxGetTranslation/wxLogError resulting in infinite
   number of messageboxes
3. wxMenuItem::GetLabelFromText("&Foo") now returns "Foo", not "&Foo" in GTK
   as well
4. test for update region being NULL in wxPaintDC


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6655 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-13 15:48:03 +00:00
Vadim Zeitlin
c9ce2da080 suppress gcc warning about non virtual dtor
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6654 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-13 15:31:15 +00:00
Robert Roebling
d5ab387d2a Typo GtkPizza,
More debug printf()s in GSocket_Write()
  Did I touch plot.cpp ?


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6653 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-13 15:21:40 +00:00
Ron Lee
236a9de39a moved wxDash typedef to gdicmn.h
added wxXXXDash, platform dependant types for all ports
made using native dialogs the default in msw/setup0.h


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6652 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-13 14:34:35 +00:00
Guillermo Rodriguez Garcia
dfd2e67583 Fixed a harmless warning about $d in sprintf and long argument
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6651 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-13 13:52:49 +00:00
Guillermo Rodriguez Garcia
8290d43d0d Use system default font for all platforms
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6650 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-13 13:00:26 +00:00
Stefan Neis
6fc0f38fe0 More compilation fixes.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6649 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-13 12:04:25 +00:00
Julian Smart
12646a5ae2 Added tech note on adding class documentation.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6648 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-13 11:20:59 +00:00
Vadim Zeitlin
e59890c3e8 fixed cross-compilation for Windows with mingw
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6647 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-13 09:45:00 +00:00
Vadim Zeitlin
f83e3685a5 remove \r from literal strings
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6646 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-13 08:28:21 +00:00
Vadim Zeitlin
6098c7f953 check for strtok_r() using C++ compiler
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6645 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-13 08:27:44 +00:00
Robin Dunn
67003d1af8 Added methods for folding
dropTarget is now allocated with new


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6644 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-13 06:50:32 +00:00
David Webster
a06066343d no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6643 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-13 05:43:53 +00:00
Unknown (NI)
6e395e9c60 someone forgot to clear the m_needUpdating flag, so Splitter-Windows were always redrawn after the first sash move in the OnIdle function, even after the dragging was over\!
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6642 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-13 02:34:50 +00:00
Unknown (NI)
7e8583bdef someone forgot to clear the m_needUpdating flag, so Splitter-Windows were always redrawn after the first sash move in the OnIdle function, even after the dragging was over\!
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6641 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-13 01:59:16 +00:00
Robert Roebling
856bc99a57 Added debuf printf()s to GSocket,
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6640 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-12 21:26:48 +00:00
Robert Roebling
6e7b6cc6f7 Some doc updates,
makefile and distrib things.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6639 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-12 17:11:54 +00:00
Guilhem Lavaux
760e231bf0 Latex doc compilation fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6638 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-12 16:10:13 +00:00
Robert Roebling
d6d26e0414 Corrected scrollwin thumb release event,
Reenabled horizontal scrolling, cannot currently
    reproduce misbehaviour.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6637 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-12 15:37:49 +00:00
Julian Smart
0d3a69ec70 Added project files for STC; fixed wxStringList memory leaks; small doc changes;
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6636 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-12 15:04:12 +00:00
Ron Lee
2eca425d4b separated wxDash type from platform specific wxGTKDash type
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6635 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-12 11:49:19 +00:00
Julian Smart
8f19c916dc Made iniconf compile on BC++ 5.01 (involved adding Set... accessors to wxConfigBase);
added SafeWord patch to Dialog Editor


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6634 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-12 11:29:13 +00:00
Julian Smart
10d432b1b4 Added Mmedia makefile
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6633 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-12 11:27:01 +00:00
Mark Johnson
36ba4665ff dbbrowse.cpp doc.cpp de/dbbrowse.mo de/dbbrowse.po
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6632 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-12 09:11:36 +00:00
Vadim Zeitlin
79f585d903 fixed (rare but fatal) bug in wxWindowDisabler
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6631 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-12 00:49:42 +00:00
Vadim Zeitlin
cbc66a2704 1. wxProgressDialog uses wxWindowDisabler, not (dumb) wxEnableTopLevelWindows
2. some more wxWindowDisabler bugs fixed (updated dialogs sample to test them)
3. Esc won't close the dialogs without cancel button under MSW
4. status bar can be child of windows of clases other than wxFrame
   (updated statbar sample to show it)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6630 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-12 00:26:21 +00:00
Robin Dunn
5028104652 reenabled the old wxGrid.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6629 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-11 22:38:39 +00:00
Václav Slavík
e81910e077 fixed incorrect use of _() where it should be wxT()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6628 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-11 19:31:33 +00:00
Václav Slavík
f5ba273ecd some != NULL checks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6627 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-11 19:31:19 +00:00
Václav Slavík
86f6187197 fixed DoGetBestSize -- it returned too small bounding box
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6626 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-11 19:31:03 +00:00
Stefan Neis
0b7e6e7da2 *** empty log message ***
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6625 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-11 18:01:18 +00:00
Stefan Neis
c78b3acd0c Added WXUNUSED_GTK and WXUNUSED_GTK_AND_MOTIF
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6624 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-11 17:28:36 +00:00
Vadim Zeitlin
451868847b replaced make with $MAKE
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6623 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-11 16:38:01 +00:00
Stefan Neis
aa5e1f75d9 Added many WXUNUSED, untabified once again.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6622 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-11 13:59:41 +00:00
Stefan Neis
4a64bee465 Fixed remaining int vs. long warnings.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6621 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-11 13:27:39 +00:00
Václav Slavík
f3d05fe417 fixed GTK 1.2.7 vs. <= 1.2.6 API incompatibility: gdk_gc_set_hashes, argument 3 gint8* vs. char*
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6620 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-11 12:28:31 +00:00
Julian Smart
f3979fcc3b Oops, compile errors...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6619 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-11 10:49:46 +00:00
Václav Slavík
5d9dba5b1a documented wxSpinCtrl
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6618 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-11 10:12:20 +00:00
Václav Slavík
71155438f0 documented wxSpinCtrl
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6617 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-11 10:06:36 +00:00
Václav Slavík
04a4a2afd5 documented wxFontMapper
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6616 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-11 10:05:40 +00:00
Václav Slavík
de52822400 now compiles with wxBase
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6615 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-11 10:05:23 +00:00
Václav Slavík
ba9f095e75 fixed documentation of wxList::Clear behavior after DeleteContents(TRUE)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6614 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-11 10:05:09 +00:00
Václav Slavík
77611ad4da fixed typo : _ instead of wxT
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6613 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-11 10:05:02 +00:00
Robin Dunn
7ece89c6b1 Did splitting of wxEntry for wxMSW. Not nearly as complex as wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6612 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-11 09:05:03 +00:00
Robin Dunn
c5a7371313 some tests
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6611 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-11 07:32:25 +00:00
Robin Dunn
954de0f158 Split up wxEntry so wxPython can use the bits it needs instead of
copying code.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6610 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-11 07:25:01 +00:00
Robin Dunn
7ff49f0c73 More updates.
Began splitting up wxEntry so wxPython can use the bits it needs
instead of copying code.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6609 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-11 07:24:00 +00:00
Robin Dunn
4c9993c3c7 updates to correct build errors (new locations, etc.)
minor bug fixes, etc.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6608 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-11 03:20:42 +00:00
Unknown (NI)
8775b35700 small change to avoid floating point exception in wxScrolledWindow::Scroll
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6607 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-11 03:05:27 +00:00
Vadim Zeitlin
b7e1921351 some warnings fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6606 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-11 00:47:45 +00:00
Vadim Zeitlin
378d2bd3a8 some warnings fixed in the sockets code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6605 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-11 00:47:00 +00:00
David Webster
7c8aaed1c7 remove the VisualAge 3.0 hack
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6604 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-10 23:12:50 +00:00
David Webster
b41cdbf4d3 Icon bug
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6603 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-10 23:12:21 +00:00
David Webster
9a0c6b1ed2 combine minimal with the .dll
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-10 22:24:54 +00:00
David Webster
7bed7a507c no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6601 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-10 22:24:07 +00:00
Stefan Neis
0b7e77395d Replaced long by wxCoord as used in the other ports.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6600 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-10 22:07:01 +00:00
Stefan Neis
4a277ceb2b Compilation fix.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6599 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-10 20:55:15 +00:00
Robert Roebling
b420fb6a37 Small oops in redrawing code.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6598 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-10 19:49:54 +00:00
Guillermo Rodriguez Garcia
5adbbc2995 Updated to reflect latest changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6597 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-10 17:59:20 +00:00
Robert Roebling
27d0ab2482 Committing menubar changes again after CVS trashed them.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6596 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-10 17:30:22 +00:00
Robert Roebling
186baeb237 Fixed various bugs (from - err - various authors) related
to inserting and replacing menubars etc.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6595 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-10 17:24:09 +00:00
Julian Smart
a5a55c458f Added icons.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6594 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-10 16:09:01 +00:00
Julian Smart
66f55ec64c Doc corrections, wxMotif toolbar AddControl implementation (untested as yet)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6593 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-10 16:06:33 +00:00
Stefan Neis
723d1b1da1 Removed unused parameter addToSelected.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6592 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-10 13:57:58 +00:00
David Webster
32e768ae94 OS/2 patch
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6591 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-10 13:56:17 +00:00
David Webster
3d407edab0 no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6590 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-10 13:53:58 +00:00
Stefan Neis
e32352cf66 Changed wxGridCellCoords from long to int (get rid of most HP warnings?)
Added Shift/Control+Click handling for labels.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6589 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-10 12:27:27 +00:00
Karsten Ballüder
2c4ad28347 fixed configure script for Solaris
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6588 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-10 11:33:19 +00:00
Julian Smart
3f8e5072f7 Small fixes for Tex2RTF but alas, we still get memory problems.
Added wxUSE_MFC setting (doesn't include windows.h, removes own memory
tracing); added include <ctype.h> in case where PCH isn't used;
wxExit now exits :-)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6587 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-10 11:18:22 +00:00
Julian Smart
0a5835068c Added GIF files to help sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6586 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-10 08:18:14 +00:00
Guillermo Rodriguez Garcia
9bdc99bec2 Fix from Mumit Khan to allow mingw DLL compilation, v.2 :-)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6585 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-10 07:32:25 +00:00
Guillermo Rodriguez Garcia
af7b970e76 Fix from Mumit Khan to allow mingw DLL compilation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6584 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-10 07:29:51 +00:00
David Webster
d853016702 no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6583 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-10 06:23:53 +00:00
Guillermo Rodriguez Garcia
02d15cad11 Ups, mismatch between header and source wrt InterruptWait()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6582 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-10 05:54:35 +00:00
Guillermo Rodriguez Garcia
ee80814753 Set IPC by default on MSW (need to test recent changes), instead of DDE
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6581 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-10 05:32:40 +00:00
Guillermo Rodriguez Garcia
bffc1eaaf5 Finally deprecated callbacks.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6580 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-10 05:31:53 +00:00
Guillermo Rodriguez Garcia
cdc59bb69e Some parts rewritten to use wxSocket events instead of callbacks, as the
latter will be deprecated soon. Also, some slight bugs fixed.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6579 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-10 05:30:53 +00:00
Robin Dunn
ecc888a08f Fixes for building the DLL with the new auxillary library names
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6578 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-10 02:58:58 +00:00
Michael Bedward
f41986da2d Compilation fix for Borland. Write 'T' or 'F' to logBuf rather than
bool return values of XXXDown() key query functions.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6577 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-10 02:27:48 +00:00
Vadim Zeitlin
dee1b66f85 changed default image size to 16
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6576 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-10 01:17:08 +00:00
Vadim Zeitlin
d7da975624 1. fixed warning which was hiding a bug in wxGrid::SendEvent()
2. started documenting wxDateTime
3. and wxLongLong


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6575 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-10 01:15:17 +00:00
Guillermo Rodriguez Garcia
3adb47a937 - Uses wxSocketBase::Destroy() now.
- Fixed a memory leak when connection requests failed.
- Maybe some other (small) bugfix as well.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6574 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-10 00:21:25 +00:00
Guillermo Rodriguez Garcia
557e701169 Bugfix:
GSocket_Shutdown sets m_detected to GSOCK_LOST_FLAG.
This avoids that Wait operations from wxSocket get caught in an endless
loop, if called after wxSocketBase::Close(). Was breaking IPC.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6573 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-10 00:20:00 +00:00
Julian Smart
5da69e38e6 Help sample should work for .zip help files now.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6572 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 23:41:57 +00:00
Julian Smart
98beeb8ba9 Added wxHtmlHelpController version of help file.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6571 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 23:08:53 +00:00
David Webster
75acb5321e os2 update. Need initializers like windows, not unix.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6570 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 22:26:41 +00:00
David Webster
052e089dce Module definitions files for build VisualAge C++ V3.0 dlls.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6569 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 21:15:03 +00:00
David Webster
413098d06c Update for building jpeg as an os2 dll
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6568 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 21:12:50 +00:00
David Webster
1d4ad4df1d Update for building png as an os2 dll
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6567 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 21:12:29 +00:00
David Webster
4de601b128 Update for building xpm as an os2 dll
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6566 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 21:12:05 +00:00
David Webster
7e415a0f66 Update for building zlib as an os2 dll
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6565 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 21:11:46 +00:00
David Webster
3bedfb1d17 Update for building tiff as an os2 dll
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6564 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 21:11:21 +00:00
David Webster
426d574504 Loads of framework and dll fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6563 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 21:10:00 +00:00
David Webster
60b8078990 Updates for build dll
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6562 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 21:07:55 +00:00
David Webster
9add53a470 More framework fixes and fixes for building dlls.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6561 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 21:06:48 +00:00
Vadim Zeitlin
b0a0942105 fix for resourses compilation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6560 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 20:32:10 +00:00
Vadim Zeitlin
3283290881 patch from Paul Gammans <paul.gammans@brunel.ac.uk> for cross compiling for MSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6559 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 20:18:59 +00:00
Julian Smart
7b28757f5e Mmedia, OGL lib directory changes; omitted naughty wxGA_SMOOTH style from wxProgressDialog;
wxMotif toolbar fix; ~wxWindow Motif fix


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6558 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 20:15:44 +00:00
Julian Smart
b4414c1f37 wxHtmlHelpController made compatible with other controllers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6557 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 20:05:52 +00:00
Robert Roebling
304e5625e5 Disabled horizontal report mode scrolling in wxListCtrl
as it skrews up the display,
  Corrected disabling the closing of top level window
    when there are open (modal) dialogs,
  Minor change to redrawing window-less widgets.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6556 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 20:04:36 +00:00
Robin Dunn
9ce192d417 Initial version of wxStyledTextCtrl, a Scintilla wrapper. There is
still LOTS and LOTS to be done, but this is already very functional.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6555 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 19:42:06 +00:00
Vadim Zeitlin
7b22b912fd updated from the current sources
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6554 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 19:35:16 +00:00
Robin Dunn
fe98790977 Oops. Removed duplicate target.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6553 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 19:26:18 +00:00
Robin Dunn
50a5c3f33e Made clean target be not quite so agressive, added 'cleanall'
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6552 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 19:25:20 +00:00
Guillermo Rodriguez Garcia
c17e495529 Removed a space (oh, dear, it looks like a joke
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6551 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 18:34:59 +00:00
Vadim Zeitlin
7e12d1bf7f very minor fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6550 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 18:33:16 +00:00
Vadim Zeitlin
b4da05a638 (failed) attempts at fixing menu bar swapping
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6549 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 17:53:58 +00:00
Vadim Zeitlin
8862e11b01 fixed parsing of non quoted entries in .mime.types
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6548 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 17:14:26 +00:00
Vadim Zeitlin
b97f6d757b regenerated with tmake
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6547 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 16:48:37 +00:00
Vadim Zeitlin
bd9724b905 Get/SetDefaultItem docs corrections
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6546 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 16:47:20 +00:00
Vadim Zeitlin
6cbe6d0821 don't define __cplusplus for DECCXX if it is already defined
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6545 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 16:40:55 +00:00
Vadim Zeitlin
0e8c82331d don't translate wxASSERT_MSG messages
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6544 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 16:33:49 +00:00
Vadim Zeitlin
771779ed91 use wxFAIL_MSG, not wxMessageBox for programming errors
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6543 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 16:33:03 +00:00
Vadim Zeitlin
793867a736 explain why quotes/brackets should be used in #includes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6542 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 16:31:35 +00:00
Vadim Zeitlin
c5d3832cfe fixed the value of LVM_SETEXTENDEDLISTVIEWSTYLE
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6541 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 16:22:51 +00:00
Vadim Zeitlin
0e93516996 don't allow multiple root in the tree
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6540 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 16:19:35 +00:00
Stefan Neis
6b10575493 Make correct cell visible for cursor movement.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6539 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 15:55:17 +00:00
Stefan Neis
f0d5fc50ef Added workaround for life crashing in toolbar deletion.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6538 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 14:58:40 +00:00
Stefan Neis
ca4f2b729c Modified keyboard and mouse handling wrt selecting blocks/cells.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6537 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 14:25:07 +00:00
Guillermo Rodriguez Garcia
4bd87101b3 Added samples.inc to DATAFILES in Makefile.in - is that enough?
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6536 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 14:19:32 +00:00
Mark Johnson
30bb7c133e doc.cpp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6535 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 14:01:39 +00:00
Stefan Neis
d95b0c2ba0 Changed Shift+Arrow handling
Fixed Ctrl/Shift/Alt/Meta handling in generated events.
Added display of Ctrl/Shift/Alt/Meta status to griddemo.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6534 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 13:57:02 +00:00
Robert Roebling
b6fa52db66 Some make corrections for HP and related,
Changed refresh order so that window-less widgets
    don't get overdrawn anymore,
  Prevent GTK from filtering our supposedly unneeded
    expose events,
  Block all expose calls if a resize is requested and
    do a full redraw then, thus removing flicker and
    behaving like wxMSW,
  Moved some doubled expose and draw code from GtkPizza
    to the respective callbacks in window.cpp,
  Set idle priority to a higher value (which should
    indicate a lower priority if I interpret glib.h
    correctly) but the desired side-effect didn't
    really show up.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6533 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 13:24:34 +00:00
Guillermo Rodriguez Garcia
6da3a3ef1f Removed an extra scope resolution operator in the declaration of class LifeShape
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6532 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-09 12:07:01 +00:00
Vadim Zeitlin
c77ae1d950 (blind) gcc fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6531 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-08 15:12:29 +00:00
Vadim Zeitlin
39d03faf4e warnings in wxCHeCK_MSG fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6530 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-08 15:08:42 +00:00
Vadim Zeitlin
5bcea60e1b warning in wxCustomDataObject::Free fix (I hope)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6529 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-08 15:08:17 +00:00
Ron Lee
ecb017924c final (touch wood) tidy after things went pearshaped on line 666
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6528 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-08 15:06:28 +00:00
George Tasker
a00d62c913 Fixed the fix of the fix so it will compile under VC6
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6527 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-08 14:40:56 +00:00
Ron Lee
87e1d2a51b fixed my own typo.. oops
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6526 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-08 14:17:37 +00:00
Julian Smart
8fdffc7e9b Correction
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6525 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-08 14:10:30 +00:00
David Webster
58ca01aeae Placed an ifndef for VA around the MSWGetImagePixels declaration.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6524 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-08 13:48:14 +00:00
Ron Lee
4dcfef961d fix for pageup 'blind spot'
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6523 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-08 13:34:14 +00:00
Julian Smart
7c4a59a881 Added WinHelp sample doc to samples/help, and made it possible to show
both native and wxHTML help


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6522 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-08 13:04:51 +00:00
Julian Smart
07fce3c2f9 More makefile and project fun
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6521 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-08 10:38:50 +00:00
Julian Smart
5fa399c9e2 Made VC++ makefiles and project files a bit more consistent
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6520 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-08 08:32:31 +00:00
Guillermo Rodriguez Garcia
90da75e673 Forgot to add this one
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6519 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-08 08:30:29 +00:00
Guillermo Rodriguez Garcia
061379e2ac Updated to reflect some of the latest changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6518 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-08 08:29:16 +00:00
Mark Johnson
6bf783984a calctrl.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6517 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-08 08:28:40 +00:00
Guillermo Rodriguez Garcia
f187448d85 All IO calls take void* instead of char*
Added Get/SetClientData to wxSocketBase and wxSocketEvent
Some other deprecated functions & co.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6516 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-08 08:28:20 +00:00
Julian Smart
62ea79f381 Added WIN16 code for window disabler
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6515 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-08 08:25:42 +00:00
Jouk Jansen
6ad7611a5c Committing in .
Modified Files:
 	wxWindows/descrip.mms
 ----------------------------------------------------------------------


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6514 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-08 07:28:35 +00:00
Václav Slavík
96becbd8fa fix of previous commit
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6513 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-07 21:32:40 +00:00
David Webster
70a5b429e7 makefile enhancements for dll, ne wxwindll.ics for VA 4.0 dll
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6512 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-07 21:29:46 +00:00
David Webster
f23208cacc more minimal stuff
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6511 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-07 21:28:30 +00:00
David Webster
49af73a59b remove the #warning for VisualAge
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6510 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-07 21:27:31 +00:00
David Webster
3e282d337f no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6509 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-07 21:26:54 +00:00
Guillermo Rodriguez Garcia
fbf5995c02 Ops, stupid me.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6508 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-07 17:16:54 +00:00
Václav Slavík
635b44a118 fixed bug: removed m_windowStyle = style
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6507 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-07 16:30:45 +00:00
Guillermo Rodriguez Garcia
71622a7ac0 First set of changes toward wxBase compliance :-)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6506 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-07 16:11:58 +00:00
Mark Johnson
3965571c7c *** empty log message ***
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6505 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-07 13:47:44 +00:00
Vadim Zeitlin
ea8849aaf6 updated to use msgmerge
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6504 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-07 12:17:16 +00:00
Stefan Neis
cf58a48f62 Add Child to parent instead of adding it to itself!
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6503 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-07 11:48:36 +00:00
Mark Johnson
9898fcda80 calendar.cpp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6502 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-07 11:02:27 +00:00
Vadim Zeitlin
3c002e048d technote about translations added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6501 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-07 10:54:39 +00:00
Vadim Zeitlin
f077f5c39f technote about translations added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6500 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-07 10:53:53 +00:00
Mark Johnson
efa7ad84f6 calendar.cpp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6499 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-07 10:38:12 +00:00
Mark Johnson
78d5068a96 calendar.cpp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6498 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-07 10:19:00 +00:00
Michael Bedward
cb9fb5bb00 Modified <shift>+arrow key behaviour so that the starting cell is
included in the selection


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6497 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-07 10:07:36 +00:00
Vadim Zeitlin
07e87221f6 Mark Johnoson's additions for variable-width weekday names
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6496 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-07 10:03:54 +00:00
Michael Bedward
1b6dea5de1 Added Create functions. They return TRUE if the file was successfully
created; FALSE if it couldn't be created (or already exists - is that
ok?).


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6495 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-07 10:02:25 +00:00
Vadim Zeitlin
d76bb2182d APPEXTRALIBS added to LDLIBS
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6494 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-07 09:15:35 +00:00
Jouk Jansen
d6c85bee75 Committing in .
VMS/GTK compile support

 Added Files:
 	wxWindows/src/gtk/descrip.mms
 ----------------------------------------------------------------------


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6493 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-07 09:02:37 +00:00
Jouk Jansen
3fa056ab78 Committing in .
VMS/GTK compile support

 Modified Files:
 	wxWindows/descrip.mms wxWindows/setup.h_vms
 	wxWindows/samples/minimal/descrip.mms
 	wxWindows/src/common/descrip.mms
 	wxWindows/src/common/resource.cpp
 	wxWindows/src/generic/descrip.mms
 	wxWindows/src/gtk/dcclient.cpp wxWindows/src/gtk/filedlg.cpp
 	wxWindows/src/gtk/fontdlg.cpp wxWindows/src/gtk/listbox.cpp
 	wxWindows/src/gtk/tbargtk.cpp wxWindows/src/gtk/win_gtk.c
 	wxWindows/src/unix/descrip.mms wxWindows/src/unix/fontenum.cpp
 Added Files:
 	wxWindows/lib/vms_gtk.opt
 	wxWindows/src/gtk/wx_gtk_vmsjackets.c
 ----------------------------------------------------------------------


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6492 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-07 09:00:27 +00:00
Michael Bedward
19701d22df Removed redundant m_displayed member var from wxGrid
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6491 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-07 08:22:43 +00:00
Michael Bedward
2a7750d939 Moved current cell initialization from wxGrid::OnPaint to
wxGrid::DrawHighlight to accommodate wxGTK behaviour.

Removed redundant m_displayed member var from wxGrid.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6490 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-07 07:41:58 +00:00
Guillermo Rodriguez Garcia
3f04dfd331 Changed another NONE to wxSOCKET_NONE
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6489 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-06 23:39:09 +00:00
Guillermo Rodriguez Garcia
ed8297b98d Some other typos
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6488 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-06 21:00:02 +00:00
Guillermo Rodriguez Garcia
e8773bdf80 Use IsConnected instead of m_connected
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6487 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-06 20:35:53 +00:00
Guillermo Rodriguez Garcia
45ef0076bf Ops, typo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6486 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-06 18:14:32 +00:00
Guillermo Rodriguez Garcia
a24cc774ec Trying to fix IPC problems under Linux as reported by VS
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6485 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-06 17:44:27 +00:00
Vadim Zeitlin
0dcf989311 system libtiff can now be used instead of the built-in one
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6484 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-06 17:37:58 +00:00
Julian Smart
59917a749b Corrections
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6483 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-06 17:34:25 +00:00
Guillermo Rodriguez Garcia
425652451b Added wxIcon(const char **) ctor (same as char **)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6482 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-06 17:34:24 +00:00
Guillermo Rodriguez Garcia
65dc92ca0f removed wxUSE_WXCONFIG (obsoleted by wxUSE_CONFIG
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6481 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-06 17:23:16 +00:00
Vadim Zeitlin
a6e2b3a831 patches from Ricky Gonzales <gonzales@pyramid3.net>:
1. BC++ 5.5 compilation/building fixes
2. wxMSW listctrl will use correct ILC_COLOR flag depending on current display
   depth
3. wxFrame::Show() argument is TRUE by default undet GTK/Motif too


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6480 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-06 17:16:12 +00:00
Guillermo Rodriguez Garcia
6b4a39fb51 Documented Destroy()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6479 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-06 17:14:16 +00:00
Guillermo Rodriguez Garcia
5cb9148949 Documented Destroy()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6478 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-06 17:11:10 +00:00
Guillermo Rodriguez Garcia
03bbd98b9c Added a mention about demos/ instead of samples/
Added a mention of the 'samples overview' section in the wxWindows manual
Added EOF marker to easily distinguish the text from the CVS log.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6477 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-06 16:50:13 +00:00
Guillermo Rodriguez Garcia
b4e87ec32c Added rotate sample and comment about masks in wxImage::Rotate
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6476 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-06 16:31:05 +00:00
Guillermo Rodriguez Garcia
1ea670896b Disabled memory tracing code for mingw32,
Added LIBTIFF support by default,
Added comment about itsy bitsy lib being useful for win3.1 only,


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6475 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-06 16:19:39 +00:00
Guillermo Rodriguez Garcia
d2249417f8 And now some more of them
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6474 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-06 15:35:55 +00:00
Guillermo Rodriguez Garcia
70d213e08b Moved some items to 'already done' in the todo list
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6473 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-06 15:28:41 +00:00
Guillermo Rodriguez Garcia
89e6463c1a Slight changes to the stopwatch test
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6472 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-06 15:08:17 +00:00
Mark Johnson
67c0489076 *** empty log message ***
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6471 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-06 09:37:35 +00:00
Mark Johnson
260460ae06 dbbrowse.cpp dbbrowse.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6470 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-06 09:08:03 +00:00
Ron Lee
f547e9bb27 set m_clipXX so dc.GetClippingBox returns real bounding box
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6469 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-06 04:40:01 +00:00
Guillermo Rodriguez Garcia
a059bcd21c Added blind-fix for vert. scrollbars - not tested yet
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6468 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-06 02:30:36 +00:00
Guillermo Rodriguez Garcia
b3ddc4c2ec Added support for timer events in Motif
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6467 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-06 00:59:31 +00:00
Ron Lee
ee8dbe6308 set m_clipXX to resultant clipping region
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6466 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-05 23:42:50 +00:00
Stefan Neis
b3ef4fb50c Re-added XtDestroyWidget call in ~wxWindow - hopefully fixed the problem
with scrolledWindow.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6465 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-05 20:03:09 +00:00
Robert Roebling
40903af771 Enabled OpenGl in RPM.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6464 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-05 19:53:29 +00:00
Ron Lee
05a1104392 couple of typo/thinko bug fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6463 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-05 19:18:31 +00:00
Guilhem Lavaux
5dffa63b2f Removed all wxMMedia2 files
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6462 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-05 19:05:13 +00:00
Guilhem Lavaux
e8482f24cf Moved wxMMedia to contrib/src/mmedia
Added contrib configure
Made wxSocket sample compile
Made OGL compile
Modified main configure to pass some more parameter
to children
Changed the wxProcess doc according to the modification

Still some win makefiles to come


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6461 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-05 19:03:21 +00:00
Stefan Neis
f5b9cde232 Fixed apparent typo (int->wxWindowID)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6460 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-05 18:46:27 +00:00
Robert Roebling
c661ecca60 Various makefile and installation things.
main() is now always in the program. Also added a
    macro that doesn't set main at all so that users
    can have their own.
  The isosurf sample doesn't work anymore.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6459 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-05 17:49:58 +00:00
Stefan Neis
0649ebbdb7 *** empty log message ***
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6458 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-05 16:25:23 +00:00
Guilhem Lavaux
84899251f1 Removed wxMMedia classes doc from the main wx doc
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6457 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-05 16:05:53 +00:00
Václav Slavík
4d44947336 added missing wxImageList::Add methods
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6456 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-05 14:15:47 +00:00
Julian Smart
4767810533 Fixed blatant non-initialisation bug
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6455 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-05 11:45:03 +00:00
Vadim Zeitlin
87798c0030 test for 'backwards clock' bug
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6454 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-05 02:31:16 +00:00
Vadim Zeitlin
d31b7b682c 1. wxStopWatch tests in console
2. some more messages in exec


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6453 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-05 02:23:53 +00:00
Vadim Zeitlin
f7bd3a7d8f create null, not empty, region in default wxRegion ctor
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6452 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-05 02:14:10 +00:00
Vadim Zeitlin
5e1febface 1. wxWindowDisabler modified to bring parent window back to top under MSW
2. modal dialogs without parent now use the app top window as parent or use
   wxWindowDisabler if none
3. modal dialogs bring parent windows to top when activated
4. wxBase dsp will now compile it with MT CRT


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6451 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-05 02:12:04 +00:00
Vadim Zeitlin
41fd4136fc regenerated from configure.in
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6450 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-05 00:06:57 +00:00
Stefan Neis
0912bee1aa Compilation fixes (true->TRUE, false->FALSE)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6449 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-04 23:59:34 +00:00
Vadim Zeitlin
581e8516ea fix for --with-libpng=sys warning
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6448 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-04 23:59:13 +00:00
Stefan Neis
0dd8a49d4d Added a fix for compilers with problems to compute signed % unsigned
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6447 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-04 23:38:22 +00:00
Vadim Zeitlin
983a384436 removed warning about wxDrawRectangle being unused
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6446 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-04 23:21:53 +00:00
Stefan Neis
5c8fc7c1de Improved handling of selection/deselection events.
Improved keyboard navigation.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6445 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-04 23:09:37 +00:00
Vadim Zeitlin
1f80a703f2 removed extern from inline function declarations
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6444 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-04 22:54:41 +00:00
Václav Slavík
777fd647dc fixed couple of bugs in wxZlibInputStream -- mainly incorrect handling of underlaying stream errors and absolutely wrong bytes counting
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6443 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-04 20:37:23 +00:00
Václav Slavík
39a16cb41d fixed wxDataInputStream::ReadString for empty strings
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6442 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-04 20:37:16 +00:00
Václav Slavík
11eaa98105 fixes for wxBase compilation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6441 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-04 20:37:08 +00:00
Václav Slavík
c07c37d70a added more stuff to wxBase: zipstrm, zstream, fs_*, mstream
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6440 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-04 20:36:46 +00:00
Stefan Neis
043d16b225 Bugfixes; added selection modes demo to griddemo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6439 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-04 19:56:39 +00:00
Robert Roebling
a56fcaaf46 Some more drawing things,
Tried to make miniframe stay on top, doesn't work,
  Make radio box big enough for its title,
  Can't anylong close disabled toplevel windows,
  Minor other changes.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6438 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-04 18:40:52 +00:00
Stefan Neis
f1567cddea Added SetSelectionMode
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6437 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-04 16:35:58 +00:00
Robert Roebling
e1208c3103 Lotta stuff for drawing etc.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6436 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-04 16:23:26 +00:00
Guillermo Rodriguez Garcia
a85139a1b7 Ops
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6435 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-04 13:20:35 +00:00
Guillermo Rodriguez Garcia
d90d994c74 Motif blindfix :-)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6434 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-04 13:20:14 +00:00
Julian Smart
b14159f7d8 Fixed non-standard C++ syntax errors
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6433 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-04 12:11:47 +00:00
Robert Roebling
993f97eed6 Adapted wxGTK to wxMSW's notion of region setting.
Made Julian's gc_include_inferior hack a bit less radical.
  Small addition to changes.txt,
  Compile fix to dbbrowse sample. Still crashes upon startup.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6432 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-04 09:24:17 +00:00
Guillermo Rodriguez Garcia
36bec0acf0 Oh well..
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6431 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-04 02:54:56 +00:00
Guillermo Rodriguez Garcia
bd4d918f36 Fixed (my own) stupidity in Connect() mini-tutorial / comments
Changed all _T() to _() in server.cpp
Modified server to use Destroy() instead of directly accessing the wxPendingDelete list
Removed the panels which contained the textctrls - they are not needed at all.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6430 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-04 02:51:45 +00:00
Guillermo Rodriguez Garcia
2b396caaa2 Stupidity fixed in WaitOnConnect()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6429 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-04 02:42:13 +00:00
Guillermo Rodriguez Garcia
261b9a3df1 Stupidity fixed in WaitOnConnect() docs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6428 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-04 02:41:14 +00:00
Václav Slavík
5824f314a3 added compression ratio argument to wxZlibOutputStream ctor
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6427 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-03 22:52:17 +00:00
Guillermo Rodriguez Garcia
77a36397c0 Removed dependency on tiffiop.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6426 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-03 20:53:27 +00:00
Guilhem Lavaux
3072610753 wxSoundFileStream doc updates (indeed, first write)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6425 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-03 20:10:49 +00:00
Robert Roebling
5d25c05039 Clean-up, speed-up and bug-fix for wxListCtrl drawing,
Removed overlay things from wxScreenDC,
  Added test for bitmaps clipping with regions.
  Updates to changes.txt


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6424 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-03 20:09:19 +00:00
Guillermo Rodriguez Garcia
9764dcbca3 Please add classes in alphabetical order
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6423 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-03 19:24:58 +00:00
Guillermo Rodriguez Garcia
9181a38382 Added Destroy()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6422 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-03 19:24:24 +00:00
Guillermo Rodriguez Garcia
d7bd7ca5bf makefiles changed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6421 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-03 19:24:21 +00:00
Guillermo Rodriguez Garcia
e51b013093 small mods
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6420 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-03 19:22:35 +00:00
Guilhem Lavaux
70dc22dcc9 Updated some doc (wxProcess, wxSoundStream)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6419 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-03 18:46:12 +00:00
Vadim Zeitlin
20590f751f bug in month day parsing - now check that it's > 1 too
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6418 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-03 18:27:18 +00:00
Guillermo Rodriguez Garcia
a6a1ef9e7b new XPMs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6417 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-03 18:22:42 +00:00
Guillermo Rodriguez Garcia
75f245410a new bitmaps
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6416 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-03 18:22:20 +00:00
Guillermo Rodriguez Garcia
29b07a3821 Life version 2.1
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6415 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-03 18:21:48 +00:00
Guillermo Rodriguez Garcia
5f9fd7ea86 no more _ftime instead of ftime
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6414 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-03 17:36:02 +00:00
Vadim Zeitlin
2a47e1401b regenerated from filelist.txt
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6413 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-03 17:04:33 +00:00
Stefan Neis
b58088819b Added extended selection support.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6412 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-03 16:44:33 +00:00
Stefan Neis
d2e4966591 Added gridsel.cpp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6411 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-03 16:35:47 +00:00
Guillermo Rodriguez Garcia
b531e140f1 mingw32 makefiles must use tabs as separators
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6410 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-03 16:09:38 +00:00
Vadim Zeitlin
b0230a69bc fatal bug in wxSplitPath fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6409 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-03 14:05:42 +00:00
Guillermo Rodriguez Garcia
91ff98b7b5 Added HAVE_FTIME for all Windows compilers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6408 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-03 13:51:28 +00:00
Julian Smart
1fc25a89ac Added OGL to contrib
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6407 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-03 11:25:10 +00:00
Julian Smart
b14391d1c8 Removed OGL prior to re-adding; some Watcom corrections
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6406 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-03 11:10:51 +00:00
Vadim Zeitlin
422107f900 removed OGL files from wxGTK build, fixed configure for wxBase
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6405 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-03 10:46:23 +00:00
Vadim Zeitlin
2c8e47380e 1. wxShell fixes: now really uses shell (it wasn't different from wxExecute!)
and also added a version which captures the programs output
2. fix for compilers which have void ftime() (my mingw does) in timercmn.cpp
3. updated console sample to test wxShell/wxExecute
4. treetest now can toggle images or change their size
5. wxTreeCtrl doesn't crash if it has no image list


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6404 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-03 10:31:34 +00:00
David Webster
914589c26c More framework updates
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6403 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-02 22:13:38 +00:00
Stefan Neis
294f6bcbdb Added class to handle selection inside wxGrid
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6402 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-02 19:41:17 +00:00
Robert Roebling
bc3cedfa48 Added test for region clipping.
Corrected makefile.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6401 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-02 19:18:45 +00:00
Vadim Zeitlin
cd6ce4a90c 1. wxProcess changes to make capturing subprocess output easier (and more
reliable), now works in both sync and async modes
2. wxSafeYieldBug() corrected, wxWindowDisabler which is now used in it
   added and documented
3. exec sample updated to illustrate capturing the subprocess output
4. wxStreamBase::IsOk() added
5. wxInputStream::Eof() added and non-blocking Eof() implementation in
   wxPipeInputStream used by wxExecute


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6400 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-02 19:06:13 +00:00
Guillermo Rodriguez Garcia
21e5527b59 Latest OS/2 changes broke xpmlib for MSW. Fixed.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6399 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-02 17:18:34 +00:00
Vadim Zeitlin
d8e41d423d added demo of capturing program output - doesn't work very well though
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6398 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-02 16:17:43 +00:00
Vadim Zeitlin
42d14d4e8f corrected Remove() description
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6397 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-02 15:41:18 +00:00
Jouk Jansen
61a021a822 Committing in .
Modified Files:
 	wxWindows/setup.h_vms wxWindows/src/common/timercmn.cpp
 ----------------------------------------------------------------------


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6396 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-02 11:29:59 +00:00
Ron Lee
bc2e39e366 made msw wxRegion(wxRect&) constructor consistant with other wxRegion constructors
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6395 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-02 10:47:38 +00:00
Guillermo Rodriguez Garcia
1cab5b8d99 Renamed tech notes to tnxxxx.txt
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6394 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-02 04:18:53 +00:00
Guillermo Rodriguez Garcia
0824a13502 Changed naming to TNxxxx
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6393 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-02 04:17:18 +00:00
Vadim Zeitlin
9121bed249 no changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6392 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-02 01:06:16 +00:00
Vadim Zeitlin
a95e38c034 1. wxGrid row can't be resized to less than minimal height
2. memory leaks fixed in wxHashTableLong
3. and in wxGrid
4. changed newgrid sample to use char buffers
5. fixed double clicking owner-drawn buttons
6. compilation fix in enhmeta.cpp for !wxUSE_DND
7. bug introduced earlier today in wxGridCellAttr::GetEditor() fixed
8. bool renderer/editor now look as good as I may ever make them look
   good under MSW


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6391 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-02 00:58:11 +00:00
6552 changed files with 1667753 additions and 1916 deletions

57
.cvsignore Normal file
View File

@@ -0,0 +1,57 @@
system.list
bin
.gdb_history
Test
config.cache
configarg.cache
config.status
system.list
linux.system.cache
wx-config
config.log
linux-gnu.system.cache
*.dsp
*.dsw
*.plg
*.opt
*.aps
*.ncb
*.pro
*.opt
*.d
*.swp
*.swo
*.swq
Release
Debug
ReleaseDll
DebugDll
ReleaseUnicode
DebugUnicode
ReleaseUnicodeDll
DebugUnicodeDll
BaseRelease
BaseDebug
BaseReleaseDll
BaseDebugDll
BaseReleaseUnicode
BaseDebugUnicode
BaseReleaseUnicodeDll
BaseDebugUnicodeDll
robert
stamp-h.in
Makefile
configure
setup.h
stamp-h
libtool
aclocal.m4
base
gtk
motif
win32
base-release
gtk-release
motif-release
win32-release
*tags

242
BuildCVS.txt Normal file
View File

@@ -0,0 +1,242 @@
------------------------------------------------------------------------
How to build the sources from CVS
------------------------------------------------------------------------
Please use the install.txt files in docs/gtk, docs/msw, docs/motif, docs/mac
etc. alongside these instructions.
I) Windows using plain makefiles
----------------------------------------
a) If using Microsoft Visual C++ 5.0 or 6.0
Ensure that the command-line compiler and tools (including
nmake) are installed and ready to run. Depending on your
installation there may be a batch file (named something like
VCVARS32.BAT) that needs to be run to set correct environment
varaibles and PATH entries.
Continue with item c) below.
b) If using the GNU Mingw32 or GNU Cygwin32 compilers
You can get Mingw32 from http://www.mingw.org
Cygwin32 is available at http://www.cygwin.com
The makefile might have small problems with Cygwin's tools
so it is recommended to use Mingw32 and its toolchain instead
if possible.
-> Set your path so that it includes the directory
where your compiler and tools reside
-> If your are using an old Mingw32 version (gcc-2.95 or older),
you might need to fix some headers with the patches contained
in the wxWin\Mingw32-gcc295.patches file. PLEASE APPLY THESE
PATCHES BY HAND! There are apparently a few different versions
of the headers floating around. Note that these patches are
not needed if you are using Mingw32 gcc-2.95.2 or newer.
-> Edit wx/src/makeg95.env and set the MINGW32 variable at the top of
the file to either 1 (you have Mingw32) or 0 (you have Cygwin32).
If using MINGW32, also set the MINGW32VERSION variable
appropiately.
c) Build instructions
-> Assumming 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), for example:
#define wxUSE_ODBC 0
#define wxUSE_SOCKETS 1
#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 std iostreams are disabled with
#define wxUSE_STD_IOSTREAM 0
-> type: cd c:\wxWin\src\msw
-> type: make -f makefile.g95 (if using GNU tools)
or type: nmake -f makefile.vc (if using MS VC++)
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 root password>
-> 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).
IV) wxBase
----------------------------------------
wxBase is the non GUI part of wxWindows. Currently it can be only built using
configure (i.e. under Unix and probably under Win32 with cygwin) and with
Visual C++.
To build it using configure, just add "--disable-gui" argument to it.
To build wxBase with VC++, use the project files wxBase.dsp and wxBaseDll.dsp
included in the CVS. See http://www.wxwindows.org/vadim/wxDocs/buildmsw.html
for the instructions on how to generate the project files for the programs
using wxBase.
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
(or whatever you called it)
Now run configure. There are two ways to do this
-> ../configure --host=i586-mingw32 --build=i586-linux --with-mingw \
--enable-dnd=no --without-odbc
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.
[ Update: some new mingw32 versions now have a new set of windows header
files, which apparently can handle ole. Untested at the moment ]
ODBC files don't compile as of 13.10.99 - may be this will be fixed by the
moment you're reading these lines.
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
and wait, wait, wait. Don't leave the room, because the minute you do there
will be a compile error :-)
NB: you risk to get quite a few warnings about "ANSI C++ forbids implicit
conversion from 'void *'" in all places where va_arg macro is used. This
is due to a bug in (some versions of) mingw32 headers which may be
corrected by editing the file
${install_prefix}/lib/gcc-lib/i586-mingw32/egcs-2.91.57/include/stdarg.h
(instead of egcs-2.91.57 you may have something different), searching for
the lines
/* Define __gnuc_va_list. */
#ifndef __GNUC_VA_LIST
#define __GNUC_VA_LIST
#if defined(__svr4__) || defined(_AIX) || defined(_M_UNIX) || defined(__NetBSD__)
typedef char *__gnuc_va_list;
#else
typedef void *__gnuc_va_list;
#endif
#endif
and adding "|| defined(_WIN32)" to the list of platforms on which
__gnuc_va_list is char *.
If this is successful, you end up with a libwx_msw.a in win32/lib. Now try
building the minimal sample:
-> cd samples/minimal
-> make
and run it with wine, for example (or copy to a Windows box)
-> 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.

1373
Makefile.in Normal file

File diff suppressed because it is too large Load Diff

169
Mingw32-gcc295.patches Normal file
View File

@@ -0,0 +1,169 @@
*** \gcc-inc\basetyps.h Sat Jul 31 16:48:36 1999
--- basetyps.h Fri Aug 06 11:14:36 1999
***************
*** 74,91 ****
--- 74,97 ----
STDMETHOD(Clone)(IENUM_THIS_(I) I**) PURE; \
}
#define DECLARE_ENUMERATOR(T) DECLARE_ENUMERATOR_(IEnum##T,T)
+ #ifndef GUID_DEFINED
+ #define GUID_DEFINED
typedef struct _GUID
{
unsigned long Data1;
unsigned short Data2;
unsigned short Data3;
unsigned char Data4[8];
} GUID;
+ #endif /* GUID_DEFINED */
typedef GUID *REFGUID;
typedef GUID *LPGUID;
+ #ifndef UUID_DEFINED
+ #define UUID_DEFINED
typedef GUID UUID;
+ #endif /* UUID_DEFINED */
typedef GUID IID;
typedef GUID CLSID;
typedef CLSID *LPCLSID;
typedef IID *LPIID;
*** \gcc-inc\oaidl.h Sat Jul 31 16:48:42 1999
--- oaidl.h Fri Aug 06 13:18:48 1999
***************
*** 39,44 ****
--- 39,53 ----
#define IMPLTYPEFLAG_FRESTRICTED 4
#define IMPLTYPEFLAG_FDEFAULTVTABLE 8
+ #define DISPID_UNKNOWN ( -1 )
+ #define DISPID_VALUE ( 0 )
+ #define DISPID_PROPERTYPUT ( -3 )
+ #define DISPID_NEWENUM ( -4 )
+ #define DISPID_EVALUATE ( -5 )
+ #define DISPID_CONSTRUCTOR ( -6 )
+ #define DISPID_DESTRUCTOR ( -7 )
+ #define DISPID_COLLECT ( -8 )
+
typedef interface ITypeLib *LPTYPELIB;
typedef interface ICreateTypeInfo *LPCREATETYPEINFO;
typedef interface ICreateTypeInfo2 *LPCREATETYPEINFO2;
***************
*** 49,54 ****
--- 58,73 ----
typedef interface IDispatch *LPDISPATCH;
typedef interface ICreateErrorInfo *LPCREATEERRORINFO;
+ extern "C" const IID IID_ITypeLib;
+ extern "C" const IID IID_ICreateTypeInfo;
+ extern "C" const IID IID_ICreateTypeInfo2;
+ extern "C" const IID IID_ICreateTypeLib;
+ extern "C" const IID IID_ICreateTypeLib2;
+ extern "C" const IID IID_ITypeInfo;
+ extern "C" const IID IID_IErrorInfo;
+ extern "C" const IID IID_IDispatch;
+ extern "C" const IID IID_ICreateErrorInfo;
+
typedef enum tagSYSKIND {
SYS_WIN16,SYS_WIN32,SYS_MAC
} SYSKIND;
***************
*** 375,382 ****
STDMETHOD_(ULONG,Release)(THIS) PURE;
STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;
STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE;
! STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID)
PURE;
! STDMETHOD(Invoked)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
};
#ifdef __cplusplus
--- 394,401 ----
STDMETHOD_(ULONG,Release)(THIS) PURE;
STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;
STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE;
! STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*)
PURE;
! STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
};
#ifdef __cplusplus
*** \gcc-inc\objidl.h Sat Jul 31 16:48:42 1999
--- objidl.h Fri Aug 06 11:00:19 1999
***************
*** 627,633 ****
STDMETHOD(QueryGetData)(THIS_ FORMATETC*) PURE;
STDMETHOD(GetCanonicalFormatEtc)(THIS_ FORMATETC*,FORMATETC*) PURE;
STDMETHOD(SetData)(THIS_ FORMATETC*,STGMEDIUM*,BOOL) PURE;
! STDMETHOD(EnumFormatEtc)(THIS_ DWORD,IEnumFORMATETC*) PURE;
STDMETHOD(DAdvise)(THIS_ FORMATETC*,DWORD,IAdviseSink*,PDWORD) PURE;
STDMETHOD(DUnadvise)(THIS_ DWORD) PURE;
STDMETHOD(EnumDAdvise)(THIS_ IEnumSTATDATA**);
--- 627,633 ----
STDMETHOD(QueryGetData)(THIS_ FORMATETC*) PURE;
STDMETHOD(GetCanonicalFormatEtc)(THIS_ FORMATETC*,FORMATETC*) PURE;
STDMETHOD(SetData)(THIS_ FORMATETC*,STGMEDIUM*,BOOL) PURE;
! STDMETHOD(EnumFormatEtc)(THIS_ DWORD,IEnumFORMATETC**) PURE;
STDMETHOD(DAdvise)(THIS_ FORMATETC*,DWORD,IAdviseSink*,PDWORD) PURE;
STDMETHOD(DUnadvise)(THIS_ DWORD) PURE;
STDMETHOD(EnumDAdvise)(THIS_ IEnumSTATDATA**);
--- i386-mingw32\include\stdio.h Sun Aug 1 06:18:20 1999
+++ stdio.h Sun Nov 7 03:41:40 1999
@@ -203,9 +203,12 @@
int fprintf (FILE* filePrintTo, const char* szFormat, ...);
int printf (const char* szFormat, ...);
int sprintf (char* caBuffer, const char* szFormat, ...);
+int _snprintf (char* caBuffer, size_t n, const char* szFormat, ...);
int vfprintf (FILE* filePrintTo, const char* szFormat, va_list varg);
int vprintf (const char* szFormat, va_list varg);
int vsprintf (char* caBuffer, const char* szFormat, va_list varg);
+int _vsnprintf (char* caBuffer, size_t n, const char* szFormat,
+ va_list varg);
/* Wide character versions */
int fwprintf (FILE* filePrintTo, const wchar_t* wsFormat, ...);
--- i386-mingw32\include\winbase.h Sat Jul 31 17:48:48 1999
+++ winbase.h Fri Feb 25 01:49:08 2000
@@ -989,7 +989,7 @@
BOOL WINAPI CopyFileExW(LPCWSTR,LPCWSTR,LPPROGRESS_ROUTINE,LPVOID,LPBOOL,DWORD);
#define RtlMoveMemory memmove
#define RtlCopyMemory memcpy
-#define RtlFillMemory memset
+#define RtlFillMemory(d,l,f) memset ((d),(f),(l))
#define RtlZeroMemory(d,l) memset((d),0,(l))
#define MoveMemory RtlMoveMemory
#define CopyMemory RtlCopyMemory
--- i386-mingw32\include\winsock.h Sat Jul 31 17:48:50 1999
+++ winsock.h Mon Mar 20 13:47:12 2000
@@ -13,6 +13,10 @@
#define _GNU_H_WINDOWS32_SOCKETS
#include <windows.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#ifndef _SYS_TYPES_H
typedef unsigned char u_char;
typedef unsigned short u_short;
@@ -495,4 +499,9 @@
typedef struct timeval TIMEVAL;
typedef struct timeval *PTIMEVAL;
typedef struct timeval *LPTIMEVAL;
+
+#ifdef __cplusplus
+}
#endif
+#endif
+

2
autogen.sh Executable file
View File

@@ -0,0 +1,2 @@
#!/bin/sh
autoconf

1317
config.guess vendored Executable file

File diff suppressed because it is too large Load Diff

1411
config.sub vendored Executable file

File diff suppressed because it is too large Load Diff

3643
configure vendored

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

13
contrib/Makefile.in Normal file
View File

@@ -0,0 +1,13 @@
#
# Makefile : Builds wxWindows utils for Unix.
#
all:
cd src; $(MAKE)
clean:
cd src; $(MAKE) clean
cd samples; $(MAKE) clean
samples:
cd samples; $(MAKE)

980
contrib/configure vendored Executable file
View File

@@ -0,0 +1,980 @@
#! /bin/sh
# From configure.in Id: configure.in
# Guess values for system-dependent variables and create Makefiles.
# Generated automatically using autoconf version 2.13
# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
#
# This configure script is free software; the Free Software Foundation
# gives unlimited permission to copy, distribute and modify it.
# Defaults:
ac_help=
ac_default_prefix=/usr/local
# Any additions from configure.in:
# Initialize some variables set by options.
# The variables have the same names as the options, with
# dashes changed to underlines.
build=NONE
cache_file=./config.cache
exec_prefix=NONE
host=NONE
no_create=
nonopt=NONE
no_recursion=
prefix=NONE
program_prefix=NONE
program_suffix=NONE
program_transform_name=s,x,x,
silent=
site=
srcdir=
target=NONE
verbose=
x_includes=NONE
x_libraries=NONE
bindir='${exec_prefix}/bin'
sbindir='${exec_prefix}/sbin'
libexecdir='${exec_prefix}/libexec'
datadir='${prefix}/share'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
libdir='${exec_prefix}/lib'
includedir='${prefix}/include'
oldincludedir='/usr/include'
infodir='${prefix}/info'
mandir='${prefix}/man'
# Initialize some other variables.
subdirs=
MFLAGS= MAKEFLAGS=
SHELL=${CONFIG_SHELL-/bin/sh}
# Maximum number of lines to put in a shell here document.
ac_max_here_lines=12
ac_prev=
for ac_option
do
# If the previous option needs an argument, assign it.
if test -n "$ac_prev"; then
eval "$ac_prev=\$ac_option"
ac_prev=
continue
fi
case "$ac_option" in
-*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
*) ac_optarg= ;;
esac
# Accept the important Cygnus configure options, so we can diagnose typos.
case "$ac_option" in
-bindir | --bindir | --bindi | --bind | --bin | --bi)
ac_prev=bindir ;;
-bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
bindir="$ac_optarg" ;;
-build | --build | --buil | --bui | --bu)
ac_prev=build ;;
-build=* | --build=* | --buil=* | --bui=* | --bu=*)
build="$ac_optarg" ;;
-cache-file | --cache-file | --cache-fil | --cache-fi \
| --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
ac_prev=cache_file ;;
-cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
| --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
cache_file="$ac_optarg" ;;
-datadir | --datadir | --datadi | --datad | --data | --dat | --da)
ac_prev=datadir ;;
-datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
| --da=*)
datadir="$ac_optarg" ;;
-disable-* | --disable-*)
ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
# Reject names that are not valid shell variable names.
if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
{ echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
fi
ac_feature=`echo $ac_feature| sed 's/-/_/g'`
eval "enable_${ac_feature}=no" ;;
-enable-* | --enable-*)
ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
# Reject names that are not valid shell variable names.
if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
{ echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
fi
ac_feature=`echo $ac_feature| sed 's/-/_/g'`
case "$ac_option" in
*=*) ;;
*) ac_optarg=yes ;;
esac
eval "enable_${ac_feature}='$ac_optarg'" ;;
-exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
| --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
| --exec | --exe | --ex)
ac_prev=exec_prefix ;;
-exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
| --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
| --exec=* | --exe=* | --ex=*)
exec_prefix="$ac_optarg" ;;
-gas | --gas | --ga | --g)
# Obsolete; use --with-gas.
with_gas=yes ;;
-help | --help | --hel | --he)
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat << EOF
Usage: configure [options] [host]
Options: [defaults in brackets after descriptions]
Configuration:
--cache-file=FILE cache test results in FILE
--help print this message
--no-create do not create output files
--quiet, --silent do not print \`checking...' messages
--version print the version of autoconf that created configure
Directory and file names:
--prefix=PREFIX install architecture-independent files in PREFIX
[$ac_default_prefix]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[same as prefix]
--bindir=DIR user executables in DIR [EPREFIX/bin]
--sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
--libexecdir=DIR program executables in DIR [EPREFIX/libexec]
--datadir=DIR read-only architecture-independent data in DIR
[PREFIX/share]
--sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data in DIR
[PREFIX/com]
--localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
--libdir=DIR object code libraries in DIR [EPREFIX/lib]
--includedir=DIR C header files in DIR [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
--infodir=DIR info documentation in DIR [PREFIX/info]
--mandir=DIR man documentation in DIR [PREFIX/man]
--srcdir=DIR find the sources in DIR [configure dir or ..]
--program-prefix=PREFIX prepend PREFIX to installed program names
--program-suffix=SUFFIX append SUFFIX to installed program names
--program-transform-name=PROGRAM
run sed PROGRAM on installed program names
EOF
cat << EOF
Host type:
--build=BUILD configure for building on BUILD [BUILD=HOST]
--host=HOST configure for HOST [guessed]
--target=TARGET configure for TARGET [TARGET=HOST]
Features and packages:
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--x-includes=DIR X include files are in DIR
--x-libraries=DIR X library files are in DIR
EOF
if test -n "$ac_help"; then
echo "--enable and --with options recognized:$ac_help"
fi
exit 0 ;;
-host | --host | --hos | --ho)
ac_prev=host ;;
-host=* | --host=* | --hos=* | --ho=*)
host="$ac_optarg" ;;
-includedir | --includedir | --includedi | --included | --include \
| --includ | --inclu | --incl | --inc)
ac_prev=includedir ;;
-includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
| --includ=* | --inclu=* | --incl=* | --inc=*)
includedir="$ac_optarg" ;;
-infodir | --infodir | --infodi | --infod | --info | --inf)
ac_prev=infodir ;;
-infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
infodir="$ac_optarg" ;;
-libdir | --libdir | --libdi | --libd)
ac_prev=libdir ;;
-libdir=* | --libdir=* | --libdi=* | --libd=*)
libdir="$ac_optarg" ;;
-libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
| --libexe | --libex | --libe)
ac_prev=libexecdir ;;
-libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
| --libexe=* | --libex=* | --libe=*)
libexecdir="$ac_optarg" ;;
-localstatedir | --localstatedir | --localstatedi | --localstated \
| --localstate | --localstat | --localsta | --localst \
| --locals | --local | --loca | --loc | --lo)
ac_prev=localstatedir ;;
-localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
| --localstate=* | --localstat=* | --localsta=* | --localst=* \
| --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
localstatedir="$ac_optarg" ;;
-mandir | --mandir | --mandi | --mand | --man | --ma | --m)
ac_prev=mandir ;;
-mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
mandir="$ac_optarg" ;;
-nfp | --nfp | --nf)
# Obsolete; use --without-fp.
with_fp=no ;;
-no-create | --no-create | --no-creat | --no-crea | --no-cre \
| --no-cr | --no-c)
no_create=yes ;;
-no-recursion | --no-recursion | --no-recursio | --no-recursi \
| --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
no_recursion=yes ;;
-oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
| --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
| --oldin | --oldi | --old | --ol | --o)
ac_prev=oldincludedir ;;
-oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
| --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
| --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
oldincludedir="$ac_optarg" ;;
-prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
ac_prev=prefix ;;
-prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
prefix="$ac_optarg" ;;
-program-prefix | --program-prefix | --program-prefi | --program-pref \
| --program-pre | --program-pr | --program-p)
ac_prev=program_prefix ;;
-program-prefix=* | --program-prefix=* | --program-prefi=* \
| --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
program_prefix="$ac_optarg" ;;
-program-suffix | --program-suffix | --program-suffi | --program-suff \
| --program-suf | --program-su | --program-s)
ac_prev=program_suffix ;;
-program-suffix=* | --program-suffix=* | --program-suffi=* \
| --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
program_suffix="$ac_optarg" ;;
-program-transform-name | --program-transform-name \
| --program-transform-nam | --program-transform-na \
| --program-transform-n | --program-transform- \
| --program-transform | --program-transfor \
| --program-transfo | --program-transf \
| --program-trans | --program-tran \
| --progr-tra | --program-tr | --program-t)
ac_prev=program_transform_name ;;
-program-transform-name=* | --program-transform-name=* \
| --program-transform-nam=* | --program-transform-na=* \
| --program-transform-n=* | --program-transform-=* \
| --program-transform=* | --program-transfor=* \
| --program-transfo=* | --program-transf=* \
| --program-trans=* | --program-tran=* \
| --progr-tra=* | --program-tr=* | --program-t=*)
program_transform_name="$ac_optarg" ;;
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
| --sbi=* | --sb=*)
sbindir="$ac_optarg" ;;
-sharedstatedir | --sharedstatedir | --sharedstatedi \
| --sharedstated | --sharedstate | --sharedstat | --sharedsta \
| --sharedst | --shareds | --shared | --share | --shar \
| --sha | --sh)
ac_prev=sharedstatedir ;;
-sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
| --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
| --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
| --sha=* | --sh=*)
sharedstatedir="$ac_optarg" ;;
-site | --site | --sit)
ac_prev=site ;;
-site=* | --site=* | --sit=*)
site="$ac_optarg" ;;
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
ac_prev=srcdir ;;
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
srcdir="$ac_optarg" ;;
-sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
| --syscon | --sysco | --sysc | --sys | --sy)
ac_prev=sysconfdir ;;
-sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
| --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
sysconfdir="$ac_optarg" ;;
-target | --target | --targe | --targ | --tar | --ta | --t)
ac_prev=target ;;
-target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
target="$ac_optarg" ;;
-v | -verbose | --verbose | --verbos | --verbo | --verb)
verbose=yes ;;
-version | --version | --versio | --versi | --vers)
echo "configure generated by autoconf version 2.13"
exit 0 ;;
-with-* | --with-*)
ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
# Reject names that are not valid shell variable names.
if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
{ echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
fi
ac_package=`echo $ac_package| sed 's/-/_/g'`
case "$ac_option" in
*=*) ;;
*) ac_optarg=yes ;;
esac
eval "with_${ac_package}='$ac_optarg'" ;;
-without-* | --without-*)
ac_package=`echo $ac_option|sed -e 's/-*without-//'`
# Reject names that are not valid shell variable names.
if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
{ echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
fi
ac_package=`echo $ac_package| sed 's/-/_/g'`
eval "with_${ac_package}=no" ;;
--x)
# Obsolete; use --with-x.
with_x=yes ;;
-x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
| --x-incl | --x-inc | --x-in | --x-i)
ac_prev=x_includes ;;
-x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
| --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
x_includes="$ac_optarg" ;;
-x-libraries | --x-libraries | --x-librarie | --x-librari \
| --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
ac_prev=x_libraries ;;
-x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
| --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
x_libraries="$ac_optarg" ;;
-*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
;;
*)
if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
echo "configure: warning: $ac_option: invalid host type" 1>&2
fi
if test "x$nonopt" != xNONE; then
{ echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
fi
nonopt="$ac_option"
;;
esac
done
if test -n "$ac_prev"; then
{ echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
fi
trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
# File descriptor usage:
# 0 standard input
# 1 file creation
# 2 errors and warnings
# 3 some systems may open it to /dev/tty
# 4 used on the Kubota Titan
# 6 checking for... messages and results
# 5 compiler messages saved in config.log
if test "$silent" = yes; then
exec 6>/dev/null
else
exec 6>&1
fi
exec 5>./config.log
echo "\
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
" 1>&5
# Strip out --no-create and --no-recursion so they do not pile up.
# Also quote any args containing shell metacharacters.
ac_configure_args=
for ac_arg
do
case "$ac_arg" in
-no-create | --no-create | --no-creat | --no-crea | --no-cre \
| --no-cr | --no-c) ;;
-no-recursion | --no-recursion | --no-recursio | --no-recursi \
| --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
*" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
ac_configure_args="$ac_configure_args '$ac_arg'" ;;
*) ac_configure_args="$ac_configure_args $ac_arg" ;;
esac
done
# NLS nuisances.
# Only set these to C if already set. These must not be set unconditionally
# because not all systems understand e.g. LANG=C (notably SCO).
# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
# Non-C LC_CTYPE values break the ctype check.
if test "${LANG+set}" = set; then LANG=C; export LANG; fi
if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
# confdefs.h avoids OS command line length limits that DEFS can exceed.
rm -rf conftest* confdefs.h
# AIX cpp loses on an empty file, so make sure it contains at least a newline.
echo > confdefs.h
# A filename unique to this package, relative to the directory that
# configure is in, which we can look for to find out if srcdir is correct.
ac_unique_file=Makefile.in
# Find the source files, if location was not specified.
if test -z "$srcdir"; then
ac_srcdir_defaulted=yes
# Try the directory containing this script, then its parent.
ac_prog=$0
ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
srcdir=$ac_confdir
if test ! -r $srcdir/$ac_unique_file; then
srcdir=..
fi
else
ac_srcdir_defaulted=no
fi
if test ! -r $srcdir/$ac_unique_file; then
if test "$ac_srcdir_defaulted" = yes; then
{ echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
else
{ echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
fi
fi
srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
# Prefer explicitly selected file to automatically selected ones.
if test -z "$CONFIG_SITE"; then
if test "x$prefix" != xNONE; then
CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
else
CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
fi
fi
for ac_site_file in $CONFIG_SITE; do
if test -r "$ac_site_file"; then
echo "loading site script $ac_site_file"
. "$ac_site_file"
fi
done
if test -r "$cache_file"; then
echo "loading cache $cache_file"
. $cache_file
else
echo "creating cache $cache_file"
> $cache_file
fi
ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
ac_cpp='$CPP $CPPFLAGS'
ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
cross_compiling=$ac_cv_prog_cc_cross
ac_exeext=
ac_objext=o
if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
# Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
ac_n= ac_c='
' ac_t=' '
else
ac_n=-n ac_c= ac_t=
fi
else
ac_n= ac_c='\c' ac_t=
fi
ESD_LINK=
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
echo "configure:531: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
fi
if test -z "$CPP"; then
if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# This must be in double quotes, not single quotes, because CPP may get
# substituted into the Makefile and "${CC-cc}" will confuse make.
CPP="${CC-cc} -E"
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
#line 546 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:552: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
else
echo "$ac_err" >&5
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
#line 563 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:569: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
else
echo "$ac_err" >&5
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
CPP="${CC-cc} -nologo -E"
cat > conftest.$ac_ext <<EOF
#line 580 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:586: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
else
echo "$ac_err" >&5
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
CPP=/lib/cpp
fi
rm -f conftest*
fi
rm -f conftest*
fi
rm -f conftest*
ac_cv_prog_CPP="$CPP"
fi
CPP="$ac_cv_prog_CPP"
else
ac_cv_prog_CPP="$CPP"
fi
echo "$ac_t""$CPP" 1>&6
ac_safe=`echo "esd.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for esd.h""... $ac_c" 1>&6
echo "configure:612: checking for esd.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 617 "configure"
#include "confdefs.h"
#include <esd.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:622: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
eval "ac_cv_header_$ac_safe=yes"
else
echo "$ac_err" >&5
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
eval "ac_cv_header_$ac_safe=no"
fi
rm -f conftest*
fi
if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
echo "$ac_t""yes" 1>&6
echo $ac_n "checking for esd_close in -lesd""... $ac_c" 1>&6
echo "configure:640: checking for esd_close in -lesd" >&5
ac_lib_var=`echo esd'_'esd_close | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_save_LIBS="$LIBS"
LIBS="-lesd $LIBS"
cat > conftest.$ac_ext <<EOF
#line 648 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char esd_close();
int main() {
esd_close()
; return 0; }
EOF
if { (eval echo configure:659: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=no"
fi
rm -f conftest*
LIBS="$ac_save_LIBS"
fi
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
echo "$ac_t""yes" 1>&6
ESD_LINK="-lesd"
else
echo "$ac_t""no" 1>&6
fi
else
echo "$ac_t""no" 1>&6
fi
if test "$ESD_LINK" != "" ; then
echo "ESound detected"
fi
PATH_IFS=$wx_cv_path_ifs
WX_TARGET_LIBRARY=$wx_cv_target_library
WX_TARGET_LIBRARY_TYPE=$wx_cv_target_libtype
trap '' 1 2 15
cat > confcache <<\EOF
# This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure
# scripts and configure runs. It is not useful on other systems.
# If it contains results you don't want to keep, you may remove or edit it.
#
# By default, configure uses ./config.cache as the cache file,
# creating it if it does not exist already. You can give configure
# the --cache-file=FILE option to use a different cache file; that is
# what configure does when it calls configure scripts in
# subdirectories, so they share the cache.
# Giving --cache-file=/dev/null disables caching, for debugging configure.
# config.status only pays attention to the cache file if you give it the
# --recheck option to rerun configure.
#
EOF
# The following way of writing the cache mishandles newlines in values,
# but we know of no workaround that is simple, portable, and efficient.
# So, don't put newlines in cache variables' values.
# Ultrix sh set writes to stderr and can't be redirected directly,
# and sets the high bit in the cache file unless we assign to the vars.
(set) 2>&1 |
case `(ac_space=' '; set | grep ac_space) 2>&1` in
*ac_space=\ *)
# `set' does not quote correctly, so add quotes (double-quote substitution
# turns \\\\ into \\, and sed turns \\ into \).
sed -n \
-e "s/'/'\\\\''/g" \
-e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
;;
*)
# `set' quotes correctly as required by POSIX, so do not add quotes.
sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
;;
esac >> confcache
if cmp -s $cache_file confcache; then
:
else
if test -w $cache_file; then
echo "updating cache $cache_file"
cat confcache > $cache_file
else
echo "not updating unwritable cache $cache_file"
fi
fi
rm -f confcache
trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
test "x$prefix" = xNONE && prefix=$ac_default_prefix
# Let make expand exec_prefix.
test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
# Any assignment to VPATH causes Sun make to only execute
# the first set of double-colon rules, so remove it if not needed.
# If there is a colon in the path, we need to keep it.
if test "x$srcdir" = x.; then
ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
fi
trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
# Transform confdefs.h into DEFS.
# Protect against shell expansion while executing Makefile rules.
# Protect against Makefile macro expansion.
cat > conftest.defs <<\EOF
s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g
s%\[%\\&%g
s%\]%\\&%g
s%\$%$$%g
EOF
DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
rm -f conftest.defs
# Without the "./", some shells look in PATH for config.status.
: ${CONFIG_STATUS=./config.status}
echo creating $CONFIG_STATUS
rm -f $CONFIG_STATUS
cat > $CONFIG_STATUS <<EOF
#! /bin/sh
# Generated automatically by configure.
# Run this file to recreate the current configuration.
# This directory was configured as follows,
# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
#
# $0 $ac_configure_args
#
# Compiler output produced by configure, useful for debugging
# configure, is in ./config.log if it exists.
ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
for ac_option
do
case "\$ac_option" in
-recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
-version | --version | --versio | --versi | --vers | --ver | --ve | --v)
echo "$CONFIG_STATUS generated by autoconf version 2.13"
exit 0 ;;
-help | --help | --hel | --he | --h)
echo "\$ac_cs_usage"; exit 0 ;;
*) echo "\$ac_cs_usage"; exit 1 ;;
esac
done
ac_given_srcdir=$srcdir
trap 'rm -fr `echo "
Makefile
src/Makefile
src/ogl/Makefile
src/mmedia/Makefile
src/stc/Makefile
samples/Makefile
samples/mmedia/Makefile
samples/ogl/Makefile
samples/ogl/ogledit/Makefile
samples/ogl/studio/Makefile
samples/stc/Makefile
" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
EOF
cat >> $CONFIG_STATUS <<EOF
# Protect against being on the right side of a sed subst in config.status.
sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
$ac_vpsub
$extrasub
s%@SHELL@%$SHELL%g
s%@CFLAGS@%$CFLAGS%g
s%@CPPFLAGS@%$CPPFLAGS%g
s%@CXXFLAGS@%$CXXFLAGS%g
s%@FFLAGS@%$FFLAGS%g
s%@DEFS@%$DEFS%g
s%@LDFLAGS@%$LDFLAGS%g
s%@LIBS@%$LIBS%g
s%@exec_prefix@%$exec_prefix%g
s%@prefix@%$prefix%g
s%@program_transform_name@%$program_transform_name%g
s%@bindir@%$bindir%g
s%@sbindir@%$sbindir%g
s%@libexecdir@%$libexecdir%g
s%@datadir@%$datadir%g
s%@sysconfdir@%$sysconfdir%g
s%@sharedstatedir@%$sharedstatedir%g
s%@localstatedir@%$localstatedir%g
s%@libdir@%$libdir%g
s%@includedir@%$includedir%g
s%@oldincludedir@%$oldincludedir%g
s%@infodir@%$infodir%g
s%@mandir@%$mandir%g
s%@CPP@%$CPP%g
s%@PATH_IFS@%$PATH_IFS%g
s%@ESD_LINK@%$ESD_LINK%g
s%@WX_TARGET_LIBRARY@%$WX_TARGET_LIBRARY%g
s%@WX_TARGET_LIBRARY_TYPE@%$WX_TARGET_LIBRARY_TYPE%g
CEOF
EOF
cat >> $CONFIG_STATUS <<\EOF
# Split the substitutions into bite-sized pieces for seds with
# small command number limits, like on Digital OSF/1 and HP-UX.
ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
ac_file=1 # Number of current file.
ac_beg=1 # First line for current file.
ac_end=$ac_max_sed_cmds # Line after last line for current file.
ac_more_lines=:
ac_sed_cmds=""
while $ac_more_lines; do
if test $ac_beg -gt 1; then
sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
else
sed "${ac_end}q" conftest.subs > conftest.s$ac_file
fi
if test ! -s conftest.s$ac_file; then
ac_more_lines=false
rm -f conftest.s$ac_file
else
if test -z "$ac_sed_cmds"; then
ac_sed_cmds="sed -f conftest.s$ac_file"
else
ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
fi
ac_file=`expr $ac_file + 1`
ac_beg=$ac_end
ac_end=`expr $ac_end + $ac_max_sed_cmds`
fi
done
if test -z "$ac_sed_cmds"; then
ac_sed_cmds=cat
fi
EOF
cat >> $CONFIG_STATUS <<EOF
CONFIG_FILES=\${CONFIG_FILES-"Makefile
src/Makefile
src/ogl/Makefile
src/mmedia/Makefile
src/stc/Makefile
samples/Makefile
samples/mmedia/Makefile
samples/ogl/Makefile
samples/ogl/ogledit/Makefile
samples/ogl/studio/Makefile
samples/stc/Makefile
"}
EOF
cat >> $CONFIG_STATUS <<\EOF
for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
# Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
case "$ac_file" in
*:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
*) ac_file_in="${ac_file}.in" ;;
esac
# Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
# Remove last slash and all that follows it. Not all systems have dirname.
ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
# The file is in a subdirectory.
test ! -d "$ac_dir" && mkdir "$ac_dir"
ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
# A "../" for each directory in $ac_dir_suffix.
ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
else
ac_dir_suffix= ac_dots=
fi
case "$ac_given_srcdir" in
.) srcdir=.
if test -z "$ac_dots"; then top_srcdir=.
else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
/*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
*) # Relative path.
srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
top_srcdir="$ac_dots$ac_given_srcdir" ;;
esac
echo creating "$ac_file"
rm -f "$ac_file"
configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
case "$ac_file" in
*Makefile*) ac_comsub="1i\\
# $configure_input" ;;
*) ac_comsub= ;;
esac
ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
sed -e "$ac_comsub
s%@configure_input@%$configure_input%g
s%@srcdir@%$srcdir%g
s%@top_srcdir@%$top_srcdir%g
" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
fi; done
rm -f conftest.s*
EOF
cat >> $CONFIG_STATUS <<EOF
EOF
cat >> $CONFIG_STATUS <<\EOF
exit 0
EOF
chmod +x $CONFIG_STATUS
rm -fr confdefs* $ac_clean_files
test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1

51
contrib/configure.in Normal file
View File

@@ -0,0 +1,51 @@
dnl Process this file with autoconf to produce a configure script.
AC_REVISION($Id$)dnl
AC_INIT(Makefile.in)
dnl ---------------
dnl MMedia specific
dnl ---------------
dnl Check for ESD
ESD_LINK=
AC_CHECK_HEADER(esd.h, [
AC_CHECK_LIB(esd, esd_close, [
ESD_LINK="-lesd"
])
])
if test "$ESD_LINK" != "" ; then
echo "ESound detected"
fi
dnl -----------
dnl Final subst
PATH_IFS=$wx_cv_path_ifs
WX_TARGET_LIBRARY=$wx_cv_target_library
WX_TARGET_LIBRARY_TYPE=$wx_cv_target_libtype
AC_SUBST(PATH_IFS)
AC_SUBST(ESD_LINK)
AC_SUBST(WX_TARGET_LIBRARY)
AC_SUBST(WX_TARGET_LIBRARY_TYPE)
dnl -----------
dnl File output
AC_OUTPUT([
Makefile
src/Makefile
src/ogl/Makefile
src/mmedia/Makefile
src/stc/Makefile
samples/Makefile
samples/mmedia/Makefile
samples/ogl/Makefile
samples/ogl/ogledit/Makefile
samples/ogl/studio/Makefile
samples/stc/Makefile
])

5
contrib/docs/.cvsignore Normal file
View File

@@ -0,0 +1,5 @@
html
htmlhelp
pdf
winhelp
htb

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -0,0 +1,9 @@
\chapter{Bugs}\label{bugs}%
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
\setfooter{\thepage}{}{}{}{}{\thepage}
These are the known bugs.
\begin{itemize}\itemsep=0pt
\item No bugs
\end{itemize}

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 B

View File

@@ -0,0 +1,24 @@
%
% automatically generated by HelpGen from
% /home/guilhem/PROJECTS/wxWindows/utils/wxMMedia2/lib/cdbase.h at 26/Feb/00 14:52:12
%
\section{\class{wxCDAudio}}\label{wxcdaudio}
\wxheading{Derived from}
wxObject
\wxheading{Data structures}
{\small
\begin{verbatim}
typedef struct wxCDtime {
wxUint8 track
};
\end{verbatim}
}
{\small \begin{verbatim}
typedef enum { PLAYING, PAUSED, STOPPED } CDstatus
\end{verbatim}}

View File

@@ -0,0 +1,66 @@
%
% automatically generated by HelpGen from
% /home/guilhem/PROJECTS/wxWindows/utils/wxMMedia2/lib/cdunix.h at 26/Feb/00 14:52:10
%
\section{\class{wxCDAudioLinux}}\label{wxcdaudiolinux}
\wxheading{Derived from}
\helpref{wxCDAudio}{wxcdaudio}
\wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxCDAudioLinux::wxCDAudioLinux}\label{wxcdaudiolinuxwxcdaudiolinux}
\func{}{wxCDAudioLinux}{\void}
\func{}{wxCDAudioLinux}{\param{const char* }{dev\_name}}
\membersection{wxCDAudioLinux::\destruct{wxCDAudioLinux}}\label{wxcdaudiolinuxdtor}
\func{}{\destruct{wxCDAudioLinux}}{\void}
\membersection{wxCDAudioLinux::Play}\label{wxcdaudiolinuxplay}
\func{bool}{Play}{\param{const wxCDtime\& }{beg\_time}, \param{const wxCDtime\& }{end\_time}}
\membersection{wxCDAudioLinux::Pause}\label{wxcdaudiolinuxpause}
\func{bool}{Pause}{\void}
\membersection{wxCDAudioLinux::Resume}\label{wxcdaudiolinuxresume}
\func{bool}{Resume}{\void}
\membersection{wxCDAudioLinux::GetStatus}\label{wxcdaudiolinuxgetstatus}
\func{CDstatus}{GetStatus}{\void}
\membersection{wxCDAudioLinux::GetTime}\label{wxcdaudiolinuxgettime}
\func{wxCDtime}{GetTime}{\void}
\membersection{wxCDAudioLinux::GetToc}\label{wxcdaudiolinuxgettoc}
\func{CDtoc\&}{GetToc}{\void}
\membersection{wxCDAudioLinux::Ok}\label{wxcdaudiolinuxok}
\constfunc{bool}{Ok}{\void}
\membersection{wxCDAudioLinux::OpenDevice}\label{wxcdaudiolinuxopendevice}
\func{void}{OpenDevice}{\param{const char* }{dev\_name}}

View File

@@ -0,0 +1,78 @@
%
% automatically generated by HelpGen from
% /home/guilhem/PROJECTS/wxWindows/utils/wxMMedia2/lib/cdwin.h at 26/Feb/00 14:52:15
%
\section{\class{wxCDAudioWin}}\label{wxcdaudiowin}
\wxheading{Derived from}
\helpref{wxCDAudio}{wxcdaudio}
\wxheading{Data structures}
{\small
\begin{verbatim}
typedef struct CDAW\_Internal {
MCIDEVICEID dev\_id
};
\end{verbatim}
}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxCDAudioWin::wxCDAudioWin}\label{wxcdaudiowinwxcdaudiowin}
\func{}{wxCDAudioWin}{\void}
\func{}{wxCDAudioWin}{\param{const char* }{dev\_name}}
\membersection{wxCDAudioWin::\destruct{wxCDAudioWin}}\label{wxcdaudiowindtor}
\func{}{\destruct{wxCDAudioWin}}{\void}
\membersection{wxCDAudioWin::Play}\label{wxcdaudiowinplay}
\func{bool}{Play}{\param{const wxCDtime\& }{beg\_time}, \param{const wxCDtime\& }{end\_time}}
\membersection{wxCDAudioWin::Pause}\label{wxcdaudiowinpause}
\func{bool}{Pause}{\void}
\membersection{wxCDAudioWin::Resume}\label{wxcdaudiowinresume}
\func{bool}{Resume}{\void}
\membersection{wxCDAudioWin::GetStatus}\label{wxcdaudiowingetstatus}
\func{CDstatus}{GetStatus}{\void}
\membersection{wxCDAudioWin::GetTime}\label{wxcdaudiowingettime}
\func{wxCDtime}{GetTime}{\void}
\membersection{wxCDAudioWin::GetToc}\label{wxcdaudiowingettoc}
\func{const CDtoc\&}{GetToc}{\void}
\membersection{wxCDAudioWin::Ok}\label{wxcdaudiowinok}
\constfunc{bool}{Ok}{\void}
\membersection{wxCDAudioWin::PrepareToc}\label{wxcdaudiowinpreparetoc}
\func{void}{PrepareToc}{\void}

View File

@@ -0,0 +1,111 @@
%
% automatically generated by HelpGen from
% /home/guilhem/PROJECTS/wxWindows/utils/wxMMedia2/lib/cdbase.h at 26/Feb/00 14:52:12
%
\section{\class{CDtoc}}\label{cdtoc}
Table of contents manager
\wxheading{Derived from}
No base class
\wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{CDtoc::CDtoc}\label{cdtoccdtoc}
\func{}{CDtoc}{\param{wxCDtime\& }{tot\_tm}, \param{wxCDtime* }{trks\_tm}, \param{wxCDtime* }{trks\_pos}}
\membersection{CDtoc::GetTrackTime}\label{cdtocgettracktime}
\constfunc{wxCDtime}{GetTrackTime}{\param{wxUint8 }{track}}
Returns the length of the specified track
track: track to get length
\membersection{CDtoc::GetTrackPos}\label{cdtocgettrackpos}
\constfunc{wxCDtime}{GetTrackPos}{\param{wxUint8 }{track}}
Returns the position of the specified track
track: track to get position
\membersection{CDtoc::GetTotalTime}\label{cdtocgettotaltime}
\constfunc{wxCDtime}{GetTotalTime}{\void}
Returns the total time
\membersection{wxCDAudio::wxCDAudio}\label{wxcdaudiowxcdaudio}
\func{}{wxCDAudio}{\void}
\membersection{wxCDAudio::\destruct{wxCDAudio}}\label{wxcdaudiodtor}
\func{}{\destruct{wxCDAudio}}{\void}
\membersection{wxCDAudio::Play}\label{wxcdaudioplay}
\func{bool}{Play}{\param{const wxCDtime\& }{beg\_play}, \param{const wxCDtime\& }{end\_play}}
Play audio at the specified position
\func{bool}{Play}{\param{const wxCDtime\& }{beg\_play}}
Play audio from the specified to the end of the CD audio
\func{bool}{Play}{\param{wxUint8 }{beg\_track}, \param{wxUint8 }{end\_track = 0}}
\membersection{wxCDAudio::Pause}\label{wxcdaudiopause}
\func{bool}{Pause}{\void}
Pause the audio playing
\membersection{wxCDAudio::Resume}\label{wxcdaudioresume}
\func{bool}{Resume}{\void}
Resume a paused audio playing
\membersection{wxCDAudio::GetStatus}\label{wxcdaudiogetstatus}
\func{CDstatus}{GetStatus}{\void}
Get the current CD status
\membersection{wxCDAudio::GetTime}\label{wxcdaudiogettime}
\func{wxCDtime}{GetTime}{\void}
Get the current playing time
\membersection{wxCDAudio::GetToc}\label{wxcdaudiogettoc}
\func{const CDtoc\&}{GetToc}{\void}
Returns the table of contents
\membersection{wxCDAudio::Ok}\label{wxcdaudiook}
\constfunc{bool}{Ok}{\void}
CD ok

View File

@@ -0,0 +1,3 @@
\chapter{Change log}
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
\setfooter{\thepage}{}{}{}{}{\thepage}

View File

@@ -0,0 +1,13 @@
\chapter{Class reference}\label{classref}
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
\setfooter{\thepage}{}{}{}{}{\thepage}
These are the main Mmedia classes.
\input cdaudio.tex
\input cdaudlnx.tex
\input cdaudwin.tex
\input cdtoc.tex
\input sndbase.tex
\input sndfile.tex
\input sndfrmt.tex

Binary file not shown.

After

Width:  |  Height:  |  Size: 231 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 B

View File

@@ -0,0 +1,47 @@
\chapter{Introduction}
\pagenumbering{arabic}%
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
\setfooter{\thepage}{}{}{}{}{\thepage}
The MMedia wxWindows extension is a wxWindows library which provides you
a full set of multimedia classes including sound recording/playing,
cd audio playing and video playing. The API is portable and can be used
on any supported systems with the insurance the behaviour will be the
same.
\section{File structure}
These are the files that comprise the mmedia library.
\begin{description}\itemsep=0pt
\item[sndbase.h] Header for wxSoundStream base class and wxSoundFormat base class.
\item[sndbase.cpp] Basic objects implementation.
\item[sndfile.h] wxSoundFileStream base class header.
\item[sndfile.cpp] wxSoundFileStream base class implementation.
\item[sndpcm.h] wxSoundFormatPcm class header.
\item[sndpcm.cpp] wxSoundFormatPcm class implementation.
\item[sndcpcm.h] wxSoundCodecPcm class header (PCM converter).
\item[sndcpcm.cpp] wxSoundCodecPcm class implementation (PCM converter).
\item[sndulaw.h]
\item[sndulaw.cpp]
\item[sndg72x.h]
\item[sndg72x.cpp]
\item[sndoss.h]
\item[sndoss.cpp]
\item[sndesd.h]
\item[sndesd.cpp]
\item[sndwin.h]
\item[sndwin.cpp]
\item[cdbase.h]
\item[cdbase.cpp]
\item[cdunix.h]
\item[cdunix.cpp]
\item[cdwin.h]
\item[cdwin.cpp]
\item[vidbase.h]
\item[vidbase.cpp]
\item[vidxanm.h]
\item[vidxanm.cpp]
\item[vidwin.h]
\item[vidwin.cpp]
\end{description}

View File

@@ -0,0 +1,45 @@
\documentstyle[a4,makeidx,verbatim,texhelp,fancyheadings]{report}
\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{MMedia for wxWindows}
\author{Guilhem Lavaux}
\date{March 2000}
\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}

View File

@@ -0,0 +1,520 @@
%
% %%%%%%% %%%%% %%%%%% %%%%% % %
% % % % % % % % % %
% % % % % % % % % %
% %%%%%%% %%%%% %%%%%% % % %
% % % % % % % % %
% % % % % % % % %
% % %%%%%% %%%%%% %%%%% % %
%
% 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).

View File

@@ -0,0 +1,6 @@
\chapter{MMboard: a sample MMedia application}\label{mmboard}%
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
\setfooter{\thepage}{}{}{}{}{\thepage}
To be written.

View File

@@ -0,0 +1,68 @@
%
% automatically generated by HelpGen from
% /home/guilhem/PROJECTS/wxWindows/utils/wxMMedia2/lib/sndaiff.h at 26/Feb/00 14:52:29
%
\section{\class{wxSoundAiff}}\label{wxsoundaiff}
AIFF codec
\wxheading{Derived from}
\helpref{wxSoundFileStream}{wxsoundfilestream}
\wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxSoundAiff::wxSoundAiff}\label{wxsoundaiffwxsoundaiff}
\func{}{wxSoundAiff}{\param{wxInputStream\& }{stream}, \param{wxSoundStream\& }{io\_sound}}
\func{}{wxSoundAiff}{\param{wxOutputStream\& }{stream}, \param{wxSoundStream\& }{io\_sound}}
\membersection{wxSoundAiff::\destruct{wxSoundAiff}}\label{wxsoundaiffdtor}
\func{}{\destruct{wxSoundAiff}}{\void}
\membersection{wxSoundAiff::CanRead}\label{wxsoundaiffcanread}
\func{bool}{CanRead}{\void}
\membersection{wxSoundAiff::GetCodecName}\label{wxsoundaiffgetcodecname}
\constfunc{wxString}{GetCodecName}{\void}
\membersection{wxSoundAiff::PrepareToPlay}\label{wxsoundaiffpreparetoplay}
\func{bool}{PrepareToPlay}{\void}
\membersection{wxSoundAiff::PrepareToRecord}\label{wxsoundaiffpreparetorecord}
\func{bool}{PrepareToRecord}{\param{wxUint32 }{time}}
\membersection{wxSoundAiff::FinishRecording}\label{wxsoundaifffinishrecording}
\func{bool}{FinishRecording}{\void}
\membersection{wxSoundAiff::RepositionStream}\label{wxsoundaiffrepositionstream}
\func{bool}{RepositionStream}{\param{wxUint32 }{position}}
\membersection{wxSoundAiff::GetData}\label{wxsoundaiffgetdata}
\func{wxUint32}{GetData}{\param{void* }{buffer}, \param{wxUint32 }{len}}
\membersection{wxSoundAiff::PutData}\label{wxsoundaiffputdata}
\func{wxUint32}{PutData}{\param{const void* }{buffer}, \param{wxUint32 }{len}}

View File

@@ -0,0 +1,294 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Name: sndbase.tex
%% Purpose: wxMMedia docs
%% Author: Guilhem Lavaux <lavaux@easynet.fr>
%% Modified by:
%% Created: 2000
%% RCS-ID: $Id$
%% Copyright: (c) wxWindows team
%% Licence: wxWindows licence
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{\class{wxSoundStream}}\label{wxsoundstream}
Base class for sound streams
\wxheading{Derived from}
No base class
\wxheading{Include files}
<wx/mmedia/sndbase.h>
\wxheading{Data structures}
%%
%% wxSoundStream errors
%%
\wxheading{wxSoundStream errors}
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf wxSOUND\_NOERR}}{No error occured}
\twocolitem{{\bf wxSOUND\_IOERR}}{An input/output error occured, it may concern
either a driver or a file}
\twocolitem{{\bf wxSOUND\_INVFRMT}}{The sound format passed to the function is
invalid. Generally, it means that you passed out of range values to the codec
stream or you don't pass the right sound format object to the right sound codec
stream.}
\twocolitem{{\bf wxSOUND\_INVDEV}}{Invalid device. Generally, it means that the
sound stream didn't manage to open the device driver due to an invalid parameter
or to the fact that sound is not supported on this computer.}
\twocolitem{{\bf wxSOUND\_NOEXACT}}{No exact matching sound codec has been found for
this sound format. It means that the sound driver didn't manage to setup the sound
card with the specified values.}
\twocolitem{{\bf wxSOUND\_NOCODEC}}{No matching codec has been found. Generally, it
may happen when you call wxSoundRouterStream::SetSoundFormat().}
\twocolitem{{\bf wxSOUND\_MEMERR}}{Not enough memory.}
\end{twocollist}
%%
%% C callback
%%
\wxheading{C callback for wxSound event}
When a sound event is generated, it may either call the internal sound event
processor (which can be inherited) or call a C function. Its definition is:
\begin{verbatim}
typedef void (*wxSoundCallback)(wxSoundStream *stream, int evt,
void *cdata);
\end{verbatim}
The {\bf stream} parameter represents the current wxSoundStream.
The {\bf evt} parameter represents the sound event which is the cause of the calling. (See \helpref{wxSound events}{wxsoundstream}).
The {\bf cdata} parameter represents the user callback data which were specified
when the user called \helpref{wxSoundStream::Register}{wxsoundstreamregister}.
{\it Note:} There are two other ways to catch sound events: you can inherit the
sound stream and redefine \helpref{wxSoundStream::OnSoundEvent}{wxsoundstreamonsoundevent}, or you can reroute the events to another sound stream using \helpref{wxSoundStream::SetEventHandler}{wxsoundstreamseteventhandler}.
%%
%% wxSoundStream streaming mode
%%
\wxheading{wxSound streaming mode}
The wxSoundStream object can work in three different modes. These modes are specified
at the call to \helpref{wxSoundStream::StartProduction}{wxsoundstreamstartproduction}
and cannot be changed until you call
\helpref{wxSoundStream::StopProduction}{wxsoundstreamstopproduction}.
The {\bf wxSOUND\_INPUT} mode is the recording mode. It generates {\bf wxSOUND\_INPUT}
events and you cannot use wxSoundStream::Write().
The {\bf wxSOUND\_OUTPUT} mode is the playing mode. It generates {\bf wxSOUND\_OUTPUT}
events and you cannot use wxSoundStream::Read().
The {\bf wxSOUND\_DUPLEX} mode activates the full duplex mode. The full duplex requires
you to make synchronous call to \helpref{wxSoundStream::Read}{wxsoundstreamread} and
\helpref{wxSoundStream::Write}{wxsoundstreamwrite}. This means that you must be
careful with realtime problems. Each time you call Read you must call Write.
%%
%% wxSoundStream events
%%
\wxheading{wxSoundStream events}
The sound events are generated when the sound driver (or the sound stream) completes
a previous sound buffer. There are two possible sound events and two meanings.
The {\bf wxSOUND\_INPUT} event is generated when the sound stream has a new input
buffer ready to be read. You know that you can read a buffer of the size
\helpref{GetBestSize()}{wxsoundstreamgetbestsize} without blocking.
The {\bf wxSOUND\_OUTPUT} event is generated when the sound stream has completed a
previous buffer. This buffer has been sent to the sound driver and it is ready to
process a new buffer. Consequently, \helpref{Write}{wxsoundstreamwrite} will not
block too.
\latexignore{\rtfignore{\wxheading{Members}}}
%% Ctor && Dtor
\membersection{wxSoundStream::wxSoundStream}\label{wxsoundstreamwxsoundstream}
\func{}{wxSoundStream}{\void}
Default constructor.
\membersection{wxSoundStream::\destruct{wxSoundStream}}\label{wxsoundstreamdtor}
\func{}{\destruct{wxSoundStream}}{\void}
Destructor. The destructor stops automatically all started production and destroys
any temporary buffer.
%%
%% Read
%%
\membersection{wxSoundStream::Read}\label{wxsoundstreamread}
\func{wxSoundStream\&}{Read}{\param{void* }{buffer}, \param{wxUint32 }{len}}
Reads {\it len} bytes from the sound stream. This call may block the user so
use it carefully when you need to intensively refresh the GUI. You may be
interested by sound events: see \helpref{wxSoundStream::OnSoundEvent}{wxsoundstreamonsoundevent}.
It is better to use the size returned by \helpref{wxSoundStream::GetBestSize}{wxsoundstreamgetbestsize}: this may improve performance or accuracy of the
sound event system.
\wxheading{Parameters}
\docparam{len}{{\it len} is expressed in bytes. If you need to do conversions between bytes
and seconds use wxSoundFormat.
See \helpref{wxSoundFormatBase}{wxsoundformatbase}, \helpref{wxSoundStream::GetSoundFormat}{wxsoundstreamgetsoundformat}.}
\docparam{data}{Data in \it{buffer} are coded using the sound format attached to this sound
stream. The format is specified with
\helpref{SetSoundFormat}{wxsoundstreamsetsoundformat}.}
%%
%% Write
%%
\membersection{wxSoundStream::Write}\label{wxsoundstreamwrite}
\func{wxSoundStream\&}{Write}{\param{const void* }{buffer}, \param{wxUint32 }{len}}
Writes \it{len} bytes to the sound stream. This call may block the user so
use it carefully. You may be interested by sound events: see
\helpref{wxSoundStream::OnSoundEvent}{wxsoundstreamonsoundevent}.
It is better to use the size returned by \helpref{wxSoundStream::GetBestSize}{wxsoundstreamgetbestsize}: this may improve performance or accuracy of the
sound event system.
\wxheading{Parameters}
\docparam{len}{This is expressed in bytes. If you need to do conversions between bytes
and seconds use wxSoundFormat.
See \helpref{wxSoundFormatBase}{wxsoundformatbase}, \helpref{wxSoundStream::GetSoundFormat}{wxsoundstreamgetsoundformat}.}
\docparam{buffer}{Data in \it{buffer} are coded using the sound format attached to this sound
stream. The format is specified with
\helpref{SetSoundFormat}{wxsoundstreamsetsoundformat}.}
%%
%% GetBestSize
%%
\membersection{wxSoundStream::GetBestSize}\label{wxsoundstreamgetbestsize}
\constfunc{wxUint32}{GetBestSize}{\void}
This function returns the best size for IO calls. The best size provides you
a good alignment for data to be written (or read) to (or from) the sound stream.
So, when, for example, a sound event is sent, you are sure the sound stream
will not block for this buffer size.
%%
%% wxSoundStream:SetSoundFormat
%%
\membersection{wxSoundStream::SetSoundFormat}\label{wxsoundstreamsetsoundformat}
\func{bool}{SetSoundFormat}{\param{const wxSoundFormatBase\& }{format}}
SetSoundFormat is one of the key function of the wxSoundStream object.
It specifies the sound format the user needs. SetSoundFormat tries to
apply the format to the current sound stream (it can be a sound file or a
sound driver). Then, either it manages to apply it and it returns {\bf TRUE},
or it could not and it returns {\bf FALSE}. In this case, you must check
the error with
\helpref{wxSoundStream::GetError}{wxsoundstreamgeterror}. See
\helpref{wxSoundStream errors section}{wxsoundstream} for more details.
\wxheading{Note}
The {\bf format} object can be destroyed after the call. The object does not need it.
\wxheading{Note}
If the error is {\bf wxSOUND\_NOTEXACT}, the stream tries to find the best
approaching format and setups it. You can check the format which it applied
with \helpref{wxSoundStream::GetSoundFormat}{wxsoundstreamgetsoundformat}.
%%
%% GetSoundFormat
%%
\membersection{wxSoundStream::GetSoundFormat}\label{wxsoundstreamgetsoundformat}
\constfunc{wxSoundFormatBase\&}{GetSoundFormat}{\void}
It returns a reference to the current sound format of the stream represented by a
wxSoundFormatBase object. This object {\it must not} be destroyed by anyone except
the stream itself.
%%
%% SetCallback
%%
\membersection{wxSoundStream::SetCallback}\label{wxsoundstreamregister}
\func{void}{Register}{\param{int }{evt}, \param{wxSoundCallback }{cbk}, \param{void* }{cdata}}
It installs a C callback for wxSoundStream events. The C callbacks are still
useful to avoid hard inheritance. You can install only one callback per event.
Each callback has its callback data.
%%
%% StartProduction
%%
\membersection{wxSoundStream::StartProduction}\label{wxsoundstreamstartproduction}
\func{bool}{StartProduction}{\param{int }{evt}}
StartProduction starts the sound streaming. {\it evt} may be one of
{\bf wxSOUND\_INPUT}, {\bf wxSOUND\_OUTPUT} or {\bf wxSOUND\_DUPLEX}.
You cannot specify several flags at the same time. Starting the production
may automaticaly in position of buffer underrun (only in the case you activated
recording). Actually this may happen the sound IO queue is too short.
It is also advised that you fill quickly enough the sound IO queue when the
driver requests it (through a wxSoundEvent).
\membersection{wxSoundStream::StopProduction}\label{wxsoundstreamstopproduction}
\func{bool}{StopProduction}{\void}
I stops the async notifier and the sound streaming straightly.
\membersection{wxSoundStream::SetEventHandler}\label{wxsoundstreamseteventhandler}
\func{void}{SetEventHandler}{\param{wxSoundStream* }{handler}}
Sets the event handler: if it is non-null, all events are routed to it.
\membersection{wxSoundStream::GetError}\label{wxsoundstreamgeterror}
\constfunc{wxSoundError}{GetError}{\void}
It returns the last error which occured.
\membersection{wxSoundStream::GetLastAccess}\label{wxsoundstreamgetlastaccess}
\constfunc{wxUint32}{GetLastAccess}{\void}
It returns the number of bytes which were effectively written to/read from the sound stream.
\membersection{wxSoundStream::QueueFilled}\label{wxsoundstreamqueuefilled}
\constfunc{bool}{QueueFilled}{\void}
It returns whether the sound IO queue is full. When it is full, the next IO call will block
until the IO queue has at least one empty entry.
\membersection{wxSoundStream::OnSoundEvent}\label{wxsoundstreamonsoundevent}
\func{void}{OnSoundEvent}{\param{int }{evt}}
It is called by the wxSoundStream when a new sound event occured.

View File

@@ -0,0 +1,39 @@
%
% automatically generated by HelpGen from
% /home/guilhem/PROJECTS/wxWindows/utils/wxMMedia2/lib/sndcodec.h at 26/Feb/00 14:26:29
%
\section{\class{wxSoundStreamCodec}}\label{wxsoundstreamcodec}
\wxheading{Derived from}
\helpref{wxSoundStream}{wxsoundstream}
\wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxSoundStreamCodec::wxSoundStreamCodec}\label{wxsoundstreamcodecwxsoundstreamcodec}
\func{}{wxSoundStreamCodec}{\param{wxSoundStream\& }{snd\_io}}
\membersection{wxSoundStreamCodec::\destruct{wxSoundStreamCodec}}\label{wxsoundstreamcodecdtor}
\func{}{\destruct{wxSoundStreamCodec}}{\void}
\membersection{wxSoundStreamCodec::StartProduction}\label{wxsoundstreamcodecstartproduction}
\func{bool}{StartProduction}{\param{int }{evt}}
\membersection{wxSoundStreamCodec::StopProduction}\label{wxsoundstreamcodecstopproduction}
\func{bool}{StopProduction}{\void}
\membersection{wxSoundStreamCodec::GetBestSize}\label{wxsoundstreamcodecgetbestsize}
\constfunc{wxUint32}{GetBestSize}{\void}

View File

@@ -0,0 +1,64 @@
%
% automatically generated by HelpGen from
% /home/guilhem/PROJECTS/wxWindows/utils/wxMMedia2/lib/sndesd.h at 26/Feb/00 14:26:56
%
\section{\class{wxSoundStreamESD}}\label{wxsoundstreamesd}
ESD output class
\wxheading{Derived from}
\helpref{wxSoundStream}{wxsoundstream}
\wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxSoundStreamESD::wxSoundStreamESD}\label{wxsoundstreamesdwxsoundstreamesd}
\func{}{wxSoundStreamESD}{\param{const wxString\& }{hostname = "localhost"}}
\membersection{wxSoundStreamESD::\destruct{wxSoundStreamESD}}\label{wxsoundstreamesddtor}
\func{}{\destruct{wxSoundStreamESD}}{\void}
\membersection{wxSoundStreamESD::Read}\label{wxsoundstreamesdread}
\func{wxSoundStream\&}{Read}{\param{void* }{buffer}, \param{wxUint32 }{len}}
\membersection{wxSoundStreamESD::Write}\label{wxsoundstreamesdwrite}
\func{wxSoundStream\&}{Write}{\param{const void* }{buffer}, \param{wxUint32 }{len}}
\membersection{wxSoundStreamESD::SetSoundFormat}\label{wxsoundstreamesdsetsoundformat}
\func{bool}{SetSoundFormat}{\param{const wxSoundFormatBase\& }{format}}
\membersection{wxSoundStreamESD::StartProduction}\label{wxsoundstreamesdstartproduction}
\func{bool}{StartProduction}{\param{int }{evt}}
\membersection{wxSoundStreamESD::StopProduction}\label{wxsoundstreamesdstopproduction}
\func{bool}{StopProduction}{\void}
\membersection{wxSoundStreamESD::WakeUpEvt}\label{wxsoundstreamesdwakeupevt}
\func{void}{WakeUpEvt}{\param{int }{evt}}
You should not call this.
\membersection{wxSoundStreamESD::QueueFilled}\label{wxsoundstreamesdqueuefilled}
\constfunc{bool}{QueueFilled}{\void}

View File

@@ -0,0 +1,87 @@
%
% automatically generated by HelpGen from
% /home/guilhem/PROJECTS/wxWindows/utils/wxMMedia2/lib/sndg72x.h at 26/Feb/00 14:52:19
%
\section{\class{wxSoundFormatG72X}}\label{wxsoundformatg72x}
G72X format
\wxheading{Derived from}
\helpref{wxSoundFormatBase}{wxsoundformatbase}
\wxheading{Data structures}
{\small \begin{verbatim}
typedef enum {
wxSOUND\_G721,
wxSOUND\_G723\_24,
wxSOUND\_G723\_40
} wxSoundG72XType
\end{verbatim}}
{\small \begin{verbatim}
typedef struct g72x\_state g72state
\end{verbatim}}
This fixes a bug in Mingw95
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxSoundFormatG72X::wxSoundFormatG72X}\label{wxsoundformatg72xwxsoundformatg72x}
\func{}{wxSoundFormatG72X}{\void}
\membersection{wxSoundFormatG72X::\destruct{wxSoundFormatG72X}}\label{wxsoundformatg72xdtor}
\func{}{\destruct{wxSoundFormatG72X}}{\void}
\membersection{wxSoundFormatG72X::SetG72XType}\label{wxsoundformatg72xsetg72xtype}
\func{void}{SetG72XType}{\param{wxSoundG72XType }{type}}
\membersection{wxSoundFormatG72X::GetG72XType}\label{wxsoundformatg72xgetg72xtype}
\constfunc{wxSoundG72XType}{GetG72XType}{\void}
\membersection{wxSoundFormatG72X::SetSampleRate}\label{wxsoundformatg72xsetsamplerate}
\func{void}{SetSampleRate}{\param{wxUint32 }{srate}}
\membersection{wxSoundFormatG72X::GetSampleRate}\label{wxsoundformatg72xgetsamplerate}
\constfunc{wxUint32}{GetSampleRate}{\void}
\membersection{wxSoundFormatG72X::GetType}\label{wxsoundformatg72xgettype}
\constfunc{wxSoundFormatType}{GetType}{\void}
\membersection{wxSoundFormatG72X::Clone}\label{wxsoundformatg72xclone}
\constfunc{wxSoundFormatBase*}{Clone}{\void}
\membersection{wxSoundFormatG72X::GetTimeFromBytes}\label{wxsoundformatg72xgettimefrombytes}
\constfunc{wxUint32}{GetTimeFromBytes}{\param{wxUint32 }{bytes}}
\membersection{wxSoundFormatG72X::GetBytesFromTime}\label{wxsoundformatg72xgetbytesfromtime}
\constfunc{wxUint32}{GetBytesFromTime}{\param{wxUint32 }{time}}
\membersection{wxSoundFormatG72X::operator!=}\label{wxsoundformatg72xoperatorneq}
\constfunc{bool}{operator!=}{\param{const wxSoundFormatBase\& }{frmt2}}

View File

@@ -0,0 +1,228 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Name: sndfile.tex
%% Purpose: wxMMedia docs
%% Author: Guilhem Lavaux <lavaux@easynet.fr>
%% Modified by:
%% Created: 2000
%% RCS-ID: $Id$
%% Copyright: (c) wxWindows team
%% Licence: wxWindows licence
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{\class{wxSoundFileStream}}\label{wxsoundfilestream}
Base class for file coders/decoders. This class is not constructor (it is an abstract
class).
\wxheading{Derived from}
\helpref{wxSoundStream}{wxsoundstream}
\wxheading{Include file}
wx/sndfile.h
\wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxSoundFileStream::wxSoundFileStream}\label{wxsoundfilestreamwxsoundfilestream}
\func{}{wxSoundFileStream}{\param{wxInputStream\& }{stream}, \param{wxSoundStream\& }{io\_sound}}
It constructs a new file decoder object which will send
audio data to the specified sound stream.
The {\it stream} is the input stream to be decoded. The
{\it io\_sound} is the destination sound stream.
Once it has been constructed, you cannot change any of
the specified streams nor the direction of the stream.
You will have access to the playback functions.
\func{}{wxSoundFileStream}{\param{wxOutputStream\& }{stream}, \param{wxSoundStream\& }{io\_sound}}
It constructs a new file coder object which will get
data to be recorded from the specified sound stream.
The {\it stream} is the output wxStream. The {\it io\_sound}
is the source sound stream of the audio data. Once
it has been constructed, you cannot change any of
the specified streams nor the direction of the stream.
\membersection{wxSoundFileStream::\destruct{wxSoundFileStream}}\label{wxsoundfilestreamdtor}
\func{}{\destruct{wxSoundFileStream}}{\void}
It destroys the current sound file codec.
\membersection{wxSoundFileStream::Play}\label{wxsoundfilestreamplay}
\func{bool}{Play}{\void}
It starts playing the file. The playing begins, in background
in nearly all cases, after the return of the function. The
codec returns to a {\bf stopped} state when it reaches the
end of the file.
On success, it returns TRUE.
\membersection{wxSoundFileStream::Record}\label{wxsoundfilestreamrecord}
\func{bool}{Record}{\param{wxUint32 }{time}}
It starts recording data from the sound stream and writing them
to the output stream. You have to precise the recording length in
parameter. This length is expressed in seconds. If you want to
control the record length (using \helpref{Stop}{wxsoundfilestreamstop}),
you can set it to wxSOUND\_INFINITE\_TIME.
On success, it returns TRUE.
\membersection{wxSoundFileStream::Stop}\label{wxsoundfilestreamstop}
\func{bool}{Stop}{\void}
It stops either recording or playing. Whatever happens (even unexpected
errors), the stream is stopped when the function returns. When you are
in recording mode, the file headers are updated and flushed if possible
(ie: if the output stream is seekable).
On success, it returns TRUE.
\membersection{wxSoundFileStream::Pause}\label{wxsoundfilestreampause}
\func{bool}{Pause}{\void}
The file codec tries to pause the stream: it means that it stops audio
production but keep the file pointer at the place.
If the file codec is already paused, it returns FALSE.
On success, it returns TREE.
\membersection{wxSoundFileStream::Resume}\label{wxsoundfilestreamresume}
\func{bool}{Resume}{\void}
When the file codec has been paused using
\helpref{Pause}{wxsoundfilestreampause}, you could be interrested in
resuming it. This is the goal of this function.
\membersection{wxSoundFileStream::IsStopped}\label{wxsoundfilestreamisstopped}
\constfunc{bool}{IsStopped}{\void}
It returns TRUE when the stream is stopped, in another case it returns
FALSE.
\membersection{wxSoundFileStream::IsPaused}\label{wxsoundfilestreamispaused}
\constfunc{bool}{IsPaused}{\void}
It returns TRUE when the stream is paused, in another case it returns
FALSE.
\membersection{wxSoundFileStream::StartProduction}\label{wxsoundfilestreamstartproduction}
\func{bool}{StartProduction}{\param{int }{evt}}
It is really not advised you call this function. From the wxSoundFileStream
point of view it is an internal function. Internally, it is called after
the file stream has been prepared to be played or to receive audio data and
when it wants to start processing audio data.
\membersection{wxSoundFileStream::StopProduction}\label{wxsoundfilestreamstopproduction}
\func{bool}{StopProduction}{\void}
As for \helpref{StartProduction}{wxsoundfilestreamstopproduction}, it is not
advised for you to call this function. It is called by
\helpref{Stop}{wxsoundfilestreamstop} when it needs to stop the audio data
processing.
\membersection{wxSoundFileStream::GetLength}\label{wxsoundfilestreamgetlength}
\func{wxUint32}{GetLength}{\void}
It returns the audio data length of the file stream. This length is expressed
in bytes. If you need the length in seconds, you will need to use
\helpref{GetSoundFormat}{wxsoundstreamgetsoundformat} and
\helpref{GetTimeFromBytes}{wxsoundformatbasegettimefrombytes}.
\membersection{wxSoundFileStream::GetPosition}\label{wxsoundfilestreamgetposition}
\func{wxUint32}{GetPosition}{\void}
It returns the current position in the soundfile stream. The position
is expressed in bytes. If you need the length in seconds, you will need to use
\helpref{GetSoundFormat}{wxsoundstreamgetsoundformat} and
\helpref{GetTimeFromBytes}{wxsoundformatbasegettimefrombytes}.
\membersection{wxSoundFileStream::SetPosition}\label{wxsoundfilestreamsetposition}
\func{wxUint32}{SetPosition}{\param{wxUint32 }{new\_position}}
It sets the current in the soundfile stream. The position
{\it new\_position} must be expressed in bytes. You can get
a length/position in bytes from a time value using
\helpref{GetSoundFormat}{wxsoundstreamgetsoundformat} and
\helpref{GetTimeFromBytes}{wxsoundformatbasegettimefrombytes}.
On success, it returns TRUE.
\wxheading{Warning}
Some wxStream may not be capable to support this function as
it may not support the seekable functionnality. If this happens,
it returns FALSE and leave the stream at the same position.
\membersection{wxSoundFileStream::Read}\label{wxsoundfilestreamread}
\func{wxSoundStream\&}{Read}{\param{void* }{buffer}, \param{wxUint32 }{len}}
You can obtain the audio data encoded in the file using this function.
But it must be considered as an internal function. Used carelessly, it
may corrupt the current state of the stream.
Data are returned using in the original file coding (You must use a sound
format object to decode it).
\membersection{wxSoundFileStream::Write}\label{wxsoundfilestreamwrite}
\func{wxSoundStream\&}{Write}{\param{const void* }{buffer}, \param{wxUint32 }{len}}
You can put encoded audio data to the file using this function.
But it must be considered as an internal function. Used carelessly, it
may corrupt the current state of the stream.
Data must be coded with the specified file coding (You must use a sound
format object to do this).
\membersection{wxSoundFileStream::SetSoundFormat}\label{wxsoundfilestreamsetsoundformat}
\func{bool}{SetSoundFormat}{\param{const wxSoundFormatBase\& }{format}}
\membersection{wxSoundFileStream::GetCodecName}\label{wxsoundfilestreamgetcodecname}
\constfunc{wxString}{GetCodecName}{\void}
This function returns the Codec name. This is useful for those who
want to build a player (But also in some other case).
\membersection{wxSoundFileStream::CanRead}\label{wxsoundfilestreamcanread}
\func{bool}{CanRead}{\void}
You should use this function to test whether this file codec can read
the stream you passed to it.
\membersection{wxSoundFileStream::PrepareToPlay}\label{wxsoundfilestreampreparetoplay}
\func{bool}{PrepareToPlay}{\void}
It is called by wxSoundFileStream to prepare the specific file loader
to prepare itself to play the file. Actually, this includes reading
headers and setting the various parameters of the sound format.
This should not be called by an external user but it should be
implemented when you inherit wxSoundFileStream to build a new codec.
It must return when the file is identified and the parameters have
been set. In all other cases, you must return FALSE.
\membersection{wxSoundFileStream::PrepareToRecord}\label{wxsoundfilestreampreparetorecord}
\func{bool}{PrepareToRecord}{\param{wxUint32 }{time}}
\membersection{wxSoundFileStream::FinishRecording}\label{wxsoundfilestreamfinishrecording}
\func{bool}{FinishRecording}{\void}
\membersection{wxSoundFileStream::RepositionStream}\label{wxsoundfilestreamrepositionstream}
\func{bool}{RepositionStream}{\param{wxUint32 }{position}}
\membersection{wxSoundFileStream::FinishPreparation}\label{wxsoundfilestreamfinishpreparation}
\func{void}{FinishPreparation}{\param{wxUint32 }{len}}
\membersection{wxSoundFileStream::GetData}\label{wxsoundfilestreamgetdata}
\func{wxUint32}{GetData}{\param{void* }{buffer}, \param{wxUint32 }{len}}
\membersection{wxSoundFileStream::PutData}\label{wxsoundfilestreamputdata}
\func{wxUint32}{PutData}{\param{const void* }{buffer}, \param{wxUint32 }{len}}

View File

@@ -0,0 +1,104 @@
%
% automatically generated by HelpGen from
% /home/guilhem/PROJECTS/wxWindows/utils/wxMMedia2/lib/sndpcm.h at 26/Feb/00 14:26:33
%
\section{\class{wxSoundFormatPcm}}\label{wxsoundformatpcm}
PCM specification class
\wxheading{Derived from}
\helpref{wxSoundFormatBase}{wxsoundformatbase}
\wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxSoundFormatPcm::wxSoundFormatPcm}\label{wxsoundformatpcmwxsoundformatpcm}
\func{}{wxSoundFormatPcm}{\param{wxUint32 }{srate = 22500}, \param{wxUint8 }{bps = 8}, \param{wxUint16 }{channels = 2}, \param{bool }{sign = TRUE}, \param{int }{order = wxLITTLE\_ENDIAN}}
\membersection{wxSoundFormatPcm::\destruct{wxSoundFormatPcm}}\label{wxsoundformatpcmdtor}
\func{}{\destruct{wxSoundFormatPcm}}{\void}
\membersection{wxSoundFormatPcm::SetSampleRate}\label{wxsoundformatpcmsetsamplerate}
\func{void}{SetSampleRate}{\param{wxUint32 }{srate}}
\membersection{wxSoundFormatPcm::SetBPS}\label{wxsoundformatpcmsetbps}
\func{void}{SetBPS}{\param{wxUint8 }{bps}}
\membersection{wxSoundFormatPcm::SetChannels}\label{wxsoundformatpcmsetchannels}
\func{void}{SetChannels}{\param{wxUint16 }{nchannels}}
\membersection{wxSoundFormatPcm::SetOrder}\label{wxsoundformatpcmsetorder}
\func{void}{SetOrder}{\param{int }{order}}
\membersection{wxSoundFormatPcm::Signed}\label{wxsoundformatpcmsigned}
\func{void}{Signed}{\param{bool }{sign}}
\membersection{wxSoundFormatPcm::GetSampleRate}\label{wxsoundformatpcmgetsamplerate}
\constfunc{wxUint32}{GetSampleRate}{\void}
\membersection{wxSoundFormatPcm::GetBPS}\label{wxsoundformatpcmgetbps}
\constfunc{wxUint8}{GetBPS}{\void}
\membersection{wxSoundFormatPcm::GetChannels}\label{wxsoundformatpcmgetchannels}
\constfunc{wxUint16}{GetChannels}{\void}
\membersection{wxSoundFormatPcm::GetOrder}\label{wxsoundformatpcmgetorder}
\constfunc{int}{GetOrder}{\void}
\membersection{wxSoundFormatPcm::Signed}\label{wxsoundformatpcmgetsigned}
\constfunc{bool}{Signed}{\void}
\membersection{wxSoundFormatPcm::GetType}\label{wxsoundformatpcmgettype}
\constfunc{wxSoundFormatType}{GetType}{\void}
\membersection{wxSoundFormatPcm::Clone}\label{wxsoundformatpcmclone}
\constfunc{wxSoundFormatBase*}{Clone}{\void}
\membersection{wxSoundFormatPcm::GetTimeFromBytes}\label{wxsoundformatpcmgettimefrombytes}
\constfunc{wxUint32}{GetTimeFromBytes}{\param{wxUint32 }{bytes}}
\membersection{wxSoundFormatPcm::GetBytesFromTime}\label{wxsoundformatpcmgetbytesfromtime}
\constfunc{wxUint32}{GetBytesFromTime}{\param{wxUint32 }{time}}
\membersection{wxSoundFormatPcm::operator!}\label{wxsoundformatpcmoperatornot}
\constfunc{bool}{operator!}{\param{const wxSoundFormatBase\& }{frmt2}}

View File

@@ -0,0 +1,69 @@
%
% automatically generated by HelpGen from
% /home/guilhem/PROJECTS/wxWindows/utils/wxMMedia2/lib/sndbase.h at 26/Feb/00 14:23:29
%
\section{\class{wxSoundFormatBase}}\label{wxsoundformatbase}
Base class for sound format specification
\wxheading{Derived from}
No base class
\wxheading{Data structures}
{\small \begin{verbatim}
typedef enum {
wxSOUND\_NOFORMAT,
wxSOUND\_PCM,
wxSOUND\_ULAW,
wxSOUND\_G72X,
wxSOUND\_MSADPCM
} wxSoundFormatType
\end{verbatim}}
wxSoundFormatType: it specifies the format family of the sound data
which will be passed to the stream.
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxSoundFormatBase::wxSoundFormatBase}\label{wxsoundformatbasewxsoundformatbase}
\func{}{wxSoundFormatBase}{\void}
\membersection{wxSoundFormatBase::\destruct{wxSoundFormatBase}}\label{wxsoundformatbasedtor}
\func{}{\destruct{wxSoundFormatBase}}{\void}
\membersection{wxSoundFormatBase::GetType}\label{wxsoundformatbasegettype}
\constfunc{wxSoundFormatType}{GetType}{\void}
It returns a "standard" format type.
\membersection{wxSoundFormatBase::Clone}\label{wxsoundformatbaseclone}
\constfunc{wxSoundFormatBase*}{Clone}{\void}
It clones the current format.
\membersection{wxSoundFormatBase::GetTimeFromBytes}\label{wxsoundformatbasegettimefrombytes}
\constfunc{wxUint32}{GetTimeFromBytes}{\param{wxUint32 }{bytes}}
\membersection{wxSoundFormatBase::GetBytesFromTime}\label{wxsoundformatbasegetbytesfromtime}
\constfunc{wxUint32}{GetBytesFromTime}{\param{wxUint32 }{time}}
\membersection{wxSoundFormatBase::operator!=}\label{wxsoundformatbaseoperatorneq}
\constfunc{bool}{operator!=}{\param{const wxSoundFormatBase\& }{frmt2}}

View File

@@ -0,0 +1,74 @@
%
% automatically generated by HelpGen from
% /home/guilhem/PROJECTS/wxWindows/utils/wxMMedia2/lib/sndulaw.h at 26/Feb/00 14:52:25
%
\section{\class{wxSoundFormatUlaw}}\label{wxsoundformatulaw}
ULAW format
\wxheading{Derived from}
\helpref{wxSoundFormatBase}{wxsoundformatbase}
\wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxSoundFormatUlaw::wxSoundFormatUlaw}\label{wxsoundformatulawwxsoundformatulaw}
\func{}{wxSoundFormatUlaw}{\void}
\membersection{wxSoundFormatUlaw::\destruct{wxSoundFormatUlaw}}\label{wxsoundformatulawdtor}
\func{}{\destruct{wxSoundFormatUlaw}}{\void}
\membersection{wxSoundFormatUlaw::SetSampleRate}\label{wxsoundformatulawsetsamplerate}
\func{void}{SetSampleRate}{\param{wxUint32 }{srate}}
\membersection{wxSoundFormatUlaw::GetSampleRate}\label{wxsoundformatulawgetsamplerate}
\constfunc{wxUint32}{GetSampleRate}{\void}
\membersection{wxSoundFormatUlaw::SetChannels}\label{wxsoundformatulawsetchannels}
\func{void}{SetChannels}{\param{wxUint8 }{channels}}
\membersection{wxSoundFormatUlaw::GetChannels}\label{wxsoundformatulawgetchannels}
\constfunc{wxUint8}{GetChannels}{\void}
\membersection{wxSoundFormatUlaw::GetType}\label{wxsoundformatulawgettype}
\constfunc{wxSoundFormatType}{GetType}{\void}
\membersection{wxSoundFormatUlaw::Clone}\label{wxsoundformatulawclone}
\constfunc{wxSoundFormatBase*}{Clone}{\void}
\membersection{wxSoundFormatUlaw::GetTimeFromBytes}\label{wxsoundformatulawgettimefrombytes}
\constfunc{wxUint32}{GetTimeFromBytes}{\param{wxUint32 }{bytes}}
\membersection{wxSoundFormatUlaw::GetBytesFromTime}\label{wxsoundformatulawgetbytesfromtime}
\constfunc{wxUint32}{GetBytesFromTime}{\param{wxUint32 }{time}}
\membersection{wxSoundFormatUlaw::operator!=}\label{wxsoundformatulawoperatorneq}
\constfunc{bool}{operator!=}{\param{const wxSoundFormatBase\& }{frmt2}}

View File

@@ -0,0 +1,54 @@
%
% automatically generated by HelpGen from
% /home/guilhem/PROJECTS/wxWindows/utils/wxMMedia2/lib/sndg72x.h at 26/Feb/00 14:52:19
%
\section{\class{wxSoundStreamG72X}}\label{wxsoundstreamg72x}
ULAW converter class
\wxheading{Derived from}
\helpref{wxSoundStreamCodec}{wxsoundstreamcodec}
\wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxSoundStreamG72X::wxSoundStreamG72X}\label{wxsoundstreamg72xwxsoundstreamg72x}
\func{}{wxSoundStreamG72X}{\param{wxSoundStream\& }{sndio}}
\membersection{wxSoundStreamG72X::\destruct{wxSoundStreamG72X}}\label{wxsoundstreamg72xdtor}
\func{}{\destruct{wxSoundStreamG72X}}{\void}
\membersection{wxSoundStreamG72X::Read}\label{wxsoundstreamg72xread}
\func{wxSoundStream\&}{Read}{\param{void* }{buffer}, \param{wxUint32 }{len}}
\membersection{wxSoundStreamG72X::Write}\label{wxsoundstreamg72xwrite}
\func{wxSoundStream\&}{Write}{\param{const void* }{buffer}, \param{wxUint32 }{len}}
\membersection{wxSoundStreamG72X::SetSoundFormat}\label{wxsoundstreamg72xsetsoundformat}
\func{bool}{SetSoundFormat}{\param{const wxSoundFormatBase\& }{format}}
\membersection{wxSoundStreamG72X::PutBits}\label{wxsoundstreamg72xputbits}
\func{void}{PutBits}{\param{wxUint8 }{bits}}
\membersection{wxSoundStreamG72X::GetBits}\label{wxsoundstreamg72xgetbits}
\func{wxUint8}{GetBits}{\void}

View File

@@ -0,0 +1,71 @@
%
% automatically generated by HelpGen from
% /home/guilhem/PROJECTS/wxWindows/utils/wxMMedia2/lib/sndoss.h at 26/Feb/00 14:26:53
%
\section{\class{wxSoundStreamOSS}}\label{wxsoundstreamoss}
OSS output class
\wxheading{Derived from}
\helpref{wxSoundStream}{wxsoundstream}
\wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxSoundStreamOSS::wxSoundStreamOSS}\label{wxsoundstreamosswxsoundstreamoss}
\func{}{wxSoundStreamOSS}{\param{const wxString\& }{dev\_name = \_T("/dev/dsp")}}
\membersection{wxSoundStreamOSS::\destruct{wxSoundStreamOSS}}\label{wxsoundstreamossdtor}
\func{}{\destruct{wxSoundStreamOSS}}{\void}
\membersection{wxSoundStreamOSS::Read}\label{wxsoundstreamossread}
\func{wxSoundStream\&}{Read}{\param{void* }{buffer}, \param{wxUint32 }{len}}
\membersection{wxSoundStreamOSS::Write}\label{wxsoundstreamosswrite}
\func{wxSoundStream\&}{Write}{\param{const void* }{buffer}, \param{wxUint32 }{len}}
\membersection{wxSoundStreamOSS::GetBestSize}\label{wxsoundstreamossgetbestsize}
\constfunc{wxUint32}{GetBestSize}{\void}
\membersection{wxSoundStreamOSS::SetSoundFormat}\label{wxsoundstreamosssetsoundformat}
\func{bool}{SetSoundFormat}{\param{const wxSoundFormatBase\& }{format}}
\membersection{wxSoundStreamOSS::StartProduction}\label{wxsoundstreamossstartproduction}
\func{bool}{StartProduction}{\param{int }{evt}}
\membersection{wxSoundStreamOSS::StopProduction}\label{wxsoundstreamossstopproduction}
\func{bool}{StopProduction}{\void}
\membersection{wxSoundStreamOSS::QueueFilled}\label{wxsoundstreamossqueuefilled}
\constfunc{bool}{QueueFilled}{\void}
\membersection{wxSoundStreamOSS::WakeUpEvt}\label{wxsoundstreamosswakeupevt}
\func{void}{WakeUpEvt}{\param{int }{evt}}
You should not call this.

View File

@@ -0,0 +1,48 @@
%
% automatically generated by HelpGen from
% /home/guilhem/PROJECTS/wxWindows/utils/wxMMedia2/lib/sndcpcm.h at 26/Feb/00 14:26:35
%
\section{\class{wxSoundStreamPcm}}\label{wxsoundstreampcm}
PCM converter class
\wxheading{Derived from}
\helpref{wxSoundStreamCodec}{wxsoundstreamcodec}
\wxheading{Data structures}
{\small \begin{verbatim}
typedef void (*ConverterType)(const char *buf\_in, char *buf\_out, wxUint32 len) ConverterType
\end{verbatim}}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxSoundStreamPcm::wxSoundStreamPcm}\label{wxsoundstreampcmwxsoundstreampcm}
\func{}{wxSoundStreamPcm}{\param{wxSoundStream\& }{sndio}}
\membersection{wxSoundStreamPcm::\destruct{wxSoundStreamPcm}}\label{wxsoundstreampcmdtor}
\func{}{\destruct{wxSoundStreamPcm}}{\void}
\membersection{wxSoundStreamPcm::Read}\label{wxsoundstreampcmread}
\func{wxSoundStream\&}{Read}{\param{void* }{buffer}, \param{wxUint32 }{len}}
\membersection{wxSoundStreamPcm::Write}\label{wxsoundstreampcmwrite}
\func{wxSoundStream\&}{Write}{\param{const void* }{buffer}, \param{wxUint32 }{len}}
\membersection{wxSoundStreamPcm::SetSoundFormat}\label{wxsoundstreampcmsetsoundformat}
\func{bool}{SetSoundFormat}{\param{const wxSoundFormatBase\& }{format}}

View File

@@ -0,0 +1,59 @@
%
% automatically generated by HelpGen from
% /home/guilhem/PROJECTS/wxWindows/utils/wxMMedia2/lib/sndfile.h at 26/Feb/00 14:26:42
%
\section{\class{wxSoundRouterStream}}\label{wxsoundrouterstream}
Codec router class
\wxheading{Derived from}
\helpref{wxSoundStreamCodec}{wxsoundstreamcodec}
\wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxSoundRouterStream::wxSoundRouterStream}\label{wxsoundrouterstreamwxsoundrouterstream}
\func{}{wxSoundRouterStream}{\param{wxSoundStream\& }{sndio}}
\membersection{wxSoundRouterStream::\destruct{wxSoundRouterStream}}\label{wxsoundrouterstreamdtor}
\func{}{\destruct{wxSoundRouterStream}}{\void}
\membersection{wxSoundRouterStream::Read}\label{wxsoundrouterstreamread}
\func{wxSoundStream\&}{Read}{\param{void* }{buffer}, \param{wxUint32 }{len}}
\membersection{wxSoundRouterStream::Write}\label{wxsoundrouterstreamwrite}
\func{wxSoundStream\&}{Write}{\param{const void* }{buffer}, \param{wxUint32 }{len}}
\membersection{wxSoundRouterStream::SetSoundFormat}\label{wxsoundrouterstreamsetsoundformat}
\func{bool}{SetSoundFormat}{\param{const wxSoundFormatBase\& }{format}}
\membersection{wxSoundRouterStream::StartProduction}\label{wxsoundrouterstreamstartproduction}
\func{bool}{StartProduction}{\param{int }{evt}}
\membersection{wxSoundRouterStream::StopProduction}\label{wxsoundrouterstreamstopproduction}
\func{bool}{StopProduction}{\void}
\membersection{wxSoundRouterStream::GetBestSize}\label{wxsoundrouterstreamgetbestsize}
\constfunc{wxUint32}{GetBestSize}{\void}

View File

@@ -0,0 +1,49 @@
%
% automatically generated by HelpGen from
% /home/guilhem/PROJECTS/wxWindows/utils/wxMMedia2/lib/sndulaw.h at 26/Feb/00 14:52:25
%
\section{\class{wxSoundStreamUlaw}}\label{wxsoundstreamulaw}
ULAW converter class
\wxheading{Derived from}
\helpref{wxSoundStreamCodec}{wxsoundstreamcodec}
\wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxSoundStreamUlaw::wxSoundStreamUlaw}\label{wxsoundstreamulawwxsoundstreamulaw}
\func{}{wxSoundStreamUlaw}{\param{wxSoundStream\& }{sndio}}
\membersection{wxSoundStreamUlaw::\destruct{wxSoundStreamUlaw}}\label{wxsoundstreamulawdtor}
\func{}{\destruct{wxSoundStreamUlaw}}{\void}
\membersection{wxSoundStreamUlaw::Read}\label{wxsoundstreamulawread}
\func{wxSoundStream\&}{Read}{\param{void* }{buffer}, \param{wxUint32 }{len}}
\membersection{wxSoundStreamUlaw::Write}\label{wxsoundstreamulawwrite}
\func{wxSoundStream\&}{Write}{\param{const void* }{buffer}, \param{wxUint32 }{len}}
\membersection{wxSoundStreamUlaw::SetSoundFormat}\label{wxsoundstreamulawsetsoundformat}
\func{bool}{SetSoundFormat}{\param{const wxSoundFormatBase\& }{format}}
\membersection{wxSoundStreamUlaw::GetBestSize}\label{wxsoundstreamulawgetbestsize}
\constfunc{wxUint32}{GetBestSize}{\void}

View File

@@ -0,0 +1,91 @@
%
% automatically generated by HelpGen from
% /home/guilhem/PROJECTS/wxWindows/utils/wxMMedia2/lib/sndwav.h at 26/Feb/00 14:26:40
%
\section{\class{wxSoundWave}}\label{wxsoundwave}
WAVE codec
\wxheading{Derived from}
\helpref{wxSoundFileStream}{wxsoundfilestream}
\wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxSoundWave::wxSoundWave}\label{wxsoundwavewxsoundwave}
\func{}{wxSoundWave}{\param{wxInputStream\& }{stream}, \param{wxSoundStream\& }{io\_sound}}
\func{}{wxSoundWave}{\param{wxOutputStream\& }{stream}, \param{wxSoundStream\& }{io\_sound}}
\membersection{wxSoundWave::\destruct{wxSoundWave}}\label{wxsoundwavedtor}
\func{}{\destruct{wxSoundWave}}{\void}
\membersection{wxSoundWave::CanRead}\label{wxsoundwavecanread}
\func{bool}{CanRead}{\void}
\membersection{wxSoundWave::GetCodecName}\label{wxsoundwavegetcodecname}
\constfunc{wxString}{GetCodecName}{\void}
\membersection{wxSoundWave::PrepareToPlay}\label{wxsoundwavepreparetoplay}
\func{bool}{PrepareToPlay}{\void}
\membersection{wxSoundWave::PrepareToRecord}\label{wxsoundwavepreparetorecord}
\func{bool}{PrepareToRecord}{\param{wxUint32 }{time}}
\membersection{wxSoundWave::FinishRecording}\label{wxsoundwavefinishrecording}
\func{bool}{FinishRecording}{\void}
\membersection{wxSoundWave::RepositionStream}\label{wxsoundwaverepositionstream}
\func{bool}{RepositionStream}{\param{wxUint32 }{position}}
\membersection{wxSoundWave::GetData}\label{wxsoundwavegetdata}
\func{wxUint32}{GetData}{\param{void* }{buffer}, \param{wxUint32 }{len}}
\membersection{wxSoundWave::PutData}\label{wxsoundwaveputdata}
\func{wxUint32}{PutData}{\param{const void* }{buffer}, \param{wxUint32 }{len}}
\membersection{wxSoundWave::HandleOutputPCM}\label{wxsoundwavehandleoutputpcm}
\func{bool}{HandleOutputPCM}{\param{wxDataInputStream\& }{data}, \param{wxUint16 }{channels}, \param{wxUint32 }{sample\_fq}, \param{wxUint32 }{byte\_p\_sec}, \param{wxUint16 }{byte\_p\_spl}, \param{wxUint16 }{bits\_p\_spl}}
\membersection{wxSoundWave::HandleOutputG721}\label{wxsoundwavehandleoutputg721}
\func{bool}{HandleOutputG721}{\param{wxDataInputStream\& }{data}, \param{wxUint16 }{channels}, \param{wxUint32 }{sample\_fq}, \param{wxUint32 }{byte\_p\_sec}, \param{wxUint16 }{byte\_p\_spl}, \param{wxUint16 }{bits\_p\_spl}}
\membersection{wxSoundWave::HandleInputPCM}\label{wxsoundwavehandleinputpcm}
\func{wxSoundFormatBase*}{HandleInputPCM}{\param{wxDataOutputStream\& }{data}}
\membersection{wxSoundWave::HandleInputG72X}\label{wxsoundwavehandleinputg72x}
\func{wxSoundFormatBase*}{HandleInputG72X}{\param{wxDataOutputStream\& }{data}}

View File

@@ -0,0 +1,140 @@
%
% automatically generated by HelpGen from
% /home/guilhem/PROJECTS/wxWindows/utils/wxMMedia2/lib/sndwin.h at 26/Feb/00 14:26:51
%
\section{\class{wxSoundStreamWin}}\label{wxsoundstreamwin}
\wxheading{Derived from}
\helpref{wxSoundStream}{wxsoundstream}
\wxheading{Data structures}
{\small \begin{verbatim}
typedef struct \_wxSoundInternal wxSoundInternal
\end{verbatim}}
{\small \begin{verbatim}
typedef struct \_wxSoundInfoHeader wxSoundInfoHeader
\end{verbatim}}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxSoundStreamWin::wxSoundStreamWin}\label{wxsoundstreamwinwxsoundstreamwin}
\func{}{wxSoundStreamWin}{\void}
\membersection{wxSoundStreamWin::\destruct{wxSoundStreamWin}}\label{wxsoundstreamwindtor}
\func{}{\destruct{wxSoundStreamWin}}{\void}
\membersection{wxSoundStreamWin::Write}\label{wxsoundstreamwinwrite}
\func{wxSoundStream\&}{Write}{\param{const void* }{buffer}, \param{wxUint32 }{len}}
\membersection{wxSoundStreamWin::Read}\label{wxsoundstreamwinread}
\func{wxSoundStream\&}{Read}{\param{void* }{buffer}, \param{wxUint32 }{len}}
\membersection{wxSoundStreamWin::SetSoundFormat}\label{wxsoundstreamwinsetsoundformat}
\func{bool}{SetSoundFormat}{\param{wxSoundFormatBase\& }{base}}
\membersection{wxSoundStreamWin::StartProduction}\label{wxsoundstreamwinstartproduction}
\func{bool}{StartProduction}{\param{int }{evt}}
\membersection{wxSoundStreamWin::StopProduction}\label{wxsoundstreamwinstopproduction}
\func{bool}{StopProduction}{\void}
\membersection{wxSoundStreamWin::QueueFilled}\label{wxsoundstreamwinqueuefilled}
\constfunc{bool}{QueueFilled}{\void}
\membersection{wxSoundStreamWin::NotifyDoneBuffer}\label{wxsoundstreamwinnotifydonebuffer}
\func{void}{NotifyDoneBuffer}{\param{wxUint32 }{dev\_handle}, \param{int }{flag}}
Internal but defined as public
\membersection{wxSoundStreamWin::GetBestSize}\label{wxsoundstreamwingetbestsize}
\constfunc{wxUint32}{GetBestSize}{\void}
\membersection{wxSoundStreamWin::CreateSndWindow}\label{wxsoundstreamwincreatesndwindow}
\func{void}{CreateSndWindow}{\void}
\membersection{wxSoundStreamWin::DestroySndWindow}\label{wxsoundstreamwindestroysndwindow}
\func{void}{DestroySndWindow}{\void}
\membersection{wxSoundStreamWin::OpenDevice}\label{wxsoundstreamwinopendevice}
\func{bool}{OpenDevice}{\param{int }{mode}}
\membersection{wxSoundStreamWin::CloseDevice}\label{wxsoundstreamwinclosedevice}
\func{void}{CloseDevice}{\void}
\membersection{wxSoundStreamWin::AllocHeader}\label{wxsoundstreamwinallocheader}
\func{wxSoundInfoHeader*}{AllocHeader}{\param{int }{mode}}
\membersection{wxSoundStreamWin::FreeHeader}\label{wxsoundstreamwinfreeheader}
\func{void}{FreeHeader}{\param{wxSoundInfoHeader* }{header}, \param{int }{mode}}
\membersection{wxSoundStreamWin::AllocHeaders}\label{wxsoundstreamwinallocheaders}
\func{bool}{AllocHeaders}{\param{int }{mode}}
\membersection{wxSoundStreamWin::FreeHeaders}\label{wxsoundstreamwinfreeheaders}
\func{void}{FreeHeaders}{\param{int }{mode}}
\membersection{wxSoundStreamWin::WaitFor}\label{wxsoundstreamwinwaitfor}
\func{void}{WaitFor}{\param{wxSoundInfoHeader* }{info}}
\membersection{wxSoundStreamWin::AddToQueue}\label{wxsoundstreamwinaddtoqueue}
\func{bool}{AddToQueue}{\param{wxSoundInfoHeader* }{info}}
\membersection{wxSoundStreamWin::ClearHeader}\label{wxsoundstreamwinclearheader}
\func{void}{ClearHeader}{\param{wxSoundInfoHeader* }{info}}
\membersection{wxSoundStreamWin::NextFragmentOutput}\label{wxsoundstreamwinnextfragmentoutput}
\func{wxSoundInfoHeader*}{NextFragmentOutput}{\void}
\membersection{wxSoundStreamWin::NextFragmentInput}\label{wxsoundstreamwinnextfragmentinput}
\func{wxSoundInfoHeader*}{NextFragmentInput}{\void}

View File

@@ -0,0 +1,34 @@
runTwice = yes
titleFontSize = 12
authorFontSize = 10
chapterFontSize = 12
sectionFontSize = 12
subsectionFontSize = 12
headerRule = yes
footerRule = yes
useHeadingStyles = yes
listItemIndent=40
generateHPJ = yes
htmlBrowseButtons = bitmap
winHelpVersion = 3
winHelpContents = yes
winHelpTitle = "MMedia 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}}
;;
;; These two are for generating MS HTML Help project, contents and index files.
;;
htmlWorkshopFiles = true
htmlIndex = true
\pythonnote [1] {{\bf \fcol{blue}{wxPython note:}} #1}
%\pythonnote [1] {}

View File

@@ -0,0 +1,298 @@
% 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

View File

@@ -0,0 +1,10 @@
\chapter{Topic overviews}\label{overviews}
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
\setfooter{\thepage}{}{}{}{}{\thepage}
The following sections describe particular topics.
\section{MMedia extension overview}\label{mmedoverview}
To be written.

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 B

View File

@@ -0,0 +1,173 @@
%
% automatically generated by HelpGen from
% /home/guilhem/PROJECTS/wxWindows/utils/wxMMedia2/lib/vidbase.h at 26/Feb/00 14:51:56
%
\section{\class{wxVideoBaseDriver}}\label{wxvideobasedriver}
Classes definition
\wxheading{Derived from}
wxObject
\wxheading{Data structures}
{\small \begin{verbatim}
typedef enum {
wxVIDEO\_MSAVI,
wxVIDEO\_MPEG,
wxVIDEO\_QT,
wxVIDEO\_GIF,
wxVIDEO\_JMOV,
wxVIDEO\_FLI,
wxVIDEO\_IFF,
wxVIDEO\_SGI,
wxVIDEO\_MPEG2
} wxVideoType
\end{verbatim}}
wxMMedia2 (video) types
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxVideoBaseDriver::wxVideoBaseDriver}\label{wxvideobasedriverwxvideobasedriver}
\func{}{wxVideoBaseDriver}{\void}
Ctors
\membersection{wxVideoBaseDriver::wxVideoBaseDriver}\label{wxvideobasedriverwxvideobasedriver}
\func{}{wxVideoBaseDriver}{\param{wxInputStream\& }{str}}
\membersection{wxVideoBaseDriver::wxVideoBaseDriver}\label{wxvideobasedriverwxvideobasedriver}
\func{}{wxVideoBaseDriver}{\param{const wxString\& }{filename}}
\membersection{wxVideoBaseDriver::\destruct{wxVideoBaseDriver}}\label{wxvideobasedriverdtor}
\func{}{\destruct{wxVideoBaseDriver}}{\void}
Dtor
\membersection{wxVideoBaseDriver::Play}\label{wxvideobasedriverplay}
\func{bool}{Play}{\void}
Usual functions ... They all return FALSE in case of errors.
\membersection{wxVideoBaseDriver::Stop}\label{wxvideobasedriverstop}
\func{bool}{Stop}{\void}
\membersection{wxVideoBaseDriver::Pause}\label{wxvideobasedriverpause}
\func{bool}{Pause}{\void}
\membersection{wxVideoBaseDriver::Resume}\label{wxvideobasedriverresume}
\func{bool}{Resume}{\void}
\membersection{wxVideoBaseDriver::SetSize}\label{wxvideobasedriversetsize}
\func{bool}{SetSize}{\param{wxSize }{size}}
Size management
\membersection{wxVideoBaseDriver::GetSize}\label{wxvideobasedrivergetsize}
\constfunc{bool}{GetSize}{\param{wxSize\& }{size}}
\membersection{wxVideoBaseDriver::IsCapable}\label{wxvideobasedriveriscapable}
\constfunc{bool}{IsCapable}{\param{wxVideoType }{WXUNUSED(v\_type)}}
Test the capability of the driver to handle the specified type
\membersection{wxVideoBaseDriver::GetMovieCodec}\label{wxvideobasedrivergetmoviecodec}
\constfunc{wxString}{GetMovieCodec}{\void}
Return the video codec name
\membersection{wxVideoBaseDriver::GetAudioCodec}\label{wxvideobasedrivergetaudiocodec}
\constfunc{wxString}{GetAudioCodec}{\void}
Return the audio codec name
\membersection{wxVideoBaseDriver::GetSampleRate}\label{wxvideobasedrivergetsamplerate}
\constfunc{wxUint32}{GetSampleRate}{\void}
Return misc info about audio
\membersection{wxVideoBaseDriver::GetChannels}\label{wxvideobasedrivergetchannels}
\constfunc{wxUint8}{GetChannels}{\void}
\membersection{wxVideoBaseDriver::GetBPS}\label{wxvideobasedrivergetbps}
\constfunc{wxUint8}{GetBPS}{\void}
\membersection{wxVideoBaseDriver::GetFrameRate}\label{wxvideobasedrivergetframerate}
\constfunc{double}{GetFrameRate}{\void}
Return frame rate
\membersection{wxVideoBaseDriver::GetNbFrames}\label{wxvideobasedrivergetnbframes}
\constfunc{wxUint32}{GetNbFrames}{\void}
Return number of frames
\membersection{wxVideoBaseDriver::OnFinished}\label{wxvideobasedriveronfinished}
\func{void}{OnFinished}{\void}
Called when the movie finished
\membersection{wxVideoBaseDriver::AttachOutput}\label{wxvideobasedriverattachoutput}
\func{bool}{AttachOutput}{\param{wxWindow\& }{output}}
Attaches the video output to a window. The video will be shown in that window.
\membersection{wxVideoBaseDriver::DetachOutput}\label{wxvideobasedriverdetachoutput}
\func{void}{DetachOutput}{\void}
\membersection{wxVideoBaseDriver::IsPaused}\label{wxvideobasedriverispaused}
\constfunc{bool}{IsPaused}{\void}
They return the state of the movie.
\membersection{wxVideoBaseDriver::IsStopped}\label{wxvideobasedriverisstopped}
\constfunc{bool}{IsStopped}{\void}

View File

@@ -0,0 +1,148 @@
%
% automatically generated by HelpGen from
% /home/guilhem/PROJECTS/wxWindows/utils/wxMMedia2/lib/vidwin.h at 26/Feb/00 14:52:03
%
\section{\class{wxVideoWindows}}\label{wxvideowindows}
Class definition
\wxheading{Derived from}
\helpref{wxVideoBaseDriver}{wxvideobasedriver}
\wxheading{Data structures}
{\small \begin{verbatim}
typedef struct VIDW\_Internal {
MCIDEVICEID m\_dev\_id
};
\end{verbatim}}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxVideoWindows::OpenFile}\label{wxvideowindowsopenfile}
\func{void}{OpenFile}{\void}
\membersection{wxVideoWindows::wxVideoWindows}\label{wxvideowindowswxvideowindows}
\func{}{wxVideoWindows}{\void}
\membersection{wxVideoWindows::wxVideoWindows}\label{wxvideowindowswxvideowindows}
\func{}{wxVideoWindows}{\param{wxInputStream\& }{str}}
\membersection{wxVideoWindows::wxVideoWindows}\label{wxvideowindowswxvideowindows}
\func{}{wxVideoWindows}{\param{const wxString\& }{fname}}
\membersection{wxVideoWindows::\destruct{wxVideoWindows}}\label{wxvideowindowsdtor}
\func{}{\destruct{wxVideoWindows}}{\void}
\membersection{wxVideoWindows::Play}\label{wxvideowindowsplay}
\func{bool}{Play}{\void}
\membersection{wxVideoWindows::Stop}\label{wxvideowindowsstop}
\func{bool}{Stop}{\void}
\membersection{wxVideoWindows::Pause}\label{wxvideowindowspause}
\func{bool}{Pause}{\void}
\membersection{wxVideoWindows::Resume}\label{wxvideowindowsresume}
\func{bool}{Resume}{\void}
\membersection{wxVideoWindows::GetSize}\label{wxvideowindowsgetsize}
\constfunc{bool}{GetSize}{\param{wxSize\& }{size}}
\membersection{wxVideoWindows::SetSize}\label{wxvideowindowssetsize}
\func{bool}{SetSize}{\param{wxSize }{size}}
\membersection{wxVideoWindows::GetMovieCodec}\label{wxvideowindowsgetmoviecodec}
\constfunc{wxString}{GetMovieCodec}{\void}
Return codec name for each stream.
\membersection{wxVideoWindows::GetAudioCodec}\label{wxvideowindowsgetaudiocodec}
\constfunc{wxString}{GetAudioCodec}{\void}
\membersection{wxVideoWindows::GetSampleRate}\label{wxvideowindowsgetsamplerate}
\constfunc{wxUint32}{GetSampleRate}{\void}
Return misc. info about audio
\membersection{wxVideoWindows::GetChannels}\label{wxvideowindowsgetchannels}
\constfunc{wxUint8}{GetChannels}{\void}
\membersection{wxVideoWindows::GetBPS}\label{wxvideowindowsgetbps}
\constfunc{wxUint8}{GetBPS}{\void}
\membersection{wxVideoWindows::GetFrameRate}\label{wxvideowindowsgetframerate}
\constfunc{double}{GetFrameRate}{\void}
Return the frame rate of the video (in frames/second)
\membersection{wxVideoWindows::GetNbFrames}\label{wxvideowindowsgetnbframes}
\constfunc{wxUint32}{GetNbFrames}{\void}
Return the total number of frames in the movie
\membersection{wxVideoWindows::IsCapable}\label{wxvideowindowsiscapable}
\func{bool}{IsCapable}{\param{wxVideoType }{v\_type}}
\membersection{wxVideoWindows::AttachOutput}\label{wxvideowindowsattachoutput}
\func{bool}{AttachOutput}{\param{wxWindow\& }{output}}
\membersection{wxVideoWindows::DetachOutput}\label{wxvideowindowsdetachoutput}
\func{void}{DetachOutput}{\void}
\membersection{wxVideoWindows::IsPaused}\label{wxvideowindowsispaused}
\constfunc{bool}{IsPaused}{\void}
\membersection{wxVideoWindows::IsStopped}\label{wxvideowindowsisstopped}
\constfunc{bool}{IsStopped}{\void}

View File

@@ -0,0 +1,170 @@
%
% automatically generated by HelpGen from
% /home/guilhem/PROJECTS/wxWindows/utils/wxMMedia2/lib/vidxanm.h at 26/Feb/00 14:52:06
%
\section{\class{wxVideoXANIM}}\label{wxvideoxanim}
Class definition
\wxheading{Derived from}
\helpref{wxVideoBaseDriver}{wxvideobasedriver}
\wxheading{Data structures}
{\small \begin{verbatim}
typedef struct wxXANIMinternal {
Display *xanim\_dpy
\end{verbatim}}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxVideoXANIM::wxVideoXANIM}\label{wxvideoxanimwxvideoxanim}
\func{}{wxVideoXANIM}{\void}
\membersection{wxVideoXANIM::wxVideoXANIM}\label{wxvideoxanimwxvideoxanim}
\func{}{wxVideoXANIM}{\param{wxInputStream\& }{str}}
\membersection{wxVideoXANIM::wxVideoXANIM}\label{wxvideoxanimwxvideoxanim}
\func{}{wxVideoXANIM}{\param{const wxString\& }{filename}}
\membersection{wxVideoXANIM::\destruct{wxVideoXANIM}}\label{wxvideoxanimdtor}
\func{}{\destruct{wxVideoXANIM}}{\void}
\membersection{wxVideoXANIM::Play}\label{wxvideoxanimplay}
\func{bool}{Play}{\void}
\membersection{wxVideoXANIM::Pause}\label{wxvideoxanimpause}
\func{bool}{Pause}{\void}
\membersection{wxVideoXANIM::Resume}\label{wxvideoxanimresume}
\func{bool}{Resume}{\void}
\membersection{wxVideoXANIM::Stop}\label{wxvideoxanimstop}
\func{bool}{Stop}{\void}
\membersection{wxVideoXANIM::SetVolume}\label{wxvideoxanimsetvolume}
\func{bool}{SetVolume}{\param{wxUint8 }{vol}}
\membersection{wxVideoXANIM::SetSize}\label{wxvideoxanimsetsize}
\func{bool}{SetSize}{\param{wxSize }{size}}
\membersection{wxVideoXANIM::GetSize}\label{wxvideoxanimgetsize}
\constfunc{bool}{GetSize}{\param{wxSize\& }{size}}
\membersection{wxVideoXANIM::GetMovieCodec}\label{wxvideoxanimgetmoviecodec}
\constfunc{wxString}{GetMovieCodec}{\void}
Return the video codec name
\membersection{wxVideoXANIM::GetAudioCodec}\label{wxvideoxanimgetaudiocodec}
\constfunc{wxString}{GetAudioCodec}{\void}
Return the audio codec name
\membersection{wxVideoXANIM::GetSampleRate}\label{wxvideoxanimgetsamplerate}
\constfunc{wxUint32}{GetSampleRate}{\void}
Return misc info about audio
\membersection{wxVideoXANIM::GetChannels}\label{wxvideoxanimgetchannels}
\constfunc{wxUint8}{GetChannels}{\void}
\membersection{wxVideoXANIM::GetBPS}\label{wxvideoxanimgetbps}
\constfunc{wxUint8}{GetBPS}{\void}
\membersection{wxVideoXANIM::GetFrameRate}\label{wxvideoxanimgetframerate}
\constfunc{double}{GetFrameRate}{\void}
Return frame rate
\membersection{wxVideoXANIM::GetNbFrames}\label{wxvideoxanimgetnbframes}
\constfunc{wxUint32}{GetNbFrames}{\void}
Return number of frames in the movie
\membersection{wxVideoXANIM::IsCapable}\label{wxvideoxanimiscapable}
\constfunc{bool}{IsCapable}{\param{wxVideoType }{v\_type}}
\membersection{wxVideoXANIM::AttachOutput}\label{wxvideoxanimattachoutput}
\func{bool}{AttachOutput}{\param{wxWindow\& }{output}}
\membersection{wxVideoXANIM::DetachOutput}\label{wxvideoxanimdetachoutput}
\func{void}{DetachOutput}{\void}
\membersection{wxVideoXANIM::IsPaused}\label{wxvideoxanimispaused}
\constfunc{bool}{IsPaused}{\void}
\membersection{wxVideoXANIM::IsStopped}\label{wxvideoxanimisstopped}
\constfunc{bool}{IsStopped}{\void}
\membersection{wxVideoXANIM::RestartXANIM}\label{wxvideoxanimrestartxanim}
\func{bool}{RestartXANIM}{\void}
Start the subprocess with the right parameters
\membersection{wxVideoXANIM::SendCommand}\label{wxvideoxanimsendcommand}
\func{bool}{SendCommand}{\param{const char* }{command}, \param{char** }{ret = NULL}, \param{wxUint32* }{size = NULL}}
Send a command to the subprocess
\membersection{wxVideoXANIM::CollectInfo}\label{wxvideoxanimcollectinfo}
\func{bool}{CollectInfo}{\void}
Collect informations from XAnim

Binary file not shown.

After

Width:  |  Height:  |  Size: 978 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -0,0 +1,11 @@
\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}

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 B

View File

@@ -0,0 +1,19 @@
\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}

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 996 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 959 B

View File

@@ -0,0 +1,47 @@
\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}

View File

@@ -0,0 +1,17 @@
[OPTIONS]
BMROOT=d:\wx2\wxwind~1\contrib\docs\latex\ogl ; 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]

View File

@@ -0,0 +1,46 @@
\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{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}

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

View File

@@ -0,0 +1,87 @@
\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.

View File

@@ -0,0 +1,35 @@
; 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}}
;;
;; These two are for generating MS HTML Help project, contents and index files.
;;
htmlWorkshopFiles = true
htmlIndex = true
\pythonnote [1] {{\bf \fcol{blue}{wxPython note:}} #1}
%\pythonnote [1] {}

View File

@@ -0,0 +1,298 @@
% 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

View File

@@ -0,0 +1,161 @@
\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}.

Binary file not shown.

After

Width:  |  Height:  |  Size: 998 B

View File

@@ -0,0 +1,74 @@
// ---------------------------------------------------------------------------
// Name: cdbase.h
// Purpose: wxMMedia
// Author: Guilhem Lavaux
// Created: 1997
// Updated: 1998, 1999, 2000
// Copyright: (C) 1997, 1998, 1999, 2000 Guilhem Lavaux
// License: wxWindows license
// ---------------------------------------------------------------------------
#ifndef __CDA_base_H__
#define __CDA_base_H__
#ifdef __GNUG__
#pragma interface "cdbase.h"
#endif
#include "wx/defs.h"
#include "wx/object.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

View File

@@ -0,0 +1,58 @@
// ---------------------------------------------------------------------------
// Name: cdunix.h
// Purpose: wxMMedia
// Author: Guilhem Lavaux
// Created: 1997
// Updated: 2000
// Copyright: (C) 1997, 1998, 1999, 2000 Guilhem Lavaux
// License: wxWindows license
// ---------------------------------------------------------------------------
#ifndef __CDUNIXH__
#define __CDUNIXH__
#ifdef __GNUG__
#pragma interface "cdunix.h"
#endif
#include "wx/defs.h"
#include "wx/object.h"
#include "wx/string.h"
#include "wx/mmedia/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 wxString& 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 wxString& dev_name);
};
#endif

View File

@@ -0,0 +1,62 @@
// /////////////////////////////////////////////////////////////////////////////
// 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 <windows.h>
#include <mmsystem.h>
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

View File

@@ -0,0 +1,123 @@
/*
* 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 */

View File

@@ -0,0 +1,46 @@
// --------------------------------------------------------------------------
// Name: sndaiff.h
// Purpose:
// Date: 08/11/1999
// Author: Guilhem Lavaux <lavaux@easynet.fr> (C) 1999
// CVSID: $Id$
// --------------------------------------------------------------------------
#ifndef _WX_SNDAIFF_H
#define _WX_SNDAIFF_H
#ifdef __GNUG__
#pragma interface "sndaiff.h"
#endif
#include "wx/defs.h"
#include "wx/stream.h"
#include "wx/mmedia/sndbase.h"
#include "wx/mmedia/sndcodec.h"
#include "wx/mmedia/sndfile.h"
//
// AIFF codec
//
class wxSoundAiff: public wxSoundFileStream {
public:
wxSoundAiff(wxInputStream& stream, wxSoundStream& io_sound);
wxSoundAiff(wxOutputStream& stream, wxSoundStream& io_sound);
~wxSoundAiff();
bool CanRead();
wxString GetCodecName() const;
protected:
bool PrepareToPlay();
bool PrepareToRecord(wxUint32 time);
bool FinishRecording();
bool RepositionStream(wxUint32 position);
wxUint32 GetData(void *buffer, wxUint32 len);
wxUint32 PutData(const void *buffer, wxUint32 len);
protected:
off_t m_base_offset;
};
#endif

View File

@@ -0,0 +1,171 @@
// --------------------------------------------------------------------------
// Name: sndbase.h
// Purpose:
// Date: 08/11/1999
// Author: Guilhem Lavaux <lavaux@easynet.fr> (C) 1999
// CVSID: $Id$
// --------------------------------------------------------------------------
#ifndef _WX_SNDBASE_H
#define _WX_SNDBASE_H
#ifdef __GNUG__
#pragma interface "sndbase.h"
#endif
#include "wx/defs.h"
// ------------------------------------------------------------------------
// DEFINITIONS
// ---------------------
// Sound streaming mode:
// - wxSOUND_INPUT: simple recording mode
// - wxSOUND_OUTPUT: simple playing mode
// - wxSOUND_DUPLEX: full duplex record/play at the same time
// ---------------------
enum {
wxSOUND_INPUT = 1,
wxSOUND_OUTPUT = 2,
wxSOUND_DUPLEX = wxSOUND_INPUT | wxSOUND_OUTPUT,
};
// ---------------------
// wxSoundFormatType: it specifies the format family of the sound data
// which will be passed to the stream.
// ---------------------
typedef enum {
wxSOUND_NOFORMAT,
wxSOUND_PCM,
wxSOUND_ULAW,
wxSOUND_G72X,
wxSOUND_MSADPCM
} wxSoundFormatType;
// ---------------------
// wxSoundError:
// - wxSOUND_NOERR: No error occured
// - wxSOUND_IOERR: an input/output error occured, it may concern either
// a driver or a file
// - wxSOUND_INVFRMT: the sound format passed to the function is invalid.
// Generally, it means that you passed out of range values
// to the codec stream or you don't pass the right sound
// format object to the right sound codec stream.
// - wxSOUND_INVDEV: Invalid device. Generally, it means that the sound stream
// didn't manage to open the device driver due to an invalid// parameter or to the fact that sound is not supported on
// this computer.
// - wxSOUND_NOEXACT: No exact matching sound codec has been found for
// this sound format. It means that the sound driver didn't
// manage to setup the sound card with the specified
// values.
// - wxSOUND_NOCODEC: No matching codec has been found. Generally, it
// may happen when you call
// wxSoundRouterStream::SetSoundFormat().
// - wxSOUND_MEMERR: Not enough memory.
// - wxSOUND_NOTSTARTED: You did not start the production using
// StartProduction()
// ---------------------
typedef enum {
wxSOUND_NOERROR,
wxSOUND_IOERROR,
wxSOUND_INVFRMT,
wxSOUND_INVDEV,
wxSOUND_NOEXACT,
wxSOUND_INVSTRM,
wxSOUND_NOCODEC,
wxSOUND_MEMERROR,
wxSOUND_NOTSTARTED
} wxSoundError;
class WXDLLEXPORT wxSoundStream;
// ---------------------
// wxSoundCallback(stream, evt, cdata): C callback for sound event.
// - stream: current wxSoundStream
// - evt: the sound event which has occured, it may be wxSOUND_INPUT,
// wxSOUND_OUTPUT or wxSOUND_DUPLEX
// - cdata: User callback data
// ---------------------
typedef void (*wxSoundCallback)(wxSoundStream *stream, int evt,
void *cdata);
//
// Base class for sound format specification
//
class WXDLLEXPORT wxSoundFormatBase {
public:
wxSoundFormatBase();
virtual ~wxSoundFormatBase();
// It returns a "standard" format type.
virtual wxSoundFormatType GetType() const { return wxSOUND_NOFORMAT; }
// It clones the current format.
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, wxUint32 len) = 0;
// Writes "len" byte to the sound stream.
virtual wxSoundStream& Write(const void *buffer, wxUint32 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 SetCallback(int evt, wxSoundCallback cbk, void *cdata);
// Starts the async notifier. After this call, the stream begins either
// recording or playing or the two at the same time.
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; }
wxSoundError GetError() const { return m_snderror; }
wxUint32 GetLastAccess() const { return m_lastcount; }
// This is only useful for device (I think).
virtual bool QueueFilled() const { return TRUE; }
protected:
// Current sound format
wxSoundFormatBase *m_sndformat;
// Last error
wxSoundError m_snderror;
// Last access
wxUint32 m_lastcount;
// Event handler
wxSoundStream *m_handler;
wxSoundCallback m_callback[2];
void *m_cdata[2];
protected:
// Handles event
virtual void OnSoundEvent(int evt);
};
#endif

View File

@@ -0,0 +1,32 @@
// --------------------------------------------------------------------------
// Name: sndcodec.h
// Purpose:
// Date: 08/11/1999
// Author: Guilhem Lavaux <lavaux@easynet.fr> (C) 1999
// CVSID: $Id$
// --------------------------------------------------------------------------
#ifndef _WX_SNDCODEC_H
#define _WX_SNDCODEC_H
#ifdef __GNUG__
#pragma interface "sndcodec.h"
#endif
#include "wx/defs.h"
#include "wx/mmedia/sndbase.h"
class wxSoundStreamCodec: public wxSoundStream {
public:
wxSoundStreamCodec(wxSoundStream& snd_io);
~wxSoundStreamCodec();
bool StartProduction(int evt);
bool StopProduction();
wxUint32 GetBestSize() const;
protected:
wxSoundStream *m_sndio;
};
#endif

View File

@@ -0,0 +1,54 @@
// --------------------------------------------------------------------------
// Name: sndcpcm.h
// Purpose:
// Date: 08/11/1999
// Author: Guilhem Lavaux <lavaux@easynet.fr> (C) 1999
// CVSID: $Id$
// --------------------------------------------------------------------------
#ifndef _WX_SNDCPCM_H
#define _WX_SNDCPCM_H
#ifdef __GNUG__
#pragma interface "sndcpcm.h"
#endif
#include "wx/defs.h"
#include "wx/mmedia/sndbase.h"
#include "wx/mmedia/sndcodec.h"
//
// PCM converter class
//
class wxSoundStreamPcm: public wxSoundStreamCodec {
public:
typedef void (*ConverterType)(const void *buf_in, void *buf_out,
wxUint32 len);
wxSoundStreamPcm(wxSoundStream& sndio);
~wxSoundStreamPcm();
wxSoundStream& Read(void *buffer, wxUint32 len);
wxSoundStream& Write(const void *buffer, wxUint32 len);
bool SetSoundFormat(const wxSoundFormatBase& format);
wxUint32 GetBestSize() const;
protected:
wxUint32 GetReadSize(wxUint32 len) const;
wxUint32 GetWriteSize(wxUint32 len) const;
protected:
ConverterType m_function_out, m_function_in;
// Static temporary buffer
char *m_prebuffer;
wxUint32 m_prebuffer_size;
// Estimated best size to fit into the static buffer
wxUint32 m_best_size;
// Multiplier for IO buffer size
float m_multiplier_in, m_multiplier_out;
};
#endif

View File

@@ -0,0 +1,53 @@
// --------------------------------------------------------------------------
// Name: sndesd.h
// Purpose:
// Date: 08/11/1999
// Author: Guilhem Lavaux <lavaux@easynet.fr> (C) 1999
// CVSID: $Id$
// --------------------------------------------------------------------------
#ifndef _WX_SNDESD_H
#define _WX_SNDESD_H
#ifdef __GNUG__
#pragma interface "sndesd.h"
#endif
#include "wx/defs.h"
#include "wx/string.h"
#include "wx/mmedia/sndbase.h"
#include "wx/mmedia/sndpcm.h"
//
// ESD output class
//
class wxSoundStreamESD : public wxSoundStream {
public:
wxSoundStreamESD(const wxString& hostname = wxT("localhost"));
~wxSoundStreamESD();
wxSoundStream& Read(void *buffer, wxUint32 len);
wxSoundStream& Write(const void *buffer, wxUint32 len);
bool SetSoundFormat(const wxSoundFormatBase& format);
bool StartProduction(int evt);
bool StopProduction();
// You should not call this.
void WakeUpEvt(int evt);
bool QueueFilled() const { return m_q_filled; }
protected:
int m_fd_input, m_fd_output; // ESD fds
int m_tag_input, m_tag_output; // GLIB tags
bool m_esd_stop; // Stream started ?
bool m_esd_ok; // ESD detected
wxString m_hostname; // ESD host
bool m_q_filled; // queue filled
private:
void DetectBest(wxSoundFormatPcm *pcm);
};
#endif

View File

@@ -0,0 +1,125 @@
// --------------------------------------------------------------------------
// Name: sndfile.h
// Purpose:
// Date: 08/11/1999
// Author: Guilhem Lavaux <lavaux@easynet.fr> (C) 1999
// CVSID: $Id$
// --------------------------------------------------------------------------
#ifndef _WX_SNDFILE_H
#define _WX_SNDFILE_H
#include "wx/defs.h"
#include "wx/stream.h"
#include "wx/mmedia/sndbase.h"
#include "wx/mmedia/sndcodec.h"
#define wxSOUND_INFINITE_TIME ((wxUint32)-1)
//
// Codec router class
//
class WXDLLEXPORT wxSoundRouterStream: public wxSoundStreamCodec {
public:
wxSoundRouterStream(wxSoundStream& sndio);
~wxSoundRouterStream();
wxSoundStream& Read(void *buffer, wxUint32 len);
wxSoundStream& Write(const void *buffer, wxUint32 len);
bool SetSoundFormat(const wxSoundFormatBase& format);
bool StartProduction(int evt);
bool StopProduction();
wxUint32 GetBestSize() const;
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();
// Usual sound file calls (Play, Stop, ...)
bool Play();
bool Record(wxUint32 time);
bool Stop();
bool Pause();
bool Resume();
// Functions which return the current state
bool IsStopped() const { return m_state == wxSOUND_FILE_STOPPED; }
bool IsPaused() const { return m_state == wxSOUND_FILE_PAUSED; }
// A user should not call these two functions.
// Several things must be done before calling them.
// Users should use Play(), ...
bool StartProduction(int evt);
bool StopProduction();
// These three functions deals with the length, the position in the sound file.
// All the values are expressed in bytes. If you need the values expressed
// in terms of time, you have to use GetSoundFormat().GetTimeFromBytes(...)
wxUint32 GetLength();
wxUint32 GetPosition();
wxUint32 SetPosition(wxUint32 new_position);
// These two functions use the sound format specified by GetSoundFormat().
// All samples must be encoded in that format.
wxSoundStream& Read(void *buffer, wxUint32 len);
wxSoundStream& Write(const void *buffer, wxUint32 len);
// This function set the sound format of the file. !! It must be used only
// when you are in output mode (concerning the file) !! If you are in
// input mode (concerning the file) you can't use this function to modify
// the format of the samples returned by Read() !
// For this action, you must use wxSoundRouterStream applied to wxSoundFileStream.
bool SetSoundFormat(const wxSoundFormatBase& format);
// This function returns the Codec name. This is useful for those who want to build
// a player (But also in some other case).
virtual wxString GetCodecName() const;
// You should use this function to test whether this file codec can read
// the stream you passed to it.
virtual bool CanRead() { return FALSE; }
protected:
wxSoundRouterStream m_codec;
wxSoundStream *m_sndio;
wxInputStream *m_input;
wxOutputStream *m_output;
wxSoundFileState m_state, m_oldstate;
wxUint32 m_length, m_bytes_left;
bool m_prepared;
protected:
virtual bool PrepareToPlay() = 0;
virtual bool PrepareToRecord(wxUint32 time) = 0;
virtual bool FinishRecording() = 0;
virtual bool RepositionStream(wxUint32 position) = 0;
void FinishPreparation(wxUint32 len);
virtual wxUint32 GetData(void *buffer, wxUint32 len) = 0;
virtual wxUint32 PutData(const void *buffer, wxUint32 len) = 0;
void OnSoundEvent(int evt);
};
#endif

View File

@@ -0,0 +1,85 @@
// --------------------------------------------------------------------------
// Name: sndg72x.h
// Purpose:
// Date: 08/26/1999
// Author: Guilhem Lavaux <lavaux@easynet.fr> (C) 1999
// CVSID: $Id$
// --------------------------------------------------------------------------
#ifndef _WX_SNDG72X_H
#define _WX_SNDG72X_H
#ifdef __GNUG__
#pragma interface "sndg72x.h"
#endif
#include "wx/defs.h"
#include "wx/mmedia/sndbase.h"
#include "wx/mmedia/sndcodec.h"
#include "wx/mmedia/sndbase.h"
typedef enum {
wxSOUND_G721,
wxSOUND_G723_24,
wxSOUND_G723_40
} wxSoundG72XType;
// This fixes a bug in Mingw95
typedef struct g72x_state g72state;
//
// G72X format
//
class WXDLLEXPORT wxSoundFormatG72X: public wxSoundFormatBase {
public:
wxSoundFormatG72X();
~wxSoundFormatG72X();
void SetG72XType(wxSoundG72XType type);
wxSoundG72XType GetG72XType() const { return m_g72x_type; }
void SetSampleRate(wxUint32 srate);
wxUint32 GetSampleRate() const;
wxSoundFormatType GetType() const { return wxSOUND_G72X; }
wxSoundFormatBase *Clone() const;
wxUint32 GetTimeFromBytes(wxUint32 bytes) const;
wxUint32 GetBytesFromTime(wxUint32 time) const;
bool operator !=(const wxSoundFormatBase& frmt2) const;
protected:
wxUint32 m_srate;
wxSoundG72XType m_g72x_type;
};
//
// ULAW converter class
//
class WXDLLEXPORT wxSoundRouterStream;
class WXDLLEXPORT wxSoundStreamG72X: public wxSoundStreamCodec {
public:
wxSoundStreamG72X(wxSoundStream& sndio);
~wxSoundStreamG72X();
wxSoundStream& Read(void *buffer, wxUint32 len);
wxSoundStream& Write(const void *buffer, wxUint32 len);
bool SetSoundFormat(const wxSoundFormatBase& format);
protected:
wxSoundRouterStream *m_router;
wxUint8 m_n_bits, m_current_mask, m_current_b_pos, m_current_byte;
wxUint8 *m_io_buffer;
g72state *m_state;
int (*m_coder)(int code, int in_code, struct g72x_state *state);
int (*m_decoder)(int code, int out_code, struct g72x_state *state);
protected:
void PutBits(wxUint8 bits);
wxUint8 GetBits();
};
#endif

View File

@@ -0,0 +1,72 @@
// --------------------------------------------------------------------------
// Name: sndmsad(pcm).h
// Purpose: MS ADPCM codec
// Date: 25/02/2000
// Author: Guilhem Lavaux <lavaux@easynet.fr> (C) 2000
// CVSID: $Id$
// --------------------------------------------------------------------------
#ifndef _WX_SNDULAW_H
#define _WX_SNDULAW_H
#ifdef __GNUG__
#pragma interface "sndmsad.h"
#endif
#include "wx/defs.h"
#include "wx/dynarray.h"
#include "wx/mmedia/sndcodec.h"
#include "wx/mmedia/sndbase.h"
WX_DEFINE_EXPORTED_ARRAY(wxUint16, wxMSAdpcmCoeffs);
//
// MSADPCM format
//
class WXDLLEXPORT wxSoundFormatMSAdpcm: public wxSoundFormatBase {
public:
wxSoundFormatMSAdpcm();
~wxSoundFormatMSAdpcm();
void SetSampleRate(wxUint32 srate);
wxUint32 GetSampleRate() const;
void SetSamplesBlock(wxUint16 sampblock);
wxUint16 GetSamplesBlock() const;
void SetCoefs(wxMSAdpcmCoefs& coefs);
wxMSAdpcmCoefs& GetCoefs() 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;
wxMSAdpcmCoefs *m_coefs;
};
//
// MS ADPCM converter class
//
class WXDLLEXPORT wxSoundRouterStream;
class WXDLLEXPORT wxSoundStreamAdpcm: public wxSoundStreamCodec {
public:
wxSoundStreamAdpcm(wxSoundStream& sndio);
~wxSoundStreamAdpcm();
wxSoundStream& Read(void *buffer, wxUint32 len);
wxSoundStream& Write(const void *buffer, wxUint32 len);
bool SetSoundFormat(const wxSoundFormatBase& format);
wxUint32 GetBestSize() const;
protected:
wxSoundRouterStream *m_router;
};
#endif

View File

@@ -0,0 +1,55 @@
// --------------------------------------------------------------------------
// Name: sndoss.h
// Purpose:
// Date: 08/11/1999
// Author: Guilhem Lavaux <lavaux@easynet.fr> (C) 1999
// CVSID: $Id$
// --------------------------------------------------------------------------
#ifndef _WX_SNDOSS_H
#define _WX_SNDOSS_H
#ifdef __GNUG__
#pragma interface "sndoss.h"
#endif
#include "wx/defs.h"
#include "wx/string.h"
#include "wx/mmedia/sndbase.h"
#include "wx/mmedia/sndpcm.h"
//
// OSS output class
//
class wxSoundStreamOSS : public wxSoundStream {
public:
wxSoundStreamOSS(const wxString& dev_name = wxT("/dev/dsp"));
~wxSoundStreamOSS();
wxSoundStream& Read(void *buffer, wxUint32 len);
wxSoundStream& Write(const void *buffer, wxUint32 len);
wxUint32 GetBestSize() const;
bool SetSoundFormat(const wxSoundFormatBase& format);
bool StartProduction(int evt);
bool StopProduction();
bool QueueFilled() const;
// You should not call this.
void WakeUpEvt(int evt);
protected:
// OSS device
int m_fd;
wxUint32 m_bufsize;
int m_tag;
bool m_oss_stop, m_oss_ok, m_q_filled;
wxString m_devname;
private:
bool SetupFormat(wxSoundFormatPcm *pcm);
void DetectBest(wxSoundFormatPcm *pcm);
};
#endif

View File

@@ -0,0 +1,57 @@
// --------------------------------------------------------------------------
// Name: sndpcm.h
// Purpose:
// Date: 08/11/1999
// Author: Guilhem Lavaux <lavaux@easynet.fr> (C) 1999
// CVSID: $Id$
// --------------------------------------------------------------------------
#ifndef _WX_SNDPCM_H
#define _WX_SNDPCM_H
#ifdef __GNUG__
#pragma interface "sndpcm.h"
#endif
#include "wx/defs.h"
#include "wx/mmedia/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

View File

@@ -0,0 +1,67 @@
// --------------------------------------------------------------------------
// Name: sndulaw.h
// Purpose:
// Date: 08/11/1999
// Author: Guilhem Lavaux <lavaux@easynet.fr> (C) 1999
// CVSID: $Id$
// --------------------------------------------------------------------------
#ifndef _WX_SNDULAW_H
#define _WX_SNDULAW_H
#ifdef __GNUG__
#pragma interface "sndulaw.h"
#endif
#include "wx/defs.h"
#include "wx/mmedia/sndcodec.h"
#include "wx/mmedia/sndbase.h"
//
// ULAW format
//
class WXDLLEXPORT wxSoundFormatUlaw: public wxSoundFormatBase {
public:
wxSoundFormatUlaw();
~wxSoundFormatUlaw();
void SetSampleRate(wxUint32 srate);
wxUint32 GetSampleRate() const;
void SetChannels(wxUint8 channels);
wxUint8 GetChannels() 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;
wxUint8 m_channels;
};
//
// ULAW converter class
//
class WXDLLEXPORT wxSoundRouterStream;
class WXDLLEXPORT wxSoundStreamUlaw: public wxSoundStreamCodec {
public:
wxSoundStreamUlaw(wxSoundStream& sndio);
~wxSoundStreamUlaw();
wxSoundStream& Read(void *buffer, wxUint32 len);
wxSoundStream& Write(const void *buffer, wxUint32 len);
bool SetSoundFormat(const wxSoundFormatBase& format);
wxUint32 GetBestSize() const;
protected:
wxSoundRouterStream *m_router;
};
#endif

View File

@@ -0,0 +1,58 @@
// --------------------------------------------------------------------------
// Name: sndwav.h
// Purpose:
// Date: 08/11/1999
// Author: Guilhem Lavaux <lavaux@easynet.fr> (C) 1999
// CVSID: $Id$
// --------------------------------------------------------------------------
#ifndef _WX_SNDWAV_H
#define _WX_SNDWAV_H
#ifdef __GNUG__
#pragma interface "sndwav.h"
#endif
#include "wx/defs.h"
#include "wx/string.h"
#include "wx/stream.h"
#include "wx/datstrm.h"
#include "wx/mmedia/sndbase.h"
#include "wx/mmedia/sndcodec.h"
#include "wx/mmedia/sndfile.h"
//
// WAVE codec
//
class wxSoundWave: public wxSoundFileStream {
public:
wxSoundWave(wxInputStream& stream, wxSoundStream& io_sound);
wxSoundWave(wxOutputStream& stream, wxSoundStream& io_sound);
~wxSoundWave();
bool CanRead();
wxString GetCodecName() const;
protected:
bool PrepareToPlay();
bool PrepareToRecord(wxUint32 time);
bool FinishRecording();
bool RepositionStream(wxUint32 position);
wxUint32 GetData(void *buffer, wxUint32 len);
wxUint32 PutData(const void *buffer, wxUint32 len);
bool HandleOutputPCM(wxDataInputStream& data, wxUint16 channels,
wxUint32 sample_fq, wxUint32 byte_p_sec,
wxUint16 byte_p_spl, wxUint16 bits_p_spl);
bool HandleOutputG721(wxDataInputStream& data, wxUint16 channels,
wxUint32 sample_fq, wxUint32 byte_p_sec,
wxUint16 byte_p_spl, wxUint16 bits_p_spl);
wxSoundFormatBase *HandleInputPCM(wxDataOutputStream& data);
wxSoundFormatBase *HandleInputG72X(wxDataOutputStream& data);
protected:
off_t m_base_offset;
};
#endif

View File

@@ -0,0 +1,65 @@
// --------------------------------------------------------------------------
// Name: sndwin.h
// Purpose:
// Date: 08/11/1999
// Author: Guilhem Lavaux <lavaux@easynet.fr> (C) 1999
// CVSID: $Id$
// --------------------------------------------------------------------------
#ifndef _WX_SNDWIN_H
#define _WX_SNDWIN_H
#include "wx/defs.h"
#include "wx/mmedia/sndbase.h"
typedef struct _wxSoundInternal wxSoundInternal;
typedef struct _wxSoundInfoHeader wxSoundInfoHeader;
// class WXDLLEXPORT wxSoundInternal;
class WXDLLEXPORT wxSoundStreamWin : public wxSoundStream {
public:
wxSoundStreamWin();
~wxSoundStreamWin();
wxSoundStream& Write(const void *buffer, wxUint32 len);
wxSoundStream& Read(void *buffer, wxUint32 len);
bool SetSoundFormat(wxSoundFormatBase& base);
bool StartProduction(int evt);
bool StopProduction();
bool QueueFilled() const;
// Internal but defined as public
void NotifyDoneBuffer(wxUint32 dev_handle, int flag);
wxUint32 GetBestSize() const { return 4096; }
protected:
wxSoundInternal *m_internal;
wxUint32 m_current_frag_in, m_current_frag_out;
wxUint32 m_input_frag_in, m_output_frag_out;
wxSoundInfoHeader **m_headers_play, **m_headers_rec;
bool m_production_started, m_queue_filled, m_waiting_for;
protected:
void CreateSndWindow();
void DestroySndWindow();
bool OpenDevice(int mode);
void CloseDevice();
wxSoundInfoHeader *AllocHeader(int mode);
void FreeHeader(wxSoundInfoHeader *header, int mode);
bool AllocHeaders(int mode);
void FreeHeaders(int mode);
void WaitFor(wxSoundInfoHeader *info);
bool AddToQueue(wxSoundInfoHeader *info);
void ClearHeader(wxSoundInfoHeader *info);
wxSoundInfoHeader *NextFragmentOutput();
wxSoundInfoHeader *NextFragmentInput();
};
#endif

View File

@@ -0,0 +1,110 @@
// /////////////////////////////////////////////////////////////////////////////
// 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 "vidbase.h"
#endif
// ----------------------------------------------------------------------------
// 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/defs.h"
#include "wx/stream.h"
#include "wx/string.h"
#include "wx/window.h"
#include "wx/frame.h"
#endif
// ----------------------------------------------------------------------------
// wxMMedia2 (video) types
typedef enum {
wxVIDEO_MSAVI,
wxVIDEO_MPEG,
wxVIDEO_QT,
wxVIDEO_GIF,
wxVIDEO_JMOV,
wxVIDEO_FLI,
wxVIDEO_IFF,
wxVIDEO_SGI,
wxVIDEO_MPEG2
} wxVideoType;
// ----------------------------------------------------------------------------
// Classes definition
class WXDLLEXPORT wxVideoBaseDriver : public wxObject {
DECLARE_ABSTRACT_CLASS(wxVideoBaseDriver)
protected:
wxWindow *m_video_output;
public:
// Ctors
wxVideoBaseDriver();
wxVideoBaseDriver(wxInputStream& str);
wxVideoBaseDriver(const wxString& filename);
// Dtor
virtual ~wxVideoBaseDriver();
// Usual functions ... They all return FALSE in case of errors.
virtual bool Play() = 0;
virtual bool Stop() = 0;
virtual bool Pause() = 0;
virtual bool Resume() = 0;
// Size management
virtual bool SetSize(wxSize size) = 0;
virtual bool GetSize(wxSize& size) const = 0;
// Test the capability of the driver to handle the specified type
virtual bool IsCapable(wxVideoType WXUNUSED(v_type)) const { return FALSE; }
// Return the video codec name
virtual wxString GetMovieCodec() const = 0;
// Return the audio codec name
virtual wxString GetAudioCodec() const = 0;
// Return misc info about audio
virtual wxUint32 GetSampleRate() const = 0;
virtual wxUint8 GetChannels() const = 0;
virtual wxUint8 GetBPS() const = 0;
// Return frame rate
virtual double GetFrameRate() const = 0;
// Return number of frames
virtual wxUint32 GetNbFrames() const = 0;
// Called when the movie finished
virtual void OnFinished() {}
// Attaches the video output to a window. The video will be shown in that window.
virtual bool AttachOutput(wxWindow& output);
virtual void DetachOutput();
// They return the state of the movie.
virtual bool IsPaused() const = 0;
virtual bool IsStopped() const = 0;
};
WXDLLEXPORT wxFrame *wxVideoCreateFrame(wxVideoBaseDriver *vid_drv);
#endif

View File

@@ -0,0 +1,101 @@
// ----------------------------------------------------------------------------
// Name: vidwin.h
// Purpose: wxMMedia
// Author: Guilhem Lavaux
// Created: February 1998
// Updated:
// Copyright: (C) 1998, Guilhem Lavaux
// License: wxWindows license
// ----------------------------------------------------------------------------
#ifndef __VID_windows_H__
#define __VID_windows_H__
#ifdef __GNUG__
#pragma interface "vidwin.h"
#endif
// ----------------------------------------------------------------------------
// 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/string.h"
#include "wx/stream.h"
#include "wx/window.h"
#endif
// ----------------------------------------------------------------------------
// wxMMedia2 headers
#include "wx/mmedia/vidbase.h"
// ----------------------------------------------------------------------------
// System headers and private types
#ifdef WXMMEDIA_INTERNAL
#include <windows.h>
#include <mmsystem.h>
typedef struct VIDW_Internal {
MCIDEVICEID m_dev_id;
} wxVIDWinternal;
#endif
// ----------------------------------------------------------------------------
// Class definition
class WXDLLEXPORT wxVideoWindows : public wxVideoBaseDriver {
DECLARE_DYNAMIC_CLASS(wxVideoWindows)
protected:
struct VIDW_Internal *m_internal;
bool m_paused, m_stopped, m_remove_file;
wxString m_filename;
double m_frameRate;
wxUint8 m_bps;
void OpenFile();
public:
wxVideoWindows(void);
wxVideoWindows(wxInputStream& str);
wxVideoWindows(const wxString& fname);
~wxVideoWindows(void);
bool Play();
bool Stop();
bool Pause();
bool Resume();
bool GetSize(wxSize& size) const;
bool SetSize(wxSize size);
// Return codec name for each stream.
wxString GetMovieCodec() const;
wxString GetAudioCodec() const;
// Return misc. info about audio
wxUint32 GetSampleRate() const;
wxUint8 GetChannels() const;
wxUint8 GetBPS() const;
// Return the frame rate of the video (in frames/second)
double GetFrameRate() const;
// Return the total number of frames in the movie
wxUint32 GetNbFrames() const;
bool IsCapable(wxVideoType v_type);
bool AttachOutput(wxWindow& output);
void DetachOutput(void);
bool IsPaused() const;
bool IsStopped() const;
};
#endif

View File

@@ -0,0 +1,136 @@
// /////////////////////////////////////////////////////////////////////////////
// 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 "vidxanm.h"
#endif
// ----------------------------------------------------------------------------
// 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/defs.h"
#include "wx/string.h"
#include "wx/process.h"
#endif
// ----------------------------------------------------------------------------
// System dependent headers
#if defined(WXMMEDIA_INTERNAL) && (defined(__X__) || defined(__WXGTK__))
#include <X11/Xlib.h>
#include <X11/Xatom.h>
#endif
// ----------------------------------------------------------------------------
// wxMMedia2 headers
#include "wx/mmedia/vidbase.h"
// ----------------------------------------------------------------------------
// Internal types
#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 definition
class WXDLLEXPORT wxVideoXANIM : public wxVideoBaseDriver {
DECLARE_DYNAMIC_CLASS(wxVideoXANIM)
protected:
// Remember the state of the subprocess
bool m_xanim_started, m_paused;
// Pure X11 variables
struct wxXANIMinternal *m_internal;
wxString m_filename;
wxProcess *m_xanim_detector;
// Remember to delete the temporary file when necessary
bool m_remove_file;
wxUint32 m_size[2];
wxUint32 m_sampleRate;
wxUint8 m_channels;
wxUint8 m_bps;
wxUint32 m_frames;
double m_frameRate;
wxString m_movieCodec, m_audioCodec;
public:
wxVideoXANIM();
wxVideoXANIM(wxInputStream& str);
wxVideoXANIM(const wxString& filename);
~wxVideoXANIM();
bool Play();
bool Pause();
bool Resume();
bool Stop();
bool SetVolume(wxUint8 vol);
bool SetSize(wxSize size);
bool GetSize(wxSize& size) const;
// Return the video codec name
wxString GetMovieCodec() const;
// Return the audio codec name
wxString GetAudioCodec() const;
// Return misc info about audio
wxUint32 GetSampleRate() const;
wxUint8 GetChannels() const;
wxUint8 GetBPS() const;
// Return frame rate
double GetFrameRate() const;
// Return number of frames in the movie
wxUint32 GetNbFrames() const;
bool IsCapable(wxVideoType v_type) const;
bool AttachOutput(wxWindow& output);
void DetachOutput();
bool IsPaused() const;
bool IsStopped() const;
friend class wxVideoXANIMProcess;
protected:
// Start the subprocess with the right parameters
bool RestartXANIM();
// Send a command to the subprocess
bool SendCommand(const char *command,char **ret = NULL,
wxUint32 *size = NULL);
// Collect informations from XAnim
bool CollectInfo();
};
#endif

View File

@@ -0,0 +1,744 @@
/////////////////////////////////////////////////////////////////////////////
// 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) )
// logical function to use when drawing rubberband boxes, etc.
#define OGLRBLF wxINVERT
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_

View File

@@ -0,0 +1,223 @@
/////////////////////////////////////////////////////////////////////////////
// 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_

View File

@@ -0,0 +1,53 @@
/////////////////////////////////////////////////////////////////////////////
// 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 <wx/ogl/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_

View File

@@ -0,0 +1,83 @@
/////////////////////////////////////////////////////////////////////////////
// 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_

View File

@@ -0,0 +1,238 @@
/////////////////////////////////////////////////////////////////////////////
// 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;
};
#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_

View File

@@ -0,0 +1,87 @@
/////////////////////////////////////////////////////////////////////////////
// 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_

View File

@@ -0,0 +1,75 @@
/////////////////////////////////////////////////////////////////////////////
// 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 &copy);
// 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_

View File

@@ -0,0 +1,227 @@
/////////////////////////////////////////////////////////////////////////////
// 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 <wx/ogl/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_

View File

@@ -0,0 +1,205 @@
/////////////////////////////////////////////////////////////////////////////
// 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 <wx/ogl/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_

View File

@@ -0,0 +1,296 @@
/////////////////////////////////////////////////////////////////////////////
// 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_

Some files were not shown because too many files have changed in this diff Show More