Compare commits

...

372 Commits

Author SHA1 Message Date
Bryan Petty
fad893ed70 This commit was manufactured by cvs2svn to create tag 'M_REFERENCE'.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/tags/M_REFERENCE@1021 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-22 22:32:53 +00:00
Julian Smart
184b5d99a5 Changes to WXDLLEXPORT keyword position for VC++ 6.0; changed
wxTrace to wxDebugLog in memory.cpp and also app.cpp (please check this works
on wxGTK!)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1020 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-22 22:32:53 +00:00
Karsten Ballüder
c2cde53a09 Fixed return code of GetSelectionCount()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1019 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-22 19:48:02 +00:00
Karsten Ballüder
e0e9b65eaa fixed bug for empty lists
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1018 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-22 19:45:43 +00:00
Guilhem Lavaux
bd5e2346d3 * Renamed fstream.h in wfstream.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1017 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-22 15:59:54 +00:00
Robin Dunn
56194595d5 Changed the event handling to use events, instead of just virtual functions.
This is so wxPython can derive from the class.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1016 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-22 04:20:32 +00:00
Julian Smart
6b037754f5 Doc updates (debug stuff); Cygwin corrections
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1015 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-21 15:40:35 +00:00
Guilhem Lavaux
25331334d4 * Changed fstream.* in wfstream.*
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1014 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-21 12:47:07 +00:00
Karsten Ballüder
deb907884a fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1013 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-19 20:34:59 +00:00
Robert Roebling
3bc755fc89 Added support for SCROLL_TOP and _BOTTOM events
Corrected behaviour for Blit with LogicalFunctions


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1012 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-18 17:37:48 +00:00
Julian Smart
2243eed573 Cured BC++ makefile bug; wxGrid fix; updated Motif install.txt
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1011 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-17 23:03:15 +00:00
Julian Smart
6fb26ea3b3 Added sash window and layout window docs; added wxLog... and assert functions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1010 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-17 22:44:47 +00:00
Robert Roebling
ee5e802571 Hm, FortyThieves' cards were all black.
MDI insert child bug.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1009 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-16 14:38:46 +00:00
Unknown (UG)
4259a48e0b no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1008 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-16 11:48:53 +00:00
Karsten Ballüder
90aa629a92 Fixed bad bad bug.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1007 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-16 09:30:53 +00:00
Robert Roebling
e23d0e958e Fixed bug in dc::blit()
Redid fix in fileconf

  FortyThieves works now..


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1006 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-16 08:31:32 +00:00
Robert Roebling
41dee9d0ce Fixed resizing of wxTextCtrl
Added clientdata to menu


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1005 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-16 07:18:28 +00:00
Robin Dunn
62bd087498 Generic treectrl for wxPython/GTK compiles...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1004 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-16 00:01:43 +00:00
Robin Dunn
faf3cb3590 Removing some ifdef's for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1003 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-15 23:04:59 +00:00
Julian Smart
f57fe24c63 Fix to parser.y to make it compile with makefile.unx; wxFileConfig
adds a / to user path if necessary; OGL sample cleans itself up;
wxLog fixes in app.cpp


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1002 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-15 21:53:27 +00:00
Robert Roebling
43a1889865 Added new wxBitmapButton implementation
Build fixes in base classes


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1001 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-15 17:57:55 +00:00
Karsten Ballüder
940c60c813 Replaced kbList with wxList.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1000 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-15 17:01:25 +00:00
Robert Roebling
f536880994 Coompilation fixes for GTK 1.1.3
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@999 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-15 15:29:28 +00:00
Robert Roebling
8e18907799 Added spinbutton
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@998 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-14 20:20:00 +00:00
Robert Roebling
e380f72b45 Doc corrections
fixed listbox setbackground
  added spinbutton sample


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@997 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-14 20:17:32 +00:00
Vadim Zeitlin
4832f7c06c 1. GetNextChild() bug fixed in generic version
2. GetChildrenCount(bool recursive) added to all versions, implemented
   only in the generic one so far
3. Sample slightly modified to show new function


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@996 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-13 20:47:22 +00:00
Julian Smart
8aa04e8bf1 Accelerators implemented for wxMotif; some wxComboBox stupidities cured
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@995 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-12 22:47:51 +00:00
Robert Roebling
892dbe9961 Last fixes for wxMotif and configure
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@994 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-12 18:18:29 +00:00
Robert Roebling
7615330240 Compile fixes, warnings etc.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@993 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-12 16:40:16 +00:00
Vadim Zeitlin
0133ee9316 "make depend" finally seems to work (thanks to Kristján Jónsson)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@992 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-12 16:02:36 +00:00
Robert Roebling
265898fd79 CalcBoundingBox() added so that Max() works in wxDC
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@991 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-12 06:12:38 +00:00
Guilhem Lavaux
8ef6a930da * Fixes.
* Added end process notification in motif.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@990 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-11 18:06:28 +00:00
Julian Smart
55acd85e71 Motif bug fixes; dialog OnPaint works now; wxColourDialog tweaking
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@989 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-11 14:39:42 +00:00
Robert Roebling
fb1585ae85 Still bit fiddling in wxImage.
SetSize rewritten.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@988 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-11 14:19:46 +00:00
Julian Smart
0f358732e4 Changed setup.h so that global memory operators are switched off for GnuWin32;
rearranged wxWave constructors; small changes in tlog.tex


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@987 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-11 09:53:54 +00:00
Karsten Ballüder
e5d7a5b37b Made netscape default browser.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@986 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-11 09:28:48 +00:00
Unknown (UG)
6dae83beef const added to Contains
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@985 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-11 08:42:10 +00:00
Robin Dunn
60e05667cb wxTreeCtrl now works (sort of) for wxPython-GTK. This is the new
TreeCtrl in src/gtk/treectrl.cpp not the old generic one.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@984 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-11 04:40:53 +00:00
Robin Dunn
630d84f26f Additions for wxTreeCtrl
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@983 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-11 03:13:19 +00:00
Karsten Ballüder
de5c0ba745 Added a sample to test wxExtHelpController. Should work with other
wxHelpController implementations, too.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@982 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-10 21:22:22 +00:00
Karsten Ballüder
e9aad10ab7 Added wxExtHelpController: wxHelpController implementation for external
viewers. Made it the default viewer for wxGTK and set wxUSE_HELP=1.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@981 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-10 21:17:35 +00:00
Robert Roebling
917e533ba8 Added test to prove a supposed misfeature.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@980 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-10 19:43:04 +00:00
Robert Roebling
5b766d236b Deleted a debugging line.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@979 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-10 19:21:10 +00:00
Robert Roebling
e8fdc26406 Bit fiddling part 4.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@978 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-10 19:18:37 +00:00
Robert Roebling
e6b5bdedf8 Yes, two more bugs killed.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@977 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-09 19:44:29 +00:00
Guilhem Lavaux
a462d1343f * wxMMedia: these makefiles are just indicative.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@976 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-09 18:39:05 +00:00
Guilhem Lavaux
4d6306eb4d * Added wxMMedia in the repository so people interrested in it can work on it
* WARNING! It is quite unstable on Windows and it doesn't work on Linux for
  the moment because I didn't finish fixing the CODEC stream.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@975 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-09 18:37:38 +00:00
Julian Smart
ea57084d10 Removed references to DEBUG and WXDEBUG; cured Motif font problem; removed
some warnings in OGL; fixed bug in wxChoice


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@974 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-09 11:57:05 +00:00
Mart Raudsepp
605c9c8318 if the wxTextCtrl is empty set by SetInsertionPointEnd to 0 and not to -1.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@973 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-09 08:09:03 +00:00
Robert Roebling
f9e02ac76b Suppressed warnings
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@972 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-09 06:15:41 +00:00
Julian Smart
3dd4e4e05c OGL fixes for wxMotif; added Set/GetClientData to wxMenu in wxMSW/wxMotif/wxStubs.
Sorry, I may be overwriting changes Robert made due to a file copying error.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@971 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-08 22:35:18 +00:00
Robert Roebling
d18ed59a36 Compile and build fixes for wxGTK and wxMotif
Removed somw more warnings


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@970 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-08 16:42:20 +00:00
Julian Smart
87d1e11fd4 Minor changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@969 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-08 15:16:11 +00:00
Robert Roebling
df875e593f Fixed 5 bugs in wxImage and Blit
Removed warning messages
  Some more clientdata fiddleing
  Added bitmap support to wxTreeCtrl
  Fixed some bugs in wxTreeCtrl
  Added licence.txt to /docs/gtk/


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@968 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-07 13:55:50 +00:00
Robert Roebling
f5e27805de Second try at doing Set/GetClient right
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@967 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-06 13:13:43 +00:00
Unknown (UG)
ed7174bafe no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@966 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-06 09:45:23 +00:00
Unknown (UG)
c33534e597 dll fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@965 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-06 09:33:25 +00:00
Robert Roebling
fd0eed647d SetEventData for a few widgets
Re-installed wxBitmaps::LoafFile


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@964 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-06 08:50:52 +00:00
Julian Smart
3572173c01 Added GetRect to region iterator; cured window.cpp problem for BC++
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@963 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-04 22:29:37 +00:00
Julian Smart
5de9c45c5d Added Motif install.txt.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@962 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-04 22:17:19 +00:00
Julian Smart
76c5df2420 Removed wxUpdateIterator documentation, added wxRegionIterator documentation.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@961 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-04 22:16:10 +00:00
Julian Smart
8f9d397616 Changed m_font to * GetFont() since m_font isn't in all implementations.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@960 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-04 13:07:46 +00:00
Robert Roebling
910276d73f Test for image conversion correctness.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@959 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-04 12:03:48 +00:00
Karsten Ballüder
e471e2d054 file got garbled, replaced
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@958 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-03 15:45:55 +00:00
Julian Smart
386af6a2fa Dialog Editor bug fixes, several other small ones
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@957 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-03 15:43:57 +00:00
Robert Roebling
64d315544f Bit fiddling.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@956 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-03 14:46:38 +00:00
Robert Roebling
6ca41e57f4 Fix for TextCtrl problem as reported by Vegh
Move definition of wxMenuItem to /gtk/menuitem.h
  Radical change of how to insert a child into a
    paren window. As C++ doesn't have any VMT in
    a class's consructor, I have to use a callback.
  Fixed culumn resizing bug in wxListCtrl
  Fixed menu height bug in MDI code


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@955 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-03 11:19:58 +00:00
Robin Dunn
c55bc98ef7 New generated code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@954 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-03 09:22:52 +00:00
Robin Dunn
4464bbee9c fixed a typo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@953 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-03 09:21:57 +00:00
Robert Roebling
dc86cb34c3 DnD fixes
Image fixes
  Clipboard API


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@952 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-02 14:12:29 +00:00
Karsten Ballüder
8c65b36ad7 Added test.xpm generated from horse.png, for compilation.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@951 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-02 14:09:42 +00:00
Denis Pershin
e1dc4cc687 All functionality I know hot implement already implemented.
Testing is needed.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@950 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-02 00:53:35 +00:00
Karsten Ballüder
9905086c2d fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@949 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-11-01 21:48:22 +00:00
Robert Roebling
e4d068605f Font fixes and icons in report view for list control
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@948 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-31 10:12:29 +00:00
Denis Pershin
c9d9f242e4 Visible functions implemented
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@947 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-31 05:43:05 +00:00
Denis Pershin
e895ec4513 wxTreeCtrl changes:
More functions implemented...
I cannot rid of one assert... I do not know what should
I do to avoid it... It happens on collapsing...


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@946 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-31 04:29:25 +00:00
Robert Roebling
de646ed1f5 Compile fixes for tree ctrl
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@945 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-30 19:52:46 +00:00
Robert Roebling
7bce6aec99 Fixes to fonts, static text, radiobox, frame
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@944 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-30 19:37:03 +00:00
Karsten Ballüder
5db1a502b4 regenerated configure from new configure.in
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@943 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-30 18:27:55 +00:00
Vadim Zeitlin
f9f950fcd4 items without children couldn't be expanded even after a call to
SetHasChildren() - fixed.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@942 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-30 12:55:48 +00:00
Karsten Ballüder
1950b38c35 wait4() now extern "C" :-)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@941 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-30 11:24:38 +00:00
Karsten Ballüder
96849c75a7 fixed wxICON() usage
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@940 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-30 11:24:16 +00:00
Karsten Ballüder
71317c5b30 added wait4() prototype for solaris
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@939 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-30 10:58:04 +00:00
Karsten Ballüder
a5e13868ca fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@938 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-30 10:14:58 +00:00
Karsten Ballüder
dce85cd4e7 fixed destructor
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@937 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-30 09:50:04 +00:00
Robert Roebling
0208334d5d Tought Systemettings that sysfont has 12 pts
wxListCtrl can now resize column by dragging


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@936 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-30 09:17:24 +00:00
Robert Roebling
fee0429537 24-bit rendering from wxImage into wxBitmap
I think requiring GTK 1.0.4 is enough (not 1.0.6)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@935 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-29 22:57:46 +00:00
Robert Roebling
58614078c4 Big color update with the newest information
from the GTK+ hot-line, eh mail-list. The news
  is that they don't know what they do.

  Conversion from 12pt, wxSWISS, wxNORMAL, wxNORMAL to
  GTK+ system font

  Probably some other things


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@934 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-29 18:03:18 +00:00
Vadim Zeitlin
3ebf240158 (very) small changes for Windows compilation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@933 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-28 21:47:16 +00:00
Vadim Zeitlin
5a43154b56 some old changes I forgot to check in
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@932 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-28 21:32:29 +00:00
Guilhem Lavaux
84b46c356e * Build IODBC on demand on unix.
* wxStream updates


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@931 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-28 18:29:51 +00:00
Vadim Zeitlin
7749df1f41 Mac fixes (thanks to Stefan Csomor)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@930 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-28 15:28:21 +00:00
Denis Pershin
3efb01df7b Minor modifications...
Vadim skipped some mistakes due to wxTreeItemId on msw == long


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@929 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-28 15:26:39 +00:00
Mart Raudsepp
cbb8c1d34c wxWave class for wxGTK (linux)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@928 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-28 13:21:29 +00:00
Robert Roebling
e5403d7c57 DnD
RadioBox layout


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@927 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-28 11:44:41 +00:00
Robert Roebling
c67d86184d Fixes, typos etc...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@926 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-27 22:03:21 +00:00
Julian Smart
0280030162 Motif wxNotebook about done; added print/preview to OGLEdit sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@925 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-27 17:58:46 +00:00
Vadim Zeitlin
31811e1aca "unsigned char" restored in wxColour ctor
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@924 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-27 17:09:42 +00:00
Robert Roebling
a81258bee4 Added background colour again
Added wxTextCtrl methods
  Removed Imlib

  -> Recompile


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@923 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-27 15:04:35 +00:00
Karsten Ballüder
b926666447 more fixes, printing works quite fine now
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@922 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-27 09:55:07 +00:00
Julian Smart
a7e594b239 Added OnEraseBackground to wxNotebook on wxMSW to avoid black background;
wxTreeCtrl mod for BC++


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@921 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-26 18:34:17 +00:00
Julian Smart
0b4d4194a2 Added simple notebook sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@920 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-26 18:32:07 +00:00
Vadim Zeitlin
f135ff73b4 final (?) changes to the generic tree ctrl -- seems to work ok
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@919 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-26 17:11:33 +00:00
Julian Smart
4b5f3fe655 Motif and other mods
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@918 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-26 17:10:25 +00:00
Vadim Zeitlin
f4a4bd13d4 interchanged w and h in wxSplitterWindow::OnSashPositionChange (now
it does what expected)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@917 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-26 13:29:15 +00:00
Robert Roebling
dbf858b5d6 Implemented wxScreenDC the hard way
INcreased menu bar size
  Ripped off handles (a few days ago)
  Corrected $Id:$ somewhere


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@916 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-26 10:56:58 +00:00
Robert Roebling
f96aa4d9eb Did much work on colors. It doesn't work and I guess
it's a GTK bug.
  Small change to Blit()
  Added GTK_NO_TYPE_CHECK when compiling without debug_flag
  Added more wxCHECK_XXX


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@915 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-26 00:19:25 +00:00
Unknown (UG)
019bf1286f no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@914 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-25 17:04:49 +00:00
Unknown (UG)
62b8502b43 no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@913 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-25 16:31:41 +00:00
Karsten Ballüder
07071479f2 Printing moreless works now.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@912 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-25 11:08:43 +00:00
Karsten Ballüder
db828ab4cb Fixed a trivial error.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@911 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-25 11:07:54 +00:00
Unknown (UG)
42c5812dbf no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@910 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-25 07:37:45 +00:00
Unknown (UG)
0b4f9ee3d0 minor changes for windows compilability
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@909 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-25 01:48:51 +00:00
Vadim Zeitlin
3a5a2f56f2 some new functions:
1. wxTreeItemData::SetId() added
 2. wxTreeCtrl::SetItemHasChildren() added


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@908 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-24 23:53:20 +00:00
Robert Roebling
32e9da8bfa Added support for frames without borders (such as for
splash screen) with wxSIMPLE_BORDER
  Fixed tooltip bug -> recompile everything
  Added validators to wxListCtrl
  Fixed Create/Realize bug


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@907 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-24 20:25:36 +00:00
Karsten Ballüder
0e6c619a1a Rewrite. Cursor handling better, split Layout() and Draw(), faster.
Printing almost works.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@906 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-24 18:08:20 +00:00
Robert Roebling
01111366c9 Removed usage of GdkImlib
Added platform independent wxImage class
  Changed wxBitmap and wxImageList accordingly
  Correctted header text


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@905 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-24 17:12:05 +00:00
Unknown (UG)
0ab4b99cdf uint to unsigned int
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@904 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-24 14:55:43 +00:00
Denis Pershin
e21a504837 Prealpha, prebeta of new wxTreeCtrl for GTK. It is possible to AddRoot,
AppendItem... InsertItem and PrependItem is not working...
Sample modified to new API. I understand that operator wxTreeItemId::long()
exists on MSW wxWindows, but on wxGTK id type is a pointer...

2Vadim: Please test the sample with MSW wxTreeCtrl.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@903 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-24 05:52:43 +00:00
Julian Smart
321db4b6bf More Motif changes (colour/font stuff)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@902 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-23 18:22:30 +00:00
Vadim Zeitlin
0d559d69c8 1. Split{Horizontal|Vertical} now accept negative args to set the
size of right/lower pane (positive arg sets the size of
   left/upper one as before, 0 is the same as -1 before: choose
   default)

2. OnSashPositionChange() virtual function added - it may return
   FALSE to cancel position change

3. splitter sample and docs (couldn't compile them though) updated


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@901 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-23 13:15:15 +00:00
Julian Smart
a316819695 Added casts to fix compile problem
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@900 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-22 14:13:54 +00:00
Julian Smart
1a3ac83faf More-or-less finished reasonably cool wxToolBar class with tooltips.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@899 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-22 14:08:14 +00:00
Julian Smart
ef366d323b Added WXHTREEITEM
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@898 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-22 10:44:07 +00:00
Julian Smart
06e38c8e2e Mods for Gnu-Win32
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@897 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-22 10:43:16 +00:00
Robert Roebling
fc54776e31 SetBackground for ListBox and others
Removed the old and famous wxSplitter bug


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@896 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-21 22:21:09 +00:00
Julian Smart
0d57be4594 More Motif stuff incl. beginnings of wxToolBar
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@895 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-21 21:43:20 +00:00
Robin Dunn
b0f1bdde5a added a "lib" target for generating a wxPython library for static
linking with other apps.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@894 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-21 18:59:15 +00:00
Unknown (UG)
3349fe9210 no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@893 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-21 08:34:32 +00:00
Robin Dunn
df9c33a482 *** empty log message ***
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@892 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-21 01:14:27 +00:00
Robin Dunn
607d79b82b *** empty log message ***
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@891 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-21 01:13:13 +00:00
Robin Dunn
4e937c4d52 Sample Setup.in file for Linux
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@890 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-20 21:47:34 +00:00
Vadim Zeitlin
87832b70c5 added back the missing "unsigned"s to wxColour ctor
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@889 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-20 21:40:39 +00:00
Vadim Zeitlin
4d94751752 sorry... forgot to commit these 2 files
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@888 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-20 15:08:30 +00:00
Julian Smart
e1822f7053 Updated todo list
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@887 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-20 14:47:14 +00:00
Vadim Zeitlin
e4a81a2e96 wxColour(const char *) ctor related modifications
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@886 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-20 14:35:22 +00:00
Unknown (UG)
9c1f7241c0 fix for wxColour breakage
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@885 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-20 13:24:00 +00:00
Unknown (UG)
8f0c8a8093 fix for wxUSE_IOSTREAMH
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@884 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-20 12:58:02 +00:00
Julian Smart
2faefb26a4 Removed WS_BORDER style since borders have suddenly appeared around several
controls.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@883 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-20 11:39:43 +00:00
Unknown (UG)
19ae5cf071 fix for precompiled headers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@882 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-20 11:00:58 +00:00
Unknown (UG)
ec45f8ee19 fix for precompiled headers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@881 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-20 10:53:49 +00:00
Denis Pershin
735c6572dc .cvsignores added
Begin my work on wxTreeCtrl for wxGTK


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@880 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-20 07:47:25 +00:00
Robin Dunn
78bba745fc newly generated files from SWIG
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@879 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-20 07:39:22 +00:00
Robin Dunn
4d1d77e8f6 bug fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@878 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-20 07:38:04 +00:00
Robin Dunn
d5c9047acf New wxTreeCtrl wrappers (untested)
some changes in helpers
etc.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@877 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-20 06:45:33 +00:00
Robin Dunn
e0a09ce419 Commented out constructor causing ambiguity
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@876 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-20 02:11:12 +00:00
Robin Dunn
c0ac1c32a4 commented out constructor causing ambiguity
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@875 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-20 02:10:29 +00:00
Julian Smart
100af5a812 One that got away
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@874 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-19 21:54:00 +00:00
Julian Smart
8704bf74fb More Motif additions: mdi and sashtest samples now just about work!
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@873 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-19 21:51:15 +00:00
Vadim Zeitlin
68dda78574 1. wxTextCtrl::SetBackgroundColour() now works
2. wxListBox::SetBackgroundColour() now does something, although still not
   what I'd like
3. wxColour() now has a ctor from "const char *" to allow calls like
   SetBackgroundColour("green");
4. controls sample modified to use colors


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@872 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-19 14:18:56 +00:00
Vadim Zeitlin
be6bf94bf0 added methods for sequential scan of wxTextFile: Get{First|Next|Prev|Last}Line
and GetCurrentLine, GoToLine, Eof.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@871 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-19 12:39:38 +00:00
Vadim Zeitlin
08b7c251c4 new wxTreeCtrl files
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@870 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-18 22:46:23 +00:00
Vadim Zeitlin
1195ec4251 (minor) fixes to make it compile with the modified wxTreeCtrl
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@869 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-18 22:43:42 +00:00
Julian Smart
a4294b7832 Motif additions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@868 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-18 22:31:48 +00:00
Vadim Zeitlin
02847e5984 minor changes (a couple of error messages added to wxExecute)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@867 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-18 21:33:25 +00:00
Unknown (UG)
ddbbbdd486 update to wx2
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@866 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-17 17:05:35 +00:00
Unknown (UG)
c96fd235be no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@865 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-17 17:04:31 +00:00
Julian Smart
89c7e96229 Motif updates
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@864 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-17 09:38:15 +00:00
Unknown (UG)
520e470fdd no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@863 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-17 07:46:13 +00:00
Unknown (UG)
2b165e9905 miscellaeneous fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@862 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-17 07:37:22 +00:00
Unknown (UG)
8d5e303441 miscellaeneous fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@861 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-17 07:31:39 +00:00
Unknown (UG)
49884e3e0d fixes the invalid index problem
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@860 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-17 07:27:22 +00:00
Unknown (UG)
6dd2244b9d no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@859 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-17 07:21:06 +00:00
Unknown (UG)
eda26cebb1 added more utils subprojects
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@858 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-16 19:34:51 +00:00
Unknown (UG)
38a489ae36 new project file + misc fixes for wxUSE_DOC_VIEW_ARCHITECTURE
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@857 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-16 19:30:04 +00:00
Unknown (UG)
2910dac85f no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@856 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-16 19:28:21 +00:00
Unknown (UG)
645e44e364 no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@855 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-16 18:38:23 +00:00
Unknown (UG)
07e88e448d no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@854 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-16 18:24:43 +00:00
Unknown (UG)
07e80bdd10 no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@853 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-16 18:17:28 +00:00
Unknown (UG)
78322206b8 no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@852 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-16 17:51:32 +00:00
Unknown (UG)
a3b466481e no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@851 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-16 17:16:58 +00:00
Julian Smart
124e17387c Revised Motif todo list
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@850 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-16 16:28:31 +00:00
Unknown (UG)
287c43c105 no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@849 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-16 16:22:20 +00:00
Unknown (UG)
678f4bdc88 no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@848 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-16 16:15:32 +00:00
Unknown (UG)
203feea888 wxUSE_IOSTREAMH changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@847 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-16 16:12:17 +00:00
Unknown (UG)
d47631c8f5 no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@846 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-16 15:53:49 +00:00
Unknown (UG)
ea13954cd2 no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@845 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-16 14:55:02 +00:00
Unknown (UG)
48df9992ad wxUSE_IOSTREAMH fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@844 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-16 14:50:31 +00:00
Julian Smart
47bc106012 Misc. Motif; removed duplicate wxICON; variant compile fix; added wxString form
of wxStripMenuCodes


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@843 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-16 14:38:52 +00:00
Unknown (UG)
85ee3474b7 no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@842 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-16 14:35:50 +00:00
Unknown (UG)
8ef062da8f no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@841 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-16 10:04:06 +00:00
Unknown (UG)
0075bd5d43 no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@840 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-16 09:57:39 +00:00
Unknown (UG)
7cf98a658a wx_USEIOSTREAMH changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@839 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-16 09:56:38 +00:00
Unknown (UG)
5f31d8628c no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@838 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-16 08:44:27 +00:00
Julian Smart
08ee50db7c Added makefile.unx for Motif
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@837 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-15 17:00:37 +00:00
Robin Dunn
8a9523f25d Added wxFrame::SetStatusBar
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@836 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-15 16:14:55 +00:00
Unknown (UG)
2aa45cc919 no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@835 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-15 12:43:42 +00:00
Julian Smart
a24ce62235 Commented out _CrtSetDbgFlag yet again, restored setup.h settings.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@834 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-15 10:58:30 +00:00
Unknown (UG)
d56894a83d no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@833 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-15 09:26:57 +00:00
Julian Smart
77e3eac5f2 Presumably someone didn't mean to commit that wxUSE_XPM_IN_MSW change...
Added wxID_SELECTALL


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@832 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-15 09:11:39 +00:00
Vadim Zeitlin
c085e33398 minor changes a bit everywhere + a small wxLog change (Enable()/IsEnabled()
added) + wxTimer member vars are made protected again (but a friend decl
added for the callback)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@831 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-14 23:53:24 +00:00
Julian Smart
2d0a075d90 Fixed VC++ compile error in mstream; formatted window.cpp.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@830 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-14 19:06:51 +00:00
Guilhem Lavaux
75ed1d15d0 * wxSocket fixes
* wxStream: - new inheritance, new stream buffer, nearly the same API for the
              end user
            - updated other streams consequently
* wxGTK: some change to make it compile on GTK 1.0 and GTK 1.1
* small changes on wxThread to prepare a more reentrant lib
* wxVariant works with wxStream too now


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@829 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-14 17:36:50 +00:00
Julian Smart
1b19f0560f Removed windows.h and friend function.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@828 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-14 17:11:12 +00:00
Unknown (UG)
ff5a1c54e8 no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@827 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-14 17:00:41 +00:00
Unknown (UG)
1075543838 general updates, more to come
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@826 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-14 16:45:34 +00:00
Unknown (UG)
4c7e33c5ea fix for private access for wxTimerProc
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@825 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-14 16:43:19 +00:00
Julian Smart
c3939f625e Protected -> public
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@824 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-14 16:30:43 +00:00
Unknown (UG)
8a60ae88fb fix for vc4.2+ for c++ standard exception handling
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@823 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-14 16:29:51 +00:00
Julian Smart
da36f5446f Rewrote ConvertToStandardCommandArgs; resource.h correction; ntwxwin.mak
correction


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@822 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-14 08:13:09 +00:00
Mart Raudsepp
0ed9fce61a error in func ConvertToStandardCommandArgs with argv[]
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@821 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-14 06:45:08 +00:00
Julian Smart
387a3b02e0 Session management changes for wxMSW.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@820 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-12 19:45:24 +00:00
Vadim Zeitlin
03f38c58fd 1. wxTimer::Start() returns bool in wxGTK too (other minor corrections
to this class, such as "const" addition, Notify() is = 0 now...)

2. wxGTK::wxTextCtrl::Delete renamed to Clear for consistency

3. wx/wx_prec.h now includes wx/setup.h even if !wxUSE_PRECOMP because
   otherwise (recently added) tests "#if wxUSE_IOSTREAMH" donb't work.

4. Other compilation fixes for wxGTK (now it compiles again)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@819 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-12 13:09:15 +00:00
Julian Smart
fbc535ff08 Changes related to stream includes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@818 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-12 07:46:15 +00:00
Vadim Zeitlin
66de8e7a1b removed some rests of my tests (which should have never been checked in in the
first place)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@817 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-09 20:26:44 +00:00
Julian Smart
fd71308fc8 Dialog unit mods; wxProp tidying
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@816 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-09 12:01:58 +00:00
Mart Raudsepp
c39d4bcf2b change the last changes back
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@815 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-08 14:57:39 +00:00
Mart Raudsepp
42d819d67e error if a radiobox is horizontal:(change wxRA_VERTICAL to wxRA_HORIZONTAL)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@814 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-08 12:05:19 +00:00
Vadim Zeitlin
9d9355c60c crash under FreeBSD corrected (patch by David Hobley)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@813 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-08 09:38:37 +00:00
Karsten Ballüder
a65f3e5499 odbc off by default
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@812 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-07 15:40:21 +00:00
Julian Smart
42ff6409d9 Latex updates; added defines to printdlg.h for referring to generic print dialogs
by standard names.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@811 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-07 11:04:27 +00:00
Karsten Ballüder
7cacdad3e2 Fixed stupid configure bug that failed to recognise gcc and set wrong options.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@810 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-07 09:24:15 +00:00
Robin Dunn
b26e2dc41d Version 0.4.1 for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@809 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-07 07:35:36 +00:00
Robin Dunn
e86d366cab Added missing IMPLEMENT_DYNAMIC_CLASS
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@808 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-07 05:39:08 +00:00
Julian Smart
1b826605f5 FreeBSD patch to sckaddr.cpp; include more files in manual; misc
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@807 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-06 09:33:58 +00:00
Karsten Ballüder
32cbeff4c3 Makefiles now use CPPFLAGS in the same way as configure does.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@806 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-06 08:50:01 +00:00
Vadim Zeitlin
fb4e5803ed Added --with-unicode (not used yet) and --with-wcsrtombs options
to configurea and setup.h.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@805 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-05 16:21:28 +00:00
Julian Smart
418955322b Reversed meaning of orientation style, back to wxWin 1.68 meaning.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@804 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-05 10:14:39 +00:00
Julian Smart
8d950bdb57 Repaired radiobox problem.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@803 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-05 10:13:49 +00:00
Vadim Zeitlin
b8d3a4f1a1 SetTitle() works even if menu was created without title initially (and setting
title to empty string removes it alltogether)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@802 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-04 22:12:55 +00:00
Karsten Ballüder
3ad0023f59 wxGetUserName() now returns only the user name, not the comments
wxGetHostName() returns host.domain now


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@801 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-04 14:30:15 +00:00
Robin Dunn
09ee8e72b2 *** empty log message ***
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@800 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-03 05:56:03 +00:00
Vadim Zeitlin
2c3b684c2b bogus assert removed, optimized (and removed a bug in process of doing it)
wxString::Trim


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@799 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-03 00:25:17 +00:00
Julian Smart
524bf39144 *** empty log message ***
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@798 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-02 12:53:08 +00:00
Julian Smart
dfad059924 Removed DrawOpenSpline since it doesn't seem to be needed, with required changes
in all ports. Added Motif wxFileDialog. Added wxPostScriptModule and removed
PostScript init in app.cpp. Also removed wxMessageBox function from
generic implementation. Windows release .exes are now smaller (< 300K for minimal.exe).
Some OGL updates. __try -> try in MSW main.cpp. BC++ 5 fixes.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@797 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-02 12:50:01 +00:00
Robin Dunn
9c039d08bf Version 0.4 of wxPython for MSW.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@796 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-02 06:44:50 +00:00
Robin Dunn
d1c74ca98b Added wxFrame::SetStatusBar for wxPython
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@795 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-10-02 06:38:30 +00:00
Robin Dunn
9e4b2f1c57 Found the RIGHT place to make the __unix__ fix.
Undoing the other changes I just made.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@794 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-30 23:48:21 +00:00
Robin Dunn
d4b67f95d2 Found the RIGHT place to make the __unix__ fix.
Undoing the other changes I just made.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@793 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-30 23:37:45 +00:00
Robin Dunn
297a3fece1 fixed some ifdef's to also check for __unix__
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@792 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-30 23:13:29 +00:00
Robin Dunn
217e13fa85 fixed Stricmp ifdef to also check for __unix__
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@791 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-30 23:07:37 +00:00
Guilhem Lavaux
b80dc5febe * wxSocket doc updates.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@790 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-30 17:45:29 +00:00
Julian Smart
2d5249297d Uninitialised variable initialised (state in OnIdle)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@789 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-30 12:48:30 +00:00
Vadim Zeitlin
30d9011f40 fixed wxString::Mid() bug
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@788 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-30 12:41:13 +00:00
Mart Raudsepp
ac9390a0bc *** empty log message ***
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@787 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-30 09:15:59 +00:00
Vadim Zeitlin
9ee2d31ccc more wxConfig and xwLog docs (sorry for the delay)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@786 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-30 00:48:01 +00:00
Vadim Zeitlin
c89a610604 1) wxGTK now use the new, native implementation of wxTreeCtrl.
2) The treectrl sample uses the icons (not only under Windows).
3) A couple of minor changes in treectrl.cpp itself.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@785 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-29 20:02:53 +00:00
Vadim Zeitlin
8248314dbd more bug fixes after USE_ to wxUSE_ change (now it finally seems to work)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@784 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-29 19:12:16 +00:00
Karsten Ballüder
851b94590a Removed removal of config.log which is stupid and hinders debugging.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@783 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-29 14:26:28 +00:00
Denis Pershin
1c3d41800c See the prev one.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@782 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-29 12:36:49 +00:00
Denis Pershin
d9692df7a3 Totally rewritten TreeCtrl for GTK...
Now it supports images...


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@781 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-29 12:35:49 +00:00
Julian Smart
f97c985452 More wxMotif work, OGL enhancements, USE_ macro corrections, object.cpp delete
operator correction for VC++ 6


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@780 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-28 15:42:54 +00:00
Karsten Ballüder
23e09f1115 Added sys/types.h needed for Solaris.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@779 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-28 15:38:09 +00:00
Vadim Zeitlin
7ce404dd7b an extra backslash removed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@778 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-28 14:55:45 +00:00
Vadim Zeitlin
e4b19d9b20 USE_xxx => wxUSE_xxx: all samples compile except memcheck
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@777 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-25 15:28:18 +00:00
Vadim Zeitlin
126eb09b0f USE_ => wxUSE_
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@776 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-25 15:00:00 +00:00
Vadim Zeitlin
27fc802d5c 2nd part of USE_xxx to wxUSE_xxx change
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@775 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-25 14:53:45 +00:00
Vadim Zeitlin
47d67540a0 USE_xxx constants renamed to wxUSE_xxx. This is an incompatible change, you
must recompile everything after upgrading!


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@774 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-25 13:28:52 +00:00
Denis Pershin
d069d02e1e const added to GetBitmap it was my fault.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@773 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-25 04:03:41 +00:00
Vadim Zeitlin
f51f94ea2e restored "#ifdef __WXMSW__" around SetFont(wxNullFont) - this leads to SIGSEGV
under wxGTK!


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@772 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-24 17:19:11 +00:00
Julian Smart
76626af21b Fixed delete operator for VC++ 6.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@771 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-24 15:49:16 +00:00
Julian Smart
d0dc2fe891 Added some Web pointers relevant to wxMotif
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@770 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-24 15:43:10 +00:00
Julian Smart
e97f20a0f2 wxMotif: wxWindow/Client/PaintDC starting to work.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@769 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-23 13:56:00 +00:00
Julian Smart
16c1f7f345 Some more Motif work; included utils.h in fileconf.cpp (for wxGetHomeDir or something)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@768 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-22 21:15:56 +00:00
Vadim Zeitlin
dcf40a56e7 wxListBox::FindString(): it's not an error if the string is not found, so
don't give assert failures in this case.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@767 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-22 14:40:18 +00:00
Karsten Ballüder
ecadfc3f5a check for empty data pointer in Len() and Empty()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@766 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-21 20:13:41 +00:00
Vadim Zeitlin
1c4a764c98 1) minor modifications in fileconf.cpp
2) new MSW function (private.h): wxGetWindowText() which works with wxString
   instead of (horror) fixed size buffers. All calls to ::GetWindowText()
   should be replaced with this!
3) remains of casts to float in different wxControl classes removed,
   (EDIT|BUTTON)_HEIGHT_FROM_CHAR_HEIGHT macros introduced (could be
   made inline functions as well...)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@765 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-20 21:13:46 +00:00
Vadim Zeitlin
803bf1c581 somehow log target wasn't being created automatically anymore. Restored.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@764 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-20 21:05:19 +00:00
Julian Smart
dfc5454127 More Motif stuff
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@763 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-20 20:59:30 +00:00
Karsten Ballüder
b112d15289 Now dot_special argument in wxMatchWild() is honoured. :-)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@762 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-20 19:44:41 +00:00
Karsten Ballüder
a4876ea44c see mail to list
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@761 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-20 19:34:30 +00:00
Guilhem Lavaux
e79848acfe * Fixed a bug in notebook.tex
* Added a basic documentation on wxSocket (currently wxSocketBase, wxSocketClient, wxSocketServer, wxSocketHandler, wxURL)
  There are still things to write and I hope I didn't have a too bad english ...


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@760 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-20 15:45:12 +00:00
Julian Smart
e096774dd1 Commented out those wretched crt debug thingies yet again. It doesn't compile for
me and presumably other people who use the makefiles, sorry.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@759 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-20 07:44:24 +00:00
Julian Smart
02e8b2f9fb More Motif stuff, minor stubs correction
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@758 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-20 07:35:20 +00:00
Vadim Zeitlin
a5e0e655cb ConvertToStandardCommandArgs() was ugly, buggy and leaked memory (not bad
for 10 lines of code). Now it's only ugly...


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@757 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-19 21:01:01 +00:00
Karsten Ballüder
dfcb1ae09d changed wxMatchWild() 3rd parameter not used under Unix - what is it good for?
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@756 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-19 15:13:02 +00:00
Julian Smart
23d1d521c8 menuitem.h is now per port, since some ports (e.g. Motif!) need extra members etc.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@755 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-18 21:36:20 +00:00
Vadim Zeitlin
3093cef829 wxBaseArray::Shrink() added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@754 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-18 21:35:44 +00:00
Julian Smart
50414e24a7 Some more wxMotif stuff: menus
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@753 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-18 21:33:46 +00:00
Julian Smart
2319d2b09a Fixed some .tex problems
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@752 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-18 10:20:32 +00:00
Julian Smart
9b6dbb0974 Added Motif files.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@751 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-18 10:19:10 +00:00
Julian Smart
4bb6408c26 Motif files added.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@750 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-18 10:14:43 +00:00
Vadim Zeitlin
c9d22ba77c log.tex uncommented
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@749 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-17 20:57:55 +00:00
Vadim Zeitlin
5f3cd8a22a wxLog and wxConfig docs update
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@748 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-17 20:57:08 +00:00
Guilhem Lavaux
9da0d96f87 * fixed a wrong line.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@747 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-17 17:32:38 +00:00
Guilhem Lavaux
856d2e527d * Added wxSerial DLL support for Borland 32
* zstream.h doesn't anymore include zlib.h
* updated static data
* made wxClassInfo::GetFirst() static
* added user/password support in the URL parser
* fixed bugs


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@746 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-17 17:30:13 +00:00
Julian Smart
46ccb5107f Dnd constant name changes because names like Copy can be #defined by other
apps. Various other changes to stubs.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@745 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-17 16:57:01 +00:00
Vadim Zeitlin
9fdf3c3877 VZ: I have reformatted it to correspond to our style conventions (tab stop =
4, no hard tabs, no function(void), ...) and added a couple of comments to
make it (hopefully!) more understandable.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@744 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-17 15:18:33 +00:00
Vadim Zeitlin
054889057e corrected a bug in ConcatSelf() induced by the latest change
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@743 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-17 14:43:21 +00:00
Vadim Zeitlin
3c024cc22f fixed 64but bug with g_strEmpty initialization
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@742 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-17 14:31:17 +00:00
Julian Smart
589f0e3e60 Simplified app initialisation in wxMSW and wxStubs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@741 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-17 09:58:52 +00:00
Julian Smart
7f555861b7 Made wxStubs compile on Unix.
Improvements to doc/view on MDI, including multiple menus for wxFileHistory.
Added wxDirExists to wxMSW; moved wxMatchWild to filefn.cpp


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@740 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-16 21:52:23 +00:00
Julian Smart
f93ce4dadc Misc OGL changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@739 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-16 21:44:17 +00:00
Vadim Zeitlin
335a8b43e9 wxPenRefData copy ctor was somehow not declared in the class definition
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@738 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-15 22:08:17 +00:00
Julian Smart
86411736c3 Updated debug flags in makefile for DLL compilation.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@737 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-14 17:38:10 +00:00
Julian Smart
fbcb41664b DLL-related changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@736 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-14 16:37:24 +00:00
Robert Roebling
8fdca65cf2 Removed warnings
Added GetCount() to wxList and wxDaynArray


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@734 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-12 22:11:40 +00:00
Robert Roebling
84efdbf195 Next try at removing the dancing sliders
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@733 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-12 20:38:55 +00:00
Julian Smart
cfb88c5569 Added sashtest GTK makefiles (crashing bug to be solved); added typetest sample
with simple wxVariant test; changed wxICON macro and used it in minimal.cpp
to avoid #ifdefing.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@732 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-12 17:33:59 +00:00
Julian Smart
8cb50e4b46 Added variant.h/cpp; changed variable names in object.h; added some functions
to wxStringList; added wxTrue and wxFalse to supress some warnings; some bugs fixes


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@731 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-12 17:31:48 +00:00
Julian Smart
341287bf49 Added variant.h/cpp; changed variable names in object.h; added some
functions to wxStringList; some bugs fixes


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@730 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-12 17:29:57 +00:00
Robert Roebling
cb43b372fb Changed instal path for setup.h
changed socket stream inheritance to virtual
  removed a few more warnings from the samples
  corrected thread habdling in configure.in
  removed dancing sliders from scrollbars
  corrected notebook send event bug and added it
   the controls sample


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@729 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-12 17:18:12 +00:00
Robert Roebling
e55ad60e19 Updates to memcheck
Corrected and beautified memory (output)
  Fixed a few memory leaks
  Fixed resizing in in wxRadioBox
  Added many wxFAIL and wxASSERT
  Corrected other wxFAIL (removed from ..::Ok())
  Added wxBrush::Set..() functions
  Added CopyOnWrite support in GDI objects (Unshare)
  Disabled all occurences of WXDEBUG_NEW
  made clean, recompiled with mem_chcking on


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@728 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-11 09:05:26 +00:00
Robin Dunn
384b4373c7 Added #include to get FIONBIO on Solaris 2.6
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@727 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-11 01:28:41 +00:00
Guilhem Lavaux
b7db6f0b6d * Bug fix in wxFilter*Stream
* corrected the URL parser


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@726 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-10 17:22:20 +00:00
Julian Smart
0c32066b58 Eliminated some warnings under Windows; wxGetHomeDir problem in wxFile;
eliminated memory leak report by making class table dynamically allocated/freed;
tidied up names in wxClassInfo.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@725 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-10 11:41:14 +00:00
Robert Roebling
d8c838755a Tried to find a non-existing bug in the cursor-code
Removed Karsten's third Makefile.in attempt


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@724 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-09 09:57:24 +00:00
Karsten Ballüder
ab346a0c3f fixed typo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@723 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-09 09:06:30 +00:00
Karsten Ballüder
337d7956cc removed wxsetup.h from libdir
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@722 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-09 09:00:54 +00:00
Karsten Ballüder
5a2055fa9b removed __WXMSW__ define
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@721 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-09 08:49:33 +00:00
Unknown (HB)
cb17fe41ee DEC Alpha does not need -ldl, therefore check for it.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@720 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-09 07:57:51 +00:00
Julian Smart
27529614c2 Additional makefiles; changes for compilation with BC++ and GnuWin32
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@719 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-08 22:27:12 +00:00
Julian Smart
f395c809b5 Added Latex style file
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@718 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-08 22:24:52 +00:00
Karsten Ballüder
a665764c39 now installs properly
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@717 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-08 19:09:50 +00:00
Robert Roebling
c058d77142 It's now possible to drag a listbox filled with entries
Removed #ifdef 0 from resource.cpp around reading code
    for wxRadioBox
  #ifdeffed a Refresh call that causes DialogEd to dump
   code in wxGTK when deleting an item
  Suppressed some warnings
  Readded socket stuffto gtk.inc


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@716 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-08 18:21:16 +00:00
Guilhem Lavaux
c740f49634 * some C++ness correction in wxStream.
* added support for DLL on Borland32
* fixed export bugs
* fixed a portability problem in socket.cpp
* added a missing function in utilsexc.cpp


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@715 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-08 17:19:16 +00:00
Julian Smart
6f5f3ca0fe Updated OGL documentation and tidied up some code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@714 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-08 14:38:35 +00:00
Robert Roebling
d6d1892b89 Rewrote wxRadioBox (recompile)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@713 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-08 00:27:29 +00:00
Robert Roebling
6987a6c3d0 I debug DialogEd for five hours and then Karsten
tells me that CaptureMouse is broken. Doh.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@712 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-07 22:38:10 +00:00
Robert Roebling
61607c3641 Changed DnD MIME file type for file DnD. Understood?
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@711 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-07 22:04:40 +00:00
Robert Roebling
d84eb08384 After resolving all conflicts that came down the
telephone line: DialogEd is ready for general
  consumption now.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@710 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-07 22:01:55 +00:00
Julian Smart
b8c631bb29 Fixed wxCheckBox on wxGTK (SetLabel called before widget creation),
wxListBox::GetSelection returning -1 now doesn't assert; wxProp improvements
for wxGTK; parser.y includes <io.h> under VC++ to eliminate 'read' warning


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@709 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-07 21:53:34 +00:00
Robert Roebling
e22036dc39 Suppress warnings
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@708 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-07 18:04:27 +00:00
Robert Roebling
a60c99e6a9 Added USE_CONFIG
A little more DnD work
  wxDialog now inherits from wxPanel (recompile)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@707 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-07 17:23:29 +00:00
Vadim Zeitlin
c9dac6640f ok, now it _does_ compile
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@706 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-07 15:38:51 +00:00
Vadim Zeitlin
774e843c03 cvs incorrectly merged my last change somehow (there a\were 2
SetActiveTargets), corrected.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@705 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-07 15:32:32 +00:00
Robert Roebling
83058c584f wxProp now intercepts EVT_TEXT_ENTER instead of EVT_TEXT
Added Checkbox::SetLabel


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@704 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-07 14:44:38 +00:00
Robert Roebling
b4071e913e Much more aggressive for intercepting events and
(not) redirecting them to wxWindows or GTK
    All widgets work now in DialogEd


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@703 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-07 12:29:07 +00:00
Julian Smart
a6d7030871 Added wxSashWindow, wxSashLayoutWindow, wxLayoutAlgorithm classes and sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@702 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-07 09:27:34 +00:00
Robert Roebling
97b3455a6d Tries unsuccesfully to cure a few more problems
for DialogEd
  wxFileSelector now sets the title
  Todo is quite complete now


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@701 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-07 09:17:58 +00:00
Vadim Zeitlin
8ed57d9312 some clean up of the code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@700 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-07 09:01:35 +00:00
Vadim Zeitlin
88db66e373 tab traversal now works better (using uninitialized variable was a bad idea :-)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@699 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-07 08:59:10 +00:00
Vadim Zeitlin
3e64d4e1e5 added wxLogSysError() in wxExecute() if the command fails
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@698 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-07 08:57:14 +00:00
Vadim Zeitlin
743e0a66f6 wxGetHomeDir() added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@697 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-07 08:56:29 +00:00
Vadim Zeitlin
040f0110fc wxRegConfig now works again
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@696 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-07 08:55:28 +00:00
Vadim Zeitlin
fd2daa68f4 the notebook now has wxTAB_TRAVERSAL style
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@695 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-07 08:54:52 +00:00
Vadim Zeitlin
27fda0b6a1 added support for right aligned labels (wxALIGN_RIGT maps to BS_LEFTTEXT)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@694 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-07 08:53:49 +00:00
Vadim Zeitlin
252eb8fd71 "const" added to wxAceelTable ctor
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@693 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-07 08:52:10 +00:00
Vadim Zeitlin
a7ee134340 wxRegConfig now works correctly again
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@692 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-07 08:48:06 +00:00
Vadim Zeitlin
10310d8322 "const" added to wxAccelTable ctor
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@691 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-07 08:46:57 +00:00
Vadim Zeitlin
7c3c5eccb2 const char *wxGetHomeDir(wxString*) added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@690 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-07 08:45:40 +00:00
Vadim Zeitlin
4c84fa8d91 minor change (using wxLogNull no doesn't flush the old messages)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@689 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-07 08:44:46 +00:00
Julian Smart
fcc6dddd1f Made wxSocket compile using makefiles; #ifdefed out <<, >> operators in stream.cpp
for USE_SERIALL; included io.h for VC++ in socket.cpp


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@688 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-07 07:58:29 +00:00
Robert Roebling
d3904ceb9a Fillid in many more missing functions (such as Enable())
There are still things to fix when compiling sockets ..


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@687 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-06 20:27:21 +00:00
Robert Roebling
13439807d3 wxMenu doesn't anylonger call the callback if the
event is only a highlight event (more similar to wxMSW)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@686 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-06 18:47:46 +00:00
Robert Roebling
3f659fd6b1 SetFont() the second
#ifdefed SetFont() in Statusbars destructor
  wxRadioBox setsize corrected (Still only simple layout)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@685 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-06 18:34:18 +00:00
Guilhem Lavaux
f4ada56822 * Added wxsocket lib and sample (I hope I don't forget some file)
* Updated some wx data and makefiles
* Updates on wxStream (reorganization)
 makefile for Windows will nearly follow
 wxSocket should work on wxGTK (I've tested it)

* IPC over Network is included


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@684 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-06 18:28:00 +00:00
Julian Smart
560b92f577 Commented out Robert's SetFont change for now; changed menu handling slightly
in Dialog Editor; use wxConfig now in Dialog Editor


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@683 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-06 16:55:57 +00:00
Vadim Zeitlin
acb62b847b GetItem() now works (it was completely broken)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@682 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-06 15:57:43 +00:00
Julian Smart
3bdd13763c Removed bitmap.cpp, bitmap.h from OGL
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@681 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-06 14:57:36 +00:00
Julian Smart
72212c2879 Various changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@680 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-06 14:52:16 +00:00
Julian Smart
3972fb4919 Added some more class docs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@679 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-06 14:43:36 +00:00
Julian Smart
68278f98be Renamed bitmap.cpp to bmpshape.cpp to aid debugging
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@678 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-06 14:35:53 +00:00
Julian Smart
2e5ed787e9 OGL improvements
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@677 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-06 14:32:25 +00:00
Robert Roebling
868a28262c Added SetFont to most controls and controls sample
(recompile)
  Added tiny bit of documentation to window.cpp


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@676 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-06 13:46:50 +00:00
Julian Smart
1573d8ed98 Removed some bugs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@675 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-05 22:36:13 +00:00
Robert Roebling
e1e955e14c Fixed two small things in wxListCtrl
Removed SetSizeHint from wxDialog (recompile)
  Removed dialog modal flag
  Code clean up here and there


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@674 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-05 18:26:06 +00:00
Julian Smart
42871d3819 Fixed Get...String functions.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@673 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-05 16:45:26 +00:00
Robert Roebling
11bc0805de Shared libs now get installed correctly on Linux.
Fixed a compile bug on bitmap.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@672 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-05 16:37:48 +00:00
Robert Roebling
f3cb6592e9 Makefile next attempt
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@671 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-05 13:59:23 +00:00
Robert Roebling
5b011451bd Fixed a small wxDialog thing
Fixed transparency in wxNotebook
  Turned the controls sample in way the coolest of all smaples


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@670 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-05 08:37:40 +00:00
Guilhem Lavaux
25c70b07e6 * wxFileInputStream and wxFileOutputStream doesn't inherit anymore from wxFile.
* The destructor of wxFile isn't anymore virtual.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@669 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-04 17:32:11 +00:00
Vadim Zeitlin
f05df5a85a friends declarations removed, GetBitmap/Pixmap functions made public
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@668 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-04 12:45:34 +00:00
Robert Roebling
94a0f3ce22 Removed remaining file.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@667 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-04 12:45:00 +00:00
Robert Roebling
66c135f346 Corrected wxWindow::GetExtent
s econd attempt at accelerators (mdi sample works)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@666 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-04 12:43:41 +00:00
Vadim Zeitlin
741fd2033e image in the notebook is now at the left of the label (as in wxMSW), not at
its right


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@665 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-04 11:56:53 +00:00
Julian Smart
dd7f2a6c52 Added friend wxNotebook
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@664 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-04 11:25:34 +00:00
Julian Smart
db5d183b03 Fixed compile error in gtk/dc.cpp (L.88); also menu problem in msw/mdi.cpp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@663 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-04 11:24:30 +00:00
Robert Roebling
cf7a7e133b It's possible now to save to a PNG. OK, I still
have performance problems, but it's a start.
  Updated install.txt.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@662 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-03 21:46:47 +00:00
Vadim Zeitlin
24d20a8f73 wxNotebook now supports the item images (except for the mask problem!)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@661 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-03 16:59:51 +00:00
Vadim Zeitlin
2cb21a4540 the notebook now has the icons
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@660 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-03 16:59:00 +00:00
Robert Roebling
c487af252d Some more Makefile stuff (someone else did that partially)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@659 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-03 16:26:04 +00:00
Unknown (AN)
a83ffecb67 fixed the install/unix references -Markus
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@657 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-03 15:38:49 +00:00
Unknown (AN)
9dbd8eb8f1 fixed the install/unix references -Markus
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@656 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-03 15:27:50 +00:00
Vadim Zeitlin
b3031762e8 wxFileConfig ctor now (again) uses the files in the correct locations if the
file names are not specified -- that's what Get{Local|Global}FileName() are
for, Julian!


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@655 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-03 15:23:04 +00:00
Robert Roebling
c98f04213e make install
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@654 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-03 13:58:56 +00:00
Vadim Zeitlin
e96ddf25ad replaced wxEmptyString with "" because it's defined in gdicmn.h (sic!) which,
of course, is not always included before confbase.h...


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@652 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-03 12:03:22 +00:00
Karsten Ballüder
9a648dc916 Removed files as requested by Robert.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@651 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-03 11:46:15 +00:00
Julian Smart
7b46ecac64 Dang, can't remember what I changed now
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@650 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-03 07:34:26 +00:00
Robert Roebling
bcf1fa6bb4 Added wxAccelerators (sort of)
Moved configure (once again)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@649 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-02 22:23:57 +00:00
Robert Roebling
8429bec1e8 New configure
wxRegionIterator
  New IsEposed functions  (-> recompile)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@648 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-02 17:53:48 +00:00
Robert Roebling
2f2aa6287b Fixed event handling for DialogEd
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@647 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-02 12:15:35 +00:00
1383 changed files with 147740 additions and 39974 deletions

View File

@@ -2,3 +2,10 @@ system.list
bin
.gdb_history
Test
config.cache
config.status
system.list
linux.system.cache
wx-config
config.log
linux-gnu.system.cache

View File

@@ -53,12 +53,18 @@ user::
@echo "entering directory user building all"
@cd user; ${MAKE} all
install::
@echo "entering directory src for installing"
@cd src; ${MAKE} install
@echo "entering directory utils for installing"
@cd utils; ${MAKE} install
# the following ones recreate all Makefiles.
makefiles:: recreate
Makefiles:: recreate
recreate::
@install/unix/setup/general/createall
@setup/general/createall
# the following ones define what needs to be done to distribute the
# library and its components

View File

@@ -1,52 +1,42 @@
********************* TODO list for wxWindows 2 ******************************
The items are grouped by platform (generic, MSW, GTK...) and inside by
subject. The first 2 columns containg the following codes:
Priority classification: Amount of work expected:
9 next point release q quick fix
8 next release s small change
7 as soon as possible l a little work
6 soon w some work
5 should be included b big change
4 nice to have m major change
3 consider including ? don't know how to fix
2 maybe not - unclassified
1 probably not
- unclassified
After the subject the name in brackets indicates the person who is going to do
it.
=============================== common ========================================
4w wxString optimization (VZ)
allocate more memory than needed to avoid reallocation each time when
operator+ or += is used.
wxSocket, wxTCP etc..
6b stream classes (VZ)
wxMultiMedia
=============================== generic ======================================
7s wxTreeCtrl root item (RR)
root item is not shown currently (unlike in MSW version)
wxTreeCtrl keyboard handling
wxTreeCtrl icon support
5w wxImageList
it's not implemented currently, to do (assuming that all images have the
same size - no resizing should be done to simplify the job)
wxListCtrl icon support in list mode
================================ MSW ==========================================
7w consistent keyboard interface and focus behaviour (VZ)
Consistent keyboard interface and focus behaviour
currently, the focus is lost all the time (after a MessageBox, for example)
and sometimes TABbing through controls doesn't work
================================ GTK ==========================================
9m keyboard interface (RR)
TAB traversal, Alt-letter accelerators for the controls and accelerators
for menu items - TODO.
Add support Set colour/baclgroundcolour in GTK widgets
Correct tab navigation (seems to be a GTK feature)
Finish DnD
Add Clipboard
Help system (not sure about this one)
Show accelerator in menus
More controls with bitmaps
Speed up bitmap saving
Add wxBitmapHandler
Fix printing of bitmaps
Implement wxRadioBox layout
Finish wxTextCtrl
Finish native wxTreeCtrl
Implement wxPalette
Implement wxDirDialog
Support cooperation between Qt and wxWindows
Fix toolbar tips
TrueType support (just kidding)
3b wxTreeCtrl native implementation?
GTK has a GtkCTree widget which seems to be quite close to the Windows
standard control - what about writing a native wxTreeCtrl based on it?

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,5 @@
distrib/*.*
distrib/msw/*.rsp
distrib/msw/*.bat
docs/readme.txt
docs/install.txt
@@ -8,6 +9,7 @@ docs/upgrade.txt
docs/todo.txt
docs/licence.txt
docs/symbols.txt
docs/*.html
src/*.inc
src/mkdir
@@ -28,7 +30,7 @@ src/generic/*.inc
src/png/*.c
src/png/*.h
src/png/makefile.*
src/png/makefile*
src/png/INSTALL
src/png/CHANGES
src/png/README
@@ -45,12 +47,13 @@ src/zlib/README
src/zlib/ChangeLog
src/zlib/configure
src/zlib/*.txt
src/zlib/makefile.*
src/zlib/makefile*
src/zlib/*.com
src/zlib/*.3
src/zlib/*.mms
include/wx/*.h
include/wx/protocol/*.h
include/wx/*.cpp
include/wx/wx_setup.vms
include/wx/common/*.h
@@ -73,9 +76,9 @@ bitmaps/ico/32x32/*.*
afm/*.*
utils/*.txt
utils/make*.*
utils/make*
utils/xpmshow/src/makefile.*
utils/xpmshow/src/makefile*
utils/xpmshow/src/*.cpp
utils/xpmshow/src/*.h
utils/xpmshow/src/*.def
@@ -86,7 +89,7 @@ utils/xpmshow/src/*.ico
utils/wxhelp/src/*.cpp
utils/wxhelp/src/*.h
utils/wxhelp/src/makefile.*
utils/wxhelp/src/makefile*
utils/wxhelp/src/*.xbm
utils/wxhelp/src/*.xpm
utils/wxhelp/src/*.txt
@@ -115,7 +118,7 @@ utils/tex2rtf/tools/tcheck/*.bat
utils/wxtree/src/*.cpp
utils/wxtree/src/*.h
utils/wxtree/src/makefile.*
utils/wxtree/src/makefile*
utils/wxtree/src/*.xbm
utils/wxtree/src/*.xpm
utils/wxtree/lib/dummy
@@ -126,7 +129,7 @@ utils/wxtree/src/*.rc
utils/wxgraph/src/*.cpp
utils/wxgraph/src/*.c
utils/wxgraph/src/*.h
utils/wxgraph/src/makefile.*
utils/wxgraph/src/makefile*
utils/wxgraph/src/*.xbm
utils/wxgraph/src/*.xpm
utils/wxgraph/lib/dummy
@@ -138,7 +141,7 @@ utils/mfutils/src/*.cpp
utils/mfutils/src/*.h
utils/mfutils/src/*.rc
utils/mfutils/src/*.def
utils/mfutils/src/makefile.*
utils/mfutils/src/makefile*
utils/mfutils/src/*.txt
utils/mfutils/lib/dummy
utils/mfutils/src/*.ico
@@ -149,7 +152,7 @@ utils/mfutils/src/*.ico
utils/rcparser/src/*.cpp
utils/rcparser/src/*.c
utils/rcparser/src/*.h
utils/rcparser/src/makefile.*
utils/rcparser/src/makefile*
utils/rcparser/src/*.xbm
utils/rcparser/src/*.xpm
utils/rcparser/lib/dummy
@@ -162,16 +165,26 @@ utils/colours/*.h
utils/colours/*.cpp
utils/colours/*.def
utils/colours/*.rc
utils/colours/makefile.*
utils/colours/makefile*
utils/colours/*.xbm
utils/colours/*.xpm
utils/colours/*.txt
utils/serialize/*.h
utils/serialize/*.cpp
utils/serialize/*.def
utils/serialize/*.rc
utils/serialize/makefile*
utils/serialize/*.xbm
utils/serialize/*.xpm
utils/serialize/*.txt
utils/wxprop/Makefile
utils/wxprop/src/*.h
utils/wxprop/src/*.cpp
utils/wxprop/src/*.def
utils/wxprop/src/*.rc
utils/wxprop/src/makefile.*
utils/wxprop/src/makefile*
utils/wxprop/src/*.xbm
utils/wxprop/src/*.xpm
utils/wxprop/src/*.txt
@@ -179,13 +192,14 @@ utils/wxprop/src/*.ico
utils/wxprop/src/*.bmp
utils/wxprop/lib/dummy
utils/dialoged/Makefile
utils/dialoged/src/bitmaps/*.xbm
utils/dialoged/src/bitmaps/*.xpm
utils/dialoged/src/*.h
utils/dialoged/src/*.cpp
utils/dialoged/src/*.def
utils/dialoged/src/*.rc
utils/dialoged/src/makefile.*
utils/dialoged/src/makefile*
utils/dialoged/src/*.xbm
utils/dialoged/src/*.xpm
utils/dialoged/src/*.txt
@@ -199,19 +213,66 @@ utils/dialoged/src/bitmaps/*.ico
utils/dialoged/test/*.cpp
utils/dialoged/test/*.def
utils/dialoged/test/*.rc
utils/dialoged/test/makefile.*
utils/dialoged/test/makefile*
utils/dialoged/lib/dummy
utils/dialoged/test/*.ico
utils/dialoged/test/*.prj
utils/dialoged/test/*.bmp
utils/glcanvas/Makefile
utils/glcanvas/win/*.h
utils/glcanvas/win/*.cpp
utils/glcanvas/win/*.def
utils/glcanvas/win/*.rc
utils/glcanvas/win/makefile*
utils/glcanvas/win/*.xbm
utils/glcanvas/win/*.xpm
utils/glcanvas/win/*.txt
utils/glcanvas/win/*.ico
utils/glcanvas/win/*.bmp
utils/glcanvas/src/*.h
utils/glcanvas/src/*.cpp
utils/glcanvas/src/*.def
utils/glcanvas/src/*.rc
utils/glcanvas/src/makefile*
utils/glcanvas/src/*.xbm
utils/glcanvas/src/*.xpm
utils/glcanvas/src/*.txt
utils/glcanvas/src/*.ico
utils/glcanvas/src/*.bmp
utils/glcanvas/samples/cube/*.h
utils/glcanvas/samples/cube/*.cpp
utils/glcanvas/samples/cube/*.def
utils/glcanvas/samples/cube/*.rc
utils/glcanvas/samples/cube/makefile*
utils/glcanvas/samples/cube/*.xbm
utils/glcanvas/samples/cube/*.xpm
utils/glcanvas/samples/cube/*.txt
utils/glcanvas/samples/cube/*.ico
utils/glcanvas/samples/cube/*.bmp
utils/glcanvas/samples/isosurf/*.h
utils/glcanvas/samples/isosurf/*.cpp
utils/glcanvas/samples/isosurf/*.def
utils/glcanvas/samples/isosurf/*.rc
utils/glcanvas/samples/isosurf/makefile*
utils/glcanvas/samples/isosurf/*.xbm
utils/glcanvas/samples/isosurf/*.xpm
utils/glcanvas/samples/isosurf/*.txt
utils/glcanvas/samples/isosurf/*.ico
utils/glcanvas/samples/isosurf/*.bmp
utils/glcanvas/samples/isosurf/*.gz
utils/glcanvas/docs/*.tex
utils/glcanvas/docs/*.txt
utils/glcanvas/docs/*.bmp
utils/glcanvas/docs/*.gif
samples/*.txt
samples/makefile.*
samples/makefile*
samples/config/*.cpp
samples/config/*.h
samples/config/*.def
samples/config/makefile*.*
samples/config/makefile*
samples/config/*.xbm
samples/config/*.xpm
samples/config/*.txt
@@ -223,7 +284,7 @@ samples/config/*.wav
samples/dynamic/*.cpp
samples/dynamic/*.h
samples/dynamic/*.def
samples/dynamic/makefile*.*
samples/dynamic/makefile*
samples/dynamic/*.xbm
samples/dynamic/*.xpm
samples/dynamic/*.txt
@@ -232,10 +293,35 @@ samples/dynamic/*.bmp
samples/dynamic/*.rc
samples/dynamic/*.wav
samples/wxsocket/*.cpp
samples/wxsocket/*.h
samples/wxsocket/*.def
samples/wxsocket/makefile*
samples/wxsocket/*.xbm
samples/wxsocket/*.xpm
samples/wxsocket/*.ico
samples/wxsocket/*.rc
samples/help/*.cpp
samples/help/*.h
samples/help/*.def
samples/help/makefile*
samples/help/*.xbm
samples/help/*.xpm
samples/help/*.ico
samples/help/*.rc
samples/help/doc/*.html
samples/help/doc/*.htm
samples/help/doc/*.class
samples/help/doc/*.db
samples/help/doc/*.tex
samples/help/doc/*.gif
samples/help/doc/*.map
samples/bombs/*.cpp
samples/bombs/*.h
samples/bombs/*.def
samples/bombs/makefile*.*
samples/bombs/makefile*
samples/bombs/*.xbm
samples/bombs/*.xpm
samples/bombs/*.txt
@@ -246,21 +332,31 @@ samples/bombs/*.rc
samples/ipc/*.cpp
samples/ipc/*.h
samples/ipc/*.def
samples/ipc/makefile*.*
samples/ipc/makefile*
samples/ipc/*.xbm
samples/ipc/*.xpm
samples/ipc/*.ico
samples/ipc/*.rc
samples/types/*.cpp
samples/types/*.h
samples/types/*.def
samples/types/*.rc
samples/types/*.txt
samples/types/makefile*.*
samples/types/*.xbm
samples/types/*.xpm
samples/types/*.ico
samples/typetest/*.cpp
samples/typetest/*.h
samples/typetest/*.def
samples/typetest/*.rc
samples/typetest/*.txt
samples/typetest/makefile*
samples/typetest/*.xbm
samples/typetest/*.xpm
samples/typetest/*.ico
samples/sashtest/*.cpp
samples/sashtest/*.h
samples/sashtest/*.def
samples/sashtest/*.rc
samples/sashtest/*.txt
samples/sashtest/makefile*
samples/sashtest/*.xbm
samples/sashtest/*.xpm
samples/sashtest/*.ico
samples/resource/*.cpp
samples/resource/*.h
@@ -268,7 +364,7 @@ samples/resource/*.def
samples/resource/*.rc
samples/resource/*.txt
samples/resource/*.wxr
samples/resource/makefile*.*
samples/resource/makefile*
samples/resource/*.xbm
samples/resource/*.xpm
samples/resource/*.ico
@@ -276,7 +372,7 @@ samples/resource/*.ico
samples/animate/*.cpp
samples/animate/*.h
samples/animate/*.def
samples/animate/makefile*.*
samples/animate/makefile*
samples/animate/*.xbm
samples/animate/*.xpm
samples/animate/*.ico
@@ -285,18 +381,20 @@ samples/animate/*.rc
samples/mdi/*.cpp
samples/mdi/*.h
samples/mdi/*.def
samples/mdi/makefile*.*
samples/mdi/makefile*
samples/mdi/*.xbm
samples/mdi/*.xpm
samples/mdi/*.ico
samples/mdi/*.rc
samples/mdi/bitmaps/*.bmp
samples/mdi/bitmaps/*.ico
samples/mdi/bitmaps/*.xpm
samples/mdi/bitmaps/*.xbm
samples/minimal/*.cpp
samples/minimal/*.h
samples/minimal/*.def
samples/minimal/makefile*.*
samples/minimal/makefile*
samples/minimal/*.xbm
samples/minimal/*.xpm
samples/minimal/*.ico
@@ -305,17 +403,18 @@ samples/minimal/*.rc
samples/controls/*.cpp
samples/controls/*.h
samples/controls/*.def
samples/controls/makefile*.*
samples/controls/makefile*
samples/controls/*.xbm
samples/controls/*.xpm
samples/controls/*.ico
samples/controls/*.bmp
samples/controls/*.rc
samples/controls/icons/*
samples/fractal/*.cpp
samples/fractal/*.h
samples/fractal/*.def
samples/fractal/makefile*.*
samples/fractal/makefile*
samples/fractal/*.xbm
samples/fractal/*.xpm
samples/fractal/*.ico
@@ -324,7 +423,7 @@ samples/fractal/*.rc
samples/layout/*.cpp
samples/layout/*.h
samples/layout/*.def
samples/layout/makefile*.*
samples/layout/makefile*
samples/layout/*.xbm
samples/layout/*.xpm
samples/layout/*.ico
@@ -334,7 +433,7 @@ samples/layout/*.bmp
samples/printing/*.cpp
samples/printing/*.h
samples/printing/*.def
samples/printing/makefile*.*
samples/printing/makefile*
samples/printing/*.xbm
samples/printing/*.xpm
samples/printing/*.txt
@@ -346,7 +445,7 @@ samples/printing/*.afm
samples/toolbar/*.cpp
samples/toolbar/*.h
samples/toolbar/*.def
samples/toolbar/makefile*.*
samples/toolbar/makefile*
samples/toolbar/*.txt
samples/toolbar/*.xbm
samples/toolbar/*.xpm
@@ -361,7 +460,7 @@ samples/docview/*.h
samples/docview/*.cpp
samples/docview/*.def
samples/docview/*.rc
samples/docview/makefile*.*
samples/docview/makefile*
samples/docview/*.xbm
samples/docview/*.xpm
samples/docview/*.txt
@@ -372,7 +471,7 @@ samples/memcheck/*.h
samples/memcheck/*.cpp
samples/memcheck/*.def
samples/memcheck/*.rc
samples/memcheck/makefile*.*
samples/memcheck/makefile*
samples/memcheck/*.xbm
samples/memcheck/*.xpm
samples/memcheck/*.txt
@@ -383,7 +482,7 @@ samples/odbc/*.h
samples/odbc/*.cpp
samples/odbc/*.def
samples/odbc/*.rc
samples/odbc/makefile*.*
samples/odbc/makefile*
samples/odbc/*.inf
samples/odbc/*.xbm
samples/odbc/*.xpm
@@ -396,7 +495,7 @@ samples/dialogs/*.h
samples/dialogs/*.cpp
samples/dialogs/*.def
samples/dialogs/*.rc
samples/dialogs/makefile*.*
samples/dialogs/makefile*
samples/dialogs/*.xbm
samples/dialogs/*.xpm
samples/dialogs/*.txt
@@ -409,7 +508,7 @@ samples/wxpoem/*.def
samples/wxpoem/*.rc
samples/wxpoem/*.inf
samples/wxpoem/*.txt
samples/wxpoem/makefile*.*
samples/wxpoem/makefile*
samples/wxpoem/*.xbm
samples/wxpoem/*.xpm
samples/wxpoem/*.ico
@@ -423,7 +522,7 @@ samples/pressup/*.def
samples/pressup/*.rc
samples/pressup/*.inf
samples/pressup/*.txt
samples/pressup/makefile*.*
samples/pressup/makefile*
samples/pressup/*.xbm
samples/pressup/*.xpm
samples/pressup/*.ico
@@ -435,7 +534,7 @@ samples/validate/*.def
samples/validate/*.rc
samples/validate/*.inf
samples/validate/*.txt
samples/validate/makefile*.*
samples/validate/makefile*
samples/validate/*.xbm
samples/validate/*.xpm
samples/validate/*.ico
@@ -447,7 +546,7 @@ samples/events/*.def
samples/events/*.rc
samples/events/*.inf
samples/events/*.txt
samples/events/makefile*.*
samples/events/makefile*
samples/events/*.xbm
samples/events/*.xpm
samples/events/*.ico
@@ -458,7 +557,7 @@ samples/treectrl/*.h
samples/treectrl/*.def
samples/treectrl/*.rc
samples/treectrl/*.txt
samples/treectrl/makefile*.*
samples/treectrl/makefile*
samples/treectrl/*.xbm
samples/treectrl/*.xpm
samples/treectrl/bitmaps/*.xbm
@@ -473,7 +572,7 @@ samples/listctrl/*.h
samples/listctrl/*.def
samples/listctrl/*.rc
samples/listctrl/*.txt
samples/listctrl/makefile*.*
samples/listctrl/makefile*
samples/listctrl/*.xbm
samples/listctrl/*.xpm
samples/listctrl/bitmaps/*.xbm
@@ -488,7 +587,7 @@ samples/splitter/*.h
samples/splitter/*.def
samples/splitter/*.rc
samples/splitter/*.txt
samples/splitter/makefile*.*
samples/splitter/makefile*
samples/splitter/*.xbm
samples/splitter/*.xpm
samples/splitter/*.ico
@@ -499,7 +598,7 @@ samples/grid/*.h
samples/grid/*.def
samples/grid/*.rc
samples/grid/*.txt
samples/grid/makefile*.*
samples/grid/makefile*
samples/grid/*.xbm
samples/grid/*.xpm
samples/grid/*.ico
@@ -510,7 +609,7 @@ samples/internat/*.h
samples/internat/*.def
samples/internat/*.rc
samples/internat/*.txt
samples/internat/makefile*.*
samples/internat/makefile*
samples/internat/*.xbm
samples/internat/*.xpm
samples/internat/*.po
@@ -523,7 +622,7 @@ samples/checklst/*.h
samples/checklst/*.def
samples/checklst/*.rc
samples/checklst/*.txt
samples/checklst/makefile*.*
samples/checklst/makefile*
samples/checklst/*.xbm
samples/checklst/*.xpm
samples/checklst/*.ico
@@ -531,7 +630,7 @@ samples/checklst/*.bmp
samples/dnd/*.cpp
samples/dnd/*.h
samples/dnd/makefile*.*
samples/dnd/makefile*
samples/dnd/*.rc
samples/dnd/*.def
samples/dnd/*.bmp
@@ -542,7 +641,7 @@ samples/dnd/*.txt
samples/tab/*.cpp
samples/tab/*.h
samples/tab/makefile*.*
samples/tab/makefile*
samples/tab/*.rc
samples/tab/*.def
samples/tab/*.bmp
@@ -551,9 +650,20 @@ samples/tab/*.xpm
samples/tab/*.ico
samples/tab/*.txt
samples/notebook/*.cpp
samples/notebook/*.h
samples/notebook/makefile*
samples/notebook/*.rc
samples/notebook/*.def
samples/notebook/*.bmp
samples/notebook/*.xbm
samples/notebook/*.xpm
samples/notebook/*.ico
samples/notebook/*.txt
samples/png/*.cpp
samples/png/*.h
samples/png/makefile*.*
samples/png/makefile*
samples/png/*.rc
samples/png/*.def
samples/png/*.bmp
@@ -563,3 +673,27 @@ samples/png/*.ico
samples/png/*.txt
samples/png/*.png
samples/image/*.cpp
samples/image/*.h
samples/image/makefile*
samples/image/*.rc
samples/image/*.def
samples/image/*.bmp
samples/image/*.xpm
samples/image/*.xbm
samples/image/*.png
samples/image/*.ico
samples/image/*.txt
samples/thread/*.cpp
samples/thread/*.h
samples/thread/makefile*
samples/thread/*.rc
samples/thread/*.def
samples/thread/*.bmp
samples/thread/*.xpm
samples/thread/*.xbm
samples/thread/*.png
samples/thread/*.ico
samples/thread/*.txt

View File

@@ -2,10 +2,17 @@ install-sh
Makefile
template.mak
TODO.txt
configure.in
config.guess
config.sub
wx-config.in
mkinstalldirs
docs/gtk/*.html
docs/gtk/*.txt
include/wx/gtk/*.h
src/mkdirs
src/Makefile
src/Makefile.in
src/*.inc
@@ -15,12 +22,6 @@ src/gtk/*.c
src/gtk/*.inc
src/gtk/*.xbm
src/gtk/setup/*.hin
src/gtk/setup/*.in
src/gtk/setup/rules/*
src/gtk/setup/rules/generic/*
src/gtk/setup/rules/linux/*
src/gdk_imlib/*.c
src/gdk_imlib/*.h
src/gdk_imlib/AUTHORS
@@ -41,11 +42,57 @@ src/iodbc/build
src/iodbc/Changes.log
src/iodbc/postgres/*.h
install/gtk/*
setup/*.in
setup/*.hin
misc/afm/*
misc/gs_afm/*
misc/imlib/*
setup/general/createall
setup/general/jointar
setup/general/makeapp
setup/general/makedirs
setup/general/makedoc
setup/general/mygrep
setup/general/needed
setup/rules/bin
setup/rules/bin2
setup/rules/doc
setup/rules/gbin
setup/rules/gbin2
setup/rules/glib
setup/rules/glibbin
setup/rules/glibgbin
setup/rules/gslib
setup/rules/lib
setup/rules/libbin
setup/rules/libgbin
setup/rules/generic/bin1
setup/rules/generic/bin1gen
setup/rules/generic/bin2
setup/rules/generic/bin2gen
setup/rules/generic/depend
setup/rules/generic/globals
setup/rules/generic/lib
setup/rules/generic/needed
setup/rules/generic/obj
setup/rules/generic/slib
setup/rules/generic/sobj
setup/shared/sharedAIX
setup/shared/sharedBsd
setup/shared/sharedDgux
setup/shared/sharedHpux
setup/shared/sharedIrix
setup/shared/sharedLinux
setup/shared/sharedOSF
setup/shared/sharedSolaris2
setup/shared/sharedSunos4
setup/shared/sharedSysV
misc/afm/*.afm
misc/gs_afm/*.afm
misc/imlib/imrc
misc/imlib/*.pal
user/Makefile
@@ -67,3 +114,10 @@ user/wxTest/Makefile.in
user/wxTest/*.xpm
user/wxTest/*.png
user/wxLayout/*.cpp
user/wxLayout/*.h
user/wxLayout/Makefile
user/wxLayout/Makefile.in
user/wxLayout/*.xpm
user/wxLayout/*.png

96
distrib/msw/motif.rsp Normal file
View File

@@ -0,0 +1,96 @@
install-sh
Makefile
template.mak
configure.in
config.guess
config.sub
wx-config.in
mkinstalldirs
src/Makefile
src/Makefile.in
src/*.inc
setup/*.in
setup/*.hin
setup/general/createall
setup/general/jointar
setup/general/makeapp
setup/general/makedirs
setup/general/makedoc
setup/general/mygrep
setup/general/needed
setup/rules/bin
setup/rules/bin2
setup/rules/doc
setup/rules/gbin
setup/rules/gbin2
setup/rules/glib
setup/rules/glibbin
setup/rules/glibgbin
setup/rules/gslib
setup/rules/lib
setup/rules/libbin
setup/rules/libgbin
setup/rules/generic/bin1
setup/rules/generic/bin1gen
setup/rules/generic/bin2
setup/rules/generic/bin2gen
setup/rules/generic/depend
setup/rules/generic/globals
setup/rules/generic/lib
setup/rules/generic/needed
setup/rules/generic/obj
setup/rules/generic/slib
setup/rules/generic/sobj
setup/shared/sharedAIX
setup/shared/sharedBsd
setup/shared/sharedDgux
setup/shared/sharedHpux
setup/shared/sharedIrix
setup/shared/sharedLinux
setup/shared/sharedOSF
setup/shared/sharedSolaris2
setup/shared/sharedSunos4
setup/shared/sharedSysV
misc/afm/*.afm
src/motif/*.cpp
src/motif/*.c
src/motif/*.h
src/motif/makefile*
src/motif/*.inc
src/motif/*.xbm
src/motif/xmcombo/*.c
src/motif/xmcombo/*.h
src/motif/xmcombo/*.doc
src/motif/xmcombo/*.man
src/motif/xmcombo/*.txt
src/motif/mdi/COPYRIGHT
src/motif/mdi/Imakefile
src/motif/mdi/Readme
src/motif/mdi/config/C++.rules
src/motif/mdi/config/MDI.tmpl
src/motif/mdi/doc/*.html
src/motif/mdi/doc/pics/*.gif
src/motif/mdi/lib/*.C
src/motif/mdi/lib/*.h
src/motif/mdi/lib/*.xbm
src/motif/mdi/lib/Imakefile
src/motif/mdi/test/*.C
src/motif/mdi/test/Imakefile
src/make.env
src/makeprog.env
include/wx/motif/*.h
docs/motif/*.*
lib/dummy

View File

@@ -1,6 +1,9 @@
docs/msw/*.txt
docs/licence.txt
distrib/msw/*.rsp
distrib/msw/*.bat
src/makeb32.env
src/makebcc.env
src/makemsw.env

14
distrib/msw/stubs.rsp Normal file
View File

@@ -0,0 +1,14 @@
src/stubs/*.cpp
src/stubs/*.h
src/stubs/makefile*
src/stubs/*.inc
src/make.env
src/makeprog.env
include/wx/stubs/*.h
include/wx/stubs/*.rc
lib/dummy

View File

@@ -6,7 +6,7 @@ if "%src" == "" goto usage
if "%dest" == "" goto usage
echo About to archive an external wxWindows distribution:
echo From %src
echo To %dest\wx200gen.zip, %dest\wx200doc.zip, %dest\wx200msw.zip, %dest\wx200ps.zip, %dest\wx200hlp.zip, %dest\wx200htm.zip, %dest\wx200pdf.zip
echo To %dest
echo CTRL-C if this is not correct.
pause
@@ -17,12 +17,16 @@ echo Zipping...
zip32 -@ %dest\wx200gen.zip < %src\distrib\msw\generic.rsp
zip32 -@ %dest\wx200msw.zip < %src\distrib\msw\msw.rsp
zip32 -@ %dest\wx200gtk.zip < %src\distrib\msw\gtk.rsp
zip32 -@ %dest\wx200stubs.zip < %src\distrib\msw\stubs.rsp
zip32 -@ %dest\wx200mot.zip < %src\distrib\msw\motif.rsp
zip32 -@ %dest\wx200doc.zip < %src\distrib\msw\docsrc.rsp
zip32 -@ %dest\wx200hlp.zip < %src\distrib\msw\wx_hlp.rsp
zip32 -@ %dest\wx200htm.zip < %src\distrib\msw\wx_html.rsp
zip32 -@ %dest\wx200pdf.zip < %src\distrib\msw\wx_pdf.rsp
zip32 -@ %dest\ogl3.zip < %src\utils\ogl\distrib\ogl.rsp
cd %dest
echo wxWindows archived.

481
docs/gtk/COPYING.LIB Normal file
View File

@@ -0,0 +1,481 @@
GNU LIBRARY GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1991 Free Software Foundation, Inc.
675 Mass Ave, Cambridge, MA 02139, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the library GPL. It is
numbered 2 because it goes with version 2 of the ordinary GPL.]
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Library General Public License, applies to some
specially designated Free Software Foundation software, and to any
other libraries whose authors decide to use it. You can use it for
your libraries, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if
you distribute copies of the library, or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link a program with the library, you must provide
complete object files to the recipients so that they can relink them
with the library, after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
Our method of protecting your rights has two steps: (1) copyright
the library, and (2) offer you this license which gives you legal
permission to copy, distribute and/or modify the library.
Also, for each distributor's protection, we want to make certain
that everyone understands that there is no warranty for this free
library. If the library is modified by someone else and passed on, we
want its recipients to know that what they have is not the original
version, so that any problems introduced by others will not reflect on
the original authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that companies distributing free
software will individually obtain patent licenses, thus in effect
transforming the program into proprietary software. To prevent this,
we have made it clear that any patent must be licensed for everyone's
free use or not licensed at all.
Most GNU software, including some libraries, is covered by the ordinary
GNU General Public License, which was designed for utility programs. This
license, the GNU Library General Public License, applies to certain
designated libraries. This license is quite different from the ordinary
one; be sure to read it in full, and don't assume that anything in it is
the same as in the ordinary license.
The reason we have a separate public license for some libraries is that
they blur the distinction we usually make between modifying or adding to a
program and simply using it. Linking a program with a library, without
changing the library, is in some sense simply using the library, and is
analogous to running a utility program or application program. However, in
a textual and legal sense, the linked executable is a combined work, a
derivative of the original library, and the ordinary General Public License
treats it as such.
Because of this blurred distinction, using the ordinary General
Public License for libraries did not effectively promote software
sharing, because most developers did not use the libraries. We
concluded that weaker conditions might promote sharing better.
However, unrestricted linking of non-free programs would deprive the
users of those programs of all benefit from the free status of the
libraries themselves. This Library General Public License is intended to
permit developers of non-free programs to use free libraries, while
preserving your freedom as a user of such programs to change the free
libraries that are incorporated in them. (We have not seen how to achieve
this as regards changes in header files, but we have achieved it as regards
changes in the actual functions of the Library.) The hope is that this
will lead to faster development of free libraries.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, while the latter only
works together with the library.
Note that it is possible for a library to be covered by the ordinary
General Public License rather than by this special one.
GNU LIBRARY GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library which
contains a notice placed by the copyright holder or other authorized
party saying it may be distributed under the terms of this Library
General Public License (also called "this License"). Each licensee is
addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also compile or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
c) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
d) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the source code distributed need not include anything that is normally
distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Library General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
Appendix: How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).
To apply these terms, attach the following notices to the library. It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
<one line to give the library's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
<signature of Ty Coon>, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!

View File

@@ -1,90 +1,87 @@
* The most simple case
-----------------------
If you compile wxWindows on Unix for the first time and don't like
to read install instructions just do (in the base dir):
./configure --without-threads
make
and drink 10 coffees. Then you may log in as root and type
make install
You can leave out the --without-threads option if you have a NEW
Linux distribution based on glibc (e.g. RedHat 5.1 or Debian 2.0)
or any other Unix that comes with Posix threads or SGI threads.
Now create your super-application myfoo.app and compile anywhere with
g++ myfoo.cpp `wx-config --libs` `wx-config --cflags` -o myfoo
* General
----------
-----------------------
The Unix variants of wxWindows use GNU configure. If you have problems
with your make use GNU make instead.
Read my homepage at
http://www.freiburg.linux.de/~wxxt
http://wesley.informatik.uni-freiburg.de/~wxxt
for newest information.
* GUI libraries
-----------------------
wxWindows requires a GUI toolkit to be installed. Does that make
sense? So far only the GTK is supported, but we hope to provide
the choice between GTK, Qt, Motif/Lesstif in the not so distant
future.
wxWindows/GTK requires the GTK+ library to be installed on your system.
It has to be a stable version, preferebly version 1.0.6. When using
a version previous to 1.0.6 you'll get crashes here and there. This
is certain to happen with colors in native widgets.
You can get the newest version of the GTK from the GTK homepage
You can get the newest version of the GTK+ from the GTK homepage
at
http://www.gtk.org
The newest versin of Qt can be downloaded for free from the Trolltec's
site at
http://www.troll.no
Lesstif can be downloaded from their site
at
http://www.lesstif.org
If you want to develop using Motif, you need to buy it, unless it comes
with your operating system such as all commercial Unices, as well as
RedHat's, SuSe's and probably other's Linux Motif editions.
We also mirror GTK+ 1.0.6 at our ftp site. You'll find information
about downloading at my homepage.
* Additional libraries
-----------------------
There will be a few more features of wxWindows, which will
require further libraries (on some platforms). These
features will be optional. I hope to teach configure
to check that out automatically.
wxWindows/Gtk requires a thread library and X libraries
known to work with threads. This is the case on all
commercial Unix-Variants and all Linux-Versions that
are based on glibc 2 except RedHat 5.0 which is broken
in many aspects. As of writing this, these Linux
distributions have correct glibc 2 support:
Thread support:
- RedHat 5.1
- Debian 2.0
- Stampede
The next major version of SuSE will also support glibc 2,
but version 5.X does not. Also Caldera and Slackware
don't yet support glibc 2.
Requires pthreads under Linux with glibc 2. pthreads are
always present on such systems, so just compile, unless
you have RedHat 5.0, which has a broken combination of
glibc 2 and X. In this case, you have to run configure
with "--without-threads".
On IRIX you can also use SGI threads if Posix-Threads
are not present. The SGI threads will be detected by
configure automatically.
You can always disable thread support by running
./configure "--without-threads"
make clean
make
Requires PCthreads under Linux with libc 5. If you
haven't installed pcthreads, there will be no thread
support in wxWindows, but the library will compile.
Requires Posix threads on commercial Unix system,
which are always present. Just compile.
On SGI Irix we first look for sprocs, then pthreads and
use the last one found.
Python scripting language support:
Requires Python. Soon to come.
* Other things to do
-----------------------------
wxGTK and wxMotif/wxLesstif require the built-in
ImLib/GdkImlib to be configured. For that purpose
copy the two files from /misc/imlib to your
home directory and rename "imrc" -> ".imrc".
You may also edit imrc by hand as you like.
The palette file is required when using
wxWindows in 256-colour mode.
If you want to use wxWindows's ODBC support, you'll have
to create a .odbc.ini file. The readme file in
~/src/iodbc tells you what to do.
NB: I included thread support in wxWindows/Gtk, as this
problem will disappear in the near future when all major
Linux Variants have moved to glibc 2. Also, the Linux
Base Standard will include glibc 2.
* Create your configuration
-----------------------------
This must be done in /install/unix
Usage:
./configure options
@@ -131,8 +128,10 @@ not been defined. And Make in some circumstances as well...
* General options
-------------------
Obviously, you have to choose a toolkit. You must do this by
running configure with either of
Normally, you won't have to choose a toolkit, because when
you download wxGTK, it will default to --with-gtk etc. But
if you use all of our CVS repository you have to choose a
toolkit. You must do this by running configure with either of:
--with-gtk Use the GIMP ToolKit (GTK)
@@ -145,7 +144,7 @@ The following options handle the kind of library you want to build.
--without-threads Compile without thread support.
--with-shared Create shared libraries.
--without-shared Do not create shared libraries.
--without-optimise Do not optimise the code.
@@ -167,48 +166,41 @@ The following options handle the kind of library you want to build.
* Feature Options
-------------------
When using the Windows version of wxWindows, it is possible
to edit the file /include/wx/msw/setup.h in order to enable
or disable some features of wxWindows so that the resulting
binaries get smaller.
As I don't yet care for binary size and target mainly at
producing a shared library, wxWindows's configure system auto-
matically enables all features, as long as they are already
implemented.
implemented. It is currently NOT possible to disable these
options (in contrast to what configure tells you).
* Compiling
-------------
The following must be done in the base directory (e.g. ~/wxGTK
or ~/wxWin)
or ~/wxWin or whatever)
First you have to create all makefiles in all subdirectories:
make Makefiles
Dependencies are generated automatically using
make depend
(For some reason, this doesn't seem to work completely.)
Now the makefiles are created you can compile everything is as simple
as typing:
Now the makefiles are created and you can compile everything
by typing:
make
make yourself some coffee, as it will try to compile
ALL the files in this distribution.
make yourself some coffee, as it will try to compile ALL the
files in this distribution. During compilation, you'll get
a few warning messages.
if you want to be more selective:
make src will build only the base libraries
make utils will build the utils
make samples will build the samples
make other will build the other samples
make user will build the files in the directory other
make other will build everything in other
make user will build everything in user
Then you may install the library and it's header files under
/usr/local/include/wx and /usr/local/lib respectively. You
have to log in as root (i.e. run "su" and enter the root
password) and type
make install
Depending on the configuration of some files, the libraries
and binaries will be placed in different directories.
The "global" binaries and libraries will be placed in:
@@ -232,8 +224,34 @@ will do the work for you.
* Creating a new Project
--------------------------
I propose to put all contributed programs in the directory
"~/wxWin/user", with a directory of its own.
There are two ways to create your own project:
1) The first way uses the installed libraries and header files
automatically using wx-config
g++ myfoo.cpp `wx-config --libs` `wx-config --cflags` -o myfoo
Using this way, a make file for the minimal sample would look
like this
CC = g++
minimal: minimal.o
$(CC) -o minimal minimal.o `wx-config --libs`
minimal.o: minimal.cpp mondrian.xpm
$(CC) `wx-config --cflags` -c minimal.cpp -o minimal.o
clean:
rm -f *.o minimal
This is certain to become the standard way unless we decide
to sitch to tmake.
2) The other way creates a project within the source code
directories of wxWindows: In this case I propose to put
all contributed programs in the directory "/user", with a
directory of its own.
This directory then should include the following files:
@@ -248,12 +266,13 @@ Makefile.in (This is the base application-Makefile template, from
put ALL your source code along with all the other stuff you need for
your application in this directory (subdirectories are welcome).
** Something about Makefiles
------------------------------
On general principle it should only contain ONE line, which is as follows:
include ../../src/unix/setup/general/makeapp
include ../../setup/general/makeapp
this will include all the necessary definitions for creating the applications
@@ -272,7 +291,7 @@ to the Makefile.
So it would look like this:
DISTRIBUTE_ADDITIONAL=README.TheApp
include ../../src/unix/setup/general/makeapp
include ../../setup/general/makeapp
As we have already talked about distribution the command to create a
distribution is:

56
docs/gtk/licence.txt Normal file
View File

@@ -0,0 +1,56 @@
wxWindows Library License, Version 3
====================================
Copyright (C) 1998 Julian Smart, Robert Roebling et al.
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
WXWINDOWS LIBRARY LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at
your option) any later version.
This library is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHAN-
TABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library
General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this software, usually in a file named COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
Boston, MA 02111-1307 USA.
EXCEPTION NOTICE
1. As a special exception, the copyright holders of this library give
permission for additional uses of the text contained in this release of
the library as licensed under the wxWindows Library License, applying
either version 3 of the License, or (at your option) any later version of
the License as published by the copyright holders of version 3 of the
License document.
2. The exception is that you may create binary object code versions of any
works using this library or based on this library, and use, copy, modify,
link and distribute such binary object code files unrestricted under terms
of your choice.
3. If you copy code from files distributed under the terms of the GNU
General Public License or the GNU Library General Public License into a
copy of this library, as this license permits, the exception does not
apply to the code that you add in this way. To avoid misleading anyone as
to the status of such modified files, you must delete this exception
notice from such code and/or adjust the licensing conditions notice
accordingly.
4. If you write modifications of your own for this library, it is your
choice whether to permit this exception to apply to your modifications.
If you do not wish that, you must delete the exception notice from such
code and/or adjust the licensing conditions notice accordingly.

36
docs/gtk/readme.txt Normal file
View File

@@ -0,0 +1,36 @@
Welcome to wxWindows/Gtk,
you have downloaded version 1.96 of the GTK+ port of C++ library
wxWindows. Information on how to install can be found in the
file install.txt, but if you cannot wait, this should work on
all systems
configure --without-threads
make
su (PASSWORD)
make install
wxWindows/Gtk is still in development and you can have a look
at the todo.txt to see what's missing before an official beta
and - more important - before we can aim at binary compatibility.
More information is available from my homepage at
http://wesley.informatik.uni-freiburg.de/~wxxt
Please send problems concerning installation, feature requests,
bug reports or comments to either the wxGTK mailing list or to
the wxWindows developers list. Information on how to subscribe
is available from my homepage.
wxWindows/Gtk comes with no guarantee whatsoever. It might crash
your harddisk or destroy your monitor. It doesn't claim to be
suitable for any special purpose.
Regards,
Robert Roebling

38
docs/gtk/todo.txt Normal file
View File

@@ -0,0 +1,38 @@
-------------------- High priority ---------------------
wxTreeCtrl
-> Keyboard handling.
wxClipboard
-> On the way, but not functional yet.
Fix printing of bitmaps
-> No idea.
OwnerDraw for wxListCtrl and others
-> That is a big one.
DnD
-> Must be rewritten for GTK+ 1.1.3
-------------------- Low priority ---------------------
wxDebugContext <-> wxLogXXX functions
-> Remove either
Implement wxPalette
-> I never understood that. Postponed.
Implement wxDirDialog
-> Not heard of. Postponed.
Show accelerator in menus
-> Changed in GTK 1.1.X. Postponed.
Correct tab navigation
-> seems to be broken in GTK. Postponed.
Cooperation with Qt
-> Would be nice.

190
docs/latex/wx/accel.tex Normal file
View File

@@ -0,0 +1,190 @@
\section{\class{wxAcceleratorEntry}}\label{wxacceleratorentry}
An object used by an application wishing to create an \helpref{accelerator table}{wxacceleratortable}.
\wxheading{Derived from}
None
\wxheading{See also}
\helpref{wxAcceleratorTable}{wxacceleratortable}, \helpref{wxWindow::SetAcceleratorTable}{wxwindowsetacceleratortable}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxAcceleratorEntry::wxAcceleratorEntry}\label{wxacceleratorentryconstr}
\func{}{wxAcceleratorEntry}{\void}
Default constructor.
\func{}{wxAcceleratorEntry}{\param{int}{ flags}, \param{int}{ keyCode}, \param{int}{ cmd}}
Constructor.
\wxheading{Parameters}
\docparam{flags}{One of wxACCEL\_SHIFT, wxACCEL\_CTRL and wxACCEL\_NORMAL. Indicates
which modifier key is held down.}
\docparam{keyCode}{The keycode to be detected. See \helpref{Keycodes}{keycodes} for a full list of keycodes.}
\docparam{cmd}{The menu or control command identifier.}
\membersection{wxAcceleratorEntry::GetCommand}\label{wxacceleratorentrygetcommand}
\constfunc{int}{GetCommand}{\void}
Returns the command identifier for the accelerator table entry.
\membersection{wxAcceleratorEntry::GetFlags}\label{wxacceleratorentrygetflags}
\constfunc{int}{GetFlags}{\void}
Returns the flags for the accelerator table entry.
\membersection{wxAcceleratorEntry::GetKeyCode}\label{wxacceleratorentrygetkeycode}
\constfunc{int}{GetKeyCode}{\void}
Returns the keycode for the accelerator table entry.
\membersection{wxAcceleratorEntry::Set}\label{wxacceleratorentryset}
\func{void}{Set}{\param{int}{ flags}, \param{int}{ keyCode}, \param{int}{ cmd}}
Sets the accelerator entry parameters.
\wxheading{Parameters}
\docparam{flags}{One of wxACCEL\_SHIFT, wxACCEL\_CTRL and wxACCEL\_NORMAL. Indicates
which modifier key is held down.}
\docparam{keyCode}{The keycode to be detected. See \helpref{Keycodes}{keycodes} for a full list of keycodes.}
\docparam{cmd}{The menu or control command identifier.}
\section{\class{wxAcceleratorTable}}\label{wxacceleratortable}
An accelerator table allows the application to specify a table of keyboard shortcuts for
menus or other commands. On Windows, menu or button commands are supported; on GTK,
only menu commands are supported.
The object {\bf wxNullAcceleratorTable} is defined to be a table with no data, and is the
initial accelerator table for a window.
\wxheading{Derived from}
\helpref{wxObject}{wxobject}
\wxheading{Example}
{\small%
\begin{verbatim}
wxAcceleratorEntry entries[4];
entries[0].Set(wxACCEL_CTRL, (int) 'N', ID_NEW_WINDOW);
entries[1].Set(wxACCEL_CTRL, (int) 'X', wxID_EXIT);
entries[2].Set(wxACCEL_SHIFT, (int) 'A', ID_ABOUT);
entries[3].Set(wxACCEL_NONE, WXK_DELETE, wxID_CUT);
wxAcceleratorTable accel(4, entries);
frame->SetAcceleratorTable(accel);
\end{verbatim}
}
\wxheading{Remarks}
An accelerator takes precedence over normal processing and can be a convenient way to program some event handling.
For example, you can use an accelerator table to enable a dialog with a multi-line text control to
accept CTRL-Enter as meaning 'OK' (but not in GTK at present).
\wxheading{See also}
\helpref{wxAcceleratorEntry}{wxacceleratorentry}, \helpref{wxWindow::SetAcceleratorTable}{wxwindowsetacceleratortable}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxAcceleratorTable::wxAcceleratorTable}\label{wxacceleratortableconstr}
\func{}{wxAcceleratorTable}{\void}
Default constructor.
\func{}{wxAcceleratorTable}{\param{const wxAcceleratorTable\& }{bitmap}}
Copy constructor.
\func{}{wxAcceleratorTable}{\param{int}{ n}, \param{wxAcceleratorEntry}{ entries[]}}
Creates from an array of \helpref{wxAcceleratorEntry}{wxacceleratorentry} objects.
\func{}{wxAcceleratorTable}{\param{const wxString\&}{ resource}}
Loads the accelerator table from a Windows resource (Windows only).
\wxheading{Parameters}
\docparam{n}{Number of accelerator entries.}
\docparam{entries}{The array of entries.}
\docparam{resource}{Name of a Windows accelerator.}
\membersection{wxAcceleratorTable::\destruct{wxAcceleratorTable}}
\func{}{\destruct{wxAcceleratorTable}}{\void}
Destroys the wxAcceleratorTable object.
\membersection{wxAcceleratorTable::Ok}\label{wxacceleratortableok}
\constfunc{bool}{Ok}{\void}
Returns TRUE if the accelerator table is valid.
\membersection{wxAcceleratorTable::operator $=$}
\func{wxAcceleratorTable\& }{operator $=$}{\param{const wxAcceleratorTable\& }{accel}}
Assignment operator. This operator does not copy any data, but instead
passes a pointer to the data in {\it accel} and increments a reference
counter. It is a fast operation.
\wxheading{Parameters}
\docparam{accel}{Accelerator table to assign.}
\wxheading{Return value}
Returns 'this' object.
\membersection{wxAcceleratorTable::operator $==$}
\func{bool}{operator $==$}{\param{const wxAcceleratorTable\& }{accel}}
Equality operator. This operator tests whether the internal data pointers are
equal (a fast test).
\wxheading{Parameters}
\docparam{accel}{Accelerator table to compare with 'this'}
\wxheading{Return value}
Returns TRUE if the accelerator tables were effectively equal, FALSE otherwise.
\membersection{wxAcceleratorTable::operator $!=$}
\func{bool}{operator $!=$}{\param{const wxAcceleratorTable\& }{accel}}
Inequality operator. This operator tests whether the internal data pointers are
unequal (a fast test).
\wxheading{Parameters}
\docparam{accel}{Accelerator table to compare with 'this'}
\wxheading{Return value}
Returns TRUE if the accelerator tables were unequal, FALSE otherwise.

View File

@@ -38,7 +38,7 @@ or a frame becomes inactivate resulting in all application frames being inactive
\membersection{wxActivateEvent::wxActivateEvent}
\func{}{wxActivateEvent}{\param{WXTYPE }{eventType = 0}, \param{int }{id = 0}}
\func{}{wxActivateEvent}{\param{WXTYPE }{eventType = 0}, \param{bool}{ active = TRUE}, \param{int }{id = 0}}
Constructor.

View File

@@ -238,6 +238,32 @@ goes idle again, when OnIdle is called, and so on.
\helpref{wxWindow::OnIdle}{wxwindowonidle}, \helpref{wxIdleEvent}{wxidleevent},\rtfsp
\helpref{wxWindow::SendIdleEvents}{wxappsendidleevents}
\membersection{wxApp::OnEndSession}\label{wxapponendsession}
\func{void}{OnEndSession}{\param{wxCloseEvent\& }{event}}
This is an event handler function called when the operating system or GUI session is
about to close down. The application has a chance to silently save information,
and can optionally close itself.
Use the EVT\_END\_SESSION event table macro to handle query end session events.
The default handler calls \helpref{wxWindow::Close}{wxwindowclose} with a TRUE argument
(forcing the application to close itself silently).
\wxheading{Remarks}
Under X, OnEndSession is called in response to the 'die' event.
Under Windows, OnEndSession is called in response to the WM\_ENDSESSION message.
\wxheading{See also}
\helpref{wxWindow::Close}{wxwindowclose},\rtfsp
\helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow},\rtfsp
\helpref{wxCloseEvent}{wxcloseevent},\rtfsp
\helpref{wxApp::OnQueryEndSession}{wxapponqueryendsession}
\membersection{wxApp::OnInit}\label{wxapponinit}
\func{bool}{OnInit}{\void}
@@ -247,16 +273,43 @@ application's main window, calling \helpref{wxApp::SetTopWindow}{wxappsettopwind
Return TRUE to continue processing, FALSE to exit the application.
\membersection{wxApp::Pending}\label{wxapppending}
\membersection{wxApp::OnQueryEndSession}\label{wxapponqueryendsession}
\func{bool}{Pending}{\void}
\func{void}{OnQueryEndSession}{\param{wxCloseEvent\& }{event}}
Returns TRUE if unprocessed events are in the window system event queue
(MS Windows and Motif).
This is an event handler function called when the operating system or GUI session is
about to close down. Typically, an application will try to save unsaved documents
at this point.
If \helpref{wxCloseEvent::CanVeto}{wxcloseeventcanveto} returns TRUE, the application
is allowed to veto the shutdown by calling \helpref{wxCloseEvent::Veto}{wxcloseeventveto}.
The application might veto the shutdown after prompting for documents to be saved, and the
user has cancelled the save.
Use the EVT\_QUERY\_END\_SESSION event table macro to handle query end session events.
You should check whether the application is forcing the deletion of the window
using \helpref{wxCloseEvent::GetForce}{wxcloseeventgetforce}. If this is TRUE,
destroy the window using \helpref{wxWindow::Destroy}{wxwindowdestroy}.
If not, it is up to you whether you respond by destroying the window.
The default handler calls \helpref{wxWindow::Close}{wxwindowclose} on the top-level window,
and vetoes the shutdown if Close returns FALSE. This will be sufficient for many applications.
\wxheading{Remarks}
Under X, OnQueryEndSession is called in response to the 'save session' event.
Under Windows, OnQueryEndSession is called in response to the WM\_QUERYENDSESSION message.
\wxheading{See also}
\helpref{wxApp::Dispatch}{wxappdispatch}
\helpref{wxWindow::Close}{wxwindowclose},\rtfsp
\helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow},\rtfsp
\helpref{wxCloseEvent}{wxcloseevent},\rtfsp
\helpref{wxApp::OnEndSession}{wxapponendsession}
\membersection{wxWindow::OnScroll}\label{wxwindowonscroll}
\membersection{wxApp::ProcessMessage}\label{wxappprocessmessage}
@@ -282,6 +335,17 @@ BOOL CTheApp::PreTranslateMessage(MSG *msg)
}
\end{verbatim}
\membersection{wxApp::Pending}\label{wxapppending}
\func{bool}{Pending}{\void}
Returns TRUE if unprocessed events are in the window system event queue
(MS Windows and Motif).
\wxheading{See also}
\helpref{wxApp::Dispatch}{wxappdispatch}
\membersection{wxApp::SendIdleEvents}\label{wxappsendidleevents}
\func{bool}{SendIdleEvents}{\void}

View File

@@ -728,7 +728,7 @@ Use .wrc (wxWindows resource files) where possible, because they can be easily c
independently of source code. Bitmap resources can be set up to load different
kinds of bitmap depending on platform (see the section on resource files).
\section{Strategies for debugging}
\section{Strategies for debugging}\label{debugstrategies}
\subsection{Positive thinking}
@@ -757,49 +757,35 @@ to go from functioning to non-functioning state. This should give a clue
to the problem. In some cases though, such as memory leaks or wrong
deallocation, this can still give totally spurious results!
\subsection{Genetic mutation}
If we had sophisticated genetic algorithm tools that could be applied
to programming, we could use them. Until then, a common -- if rather irrational --
technique is to just make arbitrary changes to the code until something
different happens. You may have an intuition why a change will make a difference;
otherwise, just try altering the order of code, comment lines out, anything
to get over an impasse. Obviously, this is usually a last resort.
\subsection{Use a debugger}
This sounds like facetious advice, but it's surprising how often people
don't use a debugger. Often it's an overhead to install or learn how to
use a debugger, but it really is essential for anything but the most
trivial programs. Some platforms don't allow for debugging, such
as WIN32s under Windows 3.x. In this case, you might be advised to
debug under 16-bit Windows and when you're confident, compile for
WIN32s. In fact WIN32s can be very strict about bad memory handling,
so testing out under WIN32s is a good thing to do even if you're
not going to distribute this version. (Unless you've got a good memory checking,
utility, of course!) Tracking bugs under WIN32s can involve a lot of debug message
insertion and relinking, so make sure your compiler has a fast linker
(e.g. Watcom, Symantec).
trivial programs.
\subsection{Use tracing code}
\subsection{Use logging functions}
You can use wxDebugMsg statements (or the wxDebugStreamBuf class) to
output to a debugging window such as DBWIN under Windows, or standard
error under X. If compiling in DEBUG mode, you can use TRACE statements
that will be compiled out of the final build of your application.
There is a variety of logging functions that you can use in your program:
see \helpref{Logging functions}{logfunctions}.
Using tracing statements may be more convenient than using the debugger
in some circumstances (such as when your debugger doesn't support a lot
of debugging code, or you wish to print a bunch of variables).
\subsection{Use wxObject::Dump and the wxDebugContext class}
\subsection{Use the wxWindows debugging facilities}
It's good practice to implement the Dump member function for all
classes derived from wxObject. You can then make use of wxDebugContext
to dump out information on all objects in the program, if DEBUG is
defined to be more than zero. You can use wxDebugContext to check for
memory leaks and corrupt memory. See the debugging topic in the
reference manual for more information.
You can use wxDebugContext to check for
memory leaks and corrupt memory: in fact in debugging mode, wxWindows will
automatically check for memory leaks at the end of the program if wxWindows is suitably
configured. Depending on the operating system and compiler, more or less
specific information about the problem will be logged.
You should also use \helpref{debug macros}{debugmacros} as part of a `defensive programming' strategy,
scattering wxASSERTs liberally to test for problems in your code as early as possible. Forward thinking
will save a surprising amount of time in the long run.
See the \helpref{debugging overview}{debuggingoverview} for further information.
\subsection{Check Windows debug messages}
@@ -812,3 +798,14 @@ more problems. However, I doubt it's worth the hassle for most
applications. wxWindows is designed to minimize the possibility of such
errors, but they can still happen occasionally, slipping through unnoticed
because they are not severe enough to cause a crash.
\subsection{Genetic mutation}
If we had sophisticated genetic algorithm tools that could be applied
to programming, we could use them. Until then, a common -- if rather irrational --
technique is to just make arbitrary changes to the code until something
different happens. You may have an intuition why a change will make a difference;
otherwise, just try altering the order of code, comment lines out, anything
to get over an impasse. Obviously, this is usually a last resort.

View File

@@ -0,0 +1,60 @@
\section{\class{wxCalculateLayoutEvent}}\label{wxcalculatelayoutevent}
This event is sent by \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm} to
calculate the amount of the remaining client area that the window should
occupy.
\wxheading{Derived from}
\helpref{wxEvent}{wxevent}\\
\helpref{wxObject}{wxobject}
\wxheading{Event table macros}
\twocolwidtha{7cm}%
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_CALCULATE\_LAYOUT(func)}}{Process a wxEVT\_CALCULATE\_LAYOUT event,
which asks the window to take a 'bite' out of a rectangle provided by the algorithm.}
\end{twocollist}
\wxheading{See also}
\helpref{wxQueryLayoutInfoEvent}{wxquerylayoutinfoevent},\rtfsp
\helpref{wxSashLayoutWindow}{wxsashlayoutwindow},\rtfsp
\helpref{wxLayoutAlgorithm}{wxlayoutalgorithm}.
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxCalculateLayoutEvent::wxCalculateLayoutEvent}
\func{}{wxCalculateLayoutEvent}{\param{wxWindowID }{id = 0}}
Constructor.
\membersection{wxCalculateLayoutEvent::GetFlags}\label{wxcalculatelayouteventgetflags}
\constfunc{int}{GetFlags}{\void}
Returns the flags associated with this event. Not currently used.
\membersection{wxCalculateLayoutEvent::GetRect}\label{wxcalculatelayouteventgetrect}
\constfunc{wxRect}{GetRect}{\void}
Before the event handler is entered, returns the remaining parent client area that the window
could occupy. When the event handler returns, this should contain the remaining parent client rectangle,
after the event handler has subtracted the area that its window occupies.
\membersection{wxCalculateLayoutEvent::SetFlags}\label{wxcalculatelayouteventsetflags}
\func{void}{SetFlags}{\param{int }{flags}}
Sets the flags associated with this event. Not currently used.
\membersection{wxCalculateLayoutEvent::SetRect}\label{wxcalculatelayouteventsetrect}
\func{void}{SetRect}{\param{const wxRect\& }{rect}}
Call this to specify the new remaining parent client area, after the space occupied by the
window has been subtracted.

View File

@@ -29,12 +29,14 @@ The following are a variety of windows that are derived from wxWindow.
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxGrid}{wxgrid}}{A grid (table) window}
\twocolitem{\helpref{wxPanel}{wxpanel}}{A window whose colour changes according to current user settings}
\twocolitem{\helpref{wxSashWindow}{wxsashwindow}}{Window with four optional sashes that can be dragged}
\twocolitem{\helpref{wxSashLayoutWindow}{wxsashlayoutwindow}}{Window that can be involved in an IDE-like layout arrangement}
\twocolitem{\helpref{wxScrolledWindow}{wxscrolledwindow}}{Window with automatically managed scrollbars}
\twocolitem{\helpref{wxSplitterWindow}{wxsplitterwindow}}{Window which can be split vertically or horizontally}
\twocolitem{\helpref{wxStatusBar}{wxstatusbar}}{Implements the status bar on a frame}
\twocolitem{\helpref{wxToolBar}{wxtoolbar}}{Toolbar class}
\twocolitem{\helpref{wxTabbedPanel}{wxtabbedpanel}}{Tabbed panel (to be replaced with wxNotebook)}
\twocolitem{\helpref{wxNotebook}{wxnotebook}}{Notebook class (undocumented)}
%\twocolitem{\helpref{wxTabbedPanel}{wxtabbedpanel}}{Tabbed panel (to be replaced with wxNotebook)}
\twocolitem{\helpref{wxNotebook}{wxnotebook}}{Notebook class}
\end{twocollist}
{\large {\bf Common dialogs}}
@@ -158,6 +160,7 @@ An event object contains information about a specific event. Event handlers
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxActivateEvent}{wxactivateevent}}{A window or application activation event}
\twocolitem{\helpref{wxCalculateLayoutEvent}{wxcalculatelayoutevent}}{Used to calculate window layout}
\twocolitem{\helpref{wxCloseEvent}{wxcloseevent}}{A close window or end session event}
\twocolitem{\helpref{wxCommandEvent}{wxcommandevent}}{An event from a variety of standard controls}
\twocolitem{\helpref{wxDropFilesEvent}{wxdropfilesevent}}{A drop files event}
@@ -172,9 +175,12 @@ An event object contains information about a specific event. Event handlers
\twocolitem{\helpref{wxMenuEvent}{wxmenuevent}}{A menu event}
\twocolitem{\helpref{wxMouseEvent}{wxmouseevent}}{A mouse event}
\twocolitem{\helpref{wxMoveEvent}{wxmoveevent}}{A move event}
\twocolitem{\helpref{wxNotebookEvent}{wxnotebookevent}}{A notebook control event}
\twocolitem{\helpref{wxPaintEvent}{wxpaintevent}}{A paint event}
%\twocolitem{\helpref{wxSessionEvent}{wxsessionevent}}{A session ending event}
\twocolitem{\helpref{wxProcessEvent}{wxprocessevent}}{A process ending event}
\twocolitem{\helpref{wxQueryLayoutInfoEvent}{wxquerylayoutinfoevent}}{Used to query layout information}
\twocolitem{\helpref{wxSizeEvent}{wxsizeevent}}{A size event}
\twocolitem{\helpref{wxSocketEvent}{wxsocketevent}}{A socket event}
\twocolitem{\helpref{wxSysColourChangedEvent}{wxsyscolourchangedevent}}{A system colour change event}
\twocolitem{\helpref{wxTabEvent}{wxtabevent}}{A tab control event}
\twocolitem{\helpref{wxTreeEvent}{wxtreeevent}}{A tree control event}
@@ -183,6 +189,8 @@ An event object contains information about a specific event. Event handlers
{\large {\bf Validators}}
\overview{Overview}{validatoroverview}
These are the window validators, used for filtering and validating
user input.
@@ -235,14 +243,16 @@ wxWindows supports some aspects of debugging an application through
classes, functions and macros.
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxDebugContext}{wxdebugcontext}}{Provides various debugging facilities}
\twocolitem{\helpref{wxDebugStreamBuf}{wxdebugstreambuf}}{A stream buffer writing to the debug stream}
\twocolitem{\helpref{wxObject}{wxobject}}{Provides optional debugging versions of {\bf new} and {\bf delete}}
\twocolitem{\helpref{wxTrace}{wxtrace}}{Tracing facility}
\twocolitem{\helpref{wxTraceLevel}{wxtracelevel}}{Tracing facility with levels}
\twocolitem{\helpref{wxDebugContext}{wxdebugcontext}}{Provides memory-checking facilities}
%\twocolitem{\helpref{wxDebugStreamBuf}{wxdebugstreambuf}}{A stream buffer writing to the debug stream}
\twocolitem{\helpref{wxLog}{wxlog}}{Logging facility}
\twocolitem{\helpref{Log functions}{logfunctions}}{Error and warning logging functions}
\twocolitem{\helpref{Debugging macros}{debugmacros}}{Debug macros for assertion and checking}
%\twocolitem{\helpref{wxTrace}{wxtrace}}{Tracing facility}
%\twocolitem{\helpref{wxTraceLevel}{wxtracelevel}}{Tracing facility with levels}
\twocolitem{\helpref{WXDEBUG\_NEW}{debugnew}}{Use this macro to give further debugging information}
\twocolitem{\helpref{WXTRACE}{trace}}{Trace macro}
\twocolitem{\helpref{WXTRACELEVEL}{tracelevel}}{Trace macro with levels}
%\twocolitem{\helpref{WXTRACE}{trace}}{Trace macro}
%\twocolitem{\helpref{WXTRACELEVEL}{tracelevel}}{Trace macro with levels}
\end{twocollist}
{\large {\bf Interprocess communication}}
@@ -256,6 +266,9 @@ based on DDE.
\twocolitem{\helpref{wxDDEClient}{wxddeclient}}{Represents a client}
\twocolitem{\helpref{wxDDEConnection}{wxddeconnection}}{Represents the connection between a client and a server}
\twocolitem{\helpref{wxDDEServer}{wxddeserver}}{Represents a server}
\twocolitem{\helpref{wxSocketClient}{wxsocketclient}}{Represents a socket client}
\twocolitem{\helpref{wxSocketHandler}{wxsockethandler}}{Represents a socket handler}
\twocolitem{\helpref{wxSocketServer}{wxsocketserver}}{Represents a socket server}
\end{twocollist}
{\large {\bf Document/view framework}}
@@ -265,9 +278,6 @@ based on DDE.
wxWindows supports a document/view framework which provides
housekeeping for a document-centric application.
TODO: MDI frame classes for documents; make it unnecessary to convert
between streams and files (overridable method that uses filenames instead of streams).
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxDocument}{wxdocument}}{Represents a document}
\twocolitem{\helpref{wxView}{wxview}}{Represents a view}
@@ -275,6 +285,8 @@ between streams and files (overridable method that uses filenames instead of str
\twocolitem{\helpref{wxDocManager}{wxdocmanager}}{Manages the documents and views in an application}
\twocolitem{\helpref{wxDocChildFrame}{wxdocchildframe}}{A child frame for showing a document view}
\twocolitem{\helpref{wxDocParentFrame}{wxdocparentframe}}{A parent frame to contain views}
%\twocolitem{\helpref{wxMDIDocChildFrame}{wxmdidocchildframe}}{An MDI child frame for showing a document view}
%\twocolitem{\helpref{wxMDIDocParentFrame}{wxmdidocparentframe}}{An MDI parent frame to contain views}
\end{twocollist}
{\large {\bf Printing framework}}
@@ -314,12 +326,14 @@ product.
{\large {\bf Miscellaneous}}
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxAcceleratorTable}{wxacceleratortable}}{Accelerator table}
\twocolitem{\helpref{wxApp}{wxapp}}{Application class}
\twocolitem{\helpref{wxHelpControllerBase}{wxhelpcontrollerbase}}{Base class for help controllers}
\twocolitem{\helpref{wxConfig}{wxconfigbase}}{Classes for configuration reading/writing}
\twocolitem{\helpref{wxHelpController}{wxhelpcontroller}}{Family of classes for controlling help windows}
\twocolitem{\helpref{wxLayoutAlgorithm}{wxlayoutalgorithm}}{An alternative window layout facility}
\twocolitem{\helpref{wxProcess}{wxprocess}}{Process class}
\twocolitem{\helpref{wxTimer}{wxtimer}}{Timer class}
\twocolitem{\helpref{wxSystemSettings}{wxsystemsettings}}{System settings class}
\twocolitem{\helpref{wxWinHelpController}{wxwinhelpcontroller}}{Controls WinHelp instances}
\twocolitem{\helpref{wxConfig}{wxconfigbase}}{Classes for configuration reading/writing}
\end{twocollist}

View File

@@ -0,0 +1,95 @@
\section{\class{wxCheckListBox}}\label{wxchecklistbox}
A checklistbox is like a listbox, but allows items to be checked or unchecked.
This class is currently only implemented under Windows, and wxWindows must be
compiled with USE\_OWNER\_DRAWN set to 1.
Only the new functions for this class are documented; see also \helpref{wxListBox}{wxlistbox}.
\wxheading{Derived from}
\helpref{wxListBox}{wxlistbox}\\
\helpref{wxControl}{wxcontrol}\\
\helpref{wxWindow}{wxwindow}\\
\helpref{wxEvtHandler}{wxevthandler}\\
\helpref{wxObject}{wxobject}
\wxheading{Window styles}
See \helpref{wxListBox}{wxlistbox}.
\wxheading{Event handling}
See \helpref{wxListBox}{wxlistbox}.
\wxheading{See also}
\helpref{wxListBox}{wxlistbox}, \helpref{wxChoice}{wxchoice}, \helpref{wxComboBox}{wxcombobox}, \helpref{wxListCtrl}{wxlistctrl},
\rtfsp\helpref{wxCommandEvent}{wxcommandevent}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxCheckListBox::wxCheckListBox}\label{wxchecklistboxconstr}
\func{}{wxCheckListBox}{\void}
Default constructor.
\func{}{wxCheckListBox}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp
\param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp
\param{int}{ n}, \param{const wxString }{choices[] = NULL},\rtfsp
\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``listBox"}}
Constructor, creating and showing a list box.
\wxheading{Parameters}
\docparam{parent}{Parent window. Must not be NULL.}
\docparam{id}{Window identifier. A value of -1 indicates a default value.}
\docparam{pos}{Window position.}
\docparam{size}{Window size. If the default size (-1, -1) is specified then the window is sized
appropriately.}
\docparam{n}{Number of strings with which to initialise the control.}
\docparam{choices}{An array of strings with which to initialise the control.}
\docparam{style}{Window style. See \helpref{wxCheckListBox}{wxchecklistbox}.}
\docparam{validator}{Window validator.}
\docparam{name}{Window name.}
\membersection{wxCheckListBox::\destruct{wxCheckListBox}}
\func{void}{\destruct{wxCheckListBox}}{\void}
Destructor, destroying the list box.
\membersection{wxCheckListBox::Check}\label{wxchecklistboxcheck}
\func{void}{Check}{\param{int }{item}, \param{bool}{ check = TRUE}}
Checks the given item.
\wxheading{Parameters}
\docparam{item}{Index of item to check.}
\docparam{check}{TRUE if the item is to be checked, FALSE otherwise.}
\membersection{wxCheckListBox::IsChecked}\label{wxchecklistboxischecked}
\constfunc{bool}{IsChecked}{\param{int}{ item}}
Returns TRUE if the given item is checked, FALSE otherwise.
\wxheading{Parameters}
\docparam{item}{Index of item whose check status is to be returned.}

View File

@@ -27,13 +27,16 @@ $$\image{14cm;0cm}{wxclass.ps}$$
}}
\end{comment}
\input accel.tex
\input activevt.tex
\input app.tex
\input button.tex
\input bitmap.tex
\input bbutton.tex
\input brush.tex
\input calclevt.tex
\input checkbox.tex
\input checklst.tex
\input choice.tex
\input clasinfo.tex
\input clientdc.tex
@@ -92,12 +95,13 @@ $$\image{14cm;0cm}{wxclass.ps}$$
\input joystick.tex
\input joyevent.tex
\input keyevent.tex
\input layalgor.tex
\input layout.tex
\input list.tex
\input listbox.tex
\input listctrl.tex
\input listevt.tex
% \input log.tex
\input log.tex
\input mask.tex
\input mdi.tex
\input menu.tex
@@ -113,6 +117,8 @@ $$\image{14cm;0cm}{wxclass.ps}$$
\input mltchdlg.tex
\input mutex.tex
\input node.tex
\input notebook.tex
\input noteevt.tex
\input object.tex
\input pagedlg.tex
\input paintdc.tex
@@ -123,17 +129,22 @@ $$\image{14cm;0cm}{wxclass.ps}$$
\input pathlist.tex
\input pen.tex
\input point.tex
\input postscpt.tex
\input prevwin.tex
\input print.tex
\input process.tex
\input postscpt.tex
\input procevt.tex
\input query.tex
\input qylayevt.tex
\input radiobox.tex
\input radiobut.tex
\input realpoin.tex
\input rect.tex
\input recrdset.tex
\input region.tex
\input sashevt.tex
\input sashlayw.tex
\input sashwin.tex
\input screendc.tex
\input scrolbar.tex
\input scrolevt.tex
@@ -142,6 +153,8 @@ $$\image{14cm;0cm}{wxclass.ps}$$
\input size.tex
\input sizeevt.tex
\input slider.tex
\input sckaddr.tex
\input socket.tex
\input spinbutt.tex
\input splitter.tex
\input statbmp.tex
@@ -165,16 +178,16 @@ $$\image{14cm;0cm}{wxclass.ps}$$
\input toolbar.tex
\input treectrl.tex
\input treeevt.tex
\input upditer.tex
\input upduievt.tex
\input url.tex
\input validatr.tex
\input view.tex
\input wave.tex
\input window.tex
\input windowdc.tex
\input winhelp.tex
\input function.tex
\input keycode.tex
%%% Local Variables:

View File

@@ -13,13 +13,20 @@ functions that take a wxCloseEvent argument.
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_CLOSE(func)}}{Process a close event, supplying the member function.}
\twocolitem{{\bf EVT\_CLOSE(func)}}{Process a close event, supplying the member function. This
event applies to wxFrame and wxDialog classes.}
\twocolitem{{\bf EVT\_QUERY\_END\_SESSION(func)}}{Process a query end session event, supplying the member function.
This event applies to wxApp only.}
\twocolitem{{\bf EVT\__END\_SESSION(func)}}{Process an end session event, supplying the member function.
This event applies to wxApp only.}
\end{twocollist}%
\wxheading{See also}
\helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow},\rtfsp
\helpref{wxWindow::Close}{wxwindowclose},\rtfsp
\helpref{wxApp::OnQueryEndSession}{wxapponqueryendsession},\rtfsp
\helpref{wxApp::OnEndSession}{wxapponendsession},\rtfsp
\helpref{Window deletion overview}{windowdeletionoverview}
\latexignore{\rtfignore{\wxheading{Members}}}
@@ -30,6 +37,14 @@ functions that take a wxCloseEvent argument.
Constructor.
\membersection{wxCloseEvent::CanVeto}\label{wxcloseeventcanveto}
\func{bool}{CanVeto}{\void}
Returns TRUE if you can veto a system shutdown or a window close event.
Vetoing a window close event is not possible if the calling code wishes to
force the application to exit, and so this function must be called to check this.
\membersection{wxCloseEvent::GetLoggingOff}\label{wxcloseeventgetloggingoff}
\constfunc{bool}{GetLoggingOff}{\void}
@@ -44,14 +59,37 @@ Returns TRUE if the session is ending.
\membersection{wxCloseEvent::GetForce}\label{wxcloseeventgetforce}
\constfunc{void}{GetForce}{\void}
\constfunc{bool}{GetForce}{\void}
Returns TRUE if the application wishes to force the window to close.
This will shortly be obsolete, replaced by CanVeto.
\membersection{wxCloseEvent::SetCanVeto}\label{wxcloseeventsetcanveto}
\func{void}{SetCanVeto}{\param{bool}{ canVeto}}
Sets the 'can veto' flag.
\membersection{wxCloseEvent::SetForce}\label{wxcloseeventsetforce}
\constfunc{void}{SetForce}{\param{bool}{ force}}
Sets the 'force' flag.
\membersection{wxCloseEvent::SetLoggingOff}\label{wxcloseeventsetloggingoff}
\constfunc{void}{SetLoggingOff}{\param{bool}{ loggingOff}}
Sets the 'logging off' flag.
\membersection{wxCloseEvent::Veto}\label{wxcloseeventveto}
\func{void}{Veto}{\void}
\func{void}{Veto}{\param{bool}{ veto = TRUE}}
Call this from your event handler to veto a system shutdown.
Call this from your event handler to veto a system shutdown or to signal
to the calling application that a window close did not happen.
You can only veto a shutdown if \helpref{wxCloseEvent::CanVeto}{wxcloseeventcanveto} returns
TRUE.

View File

@@ -2,8 +2,7 @@
wxConfigBase class defines the basic interface of all config classes. It can
not be used by itself (it's an abstract base class) and you'll always use one
of its derivations: wxIniConfig, wxFileConfig, wxRegConfig or
any other.
of its derivations: wxIniConfig, wxFileConfig, wxRegConfig or any other.
However, usually you don't even need to know the precise nature of the class
you're working with but you would just use the wxConfigBase methods. This
@@ -15,7 +14,7 @@ which is mapped onto the native wxConfigBase implementation on the given
platform: i.e. wxRegConfig under Win32, wxIniConfig under Win16 and
wxFileConfig otherwise.
See \helpref{config overview}{configoverview} for the descriptions of all
See \helpref{config overview}{wxconfigoverview} for the descriptions of all
features of this class.
\wxheading{Derived from}
@@ -98,7 +97,7 @@ disable this behaviour {\it DontCreateOnDemand()} is provided.
\membersection{Path management}
As explained in \helpref{config overview}{configoverview}, the config classes
As explained in \helpref{config overview}{wxconfigoverview}, the config classes
support a file system-like hierarchy of keys (files) and groups (directories).
As in the file system case, to specify a key in the config class you must use
a path to it. Config classes also support the notion of the current group,
@@ -315,35 +314,38 @@ The following functions control this option:
\param{const wxString\& }{globalFilename = wxEmptyString},
\param{long}{ style = 0}}
This is the default and only constructor of the wxConfigBase class, and derived classes.
This is the default and only constructor of the wxConfigBase class, and
derived classes.
\wxheading{Parameters}
\docparam{appName}{The application name. If this is empty, the class will normally
use \helpref{wxApp::GetAppName}{wxappgetappname} to set it. The application name
is used in the registry key on Windows, and can be used to deduce the local filename
parameter if that is missing.}
\docparam{appName}{The application name. If this is empty, the class will
normally use \helpref{wxApp::GetAppName}{wxappgetappname} to set it. The
application name is used in the registry key on Windows, and can be used to
deduce the local filename parameter if that is missing.}
\docparam{vendorName}{The vendor name. If this is empty, it is assumed that
no vendor name is wanted, if this is optional for the current config class.
The vendor name is appended to the application name for wxRegConfig.}
\docparam{localFilename}{Some config classes require a local filename. If this is not
present, but required, the application name will be used instead.}
\docparam{localFilename}{Some config classes require a local filename. If this
is not present, but required, the application name will be used instead.}
\docparam{globalFilename}{Some config classes require a global filename. If this is not
present, but required, the application name will be used instead.}
\docparam{globalFilename}{Some config classes require a global filename. If
this is not present, but required, the application name will be used instead.}
\docparam{style}{Can be one of wxCONFIG\_USE\_LOCAL\_FILE and wxCONFIG\_USE\_GLOBAL\_FILE.
The style interpretation depends on the config class and is ignored by some.
For wxFileConfig, these styles determine whether a local or global config file is created or used.
If the flag is present but the parameter is empty, the parameter will be set to a default.
If the parameter is present but the style flag not, the relevant flag will be added to the style.}
\docparam{style}{Can be one of wxCONFIG\_USE\_LOCAL\_FILE and
wxCONFIG\_USE\_GLOBAL\_FILE. The style interpretation depends on the config
class and is ignored by some. For wxFileConfig, these styles determine whether
a local or global config file is created or used. If the flag is present but
the parameter is empty, the parameter will be set to a default. If the
parameter is present but the style flag not, the relevant flag will be added
to the style.}
\wxheading{Remarks}
By default, environment variable expansion is on and recording
defaults is off.
By default, environment variable expansion is on and recording defaults is
off.
\membersection{wxConfigBase::\destruct{wxConfigBase}}\label{wxconfigbasedtor}
@@ -356,9 +358,9 @@ Empty but ensures that dtor of all derived classes is virtual.
\func{static wxConfigBase *}{Create}{\void}
Create a new config object: this function will create the "best"
implementation of wxConfig available for the current platform, see
comments near the definition of wxCONFIG\_WIN32\_NATIVE for details. It returns
the created object and also sets it as the current one.
implementation of wxConfig available for the current platform, see comments
near the definition of wxCONFIG\_WIN32\_NATIVE for details. It returns the
created object and also sets it as the current one.
\membersection{wxConfigBase::DontCreateOnDemand}\label{wxconfigbasedontcreateondemand}
@@ -377,10 +379,11 @@ for use by desinstallation routine.
\membersection{wxConfigBase::DeleteEntry}\label{wxconfigbasedeleteentry}
\func{bool}{DeleteEntry}{\param{const wxString\& }{ key}, \param{bool}{ bDeleteGroupIfEmpty = TRUE}}
\func{bool}{DeleteEntry}{\param{const wxString\& }{ key}, \param{bool}{
bDeleteGroupIfEmpty = TRUE}}
Deletes the specified entry and the group it belongs to if
it was the last key in it and the second parameter is true.
Deletes the specified entry and the group it belongs to if it was the last key
in it and the second parameter is true.
\membersection{wxConfigBase::DeleteGroup}\label{wxconfigbasedeletegroup}
@@ -416,25 +419,29 @@ Returns the application name.
\membersection{wxConfigBase::GetFirstGroup}\label{wxconfigbasegetfirstgroup}
\constfunc{bool}{GetFirstGroup}{\param{wxString\& }{str}, \param{long\&}{ index}}
\constfunc{bool}{GetFirstGroup}{\param{wxString\& }{str}, \param{long\&}{
index}}
Gets the first group.
\membersection{wxConfigBase::GetFirstEntry}\label{wxconfigbasegetfirstentry}
\constfunc{bool}{GetFirstEntry}{\param{wxString\& }{str}, \param{long\&}{ index}}
\constfunc{bool}{GetFirstEntry}{\param{wxString\& }{str}, \param{long\&}{
index}}
Gets the first entry.
\membersection{wxConfigBase::GetNextGroup}\label{wxconfigbasegetnextgroup}
\constfunc{bool}{GetNextGroup}{\param{wxString\& }{str}, \param{long\&}{ index}}
\constfunc{bool}{GetNextGroup}{\param{wxString\& }{str}, \param{long\&}{
index}}
Gets the next group.
\membersection{wxConfigBase::GetNextEntry}\label{wxconfigbasegetnextentry}
\constfunc{bool}{GetNextEntry}{\param{wxString\& }{str}, \param{long\&}{ index}}
\constfunc{bool}{GetNextEntry}{\param{wxString\& }{str}, \param{long\&}{
index}}
Gets the next entry.
@@ -446,8 +453,8 @@ Gets the next entry.
\constfunc{uint}{GetNumberOfGroups}{\param{bool }{bRecursive = FALSE}}
Get number of entries/subgroups in the current group, with or without
its subgroups.
Get number of entries/subgroups in the current group, with or without its
subgroups.
\membersection{wxConfigBase::GetPath}\label{wxconfigbasegetpath}
@@ -487,71 +494,72 @@ Returns TRUE if we are writing defaults back to the config file.
\membersection{wxConfigBase::Read}\label{wxconfigbaseread}
\constfunc{bool}{Read}{\param{const wxString\& }{key}, \param{wxString*}{ str}}
\constfunc{bool}{Read}{\param{const wxString\& }{key}, \param{wxString*}{
str}}
Read a string from the key, returning TRUE if the value was read. If the key was not
found, {\it str} is not changed.
Read a string from the key, returning TRUE if the value was read. If the key
was not found, {\it str} is not changed.
\constfunc{bool}{Read}{\param{const wxString\& }{key}, \param{wxString*}{ str}, \param{const wxString\& }{defaultVal}}
\constfunc{bool}{Read}{\param{const wxString\& }{key}, \param{wxString*}{
str}, \param{const wxString\& }{defaultVal}}
Read a string from the key. The default value is returned if the key was not found.
Read a string from the key. The default value is returned if the key was not
found.
Returns TRUE if value was really read, FALSE if the default was used.
\constfunc{wxString}{Read}{\param{const wxString\& }{key}, \param{const wxString\& }{defaultVal}}
\constfunc{wxString}{Read}{\param{const wxString\& }{key}, \param{const
wxString\& }{defaultVal}}
Another version of {\it Read()}, returning the string value directly.
\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{long*}{ l}}
Reads a long value, returning TRUE if the value was
found. If the value was not found, {\it l} is not changed.
Reads a long value, returning TRUE if the value was found. If the value was
not found, {\it l} is not changed.
\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{long*}{ l}, \param{long}{ defaultVal}}
\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{long*}{ l},
\param{long}{ defaultVal}}
Reads a long value, returning TRUE if the value was
found. If the value was not found, {\it defaultVal} is used instead.
Reads a long value, returning TRUE if the value was found. If the value was
not found, {\it defaultVal} is used instead.
\constfunc{long }{Read}{\param{const wxString\& }{key}, \param{long}{ defaultVal}}
\constfunc{long }{Read}{\param{const wxString\& }{key}, \param{long}{
defaultVal}}
Reads a long value from the key and returns it. {\it defaultVal} is returned if the key is not
found.
Reads a long value from the key and returns it. {\it defaultVal} is returned
if the key is not found.
NB: writing
{\small
\begin{verbatim}
conf->Read("key", 0);
\end{verbatim}
}
{\small \begin{verbatim} conf->Read("key", 0); \end{verbatim} }
won't work because the call is ambiguous: compiler can not choose between two {\it Read} functions. Instead, write:
won't work because the call is ambiguous: compiler can not choose between two
{\it Read} functions. Instead, write:
{\small
\begin{verbatim}
conf->Read("key", 0l);
\end{verbatim}
}
{\small \begin{verbatim} conf->Read("key", 0l); \end{verbatim} }
\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{double*}{ d}}
Reads a double value, returning TRUE if the value was
found. If the value was not found, {\it d} is not changed.
Reads a double value, returning TRUE if the value was found. If the value was
not found, {\it d} is not changed.
\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{double*}{ d}, \param{double}{ defaultVal}}
\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{double*}{ d},
\param{double}{ defaultVal}}
Reads a double value, returning TRUE if the value was
found. If the value was not found, {\it defaultVal} is used instead.
Reads a double value, returning TRUE if the value was found. If the value was
not found, {\it defaultVal} is used instead.
\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{bool*}{ b}}
Reads a bool value, returning TRUE if the value was
found. If the value was not found, {\it b} is not changed.
Reads a bool value, returning TRUE if the value was found. If the value was
not found, {\it b} is not changed.
\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{bool*}{ d}, \param{bool}{ defaultVal}}
\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{bool*}{ d},
\param{bool}{ defaultVal}}
Reads a bool value, returning TRUE if the value was
found. If the value was not found, {\it defaultVal} is used instead.
Reads a bool value, returning TRUE if the value was found. If the value was
not found, {\it defaultVal} is used instead.
\membersection{wxConfigBase::Set}\label{wxconfigbaseset}
@@ -577,8 +585,8 @@ Determine whether we wish to expand environment variables in key values.
\func{void}{SetPath}{\param{const wxString\& }{strPath}}
Set current path: if the first character is '/', it's the absolute path,
otherwise it's a relative path. '..' is supported. If the strPath
doesn't exist it is created.
otherwise it's a relative path. '..' is supported. If the strPath doesn't
exist it is created.
\membersection{wxConfigBase::SetRecordDefaults}\label{wxconfigbasesetrecorddefaults}
@@ -586,9 +594,9 @@ doesn't exist it is created.
Sets whether defaults are written back to the config file.
If on (default is off) all default values are written back to the config file. This allows
the user to see what config options may be changed and is probably useful only
for wxFileConfig.
If on (default is off) all default values are written back to the config file.
This allows the user to see what config options may be changed and is probably
useful only for wxFileConfig.
\membersection{wxConfigBase::SetVendorName}\label{wxconfigbasesetvendorname}
@@ -598,7 +606,8 @@ Sets the vendor name.
\membersection{wxConfigBase::Write}\label{wxconfigbasewrite}
\func{bool}{Write}{\param{const wxString\& }{ key}, \param{const wxString\& }{ value}}
\func{bool}{Write}{\param{const wxString\& }{ key}, \param{const wxString\& }{
value}}
\func{bool}{Write}{\param{const wxString\& }{ key}, \param{long}{ value}}
@@ -606,7 +615,7 @@ Sets the vendor name.
\func{bool}{Write}{\param{const wxString\& }{ key}, \param{bool}{ value}}
These functions write the specified value to the config file and
return TRUE on success.
These functions write the specified value to the config file and return TRUE
on success.

View File

@@ -74,6 +74,8 @@ the WXTRACELEVEL macro to specify how detailed the trace information is; setting
a different level will only have an effect if trace statements in the application
specify a value other than one.
This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality.
\wxheading{See also}
\helpref{wxDebugContext::SetLevel}{wxdebugcontextsetlevel}
@@ -84,6 +86,8 @@ specify a value other than one.
Returns the output stream associated with the debug context.
This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality.
\wxheading{See also}
\helpref{wxDebugContext::SetStream}{wxdebugcontextsetstream}
@@ -96,6 +100,8 @@ Returns a pointer to the output stream buffer associated with the debug context.
There may not necessarily be a stream buffer if the stream has been set
by the user.
This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality.
\membersection{wxDebugContext::HasStream}\label{wxdebugcontexthasstream}
\func{bool}{HasStream}{\void}
@@ -103,6 +109,8 @@ by the user.
Returns TRUE if there is a stream currently associated
with the debug context.
This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality.
\wxheading{See also}
\helpref{wxDebugContext::SetStream}{wxdebugcontextsetstream}, \helpref{wxDebugContext::GetStream}{wxdebugcontextgetstream}
@@ -195,6 +203,8 @@ the WXTRACELEVEL macro to specify how detailed the trace information is; setting
a different level will only have an effect if trace statements in the application
specify a value other than one.
This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality.
\wxheading{See also}
\helpref{wxDebugContext::GetLevel}{wxdebugcontextgetlevel}
@@ -206,6 +216,8 @@ specify a value other than one.
Sets the debugging stream to be the debugger (Windows) or standard error (other platforms).
This is the default setting. The existing stream will be flushed and deleted.
This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality.
\membersection{wxDebugContext::SetStream}\label{wxdebugcontextsetstream}
\func{void}{SetStream}{\param{ostream* }{stream}, \param{streambuf* }{streamBuf = NULL}}
@@ -213,6 +225,8 @@ This is the default setting. The existing stream will be flushed and deleted.
Sets the stream and optionally, stream buffer associated with the debug context.
This operation flushes and deletes the existing stream (and stream buffer if any).
This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality.
\wxheading{Parameters}
\docparam{stream}{Stream to associate with the debug context. Do not set this to NULL.}
@@ -231,6 +245,8 @@ Windows, an ostream constructed with this buffer outputs
to the debugger, or other program that intercepts debugging
output. On other platforms, the output goes to standard error (cerr).
This is soon to be obsolete, replaced by \helpref{wxLog}{wxlog} functionality.
\wxheading{Derived from}
streambuf

View File

@@ -12,7 +12,7 @@ and \helpref{wxDocTemplate}{wxdoctemplate} classes.
\wxheading{See also}
\helpref{wxDocManager overview}{wxdocmanageroverview}, \helpref{wxDocument}{wxdocument},\rtfsp
\helpref{wxView}{wxview}, \helpref{wxDocTemplate}{wxdoctemplate}
\helpref{wxView}{wxview}, \helpref{wxDocTemplate}{wxdoctemplate}, \helpref{wxFileHistory}{wxfilehistory}
\latexignore{\rtfignore{\wxheading{Members}}}
@@ -139,28 +139,54 @@ of view is presented to the user.
Removes the template from the list of templates.
\membersection{wxDocManager::FileHistoryLoad}
\membersection{wxDocManager::FileHistoryAddFilesToMenu}\label{wxdocmanagerfilehistoryaddfilestomenu}
\func{void}{FileHistoryLoad}{\param{const wxString\& }{resourceFile}, \param{const wxString\& }{sectionName}}
\func{void}{FileHistoryAddFilesToMenu}{\void}
Loads the file history from a resource file, using the given section. This must be called
Appends the files in the history list, to all menus managed by the file history object.
\func{void}{FileHistoryAddFilesToMenu}{\param{wxMenu*}{ menu}}
Appends the files in the history list, to the given menu only.
\membersection{wxDocManager::FileHistoryLoad}\label{wxdocmanagerfilehistoryload}
\func{void}{FileHistoryLoad}{\param{wxConfigBase\& }{config}}
Loads the file history from a config object.
\wxheading{See also}
\helpref{wxConfig}{wxconfigbase}
\membersection{wxDocManager::FileHistoryRemoveMenu}\label{wxdocmanagerfilehistoryremovemenu}
\func{void}{FileHistoryRemoveMenu}{\param{wxMenu*}{ menu}}
Removes the given menu from the list of menus managed by the file history object.
\membersection{wxDocManager::FileHistorySave}\label{wxdocmanagerfilehistorysave}
\func{void}{FileHistorySave}{\param{wxConfigBase\& }{resourceFile}}
Saves the file history into a config object. This must be called
explicitly by the application.
\membersection{wxDocManager::FileHistorySave}
\wxheading{See also}
\func{void}{FileHistorySave}{\param{const wxString\& }{resourceFile}, \param{const wxString\& }{sectionName}}
\helpref{wxConfig}{wxconfigbase}
Saves the file history into a resource file, using the given section. This must be called
explicitly by the application.
\membersection{wxDocManager::FileHistoryUseMenu}\label{wxdocmanagerfilehistoryusemenu}
\membersection{wxDocManager::FileHistoryUseMenu}
\func{void}{FileHistoryUseMenu}{\param{wxMenu *}{menu}}
\func{void}{FileHistoryUseMenu}{\param{wxMenu*}{ menu}}
Use this menu for appending recently-visited document filenames, for convenient
access. Calling this function with a valid menu pointer enables the history
list functionality.
Note that you can add multiple menus using this function, to be managed by the
file history object.
\membersection{wxDocManager::FindTemplateForPath}
\func{wxDocTemplate *}{FindTemplateForPath}{\param{const wxString\& }{path}}

View File

@@ -324,4 +324,8 @@ Sets the title for this document. The document title is used for an associated
frame (if any), and is usually constructed by the framework from
the filename.
\membersection{wxDocument::UpdateAllViews}\label{wxdocumentupdateallviews}
\func{void}{UpdateAllViews}{\param{wxView* }{sender = NULL}}
Updates all views. If {\it sender} is non-NULL, does not update this view.

View File

@@ -3,13 +3,17 @@
The wxFileHistory encapsulates a user interface convenience, the
list of most recently visited files as shown on a menu (usually the File menu).
wxFileHistory can manage one or more file menus. More than one menu may be required
in an MDI application, where the file history should appear on each MDI child menu
as well as the MDI parent frame.
\wxheading{Derived from}
\helpref{wxObject}{wxobject}
\wxheading{See also}
\overview{wxFileHistory overview}{wxfilehistoryoverview}
\helpref{wxFileHistory overview}{wxfilehistoryoverview}, \helpref{wxDocManager}{wxdocmanager}
\latexignore{\rtfignore{\wxheading{Members}}}
@@ -56,38 +60,65 @@ Destructor.
Adds a file to the file history list, if the object has a pointer to an appropriate file menu.
\membersection{wxFileHistory::FileHistoryLoad}
\membersection{wxFileHistory::AddFilesToMenu}\label{wxfilehistoryaddfilestomenu}
\func{void}{FileHistoryLoad}{\param{const wxString\& }{resourceFile}, \param{const wxString\& }{sectionName}}
\func{void}{AddFilesToMenu}{\void}
Loads the file history from a resource file, using the given section. This must be called
explicitly by the application.
Appends the files in the history list, to all menus managed by the file history object.
\membersection{wxFileHistory::FileHistorySave}
\func{void}{AddFilesToMenu}{\param{wxMenu*}{ menu}}
\func{void}{FileHistorySave}{\param{const wxString\& }{resourceFile}, \param{const wxString\& }{sectionName}}
Appends the files in the history list, to the given menu only.
Saves the file history into a resource file, using the given section. This must be called
explicitly by the application.
\membersection{wxFileHistory::GetHistoryFile}\label{wxfilehistorygethistoryfile}
\membersection{wxFileHistory::FileHistoryUseMenu}
\constfunc{wxString}{GetHistoryFile}{\param{int}{ index}}
\func{void}{FileHistoryUseMenu}{\param{wxMenu* }{menu}}
Use this menu for appending recently-visited document filenames, for convenient
access. Calling this function with a valid menu pointer enables the history
list functionality.
Returns the file at this index (zero-based).
\membersection{wxFileHistory::GetMaxFiles}
\func{int}{GetMaxFiles}{\void}
\constfunc{int}{GetMaxFiles}{\void}
Returns the maximum number of files that can be stored.
\membersection{wxFileHistory::GetNoHistoryFiles}
\func{int}{GetNoHistoryFiles}{\void}
\constfunc{int}{GetNoHistoryFiles}{\void}
Returns the number of files currently stored in the file history.
\membersection{wxFileHistory::Load}
\func{void}{Load}{\param{wxConfigBase\& }{config}}
Loads the file history from the given config object. This function should be called explicitly by the application.
\wxheading{See also}
\helpref{wxConfig}{wxconfigbase}
\membersection{wxFileHistory::RemoveMenu}
\func{void}{RemoveMenu}{\param{wxMenu* }{menu}}
Removes this menu from the list of those managed by this object.
\membersection{wxFileHistory::Save}
\func{void}{Save}{\param{wxConfigBase\& }{config}}
Saves the file history into the given config object. This must be called
explicitly by the application.
\wxheading{See also}
\helpref{wxConfig}{wxconfigbase}
\membersection{wxFileHistory::UseMenu}
\func{void}{UseMenu}{\param{wxMenu* }{menu}}
Adds this menu to the list of those managed by this object.

View File

@@ -750,6 +750,8 @@ each wxDebugMsg call. wxDebugMsg seems to be broken under WIN32s
(at least for Watcom C++): preformat your messages and use OutputDebugString
instead.
This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
\membersection{::wxDisplaySize}
\func{void}{wxDisplaySize}{\param{int *}{width}, \param{int *}{height}}
@@ -1121,6 +1123,8 @@ Converts the character to upper case. This is implemented as a macro for efficie
Takes printf-style variable argument syntax. Output
is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
\membersection{::wxTraceLevel}\label{wxtracelevel}
\func{void}{wxTraceLevel}{\param{int}{ level}, \param{const wxString\& }{fmt}, \param{...}{}}
@@ -1131,6 +1135,8 @@ The first argument should be the level at which this information is appropriate.
It will only be output if the level returned by wxDebugContext::GetLevel is equal to or greater than
this value.
This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
\membersection{::wxWriteResource}\label{wxwriteresource}
\func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
@@ -1355,6 +1361,8 @@ base classes.
Calls wxTrace with printf-style variable argument syntax. Output
is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
This macro is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
\membersection{WXTRACELEVEL}\label{tracelevel}
\func{}{WXTRACELEVEL}{level, formatString, ...}
@@ -1365,6 +1373,8 @@ The first argument should be the level at which this information is appropriate.
It will only be output if the level returned by wxDebugContext::GetLevel is equal to or greater than
this value.
This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
\section{wxWindows resource functions}\label{resourcefuncs}
\overview{wxWindows resource system}{resourceformats}
@@ -1560,3 +1570,148 @@ is no connection between names used in resources, and the global bitmap data.
Another name for \helpref{wxResourceRegisterBitmapData}{registerbitmapdata}.
\section{Log functions}\label{logfunctions}
These functions provide a variety of logging functions: see \helpref{Log classes overview}{wxlogoverview} for
further information.
\membersection{::wxLogError}\label{wxlogerror}
\func{void}{wxLogError}{\param{const char*}{ formatString}, \param{...}{}}
The function to use for error messages, i.e. the
messages that must be shown to the user. The default processing is to pop up a
message box to inform the user about it.
\membersection{::wxLogFatalError}\label{wxlogfatalerror}
\func{void}{wxLogFatalError}{\param{const char*}{ formatString}, \param{...}{}}
Like \helpref{wxLogError}{wxlogerror}, but also
terminates the program with the exit code 3. Using {\it abort()} standard
function also terminates the program with this exit code.
\membersection{::wxLogWarning}\label{wxlogwarning}
\func{void}{wxLogWarning}{\param{const char*}{ formatString}, \param{...}{}}
For warnings - they are also normally shown to the
user, but don't interrupt the program work.
\membersection{::wxLogMessage}\label{wxlogmessage}
\func{void}{wxLogMessage}{\param{const char*}{ formatString}, \param{...}{}}
for all normal, informational messages. They also
appear in a message box by default (but it can be changed). Notice
that the standard behaviour is to not show informational messages if there are
any errors later - the logic being that the later error messages make the
informational messages preceding them meaningless.
\membersection{::wxLogVerbose}\label{wxlogverbose}
\func{void}{wxLogVerbose}{\param{const char*}{ formatString}, \param{...}{}}
For verbose output. Normally, it's suppressed, but
might be activated if the user wishes to know more details about the program
progress (another, but possibly confusing name for the same function is {\bf wxLogInfo}).
\membersection{::wxLogStatus}\label{wxlogstatus}
\func{void}{wxLogStatus}{\param{const char*}{ formatString}, \param{...}{}}
For status messages - they will go into the status
bar of the active or specified (as the first argument) \helpref{wxFrame}{wxframe} if it has one.
\membersection{::wxLogSysError}\label{wxlogsyserror}
\func{void}{wxLogSysError}{\param{const char*}{ formatString}, \param{...}{}}
Mostly used by wxWindows itself, but might be
handy for logging errors after system call (API function) failure. It logs the
specified message text as well as the last system error code ({\it errno} or {\it ::GetLastError()} depending
on the platform) and the corresponding error
message. The second form of this function takes the error code explitly as the
first argument.
\membersection{::wxLogDebug}\label{wxlogdebug}
\func{void}{wxLogDebug}{\param{const char*}{ formatString}, \param{...}{}}
The right function for debug output. It only
does anything at all in the debug mode (when the preprocessor symbol \_\_WXDEBUG\_\_ is defined)
and expands to nothing in release mode (otherwise).
\membersection{::wxLogTrace}\label{wxlogtrace}
\func{void}{wxLogTrace}{\param{const char*}{ formatString}, \param{...}{}}
\func{void}{wxLogTrace}{\param{wxTraceMask}{ mask}, \param{const char*}{ formatString}, \param{...}{}}
As {\bf wxLogDebug}, only does something in debug
build. The reason for making it a separate function from it is that usually
there are a lot of trace messages, so it might make sense to separate them
from other debug messages which would be flooded in them. Moreover, the second
version of this function takes a trace mask as the first argument which allows
to further restrict the amount of messages generated. The value of {\it mask} can be:
\begin{itemize}\itemsep=0pt
\item wxTraceMemAlloc: trace memory allocation (new/delete)
\item wxTraceMessages: trace window messages/X callbacks
\item wxTraceResAlloc: trace GDI resource allocation
\item wxTraceRefCount: trace various ref counting operations
\end{itemize}
\section{Debugging macros and functions}\label{debugmacros}
Useful macros and functins for error checking and defensive programming. ASSERTs are only
compiled if \_\_WXDEBUG\_\_ is defined, whereas CHECK macros stay in release
builds.
\membersection{::wxOnAssert}\label{wxonassert}
\func{void}{wxOnAssert}{\param{const char*}{ fileName}, \param{int}{ lineNumber}, \param{const char*}{ msg = NULL}}
This function may be redefined to do something non trivial and is called
whenever one of debugging macros fails (i.e. condition is false in an
assertion). TODO: this should probably be an overridable in wxApp.
\membersection{wxASSERT}\label{wxassert}
\func{}{wxASSERT}{\param{}{condition}}
Assert macro. An error message will be generated if the condition is FALSE.
\membersection{wxASSERT\_MSG}\label{wxassertmsg}
\func{}{wxASSERT\_MSG}{\param{}{condition}, \param{}{msg}}
Assert macro with message. An error message will be generated if the condition is FALSE.
\membersection{wxFAIL}\label{wxfail}
\func{}{wxFAIL}{\param{}{condition}}
Will always generate an assert error if this code is reached (in debug mode).
\membersection{wxFAIL\_MSG}\label{wxfailmsg}
\func{}{wxFAIL\_MSG}{\param{}{condition}, \param{}{msg}}
Will always generate an assert error with specified message if this code is reached (in debug mode).
\membersection{wxCHECK}\label{wxcheck}
\func{}{wxCHECK}{\param{}{condition}, \param{}{retValue}}
Checks that the condition is true, returns with the given return value if not (FAILs in debug mode).
This check is done even in release mode.
\membersection{wxCHECK\_MSG}\label{wxcheckmsg}
\func{}{wxCHECK\_MSG}{\param{}{condition}, \param{}{retValue}, \param{}{msg}}
Checks that the condition is true, returns with the given return value if not (FAILs in debug mode).
This check is done even in release mode.

View File

@@ -1,11 +1,8 @@
\section{\class{wxHelpControllerBase}}\label{wxhelpcontrollerbase}
\section{\class{wxHelpController}}\label{wxhelpcontroller}
This class defines the interface by which
This is a family of classes by which
applications may invoke a help viewer to provide on-line help.
Other classes derive from this class to provide actual implementations
of help controllers.
A help controller allows an application to display help, at the contents
or at a particular topic, and shut the help program down on termination.
This avoids proliferation of many instances of the help viewer whenever the
@@ -16,36 +13,42 @@ when it starts, and immediately call {\bf Initialize}\rtfsp
to associate a filename with it. The help viewer will only get run, however,
just before the first call to display something.
Although all help controller classes actually derive from wxHelpControllerBase and have
names of the form wxXXXHelpController, the
appropriate class is aliased to the name wxHelpController for each platform.
There are currently the following help controller classes defined:
\begin{itemize}\itemsep=0
\item wxWinHelpController, for controlling Windows Help.
\item wxExtHelpController, for controlling external browsers under Unix.
The default browser is Netscape Navigator.
\end{itemize}
\wxheading{Derivation}
wxHelpControllerBase\\
\helpref{wxObject}{wxobject}
\wxheading{See also}
\helpref{wxWinHelpController}{wxwinhelpcontroller}
\wxheading{Include file}
{\tt <wx/helpbase.h>} (for just wxHelpControllerBase)
{\tt <wx/help.h>} (to include the platform-specific controller, e.g. wxWinHelpController)
{\tt <wx/help.h>}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxHelpControllerBase::wxHelpControllerBase}
\membersection{wxHelpController::wxHelpController}
\func{}{wxHelpControllerBase}{\void}
\func{}{wxHelpController}{\void}
Constructs a help instance object, but does not invoke the help viewer.
\membersection{wxHelpControllerBase::\destruct{wxHelpControllerBase}}
\membersection{wxHelpController::\destruct{wxHelpController}}
\func{}{\destruct{wxHelpControllerBase}}{\void}
\func{}{\destruct{wxHelpController}}{\void}
Destroys the help instance, closing down the viewer if it is running.
\membersection{wxHelpControllerBase::Initialize}\label{wxhelpcontrollerbaseinitialize}
\membersection{wxHelpController::Initialize}\label{wxhelpcontrollerinitialize}
\func{virtual void}{Initialize}{\param{const wxString\& }{file}}
@@ -58,7 +61,7 @@ any attempts to communicate with the viewer.
You may omit the file extension and a suitable one will be chosen.
\membersection{wxHelpControllerBase::DisplayBlock}\label{wxhelpcontrollerbasedisplayblock}
\membersection{wxHelpController::DisplayBlock}\label{wxhelpcontrollerdisplayblock}
\func{virtual bool}{DisplayBlock}{\param{long}{ blockNo}}
@@ -66,14 +69,14 @@ If the help viewer is not running, runs it and displays the file at the given bl
The interpretation of {\it blockNo} differs between help viewers. If using Windows Help, this
refers to the context number. If wxHelp, this is the wxHelp block number.
\membersection{wxHelpControllerBase::DisplayContents}\label{wxhelpcontrollerbasedisplaycontents}
\membersection{wxHelpController::DisplayContents}\label{wxhelpcontrollerdisplaycontents}
\func{virtual bool}{DisplayContents}{\void}
If the help viewer is not running, runs it and displays the
contents.
\membersection{wxHelpControllerBase::DisplaySection}\label{wxhelpcontrollerbasedisplaysection}
\membersection{wxHelpController::DisplaySection}\label{wxhelpcontrollerdisplaysection}
\func{virtual bool}{DisplaySection}{\param{int}{ sectionNo}}
@@ -84,7 +87,7 @@ For wxHelp, section numbers may be viewed by running wxHelp in edit mode.
DisplaySection does not apply to WinHelp.
\membersection{wxHelpControllerBase::KeywordSearch}\label{wxhelpcontrollerbasekeywordsearch}
\membersection{wxHelpController::KeywordSearch}\label{wxhelpcontrollerkeywordsearch}
\func{virtual bool}{KeywordSearch}{\param{const wxString\& }{keyWord}}
@@ -93,7 +96,7 @@ match is found, the file is displayed at this section. If more than one
match is found, the Search dialog is displayed with the matches (wxHelp)
or the first topic is displayed (Windows Help).
\membersection{wxHelpControllerBase::LoadFile}\label{wxhelpcontrollerbaseloadfile}
\membersection{wxHelpController::LoadFile}\label{wxhelpcontrollerloadfile}
\func{virtual bool}{LoadFile}{\param{const wxString\& }{file = NULL}}
@@ -104,15 +107,15 @@ already displaying the specified file, it will not be reloaded. This
member function may be used before each display call in case the user
has opened another file.
\membersection{wxHelpControllerBase::OnQuit}\label{wxhelpcontrollerbaseonquit}
\membersection{wxHelpController::OnQuit}\label{wxhelpcontrolleronquit}
\func{virtual bool}{OnQuit}{\void}
Overridable member called when this application's viewer is quit by the user.
This only works for wxXLPHelpController.
This does not work for all help controllers.
\membersection{wxHelpControllerBase::Quit}\label{wxhelpcontrollerbasequit}
\membersection{wxHelpController::Quit}\label{wxhelpcontrollerquit}
\func{virtual bool}{Quit}{\void}

84
docs/latex/wx/keycode.tex Normal file
View File

@@ -0,0 +1,84 @@
\section{Keycodes}\label{keycodes}
Keypresses are represented by an enumerated type, wxKeyCode. The possible values
are the ASCII character codes, plus the following:
{\small
\begin{verbatim}
WXK_BACK = 8
WXK_TAB = 9
WXK_RETURN = 13
WXK_ESCAPE = 27
WXK_SPACE = 32
WXK_DELETE = 127
WXK_START = 300
WXK_LBUTTON
WXK_RBUTTON
WXK_CANCEL
WXK_MBUTTON
WXK_CLEAR
WXK_SHIFT
WXK_CONTROL
WXK_MENU
WXK_PAUSE
WXK_CAPITAL
WXK_PRIOR
WXK_NEXT
WXK_END
WXK_HOME
WXK_LEFT
WXK_UP
WXK_RIGHT
WXK_DOWN
WXK_SELECT
WXK_PRINT
WXK_EXECUTE
WXK_SNAPSHOT
WXK_INSERT
WXK_HELP
WXK_NUMPAD0
WXK_NUMPAD1
WXK_NUMPAD2
WXK_NUMPAD3
WXK_NUMPAD4
WXK_NUMPAD5
WXK_NUMPAD6
WXK_NUMPAD7
WXK_NUMPAD8
WXK_NUMPAD9
WXK_MULTIPLY
WXK_ADD
WXK_SEPARATOR
WXK_SUBTRACT
WXK_DECIMAL
WXK_DIVIDE
WXK_F1
WXK_F2
WXK_F3
WXK_F4
WXK_F5
WXK_F6
WXK_F7
WXK_F8
WXK_F9
WXK_F10
WXK_F11
WXK_F12
WXK_F13
WXK_F14
WXK_F15
WXK_F16
WXK_F17
WXK_F18
WXK_F19
WXK_F20
WXK_F21
WXK_F22
WXK_F23
WXK_F24
WXK_NUMLOCK
WXK_SCROLL
\end{verbatim}
}

View File

@@ -35,84 +35,7 @@ TRUE if control is pressed down.
\member{long}{m\_keyCode}
Virtual keycode. An enumerated type, one of:
\begin{verbatim}
WXK_BACK = 8
WXK_TAB = 9
WXK_RETURN = 13
WXK_ESCAPE = 27
WXK_SPACE = 32
WXK_DELETE = 127
WXK_START = 300
WXK_LBUTTON
WXK_RBUTTON
WXK_CANCEL
WXK_MBUTTON
WXK_CLEAR
WXK_SHIFT
WXK_CONTROL
WXK_MENU
WXK_PAUSE
WXK_CAPITAL
WXK_PRIOR
WXK_NEXT
WXK_END
WXK_HOME
WXK_LEFT
WXK_UP
WXK_RIGHT
WXK_DOWN
WXK_SELECT
WXK_PRINT
WXK_EXECUTE
WXK_SNAPSHOT
WXK_INSERT
WXK_HELP
WXK_NUMPAD0
WXK_NUMPAD1
WXK_NUMPAD2
WXK_NUMPAD3
WXK_NUMPAD4
WXK_NUMPAD5
WXK_NUMPAD6
WXK_NUMPAD7
WXK_NUMPAD8
WXK_NUMPAD9
WXK_MULTIPLY
WXK_ADD
WXK_SEPARATOR
WXK_SUBTRACT
WXK_DECIMAL
WXK_DIVIDE
WXK_F1
WXK_F2
WXK_F3
WXK_F4
WXK_F5
WXK_F6
WXK_F7
WXK_F8
WXK_F9
WXK_F10
WXK_F11
WXK_F12
WXK_F13
WXK_F14
WXK_F15
WXK_F16
WXK_F17
WXK_F18
WXK_F19
WXK_F20
WXK_F21
WXK_F22
WXK_F23
WXK_F24
WXK_NUMLOCK
WXK_SCROLL
\end{verbatim}
Virtual keycode. See \helpref{Keycodes}{keycodes} for a list of identifiers.
\membersection{wxKeyEvent::m\_metaDown}
@@ -174,7 +97,7 @@ Returns the Y position of the event.
Returns the virtual key code. ASCII events return normal ASCII values,
while non-ASCII events return values such as {\bf WXK\_LEFT} for the
left cursor key. See {\tt wx\_defs.h} for a full list of the virtual key codes.
left cursor key. See \helpref{Keycodes}{keycodes} for a full list of the virtual key codes.
\membersection{wxKeyEvent::MetaDown}

133
docs/latex/wx/layalgor.tex Normal file
View File

@@ -0,0 +1,133 @@
\section{\class{wxLayoutAlgorithm}}\label{wxlayoutalgorithm}
wxLayoutAlgorithm implements layout of subwindows in MDI or SDI frames.
It sends a wxCalculateLayoutEvent event
to children of the frame, asking them for information about
their size. For MDI parent frames, the algorithm allocates
the remaining space to the MDI client window (which contains the MDI child frames).
For SDI (normal) frames, a 'main' window is specified as taking up the
remaining space.
Because the event system is used, this technique can be applied to any windows,
which are not necessarily 'aware' of the layout classes (no virtual functions
in wxWindow refer to wxLayoutAlgorithm or its events). However, you
may wish to use \helpref{wxSashLayoutWindow}{wxsashlayoutwindow} for your subwindows
since this class provides handlers for the required events, and accessors
to specify the desired size of the window. The sash behaviour in the base class
can be used, optionally, to make the windows user-resizable.
wxLayoutAlgorithm is typically used in IDE (integrated development environment) applications,
where there are several resizable windows in addition to the MDI client window, or
other primary editing window. Resizable windows might include toolbars, a project
window, and a window for displaying error and warning messages.
When a window receives an OnCalculateLayout event, it should call SetRect in
the given event object, to be the old supplied rectangle minus whatever space the
window takes up. It should also set its own size accordingly.
wxSashLayoutWindow::OnCalculateLayout generates an OnQueryLayoutInfo event
which it sends to itself to determine the orientation, alignment and size of the window,
which it gets from internal member variables set by the application.
The algorithm works by starting off with a rectangle equal to the whole frame client area.
It iterates through the frame children, generating OnCalculateLayout events which subtract
the window size and return the remaining rectangle for the next window to process. It
is assumed (by wxSashLayoutWindow::OnCalculateLayout) that a window stretches the full dimension
of the frame client, according to the orientation it specifies. For example, a horizontal window
will stretch the full width of the remaining portion of the frame client area.
In the other orientation, the window will be fixed to whatever size was specified by
OnQueryLayoutInfo. An alignment setting will make the window 'stick' to the left, top, right or
bottom of the remaining client area. This scheme implies that order of window creation is important.
Say you wish to have an extra toolbar at the top of the frame, a project window to the left of
the MDI client window, and an output window above the status bar. You should therefore create
the windows in this order: toolbar, output window, project window. This ensures that the toolbar and
output window take up space at the top and bottom, and then the remaining height inbetween is used for
the project window.
wxLayoutAlgorithm is quite independent of the way in which
OnCalculateLayout chooses to interpret a window's size and alignment. Therefore you
could implement a different window class with a new OnCalculateLayout event handler,
that has a more sophisticated way of laying out the windows. It might allow
specification of whether stretching occurs in the specified orientation, for example,
rather than always assuming stretching. (This could, and probably should, be added to the existing
implementation).
{\it Note:} wxLayoutAlgorithm has nothing to do with wxLayoutConstraints. It is an alternative
way of specifying layouts for which the normal constraint system is unsuitable.
\wxheading{Derived from}
\helpref{wxObject}{wxobject}
\wxheading{Event handling}
The algorithm object does not respond to events, but itself generates the
following events in order to calculate window sizes.
\twocolwidtha{7cm}%
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_QUERY\_LAYOUT\_INFO(func)}}{Process a wxEVT\_QUERY\_LAYOUT\_INFO event,
to get size, orientation and alignment from a window. See \helpref{wxQueryLayoutInfoEvent}{wxquerylayoutinfoevent}.}
\twocolitem{{\bf EVT\_CALCULATE\_LAYOUT(func)}}{Process a wxEVT\_CALCULATE\_LAYOUT event,
which asks the window to take a 'bite' out of a rectangle provided by the algorithm.
See \helpref{wxCalculateLayoutEvent}{wxcalculatelayoutevent}.}
\end{twocollist}
\wxheading{Data types}
{\small
\begin{verbatim}
enum wxLayoutOrientation {
wxLAYOUT_HORIZONTAL,
wxLAYOUT_VERTICAL
};
enum wxLayoutAlignment {
wxLAYOUT_NONE,
wxLAYOUT_TOP,
wxLAYOUT_LEFT,
wxLAYOUT_RIGHT,
wxLAYOUT_BOTTOM,
};
\end{verbatim}
}
\wxheading{See also}
\helpref{wxSashEvent}{wxsashevent}, \helpref{wxSashLayoutWindow}{wxsashlayoutwindow}, \helpref{Event handling overview}{eventhandlingoverview}
\helpref{wxCalculateLayoutEvent}{wxcalculatelayoutevent},\rtfsp
\helpref{wxQueryLayoutInfoEvent}{wxquerylayoutinfoevent},\rtfsp
\helpref{wxSashLayoutWindow}{wxsashlayoutwindow},\rtfsp
\helpref{wxSashWindow}{wxsashwindow}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxLayoutAlgorithm::wxLayoutAlgorithm}
\func{}{wxLayoutAlgorithm}{\void}
Default constructor.
\membersection{wxLayoutAlgorithm::\destruct{wxLayoutAlgorithm}}
\func{}{\destruct{wxLayoutAlgorithm}}{\void}
Destructor.
\membersection{wxLayoutAlgorithm::LayoutMDIFrame}\label{wxlayoutalgorithmlayoutmdiframe}
\constfunc{bool}{LayoutMDIFrame}{\param{wxMDIParentFrame* }{frame}, \param{wxRect*}{ rect = NULL}}
Lays out the children of an MDI parent frame. If {\it rect} is non-NULL, the
given rectangle will be used as a starting point instead of the frame's client area.
The MDI client window is set to occupy the remaining space.
\membersection{wxLayoutAlgorithm::LayoutFrame}\label{wxlayoutalgorithmlayoutframe}
\constfunc{bool}{LayoutFrame}{\param{wxFrame* }{frame}, \param{wxWindow*}{ mainWindow}}
Lays out the children of a normal frame.
{\it mainWindow} is set to occupy the remaining space.

186
docs/latex/wx/log.tex Normal file
View File

@@ -0,0 +1,186 @@
\section{\class{wxLog}}\label{wxlog}
wxLog class defines the interface for the {\it log targets} used by wxWindows
logging functions as explained in the \helpref{wxLog overview}{wxlogoverview}.
The only situations when you need to directly use this class is when you want
to derive your own log target because the existing ones don't satisfy your
needs. Another case is if you wish to customize the behaviour of the standard
logging classes (all of which respect the wxLog settings): for example, set
which trace messages are logged and which are not or change (or even remove
completely) the timestamp on the messages.
Otherwise, it is completely hidden behind the {\it wxLogXXX()} functions and
you may not even know about its existence.
See \helpref{log overview}{wxlogoverview} for the descriptions of wxWindows
logging facilities.
\wxheading{Derived from}
No base class
\latexignore{\rtfignore{\wxheading{Function groups}}}
\membersection{Static functions}
The functions in this section work with and manipulate the active log target.
The {\it OnLog()} is called by the {\it wxLogXXX()} functions and invokes the
{\it DoLog()} of the active log target if any. Get/Set methods are used to
install/query the current active target and, finally, {\it
DontCreateOnDemand()} disables the automatic creation of a standard log target
if none actually exists. It is only useful when the application is terminating
and shouldn't be used in other situations because it may easily lead to a loss
of messages.
\helpref{OnLog}{wxlogonlog}\\
\helpref{GetActiveTarget}{wxloggetactivetarget}\\
\helpref{SetActiveTarget}{wxlogsetactivetarget}\\
\helpref{DontCreateOnDemand}{wxlogdontcreateondemand}
\membersection{Message buffering}
Some of wxLog implementations, most notably the standard
wxLogGui class, buffer the messages (for example, to avoid
showing the user a zillion of modal message boxes one after another - which
would be really annoying). {\it Flush()} shows them all and clears the buffer
contents. Although this function doesn't do anything if the buffer is already
empty, {\it HasPendingMessages()} is also provided which allows to explicitly
verify it.
\helpref{Flush}{wxlogflush}\\
\helpref{HasPendingMessages}{haspendingmessages}
\membersection{Customization}\label{wxlogcustomization}
The functions below allow some limited customization of wxLog behaviour
without writing a new log target class (which, aside of being a matter of
several minutes, allows you to do anything you want).
The verbose messages are the trace messages which are not disabled in the
release mode and are generated by {\it wxLogVerbose()}. They are not normally
shown to the user because they present little interest, but may be activated,
for example, in order to help the user find some program problem.
As for the (real) trace messages, they come in different kinds:
\begin{itemize}\itemsep=0pt
\item{wxTraceMemAlloc} for the messages about creating and deleting objects
\item{wxTraceMessages} for tracing the windowing system messages/events
\item{wxTraceResAlloc} for allocating and releasing the system ressources
\item{wxTraceRefCount} for reference counting related messages
\item{wxTraceOleCalls} for the OLE (or COM) method invocations (wxMSW only)
\item{other} the remaining bits are free for user-defined trace levels
\end{itemize}
The trace mask is a bit mask which tells which (if any) of these trace
messages are going to be actually logged. For the trace message to appear
somewhere, all the bits in the mask used in the call to {\it wxLogTrace()}
function must be set in the current trace mask. For example,
\begin{verbatim}
wxLogTrace(wxTraceRefCount | wxTraceOle, "Active object ref count: %d", nRef);
\end{verbatim}
will do something only if the current trace mask contains both wxTraceRefCount
and wxTraceOle.
Finally, the {\it wxLog::DoLog()} function automatically prepends a time stamp
to all the messages. The format of the time stamp may be changed: it can be
any string with \% specificators fully described in the documentation of the
standard {\it strftime()} function. For example, the default format is
"[\%d/\%b/\%y \%H:\%M:\%S] " which gives something like "[17/Sep/98 22:10:16] "
(without quotes) for the current date. Setting an empty string as the time
format disables timestamping of the messages completely.
\helpref{SetVerbose}{wxlogsetverbose}\\
\helpref{GetVerbose}{wxloggetverbose}\\
\helpref{SetTimeStampFormat}{wxlogsettimestampformat}\\
\helpref{GetTimeStampFormat}{wxloggettimestampformat}\\
\helpref{SetTraceMask}{wxlogsettracemask}\\
\helpref{GetTraceMask}{wxloggettracemask}
%%%%% MEMBERS HERE %%%%%
\helponly{\insertatlevel{2}{
\wxheading{Members}
}}
\membersection{wxLog::OnLog}\label{wxlogonlog}
\func{static void}{OnLog}{\param{wxLogLevel }{ level}, \param{const char * }{ message}}
Forwards the message at specified level to the {\it DoLog()} function of the
active log target if there is any, does nothing otherwise.
\membersection{wxLog::GetActiveTarget}\label{wxloggetactivetarget}
\func{static wxLog *}{GetActiveTarget}{\void}
Returns the pointer to the active log target (may be NULL).
\membersection{wxLog::SetActiveTarget}\label{wxlogsetactivetarget}
\func{static wxLog *}{SetActiveTarget}{\param{wxLog * }{ logtarget}}
Sets the specified log target as the active one. Returns the pointer to the
previous active log target (may be NULL).
\membersection{wxLog::DontCreateOnDemand}\label{wxlogdontcreateondemand}
\func{static void}{DontCreateOnDemand}{\void}
Instructs wxLog to not create new log targets on the fly if there is none
currently. (Almost) for internal use only.
\membersection{wxLog::Flush}\label{wxlogflush}
\func{virtual void}{Flush}{\void}
Shows all the messages currently in buffer and clears it. If the buffer
is already empty, nothing happens.
\membersection{wxLog::HasPendingMessages}\label{haspendingmessages}
\constfunc{bool}{HasPendingMessages}{\void}
Returns true if there are any messages in the buffer (not yet shown to the
user). (Almost) for internal use only.
\membersection{wxLog::SetVerbose}\label{wxlogsetverbose}
\func{void}{SetVerbose}{\param{bool }{ verbose = TRUE}}
Activates or desactivates verbose mode in which the verbose messages are
logged as the normal ones instead of being silently dropped.
\membersection{wxLog::GetVerbose}\label{wxloggetverbose}
\constfunc{bool}{GetVerbose}{\void}
Returns whether the verbose mode is currently active.
\membersection{wxLog::SetTimeStampFormat}\label{wxlogsettimestampformat}
\func{void}{SetTimeStampFormat}{\param{const char * }{ format}}
Sets the timestamp format prepended by the default log targets to all
messages. The string may contain any normal characters as well as \%
prefixed format specificators, see {\it strftime()} manual for details.
Passing an empty string to this function disables message timestamping.
\membersection{wxLog::GetTimeStampFormat}\label{wxloggettimestampformat}
\constfunc{const char *}{GetTimeStampFormat}{\void}
Returns the current timestamp format string.
\membersection{wxLog::SetTraceMask}\label{wxlogsettracemask}
\func{static void}{SetTraceMask}{\param{wxTraceMask }{ mask}}
Sets the trace mask, see \helpref{Customization}{wxlogcustomization}
section for details.
\membersection{wxLog::GetTraceMask}\label{wxloggettracemask}
Returns the current trace mask, see \helpref{Customization}{wxlogcustomization} section
for details.

View File

@@ -30,7 +30,7 @@
%\winhelponly{\\$$\image{1cm;0cm}{wxwin.wmf}$$}
}}
\winhelpignore{\author{Julian Smart}
\date{July 31st 1998}
\date{November 4th 1998}
}
\makeindex
\begin{document}

View File

@@ -525,6 +525,18 @@ Use only after the menubar has been associated with a frame.
\helpref{wxMenuBar::SetLabelTop}{wxmenubarsetlabeltop}
\membersection{wxMenuBar::GetMenu}\label{wxmenubargetmenu}
\constfunc{wxMenu*}{GetMenu}{\param{int}{ menuIndex}}
Returns the menu at {\it menuIndex} (zero-based).
\membersection{wxMenuBar::GetMenuCount}\label{wxmenubargetmenucount}
\constfunc{int}{GetMenuCount}{\void}
Returns the number of menus in this menubar.
\membersection{wxMenuBar::IsChecked}\label{wxmenubarischecked}
\constfunc{bool}{IsChecked}{\param{int}{ id}}

View File

@@ -58,7 +58,7 @@ need for an application to call it.
\membersection{wxModule::OnExit}\label{wxmoduleonexit}
\func{virtual bool}{OnExit}{\void}
\func{virtual void}{OnExit}{\void}
Provide this function with appropriate cleanup for your module.

259
docs/latex/wx/notebook.tex Normal file
View File

@@ -0,0 +1,259 @@
\section{\class{wxNotebook}}\label{wxnotebook}
This class represents a notebook control, which manages multiple windows with associated tabs.
To use the class, create a wxNotebook object and call \helpref{AddPage}{wxnotebookaddpage} or \helpref{InsertPage}{wxnotebookinsertpage},
passing a window to be used as the page. Do not explicitly delete the window for a page that is currently
managed by wxNotebook.
{\bf wxNotebookPage} is a typedef for wxWindow.
\wxheading{Derived from}
\helpref{wxControl}{wxcontrol}\\
\helpref{wxWindow}{wxwindow}\\
\helpref{wxEvtHandler}{wxevthandler}\\
\helpref{wxObject}{wxobject}
\wxheading{Event handling}
To process input from a notebook control, use the following event handler macros to direct input to member
functions that take a \helpref{wxNotebookEvent}{wxnotebookevent} argument.
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_NOTEBOOK\_PAGE\_CHANGED(id, func)}}{The page selection was changed. Processes a
wxEVT\_COMMAND\_NOTEBOOK\_PAGE\_CHANGED event.}
\twocolitem{{\bf EVT\_NOTEBOOK\_PAGE\_CHANGING(id, func)}}{The page selection is about to be changed.
Processes a wxEVT\_COMMAND\_NOTEBOOK\_PAGE\_CHANGING event.}
\end{twocollist}%
\wxheading{See also}
\helpref{wxNotebookEvent}{wxnotebookevent}, \helpref{wxImageList}{wximagelist},\rtfsp
\helpref{wxTabCtrl}{wxtabctrl}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxNotebook::wxNotebook}\label{wxnotebookconstr}
\func{}{wxNotebook}{\void}
Default constructor.
\func{}{wxNotebook}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id}, \param{const wxPoint\&}{ pos = wxDefaultPosition},
\param{const wxSize\&}{ size}, \param{long}{ style = 0}, \param{const wxString\& }{name = "notebook"}}
Constructs a notebook control.
\wxheading{Parameters}
\docparam{parent}{The parent window. Must be non-NULL.}
\docparam{id}{The window identifier.}
\docparam{pos}{The window position.}
\docparam{size}{The window size.}
\docparam{style}{The window style. Its value is a bit list of zero or more of {\bf wxTC\_MULTILINE},
{\bf wxTC\_RIGHTJUSTIFY}, {\bf wxTC\_FIXEDWIDTH} and {\bf wxTC\_OWNERDRAW}.}
\membersection{wxNotebook::\destruct{wxNotebook}}
\func{}{\destruct{wxNotebook}}{\void}
Destroys the wxNotebook object.
\membersection{wxNotebook::AddPage}\label{wxnotebookaddpage}
\func{bool}{AddPage}{\param{wxNotebookPage*}{ page},
\param{const wxString\&}{ text},
\param{bool}{ select = FALSE},
\param{int}{ imageId = -1}}
Adds a new page.
\wxheading{Parameters}
\docparam{page}{Specifies the new page.}
\docparam{text}{Specifies the text for the new page.}
\docparam{select}{Specifies whether the page should be selected.}
\docparam{imageId}{Specifies the optional image index for the new page.}
\wxheading{Return value}
TRUE if successful, FALSE otherwise.
\wxheading{Remarks}
Do not delete the page, it will be deleted by the notebook.
\wxheading{See also}
\helpref{wxNotebook::InsertPage}{wxnotebookinsertpage}
\membersection{wxNotebook::AdvanceSelection}\label{wxnotebookadvanceselection}
\func{void}{AdvanceSelection}{\param{bool}{ forward = TRUE}}
Cycles through the tabs.
\membersection{wxNotebook::Create}\label{wxnotebookcreate}
\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id}, \param{const wxPoint\&}{ pos = wxDefaultPosition},
\param{const wxSize\&}{ size}, \param{long}{ style = 0}, \param{const wxString\& }{name = "notebook"}}
Creates a notebook control. See \helpref{wxNotebook::wxNotebook}{wxnotebookconstr} for a description
of the parameters.
\membersection{wxNotebook::DeleteAllPages}\label{wxnotebookdeleteallpages}
\func{bool}{DeleteAllPages}{\void}
Deletes all pages.
\membersection{wxNotebook::DeletePage}\label{wxnotebookdeletepage}
\func{bool}{DeletePage}{\param{int}{ page}}
Deletes the specified page.
\membersection{wxNotebook::GetImageList}\label{wxnotebookgetimagelist}
\constfunc{wxImageList*}{GetImageList}{\void}
Returns the associated image list.
\wxheading{See also}
\helpref{wxImageList}{wximagelist}, \helpref{wxNotebook::SetImageList}{wxnotebooksetimagelist}
\membersection{wxNotebook::GetPage}\label{wxnotebookgetpage}
\func{wxNotebookPage*}{GetPage}{\param{int}{ page}}
Returns the window at the given page position.
\membersection{wxNotebook::GetPageCount}\label{wxnotebookgetpagecount}
\constfunc{int}{GetPageCount}{\void}
Returns the number of pages in the notebook control.
\membersection{wxNotebook::GetPageImage}\label{wxnotebookgetpageimage}
\constfunc{int}{GetPageImage}{\void}
Returns the image index for the given page.
\membersection{wxNotebook::GetPageText}\label{wxnotebookgetpagetext}
\constfunc{wxString}{GetPageText}{\void}
Returns the string for the given page.
\membersection{wxNotebook::GetRowCount}\label{wxnotebookgetrowcount}
\constfunc{int}{GetRowCount}{\void}
Returns the number of rows in the notebook control.
\membersection{wxNotebook::GetSelection}\label{wxnotebookgetselection}
\constfunc{int}{GetSelection}{\void}
Returns the currently selected page, or -1 if none was selected.
\membersection{wxNotebook::InsertPage}\label{wxnotebookinsertpage}
\func{bool}{InsertPage}{\param{int}{ index}, \param{wxNotebookPage*}{ page},
\param{const wxString\&}{ text},
\param{bool}{ select = FALSE},
\param{int}{ imageId = -1}}
Inserts a new page at the specified position.
\wxheading{Parameters}
\docparam{index}{Specifies the position for the new page.}
\docparam{page}{Specifies the new page.}
\docparam{text}{Specifies the text for the new page.}
\docparam{select}{Specifies whether the page should be selected.}
\docparam{imageId}{Specifies the optional image index for the new page.}
\wxheading{Return value}
TRUE if successful, FALSE otherwise.
\wxheading{Remarks}
Do not delete the page, it will be deleted by the notebook.
\wxheading{See also}
\helpref{wxNotebook::AddPage}{wxnotebookaddpage}
\membersection{wxNotebook::OnSelChange}\label{wxnotebookonselchange}
\func{void}{OnSelChange}{\param{wxNotebookEvent\&}{ event}}
An event handler function, called when the page selection is changed.
\wxheading{See also}
\helpref{wxNotebookEvent}{wxnotebookevent}
\membersection{wxNotebook::SetImageList}\label{wxnotebooksetimagelist}
\func{void}{SetImageList}{\param{wxImageList*}{ imageList}}
Sets the image list for the page control.
\wxheading{See also}
\helpref{wxImageList}{wximagelist}
\membersection{wxNotebook::SetPadding}\label{wxnotebooksetpadding}
\func{void}{SetPadding}{\param{const wxSize\&}{ padding}}
Sets the amount of space around each page's icon and label, in pixels.
\membersection{wxNotebook::SetPageSize}\label{wxnotebooksetpagesize}
\func{void}{SetPageSize}{\param{const wxSize\&}{ size}}
Sets the width and height of the pages.
\membersection{wxNotebook::SetPageImage}\label{wxnotebooksetpageimage}
\func{bool}{SetPageImage}{\param{int}{ page}, \param{int }{image}}
Sets the image index for the given page. {\it image} is an index into
the image list which was set with \helpref{wxNotebook::SetImageList}{wxnotebooksetimagelist}.
\membersection{wxNotebook::SetPageText}\label{wxnotebooksetpagetext}
\func{bool}{SetPageText}{\param{int}{ page}, \param{const wxString\& }{text}}
Sets the text for the given page.
\membersection{wxNotebook::SetSelection}\label{wxnotebooksetselection}
\func{int}{SetSelection}{\param{int}{ page}}
Sets the selection for the given page, returning the previous selection.
\wxheading{See also}
\helpref{wxNotebook::GetSelection}{wxnotebookgetselection}

66
docs/latex/wx/noteevt.tex Normal file
View File

@@ -0,0 +1,66 @@
\section{\class{wxNotebookEvent}}\label{wxnotebookevent}
This class represents the events generated by a notebook control.
\wxheading{Derived from}
\helpref{wxCommandEvent}{wxcommandevent}\\
\helpref{wxEvent}{wxevent}\\
\helpref{wxEvtHandler}{wxevthandler}\\
\helpref{wxObject}{wxobject}
\wxheading{Event table macros}
To process a notebook event, use these event handler macros to direct input to member
functions that take a wxNotebookEvent argument.
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_NOTEBOOK_PAGE_CHANGED(id, func)}}{The page selection was changed. Processes a
wxEVT\_COMMAND\_NOTEBOOK\_PAGE\_CHANGED event.}
\twocolitem{{\bf EVT\_NOTEBOOK_PAGE_CHANGING(id, func)}}{The page selection is about to be changed.
Processes a wxEVT\_COMMAND\_NOTEBOOK\_PAGE\_CHANGING event.}
\end{twocollist}%
\wxheading{See also}
\helpref{wxNotebook}{wxnotebook}, \helpref{wxTabCtrl}{wxtabctrl}, \helpref{wxTabEvent}{wxtabevent}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxNotebookEvent::wxNotebookEvent}\label{wxnotebookeventconstr}
\func{}{wxNotebookEvent}{\param{wxEventType}{ eventType = wxEVT\_NULL},
\param{int}{ id = 0}, \param{int}{ sel = -1}, \param{int}{ oldSel = -1}}
Constructor.
\membersection{wxNotebookEvent::GetOldSelection}\label{wxnotebookeventgetoldselection}
\constfunc{int}{GetOldSelection}{\void}
Returns the page that was selected before the change, -1 if none was selected.
\membersection{wxNotebookEvent::GetSelection}\label{wxnotebookeventgetselection}
\constfunc{int}{GetSelection}{\void}
Returns the currently selected page, or -1 if none was selected.
\membersection{wxNotebookEvent::SetOldSelection}\label{wxnotebookeventsetoldselection}
\func{void}{SetOldSelection}{\param{int}{ page}}
Sets the id of the page selected before the change.
\membersection{wxNotebookEvent::SetSelection}\label{wxnotebookeventsetselection}
\func{void}{SetSelection}{\param{int}{ page}}
Sets the selection member variable.
\wxheading{See also}
\helpref{wxNotebookEvent::GetSelection}{wxnotebookeventgetselection}

View File

@@ -15,7 +15,8 @@ isn't overriden.
\func{}{wxProcess}{\param{wxEvtHandler *}{ parent = NULL}, \param{int}{ id = -1}}
Constructs a process object. {\it id} is only used in the case you want to
use wxWindows events.
use wxWindows events. It identifies this object, or another window that will
receive the event.
\wxheading{Parameters}
@@ -37,3 +38,4 @@ It is called when the process with the pid {\it pid} finishes.
It raises a wxWindows event when it isn't overriden.
\docparam{pid}{The pid of the process which ends.}

52
docs/latex/wx/procevt.tex Normal file
View File

@@ -0,0 +1,52 @@
\section{\class{wxProcessEvent}}\label{wxprocessevent}
A process event is sent when a process is terminated.
\wxheading{Derived from}
\helpref{wxEvent}{wxevent}\\
\helpref{wxObject}{wxobject}
\wxheading{Event table macros}
To process a wxProcessEvent, use these event handler macros to direct input to a member
function that takes a wxProcessEvent argument.
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_END\_PROCESS(id, func)}}{Process a wxEVT\_END\_PROCESS event.
{\it id} is the identifier of the process object (the id passed to the wxProcess constructor)
or a window to receive the event.}
\end{twocollist}%
\wxheading{See also}
\helpref{wxProcess}{wxprocess},\rtfsp
\helpref{Event handling overview}{eventhandlingoverview}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxProcessEvent::wxProcessEvent}
\func{}{wxProcessEvent}{\param{int }{id = 0}, \param{int }{pid = 0}}
Constructor. Takes a wxProcessObject or window id, and a process id.
\membersection{wxProcessEvent::m\_pid}
\member{int}{m\_pid}
Contains the process id.
\membersection{wxProcessEvent::GetPid}\label{wxprocesseventgetpid}
\constfunc{int}{GetPid}{\void}
Returns the process id.
\membersection{wxProcessEvent::SetPid}\label{wxprocesseventsetpid}
\func{void}{SetPid}{\param{int}{ pid}}
Sets the process id.

118
docs/latex/wx/qylayevt.tex Normal file
View File

@@ -0,0 +1,118 @@
\section{\class{wxQueryLayoutInfoEvent}}\label{wxquerylayoutinfoevent}
This event is sent when \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm} wishes to get
the size, orientation and alignment of a window. More precisely, the event is sent
by the OnCalculateLayout handler which is itself invoked by wxLayoutAlgorithm.
\wxheading{Derived from}
\helpref{wxEvent}{wxevent}\\
\helpref{wxObject}{wxobject}
\wxheading{Event table macros}
\twocolwidtha{7cm}%
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_QUERY\_LAYOUT\_INFO(func)}}{Process a wxEVT\_QUERY\_LAYOUT\_INFO event,
to get size, orientation and alignment from a window.}
\end{twocollist}
\wxheading{Data structures}
{\small
\begin{verbatim}
enum wxLayoutOrientation {
wxLAYOUT_HORIZONTAL,
wxLAYOUT_VERTICAL
};
enum wxLayoutAlignment {
wxLAYOUT_NONE,
wxLAYOUT_TOP,
wxLAYOUT_LEFT,
wxLAYOUT_RIGHT,
wxLAYOUT_BOTTOM,
};
\end{verbatim}
}
\wxheading{See also}
\helpref{wxCalculateLayoutEvent}{wxcalculatelayoutevent},\rtfsp
\helpref{wxSashLayoutWindow}{wxsashlayoutwindow},\rtfsp
\helpref{wxLayoutAlgorithm}{wxlayoutalgorithm}.
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxQueryLayoutInfoEvent::wxQueryLayoutInfoEvent}
\func{}{wxQueryLayoutInfoEvent}{\param{wxWindowID }{id = 0}}
Constructor.
\membersection{wxQueryLayoutInfoEvent::GetAlignment}\label{wxquerylayoutinfoeventgetalignment}
\constfunc{void}{GetAlignment}{\void}
Specifies the alignment of the window (which side of the remaining parent client area
the window sticks to). One of wxLAYOUT\_TOP, wxLAYOUT\_LEFT, wxLAYOUT\_RIGHT, wxLAYOUT\_BOTTOM.
\membersection{wxQueryLayoutInfoEvent::GetFlags}\label{wxquerylayoutinfoeventgetflags}
\constfunc{int}{GetFlags}{\void}
Returns the flags associated with this event. Not currently used.
\membersection{wxQueryLayoutInfoEvent::GetOrientation}\label{wxquerylayoutinfoeventgetorientation}
\constfunc{wxLayoutOrientation}{GetOrientation}{\void}
Returns the orientation that the event handler specified to the event object. May be one of wxLAYOUT\_HORIZONTAL,
wxLAYOUT\_VERTICAL.
\membersection{wxQueryLayoutInfoEvent::GetRequestedLength}\label{wxquerylayoutinfoeventgetrequestedlength}
\constfunc{int}{GetRequestedLength}{\void}
Returns the requested length of the window in the direction of the window orientation. This information
is not yet used.
\membersection{wxQueryLayoutInfoEvent::GetSize}\label{wxquerylayoutinfoeventgetsize}
\constfunc{wxSize}{GetSize}{\void}
Returns the size that the event handler specified to the event object as being the requested size of the window.
\membersection{wxQueryLayoutInfoEvent::SetAlignment}\label{wxquerylayoutinfoeventsetalignment}
\func{void}{SetAlignment}{\param{wxLayoutAlignment }{alignment}}
Call this to specify the alignment of the window (which side of the remaining parent client area
the window sticks to). May be one of wxLAYOUT\_TOP, wxLAYOUT\_LEFT, wxLAYOUT\_RIGHT, wxLAYOUT\_BOTTOM.
\membersection{wxQueryLayoutInfoEvent::SetFlags}\label{wxquerylayoutinfoeventsetflags}
\func{void}{SetFlags}{\param{int }{flags}}
Sets the flags associated with this event. Not currently used.
\membersection{wxQueryLayoutInfoEvent::SetOrientation}\label{wxquerylayoutinfoeventsetorientation}
\func{void}{SetOrientation}{\param{wxLayoutOrientation }{orientation}}
Call this to specify the orientation of the window. May be one of wxLAYOUT\_HORIZONTAL,
wxLAYOUT\_VERTICAL.
\membersection{wxQueryLayoutInfoEvent::SetRequestedLength}\label{wxquerylayoutinfoeventsetrequestedlength}
\func{void}{SetRequestedLength}{\param{int}{ length}}
Sets the requested length of the window in the direction of the window orientation. This information
is not yet used.
\membersection{wxQueryLayoutInfoEvent::SetSize}\label{wxquerylayoutinfoeventsetsize}
\func{void}{SetSize}{\param{const wxSize\& }{size}}
Call this to let the calling code know what the size of the window is.

View File

@@ -18,7 +18,7 @@
\parindent=0pt
\title{Reference Manual for wxWindows 2.0: a portable C++ GUI toolkit}
\author{Julian Smart}
\date{July 31st 1998}
\date{November 4th 1998}
\makeindex
\begin{document}

View File

@@ -8,6 +8,10 @@ reference counting, so copying and assignment operations are fast.
\helpref{wxGDIObject}{wxgdiobject}\\
\helpref{wxObject}{wxobject}
\wxheading{See also}
\helpref{wxRegionIterator}{wxregioniterator}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxRegion::wxRegion}\label{wxregionconstr}
@@ -179,4 +183,105 @@ for any overlapping areas. The result is stored in this region.
Copies {\it region} by reference counting.
\section{\class{wxRegionIterator}}\label{wxregioniterator}
This class is used to iterate through the rectangles in a region,
typically when examining the damaged regions of a window within an OnPaint call.
To use it, construct an iterator object on the stack and loop through the
regions, testing the object and incrementing the iterator at the end of the loop.
See \helpref{wxWindow::OnPaint}{wxwindowonpaint} for an example of use.
\wxheading{Derived from}
\helpref{wxObject}{wxobject}
\wxheading{See also}
\helpref{wxWindow::OnPaint}{wxwindowonpaint}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxRegionIterator::wxRegionIterator}
\func{}{wxRegionIterator}{\void}
Default constructor.
\func{}{wxRegionIterator}{\param{const wxRegion\&}{ region}}
Creates an iterator object given a region.
\membersection{wxRegionIterator::GetX}
\constfunc{long}{GetX}{\void}
Returns the x value for the current region.
\membersection{wxRegionIterator::GetY}
\constfunc{long}{GetY}{\void}
Returns the y value for the current region.
\membersection{wxRegionIterator::GetW}
\constfunc{long}{GetW}{\void}
An alias for GetWidth.
\membersection{wxRegionIterator::GetWidth}
\constfunc{long}{GetWidth}{\void}
Returns the width value for the current region.
\membersection{wxRegionIterator::GetH}
\constfunc{long}{GetH}{\void}
An alias for GetHeight.
\membersection{wxRegionIterator::GetHeight}
\constfunc{long}{GetWidth}{\void}
Returns the width value for the current region.
\membersection{wxRegionIterator::GetRect}
\constfunc{wxRect}{GetRect}{\void}
Returns the current rectangle.
\membersection{wxRegionIterator::HaveRects}
\constfunc{bool}{HaveRects}{\void}
Returns TRUE if there are still some rectangles; otherwise returns FALSE.
\membersection{wxRegionIterator::Reset}
\func{void}{Reset}{\void}
Resets the iterator to the beginning of the rectangles.
\func{void}{Reset}{\param{const wxRegion\&}{ region}}
Resets the iterator to the given region.
\membersection{wxRegionIterator::operator $++$}
\func{void}{operator $++$}{\void}
Increment operator. Increments the iterator to the next region.
\membersection{wxRegionIterator::operator bool}
\constfunc{}{operator bool}{\void}
Returns TRUE if there are still some rectangles; otherwise returns FALSE.
You can use this to test the iterator object as if it were of type bool.

85
docs/latex/wx/sashevt.tex Normal file
View File

@@ -0,0 +1,85 @@
\section{\class{wxSashEvent}}\label{wxsashevent}
A sash event is sent when the sash of a \helpref{wxSashWindow}{wxsashwindow} has been
dragged by the user.
\wxheading{Derived from}
\helpref{wxCommandEvent}{wxcommandevent}\\
\helpref{wxEvent}{wxevent}\\
\helpref{wxObject}{wxobject}
\wxheading{Event table macros}
To process an activate event, use these event handler macros to direct input to a member
function that takes a wxSashEvent argument.
\twocolwidtha{7cm}%
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_SASH\_DRAGGED(id, func)}}{Process a wxEVT\_SASH\_DRAGGED event,
when the user has finished dragging a sash.}
\twocolitem{{\bf EVT\_SASH\_DRAGGED\_RANGE(id1, id2, func)}}{Process a wxEVT\_SASH\_DRAGGED\_RANGE event,
when the user has finished dragging a sash. The event handler is called when windows with ids in the
given range have their sashes dragged.}
\end{twocollist}
\wxheading{Data structures}
{\small
\begin{verbatim}
enum wxSashDragStatus
{
wxSASH_STATUS_OK,
wxSASH_STATUS_OUT_OF_RANGE
};
\end{verbatim}
}
\wxheading{Remarks}
When a sash belonging to a sash window is dragged by the user, and then released,
this event is sent to the window, where it may be processed by an event table
entry in a derived class, a plug-in event handler or an ancestor class.
Note that the wxSashWindow doesn't change the window's size itself. It relies on the application's
event handler to do that. This is because the application may have to handle other consequences
of the resize, or it may wish to veto it altogether. The event handler should
look at the drag rectangle: see \helpref{wxSashEvent::GetDragRect}{wxsasheventgetdragrect} to see
what the new size of the window would be if the resize were to be applied. It should
also call \helpref{wxSashEvent::GetDragStatus}{wxsasheventgetdragstatus} to see whether the
drag was OK or out of the current allowed range.
\wxheading{See also}
\helpref{wxSashWindow}{wxsashwindow},\rtfsp
\helpref{Event handling overview}{eventhandlingoverview}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxSashEvent::wxSashEvent}
\func{}{wxSashEvent}{\param{int }{id = 0}, \param{wxSashEdgePosition}{ edge = wxSASH\_NONE}}
Constructor.
\membersection{wxSashEvent::GetEdge}\label{wxsasheventgetedge}
\constfunc{wxSashEdgePosition}{GetEdge}{\void}
Returns the dragged edge. The return value is one of wxSASH\_TOP, wxSASH\_RIGHT, wxSASH\_BOTTOM, wxSASH\_LEFT.
\membersection{wxSashEvent::GetDragRect}\label{wxsasheventgetdragrect}
\constfunc{wxRect}{GetDragRect}{\void}
Returns the rectangle representing the new size the window would be if the resize was applied. It is
up to the application to set the window size if required.
\membersection{wxSashEvent::GetDragStatus}\label{wxsasheventgetdragstatus}
\constfunc{wxSashDragStatus}{GetDragStatus}{\void}
Returns the status of the sash: one of wxSASH\_STATUS\_OK, wxSASH\_STATUS\_OUT\_OF\_RANGE.
If the drag caused the notional bounding box of the window to flip over, for example, the drag will be out of rage.

128
docs/latex/wx/sashlayw.tex Normal file
View File

@@ -0,0 +1,128 @@
\section{\class{wxSashLayoutWindow}}\label{wxsashlayoutwindow}
wxSashLayoutWindow responds to OnCalculateLayout events generated
by \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm}. It allows the
application to use simple accessors to specify how the window should be
laid out, rather than having to respond to events. The fact that
the class derives from wxSashWindow allows sashes to be used if required,
to allow the windows to be user-resizable.
The documentation for \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm} explains
the purpose of this class in more detail.
\wxheading{Derived from}
\helpref{wxSashWindow}{wxsashwindow}\\
\helpref{wxWindow}{wxwindow}\\
\helpref{wxEvtHandler}{wxevthandler}\\
\helpref{wxObject}{wxobject}
\wxheading{Window styles}
See \helpref{wxSashWindow}{wxsashwindow}.
\wxheading{Event handling}
This class handles the EVT\_QUERY\_LAYOUT\_INFO and EVT\_CALCULATE\_LAYOUT events
for you. However, if you use sashes, see \helpref{wxSashWindow}{wxsashwindow} for
relevant event information.
See also \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm} for information
about the layout events.
\wxheading{See also}
\helpref{wxLayoutAlgorithm}{wxlayoutalgorithm}, \helpref{wxSashWindow}{wxsashwindow}, \helpref{Event handling overview}{eventhandlingoverview}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxSashLayoutWindow::wxSashLayoutWindow}
\func{}{wxSashLayoutWindow}{\void}
Default constructor.
\func{}{wxSashLayoutWindow}{\param{wxSashLayoutWindow*}{ parent}, \param{wxSashLayoutWindowID }{id},
\param{const wxPoint\& }{pos = wxDefaultPosition},
\param{const wxSize\& }{size = wxDefaultSize},
\param{long }{style = wxCLIP\_CHILDREN \pipe wxSW\_3D},
\param{const wxString\& }{name = "layoutWindow"}}
Constructs a sash layout window, which can be a child of a frame, dialog or any other non-control window.
\wxheading{Parameters}
\docparam{parent}{Pointer to a parent window.}
\docparam{id}{Window identifier. If -1, will automatically create an identifier.}
\docparam{pos}{Window position. wxDefaultPosition is (-1, -1) which indicates that wxSashLayoutWindows
should generate a default position for the window. If using the wxSashLayoutWindow class directly, supply
an actual position.}
\docparam{size}{Window size. wxDefaultSize is (-1, -1) which indicates that wxSashLayoutWindows
should generate a default size for the window.}
\docparam{style}{Window style. For window styles, please see \helpref{wxSashLayoutWindow}{wxsashlayoutwindow}.}
\docparam{name}{Window name.}
\membersection{wxSashLayoutWindow::\destruct{wxSashLayoutWindow}}
\func{}{\destruct{wxSashLayoutWindow}}{\void}
Destructor.
\membersection{wxSashLayoutWindow::GetAlignment}\label{wxsashlayoutwindowgetalignment}
\constfunc{wxLayoutAlignment}{GetAlignment}{\void}
Returns the alignment of the window: one of wxLAYOUT\_TOP, wxLAYOUT\_LEFT, wxLAYOUT\_RIGHT, wxLAYOUT\_BOTTOM.
\membersection{wxSashLayoutWindow::GetOrientation}\label{wxsashlayoutwindowgetorientation}
\constfunc{wxLayoutOrientation}{GetOrientation}{\void}
Returns the orientation of the window: one of wxLAYOUT\_HORIZONTAL, wxLAYOUT\_VERTICAL.
\membersection{wxSashLayoutWindow::OnCalculateLayout}\label{wxsashlayoutwindowoncalculatelayout}
\func{void}{OnCalculateLayout}{\param{wxCalculateLayoutEvent\&}{ event}}
The default handler for the event that is generated by wxLayoutAlgorithm. The implementation
of this function calls wxCalculateLayoutEvent::SetRect to shrink the provided size according to
how much space this window takes up. For further details,
see \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm} and \helpref{wxCalculateLayoutEvent}{wxcalculatelayoutevent}.
\membersection{wxSashLayoutWindow::OnQueryLayoutInfo}\label{wxsashlayoutwindowonquerylayoutinfo}
\func{void}{OnQueryLayoutInfo}{\param{wxQueryLayoutInfoEvent\&}{ event}}
The default handler for the event that is generated by OnCalculateLayout to get
size, alignment and orientation information for the window. The implementation
of this function uses member variables as set by accessors called by the application.
For further details, see \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm} and \helpref{wxQueryLayoutInfoEvent}{wxquerylayoutinfoevent}.
\membersection{wxSashLayoutWindow::SetAlignment}\label{wxsashlayoutwindowsetalignment}
\func{void}{SetAlignment}{\param{wxLayoutAlignment}{ alignment}}
Sets the alignment of the window (which edge of the available parent client area the window
is attached to). {\it alignment} is one of wxLAYOUT\_TOP, wxLAYOUT\_LEFT, wxLAYOUT\_RIGHT, wxLAYOUT\_BOTTOM.
\membersection{wxSashLayoutWindow::SetDefaultSize}\label{wxsashlayoutwindowsetdefaultsize}
\func{void}{SetDefaultSize}{\param{const wxSize\& }{size}}
Sets the default dimensions of the window. The dimension other than the orientation will be fixed to this
value, and the orientation dimension will be ignored and the window stretched to fit the available space.
\membersection{wxSashLayoutWindow::SetOrientation}\label{wxsashlayoutwindowsetorientation}
\func{void}{SetOrientation}{\param{wxLayoutOrientation}{ orientation}}
Sets the orientation of the window (the direction the window will stretch in, to fill the available
parent client area). {\it orientation} is one of wxLAYOUT\_HORIZONTAL, wxLAYOUT\_VERTICAL.

203
docs/latex/wx/sashwin.tex Normal file
View File

@@ -0,0 +1,203 @@
\section{\class{wxSashWindow}}\label{wxsashwindow}
wxSashWindow allows any of its edges to have a sash which can be dragged
to resize the window. The actual content window will be created by the application
as a child of wxSashWindow. The window (or an ancestor) will be notified of a drag
via a \helpref{wxSashEvent}{wxsashevent} notification.
\wxheading{Derived from}
\helpref{wxWindow}{wxwindow}\\
\helpref{wxEvtHandler}{wxevthandler}\\
\helpref{wxObject}{wxobject}
\wxheading{Window styles}
The following styles apply in addition to the normal wxWindow styles.
\twocolwidtha{5cm}%
\begin{twocollist}\itemsep=0pt
\twocolitem{\windowstyle{wxSW\_3D}}{Draws the sashes in 3D.}
\end{twocollist}
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Event handling}
\twocolwidtha{7cm}%
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_SASH\_DRAGGED(id, func)}}{Process a wxEVT\_SASH\_DRAGGED event,
when the user has finished dragging a sash.}
\twocolitem{{\bf EVT\_SASH\_DRAGGED\_RANGE(id1, id2, func)}}{Process a wxEVT\_SASH\_DRAGGED\_RANGE event,
when the user has finished dragging a sash. The event handler is called when windows with ids in the
given range have their sashes dragged.}
\end{twocollist}
\wxheading{Data types}
{\small
\begin{verbatim}
enum wxSashEdgePosition {
wxSASH_TOP = 0,
wxSASH_RIGHT,
wxSASH_BOTTOM,
wxSASH_LEFT,
wxSASH_NONE = 100
};
\end{verbatim}
}
\wxheading{See also}
\helpref{wxSashEvent}{wxsashevent}, \helpref{wxSashLayoutWindow}{wxsashlayoutwindow}, \helpref{Event handling overview}{eventhandlingoverview}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxSashWindow::wxSashWindow}
\func{}{wxSashWindow}{\void}
Default constructor.
\func{}{wxSashWindow}{\param{wxSashWindow*}{ parent}, \param{wxSashWindowID }{id},
\param{const wxPoint\& }{pos = wxDefaultPosition},
\param{const wxSize\& }{size = wxDefaultSize},
\param{long }{style = wxCLIP\_CHILDREN \pipe wxSW\_3D},
\param{const wxString\& }{name = "sashWindow"}}
Constructs a sash window, which can be a child of a frame, dialog or any other non-control window.
\wxheading{Parameters}
\docparam{parent}{Pointer to a parent window.}
\docparam{id}{Window identifier. If -1, will automatically create an identifier.}
\docparam{pos}{Window position. wxDefaultPosition is (-1, -1) which indicates that wxSashWindows
should generate a default position for the window. If using the wxSashWindow class directly, supply
an actual position.}
\docparam{size}{Window size. wxDefaultSize is (-1, -1) which indicates that wxSashWindows
should generate a default size for the window.}
\docparam{style}{Window style. For window styles, please see \helpref{wxSashWindow}{wxsashwindow}.}
\docparam{name}{Window name.}
\membersection{wxSashWindow::\destruct{wxSashWindow}}
\func{}{\destruct{wxSashWindow}}{\void}
Destructor.
\membersection{wxSashWindow::GetSashVisible}\label{wxsashwindowgetsashvisible}
\constfunc{bool}{GetSashVisible}{\param{wxSashEdgePosition }{edge}}
Returns TRUE if a sash is visible on the given edge, FALSE otherwise.
\wxheading{Parameters}
\docparam{edge}{Edge. One of wxSASH\_TOP, wxSASH\_RIGHT, wxSASH\_BOTTOM, wxSASH\_LEFT.}
\wxheading{See also}
\helpref{wxSashWindow::SetSashVisible}{wxsashwindowsetsashvisible}
\membersection{wxSashWindow::GetMaximumSizeX}\label{wxsashwindowgetmaximumsizex}
\constfunc{int}{GetMaximumSizeX}{\void}
Gets the maximum window size in the x direction.
\membersection{wxSashWindow::GetMaximumSizeY}\label{wxsashwindowgetmaximumsizey}
\constfunc{int}{GetMaximumSizeY}{\void}
Gets the maximum window size in the y direction.
\membersection{wxSashWindow::GetMinimumSizeX}\label{wxsashwindowgetminimumsizex}
\func{int}{GetMinimumSizeX}{\void}
Gets the minimum window size in the x direction.
\membersection{wxSashWindow::GetMinimumSizeY}\label{wxsashwindowgetminimumsizey}
\constfunc{int}{GetMinimumSizeY}{\param{int}{ min}}
Gets the minimum window size in the y direction.
\membersection{wxSashWindow::HasBorder}\label{wxsashwindowhasborder}
\constfunc{bool}{HasBorder}{\param{wxSashEdgePosition }{edge}}
Returns TRUE if the sash has a border, FALSE otherwise.
\wxheading{Parameters}
\docparam{edge}{Edge. One of wxSASH\_TOP, wxSASH\_RIGHT, wxSASH\_BOTTOM, wxSASH\_LEFT.}
\wxheading{See also}
\helpref{wxSashWindow::SetSashBorder}{wxsashwindowsetsashborder}
\membersection{wxSashWindow::SetMaximumSizeX}\label{wxsashwindowsetmaximumsizex}
\func{void}{SetMaximumSizeX}{\param{int}{ min}}
Sets the maximum window size in the x direction.
\membersection{wxSashWindow::SetMaximumSizeY}\label{wxsashwindowsetmaximumsizey}
\func{void}{SetMaximumSizeY}{\param{int}{ min}}
Sets the maximum window size in the y direction.
\membersection{wxSashWindow::SetMinimumSizeX}\label{wxsashwindowsetminimumsizex}
\func{void}{SetMinimumSizeX}{\param{int}{ min}}
Sets the minimum window size in the x direction.
\membersection{wxSashWindow::SetMinimumSizeY}\label{wxsashwindowsetminimumsizey}
\func{void}{SetMinimumSizeY}{\param{int}{ min}}
Sets the minimum window size in the y direction.
\membersection{wxSashWindow::SetSashVisible}\label{wxsashwindowsetsashvisible}
\func{void}{SetSashVisible}{\param{wxSashEdgePosition }{edge}, \param{bool}{ visible}}
Call this function to make a sash visible or invisible on a particular edge.
\wxheading{Parameters}
\docparam{edge}{Edge to change. One of wxSASH\_TOP, wxSASH\_RIGHT, wxSASH\_BOTTOM, wxSASH\_LEFT.}
\docparam{visible}{TRUE to make the sash visible, FALSE to make it invisible.}
\wxheading{See also}
\helpref{wxSashWindow::GetSashVisible}{wxsashwindowgetsashvisible}
// Set whether there's a border in this position
inline void SetSashBorder(wxSashEdgePosition edge, bool border) { m_sashes[edge].m_border = border; }
\membersection{wxSashWindow::SetSashBorder}\label{wxsashwindowsetsashborder}
\func{void}{SetSashBorder}{\param{wxSashEdgePosition }{edge}, \param{bool}{ hasBorder}}
Call this function to give the sash a border, or remove the border.
\wxheading{Parameters}
\docparam{edge}{Edge to change. One of wxSASH\_TOP, wxSASH\_RIGHT, wxSASH\_BOTTOM, wxSASH\_LEFT.}
\docparam{hasBorder}{TRUE to give the sash a border visible, FALSE to remove it.}
\wxheading{See also}
\helpref{wxSashWindow::HashBorder}{wxsashwindowhasborder}

155
docs/latex/wx/sckaddr.tex Normal file
View File

@@ -0,0 +1,155 @@
% ----------------------------------------------------------------------------
% CLASS: wxSockAddress
% ----------------------------------------------------------------------------
\section{\class{wxSockAddress}}\label{wxsockaddress}
\wxheading{Derived from}
\helpref{wxObject}{wxobject}
{\bf Actually, you don't have to use these functions: only wxSocketBase use it.}
\wxheading{See also}
\helpref{wxSocketBase}{wxsocketbase}\\
\helpref{wxIPV4address}{wxipv4address}\\
\helpref{wxIPV6address}{wxipv6address}\\
\helpref{wxunixaddress}{wxunixaddress}
% ----------------------------------------------------------------------------
% Members
% ----------------------------------------------------------------------------
\latexignore{\rtfignore{\wxheading{Members}}}
%
% ctor/dtor
%
\membersection{wxSockAddress::wxSockAddress}
\func{}{wxSockAddress}{\void}
Default constructor.
\membersection{wxSockAddress::\destruct{wxSockAddress}}
\func{}{\destruct{wxSockAddress}}{\void}
Default destructor.
%
% Clear
%
\membersection{wxSockAddress::Clear}
\func{void}{Clear}{\void}
Delete all informations about the address.
%
% Build
%
\membersection{wxSockAddress::Build}
\func{void}{Build}{\param{struct sockaddr *\&}{ addr}, \param{size\_t\&}{ len}}
Build a coded socket address.
%
% Disassemble
%
\membersection{wxSockAddress::Disassemble}
\func{void}{Disassemble}{\param{struct sockaddr *}{addr}, \param{size\_t}{ len}}
Decode a socket address. {\bf Actually, you don't have to use this
function: only wxSocketBase use it.}
%
% SockAddrLen
%
\membersection{wxSockAddress::SockAddrLen}
\func{int}{SockAddrLen}{\void};
Returns the length of the socket address.
% ----------------------------------------------------------------------------
% CLASS: wxIPV4address
% ----------------------------------------------------------------------------
\section{\class{wxIPV4address}}\label{wxipv4address}
\wxheading{Derived from}
\helpref{wxSockAddress}{wxsockaddress}
% ----------------------------------------------------------------------------
% MEMBERS
% ----------------------------------------------------------------------------
\latexignore{\rtfignore{\wxheading{Members}}}
%
% Hostname
%
\membersection{wxIPV4address::Hostname}
\func{bool}{Hostname}{\param{const wxString\&}{ hostname}}
Use the specified {\it hostname} for the address.
\wxheading{Return value}
Returns FALSE if something bad happens (invalid hostname, invalid IP address).
%
% Hostname
%
\membersection{wxIPV4address::Hostname}
\func{wxString}{Hostname}{\void}
Returns the hostname which matches the IP address.
%
% Service
%
\membersection{wxIPV4address::Service}
\func{bool}{Service}{\param{const wxString\&}{ service}}
Use the specified {\it service} string for the address.
\wxheading{Return value}
Returns FALSE if something bad happens (invalid service).
%
% Service
%
\membersection{wxIPV4address::Service}
\func{bool}{Service}{\param{unsigned short}{ service}}
Use the specified {\it service} for the address.
\wxheading{Return value}
Returns FALSE if something bad happens (invalid service).
%
% Service
%
\membersection{wxIPV4address::Service}
\func{unsigned short}{Service}{\void}
Returns the current service.
%
% LocalHost
%
\membersection{wxIPV4address::LocalHost}
\func{bool}{LocalHost}{\void}
Initialize peer host to local host.
\wxheading{Return value}
Returns FALSE if something bad happens.

768
docs/latex/wx/socket.tex Normal file
View File

@@ -0,0 +1,768 @@
\section{\class{wxSocketBase}}\label{wxsocketbase}
\wxheading{Derived from}
\helpref{wxEvtHandler}{wxevthandler}
% ---------------------------------------------------------------------------
% Event handling
% ---------------------------------------------------------------------------
\wxheading{Event handling}
To process events from a socket, use the following event handler macro to direct
input to member
functions that take a \helpref{wxSocketEvent}{wxsocketevent} argument.
\twocolwidtha{7cm}%
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_SOCKET(id, func)}}{A socket event occured.}
\end{twocollist}%
% ---------------------------------------------------------------------------
% See also ...
% ---------------------------------------------------------------------------
\wxheading{See also}
\helpref{wxSocketEvent}{wxsocketevent}, \helpref{wxSocketClient}{wxsocketclient}, \helpref{wxSocketServer}{wxsocketserver}
% ---------------------------------------------------------------------------
% Members
% ---------------------------------------------------------------------------
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxSocketBase::wxSocketBase}
\func{}{wxSocketBase}{\void}
Default constructor but don't use it, you must use \helpref{wxSocketClient}{wxsocketclient}
or \helpref{wxSocketServer}{wxsocketserver}.
\membersection{wxSocketBase::\destruct{wxSocketBase}}
\func{}{\destruct{wxSocketBase}}{\void}
Destroys the wxSocketBase object.
% ---------------------------------------------------------------------------
% State functions
% ---------------------------------------------------------------------------
\membersection{wxSocketBase::Ok}\label{wxsocketbaseok}
\constfunc{bool}{Ok}{\void}
Returns TRUE if the socket is initialized and ready and FALSE in other
cases.
\membersection{wxSocketBase::Error}\label{wxsocketbaseerror}
\constfunc{bool}{Error}{\void}
Returns TRUE if an error occured.
\membersection{wxSocketBase::IsConnected}\label{wxsocketbaseconnected}
\constfunc{bool}{IsConnected}{\void}
Returns TRUE if the socket is connected.
\membersection{wxSocketBase::IsData}\label{wxsocketbaseisdata}
\constfunc{bool}{IsData}{\void}
Returns TRUE if some data is arrived on the socket.
\membersection{wxSocketBase::IsDisconnected}\label{wxsocketbasedisconnected}
\constfunc{bool}{IsDisconnected}{\void}
Returns TRUE if the socket is disconnected.
\membersection{wxSocketBase::IsNoWait}\label{wxsocketbasenowait}
\constfunc{bool}{IsNoWait}{\void}
Returns TRUE if the socket mustn't wait.
\membersection{wxSocketBase::LastCount}\label{wxsocketbaselastcount}
\constfunc{size\_t}{LastCount}{\void}
Returns the number of bytes read or written by the last IO call.
\membersection{wxSocketBase::LastError}\label{wxsocketbaselasterror}
\constfunc{int}{LastError}{\void}
Returns an error in the errno format (see your C programmer's guide).
% ---------------------------------------------------------------------------
% IO calls
% ---------------------------------------------------------------------------
%
% Peek
%
\membersection{wxSocketBase::Peek}\label{wxsocketbasepeek}
\func{wxSocketBase\&}{Peek}{\param{char *}{ buffer}, \param{size\_t}{ nbytes}}
This function peeks a buffer of {\it nbytes} bytes from the socket. Peeking a buffer
doesn't delete it from the system socket in-queue.
\wxheading{Parameters}
\docparam{buffer}{Buffer where to put peeked data.}
\docparam{nbytes}{Number of bytes.}
\wxheading{Return value}
Returns a reference to the current object.
\wxheading{See also}
\helpref{wxSocketBase::Error}{wxsocketbaseerror},
\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount},
\helpref{wxSocketBase::LastError}{wxsocketbaselasterror}
%
% Read
%
\membersection{wxSocketBase::Read}\label{wxsocketbaseread}
\func{wxSocketBase\&}{Read}{\param{char *}{ buffer}, \param{size\_t}{ nbytes}}
This function reads a buffer of {\it nbytes} bytes from the socket.
\wxheading{Parameters}
\docparam{buffer}{Buffer where to put read data.}
\docparam{nbytes}{Number of bytes.}
\wxheading{Return value}
Returns a reference to the current object.
\wxheading{See also}
\helpref{wxSocketBase::Error}{wxsocketbaseerror},
\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount},
\helpref{wxSocketBase::LastError}{wxsocketbaselasterror}
\membersection{wxSocketBase::SetFlags}\label{wxsocketbasesetflags}
\func{void}{SetFlags}{\param{wxSockFlags}{ flags}}
TODO
%
% Read
%
\membersection{wxSocketBase::Write}\label{wxsocketbasewrite}
\func{wxSocketBase\&}{Write}{\param{const char *}{ buffer}, \param{size\_t}{ nbytes}}
This function writes a buffer of {\it nbytes} bytes from the socket.
\wxheading{Parameters}
\docparam{buffer}{Buffer where to get the data to write.}
\docparam{nbytes}{Number of bytes.}
\wxheading{Return value}
Returns a reference to the current object.
\wxheading{See also}
\helpref{wxSocketBase::Error}{wxsocketbaseerror},
\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount},
\helpref{wxSocketBase::LastError}{wxsocketbaselasterror}
%
% WriteMsg
%
\membersection{wxSocketBase::WriteMsg}\label{wxsocketbasewritemsg}
\func{wxSocketBase\&}{WriteMsg}{\param{const char *}{ buffer}, \param{size\_t}{ nbytes}}
This function writes a buffer of {\it nbytes} bytes from the socket. But it
writes a short header before so that ReadMsg can alloc the right size for
the buffer. So a buffer sent with WriteMsg {\bf must} be read with ReadMsg.
\wxheading{Parameters}
\docparam{buffer}{Buffer where to put data peeked.}
\docparam{nbytes}{Number of bytes.}
\wxheading{Return value}
Returns a reference to the current object.
\wxheading{See also}
\helpref{wxSocketBase::Error}{wxsocketbaseerror},
\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount},
\helpref{wxSocketBase::LastError}{wxsocketbaselasterror},
\helpref{wxSocketBase::ReadMsg}{wxsocketbasereadmsg}
%
% ReadMsg
%
\membersection{wxSocketBase::ReadMsg}\label{wxsocketbasereadmsg}
\func{wxSocketBase\&}{ReadMsg}{\param{char *}{ buffer}, \param{size\_t}{ nbytes}}
This function reads a buffer sent by WriteMsg on a socket. If the buffer passed
to the function isn't big enough, the function filled it and then discard the
bytes left. This function always wait for the buffer to be entirely filled.
\wxheading{Parameters}
\docparam{buffer}{Buffer where to put read data.}
\docparam{nbytes}{Number of bytes allocated for the buffer.}
\wxheading{Return value}
Returns a reference to the current object.
\wxheading{See also}
\helpref{wxSocketBase::Error}{wxsocketbaseerror},
\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount},
\helpref{wxSocketBase::LastError}{wxsocketbaselasterror},
\helpref{wxSocketBase::WriteMsg}{wxsocketbasewritemsg}
%
% Unread
%
\membersection{wxSocketBase::UnRead}\label{wxsocketbaseunread}
\func{wxSocketBase\&}{UnRead}{\param{const char *}{ buffer}, \param{size\_t}{ nbytes}}
This function unreads a buffer. It means that the buffer is put in the top
of the incoming queue. But, it is put also at the end of all unread buffers.
It is useful for sockets because we can't seek it.
\wxheading{Parameters}
\docparam{buffer}{Buffer to be unread.}
\docparam{nbytes}{Number of bytes.}
\wxheading{Return value}
Returns a reference to the current object.
\wxheading{See also}
\helpref{wxSocketBase::Error}{wxsocketbaseerror},
\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount},
\helpref{wxSocketBase::LastError}{wxsocketbaselasterror}
%
% Discard
%
\membersection{wxSocketBase::Discard}\label{wxsocketbasediscard}
\func{wxSocketBase\&}{Discard}{\void}
This function simply deletes all bytes in the incoming queue. This function
doesn't wait.
% ---------------------------------------------------------------------------
% Wait functions
% ---------------------------------------------------------------------------
\membersection{wxSocketBase::Wait}\label{wxsocketbasewait}
\func{bool}{Wait}{\param{long}{ seconds = -1}, \param{long}{ microsecond = 0}}
This function waits for an event: it could be an incoming byte, the possibility
for the client to write, a lost connection, an incoming connection, an
established connection.
\wxheading{Parameters}
\docparam{seconds}{Number of seconds to wait. By default, it waits infinitely.}
\docparam{microsecond}{Number of microseconds to wait.}
\wxheading{Return value}
Returns TRUE if an event occured, FALSE if the timeout was reached.
\wxheading{See also}
\helpref{wxSocketBase::WaitForRead}{wxsocketbasewaitforread},
\helpref{wxSocketBase::WaitForWrite}{wxsocketbasewaitforwrite},
\helpref{wxSocketBase::WaitForLost}{wxsocketbasewaitforlost}
%
% WaitForRead
%
\membersection{wxSocketBase::WaitForRead}\label{wxsocketbasewaitforread}
\func{bool}{WaitForRead}{\param{long}{ seconds = -1}, \param{long}{ microsecond = 0}}
This function waits for a read event.
\wxheading{Parameters}
\docparam{seconds}{Number of seconds to wait. By default, it waits infinitely.}
\docparam{microsecond}{Number of microseconds to wait.}
\wxheading{Return value}
Returns TRUE if a byte arrived, FALSE if the timeout was reached.
\wxheading{See also}
\helpref{wxSocketBase::Wait}{wxsocketbasewait},
\helpref{wxSocketBase::WaitForWrite}{wxsocketbasewaitforwrite},
\helpref{wxSocketBase::WaitForLost}{wxsocketbasewaitforlost}
%
% WaitForWrite
%
\membersection{wxSocketBase::WaitForWrite}\label{wxsocketbasewaitforwrite}
\func{bool}{WaitForWrite}{\param{long}{ seconds = -1}, \param{long}{ microsecond = 0}}
This function waits for a write event.
\wxheading{Parameters}
\docparam{seconds}{Number of seconds to wait. By default, it waits infinitely.}
\docparam{microsecond}{Number of microseconds to wait.}
\wxheading{Return value}
Returns TRUE if a write event occured, FALSE if the timeout was reached.
\wxheading{See also}
\helpref{wxSocketBase::Wait}{wxsocketbasewait},
\helpref{wxSocketBase::WaitForRead}{wxsocketbasewaitforread},
\helpref{wxSocketBase::WaitForLost}{wxsocketbasewaitforlost}
%
% WaitForLost
%
\membersection{wxSocketBase::WaitForLost}\label{wxsocketbasewaitforlost}
\func{bool}{Wait}{\param{long}{ seconds = -1}, \param{long}{ microsecond = 0}}
This function waits for a "lost" event. For instance, the peer may have closed
the connection, or the connection may have been broken.
\wxheading{Parameters}
\docparam{seconds}{Number of seconds to wait. By default, it waits infinitely.}
\docparam{microsecond}{Number of microseconds to wait.}
\wxheading{Return value}
Returns TRUE if a "lost" event occured, FALSE if the timeout was reached.
\wxheading{See also}
\helpref{wxSocketBase::WaitForRead}{wxsocketbasewaitforread},
\helpref{wxSocketBase::WaitForWrite}{wxsocketbasewaitforwrite},
\helpref{wxSocketBase::WaitForLost}{wxsocketbasewaitforlost}
%
% RestoreState
%
\membersection{wxSocketBase::RestoreState}\label{wxsocketbaserestorestate}
\func{void}{RestoreState}{\void}
This function restores a previously saved state.
\wxheading{See also}
\helpref{wxSocketBase::SaveState}{wxsocketbasesavestate}
% ---------------------------------------------------------------------------
% Socket state
% ---------------------------------------------------------------------------
%
% SaveState
%
\membersection{wxSocketBase::SaveState}\label{wxsocketbasesavestate}
\func{void}{SaveState}{\void}
This function saves the current state of the socket object in a stack:
actually it saves all flags and the state of the asynchronous callbacks.
\wxheading{See also}
\helpref{wxSocketBase::RestoreState}{wxsocketbaserestorestate}
% ---------------------------------------------------------------------------
% Socket callbacks
% ---------------------------------------------------------------------------
\membersection{wxSocketBase::SetEventHandler}\label{wxsocketbaseseteventhandler}
\func{void}{SetEventHandler}{\param{wxEvtHandler\&}{ evt\_hdlr}, \param{int}{ id = -1}}
Sets an event handler to be called when a socket event occured.
\wxheading{Parameters}
\docparam{evt\_hdlr}{Specifies the event handler you want to use.}
\docparam{id}{The id of socket event.}
\wxheading{See also}
\helpref{wxSocketEvent}{wxsocketevent}
% ---------------------------------------------------------------------------
% CLASS wxSocketClient
% ---------------------------------------------------------------------------
\section{\class{wxSocketClient}}\label{wxsocketclient}
\wxheading{Derived from}
\helpref{wxSocketBase}{wxsocketbase}
% ---------------------------------------------------------------------------
% Members
% ---------------------------------------------------------------------------
%
% wxSocketClient
%
\membersection{wxSocketClient::wxSocketClient}
\func{}{wxSocketClient}{\param{wxSockFlags}{ flags = wxSocketBase::NONE}}
Constructs a new wxSocketClient.
{\bf Warning !} The created socket client needs to be registered to a socket handler (See \helpref{wxSocketHandler}{wxsockethandler}).
\wxheading{Parameters}
\docparam{flags}{Socket flags (See \helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags})}
%
% ~wxSocketClient
%
\membersection{wxSocketClient::\destruct{wxSocketClient}}
\func{}{\destruct{wxSocketClient}}{\void}
Destructs a wxSocketClient object.
%
% Connect
%
\membersection{wxSocketClient::Connect}\label{wxsocketclientconnect}
\func{bool}{Connect}{\param{wxSockAddress\&}{ address}, \param{bool}{ wait = TRUE}}
Connects to a server using the specified address. If {\it wait} is TRUE, Connect
will wait for the socket ready to send or receive data.
\wxheading{Parameters}
\docparam{address}{Address of the server.}
\docparam{wait}{If true, waits for the connection to be ready.}
\wxheading{Return value}
Returns TRUE if the connection is established and no error occurs.
\wxheading{See also}
\helpref{wxSocketClient::WaitOnConnect}{wxsocketclientwaitonconnect}
%
% WaitOnConnect
%
\membersection{wxSocketClient::WaitOnConnect}\label{wxsocketclientwaitonconnect}
\func{bool}{WaitOnConnect}{\param{long}{ seconds = -1}, \param{long}{ microseconds = 0}}
Wait for a "connect" event.
\wxheading{See also}
\helpref{wxSocketBase::Wait}{wxsocketbasewait} for a detailed description.
% ---------------------------------------------------------------------------
% CLASS: wxSocketEvent
% ---------------------------------------------------------------------------
\section{\class{wxSocketEvent}}\label{wxsocketevent}
This event class contains information about socket events.
\wxheading{Derived from}
\helpref{wxEvent}{wxevent}
\wxheading{Event table macros}
To process a socket event, use these event handler macros to direct input to member
functions that take a wxSocketEvent argument.
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_SOCKET(id, func)}}{Process a socket event, supplying the member function.}
\end{twocollist}%
\wxheading{See also}
\helpref{wxSocketHandler}{wxsockethandler},\rtfsp
\helpref{wxSocketBase}{wxsocketbase},\rtfsp
\helpref{wxSocketClient}{wxsocketclient},\rtfsp
\helpref{wxSocketServer}{wxsocketserver}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxSocketEvent::wxSocketEvent}
\func{}{wxSocketEvent}{\param{int}{ id = 0}}
Constructor.
\membersection{wxSocketEvent::SocketEvent}\label{wxsocketeventsocketevent}
\constfunc{wxSocketBase::wxRequestEvent}{SocketEvent}{\void}
Returns the socket event type.
% ---------------------------------------------------------------------------
% CLASS: wxSocketHandler
% ---------------------------------------------------------------------------
\section{\class{wxSocketHandler}}\label{wxsockethandler}
\wxheading{Derived from}
\helpref{wxObject}{wxobject}
% ---------------------------------------------------------------------------
% Members
% ---------------------------------------------------------------------------
\latexignore{\rtfignore{\wxheading{Members}}}
%
% wxSocketHandler
%
\membersection{wxSocketHandler::wxSocketHandler}
\func{}{wxSocketHandler}{\void}
Constructs a new wxSocketHandler.
It is advised to use \helpref{wxSocketHandler::Master}{wxsockethandlermaster} to
get a socket handler. But creating a socket handler is useful to group
many sockets.
%
% ~wxSocketHandler
%
\membersection{wxSocketHandler::\destruct{wxSocketHandler}}
\func{}{\destruct{wxSocketHandler}}{\void}
Destructs a wxSocketHandler object.
%
% Register
%
\membersection{wxSocketHandler::Register}
\func{void}{Register}{\param{wxSocketBase *}{socket}}
Register a socket: if it is already registered in this handler it will just
return immediately.
\wxheading{Parameters}
\docparam{socket}{Socket to be registered.}
%
% UnRegister
%
\membersection{wxSocketHandler::UnRegister}
\func{void}{UnRegister}{\param{wxSocketBase *}{socket}}
UnRegister a socket: if it isn't registered in this handler it will just
return.
\wxheading{Parameters}
\docparam{socket}{Socket to be unregistered.}
%
% Count
%
\membersection{wxSocketHandler::Count}
\constfunc{unsigned long}{Count}{\void}
Returns the number of sockets registered in the handler.
\wxheading{Return value}
Number of sockets registered.
%
% CreateServer
%
\membersection{wxSocketHandler::CreateServer}
\func{wxSocketServer *}{CreateServer}{\param{wxSockAddress\&}{ address}, \param{wxSocketBase::wxSockFlags}{ flags = wxSocketbase::NONE}}
Creates a new wxSocketServer object. The object is automatically registered
to the current socket handler.
For a detailed description of the parameters, see \helpref{wxSocketServer::wxSocketServer}{wxsocketserverconstr}.
\wxheading{Return value}
Returns a new socket server.
%
% CreateClient
%
\membersection{wxSocketHandler::CreateClient}
\func{wxSocketServer *}{CreateClient}{\param{wxSocketBase::wxSockFlags}{ flags = wxSocketbase::NONE}}
Creates a new wxSocketClient object. The object is automatically registered
to the current socket handler.
For a detailed description of the parameters, see \helpref{wxSocketClient::Connect}{wxsocketclientconnect}.
\wxheading{Return value}
Returns a new socket client.
%
% Master
%
\membersection{wxSocketHandler::Master}\label{wxsockethandlermaster}
\func{static wxSocketHandler\&}{Master}{\void}
Returns a default socket handler.
%
% Wait
%
\membersection{wxSocketHandler::Wait}
\func{int}{Wait}{\param{long}{ seconds},\param{long}{ microseconds}}
Wait for an event on all registered sockets.
\wxheading{Parameters}
\docparam{seconds}{Number of seconds to wait. By default, it waits infinitely.}
\docparam{microsecond}{Number of microseconds to wait.}
\wxheading{Return value}
Returns 0 if a timeout occured, else the number of events detected.
\wxheading{See also}
\helpref{wxSocketBase::Wait}{wxsocketbasewait}
%
% YieldSock
%
\membersection{wxSocketHandler::YieldSock}
\func{void}{YieldSock}{\void}
Execute pending requests in all registered sockets.
% ---------------------------------------------------------------------------
% CLASS: wxSocketServer
% ---------------------------------------------------------------------------
\section{\class{wxSocketServer}}\label{wxsocketserver}
\wxheading{Derived from}
\helpref{wxSocketBase}{wxsocketbase}
% ---------------------------------------------------------------------------
% Members
% ---------------------------------------------------------------------------
\latexignore{\rtfignore{\wxheading{Members}}}
%
% wxSocketServer
%
\membersection{wxSocketServer::wxSocketServer}\label{wxsocketserverconstr}
\func{}{wxSocketServer}{\param{wxSockAddress\&}{ address}, \param{wxSockFlags}{ flags = wxSocketBase::NONE}}
Constructs a new wxSocketServer.
{\bf Warning !} The created object needs to be registered to a socket handler
(see \helpref{wxSocketHandler}{wxsockethandler}).
\wxheading{Parameters}
\docparam{address}{Specifies the local address for the server (e.g. port number).}
\docparam{flags}{Socket flags (See \helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags})}
%
% ~wxSocketServer
%
\membersection{wxSocketServer::\destruct{wxSocketServer}}
\func{}{\destruct{wxSocketServer}}{\void}
Destructs a wxSocketServer object (it doesn't close the accepted connection).
%
% Accept
%
\membersection{wxSocketServer::Accept}
\func{wxSocketBase *}{Accept}{\void}
Creates a new object wxSocketBase and accepts an incoming connection. {\bf Warning !} This function will block the GUI.
\wxheading{Return value}
Returns an opened socket connection.
\wxheading{See also}
\helpref{wxSocketServer::AcceptWith}{wxsocketserveracceptwith}
%
% AcceptWith
%
\membersection{wxSocketServer::AcceptWith}\label{wxsocketserveracceptwith}
\func{bool}{AcceptWith}{\param{wxSocketBase\&}{ socket}}
Accept an incoming connection using the specified socket object.
This is useful when someone wants to inherit wxSocketBase.
\wxheading{Parameters}
\docparam{socket}{Socket to be initialized}
\wxheading{Return value}
Returns TRUE if no error occurs, else FALSE.

View File

@@ -143,7 +143,7 @@ This should be called if you wish to initially view only a single pane in the sp
\wxheading{See also}
\helpref{wxSplitterWindow::SplitVertically}{wxsplitterwindowsplitvertically},\rtfsp
\helpref{wxSplitterWindow::SplitHorizontally}{wxsplitterwindowsplithorizontally}.
\helpref{wxSplitterWindow::SplitHorizontally}{wxsplitterwindowsplithorizontally}
\membersection{wxSplitterWindow::IsSplit}\label{wxsplitterwindowissplit}
@@ -189,9 +189,25 @@ programmatically or using the wxSplitterWindow user interface.
The default implementation of this function simply hides {\it removed}. You
may wish to delete the window.
\membersection{wxSplitterWindow::OnSashPositionChange}\label{wxsplitterwindowonsashpositionchange}
\func{virtual bool}{OnSashPositionChange}{\param{int }{newSashPosition}}
Application-overridable function called when the sash position is changed by
user. It may return FALSE to prevent the change or TRUE to allow it.
\wxheading{Parameters}
\docparam{newSashPosition}{The new sash position (always positive or zero)}
\wxheading{Remarks}
The default implementation of this function verifies that the sizes of both
panes of the splitter are greater than minimum pane size.
\wxheading{See also}
\helpref{wxSplitterWindow::Unsplit}{wxsplitterwindowunsplit}
\helpref{wxSplitterWindow::GetMinimumPaneSize}{wxsplitterwindowgetminimumpanesize}
\membersection{wxSplitterWindow::SetSashPosition}\label{wxsplitterwindowsetsashposition}
@@ -255,7 +271,7 @@ Only sets the internal variable; does not update the display.
\membersection{wxSplitterWindow::SplitHorizontally}\label{wxsplitterwindowsplithorizontally}
\func{bool}{SplitHorizontally}{\param{wxWindow* }{window1}, \param{wxWindow* }{window2},
\param{int}{ sashPosition = -1}}
\param{int}{ sashPosition = 0}}
Initializes the top and bottom panes of the splitter window.
@@ -265,8 +281,10 @@ Initializes the top and bottom panes of the splitter window.
\docparam{window2}{The bottom pane.}
\docparam{sashPosition}{The initial position of the sash. If the value is -1, a default position
is chosen.}
\docparam{sashPosition}{The initial position of the sash. If this value is
positive, it specifies the size of the upper pane. If it's negative, it's
absolute value gives the size of the lower pane. Finally, specify 0 (default)
to choose the default position (half of the total window height).}
\wxheading{Return value}
@@ -274,18 +292,19 @@ TRUE if successful, FALSE otherwise (the window was already split).
\wxheading{Remarks}
This should be called if you wish to initially view two panes. It can also be called at any subsequent time,
but the application should check that the window is not currently split using \helpref{IsSplit}{wxsplitterwindowissplit}.
This should be called if you wish to initially view two panes. It can also be
called at any subsequent time, but the application should check that the
window is not currently split using \helpref{IsSplit}{wxsplitterwindowissplit}.
\wxheading{See also}
\helpref{wxSplitterWindow::SplitVertically}{wxsplitterwindowsplitvertically}, \helpref{wxSplitterWindow::IsSplit}{wxsplitterwindowissplit},\rtfsp
\helpref{wxSplitterWindow::Unsplit}{wxsplitterwindowunsplit}.
\helpref{wxSplitterWindow::Unsplit}{wxsplitterwindowunsplit}
\membersection{wxSplitterWindow::SplitVertically}\label{wxsplitterwindowsplitvertically}
\func{bool}{SplitVertically}{\param{wxWindow* }{window1}, \param{wxWindow* }{window2},
\param{int}{ sashPosition = -1}}
\param{int}{ sashPosition = 0}}
Initializes the left and right panes of the splitter window.
@@ -295,8 +314,10 @@ Initializes the left and right panes of the splitter window.
\docparam{window2}{The right pane.}
\docparam{sashPosition}{The initial position of the sash. If the value is -1, a default position
is chosen.}
\docparam{sashPosition}{The initial position of the sash. If this value is
positive, it specifies the size of the left pane. If it's negative, it's
absolute value gives the size of the right pane. Finally, specify 0 (default)
to choose the default position (half of the total window width).}
\wxheading{Return value}

View File

@@ -39,6 +39,12 @@ Deletes string list, deallocating strings.
Adds string to list, allocating memory.
\membersection{wxStringList::Clear}
\func{void}{Clear}{\void}
Clears all strings from the list.
\membersection{wxStringList::Delete}
\func{void}{Delete}{\param{const wxString\& }{s}}

View File

@@ -11,7 +11,8 @@ This class represents a tab control, which manages multiple tabs.
\wxheading{See also}
\helpref{wxTabEvent}{wxtabevent}, \helpref{wxImageList}{wximagelist}
\helpref{wxTabEvent}{wxtabevent}, \helpref{wxImageList}{wximagelist},\rtfsp
\helpref{wxNotebook}{wxnotebook}
\latexignore{\rtfignore{\wxheading{Members}}}
@@ -117,7 +118,7 @@ Returns the string for the given tab.
\membersection{wxTabCtrl::GetRowCount}\label{wxtabctrlgetrowcount}
\constfunc{bool}{GetRowCount}{\void}
\constfunc{int}{GetRowCount}{\void}
Returns the number of rows in the tab control.

48
docs/latex/wx/tconfig.tex Normal file
View File

@@ -0,0 +1,48 @@
\section{Config classes overview}\label{wxconfigoverview}
Classes: \helpref{wxConfig}{wxconfigbase}
This overview briefly describes what the config classes are and what are the
for. All the details about how to use them may be found in the description of
the \helpref{wxConfigBase}{wxconfigbase} class and the documentation of the
file, registry and INI file based implementations mentions all the
features/limitations specific to each one of these versions.
The config classes provide a way to store some application configuration
information. They were especially designed for this usage and, although may
probably be used for many other things as well, should be limited to it. It
means that this information should be:
\begin{itemize}
\item{1.} Typed, i.e. strings or numbers for the moment. You can not store
binary data, for example.
\item{2.} Small. For instance, it is not recommended to use the Windows
registry for amounts of data more than a couple of kilobytes.
\item{3.} Not performance critical, neither from speed nor from memory
consumption point of view.
\end{itemize}
On the other hand, the provided features make them very useful for storing all
kind of small to medioum volumes of hierarchically organized heterogenous
data. In short, this is a place where you can conveniently stuff all your data
(numbers and strings) organizing it in a tree where you use the
filesystem-like paths to specify the location of a piece of data. In
particular, these classes were designed to be as easy to use as possible.
From another point of view, they provide an interface which hides the
differences between the Windows registry and the standard Unix text format
configuration files. Other (future) implementations of wxConfigBase might also
understand GTK ressource files or their analogues on the KDE side.
In any case, each implementation of wxConfigBase does its best (although due
to the limitations of the underlying physical storage as in the case of
wxIniConfigs it may not implement 100\% of the base class functionality) to
make the data look the same way everywhere. So you have the groups of entries
and the entries themselves. Each entry contains either a string or a number
(or a boolean value... support for other types of data such as dates or
timestamps is planned) and is identified by the full path to it: something
like /MyApp/UserPreferences/Colors/Foreground. The previous elements in the
path are the group names, each name may contain an arbitrary number of entries
and subgroups. The path components are {\bf always} separated with a slash,
even though some implementations use the backslash internally. The further
details (including how to read/write these entries) may be found in
\helpref{wxConfigBase}{wxconfigbase} documentation.

View File

@@ -1,56 +1,84 @@
\section{Debugging overview}\label{debuggingoverview}
Classes: \helpref{wxDebugContext}{wxdebugcontext}, \helpref{wxDebugStreamBuf}{wxdebugstreambuf},
\rtfsp\helpref{wxObject}{wxobject}
Classes, functions and macros: \helpref{wxDebugContext}{wxdebugcontext}, \helpref{wxObject}{wxobject}, \helpref{wxLog}{wxlog},
\rtfsp\helpref{Log functions}{logfunctions}, \helpref{Debug macros}{debugmacros}
Various classes, functions and macros are provided in wxWindows to help you debug
your application. Most of these are only available if you compile both wxWindows,
your application and {\it all} libraries that use wxWindows with the DEBUG flag
set to 1 or more.
your application and {\it all} libraries that use wxWindows with the \_\_WXDEBUG\_\_ symbol
defined. You can also test the \_\_WXDEBUG\_\_ symbol in your own applications to execute
code that should be active only in debug mode.
wxDebugContext is a class that never gets instantiated, but ties together
various functions and variables. It allows you to set the debugging stream, dump
all objects to that stream, write statistics about object allocation, and
\wxheading{wxDebugContext}
\helpref{wxDebugContext}{wxdebugcontext} is a class that never gets instantiated, but ties together
various static functions and variables. It allows you to dump all objects to that stream, write statistics about object allocation, and
check memory for errors.
You can use the \helpref{WXTRACE}{trace} macro to output debugging information in DEBUG mode;
it will be defined to nothing for non-debugging code.
It is good practice to define a Dump member function for each class you derive
from a wxWindows class, so that wxDebugContext::Dump can call it and
It is good practice to define a \helpref{wxObject::Dump}{wxobjectdump} member function for each class you derive
from a wxWindows class, so that \helpref{wxDebugContext::Dump}{wxdebugcontextdump} can call it and
give valuable information about the state of the application.
If you have difficulty tracking down a memory leak, recompile
in debugging mode and call \helpref{wxDebugContext::Dump}{wxdebugcontextdump} and \helpref{wxDebugContext::PrintStatistics}{wxdebugcontextprintstatistics} at
appropriate places. They will tell you what objects have not yet been
deleted, and what kinds of object they are. In fact, in debug mode wxWindows will automatically
detect memory leaks when your application is about to exit, and if there are any leaks,
will give you information about the problem. (How much information depends on the operating system
and compiler -- some systems don't allow all memory logging to be enabled). See the
memcheck sample for example of usage.
For wxDebugContext to do its work, the {\it new} and {\it delete}\rtfsp
operators for wxObject have been redefined to store extra information
about dynamically allocated objects (but not statically declared
objects). This slows down a debugging version of an application, but can
in theory find difficult-to-detect memory leaks (objects are not
find difficult-to-detect memory leaks (objects are not
deallocated), overwrites (writing past the end of your object) and
underwrites (writing to memory in front of the object).
If you have difficulty tracking down a memory leak, recompile
in debugging mode and call wxDebugContext::Dump and wxDebugContext::Statistics
at appropriate places. They will tell you what objects have not yet been
deleted, and what kinds of object they are.
If you use the macro WXDEBUG\_NEW instead of the normal 'new', the debugging
output (and error messages reporting memory problems) will also tell you what
file and on what line you allocated the object.
To avoid the need for replacing existing new operators with WXDEBUG\_NEW, you
can write this at the top of each application file:
If debugging mode is on and the symbol wxUSE\_GLOBAL\_MEMORY\_OPERATORS is set
to 1 in setup.h, 'new' is defined to be:
{\small
\begin{verbatim}
#define new WXDEBUG\_NEW
#define new new(__FILE__,__LINE__)
\end{verbatim}
}%
In non-debugging mode, this will revert to the usual interpretation
of new. Note that for this not to mess up new-based allocation of non-wxObject derived classes and
built-in types, there are global definitions of new and delete which match
the syntax required for storing filename and line numbers. These merely
call malloc and free, and so do not do anything interesting. The definitions
may possibly cause multiple symbol problems for some compilers and so might
need to be omitted by setting the USE\_GLOBAL\_MEMORY\_OPERATORS to 0 in wx\_setup.h
All occurrences of 'new' in wxWindows and your own application will use
the overridden form of the operator with two extra arguments. This means that the debugging
output (and error messages reporting memory problems) will tell you what
file and on what line you allocated the object. Unfortunately not all
compilers allow this definition to work properly, but most do.
\wxheading{Debug macros}
You should also use \helpref{debug macros}{debugmacros} as part of a `defensive programming' strategy,
scattering wxASSERTs liberally to test for problems in your code as early as possible. Forward thinking
will save a surprising amount of time in the long run.
\helpref{wxASSERT}{wxassert} is used to pop up an error message box when a condition
is not true. You can also use \helpref{wxASSERT\_MSG}{wxassertmsg} to supply your
own helpful error message. For example:
{\small
\begin{verbatim}
void MyClass::MyFunction(wxObject* object)
{
wxASSERT_MSG( (object != NULL), "object should not be NULL in MyFunction!" );
...
};
\end{verbatim}
}
The message box allows you to continue execution or abort the program. If you are running
the application inside a debugger, you will be able to see exactly where the problem was.
\wxheading{Logging functions}
You can use the \helpref{wxLogDebug}{wxlogdebug} and \helpref{wxLogTrace}{wxlogtrace} functions to output debugging information in debug mode;
it will do nothing for non-debugging code.
\subsection{wxDebugContext overview}\label{wxdebugcontextoverview}
@@ -59,8 +87,7 @@ need to be omitted by setting the USE\_GLOBAL\_MEMORY\_OPERATORS to 0 in wx\_set
Class: \helpref{wxDebugContext}{wxdebugcontext}
wxDebugContext is a class for performing various debugging and memory tracing
operations. wxDebugContext, and the related macros and function WXTRACE and
wxTrace, are only present if USE\_DEBUG\_CONTEXT is used.
operations.
This class has only static data and function members, and there should be
no instances. Probably the most useful members are SetFile (for directing output
@@ -70,35 +97,26 @@ Dump (for dumping the dynamically allocated objects) and PrintStatistics
Check to check memory blocks for integrity.
Here's an example of use. The SetCheckpoint ensures that only the
allocations done after the checkpoint will be dumped. Unfortunately
the define of new to WXDEBUG\_NEW does not work for Borland C++ (and
perhaps other compilers) because it fails to find the correct overloaded
operator for non-object usage of new. Instead, you need to use WXDEBUG\_NEW
explicitly if there are any examples of non-object new usage in the file.
allocations done after the checkpoint will be dumped.
\begin{verbatim}
#define new WXDEBUG_NEW
wxDebugContext::SetCheckpoint();
wxDebugContext::SetFile("c:\\temp\\debug.log");
wxString *thing = new wxString;
// Proves that defining 'new' to be 'WXDEBUG_NEW' doesn't mess up
// non-object allocation. Doesn't work for Borland C++.
char *ordinaryNonObject = new char[1000];
wxDebugContext::Dump();
wxDebugContext::PrintStatistics();
\end{verbatim}
You can use wxDebugContext if DEBUG is 1 or more, or you can use it
at any other time (if USE\_DEBUG\_CONTEXT is 1). It is not disabled
for DEBUG = 1 (as in earlier versions of wxWindows) because you
may not wish to recompile wxWindows and your entire application
just to make use of the error logging facility. This is especially
true in a Windows NT or Windows 95 environment, where you cannot
easily output to a debug window: wxDebugContext can be used to
write to log files instead.
You can use wxDebugContext if \_\_WXDEBUG\_\_ is defined, or you can use it
at any other time (if wxUSE\_DEBUG\_CONTEXT is set to 1 in setup.h). It is not disabled
in non-debug mode because you may not wish to recompile wxWindows and your entire application
just to make use of the error logging facility.
Note: wxDebugContext::SetFile has a problem at present, so use the default stream instead.
Eventually the logging will be done through the wxLog facilities instead.

View File

@@ -38,8 +38,8 @@ These might override predefined event handlers such as \helpref{wxWindow::OnChar
\rtfsp\helpref{wxWindow::OnMouseEvent}{wxwindowonmouseevent}.
Most modern applications will have an on-line, hypertext help system; for this, you
need wxHelp and the \helpref{wxHelpControllerBase}{wxhelpcontrollerbase} class to control
wxHelp. To add sparkle, you might use the wxToolBar class (documented separately)
need wxHelp and the \helpref{wxHelpController}{wxhelpcontroller} class to control
wxHelp. To add sparkle, you might use the wxToolBar class
which makes heavy use of the \helpref{wxBitmap}{wxbitmap}.
GUI applications aren't all graphical wizardry. List and hash table needs are

146
docs/latex/wx/tlog.tex Normal file
View File

@@ -0,0 +1,146 @@
\section{Log classes overview}\label{wxlogoverview}
Classes: \helpref{wxLog}{wxlog}
%\helpref{wxLogStderr}{wxlogstderr},%
%\helpref{wxLogOstream}{wxlogostream}, \helpref{wxLogTextCtrl}{wxlogtextctrl},%
%\helpref{wxLogWindow}{wxlogwindow}, \helpref{wxLogGui}{wxloggui},%
%\helpref{wxLogNull}{wxlognull}%
This is a general overview of logging classes provided by wxWindows. The word
logging here has a broad sense, including all of the program output, not only
non interactive messages. The logging facilities included in wxWindows provide
the base {\it wxLog} class which defines the standard interface for a {\it log
target} as well as several standard implementations of it and a family of
functions to use with them.
First of all, no knowledge of {\it wxLog} classes is needed to use them. For
this, you should only know about {\it wxLogXXX()} functions. All of them have
the same syntax as {\it printf()}, i.e. they take the format string as the
first argument and a variable number of arguments. Here are all of them:
\begin{itemize}\itemsep=0pt
\item{\bf wxLogFatalError} which is like {\it wxLogError}, but also
terminates the program with the exit code 3 (using {\it abort()} standard
function also terminates the program with this exit code).
\item{\bf wxLogError} is the function to use for error messages, i.e. the
messages that must be shown to the user. The default processing is to pop up a
message box to inform the user about it.
\item{\bf wxLogWarning} for warnings - they are also normally shown to the
user, but don't interrupt the program work.
\item{\bf wxLogMessage} is for all normal, informational messages. They also
appear in a message box by default (but it can be changed, see below). Notice
that the standard behaviour is to not show informational messages if there are
any errors later - the logic being that the later error messages make the
informational messages preceding them meaningless.
\item{\bf wxLogVerbose} is for verbose output. Normally, it's suppressed, but
might be activated if the user wishes to know more details about the program
progress (another, but possibly confusing name for the same function is {\bf
wxLogInfo}).
\item{\bf wxLogStatus} is for status messages - they will go into the status
bar of the active or specified (as the first argument) \helpref{wxFrame}{wxframe} if it has one.
\item{\bf wxLogSysError} is mostly used by wxWindows itself, but might be
handy for logging errors after system call (API function) failure. It logs the
specified message text as well as the last system error
code ({\it errno} or {\it ::GetLastError()} depending on the platform) and the corresponding error
message. The second form of this function takes the error code explitly as the
first argument.
\item{\bf wxLogDebug} is {\bf the} right function for debug output. It only
does anything at all in the debug mode (when the preprocessor symbol
\_\_WXDEBUG\_\_ is defined) and expands to nothing in release mode (otherwise).
\item{\bf wxLogTrace} as {\bf wxLogDebug} only does something in debug
build. The reason for making it a separate function from it is that usually
there are a lot of trace messages, so it might make sense to separate them
from other debug messages which would be flooded in them. Moreover, the second
version of this function takes a trace mask as the first argument which allows
to further restrict the amount of messages generated.
\end{itemize}
The usage of these functions should be fairly straightforward, however it may
be asked why not use the other logging facilities, such as C standard stdio
functions or C++ streams. The short answer is that they're all very good
generic mechanisms, but are not really adapted for wxWindows, while the log
classes are. Some of advantages in using wxWindows log functions are:
\begin{itemize}\itemsep=0pt
\item{\bf Portability} It's a common practice to use {\it printf()} statements or
cout/cerr C++ streams for writing out some (debug or otherwise) information.
Although it works just fine under Unix, these messages go strictly nowhere
under Windows where the stdout of GUI programs is not assigned to anything.
Thus, you might view {\it wxLogMessage()} as a simple substitute for {\it
printf()}.
\item{\bf Flexibility} The output of wxLog functions can be redirected or
suppressed entirely based on their importance, which is either impossible or
difficult to do with traditional methods. For example, only error messages, or
only error messages and warnings might be logged, filtering out all
informational messages.
\item{\bf Completeness} Usually, an error message should be presented to the user
when some operation fails. Let's take a quite simple but common case of a file
error: suppose that you're writing your data file on disk and there is not
enough space. The actual error might have been detected inside wxWindows code
(say, in {\it wxFile::Write}), so the calling function doesn't really know the
exact reason of the failure, it only knows that the data file couldn't be
written to the disk. However, as wxWindows uses {\it wxLogError()} in this
situation, the exact error code (and the corresponding error message) will be
given to the user together with "high level" message about data file writing
error.
\end{itemize}
After having enumerated all the functions which are normally used to log the
messages, and why would you want to use them we now describe how all this
works.
wxWindows has the notion of a {\it log target}: it's just a class deriving
from \helpref{wxLog}{wxlog}. As such, it implements the virtual functions of
the base class which are called when a message is logged. Only one log target
is {\it active} at any moment, this is the one used by \it{wxLogXXX()}
functions. The normal usage of a log object (i.e. object of a class derived
from wxLog) is to install it as the active target with a call to {\it
SetActiveTarget()} and it will be used automatically by all subsequent calls
to {\it wxLogXXX()} functions.
To create a new log target class you only need to derive it from wxLog and
implement one (or both) of {\it DoLog()} and {\it DoLogString()} in it. The
second one is enough if you're happy with the standard wxLog message
formatting (prepending "Error:" or "Warning:", timestamping \&c) but just want
to send the messages somewhere else. The first one may be overridden to do
whatever you want but you have to distinguish between the different message
types yourself.
There are some predefined classes deriving from wxLog and which might be
helpful to see how you can create a new log target class and, of course, may
also be used without any change. There are:
\begin{itemize}\itemsep=0pt
\item{\bf wxLogStderr} This class logs messages to a {\it FILE *}, using
stderr by default as its name suggests.
\item{\bf wxLogStream} This class has the same functionality as wxLogStderr,
but uses {\it ostream} and cerr instead of {\it FILE *} and stderr.
\item{\bf wxLogGui} This is the standard log target for wxWindows
applications (it's used by default if you don't do anything) and provides the
most reasonable handling of all types of messages for given platform.
\item{\bf wxLogWindow} This log target provides a "log console" which
collects all messages generated by the application and also passes them to the
previous active log target. The log window frame has a menu allowing user to
clear the log, close it completely or save all messages to file.
\item{\bf wxLogNull} The last log class is quite particular: it doesn't do
anything. The objects of this class may be instantiated to (temporarily)
suppress output of {\it wxLogXXX()} functions. As an example, trying to open a
non-existing file will usually provoke an error message, but if you for some
reason it's unwanted, just use this construction:
{\small
\begin{verbatim}
wxFile file;
// wxFile.Open() normally complains if file can't be opened, we don't want it
{
wxLogNull logNo;
if ( !file.Open("bar") )
... process error ourselves ...
} // ~wxLogNull called, old log sink restored
wxLogMessage("..."); // ok
\end{verbatim}
}
\end{itemize}

View File

@@ -5,6 +5,8 @@
This chapter contains a selection of topic overviews.
\input tapp.tex
\input tlog.tex
\input tconfig.tex
\input tbitmap.tex
\input tdialog.tex
\input tfont.tex

View File

@@ -8,10 +8,13 @@ Another is that instances of a class cannot be created just by knowing the name
which makes facilities such as persistent storage hard to implement.
Most C++ GUI frameworks overcome these limitations by means of a set of
macros and functions and wxWindows (from version 1.62) is no exception.
macros and functions and wxWindows is no exception.
Each class that you wish to be known the type system should have
a macro such as DECLARE\_DYNAMIC\_CLASS just inside the class declaration.
The macro IMPLEMENT\_DYNAMIC\_CLASS should be in the implementation file.
Note that these are entirely optional; use them if you wish to check object
types, or create instances of classes using the class name. However,
it is good to get into the habit of adding these macros for all classes.
Variations on these \helpref{macros}{macros} are used for multiple inheritance, and abstract
classes that cannot be instantiated dynamically or otherwise.

119
docs/latex/wx/url.tex Normal file
View File

@@ -0,0 +1,119 @@
\section{\class{wxURL}}\label{wxurl}
\wxheading{Derived from}
\helpref{wxObject}{wxobject}
\wxheading{See also}
\helpref{wxSocketBase}{wxsocketbase}, \helpref{wxProtocol}{wxprotocol}
% ----------------------------------------------------------------------------
% Members
% ----------------------------------------------------------------------------
\latexignore{\rtfignore{\membersection{Members}}}
\membersection{wxURL::wxURL}\label{wxurlconstr}
\func{}{wxURL}{\param{const wxString\&}{ url}}
Constructs an URL object from the string.
\wxheading{Parameters}
\docparam{url}{Url string to parse.}
\membersection{wxURL::\destruct{wxURL}}
\func{}{\destruct{wxURL}}{\void}
Destroys the URL object.
%
% GetProtocolName
%
\membersection{wxURL::GetProtocolName}
\constfunc{wxString}{GetProtocolName}{\void}
Returns the name of the protocol which will be used to get the URL.
%
% GetProtocol
%
\membersection{wxURL::GetProtocol}
\func{wxProtocol\&}{GetProtocol}{\void}
Returns a reference to the protocol which will be used to get the URL.
%
% GetError
%
\membersection{wxURL::GetError}
\constfunc{wxURLError}{GetError}{\void}
Returns the last error. This error refers to the URL parsing or to the protocol.
It can be one of these errors:
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf wxURL\_NOERR}}{No error.}
\twocolitem{{\bf wxURL\_SNTXERR}}{Syntax error in the URL string.}
\twocolitem{{\bf wxURL\_NOPROTO}}{Found no protocol which can get this URL.}
\twocolitem{{\bf wxURL\_NOHOST}}{An host name is required for this protocol.}
\twocolitem{{\bf wxURL\_NOPATH}}{A path is required for this protocol.}
\twocolitem{{\bf wxURL\_CONNERR}}{Connection error.}
\twocolitem{{\bf wxURL\_PROTOERR}}{An error occured during negotiation.}
\end{twocollist}%
%
% GetInputStream
%
\membersection{wxURL::GetInputStream}
\func{wxInputStream *}{GetInputStream}{\void}
Initializes the protocol and opens the input stream.
\wxheading{Return value}
It returns a read-only wxStream.
\wxheading{See also}
\helpref{wxInputStream}{wxinputstream}
%
% SetDefaultProxy
%
\membersection{wxURL::SetDefaultProxy}\label{wxurlsetdefaultproxy}
\func{static void}{SetDefaultProxy}{\param{const wxString\&}{ url\_proxy}}
Sets the default proxy server to use to get the URL. The string specifies
the proxy like this: <hostname>:<port number>.
\wxheading{Parameters}
\docparam{url\_proxy}{Specifies the proxy to use}
\wxheading{See also}
\helpref{wxURL::SetProxy}{wxurlsetproxy}
%
% SetProxy
%
\membersection{wxURL::SetProxy}\label{wxurlsetproxy}
\func{void}{SetProxy}{\param{const wxString\&}{ url\_proxy}}
Sets the proxy to use for this URL.
\wxheading{See also}
\helpref{wxURL::SetDefaultProxy}{wxurlsetdefaultproxy}

View File

@@ -185,6 +185,60 @@ Applies to managed windows (wxFrame and wxDialog classes) only.
\helpref{wxWindow::Destroy}{wxwindowdestroy},\rtfsp
\helpref{wxCloseEvent}{wxcloseevent}
\membersection{wxWindow::ConvertDialogToPixels}\label{wxwindowconvertdialogtopixels}
\func{wxPoint}{ConvertDialogToPixels}{\param{const wxPoint\&}{ pt}}
\func{wxSize}{ConvertDialogToPixels}{\param{const wxSize\&}{ sz}}
Converts a point or size from dialog units to pixels.
For the x dimension, the dialog units are multiplied by the average character width
and then divided by 4.
For the y dimension, the dialog units are multiplied by the average character height
and then divided by 8.
\wxheading{Remarks}
Dialog units are used for maintaining a dialog's proportions even if the font changes.
Dialogs created using Dialog Editor optionally use dialog units.
You can also use these functions programmatically. A convenience macro is defined:
{\small
\begin{verbatim}
#define wxDLG_UNIT(parent, pt) parent->ConvertDialogToPixels(pt)
\end{verbatim}
}
\wxheading{See also}
\helpref{wxWindow::ConvertPixelsToDialog}{wxwindowconvertpixelstodialog}
\membersection{wxWindow::ConvertPixelsToDialog}\label{wxwindowconvertpixelstodialog}
\func{wxPoint}{ConvertPixelsToDialog}{\param{const wxPoint\&}{ pt}}
\func{wxSize}{ConvertPixelsToDialog}{\param{const wxSize\&}{ sz}}
Converts a point or size from pixels to dialog units.
For the x dimension, the pixels are multiplied by 4 and then divided by the average
character width.
For the y dimension, the pixels are multipled by 8 and then divided by the average
character height.
\wxheading{Remarks}
Dialog units are used for maintaining a dialog's proportions even if the font changes.
Dialogs created using Dialog Editor optionally use dialog units.
\wxheading{See also}
\helpref{wxWindow::ConvertDialogToPixels}{wxwindowconvertdialogtopixels}
\membersection{wxWindow::Destroy}\label{wxwindowdestroy}
\func{virtual bool}{Destroy}{\void}
@@ -278,6 +332,16 @@ Note that this is a static function, so it can be called without needing a wxWin
\helpref{wxWindow::SetFocus}{wxwindowsetfocus}
\membersection{wxWindow::FindWindow}\label{wxwindowfindwindow}
\func{wxWindow*}{FindWindow}{\param{long}{ id}}
Find a child of this window, by identifier.
\func{wxWindow*}{FindWindow}{\param{const wxString\&}{ name}}
Find a child of this window, by name.
\membersection{wxWindow::Fit}\label{wxwindowfit}
\func{virtual void}{Fit}{\void}
@@ -556,6 +620,17 @@ Gets the window's title. Applicable only to frames and dialogs.
\helpref{wxWindow::SetTitle}{wxwindowsettitle}
\membersection{wxWindow::GetUpdateRegion}\label{wxwindowgetupdateregion}
\constfunc{virtual wxRegion}{GetUpdateRegion}{\void}
Returns the region specifying which parts of the window have been damaged. Should
only be called within an \helpref{OnPaint}{wxwindowonpaint} event handler.
\wxheading{See also}
\helpref{wxRegion}{wxregion}, \helpref{wxRegionIterator}{wxregioniterator}, \helpref{wxWindow::OnPaint}{wxwindowonpaint}
\membersection{wxWindow::GetWindowStyleFlag}
\constfunc{long}{GetWindowStyleFlag}{\void}
@@ -801,7 +876,7 @@ you may delete other windows.
\wxheading{Remarks}
Derive your own class to handle this message. The default handler returns FALSE.
Derive your own class to handle this message. The default handler returns TRUE.
\wxheading{See also}
@@ -826,6 +901,14 @@ using \helpref{wxCloseEvent::GetForce}{wxcloseeventgetforce}. If this is TRUE,
destroy the window using \helpref{wxWindow::Destroy}{wxwindowdestroy}.
If not, it is up to you whether you respond by destroying the window.
(Note: GetForce is now superceded by CanVeto. So to test whether forced destruction of
the window is required, test for the negative of CanVeto. If CanVeto returns FALSE,
it is not possible to skip window deletion.)
If you don't destroy the window, you should call \helpref{wxCloseEvent::Veto}{wxcloseeventveto} to
let the calling code know that you did not destroy the window. This allows the \helpref{wxWindow::Close}{wxwindowclose} function
to return TRUE or FALSE depending on whether the close instruction was honoured or not.
\wxheading{Remarks}
The \helpref{wxWindow::OnClose}{wxwindowonclose} virtual function remains
@@ -839,7 +922,9 @@ destroying the window if it returns TRUE or if the close is being forced.
\helpref{wxWindow::Close}{wxwindowclose},\rtfsp
\helpref{wxWindow::OnClose}{wxwindowonclose},\rtfsp
\helpref{wxWindow::Destroy}{wxwindowdestroy},\rtfsp
\helpref{wxCloseEvent}{wxcloseevent}
\helpref{wxCloseEvent}{wxcloseevent},\rtfsp
\helpref{wxApp::OnQueryEndSession}{wxapponqueryendsession},\rtfsp
\helpref{wxApp::OnEndSession}{wxapponendsession}
\membersection{wxWindow::OnDropFiles}\label{wxwindowondropfiles}
@@ -1072,7 +1157,7 @@ terms of the client area, and are unscrolled, so you will need to do
some calculations using the current view position to obtain logical,
scrolled units.
Here is an example of using the \helpref{wxUpdateIterator}{wxupdateiterator} class:
Here is an example of using the \helpref{wxRegionIterator}{wxregioniterator} class:
{\small%
\begin{verbatim}
@@ -1086,7 +1171,7 @@ void MyWindow::OnPaint(wxPaintEvent& event)
ViewStart(&vbX,&vbY);
int vX,vY,vW,vH; // Dimensions of client area in pixels
wxUpdateIterator upd(this); // get the update rect list
wxRegionIterator upd(GetUpdateRegion()); // get the update rect list
while (upd)
{
@@ -1114,8 +1199,6 @@ void MyWindow::OnPaint(wxPaintEvent& event)
\helpref{wxPaintDC}{wxpaintdc},\rtfsp
\helpref{Event handling overview}{eventhandlingoverview}
\membersection{wxWindow::OnScroll}\label{wxwindowonscroll}
\func{void}{OnScroll}{\param{wxScrollEvent\& }{event}}
Called when a scroll event is received from one of the window's built-in scrollbars.
@@ -1347,6 +1430,12 @@ Available only under Windows.
Use this function to optimise your scrolling implementations, to minimise the area that must be
redrawn.
\membersection{wxWindow::SetAcceleratorTable}\label{wxwindowsetacceleratortable}
\func{virtual void}{SetAcceleratorTable}{\param{const wxAcceleratorTable\&}{ accel}}
Sets the accelerator table for this window. See \helpref{wxAcceleratorTable}{wxacceleratortable}.
\membersection{wxWindow::SetAutoLayout}\label{wxwindowsetautolayout}
\func{void}{SetAutoLayout}{\param{const bool}{ autoLayout}}

36
docs/motif/changes.txt Normal file
View File

@@ -0,0 +1,36 @@
wxMotif CHANGES
---------------
21/9/98
-------
Julian:
- Made makefiles for wxMotif source directory and minimal sample.
- First go at wxApp, wxWindow, wxDialog, wxPen, wxBrush, wxFont,
wxColour, wxButton, wxCheckBox, wxTextCtrl, wxStaticText,
wxMenu, wxMenuItem, wxMenuBar
12/11/98
--------
It's a long time since I updated this file. Previously done:
- wxFrame, wxDialog done.
- wxScrolledWindow done (but backing pixmap not used at present).
- wxBitmap done though could be tidied it up at some point.
- Most basic controls are there, if not rigorously tested.
- Some MDI support (menus appear on child frames at present).
- wxNotebook almost done.
- wxToolBar done (horizontal only, which would be easy to extend
to vertical toolbars).
More recently:
- Colour and font changing done (question mark over what happens
to scrollbars).
- Accelerators done (for menu items and buttons). Also event loop
tidied up in wxApp so that events are filtered through ProcessXEvent.
- wxWindow::GetUpdateRegion should now work.

70
docs/motif/install.txt Normal file
View File

@@ -0,0 +1,70 @@
wxWindows 2.0 for Motif installation
------------------------------------
- Prerequisites: Motif 1.2 or above, or
Lesstif (not yet tested).
- Download the files wx200gen.zip and wx200mot.zip, and
documentation in a preferred format, such as wx200htm.zip
or wx200pdf.zip.
- Make a directory such as ~/wx and unzip the files into this
directory. Use the -a option if available to convert the ASCII
files to Unix format. Don't worry about files being
overwritten: they should be identical anyway.
- Edit src/make.env to change options according to your local
environment. In particular, change WXDIR to where wxWindows is
found on your system.
Later, there will be a better makefile system
and/or alternate make.env files as per wxWindows 1.68.
Please feel free to contribute settings files for your environment.
- Change directory to src/motif and type:
make -f makefile.unx motif
This should make the library libwx_motif.a in the lib
directory.
- Make a sample, such as the minimal sample:
cd samples/minimal
make -f makefile.unx motif
and run the resulting minimal_motif binary.
Notes:
------
- Better installation and makefile systems are
required. I didn't use the wxGTK system because I couldn't
understand it or make it work with wxMotif. Also I think
we should use something that can be made to work easily
with applications outside the wxWindows hierarchy.
- Debugging mode is switched on by default. To compile in non-debug
mode, remove the -D__WXDEBUG__ switch in make.env.
- Some classes can be switched off in include/wx/motif/setup.h,
if you are having trouble with a particular file. However,
I'd prefer you to fix the problem and send the fix to me :-) or at
least let me know about it.
- If you run into problems with a missing X11/Xpm.h header, you
need to install the XPM package. It can be obtained from:
ftp://ftp.x.org/contrib/libraries/xpm-3.4k.tar.gz
Alternatively, edit include/motif/setup.h, set wxUSE_XPM
to 0, and recompile. You will not be able to load any XPMs,
though (currently the only supported colour bitmap format).
- Please send bug reports with a description of your environment,
compiler and the error message(s) to the wxwin-users mailing list at:
wxwin-users@wx.dent.med.uni-muenchen.de
Julian Smart, November 1998.
julian.smart@ukonline.co.uk

145
docs/motif/todo.txt Normal file
View File

@@ -0,0 +1,145 @@
wxMotif TODO
------------
Updated: 12/11/98
-------------------------------o-------------------------
General comment: see the following site for useful Motif widgets.
ftp://ftp.x.org/contrib/widgets/motif
Also, grep for TODO comments in source.
High Priority
-------------
- Work out why XFreeFont in font.cpp produces a segv. This is
currently commented out, which presumably causes a memory leak.
- Colour setting in widgets (almost done). Should scrollbars take
on the background colour? Not right for e.g. wxScrolledWindows,
so maybe have wxSystemSettings value for scrollbar colour, and/or
ability to set scrollbar colour independently.
- Optimize wxWindow OnPaint to avoid flicker, collapsing Expose events
as per flicker fix in 1.68. It will be tricky to avoid
interfering with non-wxScrolledWindow widgets except by
explicitly testing for wxScrolledWindow.
- Implementation of OnEraseBackground. How? Call OnEraseBackground
just before OnPaint? Will duplicate Xlib's own erase of the background.
However, this is usually OK, because the default wxWindow::OnEraseBackground
can do nothing (SetBackgroundColour will make the background look OK).
And if a custom OnEraseBackground uses the same colour as the window
background, no flicker will be seen. If it does something else, such as
painting a tiled bitmap, then a slight flicker might be seen unless
X can be persuaded not to repaint the window background by default.
- Finish wxNotebook.
- wxSpinButton
- Tidy dialogs such as the colour and font selectors.
- Use generic wxTreeCtrl, wxListCtrl: debug and enhance these.
- Find out why modal dialogs give a grab warning.
- wxSystemSettings. Eventually, should have control panel-like utility
to change colours/fonts but meanwhile should maybe read them
from a file.
- wxThread (hopefully, similar to wxGTK)
- wxGrid: scrollbars don't hide; problem with cell selection.
- MDI: seems to be broken for a more complex application I'm testing.
Frame decorations don't draw properly, and a child window doesn't
process events properly. So probably we should have an alternative
implementation that uses tabs, a la wxGTK. The system menu could
be implemented using a pop-up menu that applies to the currently
active window.
- Controls in a wxToolBar don't work. Probably due to form layout
problems; the workaround is to use a separate panel for controls.
- Miscellaneous events.
- Write makefiles for all samples and utilities.
- Create some samples for testing.
Low Priority
------------
- Better makefile system that can put objects in different dirs.
Use wxGTK config system? It's really complex to debug and
doesn't offer a way of compiling apps outside the wxWin
hierarchy.
- Extra wxBitmap formats: PNG, BMP. Could use old wxWin 1.68
wxImage code (derived from XV) for BMP/GIF but it's very bloated. However,
when implemented as extra bitmap handlers, the code won't be linked
unless needed.
- Print/preview framework in print.cpp (see wxGTK).
- Enhance event handling such that you override e.g. left-click
and unless you call the base OnMouseEvent, the click won't be
sent to the button. Required for Dialog Editor.
- Get Dialog Editor working under Motif.
- New wxHelp version: try using the XmHTML widget at
http://www.xs4all.nl/~ripley/XmHTML/.
We need to:
- make a minimal distribution under wx/src/xmhtml, just enough
to compile the source.
- add XMHTML_C_SRC to src/motif/makefile.unx with the source files
listed.
- make sure we can compile the sources, passing the correct
flags for zlib/png compilation.
- make a wxHTMLWindow class from e.g. examples/example_2.c. Should
probably make the cache and history facilities part of the class.
- add the driver code to src/motif/helphtml.cpp (a frame, toolbar,
history list).
- Optimize screen refresh for non-native widgets, e.g. wxWindow
created with Create(), using technique in flicker patch for 1.68
(see JACS for latest patch).
- Copy and paste, drag and drop. Use a standard X drag
and drop standard - see http://www.cco.caltech.edu/~jafl/xdnd/
or use Motif drag and drop as described here:
http://www.motifzone.com/tmd/articles/DnD/dnd.html
- Optimize colour management so we don't get clashes when e.g.
Netscape is running. See:
http://www.motifzone.com/tmd/articles/John_Cwikla/index.html
- wxRCConfig (a config class using X .rc files). Could simply
implement it in terms of current wxGet/WriteResource functions.
- wxCheckBoxList
- wxBitmapCheckBox, wxBitmapRadioButton
- Reimplement combobox using Lesstif's widget (avoiding GPL'ed
widget currently used).
- Write generic wxDirDialog (directory selector)
- Use native Motif dialogs for wxMessageBox
- Miscellaneous classes e.g. wxJoystick (identical to GTK's one for
Linux)
- Blit scaling
- Could eventually alter the MDI widgets to be more Windows-like
-- currently it's half-hearted (menus are on children, whereas
they should replace the main parent frame menu).
- Get ODBC classes and sample working.

View File

@@ -2,6 +2,42 @@
wxWindows 2.0 for Windows Change Log
------------------------------------
Alpha 17, November 22nd 1998
----------------------------
- More documentation updates, especially for
wxLayoutWindow classes and debugging facilities.
- Changed wxDebugContext to use wxDebugLog instead
of wxTrace.
- Now supports VC++ 6.0, and hopefully BC++ 5.0.
However, DLL support may be broken for BC++ since
VC++ 6 required changing of WXDLLEXPORT keyword
position.
- Numerous miscellaneous changes.
Alpha 16, September 8th 1998
----------------------------
- Added wxSashWindow, wxSashLayoutWindow classes, and sashtest
sample.
- Guilhem's socket classes added, plus wxsocket sample.
- A few more makefiles added.
- GnuWin32/BC++ compatibility mods.
- Further doc updates.
- wxProp updates for correct working with wxGTK.
Alpha 15, August 31st 1998
--------------------------
- wxBitmap debugged.
- wxDC::GetDepth added.
- Contribution added whereby wxBitmap will be
converted to DC depth if they don't match.
- wxConfig API improved, documentation updated.
- Printing classes name conventions cleaned up.
- wxUpdateUIEvent now derives from wxCommandEvent
so event can travel up the window hierachy.
Alpha 14, July 31st 1998
------------------------

View File

@@ -116,6 +116,9 @@ Gotchas:
- install.exe doesn't have built-in decompression because lzexpand.lib
isn't available with Gnu-Win32. However, you can use it with external
decompression utilities.
- Doesn't compile socket-related files due to a syntax error in
GnuWin32's Sockets.h.
- Doesn't compile src/msw/ole files, so no drag and drop.
References:

View File

@@ -32,40 +32,6 @@ wxDebugStreamBuf it might help, but I don't know how to do that -
I've redefined 'new' throughout as WXDEBUG_NEW (which is itself
defined as the 3-argument operator).
Config/registry classes
-----------------------
Problems with Karsten's/Vadim's existing AppConfig classes:
- use char* a lot instead of wxString
- rather hard to understand
- will need fairly substantial rewrite
- no native .ini functions (?) for guaranteed Windows
compatibility
- new wxWin docs required
Good things:
- exists!
- FileConfig independent of OS
- specifying a base class that will meet nearly all needs for
derived classes
- enumerator
Other features we should probably have:
- ability to specify vendor name/app name in constructor
- under Windows, ability to read/write all areas of registry
as an option
Options:
- rewrite AppConfig
- start from own CRegistry class
- take elements from both
- do the Windows stuff, let someone else write/adapt the
non-Windows classes
Owner-draw menus
----------------

View File

@@ -7,9 +7,6 @@ HIGH PRIORITY
Find/add wxThread sample - Arthur T-D?
wxControl dimensions should be optionally based on dialog font
size for portability (dialog units as per Windows).
Implement wxDC floating point transformations.
Add wxDC::DeviceToLogical -> wxPoint etc (convenience accessors).
@@ -17,10 +14,6 @@ Add wxDC::DeviceToLogical -> wxPoint etc (convenience accessors).
Revamp Dialog Editor for new controls and properties (e.g.
window id).
Tidy wxConfig API.
Change DnD classes to use global symbols, and wxString.
Update manual.
wxApp changes DONE
wxMenu changes DONE
@@ -33,9 +26,10 @@ Update manual.
wxTaskBarIcon DONE
wxMsgCatalog etc.
wxLog
wxConfig, wxRegKey
wxConfig DONE
wxRegKey
wxTabCtrl DONE
wxNotebook
wxNotebook DONE (some more explanation required)
wxWave DONE
wxJoystick DONE
wxStatusBar95 and wxFrame status bar functions
@@ -44,8 +38,8 @@ Update manual.
wxHelpController classes DONE (except for Unix ones)
wxString PARTLY DONE
Drag and drop (change API if required, e.g. const).
wxCheckListBox
wxAcceleratorTable
wxCheckListBox DONE
wxAcceleratorTable DONE
wxBaseArray, other arrays
(wxOwnerDrawn)
Document the include file for each class
@@ -63,8 +57,6 @@ objects.
More wxSystemSettings (see comment in settings.cpp).
wxSocket integration.
Convert remaining utilities e.g. (GLCanvas; wxGraphLayout) and samples
Check TODO entries.
@@ -79,7 +71,7 @@ for all controls, at least in WXWIN_COMPATIBLE mode, but
retain (Set)Callback for all compilations. This is following a
panicky response to losing callbacks.
Merge dib.cpp, dibutils.cpp.
Merge dib.cpp, dibutils.cpp (see also some DIB code in bitmap.cpp).
Add a wxTabCtrl sample.
@@ -89,6 +81,14 @@ printer characteristics) and more reliable printing framework.
Add GetIcon, GetBitmap to wxImageList. Perhaps store bitmaps
in image list so we can get them later.
Add centring, right justify styles to wxStaticText.
Synchronize drawing functions on all platforms, using Chris's
code to test them.
Extend wxSystemSettings to get symbols for current nationality,
e.g. ',' instead of '.' for decimal points.
LOW PRIORITY
------------
@@ -151,7 +151,9 @@ substituting static text for obsolete labels).
Improve and expand wxSizer classes.
Write more validators.
Write more validators. Also, how do they work if loading the
dialog from a .wxr? Could call SetValidator from within
InitDialog for all controls, then call TransferDataToWindow.
Classes for file/OS utility functions.
@@ -181,3 +183,5 @@ more efficient).
Perhaps rewrite wxFile to use FILE* descriptors, so Eof and Flush
can work.
Find out how to set wxFileSelector position.

View File

@@ -56,6 +56,6 @@ __XLC__ ?? compiler
wxWindows modes:
----------------
__WXDEBUG__ usage: #ifdef __DEBUG__ (=> debug mode, else => release)
__WXDEBUG__ usage: #ifdef __WXDEBUG__ (=> debug mode, else => release)
WXDEBUG usage: #if DEBUG (0: release, 1: minimal debug code, ...)

View File

@@ -15,5 +15,10 @@
#include "wx/generic/colrdlgg.h"
#endif
#ifndef __WXMSW__
#define wxColourDialog wxGenericColourDialog
#define sm_classwxColourDialog sm_classwxColourDialog
#endif
#endif
// _WX_COLORDLG_H_BASE_

View File

@@ -15,5 +15,7 @@
#include "wx/stubs/colour.h"
#endif
#define wxColor wxColour
#endif
// _WX_COLOUR_H_BASE_

View File

@@ -23,9 +23,9 @@
// ----------------------------------------------------------------------------
// it won't compile without it anyhow
#ifndef USE_WXCONFIG
#error "Please define USE_WXCONFIG or remove config.cpp from your makefile"
#endif // USE_WXCONFIG
#ifndef wxUSE_CONFIG
#error "Please define wxUSE_CONFIG or remove config.cpp from your makefile"
#endif // wxUSE_CONFIG
// ----------------------------------------------------------------------------
// constants
@@ -112,9 +112,9 @@ public:
// Not all args will always be used by derived classes, but
// including them all in each class ensures compatibility.
// If appName is empty, uses wxApp name
wxConfigBase(const wxString& appName = wxEmptyString, const wxString& vendorName = wxEmptyString,
const wxString& localFilename = wxEmptyString, const wxString& globalFilename = wxEmptyString,
long style = 0);
wxConfigBase(const wxString& appName = "", const wxString& vendorName = "",
const wxString& localFilename = "", const wxString& globalFilename = "",
long style = 0);
// empty but ensures that dtor of all derived classes is virtual
virtual ~wxConfigBase() { }
@@ -155,7 +155,7 @@ public:
virtual bool Read(const wxString& key, wxString *pStr) const = 0;
virtual bool Read(const wxString& key, wxString *pStr, const wxString& defVal) const;
virtual wxString Read(const wxString& key, const wxString& defVal) const;
virtual wxString Read(const wxString& key, const wxString& defVal = "") const;
virtual bool Read(const wxString& key, long *pl) const = 0;
virtual bool Read(const wxString& key, long *pl, long defVal) const;
@@ -164,6 +164,11 @@ public:
{ long l; Read(strKey, &l, defVal); return l; }
// Convenience functions that are built on other forms
// int
virtual bool Read(const wxString& key, int *pi) const;
virtual bool Read(const wxString& key, int *pi, int defVal) const;
// double
virtual bool Read(const wxString& key, double* val) const;
virtual bool Read(const wxString& key, double* val, double defVal) const;
@@ -276,14 +281,14 @@ private:
#if defined(__WXMSW__) && wxCONFIG_WIN32_NATIVE
#ifdef __WIN32__
#define wxConfig wxRegConfig
#define classwxConfig classwxRegConfig
#define sm_classwxConfig sm_classwxRegConfig
#else //WIN16
#define wxConfig wxIniConfig
#define classwxConfig classwxIniConfig
#define sm_classwxConfig sm_classwxIniConfig
#endif
#else // either we're under Unix or wish to use files even under Windows
#define wxConfig wxFileConfig
#define classwxConfig classwxFileConfig
#define sm_classwxConfig sm_classwxFileConfig
#endif

View File

@@ -20,7 +20,7 @@
#include "wx/object.h"
#include "wx/string.h"
#if USE_TIMEDATE
#if wxUSE_TIMEDATE
enum wxdate_format_type {wxMDY, wxDAY, wxMONTH, wxFULL, wxEUROPEAN};

View File

@@ -18,7 +18,7 @@
#include <wx/stream.h>
class wxDataInputStream: public wxFilterInputStream {
class WXDLLEXPORT wxDataInputStream: public wxFilterInputStream {
public:
wxDataInputStream(wxInputStream& s);
virtual ~wxDataInputStream();
@@ -31,7 +31,7 @@ public:
wxString ReadString();
};
class wxDataOutputStream: public wxFilterOutputStream {
class WXDLLEXPORT wxDataOutputStream: public wxFilterOutputStream {
public:
wxDataOutputStream(wxOutputStream& s);
virtual ~wxDataOutputStream();

View File

@@ -31,7 +31,7 @@
<BR>
<BR>
Extensive use of these macros is recommended! Remember that ASSERTs are
disabled in final (without WXDEBUG defined) build, so they add strictly
disabled in final (without __WXDEBUG__ defined) build, so they add strictly
nothing to your program's code. On the other hand, CHECK macros do stay
even in release builds, but in general are not much of a burden, while
a judicious use of them might increase your program's stability.
@@ -51,7 +51,7 @@
@param szFile and nLine - file name and line number of the ASSERT
szMsg - optional message explaining the reason
*/
void wxOnAssert(const char *szFile, int nLine, const char *szMsg = (const char *) NULL);
void WXDLLEXPORT wxOnAssert(const char *szFile, int nLine, const char *szMsg = (const char *) NULL);
/// generic assert macro
#define wxASSERT(cond) if ( !(cond) ) wxOnAssert(__FILE__, __LINE__)
@@ -62,12 +62,12 @@
// no more bugs ;-)
#define wxASSERT(cond)
#define wxASSERT_MSG(x, m)
#endif //WXDEBUG
#endif //__WXDEBUG__
/// special form of assert: always triggers it (in debug mode)
#define wxFAIL wxASSERT(0)
#define wxFAIL wxASSERT(wxFalse)
/// FAIL with some message
#define wxFAIL_MSG(msg) wxASSERT_MSG(0, msg)
#define wxFAIL_MSG(msg) wxASSERT_MSG(wxFalse, msg)
//@}
// NB: these macros work also in release mode!

View File

@@ -21,6 +21,7 @@
#include "glib.h"
#include "gdk/gdk.h"
#include "gtk/gtk.h"
#include "wx/gtk/win_gtk.h"
#endif
@@ -30,11 +31,11 @@
#include "wx/version.h"
// Helps SGI compilation, apparently
#if defined(__SGI__)
#if defined(__SGI__)
#if defined(__GNUG__)
#define __need_wchar_t
#else
/* Note I use the term __SGI_CC__ for both cc and CC, its not a good idea to
/* Note I use the term __SGI_CC__ for both cc and CC, its not a good idea to
* mix gcc and cc/CC, the name mangling is different */
#define __SGI_CC__
#endif
@@ -104,6 +105,10 @@
typedef unsigned int bool;
#endif
#if defined(_MSC_VER) && (_MSC_VER == 1020)
#define bool unsigned int
#endif
#if ( defined(_MSC_VER) && (_MSC_VER <= 800) ) || defined(__GNUWIN32__)
#define byte unsigned char
#endif
@@ -145,7 +150,7 @@ typedef int wxWindowID;
# ifdef WXMAKINGDLL
# define WXDLLEXPORT __declspec( dllexport )
# define WXDLLEXPORT_DATA(type) __declspec( dllexport ) type
# define WXDLLEXPORT_CTORFN __declspec( dllexport )
# define WXDLLEXPORT_CTORFN // __declspec( dllexport )
# elif defined(WXUSINGDLL)
# define WXDLLEXPORT __declspec( dllimport )
# define WXDLLEXPORT_DATA(type) __declspec( dllimport ) type
@@ -206,13 +211,13 @@ enum ErrCode
// be considered as an error by some overzealous debugging implementations of
// the library, so we do it ourselves)
#if defined(__SGI_CC__)
// Okay this is bad styling, but the native SGI compiler is very picky, it
// Okay this is bad styling, but the native SGI compiler is very picky, it
// wont let you compare/assign between a NULL (void *) and another pointer
// type. To be really clean we'd need to pass in another argument, the type
// of p.
// Also note the use of 0L, this would allow future possible 64bit support
// (as yet untested) by ensuring that we zero all the bits in a pointer
// (which is always the same length as a long (at least with the LP64 standard)
// type. To be really clean we'd need to pass in another argument, the type
// of p.
// Also note the use of 0L, this would allow future possible 64bit support
// (as yet untested) by ensuring that we zero all the bits in a pointer
// (which is always the same length as a long (at least with the LP64 standard)
// --- offer aug 98
#define wxDELETE(p) if ( (p) ) { delete (p); p = 0L; }
#else
@@ -230,12 +235,16 @@ enum ErrCode
/// size of statically declared array
#define WXSIZEOF(array) (sizeof(array)/sizeof(array[0]))
// Use of these suppresses some compiler warnings
WXDLLEXPORT_DATA(extern const bool) wxTrue;
WXDLLEXPORT_DATA(extern const bool) wxFalse;
// ----------------------------------------------------------------------------
// compiler and OS identification
// ----------------------------------------------------------------------------
// OS
#if defined(__HPUX__) || defined(____SVR4____) || defined(__LINUX__) || defined(__sgi )
#if defined(__HPUX__) || defined(____SVR4____) || defined(__LINUX__) || defined(__sgi ) || defined(__unix__)
#ifndef __UNIX__
#define __UNIX__
#endif
@@ -262,7 +271,7 @@ enum ErrCode
// warnings just must be disabled
#ifdef __VISUALC__
#pragma warning(disable: 4514) // unreferenced inline func has been removed
/*
/*
you might be tempted to disable this one also: triggered by CHECK and FAIL
macros in debug.h, but it's, overall, is a rather useful one, so I leave it
and will try to find some way to disable this warning just for CHECK/FAIL.
@@ -272,6 +281,19 @@ enum ErrCode
#endif // VC++
#if _MSC_VER > 1010
#undef try
#undef except
#undef finally
#define except(x) catch(...)
#endif
// where should i put this? we need to make sure of this as it breaks
// the <iostream> code.
#if !wxUSE_IOSTREAMH && defined(__WXDEBUG__)
#undef __WXDEBUG__
#endif
// Callback function type definition
typedef void (*wxFunction) (wxObject&, wxEvent&);
@@ -286,7 +308,7 @@ typedef void (*wxFunction) (wxObject&, wxEvent&);
* Window (cross-group) styles now take up the first half
* of the flag, and control-specific styles the
* second half.
*
*
*/
/*
@@ -365,7 +387,7 @@ typedef void (*wxFunction) (wxObject&, wxEvent&);
/*
* wxToolBar style flags
*/
#define wxTB_3DBUTTONS 0x8000
#define wxTB_HORIZONTAL 0x0002
#define wxTB_VERTICAL 0x0004
@@ -375,7 +397,7 @@ typedef void (*wxFunction) (wxObject&, wxEvent&);
/*
* Apply to all panel items
*/
#define wxCOLOURED 0x0800
// Alignment for panel item labels: replaces characters with zeros
// when creating label, so spaces can be included in string for alignment.
@@ -437,7 +459,7 @@ typedef void (*wxFunction) (wxObject&, wxEvent&);
/*
* wxSlider flags
*/
#define wxSL_HORIZONTAL wxHORIZONTAL
#define wxSL_VERTICAL wxVERTICAL
// The next one is obsolete - use scroll events instead
@@ -455,7 +477,7 @@ typedef void (*wxFunction) (wxObject&, wxEvent&);
/*
* wxScrollBar flags
*/
#define wxSB_HORIZONTAL wxHORIZONTAL
#define wxSB_VERTICAL wxVERTICAL
@@ -686,7 +708,7 @@ enum wxDataFormat
// Virtual keycodes
enum _Virtual_keycodes {
enum wxKeyCode {
WXK_BACK = 8,
WXK_TAB = 9,
WXK_RETURN = 13,
@@ -820,6 +842,8 @@ enum {
#define wxID_PASTE 5032
#define wxID_CLEAR 5033
#define wxID_FIND 5034
#define wxID_DUPLICATE 5035
#define wxID_SELECTALL 5036
#define wxID_FILE1 5050
#define wxID_FILE2 5051
@@ -838,6 +862,11 @@ enum {
#define wxID_NO 5104
#define wxID_STATIC 5105
#define wxID_HIGHEST 5999
// Shortcut for easier dialog-unit-to-pixel conversion
#define wxDLG_UNIT(parent, pt) parent->ConvertDialogToPixels(pt)
#ifdef __WXMSW__
// Stand-ins for Windows types, to avoid
// #including all of windows.h
@@ -868,6 +897,7 @@ typedef void * WXRGNDATA;
typedef void * WXMSG;
typedef unsigned long WXHCONV;
typedef unsigned long WXHKEY;
typedef unsigned long WXHTREEITEM;
typedef void * WXDRAWITEMSTRUCT;
typedef void * WXMEASUREITEMSTRUCT;
typedef void * WXLPCREATESTRUCT;
@@ -879,5 +909,24 @@ typedef int (__stdcall *WXFARPROC)();
#endif
#ifdef __WXMOTIF__
// Stand-ins for X/Xt/Motif types
typedef void* WXWindow;
typedef void* WXWidget;
typedef void* WXAppContext;
typedef void* WXColormap;
typedef void WXDisplay;
typedef void WXEvent;
typedef void* WXCursor;
typedef void* WXPixmap;
typedef void* WXFontStructPtr;
typedef void* WXGC;
typedef void* WXRegion;
typedef void* WXFont;
typedef void* WXImage;
typedef void* WXCursor;
typedef void* WXFontList;
#endif
#endif
// _WX_DEFS_H_

View File

@@ -6,6 +6,7 @@
#include "wx/msw/ole/droptgt.h"
#include "wx/msw/ole/dataobj.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/dnd.h"
#elif defined(__WXGTK__)
#include "wx/gtk/dnd.h"
#elif defined(__WXQT__)

View File

@@ -31,7 +31,6 @@ class wxDocMDIParentFrame: public wxMDIParentFrame
const wxString& title, const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE, const wxString& name = "frame");
bool OnClose(void);
// Extend event processing to search the document manager's event table
virtual bool ProcessEvent(wxEvent& event);
@@ -39,6 +38,7 @@ class wxDocMDIParentFrame: public wxMDIParentFrame
void OnExit(wxCommandEvent& event);
void OnMRUFile(wxCommandEvent& event);
void OnCloseWindow(wxCloseEvent& event);
protected:
wxDocManager *m_docManager;
@@ -61,11 +61,11 @@ class WXDLLEXPORT wxDocMDIChildFrame: public wxMDIChildFrame
long type = wxDEFAULT_FRAME_STYLE, const wxString& name = "frame");
~wxDocMDIChildFrame(void);
bool OnClose(void);
// Extend event processing to search the view's event table
virtual bool ProcessEvent(wxEvent& event);
void OnActivate(wxActivateEvent& event);
void OnCloseWindow(wxCloseEvent& event);
inline wxDocument *GetDocument(void) const { return m_childDocument; }
inline wxView *GetView(void) const { return m_childView; }

View File

@@ -21,7 +21,7 @@
#include "wx/cmndata.h"
#include "wx/string.h"
#if USE_PRINTING_ARCHITECTURE
#if wxUSE_PRINTING_ARCHITECTURE
#include "wx/print.h"
#endif
@@ -34,9 +34,18 @@ class WXDLLEXPORT wxPrintInfo;
class WXDLLEXPORT wxCommand;
class WXDLLEXPORT wxCommandProcessor;
class WXDLLEXPORT wxFileHistory;
class WXDLLEXPORT wxConfigBase;
class WXDLLIMPORT ostream;
class WXDLLIMPORT istream;
#if wxUSE_IOSTREAMH
// N.B. BC++ doesn't have istream.h, ostream.h
# include <iostream.h>
#else
# include <istream>
# include <ostream>
# ifdef _MSC_VER
using namespace std;
# endif
#endif
// Document manager flags
#define wxDOC_SDI 1
@@ -188,7 +197,7 @@ class WXDLLEXPORT wxView: public wxEvtHandler
inline wxDocManager *GetDocumentManager(void) const { return m_viewDocument->GetDocumentManager(); }
#if USE_PRINTING_ARCHITECTURE
#if wxUSE_PRINTING_ARCHITECTURE
virtual wxPrintout *OnCreatePrintout(void);
#endif
@@ -332,8 +341,11 @@ class WXDLLEXPORT wxDocManager: public wxEvtHandler
virtual int GetNoHistoryFiles(void) const;
virtual wxString GetHistoryFile(int i) const;
virtual void FileHistoryUseMenu(wxMenu *menu);
virtual void FileHistoryLoad(const wxString& resourceFile, const wxString& section);
virtual void FileHistorySave(const wxString& resourceFile, const wxString& section);
virtual void FileHistoryRemoveMenu(wxMenu *menu);
virtual void FileHistoryLoad(wxConfigBase& config);
virtual void FileHistorySave(wxConfigBase& config);
virtual void FileHistoryAddFilesToMenu();
virtual void FileHistoryAddFilesToMenu(wxMenu* menu);
protected:
long m_flags;
int m_defaultDocumentNameCounter;
@@ -360,12 +372,11 @@ class WXDLLEXPORT wxDocChildFrame: public wxFrame
long type = wxDEFAULT_FRAME_STYLE, const wxString& name = "frame");
~wxDocChildFrame(void);
bool OnClose(void);
// Extend event processing to search the view's event table
virtual bool ProcessEvent(wxEvent& event);
// void OldOnMenuCommand(int id);
void OnActivate(wxActivateEvent& event);
void OnCloseWindow(wxCloseEvent& event);
inline wxDocument *GetDocument(void) const { return m_childDocument; }
inline wxView *GetView(void) const { return m_childView; }
@@ -391,15 +402,14 @@ class WXDLLEXPORT wxDocParentFrame: public wxFrame
const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
long type = wxDEFAULT_FRAME, const wxString& name = "frame");
bool OnClose(void);
// Extend event processing to search the document manager's event table
virtual bool ProcessEvent(wxEvent& event);
// void OldOnMenuCommand(int id);
wxDocManager *GetDocumentManager(void) const { return m_docManager; }
void OnExit(wxCommandEvent& event);
void OnMRUFile(wxCommandEvent& event);
void OnCloseWindow(wxCloseEvent& event);
protected:
wxDocManager *m_docManager;
@@ -411,7 +421,7 @@ DECLARE_EVENT_TABLE()
* Provide simple default printing facilities
*/
#if USE_PRINTING_ARCHITECTURE
#if wxUSE_PRINTING_ARCHITECTURE
class WXDLLEXPORT wxDocPrintout: public wxPrintout
{
DECLARE_DYNAMIC_CLASS(wxDocPrintout)
@@ -465,7 +475,8 @@ class WXDLLEXPORT wxCommandProcessor: public wxObject
virtual bool Submit(wxCommand *command, bool storeIt = TRUE);
virtual bool Undo(void);
virtual bool Redo(void);
virtual bool CanUndo(void);
virtual bool CanUndo(void) const;
virtual bool CanRedo(void) const;
// Call this to manage an edit menu.
inline void SetEditMenu(wxMenu *menu) { m_commandEditMenu = menu; }
@@ -484,6 +495,8 @@ class WXDLLEXPORT wxCommandProcessor: public wxObject
wxMenu* m_commandEditMenu;
};
// File history management
class WXDLLEXPORT wxFileHistory: public wxObject
{
DECLARE_DYNAMIC_CLASS(wxFileHistory)
@@ -491,21 +504,36 @@ class WXDLLEXPORT wxFileHistory: public wxObject
wxFileHistory(int maxFiles = 9);
~wxFileHistory(void);
// File history management
// Operations
virtual void AddFileToHistory(const wxString& file);
inline virtual int GetNoHistoryFiles(void) const { return m_fileHistoryN; }
virtual wxString GetHistoryFile(int i) const;
virtual int GetMaxFiles(void) const { return m_fileMaxFiles; }
virtual void FileHistoryUseMenu(wxMenu *menu);
virtual void FileHistoryLoad(const wxString& resourceFile, const wxString& section);
virtual void FileHistorySave(const wxString& resourceFile, const wxString& section);
virtual void UseMenu(wxMenu *menu);
// Remove menu from the list (MDI child may be closing)
virtual void RemoveMenu(wxMenu *menu);
virtual void Load(wxConfigBase& config);
virtual void Save(wxConfigBase& config);
virtual void AddFilesToMenu();
virtual void AddFilesToMenu(wxMenu* menu); // Single menu
// Accessors
virtual wxString GetHistoryFile(int i) const;
// A synonym for GetNoHistoryFiles
virtual int GetCount() const { return m_fileHistoryN; }
inline int GetNoHistoryFiles(void) const { return m_fileHistoryN; }
inline wxList& GetMenus() const { return (wxList&) m_fileMenus; }
protected:
// Last n files
char** m_fileHistory;
// Number of files saved
int m_fileHistoryN;
// Menu to maintain
wxMenu* m_fileMenu;
// Menus to maintain (may need several for an MDI app)
wxList m_fileMenus;
// Max files to maintain
int m_fileMaxFiles;
};

View File

@@ -64,7 +64,7 @@ typedef int (CMPFUNC_CONV *CMPFUNC)(const void* pItem1, const void* pItem2);
@memo Base class for template array and list classes
*/
// ----------------------------------------------------------------------------
class wxBaseArray
class WXDLLEXPORT wxBaseArray
{
public:
/** @name ctors and dtor */
@@ -86,19 +86,22 @@ public:
/** @name memory management */
//@{
/// empties the list, but doesn't release memory
void Empty() { m_uiCount = 0; }
void Empty() { m_nCount = 0; }
/// empties the list and releases memory
void Clear();
/// preallocates memory for given number of items
void Alloc(size_t uiSize);
/// minimizes the memory used by the array (frees unused memory)
void Shrink();
//@}
/** @name simple accessors */
//@{
/// number of elements in the array
size_t Count() const { return m_uiCount; }
size_t Count() const { return m_nCount; }
size_t GetCount() const { return m_nCount; }
/// is it empty?
bool IsEmpty() const { return m_uiCount == 0; }
bool IsEmpty() const { return m_nCount == 0; }
//@}
protected:
@@ -110,7 +113,7 @@ protected:
//@{
/// get item at position uiIndex (range checking is done in debug version)
long& Item(size_t uiIndex) const
{ wxASSERT( uiIndex < m_uiCount ); return m_pItems[uiIndex]; }
{ wxASSERT( uiIndex < m_nCount ); return m_pItems[uiIndex]; }
/// same as Item()
long& operator[](size_t uiIndex) const { return Item(uiIndex); }
//@}
@@ -144,8 +147,8 @@ protected:
private:
void Grow(); // makes array bigger if needed
size_t m_uiSize, // current size of the array
m_uiCount; // current number of elements
size_t m_nSize, // current size of the array
m_nCount; // current number of elements
long *m_pItems; // pointer to data
};
@@ -162,7 +165,7 @@ private:
// ----------------------------------------------------------------------------
#define _WX_DEFINE_ARRAY(T, name) \
typedef int (CMPFUNC_CONV *CMPFUNC##T)(T *pItem1, T *pItem2); \
class name : public wxBaseArray \
class WXDLLEXPORTLOCAL name : public wxBaseArray \
{ \
public: \
name() \
@@ -172,9 +175,9 @@ public: \
{ ((wxBaseArray *)this)->operator=((const wxBaseArray&)src); \
return *this; } \
\
T& operator[](size_t uiIndex) const \
T& operator[](size_t uiIndex) const \
{ return (T&)(wxBaseArray::Item(uiIndex)); } \
T& Item(size_t uiIndex) const \
T& Item(size_t uiIndex) const \
{ return (T&)(wxBaseArray::Item(uiIndex)); } \
T& Last() const \
{ return (T&)(wxBaseArray::Item(Count() - 1)); } \
@@ -184,10 +187,10 @@ public: \
\
void Add(T Item) \
{ wxBaseArray::Add((long)Item); } \
void Insert(T Item, size_t uiIndex) \
void Insert(T Item, size_t uiIndex) \
{ wxBaseArray::Insert((long)Item, uiIndex) ; } \
\
void Remove(size_t uiIndex) { wxBaseArray::Remove(uiIndex); } \
void Remove(size_t uiIndex) { wxBaseArray::Remove(uiIndex); } \
void Remove(T Item) \
{ int iIndex = Index(Item); \
wxCHECK2_MSG( iIndex != NOT_FOUND, return, \
@@ -216,7 +219,7 @@ public: \
// ----------------------------------------------------------------------------
#define _WX_DEFINE_SORTED_ARRAY(T, name) \
typedef int (CMPFUNC_CONV *SCMPFUNC##T)(T pItem1, T pItem2); \
class name : public wxBaseArray \
class WXDLLEXPORTLOCAL name : public wxBaseArray \
{ \
public: \
name(SCMPFUNC##T fn) \
@@ -227,9 +230,9 @@ public: \
m_fnCompare = src.m_fnCompare; \
return *this; } \
\
T& operator[](size_t uiIndex) const \
T& operator[](size_t uiIndex) const \
{ return (T&)(wxBaseArray::Item(uiIndex)); } \
T& Item(size_t uiIndex) const \
T& Item(size_t uiIndex) const \
{ return (T&)(wxBaseArray::Item(uiIndex)); } \
T& Last() const \
{ return (T&)(wxBaseArray::Item(Count() - 1)); } \
@@ -240,12 +243,12 @@ public: \
void Add(T Item) \
{ wxBaseArray::Add((long)Item, (CMPFUNC)m_fnCompare); } \
\
void Remove(size_t uiIndex) { wxBaseArray::Remove(uiIndex); } \
void Remove(size_t uiIndex) { wxBaseArray::Remove(uiIndex); } \
void Remove(T Item) \
{ int iIndex = Index(Item); \
wxCHECK2_MSG( iIndex != NOT_FOUND, return, \
"removing inexisting element in wxArray::Remove" ); \
wxBaseArray::Remove((size_t)iIndex); } \
wxBaseArray::Remove((size_t)iIndex); } \
\
private: \
SCMPFUNC##T m_fnCompare; \
@@ -256,7 +259,7 @@ private: \
// ----------------------------------------------------------------------------
#define _WX_DECLARE_LIST(T, name) \
typedef int (CMPFUNC_CONV *CMPFUNC##T)(T** pItem1, T** pItem2); \
class name : public wxBaseArray \
class WXDLLEXPORTLOCAL name : public wxBaseArray \
{ \
public: \
name() { } \
@@ -265,9 +268,9 @@ public: \
\
~name(); \
\
T& operator[](size_t uiIndex) const \
T& operator[](size_t uiIndex) const \
{ return *(T*)wxBaseArray::Item(uiIndex); } \
T& Item(size_t uiIndex) const \
T& Item(size_t uiIndex) const \
{ return *(T*)wxBaseArray::Item(uiIndex); } \
T& Last() const \
{ return *(T*)(wxBaseArray::Item(Count() - 1)); } \
@@ -278,16 +281,16 @@ public: \
void Add(const T* pItem) \
{ wxBaseArray::Add((long)pItem); } \
\
void Insert(const T& Item, size_t uiIndex); \
void Insert(const T* pItem, size_t uiIndex) \
void Insert(const T& Item, size_t uiIndex); \
void Insert(const T* pItem, size_t uiIndex) \
{ wxBaseArray::Insert((long)pItem, uiIndex); } \
\
void Empty(); \
\
T* Detach(size_t uiIndex) \
T* Detach(size_t uiIndex) \
{ T* p = (T*)wxBaseArray::Item(uiIndex); \
wxBaseArray::Remove(uiIndex); return p; } \
void Remove(size_t uiIndex); \
void Remove(size_t uiIndex); \
\
void Sort(CMPFUNC##T fCmp) { wxBaseArray::Sort((CMPFUNC)fCmp); } \
\
@@ -392,6 +395,8 @@ private: \
// # overhead if not used?
// ----------------------------------------------------------------------------
#define WXDLLEXPORTLOCAL WXDLLEXPORT
//@{
/** @name ArrayInt */
WX_DEFINE_ARRAY(int, wxArrayInt);
@@ -403,5 +408,8 @@ WX_DEFINE_ARRAY(void *, wxArrayPtrVoid);
//@}
#undef WXDLLEXPORTLOCAL
#define WXDLLEXPORTLOCAL
#endif // _DYNARRAY_H

View File

@@ -10,6 +10,10 @@
#include <wx/dynarray.h>
#include <wx/hash.h>
#ifdef LoadLibrary
#undef LoadLibrary
#endif
// ---------------------------------------------------------------------------
// wxLibrary
@@ -35,7 +39,7 @@ class wxLibrary: public wxObject {
void MergeWithSystem();
protected:
void PrepareClasses(wxClassInfo **first);
void PrepareClasses(wxClassInfo *first);
};
// ---------------------------------------------------------------------------
@@ -61,9 +65,9 @@ extern wxLibraries wxTheLibraries;
// Interesting defines
#define WXDLL_ENTRY_FUNCTION() \
extern "C" wxClassInfo **wxGetClassFirst(); \
wxClassInfo **wxGetClassFirst() { \
return &wxClassInfo::first; \
extern "C" wxClassInfo *wxGetClassFirst(); \
wxClassInfo *wxGetClassFirst() { \
return wxClassInfo::GetFirst(); \
}
#endif

View File

@@ -186,6 +186,8 @@ const wxEventType wxEVT_COMMAND_TAB_SEL_CHANGING = wxEVT_FIRST + 801;
const wxEventType wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED = wxEVT_FIRST + 802;
const wxEventType wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING = wxEVT_FIRST + 803;
const wxEventType wxEVT_USER_FIRST = wxEVT_FIRST + 2000;
// Compatibility
#if WXWIN_COMPATIBILITY
@@ -294,6 +296,8 @@ public:
wxEVT_COMMAND_COMBOBOX_SELECTED
*/
class WXDLLEXPORT wxClientData;
class WXDLLEXPORT wxCommandEvent: public wxEvent
{
DECLARE_DYNAMIC_CLASS(wxCommandEvent)
@@ -306,9 +310,13 @@ class WXDLLEXPORT wxCommandEvent: public wxEvent
*
*/
// Set/Get listbox/choice client data
inline void SetClientData(char* clientData) { m_clientData = clientData; }
inline char *GetClientData() const { return m_clientData; }
// Set/Get client data from controls
inline void SetClientData(void* clientData) { m_clientData = clientData; }
inline void *GetClientData() const { return m_clientData; }
// Set/Get client object from controls
inline void SetClientObject(wxClientData* clientObject) { m_clientObject = clientObject; }
inline void *GetClientObject() const { return m_clientObject; }
// Get listbox selection if single-choice
inline int GetSelection() const { return m_commandInt; }
@@ -332,8 +340,9 @@ class WXDLLEXPORT wxCommandEvent: public wxEvent
public:
char* m_commandString; // String event argument
int m_commandInt;
long m_extraLong; // Additional information (e.g. select/deselect)
char* m_clientData; // Arbitrary client data
long m_extraLong; // Additional information (e.g. select/deselect)
void* m_clientData; // Arbitrary client data
wxClientData* m_clientObject; // Arbitrary client object
};
// Scroll event class
@@ -678,22 +687,27 @@ class WXDLLEXPORT wxCloseEvent: public wxEvent
public:
inline wxCloseEvent(wxEventType type = wxEVT_NULL, int id = 0)
{ m_eventType = type; m_sessionEnding = TRUE; m_loggingOff = TRUE; m_veto = FALSE;
m_id = id; m_force = FALSE; }
{ m_eventType = type; m_loggingOff = TRUE; m_veto = FALSE;
m_id = id; m_force = FALSE; m_canVeto = FALSE; }
inline bool GetSessionEnding(void) const { return m_sessionEnding; }
inline void SetLoggingOff(bool logOff) { m_loggingOff = logOff; }
inline bool GetLoggingOff(void) const { return m_loggingOff; }
inline void Veto(bool veto = TRUE) { m_veto = veto; }
inline void SetCanVeto(bool canVeto) { m_canVeto = canVeto; }
inline bool CanVeto() const { return m_canVeto; }
inline bool GetVeto(void) const { return m_veto; }
// This is probably obsolete now, since we use CanVeto instead, in
// both OnCloseWindow and OnQueryEndSession.
// m_force == ! m_canVeto i.e., can't veto means we must force it to close.
inline void SetForce(bool force) { m_force = force; }
inline bool GetForce(void) const { return m_force; }
protected:
bool m_sessionEnding;
bool m_loggingOff;
bool m_veto;
bool m_force;
bool m_canVeto;
};
/*
@@ -972,7 +986,7 @@ public:
// the child which has the focus currently (may be NULL - use
// wxWindow::FindFocus then)
wxWindow* GetCurrentFocus() const { return (wxWindow *)m_clientData; }
void SetCurrentFocus(wxWindow *win) { m_clientData = (char *)win; }
void SetCurrentFocus(wxWindow *win) { m_clientData = (void *)win; }
};
/* TODO
@@ -1035,9 +1049,6 @@ class WXDLLEXPORT wxEvtHandler: public wxObject
virtual bool OnClose(void);
inline char *GetClientData(void) const { return m_clientData; }
inline void SetClientData(char *clientData) { m_clientData = clientData; }
virtual bool ProcessEvent(wxEvent& event);
virtual bool SearchEventTable(wxEventTable& table, wxEvent& event);
@@ -1056,7 +1067,6 @@ protected:
protected:
wxEvtHandler* m_nextHandler;
wxEvtHandler* m_previousHandler;
char* m_clientData; // Any user client data
bool m_enabled; // Is event handler enabled?
wxList* m_dynamicEvents;
@@ -1119,6 +1129,8 @@ const wxEventTableEntry theClass::sm_eventTableEntries[] = { \
#define EVT_SIZE(func) { wxEVT_SIZE, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxSizeEventFunction) & func, (wxObject *) NULL },
#define EVT_MOVE(func) { wxEVT_MOVE, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMoveEventFunction) & func, (wxObject *) NULL },
#define EVT_CLOSE(func) { wxEVT_CLOSE_WINDOW, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCloseEventFunction) & func, (wxObject *) NULL },
#define EVT_END_SESSION(func) { wxEVT_END_SESSION, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCloseEventFunction) & func, (wxObject *) NULL },
#define EVT_QUERY_END_SESSION(func) { wxEVT_QUERY_END_SESSION, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCloseEventFunction) & func, (wxObject *) NULL },
#define EVT_PAINT(func) { wxEVT_PAINT, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxPaintEventFunction) & func, (wxObject *) NULL },
#define EVT_ERASE_BACKGROUND(func) { wxEVT_ERASE_BACKGROUND, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxEraseEventFunction) & func, (wxObject *) NULL },
#define EVT_CHAR(func) { wxEVT_CHAR, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCharEventFunction) & func, (wxObject *) NULL },
@@ -1172,7 +1184,7 @@ const wxEventTableEntry theClass::sm_eventTableEntries[] = { \
// EVT_COMMAND
#define EVT_COMMAND(id, cmd, fn) { cmd, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL },
#define EVT_COMMAND_RANGE(id1, id2, cmd, fn) { cmd, id1, id2, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, N(wxObject *) ULL },
#define EVT_COMMAND_RANGE(id1, id2, cmd, fn) { cmd, id1, id2, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL },
// Scrolling
#define EVT_SCROLL(func) \

View File

@@ -120,7 +120,7 @@ public:
bool Error() const { return m_error; }
// dtor closes the file if opened
virtual ~wxFile(); // Temporally virtual because of wxFileStream: I'll change back in a near future.
~wxFile();
private:
// copy ctor and assignment operator are private because

View File

@@ -26,9 +26,9 @@
// ----------------------------------------------------------------------------
// it won't compile without it anyhow
#ifndef USE_WXCONFIG
#error "Please define USE_WXCONFIG or remove fileconf.cpp from your makefile"
#endif // USE_WXCONFIG
#ifndef wxUSE_CONFIG
#error "Please define wxUSE_CONFIG or remove fileconf.cpp from your makefile"
#endif // wxUSE_CONFIG
// ----------------------------------------------------------------------------
// wxFileConfig
@@ -133,9 +133,9 @@ public:
// New constructor: one size fits all. Specify wxCONFIG_USE_LOCAL_FILE
// or wxCONFIG_USE_GLOBAL_FILE to say which files should be used.
wxFileConfig(const wxString& appName, const wxString& vendorName = wxEmptyString,
const wxString& localFilename = wxEmptyString, const wxString& globalFilename = wxEmptyString,
long style = wxCONFIG_USE_LOCAL_FILE);
wxFileConfig(const wxString& appName, const wxString& vendorName = "",
const wxString& localFilename = "", const wxString& globalFilename = "",
long style = wxCONFIG_USE_LOCAL_FILE);
// dtor will save unsaved data
virtual ~wxFileConfig();
@@ -155,18 +155,6 @@ public:
virtual bool HasGroup(const wxString& strName) const;
virtual bool HasEntry(const wxString& strName) const;
#if 0
virtual bool Read(wxString *pstr, const char *szKey,
const char *szDefault = 0) const;
virtual const char *Read(const char *szKey,
const char *szDefault = 0) const;
virtual bool Read(long *pl, const char *szKey, long lDefault) const;
virtual long Read(const char *szKey, long lDefault) const
{ return wxConfigBase::Read(szKey, lDefault); }
virtual bool Write(const char *szKey, const char *szValue);
virtual bool Write(const char *szKey, long lValue);
#endif
virtual bool Read(const wxString& key, wxString *pStr) const;
virtual bool Read(const wxString& key, wxString *pStr, const wxString& defValue) const;
virtual bool Read(const wxString& key, long *pl) const;
@@ -178,6 +166,10 @@ public:
{ return wxConfigBase::Read(key, pl, defVal); }
long Read(const wxString& key, long defVal) const
{ return wxConfigBase::Read(key, defVal); }
bool Read(const wxString& key, int *pi, int defVal) const
{ return wxConfigBase::Read(key, pi, defVal); }
bool Read(const wxString& key, int *pi) const
{ return wxConfigBase::Read(key, pi); }
bool Read(const wxString& key, double* val) const
{ return wxConfigBase::Read(key, val); }
bool Read(const wxString& key, double* val, double defVal) const

View File

@@ -40,101 +40,101 @@ typedef enum {
// ----------------------------------------------------------------------------
// functions
// ----------------------------------------------------------------------------
bool WXDLLEXPORT wxFileExists(const wxString& filename);
WXDLLEXPORT bool wxFileExists(const wxString& filename);
#define FileExists wxFileExists
// does the path exist? (may have or not '/' or '\\' at the end)
bool WXDLLEXPORT wxPathExists(const char *pszPathName);
WXDLLEXPORT bool wxPathExists(const char *pszPathName);
#define wxDirExists wxPathExists
#define DirExists wxDirExists
bool WXDLLEXPORT wxIsAbsolutePath(const wxString& filename);
WXDLLEXPORT bool wxIsAbsolutePath(const wxString& filename);
#define IsAbsolutePath wxIsAbsolutePath
// Get filename
char* WXDLLEXPORT wxFileNameFromPath(char *path);
wxString WXDLLEXPORT wxFileNameFromPath(const wxString& path);
WXDLLEXPORT char* wxFileNameFromPath(char *path);
WXDLLEXPORT wxString wxFileNameFromPath(const wxString& path);
#define FileNameFromPath wxFileNameFromPath
// Get directory
char* WXDLLEXPORT wxPathOnly(char *path);
wxString WXDLLEXPORT wxPathOnly(const wxString& path);
WXDLLEXPORT char* wxPathOnly(char *path);
WXDLLEXPORT wxString wxPathOnly(const wxString& path);
#define PathOnly wxPathOnly
// wxString version
wxString WXDLLEXPORT wxRealPath(const wxString& path);
WXDLLEXPORT wxString wxRealPath(const wxString& path);
void WXDLLEXPORT wxDos2UnixFilename(char *s);
WXDLLEXPORT void wxDos2UnixFilename(char *s);
#define Dos2UnixFilename wxDos2UnixFilename
void WXDLLEXPORT wxUnix2DosFilename(char *s);
WXDLLEXPORT void wxUnix2DosFilename(char *s);
#define Unix2DosFilename wxUnix2DosFilename
// Strip the extension, in situ
void WXDLLEXPORT wxStripExtension(char *buffer);
void WXDLLEXPORT wxStripExtension(wxString& buffer);
WXDLLEXPORT void wxStripExtension(char *buffer);
WXDLLEXPORT void wxStripExtension(wxString& buffer);
// Get a temporary filename, opening and closing the file.
char* WXDLLEXPORT wxGetTempFileName(const wxString& prefix, char *buf = (char *) NULL);
WXDLLEXPORT char* wxGetTempFileName(const wxString& prefix, char *buf = (char *) NULL);
// Expand file name (~/ and ${OPENWINHOME}/ stuff)
char* WXDLLEXPORT wxExpandPath(char *dest, const char *path);
WXDLLEXPORT char* wxExpandPath(char *dest, const char *path);
// Contract w.r.t environment (</usr/openwin/lib, OPENWHOME> -> ${OPENWINHOME}/lib)
// and make (if under the home tree) relative to home
// [caller must copy-- volatile]
char* WXDLLEXPORT wxContractPath (const wxString& filename,
WXDLLEXPORT char* wxContractPath (const wxString& filename,
const wxString& envname = "", const wxString& user = "");
// Destructive removal of /./ and /../ stuff
char* WXDLLEXPORT wxRealPath(char *path);
WXDLLEXPORT char* wxRealPath(char *path);
// Allocate a copy of the full absolute path
char* WXDLLEXPORT wxCopyAbsolutePath(const wxString& path);
WXDLLEXPORT char* wxCopyAbsolutePath(const wxString& path);
// Get first file name matching given wild card.
// Flags are reserved for future use.
#define wxFILE 1
#define wxDIR 2
char* WXDLLEXPORT wxFindFirstFile(const char *spec, int flags = wxFILE);
char* WXDLLEXPORT wxFindNextFile(void);
WXDLLEXPORT char* wxFindFirstFile(const char *spec, int flags = wxFILE);
WXDLLEXPORT char* wxFindNextFile(void);
// Does the pattern contain wildcards?
bool WXDLLEXPORT wxIsWild(const wxString& pattern);
WXDLLEXPORT bool wxIsWild(const wxString& pattern);
// Does the pattern match the text (usually a filename)?
// If dot_special is TRUE, doesn't match * against . (eliminating
// `hidden' dot files)
bool WXDLLEXPORT wxMatchWild(const wxString& pattern, const wxString& text, bool dot_special = TRUE);
WXDLLEXPORT bool wxMatchWild(const wxString& pattern, const wxString& text, bool dot_special = TRUE);
// Concatenate two files to form third
bool WXDLLEXPORT wxConcatFiles(const wxString& file1, const wxString& file2, const wxString& file3);
WXDLLEXPORT bool wxConcatFiles(const wxString& file1, const wxString& file2, const wxString& file3);
// Copy file1 to file2
bool WXDLLEXPORT wxCopyFile(const wxString& file1, const wxString& file2);
WXDLLEXPORT bool wxCopyFile(const wxString& file1, const wxString& file2);
// Remove file
bool WXDLLEXPORT wxRemoveFile(const wxString& file);
WXDLLEXPORT bool wxRemoveFile(const wxString& file);
// Rename file
bool WXDLLEXPORT wxRenameFile(const wxString& file1, const wxString& file2);
WXDLLEXPORT bool wxRenameFile(const wxString& file1, const wxString& file2);
// Get current working directory.
// If buf is NULL, allocates space using new, else
// copies into buf.
// IMPORTANT NOTE getcwd is know not to work under some releases
// of Win32s 1.3, according to MS release notes!
char* WXDLLEXPORT wxGetWorkingDirectory(char *buf = (char *) NULL, int sz = 1000);
WXDLLEXPORT char* wxGetWorkingDirectory(char *buf = (char *) NULL, int sz = 1000);
// Set working directory
bool WXDLLEXPORT wxSetWorkingDirectory(const wxString& d);
WXDLLEXPORT bool wxSetWorkingDirectory(const wxString& d);
// Make directory
bool WXDLLEXPORT wxMkdir(const wxString& dir);
WXDLLEXPORT bool wxMkdir(const wxString& dir);
// Remove directory. Flags reserved for future use.
bool WXDLLEXPORT wxRmdir(const wxString& dir, int flags = 0);
WXDLLEXPORT bool wxRmdir(const wxString& dir, int flags = 0);
// separators in file names
#define FILE_SEP_EXT '.'
@@ -169,17 +169,17 @@ inline bool wxIsPathSeparator(char c)
{ return c == FILE_SEP_PATH_DOS || c == FILE_SEP_PATH_UNIX; }
// does the string ends with path separator?
bool WXDLLEXPORT wxEndsWithPathSeparator(const char *pszFileName);
WXDLLEXPORT bool wxEndsWithPathSeparator(const char *pszFileName);
// split the full path into path (including drive for DOS), name and extension
// (understands both '/' and '\\')
void WXDLLEXPORT wxSplitPath(const char *pszFileName,
WXDLLEXPORT void wxSplitPath(const char *pszFileName,
wxString *pstrPath,
wxString *pstrName,
wxString *pstrExt);
// find a file in a list of directories, returns false if not found
bool WXDLLEXPORT wxFindFileInPath(wxString *pStr, const char *pszPath, const char *pszFile);
WXDLLEXPORT bool wxFindFileInPath(wxString *pStr, const char *pszPath, const char *pszFile);
// ----------------------------------------------------------------------------
// classes

View File

@@ -6,23 +6,23 @@
#elif defined(__WXMOTIF__)
#include "wx/generic/fontdlgg.h"
# define wxFontDialog wxGenericFontDialog
# define classwxFontDialog classwxGenericFontDialog
# define sm_classwxFontDialog sm_classwxGenericFontDialog
#elif defined(__WXGTK__)
#include "wx/generic/fontdlgg.h"
# define wxFontDialog wxGenericFontDialog
# define classwxFontDialog classwxGenericFontDialog
# define sm_classwxFontDialog sm_classwxGenericFontDialog
#elif defined(__WXQT__)
#include "wx/generic/fontdlgg.h"
# define wxFontDialog wxGenericFontDialog
# define classwxFontDialog classwxGenericFontDialog
# define sm_classwxFontDialog sm_classwxGenericFontDialog
#elif defined(__WXMAC__)
#include "wx/generic/fontdlgg.h"
# define wxFontDialog wxGenericFontDialog
# define classwxFontDialog classwxGenericFontDialog
# define sm_classwxFontDialog sm_classwxGenericFontDialog
#elif defined(__WXSTUBS__)
#include "wx/generic/fontdlgg.h"
# define wxFontDialog wxGenericFontDialog
# define classwxFontDialog classwxGenericFontDialog
# define sm_classwxFontDialog sm_classwxGenericFontDialog
#endif
#endif

View File

@@ -8,36 +8,47 @@
// Copyright: (c) Guilhem Lavaux
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_WXFSTREAM_H__
#define _WX_WXFSTREAM_H__
#ifdef __GNUG__
#pragma interface "fstream.h"
#endif
#include <wx/object.h>
#include <wx/string.h>
#include <wx/stream.h>
#include <wx/file.h>
class wxFileInputStream: public wxInputStream, virtual public wxFile {
class wxFileInputStream: public wxInputStream {
public:
wxFileInputStream(const wxString& fileName);
wxFileInputStream(const wxString& ifileName);
wxFileInputStream(wxFile& file);
wxFileInputStream(int fd);
virtual ~wxFileInputStream();
virtual char Peek();
virtual bool Eof() const { return wxFile::Eof(); }
bool Ok() const { return wxFile::IsOpened(); }
bool Ok() const { return m_file->IsOpened(); }
protected:
wxFileInputStream() {}
wxFileInputStream();
size_t DoRead(void *buffer, size_t size);
off_t DoSeekInput(off_t pos, wxSeekMode mode);
off_t DoTellInput() const;
size_t OnSysRead(void *buffer, size_t size);
off_t OnSysSeek(off_t pos, wxSeekMode mode);
off_t OnSysTell() const;
protected:
wxFile *m_file;
bool m_file_destroy;
};
class wxFileOutputStream: public wxOutputStream, virtual public wxFile {
class wxFileOutputStream: public wxOutputStream {
public:
wxFileOutputStream(const wxString& fileName);
wxFileOutputStream(wxFile& file);
wxFileOutputStream(int fd);
virtual ~wxFileOutputStream();
// To solve an ambiguity on GCC
@@ -46,20 +57,18 @@ class wxFileOutputStream: public wxOutputStream, virtual public wxFile {
void Sync();
bool Ok() const { return wxFile::IsOpened(); }
bool Ok() const { return m_file->IsOpened(); }
protected:
wxFileOutputStream() {}
wxFileOutputStream();
size_t DoWrite(const void *buffer, size_t size);
off_t DoSeekOutput(off_t pos, wxSeekMode mode);
off_t DoTellOutput() const;
};
size_t OnSysWrite(const void *buffer, size_t size);
off_t OnSysSeek(off_t pos, wxSeekMode mode);
off_t OnSysTell() const;
class wxFileStream: public wxFileInputStream, public wxFileOutputStream {
public:
wxFileStream(const wxString& fileName);
virtual ~wxFileStream();
protected:
wxFile *m_file;
bool m_file_destroy;
};
#endif

View File

@@ -25,6 +25,7 @@
// Standard cursors
typedef enum {
wxCURSOR_NONE = 0,
wxCURSOR_ARROW = 1,
wxCURSOR_BULLSEYE,
wxCURSOR_CHAR,
@@ -57,7 +58,7 @@ typedef enum {
wxCURSOR_BASED_ARROW_UP,
wxCURSOR_BASED_ARROW_DOWN
#endif
} _standard_cursors_t;
} wxStockCursor;
class WXDLLEXPORT wxSize
{
@@ -198,7 +199,6 @@ class WXDLLEXPORT wxPenList: public wxList
void AddPen(wxPen *pen);
void RemovePen(wxPen *pen);
wxPen *FindOrCreatePen(const wxColour& colour, int width, int style);
wxPen *FindOrCreatePen(const wxString& colour, int width, int style);
};
class WXDLLEXPORT wxBrushList: public wxList
@@ -211,7 +211,6 @@ class WXDLLEXPORT wxBrushList: public wxList
void AddBrush(wxBrush *brush);
void RemoveBrush(wxBrush *brush);
wxBrush *FindOrCreateBrush(const wxColour& colour, int style);
wxBrush *FindOrCreateBrush(const wxString& colour, int style);
};
WXDLLEXPORT_DATA(extern const char*) wxEmptyString;
@@ -326,21 +325,27 @@ extern wxSize WXDLLEXPORT wxGetDisplaySize();
extern void WXDLLEXPORT wxSetCursor(const wxCursor& cursor);
// Useful macro for create icons portably
// Useful macro for creating icons portably
#ifdef __WXMSW__
# define wxICON(X) wxIcon(X##_icon);
#elif defined(__X__)
# define wxICON(X) wxIcon(X##_bits, X##_width, X##_height);
// Load from a resource
# define wxICON(X) wxIcon("" #X "")
#elif defined(__WXGTK__)
// Initialize from an included XPM
# define wxICON(X) wxIcon(X##_xpm)
#else
# define wxICON wxIcon
// This will usually mean something on any platform
# define wxICON(X) wxIcon("" #X "")
#endif
/*
Example:
#define wxbuild_icon "wxbuild"
wxIcon *icon = new wxICON(wxbuild);
wxIcon *icon = new wxICON(mondrian);
expands into:
wxIcon *icon = new wxIcon("mondrian"); // On wxMSW
wxIcon *icon = new wxIcon(mondrian_xpm); // On wxGTK
*/
class WXDLLEXPORT wxResourceCache: public wxList

View File

@@ -56,43 +56,43 @@ protected:
char* m_clientData;
};
wxString WXDLLEXPORT wxGetSingleChoice(const wxString& message, const wxString& caption,
WXDLLEXPORT wxString wxGetSingleChoice(const wxString& message, const wxString& caption,
int n, const wxString *choices, wxWindow *parent = (wxWindow *) NULL,
int x = -1, int y = -1, bool centre = TRUE,
int width = wxCHOICE_WIDTH, int height = wxCHOICE_HEIGHT);
wxString WXDLLEXPORT wxGetSingleChoice(const wxString& message, const wxString& caption,
WXDLLEXPORT wxString wxGetSingleChoice(const wxString& message, const wxString& caption,
int n, char *choices[], wxWindow *parent = (wxWindow *) NULL,
int x = -1, int y = -1, bool centre = TRUE,
int width = wxCHOICE_WIDTH, int height = wxCHOICE_HEIGHT);
// Same as above but gets position in list of strings, instead of string,
// or -1 if no selection
int WXDLLEXPORT wxGetSingleChoiceIndex(const wxString& message, const wxString& caption,
WXDLLEXPORT int wxGetSingleChoiceIndex(const wxString& message, const wxString& caption,
int n, const wxString *choices, wxWindow *parent = (wxWindow *) NULL,
int x = -1, int y = -1, bool centre = TRUE,
int width = wxCHOICE_WIDTH, int height = wxCHOICE_HEIGHT);
int WXDLLEXPORT wxGetSingleChoiceIndex(const wxString& message, const wxString& caption,
WXDLLEXPORT int wxGetSingleChoiceIndex(const wxString& message, const wxString& caption,
int n, char *choices[], wxWindow *parent = (wxWindow *) NULL,
int x = -1, int y = -1, bool centre = TRUE,
int width = wxCHOICE_WIDTH, int height = wxCHOICE_HEIGHT);
// Return client data instead
char* WXDLLEXPORT wxGetSingleChoiceData(const wxString& message, const wxString& caption,
WXDLLEXPORT char* wxGetSingleChoiceData(const wxString& message, const wxString& caption,
int n, const wxString *choices, char **client_data,
wxWindow *parent = (wxWindow *) NULL, int x = -1, int y = -1,
bool centre = TRUE,
int width = wxCHOICE_WIDTH, int height = wxCHOICE_HEIGHT);
char* WXDLLEXPORT wxGetSingleChoiceData(const wxString& message, const wxString& caption,
WXDLLEXPORT char* wxGetSingleChoiceData(const wxString& message, const wxString& caption,
int n, char *choices[], char **client_data,
wxWindow *parent = (wxWindow *) NULL, int x = -1, int y = -1,
bool centre = TRUE,
int width = wxCHOICE_WIDTH, int height = wxCHOICE_HEIGHT);
/*
int WXDLLEXPORT wxGetMultipleChoice(const wxString& message, const wxString& caption,
WXDLLEXPORT int wxGetMultipleChoice(const wxString& message, const wxString& caption,
int n, const wxString *choices,
int nsel, int * selection,
wxWindow *parent = NULL, int x = -1 , int y = -1, bool centre = TRUE,

View File

@@ -0,0 +1,140 @@
/*-*- c++ -*-********************************************************
* exthlp.h - an external help controller for wxWindows *
* *
* (C) 1998 by Karsten Ball<6C>der (Ballueder@usa.net) *
* *
* $Id$
*******************************************************************/
#ifndef WXXHELP_H
#define WXXHELP_H
#if wxUSE_HELP
#ifdef __GNUG__
# pragma interface "wxexthlp.h"
#endif
#include "wx/helpbase.h"
/// Name for map file.
#define WXEXTHELP_MAPFILE "wxhelp.map"
/// Path separator.
#define WXEXTHELP_SEPARATOR '/'
#ifndef WXEXTHELP_DEFAULTBROWSER
/// Default browser name.
# define WXEXTHELP_DEFAULTBROWSER "netscape"
/// Is default browse a variant of netscape?
# define WXEXTHELP_DEFAULTBROWSER_IS_NETSCAPE TRUE
#endif
/// Name of environment variable to set help browser.
#define WXEXTHELP_ENVVAR_BROWSER "WX_HELPBROWSER"
/// Is browser a netscape browser?
#define WXEXTHELP_ENVVAR_BROWSERISNETSCAPE "WX_HELPBROWSER_NS"
/// Maximum line length in map file.
#define WXEXTHELP_BUFLEN 512
/// Character introducing comments/documentation field in map file.
#define WXEXTHELP_COMMENTCHAR ';'
class wxExtHelpMapList;
/**
This class implements help via an external browser.
It requires the name of a directory containing the documentation
and a file mapping numerical Section numbers to relative URLS.
The map file contains two or three fields per line:
numeric_id relative_URL [; comment/documentation]
The numeric_id is the id used to look up the entry in
DisplaySection()/DisplayBlock(). The relative_URL is a filename of
an html file, relative to the help directory. The optional
comment/documentation field (after a ';') is used for keyword
searches, so some meaningful text here does not hurt.
If the documentation itself contains a ';', only the part before
that will be displayed in the listbox, but all of it used for search.
Lines starting with ';' will be ignored.
*/
class wxExtHelpController : public wxHelpControllerBase
{
DECLARE_CLASS(wxExtHelpController)
public:
wxExtHelpController(void);
virtual ~wxExtHelpController(void);
/** This must be called to tell the controller where to find the
documentation.
@param file - NOT a filename, but a directory name.
@return true on success
*/
virtual bool Initialize(const wxString& file, int WXUNUSED(server))
{ return Initialize(file); }
/** This must be called to tell the controller where to find the
documentation.
@param file - NOT a filename, but a directory name.
@return true on success
*/
virtual bool Initialize(const wxString& file);
/** If file is "", reloads file given in Initialize.
@file Name of help directory.
@return true on success
*/
virtual bool LoadFile(const wxString& file = "");
/** Display list of all help entries.
@return true on success
*/
virtual bool DisplayContents(void);
/** Display help for id sectionNo.
@return true on success
*/
virtual bool DisplaySection(int sectionNo);
/** Display help for id sectionNo -- identical with DisplaySection().
@return true on success
*/
virtual bool DisplayBlock(long blockNo);
/** Search comment/documentation fields in map file and present a
list to chose from.
@key k string to search for, empty string will list all entries
@return true on success
*/
virtual bool KeywordSearch(const wxString& k);
/// does nothing
virtual bool Quit(void);
/// does nothing
virtual void OnQuit(void);
/** Tell it which browser to use.
The Netscape support will check whether Netscape is already
running (by looking at the .netscape/lock file in the user's
home directory) and tell it to load the page into the existing
window.
@param browsername The command to call a browser/html viewer.
@param isNetscape Set this to TRUE if the browser is some variant of Netscape.
*/
void SetBrowser(wxString const & browsername = WXEXTHELP_DEFAULTBROWSER,
bool isNetscape = WXEXTHELP_DEFAULTBROWSER_IS_NETSCAPE);
private:
/// Filename of currently active map file.
wxString m_MapFile;
/// How many entries do we have in the map file?
int m_NumOfEntries;
/// A list containing all id,url,documentation triples.
wxList *m_MapList;
/// How to call the html viewer.
wxString m_BrowserName;
/// Is the viewer a variant of netscape?
bool m_BrowserIsNetscape;
/// Call the browser using a relative URL.
bool CallBrowser(wxString const &);
/// Deletes the list and all objects.
void DeleteList(void);
};
#endif
#endif

View File

@@ -21,7 +21,7 @@
#include <stdio.h>
#include "wx/wx.h"
#if USE_HELP
#if wxUSE_HELP
#include "wx/helpbase.h"
@@ -122,6 +122,6 @@ class WXDLLEXPORT wxXLPHelpController: public wxHelpControllerBase
wxXLPHelpClient helpClient;
};
#endif // USE_HELP
#endif // wxUSE_HELP
#endif
// __HELPXLPH__

View File

@@ -59,7 +59,7 @@ class wxImageList: public wxObject
bool Create();
int GetImageCount() const;
int Add( const wxBitmap &bitmap );
wxBitmap *GetBitmap(int index);
const wxBitmap *GetBitmap(int index) const;
bool Replace( int index, const wxBitmap &bitmap );
bool Remove( int index );
bool RemoveAll();

181
include/wx/generic/laywin.h Normal file
View File

@@ -0,0 +1,181 @@
/////////////////////////////////////////////////////////////////////////////
// Name: laywin.h
// Purpose: Implements a simple layout algorithm, plus
// wxSashLayoutWindow which is an example of a window with
// layout-awareness (via event handlers). This is suited to
// IDE-style window layout.
// Author: Julian Smart
// Modified by:
// Created: 04/01/98
// RCS-ID: $Id$
// Copyright: (c) Julian Smart
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_LAYWIN_H_G_
#define _WX_LAYWIN_H_G_
#ifdef __GNUG__
#pragma interface "laywin.h"
#endif
#include "wx/sashwin.h"
const wxEventType wxEVT_QUERY_LAYOUT_INFO = wxEVT_FIRST + 1500;
const wxEventType wxEVT_CALCULATE_LAYOUT = wxEVT_FIRST + 1501;
enum wxLayoutOrientation {
wxLAYOUT_HORIZONTAL,
wxLAYOUT_VERTICAL
};
enum wxLayoutAlignment {
wxLAYOUT_NONE,
wxLAYOUT_TOP,
wxLAYOUT_LEFT,
wxLAYOUT_RIGHT,
wxLAYOUT_BOTTOM,
};
// Not sure this is necessary
// Tell window which dimension we're sizing on
#define wxLAYOUT_LENGTH_Y 0x0008
#define wxLAYOUT_LENGTH_X 0x0000
// Use most recently used length
#define wxLAYOUT_MRU_LENGTH 0x0010
// Only a query, so don't actually move it.
#define wxLAYOUT_QUERY 0x0100
/*
* This event is used to get information about window alignment,
* orientation and size.
*/
class wxQueryLayoutInfoEvent: public wxEvent
{
DECLARE_DYNAMIC_CLASS(wxQueryLayoutInfoEvent)
public:
wxQueryLayoutInfoEvent(wxWindowID id = 0)
{
SetEventType(wxEVT_QUERY_LAYOUT_INFO);
m_requestedLength = 0;
m_flags = 0;
m_id = id;
m_alignment = wxLAYOUT_TOP;
m_orientation = wxLAYOUT_HORIZONTAL;
}
// Read by the app
inline void SetRequestedLength(int length) { m_requestedLength = length; }
inline int GetRequestedLength() const { return m_requestedLength; }
inline void SetFlags(int flags) { m_flags = flags; }
inline int GetFlags() const { return m_flags; }
// Set by the app
inline void SetSize(const wxSize& size) { m_size = size; }
inline wxSize GetSize() const { return m_size; }
inline void SetOrientation(wxLayoutOrientation orient) { m_orientation = orient; }
inline wxLayoutOrientation GetOrientation() const { return m_orientation; }
inline void SetAlignment(wxLayoutAlignment align) { m_alignment = align; }
inline wxLayoutAlignment GetAlignment() const { return m_alignment; }
protected:
int m_flags;
int m_requestedLength;
wxSize m_size;
wxLayoutOrientation m_orientation;
wxLayoutAlignment m_alignment;
};
typedef void (wxEvtHandler::*wxQueryLayoutInfoEventFunction)(wxQueryLayoutInfoEvent&);
#define EVT_QUERY_LAYOUT_INFO(func) { wxEVT_QUERY_LAYOUT_INFO, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxQueryLayoutInfoEventFunction) & func, NULL },
/*
* This event is used to take a bite out of the available client area.
*/
class wxCalculateLayoutEvent: public wxEvent
{
DECLARE_DYNAMIC_CLASS(wxCalculateLayoutEvent)
public:
wxCalculateLayoutEvent(wxWindowID id = 0)
{
SetEventType(wxEVT_CALCULATE_LAYOUT);
m_flags = 0;
m_id = id;
}
// Read by the app
inline void SetFlags(int flags) { m_flags = flags; }
inline int GetFlags() const { return m_flags; }
// Set by the app
inline void SetRect(const wxRect& rect) { m_rect = rect; }
inline wxRect GetRect() const { return m_rect; }
protected:
int m_flags;
wxRect m_rect;
};
typedef void (wxEvtHandler::*wxCalculateLayoutEventFunction)(wxCalculateLayoutEvent&);
#define EVT_CALCULATE_LAYOUT(func) { wxEVT_CALCULATE_LAYOUT, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCalculateLayoutEventFunction) & func, NULL },
// This is window that can remember alignment/orientation, does its own layout,
// and can provide sashes too. Useful for implementing docked windows with sashes in
// an IDE-style interface.
class wxSashLayoutWindow: public wxSashWindow
{
DECLARE_CLASS(wxSashLayoutWindow)
public:
wxSashLayoutWindow(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, long style = wxSW_3D|wxCLIP_CHILDREN, const wxString& name = "layoutWindow");
// Accessors
inline wxLayoutAlignment GetAlignment() const { return m_alignment; };
inline wxLayoutOrientation GetOrientation() const { return m_orientation; };
inline void SetAlignment(wxLayoutAlignment align) { m_alignment = align; };
inline void SetOrientation(wxLayoutOrientation orient) { m_orientation = orient; };
// Give the window default dimensions
inline void SetDefaultSize(const wxSize& size) { m_defaultSize = size; }
// Event handlers
// Called by layout algorithm to allow window to take a bit out of the
// client rectangle, and size itself if not in wxLAYOUT_QUERY mode.
void OnCalculateLayout(wxCalculateLayoutEvent& event);
// Called by layout algorithm to retrieve information about the window.
void OnQueryLayoutInfo(wxQueryLayoutInfoEvent& event);
protected:
wxLayoutAlignment m_alignment;
wxLayoutOrientation m_orientation;
wxSize m_defaultSize;
DECLARE_EVENT_TABLE()
};
class WXDLLEXPORT wxMDIParentFrame;
class WXDLLEXPORT wxFrame;
// This class implements the layout algorithm
class wxLayoutAlgorithm: public wxObject
{
public:
wxLayoutAlgorithm() {}
// The MDI client window is sized to whatever's left over.
bool LayoutMDIFrame(wxMDIParentFrame* frame, wxRect* rect = (wxRect*) NULL);
// mainWindow is sized to whatever's left over.
bool LayoutFrame(wxFrame* frame, wxWindow* mainWindow);
};
#endif
// _WX_LAYWIN_H_G_

View File

@@ -232,7 +232,7 @@ class wxListItemData : public wxObject
{
DECLARE_DYNAMIC_CLASS(wxListItemData);
protected:
public:
wxString m_text;
int m_image;
long m_data;
@@ -306,7 +306,7 @@ class wxListLineData : public wxObject
{
DECLARE_DYNAMIC_CLASS(wxListLineData);
protected:
public:
wxList m_items;
wxRectangle m_bound_all;
wxRectangle m_bound_label;
@@ -359,6 +359,10 @@ class wxListHeaderWindow : public wxWindow
wxListMainWindow *m_owner;
wxCursor *m_currentCursor;
wxCursor *m_resizeCursor;
bool m_isDraging;
int m_column;
int m_minX;
int m_currentX;
public:
wxListHeaderWindow( void );
@@ -367,6 +371,7 @@ class wxListHeaderWindow : public wxWindow
long style = 0, const wxString &name = "columntitles" );
void DoDrawRect( wxPaintDC *dc, int x, int y, int w, int h );
void OnPaint( wxPaintEvent &event );
void DrawCurrent();
void OnMouse( wxMouseEvent &event );
void OnSetFocus( wxFocusEvent &event );
@@ -430,7 +435,6 @@ class wxListMainWindow: public wxScrolledWindow
int m_visibleLines;
wxBrush *m_hilightBrush;
wxColour *m_hilightColour;
wxFont *m_myFont;
int m_xScroll,m_yScroll;
bool m_dirty;
wxImageList *m_small_image_list;
@@ -474,7 +478,6 @@ class wxListMainWindow: public wxScrolledWindow
void OnSetFocus( wxFocusEvent &event );
void OnKillFocus( wxFocusEvent &event );
void OnSize( wxSizeEvent &event );
wxFont *GetMyFont( void );
void DrawImage( int index, wxPaintDC *dc, int x, int y );
void GetImageSize( int index, int &width, int &height );
int GetIndexOfLine( const wxListLineData *line );
@@ -531,13 +534,18 @@ class wxListCtrl: public wxControl
public:
wxListCtrl(void);
wxListCtrl( wxWindow *parent, wxWindowID id,
wxListCtrl( wxWindow *parent, wxWindowID id = -1,
const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize,
long style = 0, const wxString &name = "listctrl" );
long style = wxLC_ICON, const wxValidator& validator = wxDefaultValidator,
const wxString &name = "listctrl" )
{
Create(parent, id, pos, size, style, validator, name);
}
~wxListCtrl(void);
bool Create( wxWindow *parent, wxWindowID id,
bool Create( wxWindow *parent, wxWindowID id = -1,
const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize,
long style = 0, const wxString &name = "listctrl" );
long style = wxLC_ICON, const wxValidator& validator = wxDefaultValidator,
const wxString &name = "listctrl" );
void OnSize( wxSizeEvent &event );
bool GetColumn( int col, wxListItem& item );
bool SetColumn( int col, wxListItem& item );
@@ -596,6 +604,10 @@ class wxListCtrl: public wxControl
// We have to hand down a few functions
void SetBackgroundColour( const wxColour &colour );
void SetForegroundColour( const wxColour &colour );
void SetFont( const wxFont &font );
void SetDropTarget( wxDropTarget *dropTarget )
{ m_mainWin->SetDropTarget( dropTarget ); }
wxDropTarget *GetDropTarget() const
@@ -604,16 +616,12 @@ class wxListCtrl: public wxControl
{ m_mainWin->SetCursor( cursor); }
wxColour GetBackgroundColour() const
{ return m_mainWin->GetBackgroundColour(); }
void SetBackgroundColour( const wxColour &colour )
{ m_mainWin->SetBackgroundColour( colour ); }
wxColour GetForegroundColour() const
{ return m_mainWin->GetForegroundColour(); }
void SetForegroundColour( const wxColour &colour )
{ m_mainWin->SetForegroundColour( colour ); }
bool PopupMenu( wxMenu *menu, int x, int y )
{ return m_mainWin->PopupMenu( menu, x, y ); }
protected:
// implementation
// wxListTextCtrl m_textCtrl;
wxImageList *m_imageListNormal;

View File

@@ -64,7 +64,7 @@ public:
void OnSysColourChanged(wxSysColourChangedEvent& event);
// Process a keyboard navigation message (Tab traversal)
void OnNavigationKey(wxNavigationKeyEvent& event);
protected:
bool SetFocusToNextChild(wxNode *nodeCurrent = (wxNode *) NULL, bool bForward = TRUE);

View File

@@ -0,0 +1,214 @@
/////////////////////////////////////////////////////////////////////////////
// Name: sashwin.h
// Purpose: wxSashWindow implementation. A sash window has an optional
// sash on each edge, allowing it to be dragged. An event
// is generated when the sash is released.
// Author: Julian Smart
// Modified by:
// Created: 01/02/97
// RCS-ID: $Id$
// Copyright: (c) Julian Smart
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_SASHWIN_H_G_
#define _WX_SASHWIN_H_G_
#ifdef __GNUG__
#pragma interface "sashwin.h"
#endif
#include "wx/defs.h"
#include "wx/window.h"
#include "wx/string.h"
#define wxSASH_DRAG_NONE 0
#define wxSASH_DRAG_DRAGGING 1
#define wxSASH_DRAG_LEFT_DOWN 2
enum wxSashEdgePosition {
wxSASH_TOP = 0,
wxSASH_RIGHT,
wxSASH_BOTTOM,
wxSASH_LEFT,
wxSASH_NONE = 100
};
/*
* wxSashEdge represents one of the four edges of a window.
*/
class WXDLLEXPORT wxSashEdge
{
public:
wxSashEdge() { m_show = FALSE; m_border = FALSE; m_margin = 0; }
bool m_show; // Is the sash showing?
bool m_border; // Do we draw a border?
int m_margin; // The margin size
};
/*
* wxSashWindow flags
*/
#define wxSW_3D 0x0004
/*
* wxSashWindow allows any of its edges to have a sash which can be dragged
* to resize the window. The actual content window will be created as a child
* of wxSashWindow.
*/
class WXDLLEXPORT wxSashWindow: public wxWindow
{
DECLARE_DYNAMIC_CLASS(wxSashWindow)
public:
////////////////////////////////////////////////////////////////////////////
// Public API
// Default constructor
wxSashWindow();
// Normal constructor
wxSashWindow(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, long style = wxSW_3D|wxCLIP_CHILDREN, const wxString& name = "sashWindow");
~wxSashWindow();
// Set whether there's a sash in this position
void SetSashVisible(wxSashEdgePosition edge, bool sash);
// Get whether there's a sash in this position
inline bool GetSashVisible(wxSashEdgePosition edge) const { return m_sashes[edge].m_show; }
// Set whether there's a border in this position
inline void SetSashBorder(wxSashEdgePosition edge, bool border) { m_sashes[edge].m_border = border; }
// Get whether there's a border in this position
inline bool HasBorder(wxSashEdgePosition edge) const { return m_sashes[edge].m_border; }
// Get border size
inline int GetEdgeMargin(wxSashEdgePosition edge) const { return m_sashes[edge].m_margin; }
// Sets the default sash border size
inline void SetDefaultBorderSize(int width) { m_borderSize = width; }
// Gets the default sash border size
inline int GetDefaultBorderSize() const { return m_borderSize; }
// Sets the addition border size between child and sash window
inline void SetExtraBorderSize(int width) { m_extraBorderSize = width; }
// Gets the addition border size between child and sash window
inline int GetExtraBorderSize() const { return m_extraBorderSize; }
virtual void SetMinimumSizeX(int min) { m_minimumPaneSizeX = min; }
virtual void SetMinimumSizeY(int min) { m_minimumPaneSizeY = min; }
virtual int GetMinimumSizeX() const { return m_minimumPaneSizeX; }
virtual int GetMinimumSizeY() const { return m_minimumPaneSizeY; }
virtual void SetMaximumSizeX(int max) { m_maximumPaneSizeX = max; }
virtual void SetMaximumSizeY(int max) { m_maximumPaneSizeY = max; }
virtual int GetMaximumSizeX() const { return m_maximumPaneSizeX; }
virtual int GetMaximumSizeY() const { return m_maximumPaneSizeY; }
////////////////////////////////////////////////////////////////////////////
// Implementation
// Paints the border and sash
void OnPaint(wxPaintEvent& event);
// Handles mouse events
void OnMouseEvent(wxMouseEvent& ev);
// Adjusts the panes
void OnSize(wxSizeEvent& event);
// Draws borders
void DrawBorders(wxDC& dc);
// Draws the sashes
void DrawSash(wxSashEdgePosition edge, wxDC& dc);
// Draws the sashes
void DrawSashes(wxDC& dc);
// Draws the sash tracker (for whilst moving the sash)
void DrawSashTracker(wxSashEdgePosition edge, int x, int y);
// Tests for x, y over sash
wxSashEdgePosition SashHitTest(int x, int y, int tolerance = 2);
// Resizes subwindows
void SizeWindows();
// Initialize colours
void InitColours();
protected:
wxSashEdge m_sashes[4];
int m_dragMode;
wxSashEdgePosition m_draggingEdge;
int m_oldX;
int m_oldY;
int m_borderSize;
int m_extraBorderSize;
int m_firstX;
int m_firstY;
int m_minimumPaneSizeX;
int m_minimumPaneSizeY;
int m_maximumPaneSizeX;
int m_maximumPaneSizeY;
wxCursor* m_sashCursorWE;
wxCursor* m_sashCursorNS;
wxColour m_lightShadowColour;
wxColour m_mediumShadowColour;
wxColour m_darkShadowColour;
wxColour m_hilightColour;
wxColour m_faceColour;
DECLARE_EVENT_TABLE()
};
#define wxEVT_SASH_DRAGGED (wxEVT_FIRST + 1200)
enum wxSashDragStatus
{
wxSASH_STATUS_OK,
wxSASH_STATUS_OUT_OF_RANGE
};
class WXDLLEXPORT wxSashEvent: public wxCommandEvent
{
DECLARE_DYNAMIC_CLASS(wxSashEvent)
public:
inline wxSashEvent(int id = 0, wxSashEdgePosition edge = wxSASH_NONE) {
m_eventType = (wxEventType) wxEVT_SASH_DRAGGED; m_id = id; m_edge = edge; }
inline void SetEdge(wxSashEdgePosition edge) { m_edge = edge; }
inline wxSashEdgePosition GetEdge() const { return m_edge; }
//// The rectangle formed by the drag operation
inline void SetDragRect(const wxRect& rect) { m_dragRect = rect; }
inline wxRect GetDragRect() const { return m_dragRect; }
//// Whether the drag caused the rectangle to be reversed (e.g.
//// dragging the top below the bottom)
inline void SetDragStatus(wxSashDragStatus status) { m_dragStatus = status; }
inline wxSashDragStatus GetDragStatus() const { return m_dragStatus; }
private:
wxSashEdgePosition m_edge;
wxRect m_dragRect;
wxSashDragStatus m_dragStatus;
};
typedef void (wxEvtHandler::*wxSashEventFunction)(wxSashEvent&);
#define EVT_SASH_DRAGGED(id, fn) { wxEVT_SASH_DRAGGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSashEventFunction) & fn, NULL },
#define EVT_SASH_DRAGGED_RANGE(id1, id2, fn) { wxEVT_SASH_DRAGGED, id1, id2, (wxObjectEventFunction) (wxEventFunction) (wxSashEventFunction) & fn, NULL },
#endif
// _WX_SASHWIN_H_G_

View File

@@ -6,7 +6,7 @@
// Created: 01/02/97
// RCS-ID: $Id$
// Copyright: (c) Julian Smart and Markus Holzem
// Licence: wxWindows license
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
#ifndef __SPLITTERH_G__
@@ -46,32 +46,33 @@
class WXDLLEXPORT wxSplitterWindow: public wxWindow
{
DECLARE_DYNAMIC_CLASS(wxSplitterWindow)
public:
public:
////////////////////////////////////////////////////////////////////////////
// Public API
// Default constructor
wxSplitterWindow(void);
wxSplitterWindow();
// Normal constructor
wxSplitterWindow(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, long style = wxSP_3D|wxCLIP_CHILDREN, const wxString& name = "splitter");
~wxSplitterWindow(void);
wxSplitterWindow(wxWindow *parent, wxWindowID id = -1,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxSP_3D|wxCLIP_CHILDREN,
const wxString& name = "splitter");
~wxSplitterWindow();
// Gets the only or left/top pane
inline wxWindow *GetWindow1(void) { return m_windowOne; }
wxWindow *GetWindow1() const { return m_windowOne; }
// Gets the right/bottom pane
inline wxWindow *GetWindow2(void) { return m_windowTwo; }
wxWindow *GetWindow2() const { return m_windowTwo; }
// Sets the split mode
inline void SetSplitMode(int mode) { m_splitMode = mode; }
void SetSplitMode(int mode) { m_splitMode = mode; }
// Gets the split mode
inline int GetSplitMode(void) const { return m_splitMode; };
int GetSplitMode() const { return m_splitMode; };
// Initialize with one window
void Initialize(wxWindow *window);
@@ -79,38 +80,49 @@ class WXDLLEXPORT wxSplitterWindow: public wxWindow
// Associates the given window with window 2, drawing the appropriate sash
// and changing the split mode.
// Does nothing and returns FALSE if the window is already split.
// A sashPosition of -1 means choose a default sash position.
bool SplitVertically(wxWindow *window1, wxWindow *window2, int sashPosition = -1);
bool SplitHorizontally(wxWindow *window1, wxWindow *window2, int sashPosition = -1);
// A sashPosition of 0 means choose a default sash position,
// negative sashPosition specifies the size of right/lower pane as it's
// absolute value rather than the size of left/upper pane.
bool SplitVertically(wxWindow *window1,
wxWindow *window2,
int sashPosition = 0);
bool SplitHorizontally(wxWindow *window1,
wxWindow *window2,
int sashPosition = 0);
// Removes the specified (or second) window from the view
// Doesn't actually delete the window.
bool Unsplit(wxWindow *toRemove = (wxWindow *) NULL);
// Is the window split?
inline bool IsSplit(void) const { return (m_windowTwo != NULL); }
bool IsSplit() const { return (m_windowTwo != NULL); }
// Sets the sash size
inline void SetSashSize(int width) { m_sashSize = width; }
void SetSashSize(int width) { m_sashSize = width; }
// Sets the border size
inline void SetBorderSize(int width) { m_borderSize = width; }
void SetBorderSize(int width) { m_borderSize = width; }
// Gets the sash size
inline int GetSashSize(void) const { return m_sashSize; }
int GetSashSize() const { return m_sashSize; }
// Gets the border size
inline int GetBorderSize(void) const { return m_borderSize; }
int GetBorderSize() const { return m_borderSize; }
// Set the sash position
void SetSashPosition(int position, bool redaw = TRUE);
// Gets the sash position
inline int GetSashPosition(void) const { return m_sashPosition; }
int GetSashPosition() const { return m_sashPosition; }
// If this is zero, we can remove panes by dragging the sash.
inline void SetMinimumPaneSize(int min) { m_minimumPaneSize = min; }
inline int GetMinimumPaneSize(void) const { return m_minimumPaneSize; }
void SetMinimumPaneSize(int min) { m_minimumPaneSize = min; }
int GetMinimumPaneSize() const { return m_minimumPaneSize; }
// Called when the sash position is about to be changed, return
// FALSE from here to prevent the change from taking place.
// newSashPosition here is always positive or zero.
virtual bool OnSashPositionChange(int newSashPosition);
// If the sash is moved to an extreme position, a subwindow
// is removed from the splitter window, and the app is
@@ -147,12 +159,12 @@ class WXDLLEXPORT wxSplitterWindow: public wxWindow
bool SashHitTest(int x, int y, int tolerance = 2);
// Resizes subwindows
void SizeWindows(void);
void SizeWindows();
// Initialize colours
void InitColours(void);
void InitColours();
protected:
protected:
int m_splitMode;
wxWindow* m_windowOne;
wxWindow* m_windowTwo;
@@ -174,7 +186,10 @@ class WXDLLEXPORT wxSplitterWindow: public wxWindow
wxPen* m_hilightPen;
wxBrush* m_faceBrush;
wxPen* m_facePen;
DECLARE_EVENT_TABLE()
private:
DECLARE_DYNAMIC_CLASS(wxSplitterWindow)
DECLARE_EVENT_TABLE()
};
#endif
#endif // __SPLITTERH_G__

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