Compare commits

..

427 Commits

Author SHA1 Message Date
Bryan Petty
a2fb1892c1 This commit was manufactured by cvs2svn to create tag
'OLD_CONFIGURE'.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/tags/OLD_CONFIGURE@646 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-01 17:17:05 +00:00
Guilhem Lavaux
f4a8c29f7a * wxCreateDynamicObject() uses an hashtable now
* wxClassInfo::first = NULL after the hashtable is initialized
* dynlib has been simplified.
* Some fix in the serialization core and in wxObject::StoreObject()/LoadObject()
* Updates in utils/serialize/sermain.cpp


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@645 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-01 17:17:05 +00:00
Robert Roebling
2f6407b947 Small fixes to wxChoice, wxComboBox and wxListBox
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@644 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-01 15:41:45 +00:00
Robert Roebling
edaa81ae5d Added Set/GetItemState, GetNextItem.. to wxTreeCtrl
Fixed functions name mismatch SetSizeHint in window and frame
  Added support for non-european fonts and X extension using
   gtk_set_locale()
  Added compile fixes for FreeBSD and folks


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@643 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-01 14:29:21 +00:00
Robert Roebling
30f82ea416 Fixed a few compile things
Fixed wxListCtrl::SetItemState bug
  Tried to hunt down a bug in menu, which
    disappeared after recompiling


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@642 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-09-01 10:26:14 +00:00
Julian Smart
34da0970a0 Fixed MSW printing, tidied up member variable names
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@641 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-28 11:00:50 +00:00
Robin Dunn
451871970b Added some typecasts that the compiler complained about not having
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@640 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-27 23:32:09 +00:00
Robin Dunn
0d6f9504ae Some chicken-and-egg problems solved for wxPython on wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@639 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-27 21:59:51 +00:00
Julian Smart
052ae0e568 Updated wxConfig documentation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@638 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-27 21:10:49 +00:00
Julian Smart
3e0f922848 Added some files I forgot about
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@637 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-27 21:08:39 +00:00
Julian Smart
1824493628 wxConfig changes to be more logical.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@636 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-27 21:06:02 +00:00
Julian Smart
73fb82f3f3 wxUpdateUIEvent derives from wxCommandEvent now
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@635 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-27 07:47:25 +00:00
Robin Dunn
21f4bf4568 - more tweaks
- have discovered some problems but not yet discovered solutions...


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@634 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-27 00:01:17 +00:00
Unknown (RO)
5104949d8a Missing typecast from return.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@633 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-25 22:24:50 +00:00
Julian Smart
0d8d91a98f HKEY -> WXHKEY, wxScrolledWindow::SetScale added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@632 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-24 19:13:34 +00:00
Julian Smart
fd6c844b17 HKEY -> WXHKEY; wxScrolledWindow::SetScale added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@631 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-24 19:11:11 +00:00
Guilhem Lavaux
885ee23543 * wxStream fixes.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@630 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-24 17:22:31 +00:00
Vadim Zeitlin
4128681253 minor fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@629 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-23 22:21:47 +00:00
Karsten Ballüder
c47711479e added (de)select all
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@628 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-23 20:06:24 +00:00
Guilhem Lavaux
6f34921d93 * Fixed two memory leaks.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@627 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-23 14:06:39 +00:00
Julian Smart
d8260b2f57 defs.h corrected (syntax error in wxDELETEA). More unnecessary files removed.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@626 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-23 10:30:17 +00:00
Guilhem Lavaux
1d44aaf824 * New function wxObjectInputStream::Recall()
* Fixes in object serializer,dynlib,LoadObject/StoreObject
* Updates for serialization.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@625 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-23 09:23:27 +00:00
Unknown (RO)
def172b2af Missing \ before _
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@624 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-23 04:50:00 +00:00
Unknown (RO)
c67daf8777 General tidy-up (mainly typecasts) to allow the use of the SGI native
compilers (tested on Irix 6.5 with -mips3 -n32).


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@623 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-23 03:22:56 +00:00
Vadim Zeitlin
cb6780ff01 calling insert("") would provoke an assert - now it's just ignored
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@622 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-22 20:44:07 +00:00
Vadim Zeitlin
1880e45211 bug with checking the first character of possible empty string corrected
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@621 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-22 20:34:00 +00:00
Robin Dunn
f57d793249 some tweaks for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@620 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-22 19:51:18 +00:00
Julian Smart
b6a158b04e Removed redundant makefiles and AIAI icons. Changed dynamic sample source name from
minimal.cpp to dynamic.cpp.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@619 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-22 19:46:35 +00:00
Julian Smart
8fed68d816 Added config resource file and VC++ makefile
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@618 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-22 19:07:11 +00:00
Julian Smart
26ac5fadea Removed child frame CreateStatusBar from MDI sample; renamed config.h to confbase.h;
config.h now includes appropriate files


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@617 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-22 16:41:51 +00:00
Julian Smart
42cfaf8cd4 OGL improvements
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@616 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-22 16:31:11 +00:00
Vadim Zeitlin
32c66ea22e spurious error messages from wxRegKey::HasValue() suppressed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@615 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-21 20:48:45 +00:00
Vadim Zeitlin
cd91632c36 radiobox had some strange ideas about vertical and horizontal directions
(in fact, wxRA_VERTICAL and HORIZONTAL were inverted). corrected.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@614 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-21 20:47:49 +00:00
Julian Smart
567da5c600 Accelerators now work for wxDialog; wxToolBarSimple fixed when dragging out of
the toolbar


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@613 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-21 17:47:19 +00:00
Vadim Zeitlin
257f1d9b85 wxStaticBitmaps were created invisible - corrected
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@612 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-20 22:47:39 +00:00
Guilhem Lavaux
8d43638db1 * Some new feature in wxObject*Stream (objects aren't duplicated)
* Added SetBackgroundBrush in wxGridCell
* New classes/fixes in wxSerial


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@611 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-19 18:33:19 +00:00
Julian Smart
4c444f19cf GDI double-deletion fix, wxBitmap depth bug
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@610 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-19 15:45:05 +00:00
Guilhem Lavaux
857f3be5f1 * Bug fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@609 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-19 07:42:27 +00:00
Robin Dunn
8f89cfc11e A few tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@608 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-19 00:38:23 +00:00
Robin Dunn
c8d07da7a6 Placeholder
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@607 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-19 00:35:04 +00:00
Robin Dunn
9d358552fc new build structure
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@606 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-19 00:10:57 +00:00
Robin Dunn
70551f4702 GTK version of the SWIG-generated files
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@605 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-19 00:10:03 +00:00
Robin Dunn
e181bb6f72 placeholder
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@604 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-19 00:05:43 +00:00
Robin Dunn
b62bdb487f New build directory structure
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@603 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-18 21:55:10 +00:00
Robin Dunn
13dfc24333 ifdef out some wxGTK specific code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-18 21:54:12 +00:00
Robin Dunn
8ab979d738 MSW version of the SWIG-generated files
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@601 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-18 21:52:31 +00:00
Robin Dunn
f42c777d79 moving the SWIG-generated files to toolkit specific subdirectories
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@600 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-18 21:50:11 +00:00
Vadim Zeitlin
3cda63537e uint -> size_t change
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@599 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-18 20:15:51 +00:00
Robin Dunn
0cf2cb360f Added wxTheApp = this; to wxApp::wxApp for wxPython
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@598 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-18 19:57:02 +00:00
Denis Pershin
4540e33bb6 Second try
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@597 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-18 19:54:06 +00:00
Robin Dunn
fb5e0af035 more wxGTK compatibility things.
It builds now but there are serious runtime problems...


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@596 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-18 19:48:20 +00:00
Robin Dunn
eaf3cf57ed a few tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@595 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-18 19:45:09 +00:00
Denis Pershin
befe54c6ca Seems it works reasonably stable...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@594 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-18 19:25:46 +00:00
Robert Roebling
314055fa8d Added TOOL_ENTER command. Now wxGTK and wxMSW misbehave
equally on that matter.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@593 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-18 17:41:55 +00:00
Guilhem Lavaux
c2dd8380ba * wxThread: new functions: wxThread::Pause/Resume, wxThread::GetThreadFromID
* Updates and new objects in utils/serialize
* wxLayout*_Serialize are friends of wxLayout* (so I can access to the
internal fields)
* wxMenu (GTK):  SetTitle/GetTitle (basic implementation)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@592 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-18 17:22:15 +00:00
Vadim Zeitlin
c86f1403c3 globally renamed uint to size_t. This has _not_ been checked under Windows,
although I changed msw files also, so please wait until this evening if you
want to be sure that it compiles. This change should fix 64 bit compilation
problems, but it would be nice to test it...


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@591 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-18 15:36:12 +00:00
Robert Roebling
77ff2d2639 Next attempt at dynlib.cpp
Disabled ImLib's cashing
  Confirmed Vadim's changes to wxListCtrl :-)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@590 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-18 15:28:46 +00:00
Vadim Zeitlin
39570cd479 corrected wxListCtrl compilation problems
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@589 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-18 14:59:26 +00:00
Julian Smart
b8de493fbd Various .tex files updated. .bmp files were corrupted, recomitting.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@588 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-18 14:54:21 +00:00
Karsten Ballüder
cb38104ec7 reordered headers to compile
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@587 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-18 12:37:53 +00:00
Karsten Ballüder
406291e530 #ifdef'd out some parts for non-supported systems.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@586 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-18 12:30:40 +00:00
Karsten Ballüder
53e65b8a50 Added configure to cvs - there are systems without autoconf!
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@585 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-18 12:18:37 +00:00
Robert Roebling
94bd2eded1 Added the static text patch for multiline text
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@584 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-18 07:09:00 +00:00
Vadim Zeitlin
c4afa2cbfd added wxConfigBase documentation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@583 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-17 22:45:47 +00:00
Vadim Zeitlin
c2b1eaf8ca minor change
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@582 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-17 22:22:29 +00:00
Vadim Zeitlin
72cb6ff3b3 a micro bug (but which was enough to break regtest sample) corrected
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@581 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-17 22:19:17 +00:00
Vadim Zeitlin
af9e71a8b4 replaced another printf() with wxLogDebug()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@580 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-17 22:18:21 +00:00
Robin Dunn
f9d855de75 Added missing declaration of wxIcon::operator =(const wxIcon &)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@579 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-17 21:35:03 +00:00
Robert Roebling
77e7a1dc48 Added IRIX compile fixes
Added functions that must be handed down
   from wxListCtrl to the main window


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@578 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-17 20:07:50 +00:00
Robin Dunn
652e7bb422 Removed an extra method definition
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@577 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-17 18:29:40 +00:00
Robin Dunn
324511ce07 Corrected the signature for wxFrame::Maximize
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@576 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-17 18:25:14 +00:00
Robin Dunn
cd0183ca31 Added wxWindow::Center
Corrected the signature for wxWindow::SetSizeHints


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@575 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-17 18:24:32 +00:00
Robert Roebling
ee7ee4698c Added in-place editiging in wxListCtrl
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@574 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-17 17:05:47 +00:00
Robert Roebling
b0d77f437c Added list ctrl sample. Looks better than what I thought...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@573 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-17 15:48:25 +00:00
Robert Roebling
52cbfcf009 Turned wxIcon inline constructors to real constructors
Removed warning from dcclient
  Added wxTheFontList->Add(this) somewhere in wxFont
  CleanUp() now printfs the number of members in
    wxTheBitmapList


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@572 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-17 14:29:53 +00:00
Julian Smart
e8c81745ea Got printing, toolbar samples compiling under Windows again
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@571 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-17 11:11:13 +00:00
Julian Smart
7a11869dde Changed floats to doubles in wxexpr.h; added a flag in accel.h (wxACCEL_NONE for
'no ctrl/alt/shift key')


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@570 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-17 09:39:39 +00:00
Julian Smart
12ed6eb56f Changed floats to doubles
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@569 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-17 09:38:28 +00:00
Robert Roebling
9d3221abf1 GTK's toolbar class has no OnPaint
Added missing bitmap in mdi sample
  Added OpenGL support (I Get segv on
   my Debian/Mesa system, don't know why).


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@568 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-17 09:16:28 +00:00
Vadim Zeitlin
d553992a3c 1) corrected bug in log.cpp which only affected wxGTK: some messages could
appear twice
2) tried to use gtk_widget_set_usize in wxFrame::SetSizeHints(), but it
   still doesn't work...


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@567 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-16 21:02:14 +00:00
Robert Roebling
ff7b1510ea Added mising AddBitmapList in wxBitmap
Added missing deletion of wxFrame's toolbar
  Removed a few superfluous ; (sorry)
  Mentioned dmalloc in INSTALL


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@566 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-16 19:39:29 +00:00
Robert Roebling
11026f7b59 New scrolling for GTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@565 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-16 17:07:17 +00:00
Karsten Ballüder
82dc15db08 added one extra check for emptyness
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@564 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-16 11:28:39 +00:00
Julian Smart
f7387de542 Changed wxMenu::GetTitle to return a wxString.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@563 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-16 08:03:13 +00:00
Robin Dunn
714e6a9e26 More wxGTK work.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@562 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-16 04:31:11 +00:00
Robin Dunn
2d6dfbb778 updated email address
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@561 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-16 04:30:03 +00:00
Vadim Zeitlin
12e7bc479e Karsten's correction undone - this code is (was) correct!
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@560 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-16 01:37:16 +00:00
Karsten Ballüder
76f53a0e39 Added configure option --with-dmalloc to use the dmalloc memory debugging library.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@559 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-15 23:52:16 +00:00
Vadim Zeitlin
1280032d6c '&' are removed from checkbox labels (all controls should call
wxControl::SetLabel and use m_label which contains the label without '&')


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@558 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-15 21:05:06 +00:00
Vadim Zeitlin
8f5f7c82d1 added default values for ax size arguments of SetSizeHints (for msw
compatibility)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@557 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-15 21:03:28 +00:00
Julian Smart
d0fff5cb11 Small changes after Robert's edits
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@556 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-15 20:10:16 +00:00
Robert Roebling
cd53f34118 Fixed my own Makefile bug
New INSTALL
  Fixed path in imrc


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@555 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-15 18:58:26 +00:00
Karsten Ballüder
2b5bd7fd87 fixed GetSelection() inversion bug
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@554 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-15 18:47:23 +00:00
Julian Smart
c2265822fe Added isosurf wxGLCanvas sample, cured OnPaint bug (missing wxPaintDC object)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@553 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-15 17:48:39 +00:00
Karsten Ballüder
6967fbf45b fixed a logical error (! isempty) instead of isempty
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@552 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-15 17:05:48 +00:00
Robert Roebling
a9c96bcce9 Added graying out of menus and buttons
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@551 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-15 15:59:43 +00:00
Robert Roebling
d5c462fd20 DialogEd's missing icons.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@550 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-15 15:23:47 +00:00
Robert Roebling
b127f3011f DialogEd now compiles, links and runs under wxGTK
I didn't say it worked, eh.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@549 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-15 14:45:04 +00:00
Denis Pershin
8b21b87fe3 DP: Just came back from 3 days fishing and found that forget to commit some
changes.

GetBitmap added


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@548 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-15 14:42:09 +00:00
Robert Roebling
8656024d15 Added wxPropList library
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@547 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-15 13:20:52 +00:00
Julian Smart
6a1120ad4c Added GLCanvas library (Win only at present).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@546 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-15 12:43:34 +00:00
Julian Smart
c856c750c0 2 GnuWin32 compile bugs fixed, incl. printf bug in prntdlgg that sent GnuWin32
into an endless loop


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@545 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-15 12:30:42 +00:00
Robert Roebling
8d71b5552e Resource sample works now, apart from
wxRadioBox, which is #ifdef 0 in
   resource.cpp
  Fixed tiny thing in resource.cpp


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@544 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-15 12:06:45 +00:00
Robert Roebling
c33c405087 See last changelog
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@543 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-15 10:52:09 +00:00
Robert Roebling
942be9a749 Makefile fixes
Added resource sample (segvs)
  Added functions to menu, mdi, frame, dialog, window
    that were missing e.g. in wxPython


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@542 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-15 10:47:47 +00:00
Robin Dunn
03e9bead8a - Moved the header in the .i files out of the code that gets put into
the .cpp files.  It caused CVS conflicts because of the RCS ID being
different each time.

- A few minor fixes.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@541 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-15 07:36:54 +00:00
Julian Smart
34138703c3 Changes mostly as a result of __WXSTUBS__ compilation. The stubs code now
compiles under Windows with VC++. Also OGL enhancements espec. wxDrawnShape.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@540 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-15 00:23:28 +00:00
Robin Dunn
853b255a6b Beginings of wxGTK compatibility
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@539 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-14 23:36:49 +00:00
Robert Roebling
903f689bf7 Added validation support
Fixed a few minor things in wxGrid
  Fixed bug in SetClippingregion
  Disabled SetDefault again
  Fixed bug in AddChild, SetSize et al.
  Add PROCESS_ENTER and wxEVT_TEXT_CHANGE
  Renamed OnOk -> OnOK
  Added a few compatibilty functions
  Added code to make iinterception
    of events possible and work


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@538 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-14 22:53:21 +00:00
Vadim Zeitlin
470b7da353 wxLogWindoe changed again: now takes a parent frame in ctor
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@537 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-14 21:49:27 +00:00
Vadim Zeitlin
1845330624 a small GUI glitch corrected (if a frame with child frames was resized, it
was lowered below it's children)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@536 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-14 21:47:49 +00:00
Vadim Zeitlin
568cb54317 WM_MOVE processing added (wxMoveEvent generated)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@535 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-14 21:41:53 +00:00
Unknown (AN)
0059a10283 -somewhat more elegant method, supporting the src subdir (-Markus)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@534 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-14 20:12:00 +00:00
Karsten Ballüder
64a1451536 added option to hide page controls
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@533 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-14 11:20:00 +00:00
Julian Smart
163f0dbef0 wxToolBarBase -> wxToolBar
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@532 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-14 11:15:17 +00:00
Karsten Ballüder
76810b8c97 printing works, page number controls are hidden
portrait/landscape doesn't work, pages are printed wrong


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@531 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-14 11:02:39 +00:00
Robert Roebling
6de97a3b94 Added wxRadioButton (not tested)
Added wxValidator to constructros
  Added resource.cpp
  Added parser stuff
  Added the coolest Makefile.in
  Added callbacks to Menu
  Changed parser.y to include lexer.c for wxGTK
    (Is that right?)
  Can't remeber havning changed the printing stuff.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@530 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-14 10:07:38 +00:00
Karsten Ballüder
3ebece2bda added printing
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@529 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-14 08:33:33 +00:00
Robin Dunn
3b8b23873a made pre-compiling the python files optional
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@528 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-14 03:34:23 +00:00
Robin Dunn
2370fac3f6 removed some definitions that got removed from defs.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@527 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-14 03:16:39 +00:00
Unknown (AN)
e6886957b4 -Debian glibc2 system is 'linux-gnu', not 'Linux';updated .cvsignore's -Markus
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@526 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-13 11:45:43 +00:00
Julian Smart
14b72bf5a6 Attempting to check in this wretched cursor again. Also added SetAcceleratorTable
to wxWindow, GnuWin32 fix in registry.h.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@525 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-13 10:19:16 +00:00
Julian Smart
088a95f5ff Fixed compile bug in dropsrc.cpp (constr. arg); GnuWin32 fix in registry.cpp;
combobox event fix; moved SetAcceleratorTable down to window.h/cpp


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@524 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-13 10:16:03 +00:00
Karsten Ballüder
5e0394ae9b integrated my latest changes and Vadim's fixes on top of that
Compiles, but works?


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@523 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-13 10:03:26 +00:00
Robert Roebling
fc008f2592 Added ToogleTool from Markus
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@522 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-13 09:11:23 +00:00
Vadim Zeitlin
564b260950 wxWindow::MSWOnHScroll changed to call the default handler if the message isn't
processed (earlier it wasn't called in some cases)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@521 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-12 22:44:51 +00:00
Vadim Zeitlin
93a19f178c stack overflow when clicking on the arrow in a notebook fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@520 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-12 22:42:01 +00:00
Vadim Zeitlin
42a91fcebc suppressed VC++ 5.0 bool to int conversion warning (when compiling with
USE_RESSOURCE_LOADING_IN_MSW only)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@519 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-12 22:41:02 +00:00
Vadim Zeitlin
338c2a71e9 one more minor wxLogWindow fix (I try to get it really right...)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@518 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-12 22:38:30 +00:00
Vadim Zeitlin
4b13e6aeb2 added a "wxWindow *" (unused) argument for wxGTK compatibility
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@517 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-12 22:37:20 +00:00
Vadim Zeitlin
6d9669450d explicit SetSelection/SetOldSelection methods added to wxNotebookEvent
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@516 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-12 22:36:21 +00:00
Robert Roebling
496080f0b0 Forgot this one.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@515 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-12 21:39:12 +00:00
Robert Roebling
86b29a6122 Added PushEventHandler, Pop...
Corrected spelling of SetEventhandler
  Fixed two bugs in wxGenericPrintDlg
  Tried in vain to make printing of icons work.
    It now prints black on black, mostly.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@514 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-12 21:24:51 +00:00
Vadim Zeitlin
16ced4a272 had to modify it (added one pixel...) to be able to commit: the file in the
repository was indeed corrupted (as noticed by Robin a couple of days ago)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@513 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-12 20:57:08 +00:00
Vadim Zeitlin
bb14db2d95 file d&d (re)enabled under Windows
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@512 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-12 20:30:23 +00:00
Karsten Ballüder
23b75a2db4 Looks like I've fixed the editing
bugs. Delete/Insert/Home/End/Ctrl-Delete all work as expected.
Cursor gets redrawn properly.
Scroll-to-cursor still missing.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@511 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-12 16:14:15 +00:00
Robert Roebling
362c669367 Added wxFrame::OnCreateStatusBar and ToolBar
Added wxWindow::Raise and Lower

  There isn't going to be wxFrame::SetToolBar.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@510 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-12 11:44:33 +00:00
Karsten Ballüder
01b2eeec59 replaced by stubs files
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@509 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-12 09:16:21 +00:00
Karsten Ballüder
0acb94947f fixed mysterious mistakes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@508 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-12 08:50:25 +00:00
Karsten Ballüder
3908d01eab Cursor and insert/delete work much better now, code streamlined, still
a minor problem left.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@507 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-12 08:33:34 +00:00
Vadim Zeitlin
3b9261289f more minor changes to wxLogWindow
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@506 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-11 21:14:47 +00:00
Vadim Zeitlin
906373bf01 '\\' can be used to suppress special meaning in '%' and '$' in wxExpandEnvVars
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@505 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-11 21:12:06 +00:00
Vadim Zeitlin
d1427b7053 static wxFile::Access() added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@504 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-11 21:04:48 +00:00
Vadim Zeitlin
d4a00e065b static wxFile::Access() added (access() isn't ANSI neither...)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@503 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-11 21:03:57 +00:00
Vadim Zeitlin
654c1d6b7b controls.cpp didn't compile - missing MyTextCtrl declaration added (and what
OnRightButton is supposed to do?)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@502 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-11 12:44:33 +00:00
Karsten Ballüder
cd063a90f5 deleted
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@501 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-11 11:53:55 +00:00
Karsten Ballüder
e149aaeb44 Added empty Raise() and Lower() methods for compatibilty.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@500 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-11 09:51:04 +00:00
Robin Dunn
d279310da9 Typo fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@499 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-10 23:23:05 +00:00
Robin Dunn
5796ed400c Since wxREADONLY has disappeared, I had to change to wxTE_READONLY
in order to compile.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@498 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-10 22:22:25 +00:00
Denis Pershin
e8cd8b1b12 Small modifications
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@497 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-10 19:57:59 +00:00
Denis Pershin
40413a5b70 DP: GetBitmap() added to wxImageList
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@496 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-10 18:09:07 +00:00
Denis Pershin
f4e325b3df DP: native wxTreeCtrl for GTK.
It *should* be buggy... Cause I do not know GTK...
But it works... I do not know why... Robert, please look at it...
I am not sure that it is ok...


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@495 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-10 17:53:44 +00:00
Julian Smart
9c331ded69 Various Dialog Editor-related mods; Dlg Ed. getting usable now under MSW.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@494 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-10 13:48:12 +00:00
Julian Smart
983162bd54 Mod to allow hit-test on static to succeed.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@493 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-10 13:41:22 +00:00
Karsten Ballüder
7b3a00878c added correct coordinate handling
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@492 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-10 09:21:28 +00:00
Denis Pershin
f6d5397840 DP: Robert's mistake with incorrect var name corrected.
It even does not compile.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@491 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-09 19:42:11 +00:00
Robin Dunn
376781f78e I didn't mean for this to be in the repository...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@490 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-09 17:26:41 +00:00
Julian Smart
b823f5a145 Miscellaneous, mostly cosmetic changes. wxPen/wxFont/wxBrush altered so Set...
functions don't change shared objects.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@489 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-09 16:46:37 +00:00
Julian Smart
5e25ba908f Stub header changes.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@488 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-09 16:31:10 +00:00
Julian Smart
93cf77c076 Added stubs .cpp files.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@487 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-09 16:27:07 +00:00
Robert Roebling
30dea05497 Added Pop-up menus.
Hunted down bug in dnd
  Changed widget, that wxWin connects to in certain
  case (in controls, where m_widget is not the connect
  widget, such as list control and text control)
  Compile fixes all over


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@486 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-09 13:06:25 +00:00
Robin Dunn
7bf854050f Initial version
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@485 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-09 08:31:08 +00:00
Robin Dunn
b6a69abc7d Made NOPCH overridable
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@484 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-09 07:15:59 +00:00
Vadim Zeitlin
e17e4f282f wxWarning replaced with wxLogWarning (to solve the compilation problems due
to wxWarning's const incorrectness)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@483 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-08 22:14:17 +00:00
Vadim Zeitlin
b039c367cd WXFARPROC prototyped as `typedef int (__stdcall *WXFARPROC)()' (does Borland
understand __stdcall?) to make the program compile with VC++


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@482 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-08 22:08:04 +00:00
Vadim Zeitlin
f83528074b SetBackgroundColour() call is now done after the window is created, not before
(in which case ListCtrl_SetBkColor fails because it's called with HWND = 0)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@481 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-08 21:42:39 +00:00
Vadim Zeitlin
a781a38247 wxDeleteStockLists() used (instead of duplicating part of it's code)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@480 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-08 21:40:45 +00:00
Vadim Zeitlin
77ca46e7e3 extra memory amount allocated for string data reduced to the paragraph multiple:
so, in principle, it shouldn't waste any memory at all now (unless someone finds
a malloc implementation which is capable of allocation less than 16 bytes)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@479 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-08 21:39:43 +00:00
Vadim Zeitlin
fe7b115601 some minor changes in wxLogWindow
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@478 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-08 21:38:22 +00:00
Robert Roebling
b593568eca Correct the wxButton::Setlabel nonsense
Added wxFrame::SetClientSize


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@477 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-08 13:44:36 +00:00
Robert Roebling
b6af8d80dc Added wxDC:DrawPolygone
Corrected wxBitmap::SetLabel
  Added wxASSERT here and there
  wxDropSource:DoDrop() now returns Cancel when supposed to


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@476 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-08 13:11:54 +00:00
Julian Smart
7c23a0b01b Added stub include files; also a couple more Dialog Editor files.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@475 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-08 09:19:47 +00:00
Denis Pershin
843410bdd0 DP: framecmn.o & wincmn.o were duplicated...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@474 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-08 06:56:37 +00:00
Denis Pershin
fd4fec5bcf Another small modification... Sorry for CVS list overloading...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@473 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-08 06:38:16 +00:00
Denis Pershin
57c2c161e8 Small modification
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@472 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-08 06:36:33 +00:00
Denis Pershin
d8758bbc62 Looks like I did that...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@471 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-08 06:30:11 +00:00
Denis Pershin
e096c40c2b Third try to commit....
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@470 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-08 06:27:27 +00:00
Denis Pershin
1a5a836775 DP:
1. _() calls added where needed.
2. const added in params in postscrp.[h,cpp] in order to compile with
_().
3. Some .cvsignore added. (I did not found any .cvsignore in repository,
it is rather hard to compile something without them...)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@469 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-08 05:20:46 +00:00
Julian Smart
bbcdf8bc7c Fixed various wxMSW compile problems that came down the telephone line...
plus wxTreeCtrl::EditLabel/EndEditLabel, dialog editor stuff, wxMSW header changes,
doc changes. Sorry about the quantity :-(


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@468 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-07 23:52:45 +00:00
Vadim Zeitlin
c2d8daeb4a stray #include "wincmn.cpp" removed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@467 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-07 22:38:30 +00:00
Vadim Zeitlin
3197ed26f0 wxTREE_INSERT_XXX constants were incorrectly defined (and so inserting the
items at the end, for example, didn't work)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@466 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-07 22:30:12 +00:00
Vadim Zeitlin
dc1c4b6213 the modal dialogs restore the focus to the control which had it before the
dialog was displayed (earlier, the focus was lost all the time)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@465 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-07 22:27:33 +00:00
Vadim Zeitlin
a02eb1d2b6 ProcessEvent() now saves the m_lastXXX parameters in case the event handler will
send any other events (without this it can easily lead to crash because DefWndProc
is called with garbage instead of correct parameters)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@464 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-07 22:25:09 +00:00
Vadim Zeitlin
83626bfa72 code using ms_PaintDC changed a little (a couple of asserts added, the behaviour
did not change)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@463 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-07 22:22:30 +00:00
Vadim Zeitlin
d2aef3124b improved handling of frames with parent: now they have a NULL parent HWND (to
avoid Win32 bugs in handling this situation) but still are iconized/restored
with their parent frame


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@462 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-07 22:21:08 +00:00
Vadim Zeitlin
c1066cdf62 VZ: I removed (CASTWNDPROC) from ::CallWndProc - it doesn't compile here with it
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@461 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-07 22:18:43 +00:00
Vadim Zeitlin
c59147ba27 WM_GETDLGCODE handling correctly implemented
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@460 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-07 22:15:31 +00:00
Vadim Zeitlin
44a6c8e618 a couple of missing calls to UngetWriteBuf() added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@459 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-07 22:10:33 +00:00
Vadim Zeitlin
aaab7c01dc now process UDN_DELTAPOS notification: up-down control (which appears if there
is not enough space for the pages) works correctly now


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@458 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-07 22:08:43 +00:00
Vadim Zeitlin
370382c71b added call to _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | _CRTDBG_LEAK_CHECK_DF) for
VC++: it gives at the end of the program report about memory leaks if any
similar to the one produced by the wxwin memory diagnostic classes (but it
works without problems with VC++ and costs nothing to add)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@457 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-07 22:07:03 +00:00
Vadim Zeitlin
d93f63db9d couple of minor bug fixes/enhancements (interface unchanged)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@456 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-07 22:03:16 +00:00
Robert Roebling
7c78e7c702 More configure fixes
/src/qt and /include/wx/qt now have stubs. Not everything
  compiles yet. But it's a start..


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@455 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-07 21:32:13 +00:00
Robert Roebling
b4e76e0d7e More work on wxQt integration, configure
I tried notr to break anything...


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@454 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-07 20:23:17 +00:00
Robin Dunn
d50b2a58e9 Added missing call to wxInitializeStockLists() in CommonInit.
Come on people!  Before checking in changes that affect more than one
platform, please test more than one platform!


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@453 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-07 18:28:52 +00:00
Robin Dunn
35eca07ccd Removed a ">>>>>>> 1.5" (a CVS conflict indicator) that got left in
the code.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@452 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-07 17:32:54 +00:00
Robin Dunn
b5279053f6 Removed duplicate definitions of GetMenuCount and GetMenu so I could
compile.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@451 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-07 17:07:43 +00:00
Vadim Zeitlin
a3622daa90 (1) Denis Pershin's patch for wxGTK (memory leaks corrections)
(2) DELETEP/DELETEA globally renamed to wxDELETE/wxDELETEA and now also NULL
    their argument


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@450 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-07 15:09:04 +00:00
Guilhem Lavaux
0e072aac7a * Typo fix.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@449 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-06 20:12:56 +00:00
Julian Smart
b1670f9641 Fixed someone's compile error in regconf.cpp (needed a cast to non-const).
Added nplugin sample HTML files, even if the samples have broken :-(


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@448 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-06 19:49:54 +00:00
Julian Smart
5de76427c8 OGL fixes; documentation fixes; dialog editor updates
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@447 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-06 19:42:06 +00:00
Karsten Ballüder
c6cdf16c93 several fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@446 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-06 19:23:19 +00:00
Robert Roebling
09cf7c5853 Fixed compilation (add serbase.cpp)
Added ListBox::SetString
 Changed listbox message behaviour to match wxMSW (I hope)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@445 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-06 19:07:05 +00:00
Robert Roebling
496e3a4a03 Now configure actually finds Lesstif and Qt
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@444 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-06 17:03:46 +00:00
Robert Roebling
a1a2adef07 New Unix configure system
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@443 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-06 16:18:34 +00:00
Vadim Zeitlin
df9067d85c compilation problem under Windows fixed (Karsten, you should use a cast when
calling a const function from a non-const one - gcc compiles it it, but it's
broken)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@442 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-05 21:51:47 +00:00
Guilhem Lavaux
123a7fddb8 * Added source file info in utils/serialize/*
* Added Windows support in dynlib.cpp (not tested)
* Added some operator in wxStream
* Added a mutex in thread sample (more later)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@441 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-05 17:12:43 +00:00
Julian Smart
e1a6fc11e2 Fixed popup menu processing
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@440 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-05 16:35:09 +00:00
Robert Roebling
54ff4a701f Removed /install/gtk/configure from cvs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@439 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-05 16:33:18 +00:00
Karsten Ballüder
baeed2892d added SetRecordDefaults() and IsRecordingDefaults() methods
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@438 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-05 14:15:13 +00:00
Julian Smart
2bb0cd285a Various bug fixes to OGL; wxStripExtension prototype added to filefn.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@437 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-05 07:13:08 +00:00
Guilhem Lavaux
7a4b9130e3 * Fixes and new features in wxObject*Stream
* Fixes: wxChoice (GTK), wxCheckBox (GTK)
* Fixes: wxStream
* wxObject calls wx*Serialize::LoadObject/StoreObject in StoreObject/LoadObject
* Added support for dynamic library (Linux only, Windows will follow)
* Added serbase.h (Serialization base defines and base object)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@436 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-04 17:49:26 +00:00
Guilhem Lavaux
9fdd83842f * Added serialization code to the repository
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@435 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-04 17:45:20 +00:00
Vadim Zeitlin
06db8ebd73 added wxLogWindow::GetFrame()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@434 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-04 16:42:34 +00:00
Vadim Zeitlin
3ed358cbfe size_t -> int conversion and the warnings about it corrected
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@433 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-04 16:05:22 +00:00
Karsten Ballüder
ffbcbbb45a re-fixed wxFileConfig(wxString, wxString) constructor
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@432 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-04 10:26:56 +00:00
Julian Smart
e8435fa381 Small fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@431 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-04 07:24:05 +00:00
Vadim Zeitlin
c5c16a3025 1) wxFileConfig now longer tries to delete system-wide config file in DeleteAll
(only the user's one)
2) wxLogStream "un#indef'ed" under wxGTK


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@430 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-03 23:23:56 +00:00
Vadim Zeitlin
a7489b367d check that wxTheApp != NULL in wxLog::GetActiveTarget
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@429 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-03 23:05:07 +00:00
Vadim Zeitlin
071cc2be5c crash in wxLog::GetActiveTarget() fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@428 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-03 23:03:59 +00:00
Vadim Zeitlin
f3e6e1b5d3 added framecmn.cpp and wincmn.cpp (hmm... how could it compile without them?)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@427 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-03 22:59:50 +00:00
Vadim Zeitlin
c614ed58d8 SelectItem() always sends the notification messages
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@426 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-03 22:57:30 +00:00
Vadim Zeitlin
ad553268cb wxApp::Get/SetVendorName functions added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@425 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-03 22:55:59 +00:00
Vadim Zeitlin
23fcecf783 added wxLocale::Init() and ctor without arguments for convenience
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@424 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-03 22:54:15 +00:00
Vadim Zeitlin
275bf4c13a minor changes and bug corrections (interface unchanged)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@423 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-03 22:49:01 +00:00
Vadim Zeitlin
0be4095abb wxConfig sample + wxGTK makefiles
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@422 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-03 22:37:42 +00:00
Karsten Ballüder
574504ae85 grmbl, typo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@421 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-03 15:11:47 +00:00
Karsten Ballüder
b925352b3a fixed GetGlobalFilename()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@420 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-03 13:59:41 +00:00
Karsten Ballüder
fe3229dfa4 *** empty log message ***
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@419 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-03 13:59:11 +00:00
Karsten Ballüder
5a0f10a631 added another link
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@418 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-03 11:08:36 +00:00
Karsten Ballüder
dcbe388200 fixed wxFileConfig constructor bug
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@417 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-03 10:10:53 +00:00
Vadim Zeitlin
02569ba8eb wxIniConfig added (pre-alpha quality, many functions not implemented), some
bug fixes in wxRegConfig/wxRegKey


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@416 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-02 23:12:37 +00:00
Vadim Zeitlin
5fe256deb7 wxConfig -> wxConfigBase renaming plus some minor changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@415 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-02 23:11:03 +00:00
Vadim Zeitlin
88f2aa3720 trace mask made static variable
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@414 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-02 23:09:13 +00:00
Vadim Zeitlin
46eaa42260 trace mask made static variable (and corresponding accessors static functions)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@413 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-02 23:07:41 +00:00
Vadim Zeitlin
3bd8df227c the base class is now called wxConfigBase, wxConfig is #define'd as
wx{Reg|Ini|File}Config depending on the platform


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@412 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-02 23:06:42 +00:00
Vadim Zeitlin
8f494e5d87 minor changes to registry classes and wxIniConfig added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@411 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-02 23:04:55 +00:00
Robert Roebling
66bd6b9300 Fixed Fontdialog
Fixed frame positions/centering
  Fixed inserting mdi windows
  Changed control callbacks


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@410 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-02 20:38:05 +00:00
Karsten Ballüder
5787c2b9c2 added slash to path
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@409 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-08-02 16:59:53 +00:00
Robert Roebling
47908e25f9 Added bitmaps and icons to samples
Fixed event handling in all controls
  Add some missing functions to wxRadioBox
  Fixed clientData stuff to Choice (Combo?)
  No more gtk warning in Combo
  Fixed toolbar sample and mdi sample
  Fixed bug in AddChild resulting from mdi changes
  Fixed wxFrame::GetPosition()
  Changed order of notification calls in wxListCtrl
  to prevent what I think is a reentry bug
  The usual compile fixes here and there


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@408 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-31 20:04:04 +00:00
Julian Smart
110f32055e Added wxAccelerationTable class
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@407 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-31 13:22:58 +00:00
Julian Smart
57a7b7c148 Added wxAcceleratorTable, wxFrame::SetAcceleratorTable and additions to process it under wxMSW.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@406 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-31 13:01:34 +00:00
Julian Smart
bd0df01f3f Some manual updates; in MDI sample, child frames now have default size/position (hope
it's OK in wxGTK!)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@405 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-31 09:33:36 +00:00
Karsten Ballüder
db4365c912 added a comment and hopefully improved extent detectionn
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@404 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-31 08:41:17 +00:00
Karsten Ballüder
4f08af68b9 fixed stupid typo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@403 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-31 08:38:06 +00:00
Julian Smart
4d0c0756e1 MSWOnMouseMove arg bug in toolbar; compile bug in regconf; fixed warning in odbc.cpp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@402 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-30 09:37:26 +00:00
Robert Roebling
d4c99d6fa8 Pretty redical change concerning the underlying
X's windows' position. Even without having
  scrolled anywhere, the device origin of the
  top left corner is no longer certain to be
  zero,zero.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@401 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-30 09:16:21 +00:00
Karsten Ballüder
82ab121507 Setting of background colours is now correct.
Made virtual declarations depend on BROKEN_COMPILER define.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@400 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-29 13:57:51 +00:00
Robert Roebling
cf4219e77a wxMDIChildFrame inherits from wxFrame
toolbar work
  mini menubar change
  compile fixes


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@399 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-29 13:21:22 +00:00
Vadim Zeitlin
da468d387d 1) APPCONF_ constants renamed to wxCONFIG_
2) wxConfig::Create() now chooses the best (native) implemenntation of
   wxConfig instead of calling wxApp::CreateConfig which was suppressed
3) wxFileConfig(const char *appname) ctor added which looks for the config
   file(s) in standard location(s)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@398 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-29 12:03:42 +00:00
Vadim Zeitlin
580c10e3ca wxApp::(S|G)etVendorName added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@397 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-29 12:00:17 +00:00
Julian Smart
f449ef69b4 Added missing OGL files; added defaults to wxDocMDIParentFrame; corrected
toolbar usage in Dialog Editor


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@396 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-29 10:43:51 +00:00
Karsten Ballüder
8dad2ab39e fixed compiler warning
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@395 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-29 10:43:11 +00:00
Karsten Ballüder
00e0d52a92 implemented correct setting of background colour for text
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@394 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-29 10:34:11 +00:00
Robert Roebling
b204641ec9 wxListCtrl selection improved
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@393 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-29 08:07:45 +00:00
Julian Smart
f7bd26981f Update to docs incl. wxString first stab; added a couple of palette-related events (wxMSW)
needed for wxGLCanvas


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@392 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-29 06:51:33 +00:00
Robert Roebling
9746a2ba50 Fixed bug in wxListCtrl
Made wxMDIDocView work


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@391 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-28 22:08:36 +00:00
Guilhem Lavaux
32a4b1d57c * Added Peek() to wxMemoryInputStream.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@390 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-28 17:11:08 +00:00
Julian Smart
00c75bb689 Added ODBC classes manual (Word 97).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@389 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-28 15:15:47 +00:00
Unknown (MO)
99cc0288bd Fixed wxOVERWRITE_PROMPT bug in gtk file selector
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@388 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-28 15:01:09 +00:00
Julian Smart
2108f33a68 Added MDI support for Document/view, plus an example.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@387 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-28 13:33:23 +00:00
Karsten Ballüder
22c248be96 fixed compiler warning (newline at last line missing)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@386 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-28 10:38:46 +00:00
Julian Smart
108106cfe7 Added ODBC database classes and sample from RemStar (sample needs work for wxWin 2)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@385 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-28 09:43:44 +00:00
Julian Smart
b3324be240 Changed files to work with wxDataFormat
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@384 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-28 08:12:20 +00:00
Robert Roebling
7b5408ea7d Fixed bug in MDI
Changed FortyThieves to 2.0 dialog logic
  Did I modify dialog.cpp as well?


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@383 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-28 07:50:45 +00:00
Robert Roebling
d355d3fe69 wxFrame::SetIcon()
it's possible now to call Close() after ShowModal()
  dialog sample works
  changed wxString::First() etc to return -1


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@382 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-27 23:01:43 +00:00
Robert Roebling
e3e65dac0c warning msgs
toolbar updates
mdi fixes
dnd works now
Forty Thieves drawing optimization
wxDF_Text constants
ListCtrl bugs fixed
memory leak work
imrc now refers to home dir
dcclient/memory leak fixed


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@381 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-27 20:50:48 +00:00
Karsten Ballüder
bf79063cc8 more comments
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@380 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-27 20:39:50 +00:00
Guilhem Lavaux
1eac776c03 * Bug fixes
* Changed wxObjectOutputStream::AddChildren() to AddChild()


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@379 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-27 17:08:49 +00:00
Julian Smart
0757d27c1e Changed event type ids to constants instead of enum, for extensibility.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@378 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-27 16:17:59 +00:00
Karsten Ballüder
a97aaabf5c make wxS_DEFAULT consistend with standard Unix behaviour
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@377 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-27 09:52:49 +00:00
Julian Smart
81d66cf39f wxToolBar API changes; now frames manage their toolbar & statusbar properly;
client area position is used in SetSize; changes for BC++ & VC++ 1.5;
wxWindow::GetUpdateRegion added; removed wxUpdateIterator; some missing functions
added to process.cpp; bad navigation key event cast fixed; MDI and toolbar samples
updated; new wxMSW wxRegion constructor (WXHRGN)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@376 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-27 09:47:57 +00:00
Vadim Zeitlin
e6688c3fd2 double wxMenuItem definition problem fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@375 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-26 00:10:52 +00:00
Guilhem Lavaux
7b124d5404 * Deleted #include "wx/bufstrm.h"
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@374 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-25 10:19:18 +00:00
Robert Roebling
bd7d06f23d Removed warnings mesgs
Doesn't compile due to missing bufstream


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@373 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-25 08:31:39 +00:00
Julian Smart
f701d7abc1 Corrected some problems
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@372 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-24 22:04:21 +00:00
Julian Smart
527fc629c8 Added missing accessors
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@371 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-24 20:48:49 +00:00
Julian Smart
37f0deedfa Added missing files
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@370 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-24 20:48:25 +00:00
Julian Smart
b979f8772c Removed explicit #defines for wxToolBar
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@369 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-24 20:47:43 +00:00
Julian Smart
3d8bd7d6bf Removed duplicate code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@368 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-24 20:46:39 +00:00
Julian Smart
cc79e53c16 Small change
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@367 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-24 20:45:26 +00:00
Julian Smart
03f68f123b Dialog Editor edits
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@366 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-24 20:44:36 +00:00
Julian Smart
63cafd2799 Added Forty Thieves
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@365 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-24 19:43:32 +00:00
Robert Roebling
46dc76ba35 wxFrame::CreateToolBar() stuff
wxDC::SetBackground from Chris Breeze
zillions of compile fixes


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@364 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-24 19:05:25 +00:00
Guilhem Lavaux
d602f1d8b6 *** empty log message ***
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@363 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-24 17:44:44 +00:00
Guilhem Lavaux
6d44bf31a6 * Ooops, I didn't copy the files in the right directory of my repository.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@362 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-24 17:21:06 +00:00
Guilhem Lavaux
1678ad7802 * New wxStream classes: wxStreamBuffer and wxObject*Stream.
* Changes: ofsInvalid => wxInvalidOffset in filefn.h
* Updates: all wxStream classes use wxStreamBuffer.
           wxObject basic declaration changes (added LoadObject, modified
           StoreObject)
* Some base of the serialization.
(I hope not to have forgotten any files)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@361 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-24 17:13:47 +00:00
Vadim Zeitlin
439b3bf1f5 some common code moved from wxWindow/wxFrame into files in common subdir
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@360 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-24 17:06:45 +00:00
Vadim Zeitlin
d37a02d0d5 SelectItem() now sends a wxEVT_SELECTED notification.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@359 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-24 17:04:48 +00:00
Vadim Zeitlin
246037e229 added "access" parameter to wxFile::Create and Open. The default value is
"rw-r--r--" mode.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@358 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-24 17:03:26 +00:00
Vadim Zeitlin
13289f04ae scrollbar support added (experimental)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@357 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-24 17:02:23 +00:00
Julian Smart
0f217db318 New toolbar event processing
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@356 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-24 15:47:22 +00:00
Julian Smart
6a23cbcede Removed compile bugs in regconf.cpp, added new toolbar event processing
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@355 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-24 15:46:52 +00:00
Julian Smart
a37e883612 Altered event.h to reflect new toolbar event handling; removed bugs in regconf.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@354 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-24 15:44:58 +00:00
Julian Smart
13437238cd Updated the toolbar sample to reflect updated event handling.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@353 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-24 15:43:03 +00:00
Vadim Zeitlin
44216b3b2e added default value for "int type" (wxBITMAP_TYPE_XPM) in wxBitmap ctor
and Load() method


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@352 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-24 14:35:48 +00:00
Vadim Zeitlin
a7ca513e5a removed #define wxToolBarGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@351 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-24 13:17:04 +00:00
Karsten Ballüder
8ffec97a6e fixed appending of '/' to empty string
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@350 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-24 12:18:23 +00:00
Karsten Ballüder
6134811179 fixed private member access problem
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@349 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-24 10:31:25 +00:00
Vadim Zeitlin
fe3d8179fa oops... a typo in just checked in file corrected
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@348 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-23 17:56:13 +00:00
Vadim Zeitlin
904f68c7e8 call to SetLabel in Create() added to strip "&" characters from the label
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@347 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-23 17:54:24 +00:00
Vadim Zeitlin
389cdc7ae4 wxTreeControl::Get/SetSelection implemented
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@346 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-23 17:53:50 +00:00
Vadim Zeitlin
543e7dd22a now wxToolBarGTK is #define'd as wxToolBar under wxGTK and not vice versa
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@345 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-23 16:10:48 +00:00
Vadim Zeitlin
43fa96a840 IsItemExpanded() function added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@344 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-23 16:09:55 +00:00
Vadim Zeitlin
aed8df383f wxUpdateUI events generation added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@343 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-23 16:08:49 +00:00
Vadim Zeitlin
9406d962cc IsModified() function now works correctly
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@342 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-23 16:08:28 +00:00
Vadim Zeitlin
7c41ac7b42 SetModified() added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@341 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-23 16:07:55 +00:00
Vadim Zeitlin
fd4bc7de65 OnSize removed (not needed any more after Robert's fix)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@340 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-23 16:07:27 +00:00
Vadim Zeitlin
83885a398b more accessors added, member variablesmade private
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@339 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-23 16:07:05 +00:00
Vadim Zeitlin
ab16f4a300 DoMenuUpdates()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@338 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-23 16:06:23 +00:00
Vadim Zeitlin
4632781333 added flag wxFILE_MUST_EXIST
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@337 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-23 16:05:39 +00:00
Vadim Zeitlin
2a4f4a2773 GetLabel() added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@336 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-23 16:05:14 +00:00
Vadim Zeitlin
19717c50b9 common functions moved into ../common/framecmn.cpp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@335 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-23 16:03:53 +00:00
Vadim Zeitlin
96fd301f0e made the code more wxMSW compatible
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@334 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-23 16:02:54 +00:00
Vadim Zeitlin
caac51810b made the constraintsin notebook pages work (once again)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@333 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-23 16:02:23 +00:00
Vadim Zeitlin
5e0aa05a52 added wxUpdateUI generation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@332 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-23 16:01:52 +00:00
Vadim Zeitlin
7ec1983bfa common part of wxWindow class
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@331 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-23 16:01:33 +00:00
Vadim Zeitlin
32c77a7133 removes "&" from wxControl's label (also for buttons and stattext)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@330 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-23 15:59:55 +00:00
Vadim Zeitlin
9ec05cc986 choosing "Cancel" in the message box which appears when an wxASSERT fails also
suppresses wxLogDebug() messages


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@329 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-23 15:57:47 +00:00
Vadim Zeitlin
63fec618dc common code of wxFrame class
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@328 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-23 15:56:50 +00:00
Vadim Zeitlin
3bbb630a21 a warning in the release build suppressed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@327 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-23 15:56:30 +00:00
Julian Smart
14d1ccd89d Created new, simplified toolbar sample; removed other toolbar samples.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@326 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-23 14:39:46 +00:00
Julian Smart
73e7daa02e Moved Get/SetToolBar down into frame.h/cpp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@325 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-23 14:25:44 +00:00
Vadim Zeitlin
30474825bb added #define wxToolBar wxToolBarGTK for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@324 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-23 12:33:08 +00:00
Robert Roebling
716b736420 mdi private menus
Chris's check menu additions
frame fixes


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@323 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-22 22:13:31 +00:00
Julian Smart
47fa796902 Added wxString version of wxStripExtension; changed OnClose to return TRUE;
fixed some bad casts in resource.cpp


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@322 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-22 13:54:47 +00:00
Julian Smart
9123006f13 Added wxString version of wxStripExtension; changed OnClose to return TRUE
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@321 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-22 13:53:47 +00:00
Vadim Zeitlin
7228ab483e warning under gcc removed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@320 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-22 11:33:15 +00:00
Karsten Ballüder
240d850370 fixed duplicate definition
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@319 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-21 13:41:40 +00:00
Vadim Zeitlin
c3b0ff9c7a bug in wxFileConfig::DeleteEntry/Group corrected
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@318 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-20 22:26:39 +00:00
Vadim Zeitlin
4d14b52449 corrected bug in wxArrayString::operator= and it's copy ctor
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@317 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-20 22:23:51 +00:00
Robert Roebling
e2414cbe8c many fixes to wxTextCrtl, wxTreeCrtl, wxListBox,
wxDialog, wxFrame
two more samples work now, docview and treectrl


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@316 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-20 18:05:48 +00:00
Unknown (MO)
035b704a46 Added use of default file/dir and confirm on overwrite to file selection
dialog


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@315 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-20 14:59:54 +00:00
Karsten Ballüder
f40ccee99b fixed config incosistency
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@314 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-20 12:20:06 +00:00
Karsten Ballüder
3d6a5e3c5b added -O0 to debug flags to disable optimisation - might break things for non-gcc
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@313 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-20 11:25:50 +00:00
Karsten Ballüder
9480f5d151 printing added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@312 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-20 08:43:47 +00:00
Vadim Zeitlin
86bb7d4825 infinite loop in wxNavigationKeyEvent processing fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@310 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-19 20:46:35 +00:00
Vadim Zeitlin
ae29de8326 MSWGetDlgCode() behaviour changed to allow both TAB navigation in the
dialogs, pressing Enter to activate default button and processing Enter
by the text control itself.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@309 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-19 20:45:51 +00:00
Julian Smart
a93ca20183 Renamed a couple more samples/controls files; fixed wxSplitterWindow cursors
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@308 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-19 20:09:44 +00:00
Karsten Ballüder
26cf69fe72 fixed the ps dialog but doesn't all work yet
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@307 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-19 17:39:07 +00:00
Julian Smart
637f467a06 wxDocManager gets the only view if none other specified as the current view;
added ProcessEvent so views get their events processed properly.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@306 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-18 22:04:25 +00:00
Julian Smart
0fc1a7137c Added revamped Object Graphics Library (for node/arc diagrams).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@305 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-18 21:57:52 +00:00
Vadim Zeitlin
0f7549d594 a couple of functions added (GetNumberOfGroups/Entries, ExpandEnvStrings),
some global functions renamed to start with "wx"


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@304 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-18 21:47:45 +00:00
Vadim Zeitlin
82cf4761e1 small bug fixes + a couple of new functions added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@303 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-18 21:44:54 +00:00
Vadim Zeitlin
9fbd8b8d61 several bugs fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@302 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-18 21:15:37 +00:00
Guilhem Lavaux
cf5f9c9c3e wxFrame: OnSize() has a SEGV if wxFrame has no child. Fixed.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@301 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-18 10:44:31 +00:00
Robert Roebling
0d73e5a104 ODBC compile (and link) fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@300 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-18 10:15:35 +00:00
Robert Roebling
1a6944fd74 added ODBC support
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@299 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-18 00:57:32 +00:00
Vadim Zeitlin
c83d505a20 compile without STRICT fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@298 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-17 22:34:15 +00:00
Vadim Zeitlin
c7f3b78bac corrected (after wxTString untimely death) and expanded
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@297 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-17 21:21:02 +00:00
Vadim Zeitlin
3aadbb82d9 the very last traces of wxTString removed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@296 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-17 21:13:13 +00:00
Julian Smart
11ed4f79aa Bug fix to scrolwin.cpp (position not set in SetScrollbars); redundant variable
in wxGrid removed


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@295 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-17 21:03:05 +00:00
Vadim Zeitlin
99d270120e don't set focus to [ok] in text entry dialog (leave the text zone have it)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@294 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-17 21:01:47 +00:00
Vadim Zeitlin
7502ba2975 last traces of wxTString removed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@293 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-17 21:00:11 +00:00
Vadim Zeitlin
3168a13f90 correct (working) version of wxString
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@292 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-17 20:58:33 +00:00
Vadim Zeitlin
a1530845c9 wxTString removed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@291 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-17 20:52:40 +00:00
Vadim Zeitlin
6b95b20d03 correct (working) version of wxString
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@290 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-17 20:51:36 +00:00
Vadim Zeitlin
36af0bc423 another "const" added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@289 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-17 13:07:33 +00:00
Vadim Zeitlin
85ccdcce1c some "const"s added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@288 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-17 12:44:13 +00:00
Karsten Ballüder
e14dccff1c fixed, latex now works for manual.tex and referenc.tex, but
referenc.tex fails with index


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@287 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-17 12:34:50 +00:00
Julian Smart
d6a1743b56 Some Borland/GnuWin32 fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@286 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-17 11:10:38 +00:00
Karsten Ballüder
18a2fa3715 fixed underline for drawing text, as suggested by Chris Breeze
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@285 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-17 10:06:26 +00:00
Julian Smart
c4e7c2aa58 Added STRICT corrections.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@284 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-17 09:32:24 +00:00
Vadim Zeitlin
e99c304810 fixed compilation problems under Windows
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@283 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-17 08:18:57 +00:00
Robin Dunn
3848ffef9f fixed a missing backslash
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@282 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-17 03:35:20 +00:00
Vadim Zeitlin
f5ae044937 wxFileConfig uses sorted arrays (big performance improvement)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@281 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-16 17:30:39 +00:00
Vadim Zeitlin
3bfa440288 added sorted arrays: they automatically sort items on insertion (using user
provided compare function) and binary search in Index(). Using them in
situations where Index() performance is important brings 30%-40% performance
boost.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@280 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-16 17:29:46 +00:00
Julian Smart
400735a8fa Cured SetString/GetSelection interaction; incorporated Chris's changes to wxDC:Blit
for printer DCs.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@279 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-16 08:34:29 +00:00
Robin Dunn
1eb20d4a08 Inserted an else that seemed to be missing. (My RadioBox crashed
without it...)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@278 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-16 06:47:27 +00:00
Guilhem Lavaux
e49f47aa77 wxStream: wxInputStream and wxOutputStream don't inherit from wxObject anymore.
Removed DECLARE* and IMPLEMENT*
filefn.h: added #include "wx/list.h" to define wxStringList


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@277 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-15 18:40:37 +00:00
Vadim Zeitlin
ba7f9a90b4 speed optimizations: some functions now use wxString::Alloc, wxTextFile::Read
uses a buffer to read data (instead of reading it one char at a time)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@276 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-15 17:14:06 +00:00
Vadim Zeitlin
dd1eaa89dd optimizations: more functions made inline, added Alloc()/Shrink() function for
more precise control over string's memory


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@275 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-15 17:10:23 +00:00
Karsten Ballüder
2ab889ff7b added gauge.cpp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@274 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-15 14:38:57 +00:00
Karsten Ballüder
5a8c6c9adb fixed SetRange/GetValue
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@273 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-15 14:37:42 +00:00
Karsten Ballüder
24e5e6fcb4 fixed wxGTK copyright
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@272 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-15 12:02:40 +00:00
Karsten Ballüder
b4c05cda99 On Robert's request I have added the html-version of my wxQt proposal.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@271 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-15 12:00:42 +00:00
Vadim Zeitlin
45ea509a21 common constants (wxSeekMode) and types (off_t) to wxFile and wxStream are
now defined in filefn.h included by both file.h and stream.h


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@270 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-14 22:15:29 +00:00
Vadim Zeitlin
eda3efe2f8 off_t #define'd as _off_t for VC++ (it's not a standard type)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@269 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-14 22:08:59 +00:00
Vadim Zeitlin
30a5be975d GetTempFileName used in wxTempFile now instead of tmpnam
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@268 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-14 21:59:27 +00:00
Vadim Zeitlin
0ce2baa5e6 ExpandEnvVars was eating backslashes - no more.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@267 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-14 21:57:24 +00:00
Vadim Zeitlin
3826db3ef5 added wxSplitFile() to decompose a file name into path + name + ext
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@266 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-14 21:55:47 +00:00
Vadim Zeitlin
92abb45d0a 1) added wxSplitFile() to decompose a file name into path + name + ext
2) added a macro wxARE_FILENAMES_CASE_SENSITIVE which is either 1 or 0
   (for usage with wxString::IsSameAs)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@265 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-14 21:55:17 +00:00
Guilhem Lavaux
0cd9bfe8da * wxMemory*Stream link problem fix.
* wxData*Stream update.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@264 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-14 16:35:50 +00:00
Guilhem Lavaux
79c3e0e1ae * wxStream: I've rewritten the inheritance
* added wxZlib*Stream
* updated makefiles and data.cpp
* modified a bit wxFile so I can use it in wxFile*Stream


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@263 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-14 12:06:50 +00:00
Robert Roebling
33d0b396b2 resize mdi and notebook client
bitmap resizing (used in imagelist)
draw spline bug


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@262 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-13 23:30:59 +00:00
Julian Smart
d29d303b1c In splitter sample, forwarded OnIdle events to wxFrame, else UI updates don't
work. Removed compatibility function from docview.h.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@261 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-13 20:11:21 +00:00
Robert Roebling
0180d5daae memdc and bitmap fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@260 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-13 17:00:29 +00:00
Vadim Zeitlin
5a8c929eb4 constraints for notebook pages work (again)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@259 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-13 16:57:43 +00:00
Karsten Ballüder
85504caca9 fixed DEBUG
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@258 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-13 15:46:01 +00:00
Karsten Ballüder
c6cdbc3d75 Changed #ifdef DEBUG to #ifdef __WXDEBUG__
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@257 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-13 14:11:22 +00:00
Karsten Ballüder
70bb5dba34 Quick fix to avoid unnecessary compiler warnings from duplicate __WXDEBUG__ defines.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@256 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-13 12:47:02 +00:00
Karsten Ballüder
4acbf24597 Configure now adds -D__WXDEBUG__ to the compiler switches if run with
--with-debug_flag.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@255 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-13 12:45:47 +00:00
Karsten Ballüder
f0b078077d Fixed that stupid stream problem.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@254 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-13 10:01:29 +00:00
Julian Smart
db138a4c2a Removed streams from VC++ makefile for now; corrected typo in log.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@253 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-13 09:15:56 +00:00
Karsten Ballüder
ddfc206782 uses wxString again (std::string optional)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@252 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-13 08:48:38 +00:00
Vadim Zeitlin
7d7fb17e1d GetTextExtent checks that passed pointers are not NULL
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@251 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-12 23:23:11 +00:00
Vadim Zeitlin
27c9fe7554 wxLogDebug/Trace in release mode now don't give compiler warnings
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@250 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-12 23:07:22 +00:00
Vadim Zeitlin
b5c3b53817 constraints handling for notebook pages improved
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@249 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-12 22:59:00 +00:00
Vadim Zeitlin
e15e548b50 wxFILE_MUST_EXIST added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@248 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-12 22:57:42 +00:00
Vadim Zeitlin
db8b79634e wxWindow::OnSize() removed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@247 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-12 22:52:14 +00:00
Vadim Zeitlin
092bddef5a 1) separate expand/collapse event
2) separate Expand/Collapse/ToggleItem() functions
3) IsItemExpanded() added


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@246 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-12 22:50:32 +00:00
Vadim Zeitlin
5475b96085 constraints handling for the notebook pages fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@245 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-12 22:47:09 +00:00
Vadim Zeitlin
a8e50c86a4 defined wxFILE_MUST_EXIST flag
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@244 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-12 22:46:10 +00:00
Vadim Zeitlin
f04f399187 wxGetEmptyString() function added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@243 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-12 22:40:00 +00:00
Vadim Zeitlin
02ce7b722e 1. expand/collapse (and -ing variants) events are now separated
2. ExpandItem(action) can now be also called as ExpandItem(), CollapseItem()
   and ToggleItem()
3. several other minor changes (IsExpanded function added)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@242 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-12 22:25:34 +00:00
Vadim Zeitlin
abc7998686 added missing UngetWriteBuf() in wxString::insert
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@241 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-12 22:06:28 +00:00
Vadim Zeitlin
128aec1da4 memory leak plugged
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@240 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-12 22:05:16 +00:00
Vadim Zeitlin
cd70477bbd wxFrame::OnSize() slightly optimized (the behaviour is the same as before)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@239 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-12 21:55:31 +00:00
Vadim Zeitlin
d8329927ee wxWindow::OnSize() removed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@238 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-12 21:49:45 +00:00
Robert Roebling
219f895a27 stream compile fixes
bitmap, icon, imaglist work (broken)
notebook client resize fixed (ugly)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@237 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-12 20:06:59 +00:00
Guilhem Lavaux
3cacae09fa Added IMPLEMENT_CLASS, ... about wxStream classes (I hope I didn't make mistakes).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@236 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-12 15:36:53 +00:00
Guilhem Lavaux
32fc4afbb2 Ooops ! I've forgotten the include files.
mmstream.cpp => mstream.cpp


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@235 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-12 15:24:52 +00:00
Guilhem Lavaux
3d4c6a214a Added wxStream but I haven't tested them.
Modified wxDataStream.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@234 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-12 15:16:09 +00:00
Karsten Ballüder
23f641681f latest sources from M
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@233 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-12 15:02:44 +00:00
Julian Smart
4414cc1db8 Added wxTreeLayout for wxWindows 2.0
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@232 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-12 09:21:16 +00:00
Julian Smart
ad3ad68e15 Added gtk.rsp, a 'response' file (listing of all wxGTK-specific files)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@231 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-12 09:17:14 +00:00
Julian Smart
3e1a3a402d Removed #pragmas in utils.cpp, corrected USE_(WX)DEBUG_CONTEXT,
added wx200gtk.zip creation in zipdist.bat.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@230 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-12 09:16:20 +00:00
Guilhem Lavaux
0f460a1d4b Deleted "#include <sched.h>".
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@229 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-11 14:51:58 +00:00
Robert Roebling
401ec7b639 event/leave events
scrollbar fix
listctrl fix


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@228 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-11 09:53:58 +00:00
Robert Roebling
4c6819972f tree control and dc::drawlines bug
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@227 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-10 23:08:39 +00:00
Vadim Zeitlin
da7f8ac4dd wxWindow::OnSize() does _not_ call Layout() (it should only be done for
top-level windows)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@226 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-10 17:46:08 +00:00
Vadim Zeitlin
ed7a557b53 wxFrame::OnSize() calls Layout() if GetAutoLayout()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@225 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-10 17:45:38 +00:00
Karsten Ballüder
2049ba38ad Changed __GTK__, __WINDOWS__ and __MOTIF__ to __WXGTK__, __WXMSW__ and __WXMOTIF__
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@224 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-10 14:15:17 +00:00
Karsten Ballüder
7007fcfced Fixed implementation pragma to "utils.h"
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@222 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-10 13:34:20 +00:00
Karsten Ballüder
8c43d1c898 DEBUG -> WXDEBUG
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@221 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-10 12:06:03 +00:00
Karsten Ballüder
2216f571bf still fixing DEBUG macros
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@220 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-10 12:01:16 +00:00
Karsten Ballüder
54fe0dcf9a fixed another @DEBUG@
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@219 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-10 11:55:19 +00:00
Karsten Ballüder
b2aef89b7a Cleared up DEBUG define mess, defines are now called __WXDEBUG__ and WXDEBUG.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@218 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-10 11:14:17 +00:00
1596 changed files with 220545 additions and 22682 deletions

4
.cvsignore Normal file
View File

@@ -0,0 +1,4 @@
system.list
bin
.gdb_history
Test

View File

@@ -58,7 +58,7 @@ user::
makefiles:: recreate
Makefiles:: recreate
recreate::
@src/gtk/setup/general/createall
@install/unix/setup/general/createall
# the following ones define what needs to be done to distribute the
# library and its components

View File

@@ -9,6 +9,9 @@ docs/todo.txt
docs/licence.txt
docs/symbols.txt
src/*.inc
src/mkdir
src/common/*.cpp
src/common/dosyacc.c
src/common/doslex.c
@@ -48,6 +51,7 @@ src/zlib/*.3
src/zlib/*.mms
include/wx/*.h
include/wx/*.cpp
include/wx/wx_setup.vms
include/wx/common/*.h
include/wx/generic/*.h
@@ -84,6 +88,7 @@ utils/wxhelp/src/*.cpp
utils/wxhelp/src/*.h
utils/wxhelp/src/makefile.*
utils/wxhelp/src/*.xbm
utils/wxhelp/src/*.xpm
utils/wxhelp/src/*.txt
utils/wxhelp/src/*.ico
utils/wxhelp/src/*.def
@@ -94,6 +99,7 @@ utils/tex2rtf/src/*.cpp
utils/tex2rtf/src/*.h
utils/tex2rtf/src/make*.*
utils/tex2rtf/src/*.xbm
utils/tex2rtf/src/*.xpm
utils/tex2rtf/src/*.sty
utils/tex2rtf/src/*.ini
utils/tex2rtf/src/*.inf
@@ -111,6 +117,7 @@ utils/wxtree/src/*.cpp
utils/wxtree/src/*.h
utils/wxtree/src/makefile.*
utils/wxtree/src/*.xbm
utils/wxtree/src/*.xpm
utils/wxtree/lib/dummy
utils/wxtree/src/*.ico
utils/wxtree/src/*.def
@@ -121,6 +128,7 @@ utils/wxgraph/src/*.c
utils/wxgraph/src/*.h
utils/wxgraph/src/makefile.*
utils/wxgraph/src/*.xbm
utils/wxgraph/src/*.xpm
utils/wxgraph/lib/dummy
utils/wxgraph/src/*.ico
utils/wxgraph/src/*.def
@@ -143,6 +151,7 @@ utils/rcparser/src/*.c
utils/rcparser/src/*.h
utils/rcparser/src/makefile.*
utils/rcparser/src/*.xbm
utils/rcparser/src/*.xpm
utils/rcparser/lib/dummy
utils/rcparser/src/*.ico
utils/rcparser/src/*.def
@@ -155,6 +164,7 @@ utils/colours/*.def
utils/colours/*.rc
utils/colours/makefile.*
utils/colours/*.xbm
utils/colours/*.xpm
utils/colours/*.txt
utils/wxprop/src/*.h
@@ -163,18 +173,21 @@ utils/wxprop/src/*.def
utils/wxprop/src/*.rc
utils/wxprop/src/makefile.*
utils/wxprop/src/*.xbm
utils/wxprop/src/*.xpm
utils/wxprop/src/*.txt
utils/wxprop/src/*.ico
utils/wxprop/src/*.bmp
utils/wxprop/lib/dummy
utils/dialoged/src/bitmaps/*.xbm
utils/dialoged/src/bitmaps/*.xpm
utils/dialoged/src/*.h
utils/dialoged/src/*.cpp
utils/dialoged/src/*.def
utils/dialoged/src/*.rc
utils/dialoged/src/makefile.*
utils/dialoged/src/*.xbm
utils/dialoged/src/*.xpm
utils/dialoged/src/*.txt
utils/dialoged/src/*.inf
utils/dialoged/test/*.h
@@ -195,22 +208,24 @@ utils/dialoged/test/*.bmp
samples/*.txt
samples/makefile.*
samples/hello/*.cpp
samples/hello/*.h
samples/hello/*.def
samples/hello/makefile.*
samples/hello/*.xbm
samples/hello/*.txt
samples/hello/*.ico
samples/hello/*.bmp
samples/hello/*.rc
samples/hello/*.wav
samples/config/*.cpp
samples/config/*.h
samples/config/*.def
samples/config/makefile*.*
samples/config/*.xbm
samples/config/*.xpm
samples/config/*.txt
samples/config/*.ico
samples/config/*.bmp
samples/config/*.rc
samples/config/*.wav
samples/dynamic/*.cpp
samples/dynamic/*.h
samples/dynamic/*.def
samples/dynamic/makefile.*
samples/dynamic/makefile*.*
samples/dynamic/*.xbm
samples/dynamic/*.xpm
samples/dynamic/*.txt
samples/dynamic/*.ico
samples/dynamic/*.bmp
@@ -220,8 +235,9 @@ samples/dynamic/*.wav
samples/bombs/*.cpp
samples/bombs/*.h
samples/bombs/*.def
samples/bombs/makefile.*
samples/bombs/makefile*.*
samples/bombs/*.xbm
samples/bombs/*.xpm
samples/bombs/*.txt
samples/bombs/*.ico
samples/bombs/*.bmp
@@ -230,8 +246,9 @@ 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
@@ -240,8 +257,9 @@ samples/types/*.h
samples/types/*.def
samples/types/*.rc
samples/types/*.txt
samples/types/makefile.*
samples/types/makefile*.*
samples/types/*.xbm
samples/types/*.xpm
samples/types/*.ico
samples/resource/*.cpp
@@ -250,23 +268,26 @@ 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
samples/animate/*.cpp
samples/animate/*.h
samples/animate/*.def
samples/animate/makefile.*
samples/animate/makefile*.*
samples/animate/*.xbm
samples/animate/*.xpm
samples/animate/*.ico
samples/animate/*.rc
samples/mdi/*.cpp
samples/mdi/*.h
samples/mdi/*.def
samples/mdi/makefile.*
samples/mdi/makefile*.*
samples/mdi/*.xbm
samples/mdi/*.xpm
samples/mdi/*.ico
samples/mdi/*.rc
samples/mdi/bitmaps/*.bmp
@@ -275,16 +296,18 @@ samples/mdi/bitmaps/*.ico
samples/minimal/*.cpp
samples/minimal/*.h
samples/minimal/*.def
samples/minimal/makefile.*
samples/minimal/makefile*.*
samples/minimal/*.xbm
samples/minimal/*.xpm
samples/minimal/*.ico
samples/minimal/*.rc
samples/controls/*.cpp
samples/controls/*.h
samples/controls/*.def
samples/controls/makefile.*
samples/controls/makefile*.*
samples/controls/*.xbm
samples/controls/*.xpm
samples/controls/*.ico
samples/controls/*.bmp
samples/controls/*.rc
@@ -292,73 +315,55 @@ samples/controls/*.rc
samples/fractal/*.cpp
samples/fractal/*.h
samples/fractal/*.def
samples/fractal/makefile.*
samples/fractal/makefile*.*
samples/fractal/*.xbm
samples/fractal/*.xpm
samples/fractal/*.ico
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
samples/layout/*.rc
samples/layout/*.bmp
samples/layout/*.xpm
samples/printing/*.cpp
samples/printing/*.h
samples/printing/*.def
samples/printing/makefile.*
samples/printing/makefile*.*
samples/printing/*.xbm
samples/printing/*.xpm
samples/printing/*.txt
samples/printing/*.ico
samples/printing/*.bmp
samples/printing/*.rc
samples/printing/*.afm
samples/tbarsmpl/*.cpp
samples/tbarsmpl/*.h
samples/tbarsmpl/*.def
samples/tbarsmpl/makefile.*
samples/tbarsmpl/*.txt
samples/tbarsmpl/*.xbm
samples/tbarsmpl/bitmaps/*.xbm
samples/tbarsmpl/*.ico
samples/tbarsmpl/*.bmp
samples/tbarsmpl/*.rc
samples/tbarsmpl/bitmaps/*.bmp
samples/tbar95/*.cpp
samples/tbar95/*.h
samples/tbar95/*.def
samples/tbar95/makefile.*
samples/tbar95/*.txt
samples/tbar95/*.xbm
samples/tbar95/bitmaps/*.xbm
samples/tbar95/*.ico
samples/tbar95/*.bmp
samples/tbar95/*.rc
samples/tbar95/bitmaps/*.bmp
samples/tbarmsw/*.cpp
samples/tbarmsw/*.h
samples/tbarmsw/*.def
samples/tbarmsw/makefile.*
samples/tbarmsw/*.txt
samples/tbarmsw/*.xbm
samples/tbarmsw/bitmaps/*.xbm
samples/tbarmsw/*.ico
samples/tbarmsw/*.bmp
samples/tbarmsw/*.rc
samples/tbarmsw/bitmaps/*.bmp
samples/toolbar/*.cpp
samples/toolbar/*.h
samples/toolbar/*.def
samples/toolbar/makefile*.*
samples/toolbar/*.txt
samples/toolbar/*.xbm
samples/toolbar/*.xpm
samples/toolbar/bitmaps/*.xbm
samples/toolbar/bitmaps/*.xpm
samples/toolbar/*.ico
samples/toolbar/*.bmp
samples/toolbar/*.rc
samples/toolbar/bitmaps/*.bmp
samples/docview/*.h
samples/docview/*.cpp
samples/docview/*.def
samples/docview/*.rc
samples/docview/makefile.*
samples/docview/makefile*.*
samples/docview/*.xbm
samples/docview/*.xpm
samples/docview/*.txt
samples/docview/*.ico
samples/docview/*.bmp
@@ -367,8 +372,9 @@ 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
samples/memcheck/*.ico
samples/memcheck/*.bmp
@@ -377,21 +383,22 @@ 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
samples/odbc/*.ico
samples/odbc/*.bmp
samples/odbc/*.dbf
samples/odbc/*.cdx
samples/odbc/odbc32.lib
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
samples/dialogs/*.bmp
samples/dialogs/*.ico
@@ -402,8 +409,9 @@ 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
samples/wxpoem/*.bmp
samples/wxpoem/*.dat
@@ -415,8 +423,9 @@ 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
samples/pressup/*.bmp
@@ -426,8 +435,9 @@ 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
samples/validate/*.bmp
@@ -437,8 +447,9 @@ 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
samples/events/*.bmp
@@ -447,9 +458,11 @@ 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
samples/treectrl/bitmaps/*.xpm
samples/treectrl/*.ico
samples/treectrl/*.bmp
samples/treectrl/bitmaps/*.bmp
@@ -460,9 +473,11 @@ 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
samples/listctrl/bitmaps/*.xpm
samples/listctrl/*.ico
samples/listctrl/*.bmp
samples/listctrl/bitmaps/*.bmp
@@ -473,8 +488,9 @@ 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
samples/splitter/*.bmp
@@ -483,8 +499,9 @@ 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
samples/grid/*.bmp
@@ -493,8 +510,9 @@ 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
samples/internat/*.ico
samples/internat/*.bmp
@@ -505,35 +523,42 @@ 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
samples/checklst/*.bmp
samples/dnd/*.cpp
samples/dnd/*.h
samples/dnd/makefile.*
samples/dnd/makefile*.*
samples/dnd/*.rc
samples/dnd/*.def
samples/dnd/*.bmp
samples/dnd/*.xbm
samples/dnd/*.xpm
samples/dnd/*.ico
samples/dnd/*.txt
samples/tab/*.cpp
samples/tab/*.h
samples/tab/makefile.*
samples/tab/makefile*.*
samples/tab/*.rc
samples/tab/*.def
samples/tab/*.bmp
samples/tab/*.xbm
samples/tab/*.xpm
samples/tab/*.ico
samples/tab/*.txt
samples/png/*.cpp
samples/png/*.h
samples/png/makefile.*
samples/png/makefile*.*
samples/png/*.rc
samples/png/*.def
samples/png/*.bmp
samples/png/*.xpm
samples/png/*.xbm
samples/png/*.ico
samples/png/*.txt
samples/png/*.png

69
distrib/msw/gtk.rsp Normal file
View File

@@ -0,0 +1,69 @@
install-sh
Makefile
template.mak
TODO.txt
docs/gtk/*.html
src/mkdirs
src/Makefile
src/Makefile.in
src/*.inc
src/gtk/*.cpp
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
src/gdk_imlib/AUDIT
src/gdk_imlib/COPYING.LIB
src/gdk_imlib/README
src/gdk_imlib/ChangeLog
src/iodbc/*.c
src/iodbc/*.ci
src/iodbc/*.h
src/iodbc/IAFA-PACKAGE
src/iodbc/README
src/iodbc/*.exp
src/iodbc/*.mk
src/iodbc/autoconfig
src/iodbc/build
src/iodbc/Changes.log
src/iodbc/postgres/*.h
install/gtk/*
misc/afm/*
misc/gs_afm/*
misc/imlib/*
user/Makefile
user/wxConvert/*.cpp
user/wxConvert/*.h
user/wxConvert/Makefile
user/wxConvert/Makefile.in
user/wxFile/*.cpp
user/wxFile/*.h
user/wxFile/Makefile
user/wxFile/Makefile.in
user/wxFile/*.xpm
user/wxTest/*.cpp
user/wxTest/*.h
user/wxTest/Makefile
user/wxTest/Makefile.in
user/wxTest/*.xpm
user/wxTest/*.png

View File

@@ -1,4 +1,5 @@
docs/msw/*.txt
docs/licence.txt
src/makeb32.env
src/makebcc.env

View File

@@ -1,27 +1,29 @@
@echo off
rem Zip up an external, generic + Windows distribution of wxWindows 2.0
if "%1" == "" goto usage
if "%2" == "" goto usage
set src=d:\wx2\wxWindows
set dest=%src\deliver
if "%src" == "" goto usage
if "%dest" == "" goto usage
echo About to archive an external wxWindows distribution:
echo From %1
echo To %2\wx200gen.zip, %2\wx200doc.zip, %2\wx200msw.zip, %2\wx200ps.zip, %2\wx200hlp.zip, %2\wx200htm.zip, %2\wx200pdf.zip
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 CTRL-C if this is not correct.
pause
erase %2\wx200*.zip
erase %dest\wx200*.zip
cd %1
cd %src
echo Zipping...
zip32 -@ %2\wx200gen.zip < %1\distrib\msw\generic.rsp
zip32 -@ %2\wx200msw.zip < %1\distrib\msw\msw.rsp
zip32 -@ %2\wx200doc.zip < %1\distrib\msw\docsrc.rsp
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\wx200doc.zip < %src\distrib\msw\docsrc.rsp
rem zip32 -@ %2\wx200ps.zip < %1\distrib\msw\wx_ps.rsp
zip32 -@ %2\wx200hlp.zip < %1\distrib\msw\wx_hlp.rsp
zip32 -@ %2\wx200htm.zip < %1\distrib\msw\wx_html.rsp
zip32 -@ %2\wx200pdf.zip < %1\distrib\msw\wx_pdf.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
cd %2
cd %dest
echo wxWindows archived.
goto end

View File

@@ -1,5 +1,4 @@
[OPTIONS]
BMROOT=d:\wx2\wxwind~1\docs\latex\porting ; Assume that bitmaps are where the source is
TITLE=wxWindows Porting Guide
CONTENTS=Contents
COMPRESS=HIGH

View File

@@ -11,7 +11,7 @@ headerRule = yes
footerRule = yes
useHeadingStyles = yes
listItemIndent=40
generateHPJ = yes
generateHPJ = no
htmlBrowseButtons = bitmap
winHelpContents = yes
winHelpVersion = 3 ; 3 for Windows 3.x, 4 for Windows 95

View File

@@ -30,6 +30,14 @@ provided bitmaps.}
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Event handling}
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_BUTTON(id, func)}}{Process a wxEVT\_COMMAND\_BUTTON\_CLICKED event,
when the button is clicked.}
\end{twocollist}
\wxheading{See also}
\helpref{wxButton}{wxbutton}

View File

@@ -6,14 +6,14 @@
\section{What is wxWindows?}
wxWindows is a C++ framework providing GUI (Graphical User
Interface) and other facilities on more than one platform. It currently
supports subsets of Motif, Xt and MS Windows (16-bit, Windows 95 and Windows NT).
Interface) and other facilities on more than one platform. Version 2.0 currently
supports subsets MS Windows (16-bit, Windows 95 and Windows NT) and GTK.
wxWindows was originally developed at the Artificial Intelligence
Applications Institute, University of Edinburgh, for internal use.
wxWindows has been released into the public domain in the hope
that others will also find it useful. Version 2.0 is written and
maintained by Julian Smart and Markus Holzem, with support from users.
maintained by Julian Smart, Robert Roebling and others.
This manual discusses wxWindows in the context of multi-platform
development.\helpignore{For more detail on the wxWindows version 2.0 API
@@ -55,8 +55,8 @@ that are often indistinguishable from those produced using single-platform
toolkits
such as Motif and MFC.
wxWindows 2.0 currently maps to two native APIs: Motif and
MS Windows. An Xt port is also in preparation.
wxWindows 2.0 currently maps to two native APIs: GTK and
MS Windows. Motif, Xt and Mac ports are also in preparation.
The importance of using a platform-independent class library cannot be
overstated, since GUI application development is very time-consuming,
@@ -79,17 +79,17 @@ here are some of the benefits:
\item Low cost (free, in fact!)
\item You get the source.
\item Several example programs.
\item Over 200 pages of printable and on-line documentation.
\item Over 700 pages of printable and on-line documentation.
\item Simple-to-use, object-oriented API.
\item Graphics calls include splines, polylines, rounded rectangles, etc.
\item Constraint-based layout option.
\item Print/preview and document/view architectures.
\item Status line facility, toolbar
\item Easy, object-oriented interprocess comms (DDE subset) under UNIX and
\item Easy, object-oriented interprocess comms (DDE subset) under Unix and
MS Windows.
\item Encapsulated PostScript generation under UNIX, normal MS Windows printing on the
\item Encapsulated PostScript generation under Unix, normal MS Windows printing on the
PC.
\item MDI support under Windows.
\item MDI support under Windows and GTK.
\item Can be used to create DLLs under Windows, dynamic libraries on the Sun.
\item Common dialogs for file browsing, printing, colour selection, etc.
\item Under MS Windows, support for creating metafiles and copying
@@ -171,18 +171,16 @@ following setups.
\begin{enumerate}\itemsep=0pt
\item A 486 or higher PC running MS Windows.
\item One of Microsoft Visual C++, Borland C++, Watcom C++, MetroWerks C++,
Symantec C++, GNU-WIN32.
\item At least 30 MB of disk space.
\item One of Microsoft Visual C++ 4.0 or higher, Borland C++, Gnu-Win32.
\item At least 60 MB of disk space.
\end{enumerate}
(b) UNIX:
(b) Unix:
\begin{enumerate}\itemsep=0pt
\item Almost any C++ compiler, including GNU C++.
\item Almost any UNIX workstation (VMS is supported too) and Motif 1.2 or higher (not necessary
for the Xt version)
\item At least 30 MB of disk space.
\item Almost any Unix workstation, and GTK 1.0 or higher.
\item At least 60 MB of disk space.
\end{enumerate}
\section{Availability and location of wxWindows}
@@ -197,35 +195,26 @@ Applications Institute by anonymous FTP and World Wide Web:
\section{Acknowledgments}
Thanks are due to the AIAI for being willing to release wxWindows into
the public domain, and to our patient wives Harriet and Tanja.
Thanks are due to AIAI for being willing to release the original version of
wxWindows into the public domain, and to our patient wives Harriet, Tanja and others.
The Internet has been an essential prop when coming up against tricky
problems. Thanks to those who answered our
queries or submitted bug fixes and enhancements; wxWindows is very
much a team effort.
Hermann Dunkel contributed XPM support; Arthur Seaton wrote the memory
checking code; Olaf Klein and Patrick Halke wrote the ODBC classes;
Harri Pasanen and Robin Dunn wrote wxPython and contributed to the
wxExtend library.
Markus Holzem write the Xt port. Jonathan Tonberg, Bill Hale,
Cecil Coupe, Thomaso Paoletti, Thomas Fettig, and others slaved away
writing the Mac port. Keith Gary Boyce ported wxWindows to the free
GNU-WIN32 compiler, refusing to give up when shortcuts were suggested.
Many thanks also to: Timothy Peters, Jamshid Afshar, Patrick Albert, C. Buckley,
Robin Corbet, Harco de Hilster, Josep Fortiana, Torsten Liermann, Tatu
M\"{a}nnist\"{o}, Ian Perrigo, Giordano Pezzoli, Petr Smilauer, Neil Smith,
Kari Syst\"{a}, Jyrki Tuomi, Edward Zimmermann, Ian Brown, and many
others.
We would particularly like to thank the following for their contributions to wxWindows, and the many others who have been involved in
the project over the years. Apologies for any unintentional omissions from this list.
Yiorgos Adamopoulos, Jamshid Afshar, Alejandro Aguilar-Sierra, AIAI, Patrick Albert, Karsten Ballueder, Michael Bedward, Kai Bendorf, Yura Bidus, Keith
Gary Boyce, Chris Breeze, Pete Britton, Ian Brown, C. Buckley, Dmitri Chubraev, Robin Corbet, Cecil Coupe, Andrew Davison, Neil Dudman, Robin
Dunn, Hermann Dunkel, Jos van Eijndhoven, Tom Felici, Thomas Fettig, Matthew Flatt, Pasquale Foggia, Josep Fortiana, Todd Fries, Dominic Gallagher,
Wolfram Gloger, Norbert Grotz, Stefan Gunter, Bill Hale, Patrick Halke, Stefan Hammes, Guillaume Helle, Harco de Hilster, Cord Hockemeyer, Markus
Holzem, Olaf Klein, Leif Jensen, Bart Jourquin, Guilhem Lavaux, Jan Lessner, Nicholas Liebmann, Torsten Liermann, Per Lindqvist, Thomas Runge, Tatu
M\"{a}nnist\"{o}, Scott Maxwell, Thomas Myers, Oliver Niedung, Hernan Otero, Ian Perrigo, Timothy Peters, Giordano Pezzoli, Harri Pasanen, Thomaso Paoletti,
Garrett Potts, Marcel Rasche, Robert Roebling, Dino Scaringella, Jobst Schmalenbach, Arthur Seaton, Paul Shirley, Stein Somers, Petr Smilauer, Neil Smith,
Kari Syst\"{a}, Arthur Tetzlaff-Deas, Jonathan Tonberg, Jyrki Tuomi, Janos Vegh, Andrea Venturoli, Vadim Zeitlin, Xiaokun Zhu, Edward Zimmermann.
`Graphplace', the basis for the wxGraphLayout library, is copyright Dr. Jos
T.J. van Eijndhoven of Eindhoven University of Technology. The code has
been used in wxGraphLayout with his permission.
We also acknowledge the author of XFIG, the excellent UNIX drawing tool,
We also acknowledge the author of XFIG, the excellent Unix drawing tool,
from the source of which we have borrowed some spline drawing code.
His copyright is included below.
@@ -250,7 +239,7 @@ changes.txt for differences between versions.
\section{Include files}
The main include file is {\tt "wx.h"}; this includes the most commonly
The main include file is {\tt "wx/wx.h"}; this includes the most commonly
used modules of wxWindows.
To save on compilation time, include only those header files relevant to the
@@ -259,25 +248,26 @@ the following section before any other includes:
\begin{verbatim}
// For compilers that support precompilation, includes "wx.h".
#include "wx_prec.h"
#include <wx/wxprec.h>
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
... include minimum set of files necessary here ...
// Include your minimal set of headers here, or wx.h
#include <wx/wx.h>
#endif
... now your other include files ...
\end{verbatim}
The file {\tt "wx\_prec.h"} includes {\tt "wx.h"}. Although this incantation
The file {\tt "wx/wxprec.h"} includes {\tt "wx/wx.h"}. Although this incantation
may seem quirky, it is in fact the end result of a lot of experimentation,
and several Windows compilers to use precompilation (those tested are Microsoft Visual C++, Borland C++
and Watcom C++).
Borland precompilation is largely automatic. Visual C++ requires specification of {\tt "wx\_prec.h"} as
Borland precompilation is largely automatic. Visual C++ requires specification of {\tt "wx/wxprec.h"} as
the file to use for precompilation. Watcom C++ is automatic apart from the specification of
the .pch file. Watcom C++ is strange in requiring the precompiled header to be used only for
object files compiled in the same directory as that in which the precompiled header was created.
@@ -287,14 +277,14 @@ multi-megabyte .pch files.
\section{Libraries}
Under UNIX, use the library libwx\_motif.a
(Motif). Under Windows, use the library wx.lib for stand-alone Windows
Please the wxGTK documentation for use of the Unix version of wxWindows.
Under Windows, use the library wx.lib for stand-alone Windows
applications, or wxdll.lib for creating DLLs.
\section{Configuration}
The following lists the options configurable in the file
\rtfsp{\tt include/base/wx\_setup.h.} Some settings are a matter
\rtfsp{\tt "wx/msw/setup.h"} and {\tt "wx/gtk/setup.h"} Some settings are a matter
of taste, some help with platform-specific problems, and
others can be set to minimize the size of the library.
@@ -306,27 +296,15 @@ others can be set to minimize the size of the library.
\twocolitem{USE\_DOC\_VIEW\_ARCHITECTURE}{If 1, wxDocument, wxView and related classes are compiled.}
\twocolitem{USE\_DYNAMIC\_CLASSES}{If 1, the run-time class macros and classes are compiled. Recommended,
and necessary for the document/view framework.}
\twocolitem{USE\_EXTENDED\_STATICS}{If 1, wxStaticItem code is compiled for enhanced panel decorative items.
Not rigorously tested, and not documented.}
\twocolitem{USE\_HELP}{If 1, interface to help system is compiled.}
\twocolitem{USE\_GAUGE}{If 1, the wxGauge class compiled.}
\twocolitem{USE\_GLOBAL\_MEMORY\_OPERATORS}{If 1, redefines global new and delete operators to be compatible
with the extended arguments of the debugging wxObject new and delete operators. If this causes problems
for your compiler, set to 0.}
\twocolitem{USE\_GNU\_WXSTRING}{If 1, the enhanced GNU wxString and regular expression class are compiled
in place of the normal wxString class. See contrib/wxstring for details.}
\twocolitem{USE\_IMAGE\_LOADING\_IN\_MSW}{Use code to allow dynamic .BMP loading
under MS Windows.}
\twocolitem{USE\_IMAGE\_LOADING\_IN\_X}{Use code in utils/image to allow dynamic .BMP/.GIF loading
under X.}
\twocolitem{USE\_RESOURCE\_LOADING\_IN\_MSW}{Use code to allow dynamic .ICO/.CUR loading
under MS Windows.}
\twocolitem{USE\_IPC}{If 1, interprocess communication code is compiled.}
\twocolitem{USE\_MEMORY\_TRACING}{If 1, enables debugging versions of wxObject::new and wxObject::delete
if the value of DEBUG is defined to more than 0.}
\twocolitem{USE\_METAFILE}{If 1, Windows Metafile code is compiled.}
\twocolitem{USE\_PANEL\_IN\_PANEL}{If 1, experimental panel-in-panel code is used
for common dialog boxes. Not recommended, since tab traversal can suffer.}
\twocolitem{USE\_POSTSCRIPT}{If 1, PostScript code is compiled.}
\twocolitem{USE\_POSTSCRIPT\_ARCHITECTURE\_IN\_MSW}{Set to 1 to enable the printing architecture
to make use of either native Windows printing facilities, or the wxPostScriptDC class depending
@@ -334,32 +312,7 @@ on the wxApp::SetPrintMode setting.}
\twocolitem{USE\_PRINTING\_ARCHITECTURE}{If 1, wxPrinter, wxPrintout and related classes are compiled
for the print/preview framework.}
\twocolitem{USE\_RESOURCES}{If 1, win.ini or .Xdefaults-style resource read/write code is compiled.}
\twocolitem{USE\_SCROLLBAR}{If 1, wxScrollBar class is compiled. Not rigorously tested, and not documented.}
\twocolitem{USE\_SPLINES}{If 1, spline code is compiled.}
\twocolitem{USE\_TOOLBAR}{If 1, the wxToolBar class is compiled.}
\twocolitem{USE\_TYPEDEFS}{If 1, a typedef will be used for wxPoint instead of
a class declaration, to reduce overhead and avoid a Microsoft C++ memory bug.}
\twocolitem{USE\_VLBOX}{If 1, wxVirtListBox code is compiled for a virtual listbox item.
Not rigorously tested, and not documented.}
\twocolitem{USE\_WX\_RESOURCES}{If 1, wxWindows resource file (.WXR) code is compiled.}
\twocolitem{USE\_XFIG\_SPLINE\_CODE}{If 1, XFig-derived code is used for spline
drawing. If 0, AIAI code is used, which is slower.}
\twocolitem{USE\_XPM\_IN\_X}{If 1, XPM (colour pixmap) facilities will be compiled and used
in wxBitmap under X.}
\twocolitem{USE\_XPM\_IN\_MSW}{If 1, XPM (colour pixmap) facilities will be compiled and used
in wxBitmap under MS Windows.}
\end{twocollist}
\subsection{X features}
\begin{twocollist}
\twocolitem{DEFAULT\_FILE\_SELECTOR\_SIZE}{Let Motif choose the size of
XmFileSelectionBox. Otherwise, size is 500x600.}
\twocolitem{PIXEL0\_DISABLE}{Define to disallow allocation of pixel 0 (wxXOR problem).}
\twocolitem{USE\_GADGETS}{Use gadgets where possible rather than Widgets for items.
Default is to use Gadgets.}
\twocolitem{USE\_BUTTON\_GADGET}{Use gadgets for buttons. This can intefere with
default button selection, so the default is zero.}
\end{twocollist}
\subsection{Windows and NT features}
@@ -373,18 +326,17 @@ directory, ctl3d.h into an include directory, and ctl3dv2.dll into
windows/system). You may need to find a compiler-specific version of ctl3dv2.lib
or ctl3d32.lib. Define CTL3D to be 1 in wx\_setup.h and link your executables with ctl3dv2.lib
or ctl3d32.lib.}
\twocolitem{USE\_ITSY\_BITSY}{If 1, compiles in code to support tiny window titlebars.}
\twocolitem{USE\_ODBC}{If 1, compiles wxDatabase and wxRecordSet classes for ODBC
access. Requires sql.h, sqlext.h files if set to 1 (see topic on database support).}
\end{twocollist}
\section{Makefiles}
At the moment there is no attempt to make UNIX makefiles and
At the moment there is no attempt to make Unix makefiles and
PC makefiles compatible, i.e. one makefile is required for
each environment.
Sample makefiles for UNIX (suffix .UNX), MS C++ (suffix .DOS and .NT), Borland
Sample makefiles for Unix (suffix .UNX), MS C++ (suffix .DOS and .NT), Borland
C++ (.BCC) and Symantec C++ (.SC) are included for the library, demos
and utilities. The NT, Borland and Symantec makefiles cannot be
guaranteed to be up-to-date since the author does not have
@@ -403,12 +355,12 @@ FINAL=1 on the command line to remove debugging information (this only
really necessary at the link stage), and DLL=1 to make a DLL version of
the library, if building a library.
\subsection{UNIX makefiles}
\subsection{Unix makefiles}
TODO.
Debugging information is included by default; you may add DEBUG= as an
argument to make to compile without it, or use the UNIX {\bf strip}
argument to make to compile without it, or use the Unix {\bf strip}
command to remove debugging information from an executable.
\normalbox{{\it Important note:} Most compiler flags are kept centrally in
@@ -426,7 +378,7 @@ The least that must be defined in the Windows resource file (extension RC)
is the following statement:
\begin{verbatim}
rcinclude wx.rc
rcinclude "wx/msw/wx.rc"
\end{verbatim}
which includes essential internal wxWindows definitions. The resource script
@@ -445,7 +397,8 @@ as the Program Manager) find your application icon first.}
\subsection{Module definition file}
A module definition file (extension DEF) looks like the following:
A module definition file (extension DEF) is required for 16-bit applications, and
looks like the following:
\begin{verbatim}
NAME Hello
@@ -461,46 +414,6 @@ STACKSIZE 8192
The only lines which will usually have to be changed per application are
NAME and DESCRIPTION.
\section{Memory models and memory allocation}\label{memorymodels}
Under UNIX, memory allocation isn't a problem. Under Windows, the only
really viable way to go is to use the large model, which uses the global
heap instead of the local heap for memory allocation. Unless more than
one read-write data segment is used,% (see \helpref{large data}{largedata}
large model programs may still have multiple instances under MS
C/C++ 7. Microsoft give the following guidelines for producing
multiple-instance large model programs:
\begin{itemize}\itemsep=0pt
\item Do not use {\tt /ND} to name extra data segments unless the segment is READONLY.
\item Use the .DEF file to mark extra data segments READONLY.
\item Do not use \_\_far or FAR to mark data items.
\item Use {\tt /PACKDATA} to combine data segments.
\item Use {\tt /Gt65500 /Gx} to force all data into the default data segment.
\end{itemize}
Even with the single-instance limitation, the productivity benefit is
worth it in the majority of cases. Note that some other multi-platform
class libraries also have this restriction. (If more than one instance
really is required, create several copies of the program with different
names.)
Having chosen the large model, just use C++ `new', `delete' (and if
necessary `malloc' and `free') in the normal way. The only restrictions
now encountered are a maximum of 64 KB for a single program segment and
for a single data item, unless huge model is selected.
For Borland users, use the data threshold switch, and the following is
also recommended:
\begin{itemize}\itemsep=0pt
\item Check ``Automatic Far Data Segments"
\item Check ``Put Constant Strings into Code Segment"
\end{itemize}
See also the Frequently Asked Questions document for further details
on using Borland with wxWindows.
\subsection{Allocating and deleting wxWindows objects}
In general, classes derived from wxWindow must dynamically allocated
@@ -508,17 +421,13 @@ with {\it new} and deleted with {\it delete}. If you delete a window,
all of its children and descendants will be automatically deleted,
so you don't need to delete these descendants explicitly.
Don't statically create a window unless you know that the window
cannot be deleted dynamically. Modal dialogs, such as those used
in the {\tt dialogs} sample, can usually be created statically,
if you know that the OK or Cancel button does not destroy the dialog.
When deleting a frame or dialog, use {\bf Destroy} rather than {\bf delete} so
that the wxWindows delayed deletion can take effect. This waits until idle time
(when all messages have been processed) to actually delete the window, to avoid
problems associated with the GUI sending events to deleted windows.
Most drawing objects, such as wxPen, wxBrush, wxFont, and wxBitmap, should be
created dynamically. They are cleaned up automatically on program exit.
wxColourMap is an exception to this rule (currently). In particular,
do not attempt to create these objects globally before OnInit() has a chance
to be called, because wxWindows might not have done essential internal initialisation
(including creation of lists containing all instances of wxPen, wxBrush etc.)
Don't create a window on the stack, because this will interfere
with delayed deletion.
If you decide to allocate a C++ array of objects (such as wxBitmap) that may
be cleaned up by wxWindows, make sure you delete the array explicitly
@@ -531,24 +440,10 @@ enough for copies to be made.
Beware of deleting objects such as a wxPen or wxBitmap if they are still in use.
Windows is particularly sensitive to this: so make sure you
make calls like wxDC::SetPen(NULL) or wxDC::SelectObject(NULL) before deleting
make calls like wxDC::SetPen(wxNullPen) or wxDC::SelectObject(wxNullBitmap) before deleting
a drawing object that may be in use. Code that doesn't do this will probably work
fine on some platforms, and then fail under Windows.
\section{Dynamic Link Libraries}
wxWindows may be used to produce DLLs which run under MS Windows. Note that
this is not the same thing as having wxWindows as a DLL, which is not
currently possible. For Microsoft C++, use the makefile with the argument DLL=1 to produce
a version of the wxWindows library which may be used in a DLL application.
There is a bug in Microsoft C++ which makes the compiler complain about returned floats,
which goes away when the {\tt /Os} option is used, which is why that flag is
set in the makefile.
For making wxWindows as a Sun dynamic library, there are comments in the
UNIX makefile for the appropriate flags for AT\&T C++. Sorry, I haven't
investigated the flags needed for other compilers.
\section{Conditional compilation}
One of the purposes of wxWindows is to reduce the need for conditional
@@ -557,63 +452,69 @@ However, sometimes it is necessary to incorporate platform-specific
features (such as metafile use under MS Windows). The following identifiers
may be used for this purpose, along with any user-supplied ones:
\begin{itemize}
\item {\tt wx\_x} - for code which should work under any X toolkit
\item {\tt wx\_motif} - for code which should work under Motif only
\item {\tt wx\_msw} - for code which should work under Microsoft Windows only
\item {\tt wx\_xt} - for code which should work under Xt only
\end{itemize}
For example:
{\bf GUIs:}
\begin{verbatim}
...
#ifdef wx_x
(void)wxMessageBox("Sorry, metafiles not available under X.");
#endif
#ifdef wx_msw
wxMetaFileDC dc;
DrawIt(dc);
wxMetaFile *mf = dc.Close();
mf->SetClipboard();
delete mf;
#endif
...
__X__ any X, but not GTK
__WXMOTIF__ Motif
__WXGTK__ GTK
__WXMSW__ Any Windows
__MAC__ MacOS
__UNIX__ any Unix
__WIN95__ GUI for Windows 95 and above; NT 4.0 and above.
__WIN32__ WIN32 API
__NT__ Windows NT
__CURSES__ CURSES
\end{verbatim}
\section{Building on-line help}
{\bf OSes:}
wxWindows has its own help system from version 1.30: wxHelp. It can be
used to view the wxWindows class library reference, and also to provide
on-line help for your wxWindows applications. The API, made accessible
by including {\tt wx\_help.h}, allows you to load files and display
specific sections, using DDE to communicate between the application and
wxHelp.
\begin{verbatim}
__HPUX__
__SVR4__
__SYSV__
__LINUX__
__SGI__
__ULTRIX__
__BSD__
__VMS__
__SUN__ Any Sun
__SUNOS__
__SOLARIS__
__ALPHA__
__AIX__
__DATA_GENERAL__
__OSF__
__FREEBSD__
\end{verbatim}
wxHelp files can be marked up by hand from ASCII files within wxHelp,
or may be generated from other files, as is the case with the wxWindows
documentation.
{\bf Compilers:}
It is possible to use the platform-specific help
system (e.g. WinHelp) instead of wxHelp.
\begin{verbatim}
__GNUWIN32__ Gnu-Win32 compiler
__DJGPP__ DJGPP
__GNUG__ Gnu C++ on any platform
__BORLANDC__ Borland C++
__WATCOMC__ Watcom C++
__SYMANTECC__ Symantec C++
__VISUALC__ VC++
__SUNCC__
\end{verbatim}
{\bf wxWindows modes:}
\begin{verbatim}
__WXDEBUG__ usage: #ifdef __DEBUG__ (=> debug mode, else => release)
\end{verbatim}
See {\tt install.txt}, the wxHelp documentation (in {\tt
utils/wxhelp/docs}) and \helpref{wxHelp}{wxhelp} for further details.
\section{C++ issues}
There are cases where a C++ program will compile and run fine under one
environment, and then fail to compile using a different compiler. Some
caveats are given below, from experience with the GNU C++ compiler (GCC)
and MS C/C++ compiler version 7.
The following documents some miscellaneous C++ issues.
\subsection{Templates}
wxWindows does not use templates for two main reasons: one, it is a
notoriously unportable feature, and two, the author is irrationally
suspicious of them and prefers to use casts. More compilers are
now implementing templates, and so it will probably be safe to use
them soon without fear of portability problems.
wxWindows does not use templates since it is a notoriously unportable feature.
\subsection{Precompiled headers}
@@ -636,7 +537,7 @@ A related problem is that for compilers that don't have precompiled
headers, including a lot of header files slows down compilation
considerably. For this reason, you will find (in the common
X and Windows parts of the library) conditional
compilation that under UNIX, includes a minimal set of headers;
compilation that under Unix, includes a minimal set of headers;
and when using Visual C++, includes {\tt wx.h}. This should help provide
the optimal compilation for each compiler, although it is
biassed towards the precompiled headers facility available
@@ -658,14 +559,14 @@ This has undesirable ramifications for people who have documents of the
same name in different directories.
As regards the limitations of DOS 8+3 single-case filenames versus
unrestricted UNIX filenames, the best solution is to use DOS filenames
unrestricted Unix filenames, the best solution is to use DOS filenames
for your application, and also for document filenames {\it if} the user
is likely to be switching platforms regularly. Obviously this latter
choice is up to the application user to decide. Some programs (such as
YACC and LEX) generate filenames incompatible with DOS; the best
solution here is to have your UNIX makefile rename the generated files
solution here is to have your Unix makefile rename the generated files
to something more compatible before transferring the source to DOS.
Transferring DOS files to UNIX is no problem, of course, apart from EOL
Transferring DOS files to Unix is no problem, of course, apart from EOL
conversion for which there should be a utility available (such as
dos2unix).
@@ -693,7 +594,8 @@ text to suit the size of window, as WinHelp does, and its input files
are uncompressed ASCII with some embedded font commands and an .xlp
extension. Most wxWindows documentation (user manuals and class
references) is supplied in wxHelp format, and also in Windows Help
format.
format. The wxWindows 2.0 project will presently use an HTML widget
in a new and improved wxHelp implementation, under X.
Note that an application can be programmed to use Windows Help under
MS Windows, and wxHelp under X. An alternative help viewer under X is
@@ -764,18 +666,6 @@ first attempt.
See the separate manual and the directory utils/wxgraph.
\section{wxImage}\label{wximage}
This is a collection of GIF/BMP/XBM bitmap loading and displaying
routines for X.
\section{MFUTILS}\label{mfutils}
A very modest step towards reading Windows metafiles on the
any platform. Julian Smart's ClockWorks program demonstrates
how extremely simple metafiles may be read and displayed (in this
case, to be used as clock hands).
\section{Colours}\label{coloursampler}
A colour sampler for viewing colours and their names on each

View File

@@ -18,6 +18,14 @@ There are no special styles for wxButton.
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Event handling}
\twocolwidtha{7cm}%
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_BUTTON(id, func)}}{Process a wxEVT\_COMMAND\_BUTTON\_CLICKED event,
when the button is clicked.}
\end{twocollist}
\wxheading{See also}
\helpref{wxBitmapButton}{wxbitmapbutton}
@@ -99,7 +107,7 @@ box.
Under Windows, only dialog box buttons respond to this function. As
normal under Windows and Motif, pressing return causes the default button to
be depressed when the return key is pressed. See also \helpref{wxWindow::SetFocus}{wxwindowsetfocus}\rtfsp
which sets the keyboard focus for windows and text panel items, \helpref{wxWindow::OnDefaultAction}{wxwindowondefaultaction}\rtfsp
which sets the keyboard focus for windows and text panel items,\rtfsp
and \helpref{wxWindow::GetDefaultItem}{wxwindowgetdefaultitem}.
Note that under Motif, calling this function immediately after

View File

@@ -32,21 +32,9 @@ The following are a variety of windows that are derived from wxWindow.
\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{wxStatusBar95}{wxstatusbar95}}{Implements a Windows 95 status bar on a frame}
\twocolitem{\helpref{wxTabbedPanel}{wxtabbedpanel}}{Tabbed panel}
\end{twocollist}
{\large {\bf Toolbar classes}}
\overview{Overview}{wxtoolbaroverview}
These are the toolbar classes.
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxToolBarBase}{wxtoolbarbase}}{Toolbar base class}
\twocolitem{\helpref{wxToolBarSimple}{wxtoolbarsimple}}{A simple, cross-platform toolbar class}
\twocolitem{\helpref{wxToolBarMSW}{wxtoolbarmsw}}{A Windows-only toolbar class}
\twocolitem{\helpref{wxToolBar95}{wxtoolbar95}}{A Windows 95-only toolbar class}
\twocolitem{\helpref{wxToolBar}{wxtoolbar}}{Toolbar class}
\twocolitem{\helpref{wxTabbedPanel}{wxtabbedpanel}}{Tabbed panel (to be replaced with wxNotebook)}
\twocolitem{\helpref{wxNotebook}{wxnotebook}}{Notebook class (undocumented)}
\end{twocollist}
{\large {\bf Common dialogs}}
@@ -331,6 +319,7 @@ product.
\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

@@ -16,9 +16,17 @@ There are no special styles for wxCheckBox.
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Event handling}
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_CHECKBOX(id, func)}}{Process a wxEVT\_COMMAND\_CHECKBOX\_CLICKED event,
when the checkbox is clicked.}
\end{twocollist}
\wxheading{See also}
\helpref{wxRadioButton}{wxradiobutton}
\helpref{wxRadioButton}{wxradiobutton}, \helpref{wxCommandEvent}{wxcommandevent}
\latexignore{\rtfignore{\wxheading{Members}}}

View File

@@ -17,9 +17,18 @@ There are no special styles for wxChoice.
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Event handling}
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_CHOICE(id, func)}}{Process a wxEVT\_COMMAND\_CHOICE\_SELECTED event,
when an item on the list is selected.}
\end{twocollist}
\wxheading{See also}
\helpref{wxListBox}{wxlistbox}
\helpref{wxListBox}{wxlistbox}, \helpref{wxComboBox}{wxcombobox},
\rtfsp\helpref{wxCommandEvent}{wxcommandevent}
\latexignore{\rtfignore{\wxheading{Members}}}

View File

@@ -10,8 +10,7 @@ No parent class.
\wxheading{See also}
\overview{Overview}{wxclassinfooverview}\\
\helpref{wxObject}{wxobject}
\helpref{Overview}{wxclassinfooverview}, \helpref{wxObject}{wxobject}
\latexignore{\rtfignore{\wxheading{Members}}}

View File

@@ -46,11 +46,12 @@ $$\image{14cm;0cm}{wxclass.ps}$$
\input cmdevent.tex
\input cmdproc.tex
\input conditn.tex
\input config.tex
\input control.tex
\input cursor.tex
\input database.tex
\input date.tex
\input datstream.tex
\input datstrm.tex
\input dc.tex
\input ddeclint.tex
\input ddeconn.tex
@@ -61,6 +62,8 @@ $$\image{14cm;0cm}{wxclass.ps}$$
\input document.tex
\input docchfrm.tex
\input docmanag.tex
\input docmdich.tex
\input docmdipr.tex
\input docprfrm.tex
\input doctempl.tex
\input dropevt.tex
@@ -94,6 +97,7 @@ $$\image{14cm;0cm}{wxclass.ps}$$
\input listbox.tex
\input listctrl.tex
\input listevt.tex
% \input log.tex
\input mask.tex
\input mdi.tex
\input menu.tex
@@ -144,7 +148,7 @@ $$\image{14cm;0cm}{wxclass.ps}$$
\input statbox.tex
\input stattext.tex
\input statusbr.tex
%\input wxstring.tex
\input wxstring.tex
\input strlist.tex
\input sysclevt.tex
\input settings.tex
@@ -172,3 +176,8 @@ $$\image{14cm;0cm}{wxclass.ps}$$
\input function.tex
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "referenc"
%%% End:

View File

@@ -27,7 +27,7 @@ which is generated by a wxCheckBox control.}
which is generated by a wxChoice control.}
\twocolitem{{\bf EVT\_LISTBOX(id, func)}}{Process a wxEVT\_COMMAND\_LISTBOX\_SELECTED command,
which is generated by a wxListBox control.}
\twocolitem{{\bf EVT\_LISTBOX_DCLICK(id, func)}}{Process a wxEVT\_COMMAND\_LISTBOX\_DOUBLECLICKED command,
\twocolitem{{\bf EVT\_LISTBOX\_DCLICK(id, func)}}{Process a wxEVT\_COMMAND\_LISTBOX\_DOUBLECLICKED command,
which is generated by a wxListBox control.}
\twocolitem{{\bf EVT\_TEXT(id, func)}}{Process a wxEVT\_COMMAND\_TEXT\_UPDATED command,
which is generated by a wxTextCtrl control.}
@@ -48,12 +48,16 @@ which is generated by a wxScrollBar control. This is provided for compatibility
more specific scrollbar event macros should be used instead (see \helpref{wxScrollEvent}{wxscrollevent}).}
\twocolitem{{\bf EVT\_COMBOBOX(id, func)}}{Process a wxEVT\_COMMAND\_COMBOBOX\_SELECTED command,
which is generated by a wxComboBox control.}
\twocolitem{{\bf EVT\_TOOL(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_CLICKED command,
which is generated by a toobar button.}
\twocolitem{{\bf EVT\_TOOL\_RCLICKED(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_RCLICKED command,
which is generated by a toobar button.}
\twocolitem{{\bf EVT\_TOOL\_ENTER(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_ENTER command,
which is generated by a toobar button.}
\twocolitem{{\bf EVT\_TOOL(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_CLICKED event
(a synonym for wxEVT\_COMMAND\_MENU\_SELECTED). Pass the id of the tool.}
\twocolitem{{\bf EVT\_TOOL\_RANGE(id1, id2, func)}}{Process a wxEVT\_COMMAND\_TOOL\_CLICKED event
for a range id identifiers. Pass the ids of the tools.}
\twocolitem{{\bf EVT\_TOOL\_RCLICKED(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_RCLICKED event.
Pass the id of the tool.}
\twocolitem{{\bf EVT\_TOOL\_RCLICKED\_RANGE(id1, id2, func)}}{Process a wxEVT\_COMMAND\_TOOL\_RCLICKED event
for a range of ids. Pass the ids of the tools.}
\twocolitem{{\bf EVT\_TOOL\_ENTER(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_ENTER event.
Pass the id of the toolbar itself. The value of wxCommandEvent::GetSelection is the tool id, or -1 if the mouse cursor has moved off a tool.}
\twocolitem{{\bf EVT\_COMMAND\_LEFT\_CLICK(id, func)}}{Process a wxEVT\_COMMAND\_LEFT\_CLICK command,
which is generated by a control (Windows 95 and NT only).}
\twocolitem{{\bf EVT\_COMMAND\_LEFT\_DCLICK(id, func)}}{Process a wxEVT\_COMMAND\_LEFT\_DCLICK command,
@@ -177,3 +181,8 @@ Sets the {\bf m\_commandInt} member.
Sets the {\bf m\_commandString} member.
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "referenc"
%%% End:

View File

@@ -26,9 +26,20 @@ displaying the current selection.}
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Event handling}
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_COMBOBOX(id, func)}}{Process a wxEVT\_COMMAND\_COMBOBOX\_SELECTED event,
when an item on the list is selected.}
\twocolitem{{\bf EVT\_TEXT(id, func)}}{Process a wxEVT\_COMMAND\_TEXT\_UPDATED event,
when the combobox text changes.}
\end{twocollist}
\wxheading{See also}
\helpref{wxListBox}{wxlistbox}, \helpref{wxTextCtrl}{wxtextctrl}, \helpref{wxChoice}{wxchoice}
\helpref{wxListBox}{wxlistbox}, \helpref{wxTextCtrl}{wxtextctrl}, \helpref{wxChoice}{wxchoice},
\rtfsp\helpref{wxCommandEvent}{wxcommandevent}
\latexignore{\rtfignore{\wxheading{Members}}}

612
docs/latex/wx/config.tex Normal file
View File

@@ -0,0 +1,612 @@
\section{\class{wxConfigBase}}\label{wxconfigbase}
wxConfigBase class defines the basic interface of all config classes. It can
not be used by itself (it's an abstract base class) and you'll always use one
of its derivations: wxIniConfig, wxFileConfig, wxRegConfig or
any other.
However, usually you don't even need to know the precise nature of the class
you're working with but you would just use the wxConfigBase methods. This
allows you to write the same code regardless of whether you're working with
the registry under Win32 or text-based config files under Unix (or even
Windows 3.1 .INI files if you're really unlucky). To make writing the portable
code even easier, wxWindows provides a typedef wxConfig
which is mapped onto the native wxConfigBase implementation on the given
platform: i.e. wxRegConfig under Win32, wxIniConfig under Win16 and
wxFileConfig otherwise.
See \helpref{config overview}{configoverview} for the descriptions of all
features of this class.
\wxheading{Derived from}
No base class
\wxheading{Example}
Here is how you would typically use this class:
\begin{verbatim}
// using wxConfig instead of writing wxFileConfig or wxRegConfig enhances
// portability of the code
wxConfig *config = new wxConfig("MyAppName");
wxString str;
if ( config->Read("LastPrompt", &str) ) {
// last prompt was found in the config file/registry and its value is now
// in str
...
}
else {
// no last prompt...
}
// another example: using default values and the full path instead of just
// key name: if the key is not found , the value 17 is returned
long value = config->Read("/LastRun/CalculatedValues/MaxValue", -1);
...
...
...
// at the end of the program we would save everything back
config->Write("LastPrompt", str);
config->Write("/LastRun/CalculatedValues/MaxValue", value);
// the changes will be written back automatically
delete config;
\end{verbatim}
This basic example, of course, doesn't show all wxConfig features, such as
enumerating, testing for existence and deleting the entries and groups of
entries in the config file, its abilities to automatically store the default
values or expand the environment variables on the fly. However, the main idea
is that using this class is easy and that it should normally do what you
expect it to.
NB: in the documentation of this class, the words "config file" also mean
"registry hive" for wxRegConfig and, generally speaking, might mean any
physical storage where a wxConfigBase-derived class stores its data.
\latexignore{\rtfignore{\wxheading{Function groups}}}
\membersection{Static functions}
These functions deal with the "default" config object. Although its usage is
not at all mandatory it may be convenient to use a global config object
instead of creating and deleting the local config objects each time you need
one (especially because creating a wxFileConfig object might be a time
consuming operation). In this case, you may create this global config object
in the very start of the program and {\it Set()} it as the default. Then, from
anywhere in your program, you may access it using the {\it Get()} function. Of
course, you should delete it on the program termination (otherwise, not only a
memory leak will result, but even more importantly the changes won't be
written back!).
As it happens, you may even further simplify the procedure described above:
you may forget about calling {\it Set()}. When {\it Get()} is called and there
is no current object, it will create one using {\it Create()} function. To
disable this behaviour {\it DontCreateOnDemand()} is provided.
\helpref{Set}{wxconfigbaseset}\\
\helpref{Get}{wxconfigbaseget}\\
\helpref{Create}{wxconfigbasecreate}\\
\helpref{DontCreateOnDemand}{wxconfigbasedontcreateondemand}
\membersection{Constructor and destructor}
\helpref{wxConfigBase}{wxconfigbasector}\\
\helpref{\destruct{wxConfigBase}}{wxconfigbasedtor}
\membersection{Path management}
As explained in \helpref{config overview}{configoverview}, the config classes
support a file system-like hierarchy of keys (files) and groups (directories).
As in the file system case, to specify a key in the config class you must use
a path to it. Config classes also support the notion of the current group,
which makes it possible to use the relative paths. To clarify all this, here
is an example (it's only for the sake of demonstration, it doesn't do anything
sensible!):
\begin{verbatim}
wxConfig *config = new wxConfig("FooBarApp");
// right now the current path is '/'
conf->Write("RootEntry", 1);
// go to some other place: if the group(s) don't exist, they will be created
conf->SetPath("/Group/Subgroup");
// create an entry in subgroup
conf->Write("SubgroupEntry", 3);
// '..' is understood
conf->Write("../GroupEntry", 2);
conf->SetPath("..");
wxASSERT( conf->Read("Subgroup/SubgroupEntry", 0l) == 3 );
// use absolute path: it's allowed, too
wxASSERT( conf->Read("/RootEntry", 0l) == 1 );
\end{verbatim}
{\it Warning}: it's probably a good idea to always restore the path to its
old value on function exit:
\begin{verbatim}
void foo(wxConfigBase *config)
{
wxString strOldPath = config->GetPath();
config->SetPath("/Foo/Data");
...
config->SetPath(strOldPath);
}
\end{verbatim}
because otherwise the assert in the following example will surely fail
(we suppose here that {\it foo()} function is the same as above except that it
doesn't save and restore the path):
\begin{verbatim}
void bar(wxConfigBase *config)
{
config->Write("Test", 17);
foo(config);
// we're reading "/Foo/Data/Test" here! -1 will probably be returned...
wxASSERT( config->Read("Test", -1) == 17 );
}
\end{verbatim}
Finally, the path separator in wxConfigBase and derived classes is always '/',
regardless of the platform (i.e. it's {\bf not} '$\backslash\backslash$' under Windows).
\helpref{SetPath}{wxconfigbasesetpath}\\
\helpref{GetPath}{wxconfigbasegetpath}
\membersection{Enumeration}
The functions in this section allow to enumerate all entries and groups in the
config file. All functions here return FALSE when there are no more items.
You must pass the same index to GetNext and GetFirst (don't modify it).
Please note that it's {\bf not} the index of the current item (you will have
some great surprizes with wxRegConfig if you assume this) and you shouldn't
even look at it: it's just a "cookie" which stores the state of the
enumeration. It can't be stored inside the class because it would prevent you
from running several enumerations simultaneously, that's why you must pass it
explicitly.
Having said all this, enumerating the config entries/groups is very simple:
\begin{verbatim}
wxArrayString aNames;
// enumeration variables
wxString str;
long dummy;
// first enum all entries
bool bCont = config->GetFirstEntry(str, dummy);
while ( bCont ) {
aNames.Add(str);
bCont = GetConfig()->GetNextEntry(str, dummy);
}
... we have all entry names in aNames...
// now all groups...
bCont = GetConfig()->GetFirstGroup(str, dummy);
while ( bCont ) {
aNames.Add(str);
bCont = GetConfig()->GetNextGroup(str, dummy);
}
... we have all group (and entry) names in aNames...
\end{verbatim}
There are also functions to get the number of entries/subgroups without
actually enumerating them, but you will probably never need them.
\helpref{GetFirstGroup}{wxconfigbasegetfirstgroup}\\
\helpref{GetNextGroup}{wxconfigbasegetnextgroup}\\
\helpref{GetFirstEntry}{wxconfigbasegetfirstentry}\\
\helpref{GetNextEntry}{wxconfigbasegetnextentry}\\
\helpref{GetNumberOfEntries}{wxconfigbasegetnumberofentries}\\
\helpref{GetNumberOfGroups}{wxconfigbasegetnumberofgroups}
\membersection{Tests of existence}
\helpref{HasGroup}{wxconfigbasehasgroup}\\
\helpref{HasEntry}{wxconfigbasehasentry}\\
\helpref{Exists}{wxconfigbaseexists}
\membersection{Miscellaneous accessors}
\helpref{SetAppName}{wxconfigbasesetappname}\\
\helpref{GetAppName}{wxconfigbasegetappname}\\
\helpref{SetVendorName}{wxconfigbasesetvendorname}\\
\helpref{GetVendorName}{wxconfigbasegetvendorname}
\membersection{Key access}
These function are the core of wxConfigBase class: they allow you to read and
write config file data. All {\it Read} function take a default value which
will be returned if the specified key is not found in the config file.
Currently, only two types of data are supported: string and long (but it might
change in the near future). To work with other types: for {\it int} or {\it
bool} you can work with function taking/returning {\it long} and just use the
casts. Better yet, just use {\it long} for all variables which you're going to
save in the config file: chances are that \verb$sizeof(bool) == sizeof(int) == sizeof(long)$ anyhow on your system. For {\it float}, {\it double} and, in
general, any other type you'd have to translate them to/from string
representation and use string functions.
Try not to read long values into string variables and vice versa: although it
just might work with wxFileConfig, you will get a system error with
wxRegConfig because in the Windows registry the different types of entries are
indeed used.
Final remark: the {\it szKey} parameter for all these functions can contain an
arbitrary path (either relative or absolute), not just the key name.
\helpref{Read}{wxconfigbaseread}\\
\helpref{Write}{wxconfigbasewrite}\\
\helpref{Flush}{wxconfigbaseflush}
\membersection{Delete entries/groups}
The functions in this section delete entries and/or groups of entries from the
config file. {\it DeleteAll()} is especially useful if you want to erase all
traces of your program presence: for example, when you uninstall it.
\helpref{DeleteEntry}{wxconfigbasedeleteentry}\\
\helpref{DeleteGroup}{wxconfigbasedeletegroup}\\
\helpref{DeleteAll}{wxconfigbasedeleteall}
\membersection{Options}
Some aspects of wxConfigBase behaviour can be changed during run-time. The
first of them is the expansion of environment variables in the string values
read from the config file: for example, if you have the following in your
config file:
\begin{verbatim}
# config file for my program
UserData = $HOME/data
# the following syntax is valud only under Windows
UserData = %windir%\\data.dat
\end{verbatim}
the call to \verb$config->Read("UserData")$ will return something like
\verb$"/home/zeitlin/data"$ if you're lucky enough to run a Linux system ;-)
Although this feature is very useful, it may be annoying if you read a value
which containts '\$' or '\%' symbols (\% is used for environment variables
expansion under Windows) which are not used for environment variable
expansion. In this situation you may call SetExpandEnvVars(FALSE) just before
reading this value and SetExpandEnvVars(TRUE) just after. Another solution
would be to prefix the offending symbols with a backslash.
The following functions control this option:
\helpref{IsExpandingEnvVars}{wxconfigbaseisexpandingenvvars}\\
\helpref{SetExpandingEnvVars}{wxconfigbasesetexpandingenvvars}\\
\helpref{SetRecordDefaults}{wxconfigbasesetrecorddefaults}\\
\helpref{IsRecordingDefaults}{wxconfigbaseisrecordingdefaults}
%%%%% MEMBERS HERE %%%%%
\helponly{\insertatlevel{2}{
\wxheading{Members}
}}
\membersection{wxConfigBase::wxConfigBase}\label{wxconfigbasector}
\func{}{wxConfigBase}{\param{const wxString\& }{appName = wxEmptyString},
\param{const wxString\& }{vendorName = wxEmptyString},
\param{const wxString\& }{localFilename = wxEmptyString},
\param{const wxString\& }{globalFilename = wxEmptyString},
\param{long}{ style = 0}}
This is the default and only constructor of the wxConfigBase class, and derived classes.
\wxheading{Parameters}
\docparam{appName}{The application name. If this is empty, the class will normally
use \helpref{wxApp::GetAppName}{wxappgetappname} to set it. The application name
is used in the registry key on Windows, and can be used to deduce the local filename
parameter if that is missing.}
\docparam{vendorName}{The vendor name. If this is empty, it is assumed that
no vendor name is wanted, if this is optional for the current config class.
The vendor name is appended to the application name for wxRegConfig.}
\docparam{localFilename}{Some config classes require a local filename. If this is not
present, but required, the application name will be used instead.}
\docparam{globalFilename}{Some config classes require a global filename. If this is not
present, but required, the application name will be used instead.}
\docparam{style}{Can be one of wxCONFIG\_USE\_LOCAL\_FILE and wxCONFIG\_USE\_GLOBAL\_FILE.
The style interpretation depends on the config class and is ignored by some.
For wxFileConfig, these styles determine whether a local or global config file is created or used.
If the flag is present but the parameter is empty, the parameter will be set to a default.
If the parameter is present but the style flag not, the relevant flag will be added to the style.}
\wxheading{Remarks}
By default, environment variable expansion is on and recording
defaults is off.
\membersection{wxConfigBase::\destruct{wxConfigBase}}\label{wxconfigbasedtor}
\func{}{\destruct{wxConfigBase}}{\void}
Empty but ensures that dtor of all derived classes is virtual.
\membersection{wxConfigBase::Create}\label{wxconfigbasecreate}
\func{static wxConfigBase *}{Create}{\void}
Create a new config object: this function will create the "best"
implementation of wxConfig available for the current platform, see
comments near the definition of wxCONFIG\_WIN32\_NATIVE for details. It returns
the created object and also sets it as the current one.
\membersection{wxConfigBase::DontCreateOnDemand}\label{wxconfigbasedontcreateondemand}
\func{void}{DontCreateOnDemand}{\void}
Calling this function will prevent {\it Get()} from automatically creating a
new config object if the current one is NULL. It might be useful to call it
near the program end to prevent new config object "accidental" creation.
\membersection{wxConfigBase::DeleteAll}\label{wxconfigbasedeleteall}
\func{bool}{DeleteAll}{\void}
Delete the whole underlying object (disk file, registry key, ...). Primarly
for use by desinstallation routine.
\membersection{wxConfigBase::DeleteEntry}\label{wxconfigbasedeleteentry}
\func{bool}{DeleteEntry}{\param{const wxString\& }{ key}, \param{bool}{ bDeleteGroupIfEmpty = TRUE}}
Deletes the specified entry and the group it belongs to if
it was the last key in it and the second parameter is true.
\membersection{wxConfigBase::DeleteGroup}\label{wxconfigbasedeletegroup}
\func{bool}{DeleteGroup}{\param{const wxString\& }{ key}}
Delete the group (with all subgroups)
\membersection{wxConfigBase::Exists}\label{wxconfigbaseexists}
\constfunc{bool}{Exists}{\param{wxString\& }{strName}}
returns TRUE if either a group or an entry with a given name exists
\membersection{wxConfigBase::Flush}\label{wxconfigbaseflush}
\func{bool}{Flush}{\param{bool }{bCurrentOnly = FALSE}}
permanently writes all changes (otherwise, they're only written from object's
destructor)
\membersection{wxConfigBase::Get}\label{wxconfigbaseget}
\func{wxConfigBase *}{Get}{\void}
Get the current config object. If there is no current object, creates one
(using {\it Create}) unless DontCreateOnDemand was called previously.
\membersection{wxConfigBase::GetAppName}\label{wxconfigbasegetappname}
\constfunc{wxString}{GetAppName}{\void}
Returns the application name.
\membersection{wxConfigBase::GetFirstGroup}\label{wxconfigbasegetfirstgroup}
\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}}
Gets the first entry.
\membersection{wxConfigBase::GetNextGroup}\label{wxconfigbasegetnextgroup}
\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}}
Gets the next entry.
\membersection{wxConfigBase::GetNumberOfEntries}\label{wxconfigbasegetnumberofentries}
\constfunc{uint }{GetNumberOfEntries}{\param{bool }{bRecursive = FALSE}}
\membersection{wxConfigBase::GetNumberOfGroups}\label{wxconfigbasegetnumberofgroups}
\constfunc{uint}{GetNumberOfGroups}{\param{bool }{bRecursive = FALSE}}
Get number of entries/subgroups in the current group, with or without
its subgroups.
\membersection{wxConfigBase::GetPath}\label{wxconfigbasegetpath}
\constfunc{const wxString\&}{GetPath}{\void}
Retrieve the current path (always as absolute path).
\membersection{wxConfigBase::GetVendorName}\label{wxconfigbasegetvendorname}
\constfunc{wxString}{GetVendorName}{\void}
Returns the vendor name.
\membersection{wxConfigBase::HasEntry}\label{wxconfigbasehasentry}
\constfunc{bool}{HasEntry}{\param{wxString\& }{strName}}
returns TRUE if the entry by this name exists
\membersection{wxConfigBase::HasGroup}\label{wxconfigbasehasgroup}
\constfunc{bool}{HasGroup}{\param{const wxString\& }{strName}}
returns TRUE if the group by this name exists
\membersection{wxConfigBase::IsExpandingEnvVars}\label{wxconfigbaseisexpandingenvvars}
\constfunc{bool}{IsExpandingEnvVars}{\void}
Returns TRUE if we are expanding environment variables in key values.
\membersection{wxConfigBase::IsRecordingDefaults}\label{wxconfigbaseisrecordingdefaults}
\func{bool}{IsRecordingDefaults}{\void} const
Returns TRUE if we are writing defaults back to the config file.
\membersection{wxConfigBase::Read}\label{wxconfigbaseread}
\constfunc{bool}{Read}{\param{const wxString\& }{key}, \param{wxString*}{ str}}
Read a string from the key, returning TRUE if the value was read. If the key was not
found, {\it str} is not changed.
\constfunc{bool}{Read}{\param{const wxString\& }{key}, \param{wxString*}{ str}, \param{const wxString\& }{defaultVal}}
Read a string from the key. The default value is returned if the key was not found.
Returns TRUE if value was really read, FALSE if the default was used.
\constfunc{wxString}{Read}{\param{const wxString\& }{key}, \param{const wxString\& }{defaultVal}}
Another version of {\it Read()}, returning the string value directly.
\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{long*}{ l}}
Reads a long value, returning TRUE if the value was
found. If the value was not found, {\it l} is not changed.
\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{long*}{ l}, \param{long}{ defaultVal}}
Reads a long value, returning TRUE if the value was
found. If the value was not found, {\it defaultVal} is used instead.
\constfunc{long }{Read}{\param{const wxString\& }{key}, \param{long}{ defaultVal}}
Reads a long value from the key and returns it. {\it defaultVal} is returned if the key is not
found.
NB: writing
{\small
\begin{verbatim}
conf->Read("key", 0);
\end{verbatim}
}
won't work because the call is ambiguous: compiler can not choose between two {\it Read} functions. Instead, write:
{\small
\begin{verbatim}
conf->Read("key", 0l);
\end{verbatim}
}
\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{double*}{ d}}
Reads a double value, returning TRUE if the value was
found. If the value was not found, {\it d} is not changed.
\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{double*}{ d}, \param{double}{ defaultVal}}
Reads a double value, returning TRUE if the value was
found. If the value was not found, {\it defaultVal} is used instead.
\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{bool*}{ b}}
Reads a bool value, returning TRUE if the value was
found. If the value was not found, {\it b} is not changed.
\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{bool*}{ d}, \param{bool}{ defaultVal}}
Reads a bool value, returning TRUE if the value was
found. If the value was not found, {\it defaultVal} is used instead.
\membersection{wxConfigBase::Set}\label{wxconfigbaseset}
\func{wxConfigBase *}{Set}{\param{wxConfigBase *}{pConfig}}
Sets the config object as the current one, returns the pointer to the previous
current object (both the parameter and returned value may be NULL)
\membersection{wxConfigBase::SetAppName}\label{wxconfigbasesetappname}
\func{void }{SetAppName}{\param{const wxString\&}{ appName}}
Sets the application name.
\membersection{wxConfigBase::SetExpandingEnvVars}\label{wxconfigbasesetexpandingenvvars}
\func{void}{SetExpandEnvVars }{\param{bool }{bDoIt = TRUE}}
Determine whether we wish to expand environment variables in key values.
\membersection{wxConfigBase::SetPath}\label{wxconfigbasesetpath}
\func{void}{SetPath}{\param{const wxString\& }{strPath}}
Set current path: if the first character is '/', it's the absolute path,
otherwise it's a relative path. '..' is supported. If the strPath
doesn't exist it is created.
\membersection{wxConfigBase::SetRecordDefaults}\label{wxconfigbasesetrecorddefaults}
\func{void}{SetRecordDefaults}{\param{bool }{bDoIt = TRUE}}
Sets whether defaults are written back to the config file.
If on (default is off) all default values are written back to the config file. This allows
the user to see what config options may be changed and is probably useful only
for wxFileConfig.
\membersection{wxConfigBase::SetVendorName}\label{wxconfigbasesetvendorname}
\func{void}{SetVendorName}{\param{const wxString\&}{ vendorName}}
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{long}{ value}}
\func{bool}{Write}{\param{const wxString\& }{ key}, \param{double}{ value}}
\func{bool}{Write}{\param{const wxString\& }{ key}, \param{bool}{ value}}
These functions write the specified value to the config file and
return TRUE on success.

View File

@@ -91,7 +91,7 @@ Returns the name of the database associated with the current connection.
\func{wxString}{GetDataSource}{\void}
Returns the name of the connected data source.
\membersection{wxDatabase::GetErrorClass}
\func{wxString}{GetErrorClass}{\void}
@@ -141,7 +141,7 @@ Returns the current ODBC database handle.
\func{HENV}{GetHENV}{\void}
Returns the ODBC environment handle.
\membersection{wxDatabase::GetInfo}
\func{bool}{GetInfo}{\param{long}{ infoType}, \param{long *}{buf}}
@@ -219,7 +219,7 @@ source. The parameters exclusive and readOnly are not used.
\func{void}{OnSetOptions}{\param{wxRecordSet *}{recordSet}}
Not implemented.
\membersection{wxDatabase::OnWaitForDataSource}
\func{void}{OnWaitForDataSource}{\param{bool}{ stillExecuting}}
@@ -237,13 +237,13 @@ Sends a rollback to the ODBC driver. Not implemented.
\func{void}{SetDataSource}{\param{const wxString\& }{s}}
Sets the name of the data source. Not implemented.
\membersection{wxDatabase::SetLoginTimeout}
\func{void}{SetLoginTimeout}{\param{long}{ seconds}}
Sets the time to wait for an user login. Not implemented.
\membersection{wxDatabase::SetPassword}
\func{void}{SetPassword}{\param{const wxString\& }{s}}
@@ -262,7 +262,7 @@ mode is supported, so this function has no effect.
\func{void}{SetQueryTimeout}{\param{long}{ seconds}}
Sets the time to wait for a response to a query. Not implemented.
\membersection{wxDatabase::SetUsername}
\func{void}{SetUsername}{\param{const wxString\& }{s}}

View File

@@ -6,7 +6,7 @@ Sparc or anything else.
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxDataStream::wxDataStream}\label{wxwaveconstr}
\membersection{wxDataStream::wxDataStream}\label{wxdatastreamconstr}
\func{}{wxDataStream}{\param{istream\&}{ stream}}
@@ -96,14 +96,19 @@ Writes the double {\it f} to the stream using the IEEE format.
\membersection{wxDataStream::WriteString}
\func{void}{wxDataStream::WriteString}{{\param const wxString& }{string}}
\func{void}{wxDataStream::WriteString}{{\param const wxString\& }{string}}
Writes {\it string} to the stream. Actually, this method writes the size of
the string before writing {\it string} itself.
\membersection{wxDataStream::WriteLine}
\func{void}{wxDataStream::WriteLine}{{\param const wxString& }{string}}
\func{void}{wxDataStream::WriteLine}{{\param const wxString\& }{string}}
Writes {\it string} as a line. Depending on the operating system, it adds
\\n or \\r\\n.
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "referenc"
%%% End:

View File

@@ -157,10 +157,12 @@ mapping mode. Use this function for converting a height, for example.
\func{void}{DrawArc}{\param{long}{ x1}, \param{long}{ y1}, \param{long}{ x2}, \param{long}{ y2}, \param{double}{ xc}, \param{double}{ yc}}
Draws an arc, centred on ({\it xc, yc}), with starting point ({\it x1, y1})
Draws an arc of a circle, centred on ({\it xc, yc}), with starting point ({\it x1, y1})
and ending at ({\it x2, y2}). The current pen is used for the outline
and the current brush for filling the shape.
The arc is drawn in an anticlockwise direction from the start point to the end point.
\membersection{wxDC::DrawEllipse}\label{wxdcdrawellipse}
\func{void}{DrawEllipse}{\param{long}{ x}, \param{long}{ y}, \param{long}{ width}, \param{long}{ height}}

View File

@@ -30,8 +30,9 @@ dialog to respond to system close events.
\twocolitem{\windowstyle{wxCAPTION}}{Puts a caption on the dialog box (Motif only).}
\twocolitem{\windowstyle{wxDEFAULT\_DIALOG\_STYLE}}{Equivalent to a combination of wxCAPTION, wxSYSTEM\_MENU and wxTHICK\_FRAME}
\twocolitem{\windowstyle{wxRESIZE\_BORDER}}{Display a resizeable frame around the window (Motif only).}
\twocolitem{\windowstyle{wxSYSTEM\_MENU}}{Display a system menu (Motif only).}
\twocolitem{\windowstyle{wxTHICK\_FRAME}}{Display a thick frame around the window (Motif only).}
\twocolitem{\windowstyle{wxSYSTEM\_MENU}}{Display a system menu.}
\twocolitem{\windowstyle{wxTHICK\_FRAME}}{Display a thick frame around the window.}
\twocolitem{\windowstyle{wxSTAY\_ON\_TOP}}{The dialog stays on top of all other windows (Windows only).}
\twocolitem{\windowstyle{wxNO\_3D}}{Under Windows, specifies that the child controls
should not have 3D borders unless specified in the control.}
\end{twocollist}

View File

@@ -35,7 +35,7 @@ The view associated with the frame.
\membersection{wxDocChildFrame::wxDocChildFrame}
\func{}{wxDocChildFrame}{\param{wxDocument* }{doc}, \param{wxView* }{view}, \param{wxFrame* }{parent},
\param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition},
\param{wxWindowID}{ id}, \param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition},
\param{const wxSize\&}{ size = wxDefaultSize},
\param{long}{ style = wxDEFAULT\_FRAME\_STYLE}, \param{const wxString\& }{name = ``frame"}}

View File

@@ -0,0 +1,89 @@
\section{\class{wxDocMDIChildFrame}}\label{wxdocmdichildframe}
The wxDocMDIChildFrame class provides a default frame for displaying documents
on separate windows. This class can only be used for MDI child frames.
The class is part of the document/view framework supported by wxWindows,
and cooperates with the \helpref{wxView}{wxview}, \helpref{wxDocument}{wxdocument},
\rtfsp\helpref{wxDocManager}{wxdocmanager} and \helpref{wxDocTemplate}{wxdoctemplate} classes.
See the example application in {\tt samples/docview}.
\wxheading{Derived from}
\helpref{wxMDIChildFrame}{wxmdichildframe}\\
\helpref{wxFrame}{wxframe}\\
\helpref{wxWindow}{wxwindow}\\
\helpref{wxEvtHandler}{wxevthandler}\\
\helpref{wxObject}{wxobject}
\wxheading{See also}
\helpref{Document/view overview}{docviewoverview}, \helpref{wxMDIChildFrame}{wxmdichildframe}
\membersection{wxDocMDIChildFrame::m\_childDocument}
\member{wxDocument*}{m\_childDocument}
The document associated with the frame.
\membersection{wxDocMDIChildFrame::m\_childView}
\member{wxView*}{m\_childView}
The view associated with the frame.
\membersection{wxDocMDIChildFrame::wxDocMDIChildFrame}
\func{}{wxDocMDIChildFrame}{\param{wxDocument* }{doc}, \param{wxView* }{view}, \param{wxFrame* }{parent},
\param{wxWindowID}{ id}, \param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition},
\param{const wxSize\&}{ size = wxDefaultSize},
\param{long}{ style = wxDEFAULT\_FRAME\_STYLE}, \param{const wxString\& }{name = ``frame"}}
Constructor.
\membersection{wxDocMDIChildFrame::\destruct{wxDocMDIChildFrame}}
\func{}{\destruct{wxDocMDIChildFrame}}{\void}
Destructor.
\membersection{wxDocMDIChildFrame::GetDocument}
\constfunc{wxDocument*}{GetDocument}{\void}
Returns the document associated with this frame.
\membersection{wxDocMDIChildFrame::GetView}
\constfunc{wxView*}{GetView}{\void}
Returns the view associated with this frame.
\membersection{wxDocMDIChildFrame::OnActivate}
\func{void}{OnActivate}{\param{bool}{ active}}
Sets the currently active view to be the frame's view. You may need
to override (but still call) this function in order to set the keyboard
focus for your subwindow.
\membersection{wxDocMDIChildFrame::OnClose}
\func{virtual bool}{OnClose}{\void}
Closes and deletes the current view and document.
\membersection{wxDocMDIChildFrame::SetDocument}
\func{void}{SetDocument}{\param{wxDocument *}{doc}}
Sets the document for this frame.
\membersection{wxDocMDIChildFrame::SetView}
\func{void}{SetView}{\param{wxView *}{view}}
Sets the view for this frame.

View File

@@ -0,0 +1,79 @@
\section{\class{wxDocMDIParentFrame}}\label{wxdocmdiparentframe}
The wxDocMDIParentFrame class provides a default top-level frame for
applications using the document/view framework. This class can only be used for MDI parent frames.
It cooperates with the \helpref{wxView}{wxview}, \helpref{wxDocument}{wxdocument},
\rtfsp\helpref{wxDocManager}{wxdocmanager} and \helpref{wxDocTemplates}{wxdoctemplate} classes.
See the example application in {\tt samples/docview}.
\wxheading{Derived from}
\helpref{wxMDIParentFrame}{wxmdiparentframe}\\
\helpref{wxFrame}{wxframe}\\
\helpref{wxWindow}{wxwindow}\\
\helpref{wxEvtHandler}{wxevthandler}\\
\helpref{wxObject}{wxobject}
\wxheading{See also}
\helpref{Document/view overview}{docviewoverview}, \helpref{wxMDIParentFrame}{wxmdiparentframe}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxDocMDIParentFrame::wxDocMDIParentFrame}
\func{}{wxDocMDIParentFrame}{\param{wxFrame *}{parent}, \param{wxWindowID}{ id},
\param{const wxString\& }{title}, \param{int}{ x}, \param{int}{ y}, \param{int}{ width}, \param{int}{ height},
\param{long}{ style}, \param{const wxString\& }{name}}
Constructor.
\membersection{wxDocMDIParentFrame::\destruct{wxDocMDIParentFrame}}
\func{}{\destruct{wxDocMDIParentFrame}}{\void}
Destructor.
\membersection{wxDocMDIParentFrame::OnClose}
\func{bool}{OnClose}{\void}
Deletes all views and documents. If no user input cancelled the
operation, the function returns TRUE and the application will exit.
Since understanding how document/view clean-up takes place can be difficult,
the implementation of this function is shown below.
\begin{verbatim}
bool wxDocMDIParentFrame::OnClose(void)
{
// Delete all views and documents
wxNode *node = docManager->GetDocuments().First();
while (node)
{
wxDocument *doc = (wxDocument *)node->Data();
wxNode *next = node->Next();
if (!doc->Close())
return FALSE;
// Implicitly deletes the document when the last
// view is removed (deleted)
doc->DeleteAllViews();
// Check document is deleted
if (docManager->GetDocuments().Member(doc))
delete doc;
// This assumes that documents are not connected in
// any way, i.e. deleting one document does NOT
// delete another.
node = next;
}
return TRUE;
}
\end{verbatim}

View File

@@ -23,7 +23,7 @@ See the example application in {\tt samples/docview}.
\membersection{wxDocParentFrame::wxDocParentFrame}
\func{}{wxDocParentFrame}{\param{wxFrame *}{parent},
\func{}{wxDocParentFrame}{\param{wxFrame *}{parent}, \param{wxWindowID}{ id},
\param{const wxString\& }{title}, \param{int}{ x}, \param{int}{ y}, \param{int}{ width}, \param{int}{ height},
\param{long}{ style}, \param{const wxString\& }{name}}

View File

@@ -4,6 +4,10 @@ A frame is a window whose size and position can (usually) be changed by the user
thick borders and a title bar, and can optionally contain a menu bar, toolbar and
status bar. A frame can contain any window that is not a frame or dialog.
A frame that has a status bar and toolbar created via the CreateStatusBar/CreateToolBar functions
manages these windows, and adjusts the value returned by GetClientSize to reflect
the remaining size available to application windows.
\wxheading{Derived from}
\helpref{wxWindow}{wxwindow}\\
@@ -122,7 +126,9 @@ for further details.
\membersection{wxFrame::CreateStatusBar}\label{wxframecreatestatusbar}
\func{virtual bool}{CreateStatusBar}{\param{int}{ number = 1}}
\func{virtual wxStatusBar*}{CreateStatusBar}{\param{int}{ number = 1},
\param{long}{ style = 0},
\param{wxWindowID}{ id = -1}, \param{const wxString\&}{ name = "statusBar"}}
Creates a status bar at the bottom of the frame.
@@ -131,9 +137,17 @@ Creates a status bar at the bottom of the frame.
\docparam{number}{The number of fields to create. Specify a
value greater than 1 to create a multi-field status bar.}
\docparam{style}{The status bar style. See \helpref{wxStatusBar}{wxstatusbar} for a list
of valid styles.}
\docparam{id}{The status bar window identifier. If -1, an identifier will be chosen by
wxWindows.}
\docparam{name}{The status bar window name.}
\wxheading{Return value}
TRUE if the status bar was created successfully.
A pointer to the the status bar if it was created successfully, NULL otherwise.
\wxheading{Remarks}
@@ -151,6 +165,45 @@ Note that you can put controls and other windows on the status bar if you wish.
\helpref{wxFrame::OnCreateStatusBar}{wxframeoncreatestatusbar},\rtfsp
\helpref{wxFrame::GetStatusBar}{wxframegetstatusbar}
\membersection{wxFrame::CreateToolBar}\label{wxframecreatetoolbar}
\func{virtual wxToolBar*}{CreateToolBar}{\param{long}{ style = wxNO\_BORDER \pipe wxTB\_HORIZONTAL},
\param{wxWindowID}{ id = -1}, \param{const wxString\&}{ name = "toolBar"}}
Creates a toolbar at the top or left of the frame.
\wxheading{Parameters}
\docparam{style}{The toolbar style. See \helpref{wxToolBar}{wxtoolbar} for a list
of valid styles.}
\docparam{id}{The toolbar window identifier. If -1, an identifier will be chosen by
wxWindows.}
\docparam{name}{The toolbar window name.}
\wxheading{Return value}
A pointer to the the toolbar if it was created successfully, NULL otherwise.
\wxheading{Remarks}
By default, the toolbar is an instance of wxToolBar (which is defined to be
a suitable toolbar class on each platform, such as wxToolBar95). To use a different class,
override \helpref{wxFrame::OnCreateToolBar}{wxframeoncreatetoolbar}.
When a toolbar has been created with this function, or made known to the frame
with \helpref{wxFrame::SetToolBar}{wxframesettoolbar}, the frame will manage the toolbar
position and adjust the return value from \helpref{wxWindow::GetClientSize}{wxwindowgetclientsize} to
reflect the available space for application windows.
\wxheading{See also}
\helpref{wxFrame::CreateStatusBar}{wxframecreatestatusbar},\rtfsp
\helpref{wxFrame::OnCreateToolBar}{wxframeoncreatetoolbar},\rtfsp
\helpref{wxFrame::SetToolBar}{wxframesettoolbar},\rtfsp
\helpref{wxFrame::GetToolBar}{wxframegettoolbar}
\membersection{wxFrame::GetMenuBar}\label{wxframegetmenubar}
\constfunc{wxMenuBar*}{GetMenuBar}{\void}
@@ -178,6 +231,17 @@ Returns a pointer to the status bar currently associated with the frame (if any)
Gets a temporary pointer to the frame title. See
\helpref{wxFrame::SetTitle}{wxframesettitle}.
\membersection{wxFrame::GetToolBar}\label{wxframegettoolbar}
\func{wxToolBar*}{GetToolBar}{\void}
Returns a pointer to the toolbar currently associated with the frame (if any).
\wxheading{See also}
\helpref{wxFrame::CreateToolBar}{wxframecreatetoolbar}, \helpref{wxToolBar}{wxtoolbar},\rtfsp
\helpref{wxFrame::SetToolBar}{wxframesettoolbar}
\membersection{wxFrame::Iconize}\label{wxframeiconize}
\func{void}{Iconize}{\param{const bool}{ iconize}}
@@ -269,7 +333,9 @@ If you call wxFrame::LoadAccelerators, you need to override this function e.g.
\membersection{wxFrame::OnCreateStatusBar}\label{wxframeoncreatestatusbar}
\func{virtual wxStatusBar*}{OnCreateStatusBar}{\param{int }{number}}
\func{virtual wxStatusBar*}{OnCreateStatusBar}{\param{int }{number}
\param{long}{ style},
\param{wxWindowID}{ id}, \param{const wxString\&}{ name}}
Virtual function called when a status bar is requested by \helpref{wxFrame::CreateStatusBar}{wxframecreatestatusbar}.
@@ -277,6 +343,14 @@ Virtual function called when a status bar is requested by \helpref{wxFrame::Crea
\docparam{number}{The number of fields to create.}
\docparam{style}{The window style. See \helpref{wxStatusBar}{wxstatusbar} for a list
of valid styles.}
\docparam{id}{The window identifier. If -1, an identifier will be chosen by
wxWindows.}
\docparam{name}{The window name.}
\wxheading{Return value}
A status bar object.
@@ -290,6 +364,36 @@ implementation returns an instance of \helpref{wxStatusBar}{wxstatusbar}.
\helpref{wxFrame::CreateStatusBar}{wxframecreatestatusbar}, \helpref{wxStatusBar}{wxstatusbar}.
\membersection{wxFrame::OnCreateToolBar}\label{wxframeoncreatetoolbar}
\func{virtual wxToolBar*}{OnCreateToolBar}{\param{long}{ style},
\param{wxWindowID}{ id}, \param{const wxString\&}{ name}}
Virtual function called when a toolbar is requested by \helpref{wxFrame::CreateToolBar}{wxframecreatetoolbar}.
\wxheading{Parameters}
\docparam{style}{The toolbar style. See \helpref{wxToolBar}{wxtoolbar} for a list
of valid styles.}
\docparam{id}{The toolbar window identifier. If -1, an identifier will be chosen by
wxWindows.}
\docparam{name}{The toolbar window name.}
\wxheading{Return value}
A toolbar object.
\wxheading{Remarks}
An application can override this function to return a different kind of toolbar. The default
implementation returns an instance of \helpref{wxToolBar}{wxtoolbar}.
\wxheading{See also}
\helpref{wxFrame::CreateToolBar}{wxframecreatetoolbar}, \helpref{wxToolBar}{wxtoolbar}.
\membersection{wxFrame::OnMenuCommand}\label{wxframeonmenucommand}
\func{void}{OnMenuCommand}{\param{wxCommandEvent\&}{ event}}
@@ -388,6 +492,17 @@ Note that it is not possible to call this function twice for the same frame obje
\helpref{wxFrame::GetMenuBar}{wxframegetmenubar}, \helpref{wxMenuBar}{wxmenubar}, \helpref{wxMenu}{wxmenu}.
\membersection{wxFrame::SetStatusBar}\label{wxframesetstatusbar}
\func{void}{SetStatusBar}{\param{wxStatusBar*}{ statusBar}}
Associates a status bar with the frame.
\wxheading{See also}
\helpref{wxFrame::CreateStatusBar}{wxframecreatestatusbar}, \helpref{wxStatusBar}{wxstatusbar},\rtfsp
\helpref{wxFrame::GetStatusBar}{wxframegetstatusbar}
\membersection{wxFrame::SetStatusText}\label{wxframesetstatustext}
\func{virtual void}{SetStatusText}{\param{const wxString\& }{ text}, \param{int}{ number = 0}}
@@ -429,6 +544,17 @@ The widths of the variable fields are calculated from the total width of all fie
minus the sum of widths of the non-variable fields, divided by the number of
variable fields.
\membersection{wxFrame::SetToolBar}\label{wxframesettoolbar}
\func{void}{SetToolBar}{\param{wxToolBar*}{ toolBar}}
Associates a toolbar with the frame.
\wxheading{See also}
\helpref{wxFrame::CreateToolBar}{wxframecreatetoolbar}, \helpref{wxToolBar}{wxtoolbar},\rtfsp
\helpref{wxFrame::GetToolBar}{wxframegettoolbar}
\membersection{wxFrame::SetTitle}\label{wxframesettitle}
\func{virtual void}{SetTitle}{\param{const wxString\& }{ title}}

View File

@@ -479,113 +479,6 @@ This function is only available under Windows.
Globally sets the cursor; only has an effect in MS Windows.
See also \helpref{wxCursor}{wxcursor}, \helpref{wxWindow::SetCursor}{wxwindowsetcursor}.
\section{System event functions}
The wxWindows system event implementation is incomplete and
experimental, but is intended to be a platform-independent way of
intercepting and sending events, including defining
application-specific events and handlers.
Ultimately it is intended to be used as a way of testing wxWindows
applications using scripts, although there are currently
problems with this (especially with modal dialogs).
All this is documented more to provoke comments and suggestions, and
jog my own memory, rather than to be used, since it has not been
tested. However {\bf wxSendEvent} will probably work if you
instantiate the event structure properly for a command event type (see
the code in {\tt wb\_panel.cpp} for \helpref{wxWindow::OnDefaultAction}{wxwindowondefaultaction}\rtfsp
which uses {\bf wxSendEvent} to send a command to the default button).
\membersection{::wxAddPrimaryEventHandler}
\func{bool}{wxAddPrimaryEventHandler}{\param{wxEventHandler}{ handlerFunc}}
Add a primary event handler---the normal event handler for this
event. For built-in events, these would include moving and resizing
windows. User-defined primary events might include the code to
select an image in a diagram (which could of course be achieved by a series
of external events for mouse-clicking, but would be more difficult to specify
and less robust).
Returns TRUE if it succeeds.
An event handler takes a pointer to a wxEvent and a boolean flag which is
TRUE if the event was externally generated, and returns a boolean which is
TRUE if that event was handled.
\membersection{::wxAddSecondaryEventHandler}
\func{bool}{wxAddSecondaryEventHandler}{\param{wxEventHandler}{ handlerFunc}, \param{bool}{ pre},\\
\param{bool}{ override}, \param{bool }{append}}
Add a secondary event handler, pre = TRUE iff it should be called before the
event is executed. override = TRUE iff the handler is allowed to override
all subsequent events by returning TRUE. Returns TRUE if succeeds.
A secondary event handler is an application-defined handler that may
intercept normal events, possibly overriding them. A primary event handler
provides the normal behaviour for the event.
An event handler takes a pointer to a wxEvent and a boolean flag which is
TRUE if the event was externally generated, and returns a boolean which is
TRUE if that event was handled.
\membersection{::wxNotifyEvent}
\func{bool}{wxNotifyEvent}{\param{wxEvent\&}{ event}, \param{bool}{ pre}}
Notify the system of the event you are about to execute/have just
executed. If TRUE is returned and pre = TRUE, the calling code should
not execute the event (since it has been intercepted by a handler and
vetoed).
These events are always internal, because they're generated from within
the main application code.
\membersection{::wxRegisterEventClass}
\func{void}{wxRegisterEventClass}{\param{WXTYPE}{ eventClassId},\param{WXTYPE}{ superClassId},\\
\param{wxEventConstructor}{ constructor}, \param{const wxString\& }{description}}
Register a new event class (derived from wxEvent), giving the new
event class type, its superclass, a function for creating a new event
object of this class, and an optional description.
\membersection{::wxRegisterEventName}
\func{void}{wxRegisterEventName}{\param{WXTYPE}{ eventTypeId},\param{WXTYPE}{ eventClassId},\\
\param{const wxString\& }{eventName}}
Register the name of the event. This will allow a simple command
language where giving the event type name and some arguments will
cause a new event of class {\it eventClassId} to be created, with given
event type, and some arguments, allows an event to be dynamically
constructed and sent.
\membersection{::wxRegisterExternalEventHandlers}
\func{void}{wxRegisterExternalEventHandlers}{\void}
Define this and link before wxWindows library to allow registering
events from `outside' the main application.
\membersection{::wxRemoveSecondaryEventHandler}
\func{bool}{wxRemoveSecondaryEventHandler}{\param{wxEventHandler}{ handlerFunc}, \param{bool}{ pre}}
Remove a secondary event handler. Returns TRUE if it succeeds.
\membersection{::wxSendEvent}\label{wxsendevent}
\func{bool}{wxSendEvent}{\param{wxEvent\&}{ event}, \param{bool}{ external}}
Send an event to the system; usually it will be external, but set
external to FALSE if calling from within the main application in
response to other events.
Returns TRUE if the event was processed.
\section{Printer settings}\label{printersettings}
The following functions are used to control PostScript printing. Under

View File

@@ -21,6 +21,10 @@ There are no user commands for the gauge.
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Event handling}
wxGauge is read-only so generates no events.
\wxheading{See also}
\helpref{wxSlider}{wxslider}, \helpref{wxScrollBar}{wxscrollbar}

View File

@@ -147,11 +147,11 @@ Gets the position of the fifth axis of the joystick, if it exists.
Returns the maximum V position.
\membersection{wxJoystick::GetUMin}\label{wxjoystickgetumin}
\membersection{wxJoystick::GetVMin}\label{wxjoystickgetvmin}
\constfunc{int}{GetUMin}{\void}
\constfunc{int}{GetVMin}{\void}
Returns the minimum U position.
Returns the minimum V position.
\membersection{wxJoystick::GetVPosition}\label{wxjoystickgetvposition}

View File

@@ -36,9 +36,20 @@ select multiple items using the SHIFT key and the mouse or special key combinati
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Event handling}
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_LISTBOX(id, func)}}{Process a wxEVT\_COMMAND\_LISTBOX\_SELECTED event,
when an item on the list is selected.}
\twocolitem{{\bf EVT\_LISTBOX\_DCLICK(id, func)}}{Process a wxEVT\_COMMAND\_LISTBOX\_DOUBLECLICKED event,
when the listbox is doubleclicked.}
\end{twocollist}
\wxheading{See also}
\helpref{wxChoice}{wxchoice}, \helpref{wxComboBox}{wxcombobox}, \helpref{wxListCtrl}{wxlistctrl}
\helpref{wxChoice}{wxchoice}, \helpref{wxComboBox}{wxcombobox}, \helpref{wxListCtrl}{wxlistctrl},
\rtfsp\helpref{wxCommandEvent}{wxcommandevent}
\latexignore{\rtfignore{\wxheading{Members}}}

View File

@@ -35,6 +35,28 @@ the list wraps, unlike a wxListBox.}
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Event handling}
To process input from a list control, use these event handler macros to direct input to member
functions that take a \helpref{wxListEvent}{wxlistevent} argument.
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_LIST\_BEGIN\_DRAG(id, func)}}{Begin dragging with the left mouse button.}
\twocolitem{{\bf EVT\_LIST\_BEGIN\_RDRAG(id, func)}}{Begin dragging with the right mouse button.}
\twocolitem{{\bf EVT\_LIST\_BEGIN\_LABEL\_EDIT(id, func)}}{Begin editing a label.}
\twocolitem{{\bf EVT\_LIST\_END\_LABEL\_EDIT(id, func)}}{Finish editing a label.}
\twocolitem{{\bf EVT\_LIST\_DELETE\_ITEM(id, func)}}{Delete an item.}
\twocolitem{{\bf EVT\_LIST\_DELETE\_ALL\_ITEMS(id, func)}}{Delete all items.}
\twocolitem{{\bf EVT\_LIST\_GET\_INFO(id, func)}}{Request information from the application, usually the item text.}
\twocolitem{{\bf EVT\_LIST\_SET\_INFO(id, func)}}{Information is being supplied (not implemented).}
\twocolitem{{\bf EVT\_LIST\_ITEM\_SELECTED(id, func)}}{The item has been selected.}
\twocolitem{{\bf EVT\_LIST\_ITEM\_DESELECTED(id, func)}}{The item has been deselected.}
\twocolitem{{\bf EVT\_LIST\_KEY\_DOWN(id, func)}}{A key has been pressed.}
\twocolitem{{\bf EVT\_LIST\_INSERT\_ITEM(id, func)}}{An item has been inserted.}
\twocolitem{{\bf EVT\_LIST\_COL\_CLICK(id, func)}}{A column ({\bf m\_col}) has been left-clicked.}
\end{twocollist}%
\wxheading{See also}
\helpref{wxListCtrl overview}{wxlistctrloverview}, \helpref{wxListBox}{wxlistbox}, \helpref{wxTreeCtrl}{wxtreectrl},\rtfsp

View File

@@ -1,4 +1,14 @@
\documentstyle[a4,makeidx,verbatim,texhelp,fancyhea,mysober,mytitle]{report}
\documentstyle[a4,11pt,makeidx,verbatim,texhelp,fancyheadings,palatino]{report}
% JACS: doesn't make it through Tex2RTF, sorry.I'll put it into texhelp.sty
% since Tex2RTF doesn't parse it.
% BTW, style MUST be report for it to work for Tex2RTF.
%KB:
%\addtolength{\textwidth}{1in}
%\addtolength{\oddsidemargin}{-0.5in}
%\addtolength{\topmargin}{-0.5in}
%\addtolength{\textheight}{1in}
%\sloppy
%end of my changes
\newcommand{\indexit}[1]{#1\index{#1}}%
\newcommand{\pipe}[0]{$\|$\ }%
\definecolour{black}{0}{0}{0}%
@@ -16,11 +26,11 @@
\parskip=10pt
\parindent=0pt
\title{User Manual for wxWindows 2.0: a portable C++ GUI toolkit}
\winhelponly{\author{by Julian Smart and Markus Holzem
\winhelponly{\author{by Julian Smart
%\winhelponly{\\$$\image{1cm;0cm}{wxwin.wmf}$$}
}}
\winhelpignore{\author{Julian Smart}
\date{June 4th 1998}
\date{July 31st 1998}
}
\makeindex
\begin{document}
@@ -75,7 +85,8 @@
\setfooter{\thepage}{}{}{}{}{\thepage}%
\begin{center}
Copyright (c) 1997 Julian Smart and Markus Holzem\\
Copyright (c) 1998 Julian Smart, Markus Holzem, Robert Roebling and other
members of the wxWindows team\\
Portions (c) 1996 Artificial Intelligence Applications Institute\\
\end{center}
@@ -89,7 +100,7 @@ IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
IN NO EVENT SHALL THE ARTIFICIAL INTELLIGENCE APPLICATIONS INSTITUTE OR THE
UNIVERSITY OF EDINBURGH OR JULIAN SMART OR MARKUS HOLZEM BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR
UNIVERSITY OF EDINBURGH OR ANY MEMBERS OF THE WXWINDOWS TEAM BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR
CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF
DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH
@@ -100,6 +111,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
\helpinput{category.tex}
\helpinput{topics.tex}
\begin{comment}
\newpage
% Puts books in the bibliography without needing to cite them in the
@@ -115,6 +127,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
\addcontentsline{toc}{chapter}{Bibliography}
\setheader{{\it REFERENCES}}{}{}{}{}{{\it REFERENCES}}%
\setfooter{\thepage}{}{}{}{}{\thepage}%
\end{comment}
\newpage
\addcontentsline{toc}{chapter}{Index}

View File

@@ -21,7 +21,7 @@ With a popup menu, there is a variety of ways to handle a menu selection event
\begin{enumerate}\itemsep=0pt
\item Define a callback of type wxFunction, which you pass to the wxMenu constructor.
The callback takes a reference to a window, and a reference to a \helpref{wxCommandEvent}{wxcommandevent}.
The callback takes a reference to the menu, and a reference to a \helpref{wxCommandEvent}{wxcommandevent}.
\item Derive a new class from wxMenu and define event table entries using the EVT\_MENU macro.
\item Set a new event handler for wxMenu, using an object whose class has EVT\_MENU entries.
\item Provide EVT\_MENU handlers in the window which pops up the menu, or in an ancestor of

View File

@@ -141,27 +141,27 @@ Returns TRUE if the item is a separator.
\membersection{wxMenuItem::SetBackgroundColour}\label{wxmenuitemsetbackgroundcolour}
\constfunc{void}{SetBackgroundColour}{\param{const wxColour& }{colour}}
\constfunc{void}{SetBackgroundColour}{\param{const wxColour\& }{colour}}
Sets the background colour associated with the menu item (Windows only).
\membersection{wxMenuItem::SetBitmaps}\label{wxmenuitemsetbitmaps}
\constfunc{void}{SetBitmaps}{\param{const wxBitmap& }{checked},
\param{const wxBitmap& }{unchecked = wxNullBitmap}}
\constfunc{void}{SetBitmaps}{\param{const wxBitmap\& }{checked},
\param{const wxBitmap\& }{unchecked = wxNullBitmap}}
Sets the checked/unchecked bitmaps for the menu item (Windows only). The first bitmap
is also used as the single bitmap for uncheckable menu items.
\membersection{wxMenuItem::SetFont}\label{wxmenuitemsetfont}
\constfunc{void}{SetFont}{\param{const wxFont& }{font}}
\constfunc{void}{SetFont}{\param{const wxFont\& }{font}}
Sets the font associated with the menu item (Windows only).
\membersection{wxMenuItem::SetHelp}\label{wxmenuitemsethelp}
\constfunc{void}{SetHelp}{\param{const wxString& }{helpString}}
\constfunc{void}{SetHelp}{\param{const wxString\& }{helpString}}
Sets the help string.
@@ -173,14 +173,19 @@ Sets the width of the menu item checkmark bitmap (Windows only).
\membersection{wxMenuItem::SetName}\label{wxmenuitemsetname}
\constfunc{void}{SetName}{\param{const wxString& }{text}}
\constfunc{void}{SetName}{\param{const wxString\& }{text}}
Sets the text associated with the menu item.
\membersection{wxMenuItem::SetTextColour}\label{wxmenuitemsettextcolour}
\constfunc{void}{SetTextColour}{\param{const wxColour& }{colour}}
\constfunc{void}{SetTextColour}{\param{const wxColour\& }{colour}}
Sets the text colour associated with the menu item (Windows only).
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "referenc"
%%% End:

View File

@@ -26,6 +26,7 @@ functions that take a wxMouseEvent argument.
\twocolitem{{\bf EVT\_MOTION(func)}}{Process a wxEVT\_MOTION event.}
\twocolitem{{\bf EVT\_ENTER\_WINDOW(func)}}{Process a wxEVT\_ENTER\_WINDOW event.}
\twocolitem{{\bf EVT\_LEAVE\_WINDOW(func)}}{Process a wxEVT\_LEAVE\_WINDOW event.}
\twocolitem{{\bf EVT\_MOUSE\_EVENTS(func)}}{Process all mouse events.}
\end{twocollist}%
\latexignore{\rtfignore{\wxheading{Members}}}

View File

@@ -21,6 +21,14 @@ labelled buttons.
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Event handling}
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_RADIOBOX(id, func)}}{Process a wxEVT\_COMMAND\_RADIOBOX\_SELECTED event,
when a radiobutton is clicked.}
\end{twocollist}
\wxheading{See also}
\helpref{Event handling overview}{eventhandlingoverview}, \helpref{wxRadioButton}{wxradiobutton},\rtfsp

View File

@@ -16,6 +16,14 @@ There are no specific styles for this class.
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Event handling}
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_RADIOBUTTON(id, func)}}{Process a wxEVT\_COMMAND\_RADIOBUTTON\_SELECTED event,
when the radiobutton is clicked.}
\end{twocollist}
\wxheading{See also}
\helpref{Event handling overview}{eventhandlingoverview}, \helpref{wxRadioBox}{wxradiobox},\rtfsp

View File

@@ -1,4 +1,12 @@
\documentstyle[a4,makeidx,verbatim,texhelp,fancyhea,mysober,mytitle]{report}
\documentstyle[a4,11pt,makeidx,verbatim,texhelp,fancyheadings,palatino]{thesis}
%KB:
\addtolength{\textwidth}{1in}
\addtolength{\oddsidemargin}{-0.5in}
\addtolength{\topmargin}{-0.5in}
\addtolength{\textheight}{1in}
\sloppy
%end of my changes
%\documentstyle[a4,makeidx,verbatim,texhelp,fancyhea,mysober,mytitle]{report}
\newcommand{\indexit}[1]{#1\index{#1}}
\newcommand{\pipe}[0]{$\|$\ }%
\input psbox.tex
@@ -9,8 +17,8 @@
\parskip=10pt
\parindent=0pt
\title{Reference Manual for wxWindows 2.0: a portable C++ GUI toolkit}
\author{Julian Smart and Markus Holzem}
\date{October 21st 1997}
\author{Julian Smart}
\date{July 31st 1998}
\makeindex
\begin{document}
@@ -29,7 +37,8 @@
\setfooter{\thepage}{}{}{}{}{\thepage}
\begin{center}
Copyright (c) 1997 Julian Smart and Markus Holzem\\
Copyright (c) 1998 Julian Smart, Markus Holzem, Robert Roebling and other
members of the wxWindows team\\
Portions (c) 1996 Artificial Intelligence Applications Institute\\
\end{center}
@@ -43,7 +52,7 @@ IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
IN NO EVENT SHALL THE ARTIFICIAL INTELLIGENCE APPLICATIONS INSTITUTE OR THE
UNIVERSITY OF EDINBURGH OR JULIAN SMART OR MARKUS HOLZEM BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR
UNIVERSITY OF EDINBURGH OR ANY MEMBERS OF THE WXWINDOWS TEAM BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR
CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF
DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH

View File

@@ -12,16 +12,6 @@ events are received.
\helpref{wxEvtHandler}{wxevthandler}\\
\helpref{wxObject}{wxobject}
\wxheading{Window styles}
\twocolwidtha{5cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{\windowstyle{wxSB\_HORIZONTAL}}{Specifies a horizontal scrollbar.}
\twocolitem{\windowstyle{wxSB\_VERTICAL}}{Specifies a vertical scrollbar.}
\end{twocollist}
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Remarks}
A scrollbar has the following main attributes: {\it range}, {\it thumb size}, {\it page size}, and {\it position}.
@@ -45,6 +35,16 @@ be called initially, from an {\bf OnSize} event handler, and whenever the applic
changes in size. It will adjust the view, object and page size according
to the size of the window and the size of the data.
\wxheading{Window styles}
\twocolwidtha{5cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{\windowstyle{wxSB\_HORIZONTAL}}{Specifies a horizontal scrollbar.}
\twocolitem{\windowstyle{wxSB\_VERTICAL}}{Specifies a vertical scrollbar.}
\end{twocollist}
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Event handling}
To process input from a scrollbar, use one of these event handler macros to direct input to member
@@ -61,7 +61,7 @@ functions that take a \helpref{wxScrollEvent}{wxscrollevent} argument:
\twocolitem{{\bf EVT\_COMMAND\_PAGEDOWN(id, func)}}{Catch a page down command.}
\twocolitem{{\bf EVT\_COMMAND\_THUMBTRACK(id, func)}}{Catch a thumbtrack command (continuous movement of the scroll thumb).}
\end{twocollist}%
%
\wxheading{See also}
\helpref{Scrolling overview}{scrollingoverview},\rtfsp

View File

@@ -130,8 +130,7 @@ scrolling in that direction.
\wxheading{See also}
\helpref{wxScrolledWindow::SetScrollbars}{wxscrolledwindowsetscrollbars},\rtfsp
\helpref{wxScrolledWindow::GetVirtualSize}{wxscrolledwindowgetvirtualsize},\rtfsp
\helpref{wxWindow::GetScrollPage}{wxwindowgetscrollpage}
\helpref{wxScrolledWindow::GetVirtualSize}{wxscrolledwindowgetvirtualsize}
\membersection{wxScrolledWindow::GetVirtualSize}\label{wxscrolledwindowgetvirtualsize}
@@ -155,8 +154,7 @@ to translate these units to logical units.
\wxheading{See also}
\helpref{wxScrolledWindow::SetScrollbars}{wxscrolledwindowsetscrollbars},\rtfsp
\helpref{wxScrolledWindow::GetScrollPixelsPerUnit}{wxscrolledwindowgetscrollpixelsperunit},\rtfsp
\helpref{wxWindow::GetScrollPage}{wxwindowgetscrollpage}
\helpref{wxScrolledWindow::GetScrollPixelsPerUnit}{wxscrolledwindowgetscrollpixelsperunit}
\membersection{wxScrolledWindow::IsRetained}\label{wxscrolledwindowisretained}

View File

@@ -31,6 +31,25 @@ Slider events are handled in the same way as a scrollbar.
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Event handling}
To process input from a slider, use one of these event handler macros to direct input to member
functions that take a \helpref{wxScrollEvent}{wxscrollevent} argument:
\twocolwidtha{7cm}
\begin{twocollist}
\twocolitem{{\bf EVT\_COMMAND\_SCROLL(id, func)}}{Catch all scroll commands.}
\twocolitem{{\bf EVT\_COMMAND\_TOP(id, func)}}{Catch a command to put the scroll thumb at the maximum position.}
\twocolitem{{\bf EVT\_COMMAND\_BOTTOM(id, func)}}{Catch a command to put the scroll thumb at the maximum position.}
\twocolitem{{\bf EVT\_COMMAND\_LINEUP(id, func)}}{Catch a line up command.}
\twocolitem{{\bf EVT\_COMMAND\_LINEDOWN(id, func)}}{Catch a line down command.}
\twocolitem{{\bf EVT\_COMMAND\_PAGEUP(id, func)}}{Catch a page up command.}
\twocolitem{{\bf EVT\_COMMAND\_PAGEDOWN(id, func)}}{Catch a page down command.}
\twocolitem{{\bf EVT\_COMMAND\_THUMBTRACK(id, func)}}{Catch a thumbtrack command (continuous movement of the scroll thumb).}
\twocolitem{{\bf EVT\_SLIDER(id, func)}}{Process a wxEVT\_COMMAND\_SLIDER\_UPDATED event,
when the slider is moved. Though provided for backward compatibility, this is obsolete.}
\end{twocollist}%
\wxheading{See also}
\helpref{Event handling overview}{eventhandlingoverview}, \helpref{wxScrollBar}{wxscrollbar}

View File

@@ -10,7 +10,11 @@ be variable length according to the size of the window.
\wxheading{Window styles}
There are no special styles for this window.
\twocolwidtha{5cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{\windowstyle{wxSB\_SIZEGRIP}}{On Windows 95, displays a gripper at right-hand side of
the status bar.}
\end{twocollist}
See also \helpref{window styles overview}{windowstyles}.

View File

@@ -188,7 +188,7 @@ Sets the client data for a tab.
\func{bool}{SetItemImage}{\param{int}{ item}, \param{int }{image}}
Sets the image index for the given tab. {\it image} is an index into
the image list which was set with \helpref{wxTabCtrl::SetImageList}{setimagelist}.
the image list which was set with \helpref{wxTabCtrl::SetImageList}{wxtabctrlsetimagelist}.
\membersection{wxTabCtrl::SetImageList}\label{wxtabctrlsetimagelist}

View File

@@ -2,6 +2,7 @@
Classes: \helpref{wxDocument}{wxdocument}, \helpref{wxView}{wxview}, \helpref{wxDocTemplate}{wxdoctemplate},\rtfsp
\helpref{wxDocManager}{wxdocmanager}, \helpref{wxDocParentFrame}{wxdocparentframe}, \helpref{wxDocChildFrame}{wxdocchildframe},
\rtfsp\helpref{wxDocMDIParentFrame}{wxdocmdiparentframe}, \helpref{wxDocMDIChildFrame}{wxdocmdichildframe},
\rtfsp\helpref{wxCommand}{wxcommand}, \helpref{wxCommandProcessor}{wxcommandprocessor}
The document/view framework is found in most application frameworks, because it
@@ -254,42 +255,28 @@ the file history, that will be used for appending the filenames. They are
appended using menu identifiers in the range wxID\_FILE1 to wxID\_FILE9.
In order to respond to a file load command from one of these identifiers,
you need to handle them in your wxFrame::OnMenuCommand. Below is the
code used by the default document/view parent frame.
you need to handle them using an event handler, for example:
{\small
\begin{verbatim}
void wxDocParentFrame::OnMenuCommand(int id)
BEGIN_EVENT_TABLE(wxDocParentFrame, wxFrame)
EVT_MENU(wxID_EXIT, wxDocParentFrame::OnExit)
EVT_MENU_RANGE(wxID_FILE1, wxID_FILE9, wxDocParentFrame::OnMRUFile)
END_EVENT_TABLE()
void wxDocParentFrame::OnExit(wxCommandEvent& WXUNUSED(event))
{
switch (id)
{
case wxID_EXIT:
{
if (GetEventHandler()->OnClose())
delete this;
break;
}
case wxID_FILE1:
case wxID_FILE2:
case wxID_FILE3:
case wxID_FILE4:
case wxID_FILE5:
case wxID_FILE6:
case wxID_FILE7:
case wxID_FILE8:
case wxID_FILE9:
{
char *f = docManager->GetHistoryFile(id-wxID_FILE1);
if (f)
(void)docManager->CreateDocument(f, wxDOC_SILENT);
break;
}
default:
{
docManager->OnMenuCommand(id);
}
}
Close();
}
void wxDocParentFrame::OnMRUFile(wxCommandEvent& event)
{
wxString f(m_docManager->GetHistoryFile(event.GetSelection() - wxID_FILE1));
if (f != "")
(void)m_docManager->CreateDocument(f, wxDOC_SILENT);
}
\end{verbatim}
}
\subsection{wxWindows predefined command identifiers}\label{predefinedids}

View File

@@ -290,3 +290,9 @@
\newcommand{\constfunc}[3]{{\bf #1} {\bf #2}(#3) {\bf const}\index{#2}}
\newcommand{\windowstyle}[1]{{\bf #1}\index{#1}}
\addtolength{\textwidth}{1in}
\addtolength{\oddsidemargin}{-0.5in}
\addtolength{\topmargin}{-0.5in}
\addtolength{\textheight}{1in}
\sloppy

View File

@@ -46,6 +46,19 @@ as the following:
If your compiler does not support derivation from {\bf streambuf} and gives a compile error, define the symbol {\bf NO\_TEXT\_WINDOW\_STREAM} in the
wxTextCtrl header file.
\wxheading{Event handling}
To process input from a text control, use these event handler macros to direct input to member
functions that take a \helpref{wxCommandEvent}{wxcommandevent} argument.
\twocolwidtha{7cm}%
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_TEXT(id, func)}}{Respond to a wxEVT\_COMMAND\_TEXT\_UPDATED event,
generated when the text changes.}
\twocolitem{{\bf EVT\_TEXT\_ENTER(id, func)}}{Respond to a wxEVT\_COMMAND\_TEXT\_ENTER event,
generated when enter is pressed in a single-line text control.}
\end{twocollist}%
%\wxheading{See also}
%
%\helpref{wxRichTextCtrl}{wxrichtextctrl}

View File

@@ -52,7 +52,7 @@ calling thread.
\func{wxThreadError}{Destroy}{\void}
Destroys the thread immediately unless the application has specified deferral via \helpref{wxThread::DeferDestroy}{deferdestroy}.
Destroys the thread immediately unless the application has specified deferral via \helpref{wxThread::DeferDestroy}{wxthreaddeferdestroy}.
\wxheading{Return value}
@@ -80,9 +80,9 @@ The following priorities are already defined:
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf WXTHREAD_MIN_PRIORITY}}{0}
\twocolitem{{\bf WXTHREAD_DEFAULT_PRIORITY}}{50}
\twocolitem{{\bf WXTHREAD_MAX_PRIORITY}}{100}
\twocolitem{{\bf WXTHREAD\_MIN\_PRIORITY}}{0}
\twocolitem{{\bf WXTHREAD\_DEFAULT\_PRIORITY}}{50}
\twocolitem{{\bf WXTHREAD\_MAX\_PRIORITY}}{100}
\end{twocollist}
\membersection{wxThread::IsAlive}\label{wxthreadisalive}
@@ -119,8 +119,13 @@ The following priorities are already defined:
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf WXTHREAD_MIN_PRIORITY}}{0}
\twocolitem{{\bf WXTHREAD_DEFAULT_PRIORITY}}{50}
\twocolitem{{\bf WXTHREAD_MAX_PRIORITY}}{100}
\twocolitem{{\bf WXTHREAD\_MIN\_PRIORITY}}{0}
\twocolitem{{\bf WXTHREAD\_DEFAULT\_PRIORITY}}{50}
\twocolitem{{\bf WXTHREAD\_MAX\_PRIORITY}}{100}
\end{twocollist}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "referenc"
%%% End:

View File

@@ -1,12 +1,23 @@
\section{\class{wxToolBarBase}}\label{wxtoolbarbase}
\section{\class{wxToolBar}}\label{wxtoolbar}
{\bf wxToolBarBase} is the base class for a number of toolbar classes. The most portable
one of these is the generic \helpref{wxToolBarSimple}{wxtoolbarsimple} class. {\bf wxToolBarBase} defines
automatic scrolling management functionality which is identical to \helpref{wxScrolledWindow}{wxscrolledwindow},
so please refer to this class also.
The name wxToolBar is defined to be a synonym for one of the following classes:
\begin{itemize}\itemsep=0pt
\item {\bf wxToolBar95} The native Windows 95 toolbar. Used on Windows 95, NT 4 and above.
\item {\bf wxToolBarMSW} A Windows implementation. Used on 16-bit Windows.
\item {\bf wxToolBarGTK} The GTK toolbar.
\item {\bf wxToolBarSimple} A simple implementation, with scrolling.
Used on platforms with no native toolbar control, or where scrolling is required.
\end{itemize}
Note that the base class {\bf wxToolBarBase} defines
automatic scrolling management functionality which is identical
to \helpref{wxScrolledWindow}{wxscrolledwindow}, so please refer to this class also.
Not all toolbars support scrolling, but wxToolBarSimple does.
\wxheading{Derived from}
wxToolBarBase\\
\helpref{wxControl}{wxcontrol}\\
\helpref{wxWindow}{wxwindow}\\
\helpref{wxEvtHandler}{wxevthandler}\\
@@ -14,58 +25,107 @@ so please refer to this class also.
\wxheading{Remarks}
Because there is a variety of toolbar classes, you may wish to choose which class
is best for your application on each platform, and define {\bf wxToolBar} appropriately. For example:
You may also create a toolbar that is managed by the frame, by
calling \helpref{wxFrame::CreateToolBar}{wxframecreatetoolbar}.
\begin{verbatim}
#if WIN95
class wxToolBar: public wxToolBar95
#elif defined(wx_msw)
class wxToolBar: public wxToolBarMSW
#else
class wxToolBar: public wxToolBarSimple
#endif
{
};
\end{verbatim}
{\bf wxToolBar95:} Note that this toolbar paints tools to reflect user-selected colours.
The toolbar orientation must always be {\bf wxVERTICAL}.
TODO: maybe change the confusing names: GetDefaultSize becomes GetToolBitmapSize, and
GetDefaultButtonSize becomes GetToolSize. Document SetRows for wxToolBar95, and make it
part of the base API?
\wxheading{Window styles}
\twocolwidtha{5cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{\windowstyle{wxTB\_FLAT}}{Gives the toolbar a flat look ('coolbar' or 'flatbar' style). Windows 95 only.}
\twocolitem{\windowstyle{wxTB\_HORIZONTAL}}{Specifies horizontal layout.}
\twocolitem{\windowstyle{wxTB\_VERTICAL}}{Specifies vertical layout (not available for the Windows 95
toolbar).}
\twocolitem{\windowstyle{wxTB\_3DBUTTONS}}{Gives wxToolBarSimple a mild 3D look to its buttons.}
\end{twocollist}
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Event handling}
Derive a new class from an existing toolbar class, and override appropriate virtual functions.
The toolbar class emits menu commands in the same was that a frame menubar does,
so you can use one EVT\_MENU macro for both a menu item and a toolbar button.
The event handler functions take a wxCommandEvent argument. For most event macros,
the identifier of the tool is passed, but for EVT\_TOOL\_ENTER the toolbar
window is passed and the tool id is retrieved from the wxCommandEvent.
This is because the id may be -1 when the mouse moves off a tool, and -1 is not
allowed as an identifier in the event system.
TODO: make consistent with other event handling; have wxToolBarEvent and appropriate macros.
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_TOOL(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_CLICKED event
(a synonym for wxEVT\_COMMAND\_MENU\_SELECTED). Pass the id of the tool.}
\twocolitem{{\bf EVT\_MENU(id, func)}}{The same as EVT\_TOOL.}
\twocolitem{{\bf EVT\_TOOL\_RANGE(id1, id2, func)}}{Process a wxEVT\_COMMAND\_TOOL\_CLICKED event
for a range id identifiers. Pass the ids of the tools.}
\twocolitem{{\bf EVT\_MENU\_RANGE(id1, id2, func)}}{The same as EVT\_TOOL\_RANGE.}
\twocolitem{{\bf EVT\_TOOL\_RCLICKED(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_RCLICKED event.
Pass the id of the tool.}
\twocolitem{{\bf EVT\_TOOL\_RCLICKED\_RANGE(id1, id2, func)}}{Process a wxEVT\_COMMAND\_TOOL\_RCLICKED event
for a range of ids. Pass the ids of the tools.}
\twocolitem{{\bf EVT\_TOOL\_ENTER(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_ENTER event.
Pass the id of the toolbar itself. The value of wxCommandEvent::GetSelection is the tool id, or -1 if the mouse cursor has moved off a tool.}
\end{twocollist}
\wxheading{See also}
\overview{Toolbar overview}{wxtoolbaroverview},\rtfsp
\helpref{wxToolBarSimple}{wxtoolbarsimple},\rtfsp
\helpref{wxToolBarMSW}{wxtoolbarmsw},\rtfsp
\helpref{wxToolBar95}{wxtoolbar95},\rtfsp
\helpref{wxScrolledWindow}{wxscrolledwindow}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxToolBarBase::wxToolBarBase}\label{wxtoolbarbaseconstr}
\membersection{wxToolBar::wxToolBar}\label{wxtoolbarconstr}
\func{}{wxToolBarBase}{\void}
\func{}{wxToolBar}{\void}
Default constructor.
%\wxheading{See also}
%
%\helpref{wxToolBarBase::Create}{wxtoolbarbasecreate}
%
\membersection{wxToolBarBase::\destruct{wxToolBarBase}}
\func{}{wxToolBar}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id},
\param{const wxPoint\& }{pos = wxDefaultPosition},
\param{const wxSize\& }{size = wxDefaultSize},
\param{long }{style = wxTB\_HORIZONTAL \pipe wxNO\_BORDER},
\param{const wxString\& }{name = wxPanelNameStr}}
\func{void}{\destruct{wxToolBarBase}}{\void}
Constructs a toolbar.
\wxheading{Parameters}
\docparam{parent}{Pointer to a parent window.}
\docparam{id}{Window identifier. If -1, will automatically create an identifier.}
\docparam{pos}{Window position. wxDefaultPosition is (-1, -1) which indicates that wxWindows
should generate a default position for the window. If using the wxWindow class directly, supply
an actual position.}
\docparam{size}{Window size. wxDefaultSize is (-1, -1) which indicates that wxWindows
should generate a default size for the window.}
\docparam{style}{Window style. See \helpref{wxToolBar}{wxtoolbar} for details.}
\docparam{name}{Window name.}
\wxheading{Remarks}
After a toolbar is created, you use \helpref{wxToolBar::AddTool}{wxtoolbaraddtool} and
perhaps \helpref{wxToolBar::AddSeparator}{wxtoolbaraddseparator}, and then you
must call \helpref{wxToolBar::Realize}{wxtoolbarrealize} to construct and display the toolbar
tools.
You may also create a toolbar that is managed by the frame, by
calling \helpref{wxFrame::CreateToolBar}{wxframecreatetoolbar}.
\membersection{wxToolBar::\destruct{wxToolBar}}
\func{void}{\destruct{wxToolBar}}{\void}
Toolbar destructor.
\membersection{wxToolBarBase::AddSeparator}\label{wxtoolbarbaseaddseparator}
\membersection{wxToolBar::AddSeparator}\label{wxtoolbaraddseparator}
\func{void}{AddSeparator}{\void}
@@ -73,14 +133,14 @@ Adds a separator for spacing groups of tools.
\wxheading{See also}
\helpref{wxToolBarBase::AddTool}{wxtoolbarbaseaddtool}, \helpref{wxToolBarBase::SetToolSeparation}{wxtoolbarbasesettoolseparation}
\helpref{wxToolBar::AddTool}{wxtoolbaraddtool}, \helpref{wxToolBar::SetToolSeparation}{wxtoolbarsettoolseparation}
\membersection{wxToolBarBase::AddTool}\label{wxtoolbarbaseaddtool}
\membersection{wxToolBar::AddTool}\label{wxtoolbaraddtool}
\func{wxToolBarBaseTool*}{AddTool}{\param{int}{ toolIndex}, \param{const wxBitmap\&}{ bitmap1},\rtfsp
\param{const wxBitmap\&}{ bitmap2 = (wxBitmap *)NULL}, \param{const bool}{ isToggle = FALSE},\rtfsp
\param{const float}{ xPos = -1}, \param{const float}{ yPos = -1},\rtfsp
\param{wxObject *}{clientData = NULL}, \param{const wxString\& }{shortHelpString = ""}, \param{const wxString\& }{longHelpString = ""}}
\func{wxToolBarTool*}{AddTool}{\param{int}{ toolIndex}, \param{const wxBitmap\&}{ bitmap1},\rtfsp
\param{const wxBitmap\&}{ bitmap2 = wxNullBitmap}, \param{bool}{ isToggle = FALSE},\rtfsp
\param{long}{ xPos = -1}, \param{long}{ yPos = -1},\rtfsp
\param{wxObject* }{clientData = NULL}, \param{const wxString\& }{shortHelpString = ""}, \param{const wxString\& }{longHelpString = ""}}
Adds a tool to the toolbar.
@@ -106,7 +166,7 @@ wxBitmap object.}
\docparam{yPos}{Specifies the y position of the tool if automatic layout is not suitable.}
\docparam{clientData}{An optional pointer to client data which can be
retrieved later using \helpref{wxToolBarBase::GetToolClientData}{wxtoolbarbasegettoolclientdata}.}
retrieved later using \helpref{wxToolBar::GetToolClientData}{wxtoolbargettoolclientdata}.}
\docparam{shortHelpString}{Used for displaying a tooltip for the tool in the
Windows 95 implementation of wxButtonBar. Pass the empty string if this is not required.}
@@ -114,29 +174,31 @@ Windows 95 implementation of wxButtonBar. Pass the empty string if this is not r
\docparam{longHelpString}{Used to displayer longer help, such as status line help.
Pass the empty string if this is not required.}
\wxheading{Remarks}
After you have added tools to a toolbar, you must call \helpref{wxToolBar::Realize}{wxtoolbarrealize} in
order to have the tools appear.
\wxheading{See also}
\helpref{wxToolBarBase::AddSeparator}{wxtoolbarbaseaddseparator}
\helpref{wxToolBar::AddSeparator}{wxtoolbaraddseparator},
\helpref{wxToolBar::Realize}{wxtoolbarrealize},
\membersection{wxToolBarBase::CreateTools}\label{wxtoolbarbasecreatetools}
\membersection{wxToolBar::CreateTools}\label{wxtoolbarcreatetools}
\func{bool}{CreateTools}{\void}
Call this function after all tools have been added to the toolbar, to actually
create the tools.
\wxheading{Remarks}
Strictly speaking, this is required only for the Windows 95 version of wxButtonBar,
but for portability it should be called anyway.
This function is implemented for some toolbar classes to create the tools and display them.
The portable way of calling it is to call \helpref{wxToolBar::Realize}{wxtoolbarrealize} after
you have added tools and separators.
\wxheading{See also}
\helpref{wxToolBarBase::AddTool}{wxtoolbarbaseaddtool}
\helpref{wxToolBar::AddTool}{wxtoolbaraddtool}, \helpref{wxToolBar::Realize}{wxtoolbarrealize}
\membersection{wxToolBarBase::DrawTool}\label{wxtoolbarbasedrawtool}
\membersection{wxToolBar::DrawTool}\label{wxtoolbardrawtool}
\func{void}{DrawTool}{\param{wxMemoryDC\& }{memDC}, \param{wxToolBarBaseTool* }{tool}}
\func{void}{DrawTool}{\param{wxMemoryDC\& }{memDC}, \param{wxToolBarTool* }{tool}}
Draws the specified tool onto the window using the given memory device context.
@@ -150,7 +212,7 @@ Draws the specified tool onto the window using the given memory device context.
For internal use only.
\membersection{wxToolBarBase::EnableTool}\label{wxtoolbarbaseenabletool}
\membersection{wxToolBar::EnableTool}\label{wxtoolbarenabletool}
\func{void}{EnableTool}{\param{int }{toolIndex}, \param{const bool}{ enable}}
@@ -164,18 +226,18 @@ Enables or disables the tool.
\wxheading{Remarks}
For \helpref{wxToolBarSimple}{wxtoolbarsimple}, does nothing. Some other implementations
For wxToolBarSimple, does nothing. Some other implementations
will change the visible state of the tool to indicate that it is disabled.
\wxheading{See also}
\helpref{wxToolBarBase::GetToolEnabled}{wxtoolbarbasegettoolenabled},\rtfsp
%\helpref{wxToolBarBase::SetToolState}{wxtoolbarbasesettoolstate},\rtfsp
\helpref{wxToolBarBase::ToggleTool}{wxtoolbarbasetoggletool}
\helpref{wxToolBar::GetToolEnabled}{wxtoolbargettoolenabled},\rtfsp
%\helpref{wxToolBar::SetToolState}{wxtoolbarsettoolstate},\rtfsp
\helpref{wxToolBar::ToggleTool}{wxtoolbartoggletool}
\membersection{wxToolBarBase::FindToolForPosition}\label{wxtoolbarbasefindtoolforposition}
\membersection{wxToolBar::FindToolForPosition}\label{wxtoolbarfindtoolforposition}
\constfunc{wxToolBarBaseTool*}{FindToolForPosition}{\param{const float}{ x}, \param{const float}{ y}}
\constfunc{wxToolBarTool*}{FindToolForPosition}{\param{const float}{ x}, \param{const float}{ y}}
Finds a tool for the given mouse position.
@@ -193,35 +255,35 @@ A pointer to a tool if a tool is found, or NULL otherwise.
Used internally, and should not need to be used by the programmer.
\membersection{wxToolBarBase::GetDefaultButtonSize}\label{wxtoolbarbasegetdefaultbuttonsize}
\membersection{wxToolBar::GetToolSize}\label{wxtoolbargettoolsize}
\func{wxSize}{GetDefaultButtonSize}{\void}
\func{wxSize}{GetToolSize}{\void}
Returns the size of a whole button, which is usually larger than a tool bitmap because
of added 3D effects.
\wxheading{See also}
\helpref{wxToolBarBase::SetDefaultSize}{wxtoolbarbasesetdefaultsize},\rtfsp
\helpref{wxToolBarBase::GetDefaultSize}{wxtoolbarbasegetdefaultsize}
\helpref{wxToolBar::SetToolBitmapSize}{wxtoolbarsettoolbitmapsize},\rtfsp
\helpref{wxToolBar::GetToolBitmapSize}{wxtoolbargettoolbitmapsize}
\membersection{wxToolBarBase::GetDefaultSize}\label{wxtoolbarbasegetdefaultsize}
\membersection{wxToolBar::GetToolBitmapSize}\label{wxtoolbargettoolbitmapsize}
\func{wxSize}{GetDefaultSize}{\void}
\func{wxSize}{GetToolBitmapSize}{\void}
Returns the size of bitmap that the toolbar expects to have. The default bitmap size is 16 by 15 pixels.
\wxheading{Remarks}
Note that this is the size of the bitmap you pass to \helpref{wxToolBarBase::AddTool}{wxtoolbarbaseaddtool},
Note that this is the size of the bitmap you pass to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool},
and not the eventual size of the tool button.
\wxheading{See also}
\helpref{wxToolBarBase::SetDefaultSize}{wxtoolbarbasesetdefaultsize},\rtfsp
\helpref{wxToolBarBase::GetDefaultButtonSize}{wxtoolbarbasegetdefaultbuttonsize}
\helpref{wxToolBar::SetToolBitmapSize}{wxtoolbarsettoolbitmapsize},\rtfsp
\helpref{wxToolBar::GetToolSize}{wxtoolbargettoolsize}
\membersection{wxToolBarBase::GetMargins}\label{wxtoolbarbasegetmargins}
\membersection{wxToolBar::GetMargins}\label{wxtoolbargetmargins}
\constfunc{wxSize}{GetMargins}{\void}
@@ -229,9 +291,9 @@ Returns the left/right and top/bottom margins, which are also used for inter-too
\wxheading{See also}
\helpref{wxToolBarBase::SetMargins}{wxtoolbarbasesetmargins}
\helpref{wxToolBar::SetMargins}{wxtoolbarsetmargins}
\membersection{wxToolBarBase::GetMaxSize}\label{wxtoolbarbasegetmaxsize}
\membersection{wxToolBar::GetMaxSize}\label{wxtoolbargetmaxsize}
\constfunc{void}{GetMaxSize}{\param{float*}{ w}, \param{float*}{ h}}
@@ -244,7 +306,7 @@ This can be used to size a frame around the toolbar window.
\docparam{h}{Receives the maximum vertical size.}
\membersection{wxToolBarBase::GetToolClientData}\label{wxtoolbarbasegettoolclientdata}
\membersection{wxToolBar::GetToolClientData}\label{wxtoolbargettoolclientdata}
\constfunc{wxObject*}{GetToolClientData}{\param{int }{toolIndex}}
@@ -252,13 +314,13 @@ Get any client data associated with the tool.
\wxheading{Parameters}
\docparam{toolIndex}{Index of the tool, as passed to \helpref{wxToolBarBase::AddTool}{wxtoolbarbaseaddtool}.}
\docparam{toolIndex}{Index of the tool, as passed to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool}.}
\wxheading{Return value}
Client data, or NULL if there is none.
\membersection{wxToolBarBase::GetToolEnabled}\label{wxtoolbarbasegettoolenabled}
\membersection{wxToolBar::GetToolEnabled}\label{wxtoolbargettoolenabled}
\constfunc{bool}{GetToolEnabled}{\param{int }{toolIndex}}
@@ -274,9 +336,9 @@ TRUE if the tool is enabled, FALSE otherwise.
%\wxheading{See also}
%
%\helpref{wxToolBarBase::SetToolEnabled}{wxtoolbarbasesettoolenabled}
%\helpref{wxToolBar::SetToolEnabled}{wxtoolbarsettoolenabled}
%
\membersection{wxToolBarBase::GetToolLongHelp}\label{wxtoolbarbasegettoollonghelp}
\membersection{wxToolBar::GetToolLongHelp}\label{wxtoolbargettoollonghelp}
\constfunc{wxString}{GetToolLongHelp}{\param{int }{toolIndex}}
@@ -288,10 +350,10 @@ Returns the long help for the given tool.
\wxheading{See also}
\helpref{wxToolBarBase::SetToolLongHelp}{wxtoolbarbasesettoollonghelp},\rtfsp
\helpref{wxToolBarBase::SetToolShortHelp}{wxtoolbarbasesettoolshorthelp}\rtfsp
\helpref{wxToolBar::SetToolLongHelp}{wxtoolbarsettoollonghelp},\rtfsp
\helpref{wxToolBar::SetToolShortHelp}{wxtoolbarsettoolshorthelp}\rtfsp
\membersection{wxToolBarBase::GetToolPacking}\label{wxtoolbarbasegettoolpacking}
\membersection{wxToolBar::GetToolPacking}\label{wxtoolbargettoolpacking}
\constfunc{int}{GetToolPacking}{\void}
@@ -299,9 +361,9 @@ Returns the value used for packing tools.
\wxheading{See also}
\helpref{wxToolBarBase::SetToolPacking}{wxtoolbarbasesettoolpacking}
\helpref{wxToolBar::SetToolPacking}{wxtoolbarsettoolpacking}
\membersection{wxToolBarBase::GetToolSeparation}\label{wxtoolbarbasegettoolseparation}
\membersection{wxToolBar::GetToolSeparation}\label{wxtoolbargettoolseparation}
\constfunc{int}{GetToolSeparation}{\void}
@@ -309,9 +371,9 @@ Returns the default separator size.
\wxheading{See also}
\helpref{wxToolBarBase::SetToolSeparation}{wxtoolbarbasesettoolseparation}
\helpref{wxToolBar::SetToolSeparation}{wxtoolbarsettoolseparation}
\membersection{wxToolBarBase::GetToolShortHelp}\label{wxtoolbarbasegettoolshorthelp}
\membersection{wxToolBar::GetToolShortHelp}\label{wxtoolbargettoolshorthelp}
\constfunc{wxString}{GetToolShortHelp}{\param{int }{toolIndex}}
@@ -325,10 +387,10 @@ Returns the long help for the given tool.
\wxheading{See also}
\helpref{wxToolBarBase::GetToolLongHelp}{wxtoolbarbasegettoollonghelp},\rtfsp
\helpref{wxToolBarBase::SetToolShortHelp}{wxtoolbarbasesettoolshorthelp}\rtfsp
\helpref{wxToolBar::GetToolLongHelp}{wxtoolbargettoollonghelp},\rtfsp
\helpref{wxToolBar::SetToolShortHelp}{wxtoolbarsettoolshorthelp}\rtfsp
\membersection{wxToolBarBase::GetToolState}\label{wxtoolbarbasegettoolstate}
\membersection{wxToolBar::GetToolState}\label{wxtoolbargettoolstate}
\constfunc{bool}{GetToolState}{\param{int }{toolIndex}}
@@ -344,9 +406,9 @@ TRUE if the tool is toggled on, FALSE otherwise.
%\wxheading{See also}
%
%\helpref{wxToolBarBase::SetToolState}{wxtoolbarbasesettoolstate}
%\helpref{wxToolBar::SetToolState}{wxtoolbarsettoolstate}
%
\membersection{wxToolBarBase::Layout}\label{wxtoolbarbaselayout}
\membersection{wxToolBar::Layout}\label{wxtoolbarlayout}
\func{void}{Layout}{\void}
@@ -354,16 +416,26 @@ Called by the application after the tools have been added to
automatically lay the tools out on the window. If you have given
absolute positions when adding the tools, do not call this.
\membersection{wxToolBarBase::OnLeftClick}\label{wxtoolbarbaseonleftclick}
This function is only implemented for some toolbar classes.
The portable way of calling it is to call \helpref{wxToolBar::Realize}{wxtoolbarrealize} after
you have added tools and separators.
\wxheading{See also}
\helpref{wxToolBar::AddTool}{wxtoolbaraddtool}, \helpref{wxToolBar::Realize}{wxtoolbarrealize}
\membersection{wxToolBar::OnLeftClick}\label{wxtoolbaronleftclick}
\func{bool}{OnLeftClick}{\param{int}{ toolIndex}, \param{bool}{ toggleDown}}
Called when the user clicks on a tool with the left mouse button. The
programmer should override this function to detect left tool clicks.
Called when the user clicks on a tool with the left mouse button.
This is the old way of detecting tool clicks; although it will still work,
you should use the EVT\_MENU or EVT\_TOOL macro instead.
\wxheading{Parameters}
\docparam{toolIndex}{The identifier passed to \helpref{wxToolBarBase::AddTool}{wxtoolbarbaseaddtool}.}
\docparam{toolIndex}{The identifier passed to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool}.}
\docparam{toggleDown}{TRUE if the tool is a toggle and the toggle is down, otherwise is FALSE.}
@@ -375,16 +447,19 @@ specifying that toggle operations are not permitted in some circumstances.
\wxheading{See also}
\helpref{wxToolBarBase::OnMouseEnter}{wxtoolbarbaseonmouseenter},\rtfsp
\helpref{wxToolBarBase::OnRightClick}{wxtoolbarbaseonrightclick}
\helpref{wxToolBar::OnMouseEnter}{wxtoolbaronmouseenter},\rtfsp
\helpref{wxToolBar::OnRightClick}{wxtoolbaronrightclick}
\membersection{wxToolBarBase::OnMouseEnter}\label{wxtoolbarbaseonmouseenter}
\membersection{wxToolBar::OnMouseEnter}\label{wxtoolbaronmouseenter}
\func{void}{OnMouseEnter}{\param{int}{ toolIndex}}
This is called when the mouse cursor moves into a tool or out of
the toolbar.
This is the old way of detecting mouse enter events; although it will still work,
you should use the EVT\_TOOL\_ENTER macro instead.
\wxheading{Parameters}
\docparam{toolIndex}{Greater than -1 if the mouse cursor has moved into the tool,
@@ -397,16 +472,19 @@ such as a short description on the status line.}
With some derived toolbar classes, if the mouse moves quickly out of the toolbar, wxWindows may not be able to
detect it. Therefore this function may not always be called when expected.
\membersection{wxToolBarBase::OnRightClick}\label{wxtoolbarbaseonrightclick}
\membersection{wxToolBar::OnRightClick}\label{wxtoolbaronrightclick}
\func{void}{OnRightClick}{\param{int}{ toolIndex}, \param{float}{ x}, \param{float}{ y}}
Called when the user clicks on a tool with the right mouse button. The
programmer should override this function to detect right tool clicks.
This is the old way of detecting tool right clicks; although it will still work,
you should use the EVT\_TOOL\_RCLICKED macro instead.
\wxheading{Parameters}
\docparam{toolIndex}{The identifier passed to \helpref{wxToolBarBase::AddTool}{wxtoolbarbaseaddtool}.}
\docparam{toolIndex}{The identifier passed to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool}.}
\docparam{x}{The x position of the mouse cursor.}
@@ -418,12 +496,24 @@ A typical use of this member might be to pop up a menu.
\wxheading{See also}
\helpref{wxToolBarBase::OnMouseEnter}{wxtoolbarbaseonmouseenter},\rtfsp
\helpref{wxToolBarBase::OnLeftClick}{wxtoolbarbaseonleftclick}
\helpref{wxToolBar::OnMouseEnter}{wxtoolbaronmouseenter},\rtfsp
\helpref{wxToolBar::OnLeftClick}{wxtoolbaronleftclick}
\membersection{wxToolBarBase::SetDefaultSize}\label{wxtoolbarbasesetdefaultsize}
\membersection{wxToolBar::Realize}\label{wxtoolbarrealize}
\func{void}{SetDefaultSize}{\param{const wxSize\&}{ size}}
\func{bool}{Realize}{\void}
This function should be called after you have added tools. It
calls, according to the implementation,
either \helpref{wxToolBar::CreateTools}{wxtoolbarcreatetools} or
\helpref{wxToolBar::Layout}{wxtoolbarlayout}.
If you are using absolute positions for your tools when using a wxToolBarSimple object,
do not call this function. You must call it at all other times.
\membersection{wxToolBar::SetToolBitmapSize}\label{wxtoolbarsettoolbitmapsize}
\func{void}{SetToolBitmapSize}{\param{const wxSize\&}{ size}}
Sets the default size of each tool bitmap. The default bitmap size is 16 by 15 pixels.
@@ -436,15 +526,15 @@ Sets the default size of each tool bitmap. The default bitmap size is 16 by 15 p
This should be called to tell the toolbar what the tool bitmap size is. Call
it before you add tools.
Note that this is the size of the bitmap you pass to \helpref{wxToolBarBase::AddTool}{wxtoolbarbaseaddtool},
Note that this is the size of the bitmap you pass to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool},
and not the eventual size of the tool button.
\wxheading{See also}
\helpref{wxToolBarBase::GetDefaultSize}{wxtoolbarbasegetdefaultsize},\rtfsp
\helpref{wxToolBarBase::GetDefaultButtonSize}{wxtoolbarbasegetdefaultbuttonsize}
\helpref{wxToolBar::GetToolBitmapSize}{wxtoolbargettoolbitmapsize},\rtfsp
\helpref{wxToolBar::GetToolSize}{wxtoolbargettoolsize}
\membersection{wxToolBarBase::SetMargins}\label{wxtoolbarbasesetmargins}
\membersection{wxToolBar::SetMargins}\label{wxtoolbarsetmargins}
\func{void}{SetMargins}{\param{const wxSize\&}{ size}}
@@ -467,9 +557,9 @@ default (zero-size) margins are to be overridden.
\wxheading{See also}
\helpref{wxToolBarBase::GetMargins}{wxtoolbarbasegetmargins}, \helpref{wxSize}{wxsize}
\helpref{wxToolBar::GetMargins}{wxtoolbargetmargins}, \helpref{wxSize}{wxsize}
\membersection{wxToolBarBase::SetToolLongHelp}\label{wxtoolbarbasesettoollonghelp}
\membersection{wxToolBar::SetToolLongHelp}\label{wxtoolbarsettoollonghelp}
\func{void}{SetToolLongHelp}{\param{int }{toolIndex}, \param{const wxString\& }{helpString}}
@@ -487,10 +577,10 @@ You might use the long help for displaying the tool purpose on the status line.
\wxheading{See also}
\helpref{wxToolBarBase::GetToolLongHelp}{wxtoolbarbasegettoollonghelp},\rtfsp
\helpref{wxToolBarBase::SetToolShortHelp}{wxtoolbarbasesettoolshorthelp},\rtfsp
\helpref{wxToolBar::GetToolLongHelp}{wxtoolbargettoollonghelp},\rtfsp
\helpref{wxToolBar::SetToolShortHelp}{wxtoolbarsettoolshorthelp},\rtfsp
\membersection{wxToolBarBase::SetToolPacking}\label{wxtoolbarbasesettoolpacking}
\membersection{wxToolBar::SetToolPacking}\label{wxtoolbarsettoolpacking}
\func{void}{SetToolPacking}{\param{int}{ packing}}
@@ -507,9 +597,9 @@ and for spacing in the horizontal direction if the toolbar is vertical.
\wxheading{See also}
\helpref{wxToolBarBase::GetToolPacking}{wxtoolbarbasegettoolpacking}
\helpref{wxToolBar::GetToolPacking}{wxtoolbargettoolpacking}
\membersection{wxToolBarBase::SetToolShortHelp}\label{wxtoolbarbasesettoolshorthelp}
\membersection{wxToolBar::SetToolShortHelp}\label{wxtoolbarsettoolshorthelp}
\func{void}{SetToolShortHelp}{\param{int }{toolIndex}, \param{const wxString\& }{helpString}}
@@ -527,9 +617,9 @@ An application might use short help for identifying the tool purpose in a toolti
\wxheading{See also}
\helpref{wxToolBarBase::GetToolShortHelp}{wxtoolbarbasegettoolshorthelp}, \helpref{wxToolBarBase::SetToolLongHelp}{wxtoolbarbasesettoollonghelp}
\helpref{wxToolBar::GetToolShortHelp}{wxtoolbargettoolshorthelp}, \helpref{wxToolBar::SetToolLongHelp}{wxtoolbarsettoollonghelp}
\membersection{wxToolBarBase::SetToolSeparation}\label{wxtoolbarbasesettoolseparation}
\membersection{wxToolBar::SetToolSeparation}\label{wxtoolbarsettoolseparation}
\func{void}{SetToolSeparation}{\param{int}{ separation}}
@@ -541,9 +631,9 @@ Sets the default separator size. The default value is 5.
\wxheading{See also}
\helpref{wxToolBarBase::AddSeparator}{wxtoolbarbaseaddseparator}
\helpref{wxToolBar::AddSeparator}{wxtoolbaraddseparator}
\membersection{wxToolBarBase::ToggleTool}\label{wxtoolbarbasetoggletool}
\membersection{wxToolBar::ToggleTool}\label{wxtoolbartoggletool}
\func{void}{ToggleTool}{\param{int }{toolIndex}, \param{const bool}{ toggle}}
@@ -561,213 +651,6 @@ Only applies to a tool that has been specified as a toggle tool.
\wxheading{See also}
\helpref{wxToolBarBase::GetToolState}{wxtoolbarbasegettoolstate}
\section{\class{wxToolBar95}}\label{wxtoolbar95}
This class should be used when a 3D-effect toolbar is required under Windows 95.
It uses the native toolbar control.
\wxheading{Derived from}
\helpref{wxToolBarBase}{wxtoolbarbase}\\
\helpref{wxControl}{wxcontrol}\\
\helpref{wxWindow}{wxwindow}\\
\helpref{wxEvtHandler}{wxevthandler}\\
\helpref{wxObject}{wxobject}
\wxheading{Window styles}
\twocolwidtha{5cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{\windowstyle{wxTB\_FLAT}}{Gives the toolbar a flat look ('coolbar' or 'flatbar' style).}
\end{twocollist}
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Remarks}
Note that this toolbar paints tools to reflect user-selected colours.
The toolbar orientation must always be {\bf wxVERTICAL}.
For member functions, see the documentation for \helpref{wxToolBarBase}{wxtoolbarbase}.
\wxheading{See also}
\overview{Toolbar overview}{wxtoolbaroverview},\rtfsp
\helpref{wxToolBarBase}{wxtoolbarbase},\rtfsp
\helpref{wxToolBarSimple}{wxtoolbarsimple},\rtfsp
\helpref{wxToolBarMSW}{wxtoolbarmsw}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxToolBar95::wxToolBar95}\label{wxtoolbar95constr}
\func{}{wxToolBar95}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id},\rtfsp
\param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
\param{long }{style = 0}, \param{int }{orientation = wxVERTICAL},\rtfsp
\param{int }{nRowsOrColumns = 1}, \param{const wxString\& }{name = ``toolBar"}}
Constructs a toolbar.
\wxheading{Parameters}
\docparam{parent}{Parent window. Must not be NULL.}
\docparam{id}{Window identifier. A value of -1 indicates a default value.}
\docparam{pos}{Window position. If the position (-1, -1) is specified then a default position is chosen.}
\docparam{size}{Window size. If the default size (-1, -1) is specified then a default size is chosen.}
\docparam{orientation}{Specifies a wxVERTICAL or wxHORIZONTAL orientation for laying out
the toolbar.}
\docparam{nRowsOrColumns}{Specifies the number of rows or
columns, whose meaning depends on {\it orientation}. If laid out
vertically, {\it nRowsOrColumns} specifies the number of rows to draw
before the next column is started; if horizontal, it refers to the
number of columns to draw before the next row is started.}
\docparam{style}{Window style. See \helpref{wxToolBar95}{wxtoolbar95}.}
\docparam{name}{Window name.}
\section{\class{wxToolBarMSW}}\label{wxtoolbarmsw}
This class should be used when a 3D-effect toolbar is required for Windows versions earlier
than Windows 95.
\wxheading{Derived from}
\helpref{wxToolBarBase}{wxtoolbarbase}\\
\helpref{wxControl}{wxcontrol}\\
\helpref{wxWindow}{wxwindow}\\
\helpref{wxEvtHandler}{wxevthandler}\\
\helpref{wxObject}{wxobject}
\wxheading{Window styles}
There are no specific styles for this class.
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Remarks}
Note that this toolbar does not paint tools to reflect user-selected colours: grey shading is used.
For member functions, see the documentation for \helpref{wxToolBarBase}{wxtoolbarbase}.
\wxheading{See also}
\overview{Toolbar overview}{wxtoolbaroverview},\rtfsp
\helpref{wxToolBarBase}{wxtoolbarbase},\rtfsp
\helpref{wxToolBarSimple}{wxtoolbarsimple},\rtfsp
\helpref{wxToolBar95}{wxtoolbar95}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxToolBarMSW::wxToolBarMSW}\label{wxtoolbarmswconstr}
\func{}{wxToolBarMSW}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id},\rtfsp
\param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
\param{long }{style = 0}, \param{int }{orientation = wxVERTICAL},\rtfsp
\param{int }{nRowsOrColumns = 1}, \param{const wxString\& }{name = ``toolBar"}}
Constructs a toolbar.
\wxheading{Parameters}
\docparam{parent}{Parent window. Must not be NULL.}
\docparam{id}{Window identifier. A value of -1 indicates a default value.}
\docparam{pos}{Window position. If the position (-1, -1) is specified then a default position is chosen.}
\docparam{size}{Window size. If the default size (-1, -1) is specified then a default size is chosen.}
\docparam{orientation}{Specifies a wxVERTICAL or wxHORIZONTAL orientation for laying out
the toolbar.}
\docparam{nRowsOrColumns}{Specifies the number of rows or
columns, whose meaning depends on {\it orientation}. If laid out
vertically, {\it nRowsOrColumns} specifies the number of rows to draw
before the next column is started; if horizontal, it refers to the
number of columns to draw before the next row is started.}
\docparam{style}{Window style. See \helpref{wxToolBarMSW}{wxtoolbarmsw}.}
\docparam{name}{Window name.}
\section{\class{wxToolBarSimple}}\label{wxtoolbarsimple}
This is the generic toolbar class which has an identical appearance
on all platforms.
\wxheading{Derived from}
\helpref{wxToolBarBase}{wxtoolbarbase}\\
\helpref{wxControl}{wxcontrol}\\
\helpref{wxWindow}{wxwindow}\\
\helpref{wxEvtHandler}{wxevthandler}\\
\helpref{wxObject}{wxobject}
\wxheading{Window styles}
\twocolwidtha{5cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{\windowstyle{wxTB\_3DBUTTONS}}{Gives the simple toolbar a mild 3D look to its buttons.}
\end{twocollist}
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Remarks}
In this class, disabling a toolbar tool does not change its appearance.
For member functions, see the documentation for \helpref{wxToolBarBase}{wxtoolbarbase}.
\wxheading{See also}
\overview{Toolbar overview}{wxtoolbaroverview},\rtfsp
\helpref{wxToolBarBase}{wxtoolbarbase},\rtfsp
\helpref{wxToolBarSimple}{wxtoolbarsimple},\rtfsp
\helpref{wxToolBar95}{wxtoolbar95}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxToolBarSimple::wxToolBarSimple}\label{wxtoolbarsimpleconstr}
\func{}{wxToolBarSimple}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id},\rtfsp
\param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
\param{long }{style = 0}, \param{int }{orientation = wxVERTICAL},\rtfsp
\param{int }{nRowsOrColumns = 1}, \param{const wxString\& }{name = ``toolBar"}}
Constructs a toolbar.
\wxheading{Parameters}
\docparam{parent}{Parent window. Must not be NULL.}
\docparam{id}{Window identifier. A value of -1 indicates a default value.}
\docparam{pos}{Window position. If the position (-1, -1) is specified then a default position is chosen.}
\docparam{size}{Window size. If the default size (-1, -1) is specified then a default size is chosen.}
\docparam{orientation}{Specifies a wxVERTICAL or wxHORIZONTAL orientation for laying out
the toolbar.}
\docparam{nRowsOrColumns}{Specifies the number of rows or
columns, whose meaning depends on {\it orientation}. If laid out
vertically, {\it nRowsOrColumns} specifies the number of rows to draw
before the next column is started; if horizontal, it refers to the
number of columns to draw before the next row is started.}
\docparam{style}{Window style. See \helpref{wxToolBarSimple}{wxtoolbarsimple}.}
\docparam{name}{Window name.}
\helpref{wxToolBar::GetToolState}{wxtoolbargettoolstate}

View File

@@ -8,7 +8,6 @@ This chapter contains a selection of topic overviews.
\input tbitmap.tex
\input tdialog.tex
\input tfont.tex
\input tstring.tex
\input tsplittr.tex
\input ttreectl.tex
\input tlistctl.tex
@@ -33,5 +32,6 @@ This chapter contains a selection of topic overviews.
\input tvalidat.tex
\input texpr.tex
\input tgrid.tex
\input tstring.tex
\input tusage.tex

View File

@@ -24,6 +24,27 @@ able to edit labels in the tree control.}
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Event handling}
To process input from a tree control, use these event handler macros to direct input to member
functions that take a \helpref{wxTreeEvent}{wxtreeevent} argument.
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_TREE\_BEGIN\_DRAG(id, func)}}{Begin dragging with the left mouse button.}
\twocolitem{{\bf EVT\_TREE\_BEGIN\_RDRAG(id, func)}}{Begin dragging with the right mouse button.}
\twocolitem{{\bf EVT\_TREE\_BEGIN\_LABEL\_EDIT(id, func)}}{Begin editing a label.}
\twocolitem{{\bf EVT\_TREE\_END\_LABEL\_EDIT(id, func)}}{Finish editing a label.}
\twocolitem{{\bf EVT\_TREE\_DELETE\_ITEM(id, func)}}{Delete an item.}
\twocolitem{{\bf EVT\_TREE\_GET\_INFO(id, func)}}{Request information from the application.}
\twocolitem{{\bf EVT\_TREE\_SET\_INFO(id, func)}}{Information is being supplied.}
\twocolitem{{\bf EVT\_TREE\_ITEM\_EXPANDED(id, func)}}{Parent has been expanded.}
\twocolitem{{\bf EVT\_TREE\_ITEM\_EXPANDING(id, func)}}{Parent is being expanded.}
\twocolitem{{\bf EVT\_TREE\_SEL\_CHANGED(id, func)}}{Selection has changed.}
\twocolitem{{\bf EVT\_TREE\_SEL\_CHANGING(id, func)}}{Selection is changing.}
\twocolitem{{\bf EVT\_TREE\_KEY\_DOWN(id, func)}}{A key has been pressed.}
\end{twocollist}%
\wxheading{See also}
\helpref{wxTreeCtrl overview}{wxtreectrloverview}, \helpref{wxListBox}{wxlistbox}, \helpref{wxListCtrl}{wxlistctrl},\rtfsp
@@ -90,12 +111,35 @@ Deletes all the items in the control.
Deletes the specified item.
\membersection{wxTreeCtrl::Edit}\label{wxtreectrledit}
\membersection{wxTreeCtrl::EditLabel}\label{wxtreectrleditlabel}
\func{wxTextCtrl\&}{Edit}{\param{long }{item}}
\func{wxTextCtrl*}{EditLabel}{\param{long }{item}, \param{wxClassInfo*}{ textControlClass = CLASSINFO(wxTextCtrl)}}
Starts editing the label of the given item, returning the text control that the tree control uses for editing.
Pass another {\it textControlClass} if a derived class is required. It usually will be, in order for
the application to detect when editing has finished and to call \helpref{wxTreeCtrl::EndEditLabel}{wxtreectrlendeditlabel}.
Do not delete the text control yourself.
This function is currently supported under Windows only.
\wxheading{See also}
\helpref{wxTreeCtrl::EndEditLabel}{wxtreectrlendeditlabel}
\membersection{wxTreeCtrl::EndEditLabel}\label{wxtreectrlendeditlabel}
\func{bool}{EndEditLabel}{\param{bool }{cancelEdit}}
Ends label editing. If {\it cancelEdit} is TRUE, the edit will be cancelled.
This function is currently supported under Windows only.
\wxheading{See also}
\helpref{wxTreeCtrl::EditLabel}{wxtreectrleditlabel}
\membersection{wxTreeCtrl::EnsureVisible}\label{wxtreectrlensurevisible}
\func{bool}{EnsureVisible}{\param{long }{item}}

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,6 @@
\section{Toolbar overview}\label{wxtoolbaroverview}
Classes: \helpref{wxToolBarBase}{wxtoolbarbase}, \helpref{wxToolBarSimple}{wxtoolbarsimple},\rtfsp
\helpref{wxToolBarMSW}{wxtoolbarmsw}, \helpref{wxToolBar95}{wxtoolbar95}
Classes: \helpref{wxToolBar}{wxtoolbar}
The toolbar family of classes allows an application to use toolbars
in a variety of configurations and styles.
@@ -16,21 +15,10 @@ out the classes. This is because there are a number of different toolbar
styles that you may wish to use simultaneously, and also, future
toolbar implementations will emerge (for example, using the
new-style Windows `coolbar' as seen in Microsoft applications) which
cannot be shoe-horned into the one class.
cannot all be shoe-horned into the one class.
This does mean that if you wish to use a more sophisticated toolbar
on one platform (say, wxToolBar95) and a simple toolbar on another
platform (wxToolBarSimple), then you will need some simple ifdefing, such as:
\begin{verbatim}
#ifdef wx_msw
# define wxToolBar wxToolBar95
#else
# define wxToolBar wxToolBarSimple
#endif
\end{verbatim}
Fortunately, the APIs of the toolbar classes are virtually identical.
For each platform, the symbol {\bf wxToolBar} is defined to be one of the
specific toolbar classes.
The following is a summary of the toolbar classes and their differences.
@@ -43,15 +31,15 @@ with the Windows look and feel. This toolbar can scroll, and you can have arbitr
numbers of rows and columns.
\item {\bf wxToolBarMSW.} This class implements an old-style Windows toolbar, only on
Windows. There are small, three-dimensional buttons, which do not (currently) reflect
the current Windows colour settings: the buttons are grey.
the current Windows colour settings: the buttons are grey. This is the default wxToolBar
on 16-bit windows.
\item {\bf wxToolBar95.} Uses the native Windows 95 toolbar class. It dynamically adjusts its
background and button colours according to user colour settings.
CreateTools must be called after the tools have been added.
No absolute positioning is supported but you can specify the number
of rows, and add tool separators with {\bf AddSeparator}. {\bf Layout} does nothing.
Tooltips are supported. {\bf OnRightClick} is not supported.
For some reason, a wxToolBar95 control cannot be moved to any
position other than the top-left of the frame.
of rows, and add tool separators with {\bf AddSeparator}.
Tooltips are supported. {\bf OnRightClick} is not supported. This is the default wxToolBar
on Windows 95, Windows NT 4 and above.
\end{itemize}
A toolbar might appear as a single row of images under
@@ -68,61 +56,229 @@ around the bitmap (for colour displays where inverting will not have
the desired result).
The Windows-specific toolbar classes expect 16-colour bitmaps that are 16 pixels wide and 15 pixels
high. If you want to use a different size, call {\bf SetDefaultSize}\rtfsp
high. If you want to use a different size, call {\bf SetToolBitmapSize}\rtfsp
as the demo shows, before adding tools to the button bar. Don't supply more than
one bitmap for each tool, because the toolbar generates all three images (normal,
depressed and checked) from the single bitmap you give it.
Mouse click events for a given button are sent to a member called
\rtfsp{\bf OnLeftClick}, and so an application must derive from wxToolBar in order
to use it. The application can also handle {\bf OnMouseEnter} events for
the tools, to give the user extra feedback about the tools as the mouse
moves over them.
To intercept
\subsection{Using the toolbar library}
Include one of the files {\tt tbarsmpl.h, tbar95.h, tbarmsw.h}.
Include {\tt "wx/toolbar.h"}, or if using a class directly, one of:
Example of toolbar use are given in the sample programs tbarsmpl,
tbarmsw and tbar95.
\begin{itemize}\itemsep=0pt
\item {\tt "wx/msw/tbarmsw.h} for wxToolBarMSW
\item {\tt "wx/msw/tbar95.h} for wxToolBar95
\item {\tt "wx/tbarsmpl.h} for wxToolBarSimple
\end{itemize}
Each sample creates a main window, and two toolbars: a floating toolbar
with 24 tools, and a toolbar along the top of the main drawing window, divided into groups.
The test program defines a general-purpose derived frame called
\rtfsp{\bf wxFrameWithToolBar} which can manage a frame with one main subwindow
and one horizontal toolbar.
Note that one of the bitmaps on the floating toolbar is a small version of the
main graphic: this demonstrates how a memory device context can be used to
draw into a bitmap. An application which allowed the user to build up a symbol
library dynamically might create this kind of bitmap.
Left clicks and movements over the toolbars are intercepted and information
is displayed on the status line.
The following fragment illustrates the essence of creating a toolbar.
Example of toolbar use are given in the sample program ``toolbar''. The
source is given below.
{\small
\begin{verbatim}
/////////////////////////////////////////////////////////////////////////////
// Name: test.cpp
// Purpose: wxToolBar sample
// Author: Julian Smart
// Modified by:
// Created: 04/01/98
// RCS-ID: $Id$
// Copyright: (c) Julian Smart
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// For compilers that support precompilation, includes "wx/wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif
#include "wx/toolbar.h"
#include "test.h"
IMPLEMENT_APP(MyApp)
#ifdef __X__
// TODO: include XBM or XPM icons for X apps
#endif
// The `main program' equivalent, creating the windows and returning the
// main frame
bool MyApp::OnInit(void)
{
// Create the main frame window
MyFrame* frame = new MyFrame(NULL, -1, "wxToolBar Sample",
wxPoint(100, 100), wxSize(450, 300));
// Give it a status line
frame->CreateStatusBar();
// Give it an icon
#ifdef __WXMSW__
frame->SetIcon(wxIcon("mondrian"));
#endif
#ifdef __X__
frame->SetIcon(wxIcon("mondrian.xbm"));
#endif
// Make a menubar
wxMenu *fileMenu = new wxMenu;
fileMenu->Append(wxID_EXIT, "E&xit");
wxMenu *helpMenu = new wxMenu;
helpMenu->Append(wxID_HELP, "&About");
wxMenuBar* menuBar = new wxMenuBar;
menuBar->Append(fileMenu, "&File");
menuBar->Append(helpMenu, "&Help");
// Associate the menu bar with the frame
frame->SetMenuBar(menuBar);
// Create the toolbar
frame->CreateToolBar(wxNO_BORDER|wxHORIZONTAL|wxTB_FLAT, ID_TOOLBAR);
InitToolbar(frame->GetToolBar());
// Force a resize. This should probably be replaced by a call to a wxFrame
// function that lays out default decorations and the remaining content window.
frame->OnSize(wxSizeEvent(wxSize(-1, -1), frame->GetId()));
frame->Show(TRUE);
frame->SetStatusText("Hello, wxWindows");
SetTopWindow(frame);
return TRUE;
}
bool MyApp::InitToolbar(wxToolBar* toolBar)
{
toolBar->SetMargins(5, 5);
// Set up toolbar
wxBitmap* toolBarBitmaps[8];
#ifdef __WXMSW__
toolBarBitmaps[0] = new wxBitmap("icon1");
toolBarBitmaps[1] = new wxBitmap("icon2");
toolBarBitmaps[2] = new wxBitmap("icon3");
...
toolBarBitmaps[3] = new wxBitmap("icon4");
toolBarBitmaps[4] = new wxBitmap("icon5");
toolBarBitmaps[5] = new wxBitmap("icon6");
toolBarBitmaps[6] = new wxBitmap("icon7");
toolBarBitmaps[7] = new wxBitmap("icon8");
#endif
#ifdef __X__
// TODO
toolBarBitmaps[0] = new wxBitmap(...);
toolBarBitmaps[1] = new wxBitmap(...);
toolBarBitmaps[2] = new wxBitmap(...);
toolBarBitmaps[3] = new wxBitmap(...);
toolBarBitmaps[4] = new wxBitmap(...);
toolBarBitmaps[5] = new wxBitmap(...);
toolBarBitmaps[6] = new wxBitmap(...);
toolBarBitmaps[7] = new wxBitmap(...);
#endif
toolBarFrame = new wxFrame(NULL, "Tools", -1, wxPoint(0, 0), wxSize(300, 200),
wxDEFAULT_FRAME_STYLE | wxSTAY_ON_TOP);
#ifdef __WXMSW__
int width = 24;
#else
int width = 16;
#endif
int offX = 5;
int currentX = 5;
// 5 rows
toolBar = new TestToolBar(toolBarFrame, -1, wxPoint(10, 10), wxSize(-1, -1), 0, wxVERTICAL, 5);
toolBar->SetMargins(2, 2);
toolBar->AddTool(wxID_NEW, *(toolBarBitmaps[0]), wxNullBitmap, FALSE, (float)currentX, -1, NULL, "New file");
currentX += width + 5;
toolBar->AddTool(wxID_OPEN, *(toolBarBitmaps[1]), wxNullBitmap, FALSE, (float)currentX, -1, NULL, "Open file");
currentX += width + 5;
toolBar->AddTool(wxID_SAVE, *(toolBarBitmaps[2]), wxNullBitmap, FALSE, (float)currentX, -1, NULL, "Save file");
currentX += width + 5;
toolBar->AddSeparator();
toolBar->AddTool(wxID_COPY, *(toolBarBitmaps[3]), wxNullBitmap, FALSE, (float)currentX, -1, NULL, "Copy");
currentX += width + 5;
toolBar->AddTool(wxID_CUT, *(toolBarBitmaps[4]), wxNullBitmap, FALSE, (float)currentX, -1, NULL, "Cut");
currentX += width + 5;
toolBar->AddTool(wxID_PASTE, *(toolBarBitmaps[5]), wxNullBitmap, FALSE, (float)currentX, -1, NULL, "Paste");
currentX += width + 5;
toolBar->AddSeparator();
toolBar->AddTool(wxID_PRINT, *(toolBarBitmaps[6]), wxNullBitmap, FALSE, (float)currentX, -1, NULL, "Print");
currentX += width + 5;
toolBar->AddSeparator();
toolBar->AddTool(wxID_HELP, *(toolBarBitmaps[7]), wxNullBitmap, FALSE, currentX, -1, NULL, "Help");
for (int i = 10; i < 25; i++)
toolBar->AddTool(i, toolBarBitmaps[i], NULL, TRUE);
toolBar->Realize();
toolBar->Layout();
float maxWidth, maxHeight;
wxSize size(toolBar->GetMaxSize());
toolBarFrame->SetClientSize(maxSize.x, maxSize.y);
toolBarFrame->Show(TRUE);
// Can delete the bitmaps since they're reference counted
int i;
for (i = 0; i < 8; i++)
delete toolBarBitmaps[i];
return TRUE;
}
// wxID_HELP will be processed for the 'About' menu and the toolbar help button.
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_MENU(wxID_EXIT, MyFrame::OnQuit)
EVT_MENU(wxID_HELP, MyFrame::OnAbout)
EVT_CLOSE(MyFrame::OnCloseWindow)
EVT_TOOL_RANGE(wxID_OPEN, wxID_PASTE, MyFrame::OnToolLeftClick)
EVT_TOOL_ENTER(ID_TOOLBAR, MyFrame::OnToolEnter)
END_EVENT_TABLE()
// Define my frame constructor
MyFrame::MyFrame(wxFrame* parent, wxWindowID id, const wxString& title, const wxPoint& pos,
const wxSize& size, long style):
wxFrame(parent, id, title, pos, size, style)
{
m_textWindow = new wxTextCtrl(this, -1, "", wxPoint(0, 0), wxSize(-1, -1), wxTE_MULTILINE);
}
void MyFrame::OnQuit(wxCommandEvent& event)
{
Close(TRUE);
}
void MyFrame::OnAbout(wxCommandEvent& event)
{
(void)wxMessageBox("wxWindows wxToolBar demo\n", "About wxToolBar");
}
// Define the behaviour for the frame closing
// - must delete all frames except for the main one.
void MyFrame::OnCloseWindow(wxCloseEvent& event)
{
Destroy();
}
void MyFrame::OnToolLeftClick(wxCommandEvent& event)
{
wxString str;
str.Printf("Clicked on tool %d", event.GetId());
SetStatusText(str);
}
void MyFrame::OnToolEnter(wxCommandEvent& event)
{
if (event.GetSelection() > -1)
{
wxString str;
str.Printf("This is tool number %d", event.GetSelection());
SetStatusText(str);
}
else
SetStatusText("");
}
\end{verbatim}
}

View File

@@ -1585,10 +1585,8 @@ handling of pages and ranges.
\wxheading{See also}
\helpref{wxWindow::SetScrollPos}{wxwindowsetscrollpos},\rtfsp
\helpref{wxWindow::SetScrollRange}{wxwindowsetscrollpage},\rtfsp
\helpref{wxWindow::GetScrollPos}{wxwindowsetscrollpos},\rtfsp
\helpref{wxWindow::GetScrollRange}{wxwindowsetscrollrange},\rtfsp
\helpref{wxWindow::GetScrollPage}{wxwindowsetscrollrange},\rtfsp
\helpref{wxWindow::GetScrollPage}{wxwindowsetscrollpage},\rtfsp
\helpref{wxScrollBar}{wxscrollbar}, \helpref{wxScrolledWindow}{wxscrolledwindow}
\end{comment}
@@ -1615,8 +1613,7 @@ application to take note of scrollbar attributes and redraw contents accordingly
\helpref{wxWindow::SetScrollbar}{wxwindowsetscrollbar},\rtfsp
\helpref{wxWindow::GetScrollPos}{wxwindowsetscrollpos},\rtfsp
\helpref{wxWindow::GetScrollRange}{wxwindowsetscrollrange},\rtfsp
\helpref{wxWindow::GetScrollThumb}{wxwindowsetscrollthumb},\rtfsp
\helpref{wxWindow::GetScrollThumb}{wxwindowgetscrollthumb},\rtfsp
\helpref{wxScrollBar}{wxscrollbar}, \helpref{wxScrolledWindow}{wxscrolledwindow}
\begin{comment}
@@ -1647,8 +1644,7 @@ and usually the scrollbar will be automatically hidden.
\helpref{wxWindow::SetScrollPos}{wxwindowsetscrollpos},\rtfsp
\helpref{wxWindow::SetScrollPage}{wxwindowsetscrollpage},\rtfsp
\helpref{wxWindow::GetScrollPos}{wxwindowsetscrollpos},\rtfsp
\helpref{wxWindow::GetScrollRange}{wxwindowsetscrollrange},\rtfsp
\helpref{wxWindow::GetScrollPage}{wxwindowsetscrollrange},\rtfsp
\helpref{wxWindow::GetScrollPage}{wxwindowsetscrollpage},\rtfsp
\helpref{wxScrollBar}{wxscrollbar}, \helpref{wxScrolledWindow}{wxscrolledwindow}
\end{comment}

View File

@@ -19,7 +19,7 @@ just before the first call to display something.
\wxheading{See also}
\helpref{wxHelpControllerBase}{wxwinhelpcontrollerbase}
\helpref{wxHelpControllerBase}{wxhelpcontrollerbase}
\wxheading{Include file}

View File

@@ -1,15 +1,9 @@
; This file is maintained by HCW. Do not modify this file directly.
[OPTIONS]
HCW=0
COMPRESS=60 Hall Zeck
LCID=0x809 0x0 0x0 ;English (United Kingdom)
REPORT=Yes
COMPRESS=HIGH
CONTENTS=Contents
TITLE=wxWindows Manual
BMROOT=..\..\..\..\wxwind~1\docs\latex\wx
BMROOT=Assume that bitmaps are where the source is
HLP=.\wx.hlp
[FILES]
wx.rtf

View File

@@ -1,593 +1,525 @@
\section{\class{wxString}}\label{wxstring}
\wxheading{Derived from}
None
\wxheading{See also}
\overview{Overview}{wxstringoverview}
\helpref{Member functions by category}{wxstringcategories}
{\bf CAVE:} The description of the memberfunctions is very
sparse in the moment. It will be extended in the next
version of the help file. The list of memberfunctions
is complete.
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxString::wxString}\label{wxstringconstruct}
\func{void}{wxString}{\param{void}{}}\\
\func{void}{wxString}{\param{const wxString\&}{ x}}\\
\func{void}{wxString}{\param{const wxSubString\&}{ x}}\\
\func{void}{wxString}{\param{const char*}{ t}}\\
\func{void}{wxString}{\param{const char*}{ t}, \param{int}{ len}}\\
\func{void}{wxString}{\param{char}{ c}}
\func{}{wxString}{\void}
Constructors.
Default constructor.
\func{}{wxString}{\param{const wxString\&}{ x}}
Copy constructor.
\func{}{wxString}{\param{char}{ ch}, \param{size\_t}{ n = 1}}
Constructs a string of {\it n} copies of character {\it ch}.
\func{}{wxString}{\param{const char*}{ psz}, \param{size\_t}{ nLength = STRING\_MAXLEN}}
Takes first {\it nLength} characters from the C string {\it psz}.
The default value of STRING\_MAXLEN means take all the string.
\func{}{wxString}{\param{const unsigned char*}{ psz}, \param{size\_t}{ nLength = STRING\_MAXLEN}}
For compilers using unsigned char: takes first {\it nLength} characters from the C string {\it psz}.
The default value of STRING\_MAXLEN means take all the string.
\func{}{wxString}{\param{const wchar\_t*}{ psz}}
Constructs a string from the wide (UNICODE) string.
\membersection{wxString::\destruct{wxString}}\label{wxstringdestruct}
\func{void}{\destruct{wxString}}{\void}
\func{}{\destruct{wxString}}{\void}
String destructor.
String destructor. Note that this is not virtual, so wxString must not be inherited from.
\membersection{wxString::Alloc}\label{wxstringAlloc}
\func{void}{Alloc}{\param{int}{ newsize}}
\func{void}{Alloc}{\param{uint}{ newsize}}
Preallocate some space for wxString.
\membersection{wxString::Allocation}\label{wxstringAllocation}
\func{int}{Allocation}{\param{void}{}} \param{ const}{}
Report current allocation (not length!).
Preallocate some space for wxString. Only works if the data of this string is not shared.
\membersection{wxString::Append}\label{wxstringAppend}
\func{wxString\&}{Append}{\param{const char*}{ cs}}\\
\func{wxString\&}{Append}{\param{const wxString\&}{ s}}
\func{wxString\&}{Append}{\param{const char*}{ psz}}
Concatenation.
Concatenates {\it psz} to this string, returning a reference to it.
\func{wxString\&}{Append}{\param{char}{ c}, \param{int}{ rep = 1}}
\func{wxString\&}{Append}{\param{char}{ ch}, \param{int}{ count = 1}}
Append {\it c}, {\it rep} times
Concatenates character {\it ch} to this string, {\it count} times, returning a reference
to it.
\membersection{wxString::After}\label{wxstringAfter}
\func{wxSubString}{After}{\param{int}{ pos}}\\
\func{wxSubString}{After}{\param{const wxString\&}{ x}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{After}{\param{const wxSubString\&}{ x}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{After}{\param{const char*}{ t}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{After}{\param{char}{ c}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{After}{\param{const wxRegex\&}{ r}, \param{int}{ startpos = 0}}
\constfunc{wxString}{After}{\param{char}{ ch}}
\membersection{wxString::At}\label{wxstringAt}
\func{wxSubString}{At}{\param{int}{ pos}, \param{int}{ len}}\\
\func{wxSubString}{operator ()}{\param{int}{ pos}, \param{int}{ len}}\\
\func{wxSubString}{At}{\param{const wxString\&}{ x}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{At}{\param{const wxSubString\&}{ x}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{At}{\param{const char*}{ t}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{At}{\param{char}{ c}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{At}{\param{const wxRegex\&}{ r}, \param{int}{ startpos = 0}}
wxSubString extraction.
Note that you can't take a substring of a const wxString, since
this leaves open the possiblility of indirectly modifying the
wxString through the wxSubString.
Gets all the characters after the first occurence of {\it ch}.
Returns the empty string if {\it ch} is not found.
\membersection{wxString::Before}\label{wxstringBefore}
\func{wxSubString}{Before}{\param{int}{ pos}}\\
\func{wxSubString}{Before}{\param{const wxString\&}{ x}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{Before}{\param{const wxSubString\&}{ x}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{Before}{\param{const char*}{ t}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{Before}{\param{char}{ c}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{Before}{\param{const wxRegex\&}{ r}, \param{int}{ startpos = 0}}
\constfunc{wxString}{Before}{\param{char}{ ch}}
\membersection{wxString::Capitalize}\label{wxstringCapitalize}
Gets all characters before the last occurence of {\it ch}.
Returns empty string if {\it ch} is not found.
\func{void}{Capitalize}{\param{void}{}}\\
\func{friend wxString}{Capitalize}{\param{wxString\&}{ x}}
\membersection{wxString::Cmp}\label{wxstringcmp}
\membersection{wxString::Cat}\label{wxstringCat}
\constfunc{int}{Cmp}{\param{const char*}{ psz}}
\func{friend void}{Cat}{\param{const wxString\&}{ a}, \param{const wxString\&}{ b}, \param{wxString\&}{ c}}\\
\func{friend void}{Cat}{\param{const wxString\&}{ a}, \param{const wxSubString\&}{ b}, \param{wxString\&}{ c}}\\
\func{friend void}{Cat}{\param{const wxString\&}{ a}, \param{const char*}{ b}, \param{wxString\&}{ c}}\\
\func{friend void}{Cat}{\param{const wxString\&}{ a}, \param{char}{ b}, \param{wxString\&}{ c}}\\
\func{friend void}{Cat}{\param{const wxSubString\&}{ a}, \param{const wxString\&}{ b}, \param{wxString\&}{ c}}\\
\func{friend void}{Cat}{\param{const wxSubString\&}{ a}, \param{const wxSubString\&}{ b}, \param{wxString\&}{ c}}\\
\func{friend void}{Cat}{\param{const wxSubString\&}{ a}, \param{const char*}{ b}, \param{wxString\&}{ c}}\\
\func{friend void}{Cat}{\param{const wxSubString\&}{ a}, \param{char}{ b}, \param{wxString\&}{ c}}\\
\func{friend void}{Cat}{\param{const char*}{ a}, \param{const wxString\&}{ b}, \param{wxString\&}{ c}}\\
\func{friend void}{Cat}{\param{const char*}{ a}, \param{const wxSubString\&}{ b}, \param{wxString\&}{ c}}\\
\func{friend void}{Cat}{\param{const char*}{ a}, \param{const char*}{ b}, \param{wxString\&}{ c}}\\
\func{friend void}{Cat}{\param{const char*}{ a}, \param{char}{ b}, \param{wxString\&}{ c}}
Case-sensitive comparison.
Concatenate first two arguments, store the result in the last argument.
Returns 0 if equal, +1 if greater or -1 if less.
\func{friend void}{Cat}{\param{const wxString\&}{ a}, \param{const wxString\&}{ b}, \param{const wxString\&}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const wxString\&}{ a}, \param{const wxString\&}{ b}, \param{const wxSubString\&}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const wxString\&}{ a}, \param{const wxString\&}{ b}, \param{const char*}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const wxString\&}{ a}, \param{const wxString\&}{ b}, \param{char}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const wxString\&}{ a}, \param{const wxSubString\&}{ b}, \param{const wxString\&}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const wxString\&}{ a}, \param{const wxSubString\&}{ b}, \param{const wxSubString\&}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const wxString\&}{ a}, \param{const wxSubString\&}{ b}, \param{const char*}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const wxString\&}{ a}, \param{const wxSubString\&}{ b}, \param{char}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const wxString\&}{ a}, \param{const char*}{ b}, \param{const wxString\&}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const wxString\&}{ a}, \param{const char*}{ b}, \param{const wxSubString\&}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const wxString\&}{ a}, \param{const char*}{ b}, \param{const char*}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const wxString\&}{ a}, \param{const char*}{ b}, \param{char}{ c}, \param{wxString\&}{ d}}
See also CmpNoCase, IsSameAs.
\func{friend void}{Cat}{\param{const char*}{ a}, \param{const wxString\&}{ b}, \param{const wxString\&}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const char*}{ a}, \param{const wxString\&}{ b}, \param{const wxSubString\&}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const char*}{ a}, \param{const wxString\&}{ b}, \param{const char*}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const char*}{ a}, \param{const wxString\&}{ b}, \param{char}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const char*}{ a}, \param{const wxSubString\&}{ b}, \param{const wxString\&}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const char*}{ a}, \param{const wxSubString\&}{ b}, \param{const wxSubString\&}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const char*}{ a}, \param{const wxSubString\&}{ b}, \param{const char*}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const char*}{ a}, \param{const wxSubString\&}{ b}, \param{char}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const char*}{ a}, \param{const char*}{ b}, \param{const wxString\&}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const char*}{ a}, \param{const char*}{ b}, \param{const wxSubString\&}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const char*}{ a}, \param{const char*}{ b}, \param{const char*}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const char*}{ a}, \param{const char*}{ b}, \param{char}{ c}, \param{wxString\&}{ d}}
\membersection{wxString::CmpNoCase}\label{wxstringcmpnocase}
Double concatenation, by request. (Yes, there are too many versions,
but if one is supported, then the others should be too).
Concatenate the first 3 args, store the result in the last argument.
\constfunc{int}{CmpNoCase}{\param{const char*}{ psz}}
\membersection{wxString::Chars}\label{wxstringChars}
Case-insensitive comparison.
\func{const char*}{Chars}{\param{void}{}} \param{ const}{}
Returns 0 if equal, +1 if greater or -1 if less.
Conversion.
See also Cmp, IsSameAs.
\membersection{wxString::CompareTo}\label{wxstringCompareTo}
\begin{verbatim}
#define NO_POS ((int)(-1)) // undefined position
enum CaseCompare {exact, ignoreCase};
enum caseCompare {exact, ignoreCase};
\end{verbatim}
\func{int}{CompareTo}{\param{const char*}{ cs}, \param{CaseCompare}{ cmp = exact}} \param{ const}{}\\
\func{int}{CompareTo}{\param{const wxString\&}{ cs}, \param{CaseCompare}{ cmp = exact}} \param{ const}{}
\constfunc{int}{CompareTo}{\param{const char*}{ psz}, \param{caseCompare}{ cmp = exact}}
Case-sensitive comparison. Returns 0 if equal, 1 if greater or -1 if less.
\membersection{wxString::Contains}\label{wxstringContains}
\func{bool}{Contains}{\param{char}{ c}} \param{ const}{}\\
\func{bool}{Contains}{\param{const wxString\&}{ y}} \param{ const}{}\\
\func{bool}{Contains}{\param{const wxSubString\&}{ y}} \param{ const}{}\\
\func{bool}{Contains}{\param{const char*}{ t}} \param{ const}{}\\
\func{bool}{Contains}{\param{const wxRegex\&}{ r}} \param{ const}{}
\func{bool}{Contains}{\param{const wxString\&}{ str}}
Return 1 if target appears anyhere in wxString; else 0.
Returns 1 if target appears anyhere in wxString; else 0.
\func{bool}{Contains}{\param{const char*}{ pat}, \param{CaseCompare}{ cmp}} \param{ const}{}\\
\func{bool}{Contains}{\param{const wxString\&}{ pat}, \param{CaseCompare}{ cmp}} \param{ const}{}
\membersection{wxString::Empty}\label{wxstringempty}
Case dependent/independent variation .
\func{void}{Empty}{\void}
\func{bool}{Contains}{\param{char}{ c}, \param{int}{ pos}} \param{ const}{}\\
\func{bool}{Contains}{\param{const wxString\&}{ y}, \param{int}{ pos}} \param{ const}{}\\
\func{bool}{Contains}{\param{const wxSubString\&}{ y}, \param{int}{ pos}} \param{ const}{}\\
\func{bool}{Contains}{\param{const char*}{ t}, \param{int}{ pos}} \param{ const}{}\\
\func{bool}{Contains}{\param{const wxRegex\&}{ r}, \param{int}{ pos}} \param{ const}{}
Reinitializes the string and frees the data.
Return 1 if the target appears anywhere after position {\it pos} (or
before, if {\it pos} is negative) in wxString; else 0.
\membersection{wxString::Find}\label{wxstringfind}
\membersection{wxString::Copy}\label{wxstringCopy}
\constfunc{int}{Find}{\param{char}{ ch}, \param{bool}{ fromEnd = FALSE}}
\func{wxString}{Copy}{\param{void}{}} \param{ const}{}
Searches for the given character. Returns the starting index, or -1 if not found.
Duplication.
\constfunc{int}{Find}{\param{const char*}{ sz}}
\membersection{wxString::Del}\label{wxstringDel}
Searches for the given string. Returns the starting index, or -1 if not found.
\func{wxString\&}{Del}{\param{int}{ pos}, \param{int}{ len}}
\membersection{wxString::First}\label{wxstringfirst}
Delete {\it len} characters starting at {\it pos}.
\func{size\_t}{First}{\param{char}{ c}}
\func{wxString\&}{Del}{\param{const wxString\&}{ y}, \param{int}{ startpos = 0}}\\
\func{wxString\&}{Del}{\param{const wxSubString\&}{ y}, \param{int}{ startpos = 0}}\\
\func{wxString\&}{Del}{\param{const char*}{ t}, \param{int}{ startpos = 0}}\\
\func{wxString\&}{Del}{\param{char}{ c}, \param{int}{ startpos = 0}}\\
\func{wxString\&}{Del}{\param{const wxRegex\&}{ r}, \param{int}{ startpos = 0}}
\constfunc{size\_t}{First}{\param{const char*}{ psz}}
Delete the first occurrence of target after {\it startpos}.
\constfunc{size\_t}{First}{\param{const wxString\&}{ str}}
\membersection{wxString::DownCase}\label{wxstringDownCase}
\constfunc{size\_t}{First}{\param{const char}{ ch}}
\func{void}{Downcase}{\param{void}{}}\\
\func{friend wxString}{Downcase}{\param{wxString\&}{ x}}
Returns the first occurrence of the item.
\membersection{wxString::Elem}\label{wxstringElem}
\membersection{wxString::GetChar}\label{wxstringgetchar}
\func{char}{Elem}{\param{int}{ i}} \param{ const}{}
\constfunc{char}{GetChar}{\param{size\_t}{ n}}
Element extraction.
\membersection{wxString::Empty}\label{wxstringEmpty}
\func{int}{Empty}{\param{void}{}} \param{ const}{}
\membersection{wxString::Error}\label{wxstringError}
\func{void}{Error}{\param{const char*}{ msg}} \param{ const}{}
\membersection{wxString::First}\label{wxstringFirst}
\func{int}{First}{\param{char}{ c}} \param{ const}{}\\
\func{int}{First}{\param{const char*}{ cs}} \param{ const}{}\\
\func{int}{First}{\param{const wxString\&}{ cs}} \param{ const}{}
Return first or last occurrence of item.
\membersection{wxString::Firstchar}\label{wxstringFirstchar}
\func{char}{Firstchar}{\param{void}{}} \param{ const}{}
Element extraction.
\membersection{wxString::Freq}\label{wxstringFreq}
\func{int}{Freq}{\param{char}{ c}} \param{ const}{}\\
\func{int}{Freq}{\param{const wxString\&}{ y}} \param{ const}{}\\
\func{int}{Freq}{\param{const wxSubString\&}{ y}} \param{ const}{}\\
\func{int}{Freq}{\param{const char*}{ t}} \param{ const}{}
Return number of occurrences of target in wxString.
\membersection{wxString::From}\label{wxstringFrom}
\func{wxSubString}{From}{\param{int}{ pos}}\\
\func{wxSubString}{From}{\param{const wxString\&}{ x}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{From}{\param{const wxSubString\&}{ x}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{From}{\param{const char*}{ t}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{From}{\param{char}{ c}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{From}{\param{const wxRegex\&}{ r}, \param{int}{ startpos = 0}}
Returns the character at position {\it n} (read-only).
\membersection{wxString::GetData}\label{wxstringGetData}
\func{char*}{GetData}{\param{void}{}}
\constfunc{const char*}{GetData}{\void}
wxWindows compatibility conversion.
wxWindows compatibility conversion. Returns a constant pointer to the data in the string.
\membersection{wxString::GSub}\label{wxstringGSub}
\func{int}{GSub}{\param{const wxString\&}{ pat}, \param{const wxString\&}{ repl}}\\
\func{int}{GSub}{\param{const wxSubString\&}{ pat}, \param{const wxString\&}{ repl}}\\
\func{int}{GSub}{\param{const char*}{ pat}, \param{const wxString\&}{ repl}}\\
\func{int}{GSub}{\param{const char*}{ pat}, \param{const char*}{ repl}}\\
\func{int}{GSub}{\param{const wxRegex\&}{ pat}, \param{const wxString\&}{ repl}}
\membersection{wxString::GetWritableChar}\label{wxstringgetwritablechar}
Global substitution: substitute all occurrences of {\it pat} with {\it repl},
returning the number of matches.
\func{char\&}{GetWritableChar}{\param{size\_t}{ n}}
Returns a reference to the character at position {\it n}.
\membersection{wxString::GetWriteBuf}\label{wxstringgetwritebuf}
\func{char*}{GetWriteBuf}{\param{uint}{ len}}
Returns a writable buffer of at least {\it len} bytes.
Call \helpref{wxString::UngetWriteBuf}{wxstringungetwritebuf} as soon as possible
to put the string back into a reasonable state.
\membersection{wxString::Index}\label{wxstringIndex}
\func{int}{Index}{\param{char}{ c}, \param{int}{ startpos = 0}} \param{ const}{}\\
\func{int}{Index}{\param{const wxString\&}{ y}, \param{int}{ startpos = 0}} \param{ const}{}\\
\func{int}{Index}{\param{const wxString\&}{ y}, \param{int}{ startpos}, \param{CaseCompare}{ cmp}} \param{ const}{}\\
\func{int}{Index}{\param{const wxSubString\&}{ y}, \param{int}{ startpos = 0}} \param{ const}{}\\
\func{int}{Index}{\param{const char*}{ t}, \param{int}{ startpos = 0}} \param{ const}{}\\
\func{int}{Index}{\param{const char*}{ t}, \param{int}{ startpos}, \param{CaseCompare}{ cmp}} \param{ const}{}\\
\func{int}{Index}{\param{const wxRegex\&}{ r}, \param{int}{ startpos = 0}} \param{ const}{}
\constfunc{size\_t}{Index}{\param{char}{ ch}, \param{int}{ startpos = 0}}
Return the position of target in string, or -1 for failure.
Same as \helpref{wxString::Find}{wxstringfind}.
\constfunc{size\_t}{Index}{\param{const char*}{ sz}}
Same as \helpref{wxString::Find}{wxstringfind}.
\constfunc{size\_t}{Index}{\param{const char*}{ sz}, \param{bool}{ caseSensitive = TRUE}, \param{bool}{ fromEnd = FALSE}}
Search the element in the array, starting from either side.
If {\it fromEnd} is TRUE, reverse search direction.
If {\bf caseSensitive}, comparison is case sensitive (the default).
Returns the index of the first item matched, or NOT\_FOUND.
\membersection{wxString::Insert}\label{wxstringInsert}
\func{wxString\&}{Insert}{\param{int}{ pos}, \param{const char*}{ s}}\\
\func{wxString\&}{Insert}{\param{int}{ pos}, \param{const wxString\&}{ s}}
\func{void}{Insert}{\param{const wxString\&}{ str}, \param{uint}{ index}}
Insertion.
Add new element at the given position.
\membersection{wxString::IsAscii}\label{wxstringIsAscii}
\func{int}{IsAscii}{\param{void}{}} \param{ const}{}
\constfunc{bool}{IsAscii}{\void}
Classification (should be capital, because of ctype.h macros).
Returns TRUE if the string is ASCII.
\membersection{wxString::IsDefined}\label{wxstringIsDefined}
\membersection{wxString::IsEmpty}\label{wxstringisempty}
\func{int}{IsDefined}{\param{void}{}} \param{ const}{}
\constfunc{bool}{IsEmpty}{\void}
Classification (should be capital, because of ctype.h macros).
Returns TRUE if the string is NULL.
\membersection{wxString::IsNull}\label{wxstringIsNull}
\func{int}{IsNull}{\param{void}{}} \param{ const}{}
\constfunc{bool}{IsNull}{\void}
Classification (should be capital, because of ctype.h macros).
Returns TRUE if the string is NULL (same as IsEmpty).
\membersection{wxString::IsNumber}\label{wxstringIsNumber}
\func{int}{IsNumber}{\param{void}{}} \param{ const}{}
\constfunc{bool}{IsNumber}{\void}
Classification (should be capital, because of ctype.h macros).
Returns TRUE if the string is a number.
\membersection{wxString::IsSameAs}\label{wxstringissameas}
\constfunc{bool}{IsSameAs}{\param{const char*}{ psz}, \param{bool}{ caseSensitive = TRUE}}
Test for string equality, case-sensitive (default) or not.
caseSensitive is TRUE by default (case matters).
Returns TRUE if strings are equal, FALSE otherwise.
See also Cmp, CmpNoCase.
\membersection{wxString::IsWord}\label{wxstringIsWord}
\func{int}{IsWord}{\param{void}{}} \param{ const}{}
\constfunc{bool}{IsWord}{\void}
Classification (should be capital, because of ctype.h macros).
Returns TRUE if the string is a word. TODO: what's the definition of a word?
\membersection{wxString::Last}\label{wxstringLast}
\func{int}{Last}{\param{char}{ c}} \param{ const}{}\\
\func{int}{Last}{\param{const char*}{ cs}} \param{ const}{}\\
\func{int}{Last}{\param{const wxString\&}{ cs}} \param{ const}{}
\constfunc{char}{Last}{\void}
First or last occurrence of item.
Returns the last character.
\membersection{wxString::Lastchar}\label{wxstringLastchar}
\func{char\&}{Last}{\void}
\func{char}{Lastchar}{\param{void}{}} \param{ const}{}
Returns a reference to the last character (writable).
Element extraction.
\membersection{wxString::Left}\label{wxstringleft}
\membersection{wxString::Length}\label{wxstringLength}
\constfunc{wxString}{Left}{\param{size\_t}{ count}}
\func{unsigned int}{Length}{\param{void}{}} \param{ const}{}
Returns the first {\it count} characters.
\constfunc{wxString}{Left}{\param{char}{ ch}}
Returns all characters before the first occurence of {\it ch}.
Returns the whole string if {\it ch} is not found.
\membersection{wxString::Len}\label{wxstringlen}
\constfunc{size\_t}{Len}{\void}
Returns the length of the string.
\membersection{wxString::Length}\label{wxstringlength}
\constfunc{size\_t}{Length}{\void}
Returns the length of the string (same as Len).
\membersection{wxString::LowerCase}\label{wxstringLowerCase}
\func{void}{LowerCase}{\param{void}{}}
\func{void}{LowerCase}{\void}
Same as MakeLower.
\membersection{wxString::MakeLower}\label{wxstringmakelower}
\func{void}{MakeLower}{\void}
Converts all characters to lower case.
\membersection{wxString::MakeUpper}\label{wxstringmakeupper}
\func{void}{MakeUpper}{\void}
Converts all characters to upper case.
\membersection{wxString::Matches}\label{wxstringMatches}
\func{bool}{Matches}{\param{char}{ c}, \param{int}{ pos = 0}} \param{ const}{}\\
\func{bool}{Matches}{\param{const wxString\&}{ y}, \param{int}{ pos = 0}} \param{ const}{}\\
\func{bool}{Matches}{\param{const wxSubString\&}{ y}, \param{int}{ pos = 0}} \param{ const}{}\\
\func{bool}{Matches}{\param{const char*}{ t}, \param{int}{ pos = 0}} \param{ const}{}\\
\func{bool}{Matches}{\param{const wxRegex\&}{ r}, \param{int}{ pos = 0}} \param{ const}{}
\constfunc{bool}{Matches}{\param{const char*}{ szMask}}
Return 1 if target appears at position {\it pos} in wxString; else 0.
Returns TRUE if the string contents matches a mask containing '*' and '?'.
\membersection{wxString::OK}\label{wxstringOK}
\membersection{wxString::Mid}\label{wxstringmid}
\func{int}{OK}{\param{void}{}} \param{ const}{}
\constfunc{wxString}{Mid}{\param{size\_t}{ first}, \param{size\_t}{ count = STRING\_MAXLEN}}
Returns a substring starting at {\it first}, with length {\it count}, or the rest of
the string if {\it count} is the default value.
\membersection{wxString::Pad}\label{wxstringpad}
\func{wxString\&}{Pad}{\param{size\_t}{ count}, \param{char}{ pad = ' '}, \param{bool}{ fromRight = TRUE}}
Adds {\it count} copies of {\it pad} to the beginning, or to the end of the string (the default).
Removes spaces from the left or from the right (default).
\membersection{wxString::Prepend}\label{wxstringPrepend}
\func{wxString\&}{Prepend}{\param{const wxString\&}{ y}}\\
\func{wxString\&}{Prepend}{\param{const wxSubString\&}{ y}}\\
\func{wxString\&}{Prepend}{\param{const char*}{ t}}\\
\func{wxString\&}{Prepend}{\param{char}{ c}}
\func{wxString\&}{Prepend}{\param{const wxString\&}{ str}}
Prepend.
Prepends {\it str} to this string, returning a reference to this string.
\func{wxString\&}{Prepend}{\param{char}{ c}, \param{int}{ rep=1}}
\membersection{wxString::Printf}\label{wxstringprintf}
Prepend {\it c}, {\it rep} times.
\membersection{wxString::Readline}\label{wxstringReadline}
\func{int}{Printf}{\param{const char* }{pszFormat}, \param{}{...}}
\func{friend int}{Readline}{\param{istream\&}{ s}, \param{wxString\&}{ x},
\param{char}{ terminator = '$\backslash$n'},
\param{int}{ discard\_terminator = 1}}\\
\func{friend int}{Readline}{\param{FILE *}{ f}, \param{wxString\&}{ x},
\param{char}{ terminator = '$\backslash$n'},
\param{int}{ discard\_terminator = 1}}
Similar to sprintf. Returns the number of characters written, or an integer less than zero
on error.
\membersection{wxString::PrintfV}\label{wxstringprintfv}
\func{int}{PrintfV}{\param{const char* }{pszFormat}, \param{va\_list}{ argPtr}}
Similar to vprintf. Returns the number of characters written, or an integer less than zero
on error.
\membersection{wxString::Remove}\label{wxstringRemove}
\func{wxString\&}{RemoveLast}{\param{void}{}}\\
\func{wxString\&}{Remove}{\param{int}{ pos}}\\
\func{wxString\&}{Remove}{\param{int}{ pos}, \param{int}{ len}}
\func{wxString\&}{Remove}{\param{size\_t}{ pos}}
Remove {\it pos} to end of string.
Same as Truncate. Removes the portion from {\it pos} to the end of the string.
\func{wxString\&}{Remove}{\param{size\_t}{ pos}, \param{size\_t}{ len}}
Removes the last {\it len} characters from the string, starting at {\it pos}.
\membersection{wxString::RemoveLast}\label{wxstringremovelast}
\func{wxString\&}{RemoveLast}{\void}
Removes the last character.
\membersection{wxString::Replace}\label{wxstringReplace}
\func{wxString\&}{Replace}{\param{int}{ pos}, \param{int}{ n}, \param{const char*}{ s}}\\
\func{wxString\&}{Replace}{\param{int}{ pos}, \param{int}{ n}, \param{const wxString\&}{ s}}
\func{uint}{Replace}{\param{const char*}{ szOld}, \param{const char*}{ szNew}, \param{bool}{ replaceAll}}
\membersection{wxString::Replicate}\label{wxstringReplicate}
Replace first (or all) occurences of substring with another one.
\func{friend wxString}{Replicate}{\param{char}{ c}, \param{int}{ n}}\\
\func{friend wxString}{Replicate}{\param{const wxString\&}{ y}, \param{int}{ n}}
{\it replaceAll}: global replace (default), or only the first occurence.
Replication.
Returns the number of replacements made.
\membersection{wxString::Reverse}\label{wxstringReverse}
\membersection{wxString::Right}\label{wxstringright}
\func{void}{Reverse}{\param{void}{}}\\
\func{friend wxString}{Reverse}{\param{wxString\&}{ x}}
\constfunc{wxString}{Right}{\param{size\_t}{ count}}
Returns the last {\it count} characters.
\constfunc{wxString}{Right}{\param{char}{ ch}}
Returns all characters after the last occurence of {\it ch}.
Returns the whole string if {\it ch} is not found.
\membersection{wxString::SetChar}\label{wxstringsetchar}
\func{void}{SetChar}{\param{size\_t}{ n}, \param{char}{ch}}
Sets the character at position {\it n}.
\membersection{wxString::Shrink}\label{wxstringshrink}
\func{void}{Shrink}{\void}
Minimizes the string's memory. Only works if the data of this string is not shared.
\membersection{wxString::sprintf}\label{wxstringsprintf}
\func{void}{sprintf}{\param{const wxString\& }{ fmt}}
Formatted assignment. We do not use the 'sprintf' constructor anymore,
because with that constructor, every initialisation with a string would
go through sprintf and this is not desirable, because sprintf
interprets some characters. With the above function we can write:
\func{void}{sprintf}{\param{const char* }{ fmt}}
\begin{verbatim}
wxString msg; msg.sprintf("Processing item %d\n", count);
\end{verbatim}
The same as Printf.
\membersection{wxString::Strip}\label{wxstringStrip}
\begin{verbatim}
enumStripType {leading = 0x1, trailing = 0x2, both = 0x3};
enum stripType {leading = 0x1, trailing = 0x2, both = 0x3};
\end{verbatim}
\func{wxSubString}{Strip}{\param{StripType}{ s = trailing}, \param{char}{ c = ' '}}
\constfunc{wxString}{Strip}{\param{stripType}{ s = trailing}}
Strip characterss at the front and/or end.
StripType is defined for bitwise ORing.
Strip characters at the front and/or end. The same as Trim except that it
doesn't change this string.
\membersection{wxString::SubString}\label{wxstringSubString}
\membersection{wxString::Trim}\label{wxstringtrim}
\func{wxString}{SubString}{\param{int}{ from}, \param{int}{ to}}
\func{wxString\&}{Trim}{\param{bool}{ fromRight = TRUE}}
Edward Zimmermann's additions.
Removes spaces from the left or from the right (default).
\membersection{wxString::Through}\label{wxstringThrough}
\membersection{wxString::Truncate}\label{wxstringtruncate}
\func{wxSubString}{Through}{\param{int}{ pos}}\\
\func{wxSubString}{Through}{\param{const wxString\&}{ x}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{Through}{\param{const wxSubString\&}{ x}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{Through}{\param{const char*}{ t}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{Through}{\param{char}{ c}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{Through}{\param{const wxRegex\&}{ r}, \param{int}{ startpos = 0}}
\func{wxString\&}{Truncate}{\param{size\_t}{ len}}
\membersection{wxString::Upcase}\label{wxstringUpcase}
Truncate the string to the given length.
\func{void}{Upcase}{\param{void}{}}\\
\func{friend wxString}{Upcase}{\param{wxString\&}{ x}}
\membersection{wxString::UngetWriteBuf}\label{wxstringungetwritebuf}
\func{void}{UngetWriteBuf}{\void}
Puts the string back into a reasonable state, after
\rtfsp\helpref{wxString::GetWriteBuf}{wxstringgetwritebuf} was called.
\membersection{wxString::UpperCase}\label{wxstringUpperCase}
\func{void}{UpperCase}{\param{void}{}}\\
\func{void}{UpperCase}{\void}
The same as MakeUpper.
\membersection{wxString::operator $=$}\label{wxstringoperatorassign}
\func{wxString\&}{operator $=$}{\param{const wxString\&}{ y}}\\
\func{wxString\&}{operator $=$}{\param{const char*}{ y}}\\
\func{wxString\&}{operator $=$}{\param{char}{ c}}\\
\func{wxString\&}{operator $=$}{\param{const wxSubString\&}{ y}}
\func{wxString\&}{operator $=$}{\param{const wxString\&}{ str}}
\func{wxString\&}{operator $=$}{\param{const char*}{ psz}}
\func{wxString\&}{operator $=$}{\param{char}{ c}}
\func{wxString\&}{operator $=$}{\param{const unsigned char*}{ psz}}
\func{wxString\&}{operator $=$}{\param{const wchar\_t*}{ pwz}}
Assignment.
\membersection{operator wxString::$+$}\label{wxstringoperatorplus}
Concatenation.
\func{wxString}{operator $+$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}}
\func{wxString}{operator $+$}{\param{const wxString\&}{ x}, \param{const char*}{ y}}
\func{wxString}{operator $+$}{\param{const wxString\&}{ x}, \param{char}{ y}}
\func{wxString}{operator $+$}{\param{const char*}{ x}, \param{const wxString\&}{ y}}
\membersection{wxString::operator $+=$}\label{wxstringPlusEqual}
\func{wxString\&}{operator $+=$}{\param{const wxString\&}{ y}}\\
\func{wxString\&}{operator $+=$}{\param{const wxSubString\&}{ y}}\\
\func{wxString\&}{operator $+=$}{\param{const char*}{ t}}\\
\func{wxString\&}{operator $+=$}{\param{char}{ c}}
\func{void}{operator $+=$}{\param{const wxString\&}{ str}}
\func{void}{operator $+=$}{\param{const char*}{ psz}}
\func{void}{operator $+=$}{\param{char}{ c}}
Concatenation.
\membersection{wxString::operator []}\label{wxstringoperatorbracket}
\func{char\&}{operator []}{\param{int}{ i}}
\func{char\&}{operator []}{\param{size\_t}{ i}}
\func{char}{operator []}{\param{size\_t}{ i}}
\func{char}{operator []}{\param{int}{ i}}
Element extraction.
\membersection{wxString::operator ()}\label{wxstringoperatorparenth}
\func{char\&}{operator ()}{\param{int}{ i}}
\func{wxString}{operator ()}{\param{size\_t}{ start}, \param{size\_t}{ len}}
Same as Mid (substring extraction).
\membersection{wxString::operator \cinsert}\label{wxstringoperatorout}
\func{friend ostream\&}{operator \cinsert}{\param{ostream\&}{ s}, \param{const wxString\&}{ x}}\\
\func{friend ostream\&}{operator \cinsert}{\param{ostream\&}{ s}, \param{const wxSubString\&}{ x}}
\func{wxString\&}{operator \cinsert}{\\param{const wxString\&}{ str}}
\func{wxString\&}{operator \cinsert}{\\param{const char*}{ psz}}
\func{wxString\&}{operator \cinsert}{\\param{char }{ch}}
Same as $+=$.
\membersection{wxString::operator \cextract}\label{wxstringoperatorin}
\func{friend istream\&}{operator \cextract}{\param{istream\&}{ s}, \param{wxString\&}{ x}}
\func{friend istream\&}{operator \cextract}{\param{istream\&}{ is}, \param{wxString\&}{ str}}
Extraction from a stream.
\membersection{wxString::operator const char*}\label{wxstringoperatorconstcharpt}
\constfunc{}{operator const char*}{\param{void}{}}
Conversion.
\constfunc{}{operator const char*}{\void}
\membersection{wxCHARARG}\label{wxstringwxCHARARG}
\begin{verbatim}
#define wxCHARARG(s) ((const wxString\& )(s).Chars())
\end{verbatim}
Here is a very, very, very ugly macro, but it makes things more
transparent in cases, where a library function requires a
(const wxString\& ) argument. This is especially the case in wxWindows,
where all char-arguments are (const wxString\& ) and not (const char* ).
This macro should only be used in such cases and NOT to
modify the internal data.
The conventional way would be 'function((char*)string.Chars())'.
With the wxCHARARG macro, this can be achieved by 'function(wxCHARARG(string))'.
This makes it clearer that the usage should be confined
to arguments.
\membersection{CommonPrefix}\label{wxstringCommonPrefix}
\func{friend wxString}{CommonPrefix}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y},\\
\param{int}{ startpos = 0}}\\
\membersection{CommonSuffix}\label{wxstringCommonSuffix}
\func{friend wxString}{CommonSuffix}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y},\\
\param{int}{ startpos = -1}}
\membersection{Compare}\label{wxstringCompare}
\func{int}{Compare}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}}\\
\func{int}{Compare}{\param{const wxString\&}{ x}, \param{const wxSubString\&}{ y}}\\
\func{int}{Compare}{\param{const wxString\&}{ x}, \param{const char*}{ y}}\\
\func{int}{Compare}{\param{const wxSubString\&}{ x}, \param{const wxString\&}{ y}}\\
\func{int}{Compare}{\param{const wxSubString\&}{ x}, \param{const wxSubString\&}{ y}}\\
\func{int}{Compare}{\param{const wxSubString\&}{ x}, \param{const char*}{ y}}
Case dependent comparison. Returns 0 if the match succeeded.
\membersection{FCompare}\label{wxstringFCompare}
\func{int}{FCompare}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}}
Case independent comparison. Returns 0 if the match succeeded.
Implicit conversion to a C string.
\membersection{Comparison operators}\label{wxstringComparison}
\func{int}{operator $==$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}}\\
\func{int}{operator $!=$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}}\\
\func{int}{operator $>$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}}\\
\func{int}{operator $>=$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}}\\
\func{int}{operator $<$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}}\\
\func{int}{operator $<=$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}}\\
\func{int}{operator $==$}{\param{const wxString\&}{ x}, \param{const wxSubString\&}{ y}}\\
\func{int}{operator $!=$}{\param{const wxString\&}{ x}, \param{const wxSubString\&}{ y}}\\
\func{int}{operator $>$}{\param{const wxString\&}{ x}, \param{const wxSubString\&}{ y}}\\
\func{int}{operator $>=$}{\param{const wxString\&}{ x}, \param{const wxSubString\&}{ y}}\\
\func{int}{operator $<$}{\param{const wxString\&}{ x}, \param{const wxSubString\&}{ y}}\\
\func{int}{operator $<=$}{\param{const wxString\&}{ x}, \param{const wxSubString\&}{ y}}\\
\func{int}{operator $==$}{\param{const wxString\&}{ x}, \param{const char*}{ t}}\\
\func{int}{operator $!=$}{\param{const wxString\&}{ x}, \param{const char*}{ t}}\\
\func{int}{operator $>$}{\param{const wxString\&}{ x}, \param{const char*}{ t}}\\
\func{int}{operator $>=$}{\param{const wxString\&}{ x}, \param{const char*}{ t}}\\
\func{int}{operator $<$}{\param{const wxString\&}{ x}, \param{const char*}{ t}}\\
\func{int}{operator $<=$}{\param{const wxString\&}{ x}, \param{const char*}{ t}}\\
\func{int}{operator $==$}{\param{const wxSubString\&}{ x}, \param{const wxString\&}{ y}}\\
\func{int}{operator $!=$}{\param{const wxSubString\&}{ x}, \param{const wxString\&}{ y}}\\
\func{int}{operator $>$}{\param{const wxSubString\&}{ x}, \param{const wxString\&}{ y}}\\
\func{int}{operator $>=$}{\param{const wxSubString\&}{ x}, \param{const wxString\&}{ y}}\\
\func{int}{operator $<$}{\param{const wxSubString\&}{ x}, \param{const wxString\&}{ y}}\\
\func{int}{operator $<=$}{\param{const wxSubString\&}{ x}, \param{const wxString\&}{ y}}\\
\func{int}{operator $==$}{\param{const wxSubString\&}{ x}, \param{const wxSubString\&}{ y}}\\
\func{int}{operator $!=$}{\param{const wxSubString\&}{ x}, \param{const wxSubString\&}{ y}}\\
\func{int}{operator $>$}{\param{const wxSubString\&}{ x}, \param{const wxSubString\&}{ y}}\\
\func{int}{operator $>=$}{\param{const wxSubString\&}{ x}, \param{const wxSubString\&}{ y}}\\
\func{int}{operator $<$}{\param{const wxSubString\&}{ x}, \param{const wxSubString\&}{ y}}\\
\func{int}{operator $<=$}{\param{const wxSubString\&}{ x}, \param{const wxSubString\&}{ y}}\\
\func{int}{operator $==$}{\param{const wxSubString\&}{ x}, \param{const char*}{ t}}\\
\func{int}{operator $!=$}{\param{const wxSubString\&}{ x}, \param{const char*}{ t}}\\
\func{int}{operator $>$}{\param{const wxSubString\&}{ x}, \param{const char*}{ t}}\\
\func{int}{operator $>=$}{\param{const wxSubString\&}{ x}, \param{const char*}{ t}}\\
\func{int}{operator $<$}{\param{const wxSubString\&}{ x}, \param{const char*}{ t}}\\
\func{int}{operator $<=$}{\param{const wxSubString\&}{ x}, \param{const char*}{ t}}
\func{bool}{operator $==$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}}
\membersection{operator $+$}\label{wxstringoperatorplus}
\func{bool}{operator $==$}{\param{const wxString\&}{ x}, \param{const char*}{ t}}
\func{wxString}{operator $+$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}}\\
\func{wxString}{operator $+$}{\param{const wxString\&}{ x}, \param{const wxSubString\&}{ y}}\\
\func{wxString}{operator $+$}{\param{const wxString\&}{ x}, \param{const char*}{ y}}\\
\func{wxString}{operator $+$}{\param{const wxString\&}{ x}, \param{char}{ y}}\\
\func{wxString}{operator $+$}{\param{const wxSubString\&}{ x}, \param{const wxString\&}{ y}}\\
\func{wxString}{operator $+$}{\param{const wxSubString\&}{ x}, \param{const wxSubString\&}{ y}}\\
\func{wxString}{operator $+$}{\param{const wxSubString\&}{ x}, \param{const char*}{ y}}\\
\func{wxString}{operator $+$}{\param{const wxSubString\&}{ x}, \param{char}{ y}}\\
\func{wxString}{operator $+$}{\param{const char*}{ x}, \param{const wxString\&}{ y}}\\
\func{wxString}{operator $+$}{\param{const char*}{ x}, \param{const wxSubString\&}{ y}}
\func{bool}{operator $!=$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}}
\membersection{Join}\label{wxstringJoin}
\func{bool}{operator $!=$}{\param{const wxString\&}{ x}, \param{const char*}{ t}}
\func{friend wxString}{Join}{\param{wxString}{ src[]}, \param{int}{ n}, \param{const wxString\&}{ sep}}
\func{bool}{operator $>$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}}
\membersection{Split}\label{wxstringSplit}
\func{bool}{operator $>$}{\param{const wxString\&}{ x}, \param{const char*}{ t}}
\func{friend int}{Split}{\param{const wxString\&}{ x}, \param{wxString}{ res[]}, \param{int}{ maxn},\\
\param{const wxString\&}{ sep}}\\
\func{friend int}{Split}{\param{const wxString\&}{ x}, \param{wxString}{ res[]}, \param{int}{ maxn},\\
\param{const wxRegex\&}{ sep}}\\
Split string into array res at separators; return number of elements
\func{bool}{operator $>=$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}}
\func{bool}{operator $>=$}{\param{const wxString\&}{ x}, \param{const char*}{ t}}
\func{bool}{operator $<$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}}
\func{bool}{operator $<$}{\param{const wxString\&}{ x}, \param{const char*}{ t}}
\func{bool}{operator $<=$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}}
\func{bool}{operator $<=$}{\param{const wxString\&}{ x}, \param{const char*}{ t}}
\wxheading{Remarks}
These comparisons are case-sensitive.

View File

@@ -11,7 +11,7 @@ This licence is intended to protect wxWindows, its developers,
and its users, so that the considerable investment it represents
is not abused.
Unlike the wxWindows licence, you as a user are not obliged to
Unlike the L-GPL licence, you as a user are not obliged to
distribute wxWindows source code with your products. However,
you are prevented from selling the code without permission from
the authors, or denying others the rights to use or distribute

View File

@@ -2,6 +2,19 @@
wxWindows 2.0 for Windows Change Log
------------------------------------
Alpha 14, July 31st 1998
------------------------
- Toolbar API has been simplified, and now
wxFrame::GetClientArea returns the available client
area when toolbar, status bar etc. have been accounted for.
wxFrame::CreateToolBar added in line with CreateStatusBar.
- Documentation updates, incl. for wxToolBar.
- New wxAcceleratorTable class plus wxFrame::SetAcceleratorTable.
- Various additions from other folk, e.g. streams, wxConfig
changes, wxNotebook.
- Added wxDocMDIParentFrame, wxDocMDIChildFrame for doc/view.
Alpha 13, July 8th 1998
-----------------------

View File

@@ -5,8 +5,6 @@ Todo on wxWin 2.0, Windows platform
HIGH PRIORITY
-------------
Integrate Robert's wxGrid enhancements.
Find/add wxThread sample - Arthur T-D?
wxControl dimensions should be optionally based on dialog font
@@ -14,15 +12,12 @@ size for portability (dialog units as per Windows).
Implement wxDC floating point transformations.
Remove transformation from device to logical coordinates from
events e.g. mouse events.
Add wxDC::DeviceToLogical -> wxPoint etc (convenience accessors).
Revamp Dialog Editor for new controls and properties (e.g.
window id).
Registry classes (check out wxConfig class - see issues.txt).
Tidy wxConfig API.
Change DnD classes to use global symbols, and wxString.
@@ -47,18 +42,20 @@ Update manual.
wxListBox changes (for ownerdraw functionality)
wxThread DONE (except for topic overview)
wxHelpController classes DONE (except for Unix ones)
wxString
wxTString
wxString PARTLY DONE
Drag and drop (change API if required, e.g. const).
wxCheckListBox
wxAcceleratorTable
wxBaseArray, other arrays
(wxOwnerDrawn)
Document the include file for each class
Macros, e.g. wxASSERT
Stream classes
Functions
Write tutorial.
Other static classes.
A wxDC function (or two) for drawing 3D edges.
Makefiles for other compilers. Generic makefiles?
Rewrite makefiles to maintain simultaneous debug/release
@@ -68,31 +65,15 @@ More wxSystemSettings (see comment in settings.cpp).
wxSocket integration.
wxListCtrl, wxTreeCtrl, wxImageList integration with Robert
Roebling's classes.
Convert OGL, other utilities and samples.
Convert remaining utilities e.g. (GLCanvas; wxGraphLayout) and samples
Check TODO entries.
Change #include "wx/xxx.h" to #include <wx/xxx.h>
Tidy code further, e.g. formatting from DevStudio, plus
standard header.
Shell function to invoke a document with open, print, whatever...
wxTextCtrl (and wxMultiText/wxTextWindow in wxWin 1.xx) - differences between Edit
and RichEdit controls.
Make use of Vadim's gettext implementation throughout wxWin code.
Document it.
Change wxUpdateIterator to use wxRegion; or scrap
wxUpdateIterator? See wxGTK.
Check WXWIN_COMPATIBILITY mode, remove any unnecessary #ifdefs.
Retain callback functions; have semi-compatible callback function prototypes
for all controls, at least in WXWIN_COMPATIBLE mode, but
retain (Set)Callback for all compilations. This is following a
@@ -100,18 +81,13 @@ panicky response to losing callbacks.
Merge dib.cpp, dibutils.cpp.
Simplify the toolbar samples.
Add a wxTabCtrl sample.
EVT_ENTER/LEAVE_WINDOW: Perhaps one approach to reliable implementation of
EVT_LEAVE_WINDOW is to set a flag when the mouse pointer is in a window,
then in idle time, check this window.
If the flag is set but the mouse pointer is outside the window, then
it's time to generate an EVT_LEAVE_WINDOW. This would be necessary at
least for the case when the mouse cursor goes off the application windows,
and no motion event was generated (i.e. you moved the mouse quickly!).
If it goes from one app window to another, you could generate the event sooner.
Improve printing. More API functions for printer DCs (to get
printer characteristics) and more reliable printing framework.
Add GetIcon, GetBitmap to wxImageList. Perhaps store bitmaps
in image list so we can get them later.
LOW PRIORITY
------------
@@ -132,12 +108,8 @@ BS_BITMAP, SS_BITMAP - but this may not allow wxBitmap
argument, so instead just allow controls loaded from native
resource to deal with this style and call default processing.
Completion of drag and drop support (Vadim).
Better clipboard support.
Toolbars: use event tables not virtual functions.
wxWizard class?
Doc/view - have some standard views/docs e.g. wxTextView.
@@ -153,10 +125,6 @@ Integrate existing multimedia classes.
Rich text class?
Optimize size further.
wxThread integration.
Look at WinCE stuff incl. database classes.
Improve conversion guide, compatibility classes, tools?

View File

@@ -4,17 +4,22 @@ GUIs:
-----
__X__ any X, but not GTK
__MOTIF__ Motif
__XT__ Xt; mutually exclusive with WX_MOTIF (?)
__GTK__ GTK
__XVIEW__ Obsolete!
__WINDOWS__ Any Windows
__MAC__ MacOS
__WXMOTIF__ Motif
__WXXT__ Xt; mutually exclusive with WX_MOTIF (?)
__WXGTK__ GTK
__WXMSW__ Any Windows
__WXMAC__ MacOS
__UNIX__ any Unix
__WINDOWS__ any Windows
__WIN95__ GUI for Windows 95 and above; NT 4.0 and above.
__WIN32__ WIN32 API
__NT__ Windows NT
__CURSES__ CURSES
__WXCURSES__ CURSES
__WXSTUBS__ Stubbed version ('template' wxWin implementation)
In fact, they should better all start with __WX instead of __ only.
The only GUIs implemented for 2.0 are __WXGTK__, __WXMSW__ and __WXMOTIF__
yet. Any new ones, please start the define with __WX.
OSes/machines:
@@ -51,6 +56,6 @@ __XLC__ ?? compiler
wxWindows modes:
----------------
__DEBUG__ usage: #ifdef __DEBUG__ (=> debug mode, else => release)
__WXDEBUG__ usage: #ifdef __DEBUG__ (=> debug mode, else => release)
WXDEBUG usage: #if DEBUG (0: release, 1: minimal debug code, ...)

BIN
docs/word/odbc.doc Normal file

Binary file not shown.

70
docs/wxQt.html Normal file
View File

@@ -0,0 +1,70 @@
$Id$
<br>
<H1>Proposal for a port of wxWindows to Qt - wxQt</H1>
<p>
Following the recent discussions
and flamewars about KDE vs Gnome, we got worried that we'll see a
repetition of the same damaging infighting from which Unix has
suffered before. Competition is a good thing, but the current
situation leaves application developers with a difficult decision to
make: Write for KDE, using qt/harmony or write for Gnome, using GTK?
Whatever happens to these projects, we will end up with a lot of
duplicated efforts and a mix of applications written for either of the
two environments. The result will not be the consistent look and feel
that both projects aim for.
<p>
The people on the wxWindows developers team thought that we might have
a solution for this problem, if we can get some outside help to get it
done. Let us explain: wxWindows is a cross-platform development
toolkit, a library of C++ classes which provide GUI concepts as well
as other cross-platform issues such as container classes, debug
features or configuration management. It has been around since 1992
and started by supporting Motif, XView and MS-Windows, with a direct
X11/Xt port added later. Last year, a major rewrite was started and we
now have a much advanced library, available for MS Windows, with a
Motif port under construction. Later last year, Robert Roebling set
out on a one-man project to build wxGTK, a gtk-based implementation of
wxWindows which in less than a year has become sufficiently stable to
use it as the main development platform of rather large
applications. The wxWindows license is a variant of the LGPL,
which should meet no objections from the free software community. In
fact, this has been an open source project long before the term became
commonly used.
<p>
Our idea is, that if this is good enough to work across different
operating systems (a MacOS port is under construction, too), it could
easily bridge the gap between KDE and Gnome. The quick evolution of
wxGTK has shown that a new port based on an existing widget set or
toolkit can easily be created by a small team within a few
months. Therefore, we would like to start a project for a Qt/Harmony
based wxWindow library, wxQt. It would then be possible for
application developers to write the same source and compile it either
for KDE, Gnome or even any of the other supported systems.
<p>
But for this we need help. The core developers are all pretty busy on
the existing ports, but we could provide significant help and support
for any such effort. A wxQt port could also recycle lots of existing
code from the other ports.
Please, join us in this effort and, if you feel that you could
contribute, join the wxWindows developers mailing list for further
discussions. Just send a mail containing "<tt>subscribe</tt>" to
<tt>wxwin-developers-request@wx.dent.med.uni-muenchen.de</tt>
<p>
You can find some more information about wxWindows at the following places:
<ul>
<li>The <a href="http://web.ukonline.co.uk/julian.smart/wxwin/">wxWindows homepage</a>.
<li>The <a href="http://www.freiburg.linux.de/~wxxt/">wxGTK homepage</a>
<li>The <a
href="http://Ballueder.home.ml.org/wxWindows/wxQt.html">wxQt
proposal</a>(this text)
<li>The <a href="http://Ballueder.home.ml.org/M/">home of <em>M</em></a>, an email client developed using wxGTK, showing several <a href="http://Ballueder.home.ml.org/M/screenshots/">screenshots</a> of how it actually looks like.
</ul>
<p>
<hr>
Karsten Ballueder <tt><a
href="mailto:Ballueder@usa.net">Ballueder@usa.net</a> <a
href="http://Ballueder.home.ml.org/">http://Ballueder.home.ml.org/</a></tt>

19
include/wx/accel.h Normal file
View File

@@ -0,0 +1,19 @@
#ifndef _WX_ACCEL_H_BASE_
#define _WX_ACCEL_H_BASE_
#if defined(__WXMSW__)
#include "wx/msw/accel.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/accel.h"
#elif defined(__WXGTK__)
#include "wx/gtk/accel.h"
#elif defined(__WXQT__)
#include "wx/qt/accel.h"
#elif defined(__WXMAC__)
#include "wx/mac/accel.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/accel.h"
#endif
#endif
// _WX_ACCEL_H_BASE_

View File

@@ -9,29 +9,34 @@
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef __APPH_BASE__
#define __APPH_BASE__
#ifndef _WX_APP_H_BASE_
#define _WX_APP_H_BASE_
#ifndef __GTK__
#ifdef __WXMSW__
class WXDLLEXPORT wxApp;
typedef wxApp* (*wxAppInitializerFunction) (void);
#endif
#include "wx/object.h"
#ifdef __GTK__
#ifndef __WXMSW__
typedef wxObject* (*wxAppInitializerFunction) (void); // returning wxApp* won't work with gcc
#endif
#if defined(__WINDOWS__)
#if defined(__WXMSW__)
#include "wx/msw/app.h"
#elif defined(__MOTIF__)
#include "wx/xt/app.h"
#elif defined(__GTK__)
#elif defined(__WXMOTIF__)
#include "wx/motif/app.h"
#elif defined(__WXQT__)
#include "wx/qt/app.h"
#elif defined(__WXGTK__)
#include "wx/gtk/app.h"
#elif defined(__WXMAC__)
#include "wx/mac/app.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/app.h"
#endif
// Having a global instance of this class allows
// wxApp to be aware of the app creator function.
// wxApp can then call this function to create a new
@@ -70,4 +75,4 @@ int main(int argc, char *argv[]) { return wxEntry(argc, argv); }
#endif
// __APPH_BASE__
// _WX_APP_H_BASE_

View File

@@ -1,13 +1,19 @@
#ifndef __BITMAPH_BASE__
#define __BITMAPH_BASE__
#ifndef _WX_BITMAP_H_BASE_
#define _WX_BITMAP_H_BASE_
#if defined(__WINDOWS__)
#if defined(__WXMSW__)
#include "wx/msw/bitmap.h"
#elif defined(__MOTIF__)
#include "wx/xt/bitmap.h"
#elif defined(__GTK__)
#elif defined(__WXMOTIF__)
#include "wx/motif/bitmap.h"
#elif defined(__WXGTK__)
#include "wx/gtk/bitmap.h"
#elif defined(__WXQT__)
#include "wx/qt/bitmap.h"
#elif defined(__WXMAC__)
#include "wx/mac/bitmap.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/bitmap.h"
#endif
#endif
// __BITMAPH_BASE__
// _WX_BITMAP_H_BASE_

View File

@@ -1,12 +1,18 @@
#ifndef __BMPBUTTONH_BASE__
#define __BMPBUTTONH_BASE__
#ifndef _WX_BMPBUTTON_H_BASE_
#define _WX_BMPBUTTON_H_BASE_
#if defined(__WINDOWS__)
#if defined(__WXMSW__)
#include "wx/msw/bmpbuttn.h"
#elif defined(__MOTIF__)
#include "wx/xt/bmpbuttn.h"
#elif defined(__GTK__)
#elif defined(__WXMOTIF__)
#include "wx/motif/bmpbuttn.h"
#elif defined(__WXGTK__)
#include "wx/gtk/bmpbuttn.h"
#elif defined(__WXQT__)
#include "wx/qt/bmpbuttn.h"
#elif defined(__WXMAC__)
#include "wx/mac/bmpbuttn.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/bmpbuttn.h"
#endif
#endif

View File

@@ -1,13 +1,19 @@
#ifndef __BRUSHH_BASE__
#define __BRUSHH_BASE__
#ifndef _WX_BRUSH_H_BASE_
#define _WX_BRUSH_H_BASE_
#if defined(__WINDOWS__)
#if defined(__WXMSW__)
#include "wx/msw/brush.h"
#elif defined(__MOTIF__)
#include "wx/xt/brush.h"
#elif defined(__GTK__)
#elif defined(__WXMOTIF__)
#include "wx/motif/brush.h"
#elif defined(__WXGTK__)
#include "wx/gtk/brush.h"
#elif defined(__WXQT__)
#include "wx/qt/brush.h"
#elif defined(__WXMAC__)
#include "wx/mac/brush.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/brush.h"
#endif
#endif
// __BRUSHH_BASE__
// _WX_BRUSH_H_BASE_

View File

@@ -1,13 +1,19 @@
#ifndef __BUTTONH_BASE__
#define __BUTTONH_BASE__
#ifndef _WX_BUTTON_H_BASE_
#define _WX_BUTTON_H_BASE_
#if defined(__WINDOWS__)
#if defined(__WXMSW__)
#include "wx/msw/button.h"
#elif defined(__MOTIF__)
#include "wx/xt/button.h"
#elif defined(__GTK__)
#elif defined(__WXMOTIF__)
#include "wx/motif/button.h"
#elif defined(__WXGTK__)
#include "wx/gtk/button.h"
#elif defined(__WXQT__)
#include "wx/qt/button.h"
#elif defined(__WXMAC__)
#include "wx/mac/button.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/button.h"
#endif
#endif
// __BUTTONH_BASE__
// _WX_BUTTON_H_BASE_

View File

@@ -1,13 +1,19 @@
#ifndef __CHECKBOXH_BASE__
#define __CHECKBOXH_BASE__
#ifndef _WX_CHECKBOX_H_BASE_
#define _WX_CHECKBOX_H_BASE_
#if defined(__WINDOWS__)
#if defined(__WXMSW__)
#include "wx/msw/checkbox.h"
#elif defined(__MOTIF__)
#include "wx/xt/checkbox.h"
#elif defined(__GTK__)
#elif defined(__WXMOTIF__)
#include "wx/motif/checkbox.h"
#elif defined(__WXGTK__)
#include "wx/gtk/checkbox.h"
#elif defined(__WXQT__)
#include "wx/qt/checkbox.h"
#elif defined(__WXMAC__)
#include "wx/mac/checkbox.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/checkbox.h"
#endif
#endif
// __CHECKBOXH_BASE__
// _WX_CHECKBOX_H_BASE_

19
include/wx/checklst.h Normal file
View File

@@ -0,0 +1,19 @@
#ifndef _WX_CHECKLST_H_BASE_
#define _WX_CHECKLST_H_BASE_
#if defined(__WXMSW__)
#include "wx/msw/checklst.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/checklst.h"
#elif defined(__WXGTK__)
#include "wx/gtk/checklst.h"
#elif defined(__WXQT__)
#include "wx/qt/checklst.h"
#elif defined(__WXMAC__)
#include "wx/mac/checklst.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/checklst.h"
#endif
#endif
// _WX_CHECKLST_H_BASE_

View File

@@ -1,7 +1,7 @@
#ifndef __CHOICDLGH_BASE__
#define __CHOICDLGH_BASE__
#ifndef _WX_CHOICDLG_H_BASE_
#define _WX_CHOICDLG_H_BASE_
#include "wx/generic/choicdgg.h"
#endif
// __CHOICDLGH_BASE__
// _WX_CHOICDLG_H_BASE_

View File

@@ -1,13 +1,19 @@
#ifndef __CHOICEH_BASE__
#define __CHOICEH_BASE__
#ifndef _WX_CHOICE_H_BASE_
#define _WX_CHOICE_H_BASE_
#if defined(__WINDOWS__)
#if defined(__WXMSW__)
#include "wx/msw/choice.h"
#elif defined(__MOTIF__)
#include "wx/xt/choice.h"
#elif defined(__GTK__)
#elif defined(__WXMOTIF__)
#include "wx/motif/choice.h"
#elif defined(__WXGTK__)
#include "wx/gtk/choice.h"
#elif defined(__WXQT__)
#include "wx/qt/choice.h"
#elif defined(__WXMAC__)
#include "wx/mac/choice.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/choice.h"
#endif
#endif
// __CHOICEH_BASE__
// _WX_CHOICE_H_BASE_

View File

@@ -1,13 +1,19 @@
#ifndef __CLIPBRDH_BASE__
#define __CLIPBRDH_BASE__
#ifndef _WX_CLIPBRD_H_BASE_
#define _WX_CLIPBRD_H_BASE_
#if defined(__WINDOWS__)
#if defined(__WXMSW__)
#include "wx/msw/clipbrd.h"
#elif defined(__MOTIF__)
#include "wx/xt/clipbrd.h"
#elif defined(__GTK__)
#elif defined(__WXMOTIF__)
#include "wx/motif/clipbrd.h"
#elif defined(__WXGTK__)
#include "wx/gtk/clipbrd.h"
#elif defined(__WXQT__)
#include "wx/gtk/clipbrd.h"
#elif defined(__WXMAC__)
#include "wx/mac/clipbrd.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/clipbrd.h"
#endif
#endif
// __CLIPBRDH_BASE__
// _WX_CLIPBRD_H_BASE_

View File

@@ -9,13 +9,16 @@
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef __CMNDATAH_BASE__
#define __CMNDATAH_BASE__
#ifndef _WX_CMNDATA_H_BASE_
#define _WX_CMNDATA_H_BASE_
#ifdef __GNUG__
#pragma interface "cmndata.h"
#endif
#include "wx/font.h"
#include "wx/colour.h"
class WXDLLEXPORT wxColourData: public wxObject
{
DECLARE_DYNAMIC_CLASS(wxColourData)
@@ -82,7 +85,7 @@ class WXDLLEXPORT wxPrintData: public wxObject
DECLARE_DYNAMIC_CLASS(wxPrintData)
public:
#ifdef __WINDOWS__
#ifdef __WXMSW__
void *printData;
#endif
int printFromPage;
@@ -137,7 +140,7 @@ class WXDLLEXPORT wxPrintData: public wxObject
void operator=(const wxPrintData& data);
#ifdef __WINDOWS__
#ifdef __WXMSW__
// Convert to/from the PRINTDLG structure
void ConvertToNative(void);
void ConvertFromNative(void);
@@ -220,4 +223,4 @@ class WXDLLEXPORT wxPageSetupData: public wxObject
#endif
// __CMNDATAH_BASE__
// _WX_CMNDATA_H_BASE_

View File

@@ -1,13 +1,19 @@
#ifndef __COLORDLGH_BASE__
#define __COLORDLGH_BASE__
#ifndef _WX_COLORDLG_H_BASE_
#define _WX_COLORDLG_H_BASE_
#if defined(__WINDOWS__)
#if defined(__WXMSW__)
#include "wx/msw/colordlg.h"
#elif defined(__MOTIF__)
#elif defined(__WXMOTIF__)
#include "wx/generic/colrdlgg.h"
#elif defined(__GTK__)
#elif defined(__WXGTK__)
#include "wx/generic/colrdlgg.h"
#elif defined(__WXQT__)
#include "wx/generic/colrdlgg.h"
#elif defined(__WXMAC__)
#include "wx/generic/colrdlgg.h"
#elif defined(__WXSTUBS__)
#include "wx/generic/colrdlgg.h"
#endif
#endif
// __COLORDLGH_BASE__
// _WX_COLORDLG_H_BASE_

19
include/wx/colour.h Normal file
View File

@@ -0,0 +1,19 @@
#ifndef _WX_COLOUR_H_BASE_
#define _WX_COLOUR_H_BASE_
#if defined(__WXMSW__)
#include "wx/msw/colour.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/colour.h"
#elif defined(__WXGTK__)
#include "wx/gtk/colour.h"
#elif defined(__WXQT__)
#include "wx/qt/colour.h"
#elif defined(__WXMAC__)
#include "wx/mac/colour.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/colour.h"
#endif
#endif
// _WX_COLOUR_H_BASE_

View File

@@ -1,13 +1,19 @@
#ifndef __COMBOBOXH_BASE__
#define __COMBOBOXH_BASE__
#ifndef _WX_COMBOBOX_H_BASE_
#define _WX_COMBOBOX_H_BASE_
#if defined(__WINDOWS__)
#if defined(__WXMSW__)
#include "wx/msw/combobox.h"
#elif defined(__MOTIF__)
#include "wx/xt/combobox.h"
#elif defined(__GTK__)
#elif defined(__WXMOTIF__)
#include "wx/motif/combobox.h"
#elif defined(__WXGTK__)
#include "wx/gtk/combobox.h"
#elif defined(__WXQT__)
#include "wx/qt/combobox.h"
#elif defined(__WXMAC__)
#include "wx/mac/combobox.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/combobox.h"
#endif
#endif
// __COMBOBOXH_BASE__
// _WX_COMBOBOX_H_BASE_

292
include/wx/confbase.h Normal file
View File

@@ -0,0 +1,292 @@
///////////////////////////////////////////////////////////////////////////////
// Name: confbase.h
// Purpose: declaration of the base class of all config implementations
// (see also: fileconf.h and msw/regconf.h)
// Author: Karsten Ball<6C>der & Vadim Zeitlin
// Modified by:
// Created: 07.04.98 (adapted from appconf.h)
// RCS-ID: $Id$
// Copyright: (c) 1997 Karsten Ball<6C>der Ballueder@usa.net
// Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
// Licence: wxWindows license
///////////////////////////////////////////////////////////////////////////////
#ifndef _WX_CONFBASE_H_
#define _WX_CONFBASE_H_
#ifdef __GNUG__
#pragma interface "confbase.h"
#endif
// ----------------------------------------------------------------------------
// compile options
// ----------------------------------------------------------------------------
// 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
// ----------------------------------------------------------------------------
// constants
// ----------------------------------------------------------------------------
/// shall we be case sensitive in parsing variable names?
#ifndef wxCONFIG_CASE_SENSITIVE
#define wxCONFIG_CASE_SENSITIVE FALSE
#endif
/// separates group and entry names (probably shouldn't be changed)
#ifndef wxCONFIG_PATH_SEPARATOR
#define wxCONFIG_PATH_SEPARATOR '/'
#endif
/// introduces immutable entries
// (i.e. the ones which can't be changed from the local config file)
#ifndef wxCONFIG_IMMUTABLE_PREFIX
#define wxCONFIG_IMMUTABLE_PREFIX '!'
#endif
/// should we use registry instead of configuration files under Win32?
// (i.e. whether wxConfigBase::Create() will create a wxFileConfig (if it's
// FALSE) or wxRegConfig (if it's true and we're under Win32) or wxIniConfig
// (under Win16))
#ifndef wxCONFIG_WIN32_NATIVE
#define wxCONFIG_WIN32_NATIVE TRUE
#endif
// Style flags for constructor style parameter
#define wxCONFIG_USE_LOCAL_FILE 1
#define wxCONFIG_USE_GLOBAL_FILE 2
// ----------------------------------------------------------------------------
// various helper global functions
// ----------------------------------------------------------------------------
/*
Replace environment variables ($SOMETHING) with their values. The format is
$VARNAME or ${VARNAME} where VARNAME contains alphanumeric characters and
'_' only. '$' must be escaped ('\$') in order to be taken literally.
*/
extern wxString wxExpandEnvVars(const wxString &sz);
/*
Split path into parts removing '..' in progress
*/
extern void wxSplitPath(wxArrayString& aParts, const char *sz);
// ----------------------------------------------------------------------------
// abstract base class wxConfigBase which defines the interface for derived
// classes
//
// wxConfig organizes the items in a tree-like structure (modeled after the
// Unix/Dos filesystem). There are groups (directories) and keys (files).
// There is always one current group given by the current path.
//
// Keys are pairs "key_name = value" where value may be of string or integer
// (long) type (@@@ doubles and other types such as wxDate coming soon).
// ----------------------------------------------------------------------------
class wxConfigBase
{
public:
// static functions
// sets the config object, returns the previous pointer
static wxConfigBase *Set(wxConfigBase *pConfig);
// get the config object, creates it on demand unless DontCreateOnDemand
// was called
static wxConfigBase *Get() { if ( !ms_pConfig ) Create(); return ms_pConfig; }
// create a new config object: this function will create the "best"
// implementation of wxConfig available for the current platform, see
// comments near definition wxCONFIG_WIN32_NATIVE for details. It returns
// the created object and also sets it as ms_pConfig.
static wxConfigBase *Create();
// should Get() try to create a new log object if the current one is NULL?
static void DontCreateOnDemand() { ms_bAutoCreate = FALSE; }
// ctor & virtual dtor
// environment variable expansion is on by default
// wxConfigBase() { m_bExpandEnvVars = TRUE; m_bRecordDefaults = FALSE; }
// ctor
// Not all args will always be used by derived classes, but
// including them all in each class ensures compatibility.
// If appName is empty, uses wxApp name
wxConfigBase(const wxString& appName = wxEmptyString, const wxString& vendorName = wxEmptyString,
const wxString& localFilename = wxEmptyString, const wxString& globalFilename = wxEmptyString,
long style = 0);
// empty but ensures that dtor of all derived classes is virtual
virtual ~wxConfigBase() { }
// path management
// set current path: if the first character is '/', it's the absolute path,
// otherwise it's a relative path. '..' is supported. If the strPath
// doesn't exist it is created.
virtual void SetPath(const wxString& strPath) = 0;
// retrieve the current path (always as absolute path)
virtual const wxString& GetPath() const = 0;
// enumeration: all functions here return false when there are no more items.
// you must pass the same lIndex to GetNext and GetFirst (don't modify it)
// enumerate subgroups
virtual bool GetFirstGroup(wxString& str, long& lIndex) const = 0;
virtual bool GetNextGroup (wxString& str, long& lIndex) const = 0;
// enumerate entries
virtual bool GetFirstEntry(wxString& str, long& lIndex) const = 0;
virtual bool GetNextEntry (wxString& str, long& lIndex) const = 0;
// get number of entries/subgroups in the current group, with or without
// it's subgroups
virtual size_t GetNumberOfEntries(bool bRecursive = FALSE) const = 0;
virtual size_t GetNumberOfGroups(bool bRecursive = FALSE) const = 0;
// tests of existence
// returns TRUE if the group by this name exists
virtual bool HasGroup(const wxString& strName) const = 0;
// same as above, but for an entry
virtual bool HasEntry(const wxString& strName) const = 0;
// returns TRUE if either a group or an entry with a given name exist
bool Exists(const wxString& strName) const
{ return HasGroup(strName) || HasEntry(strName); }
// key access: returns TRUE if value was really read, FALSE if default used
// (and if the key is not found the default value is returned.)
// read a string from the key
virtual bool Read(const wxString& key, wxString *pStr) const = 0;
virtual bool Read(const wxString& key, wxString *pStr, const wxString& defVal) const;
virtual wxString Read(const wxString& key, const wxString& defVal) const;
virtual bool Read(const wxString& key, long *pl) const = 0;
virtual bool Read(const wxString& key, long *pl, long defVal) const;
virtual long Read(const wxString& strKey, long defVal) const
{ long l; Read(strKey, &l, defVal); return l; }
// Convenience functions that are built on other forms
// double
virtual bool Read(const wxString& key, double* val) const;
virtual bool Read(const wxString& key, double* val, double defVal) const;
// bool
virtual bool Read(const wxString& key, bool* val) const;
virtual bool Read(const wxString& key, bool* val, bool defVal) const;
// write the value (return true on success)
virtual bool Write(const wxString& key, const wxString& value) = 0;
virtual bool Write(const wxString& key, long value) = 0;
// Convenience functions
virtual bool Write(const wxString& key, double value);
virtual bool Write(const wxString& key, bool value);
// permanently writes all changes
virtual bool Flush(bool bCurrentOnly = FALSE) = 0;
// delete entries/groups
// deletes the specified entry and the group it belongs to if
// it was the last key in it and the second parameter is true
virtual bool DeleteEntry(const wxString& key,
bool bDeleteGroupIfEmpty = TRUE) = 0;
// delete the group (with all subgroups)
virtual bool DeleteGroup(const wxString& key) = 0;
// delete the whole underlying object (disk file, registry key, ...)
// primarly for use by desinstallation routine.
virtual bool DeleteAll() = 0;
// options
// we can automatically expand environment variables in the config entries
// (this option is on by default, you can turn it on/off at any time)
bool IsExpandingEnvVars() const { return m_bExpandEnvVars; }
void SetExpandEnvVars(bool bDoIt = TRUE) { m_bExpandEnvVars = bDoIt; }
// recording of default values
void SetRecordDefaults(bool bDoIt = TRUE) { m_bRecordDefaults = bDoIt; }
bool IsRecordingDefaults() const { return m_bRecordDefaults; }
// does expansion only if needed
wxString ExpandEnvVars(const wxString& str) const
{
wxString tmp; // Required for BC++
if (IsExpandingEnvVars())
tmp = wxExpandEnvVars(str);
else
tmp = str;
return tmp;
}
// misc accessors
inline wxString GetAppName() const { return m_appName; }
inline wxString GetVendorName() const { return m_vendorName; }
inline void SetAppName(const wxString& appName) { m_appName = appName; }
inline void SetVendorName(const wxString& vendorName) { m_vendorName = vendorName; }
inline void SetStyle(long style) { m_style = style; }
inline long GetStyle() const { return m_style; }
protected:
static bool IsImmutable(const wxString& key)
{ return key[0] == wxCONFIG_IMMUTABLE_PREFIX; }
private:
// are we doing automatic environment variable expansion?
bool m_bExpandEnvVars;
// do we record default values?
bool m_bRecordDefaults;
// static variables
static wxConfigBase *ms_pConfig;
static bool ms_bAutoCreate;
// Application name and organisation name
wxString m_appName;
wxString m_vendorName;
// Style flag
long m_style;
};
// a handy little class which changes current path to the path of given entry
// and restores it in dtor: so if you declare a local variable of this type,
// you work in the entry directory and the path is automatically restored
// when the function returns
// Taken out of wxConfig since not all compilers can cope with nested classes.
class wxConfigPathChanger
{
public:
// ctor/dtor do path changing/restorin
wxConfigPathChanger(const wxConfigBase *pContainer, const wxString& strEntry);
~wxConfigPathChanger();
// get the key name
const wxString& Name() const { return m_strName; }
private:
wxConfigBase *m_pContainer; // object we live in
wxString m_strName, // name of entry (i.e. name only)
m_strOldPath; // saved path
bool m_bChanged; // was the path changed?
};
// ----------------------------------------------------------------------------
// the native wxConfigBase implementation
// ----------------------------------------------------------------------------
// under Windows we prefer to use the native implementation
#if defined(__WXMSW__) && wxCONFIG_WIN32_NATIVE
#ifdef __WIN32__
#define wxConfig wxRegConfig
#define classwxConfig classwxRegConfig
#else //WIN16
#define wxConfig wxIniConfig
#define classwxConfig classwxIniConfig
#endif
#else // either we're under Unix or wish to use files even under Windows
#define wxConfig wxFileConfig
#define classwxConfig classwxFileConfig
#endif
#endif // _WX_CONFIG_H_

View File

@@ -1,186 +1,17 @@
///////////////////////////////////////////////////////////////////////////////
// Name: config.h
// Purpose: declaration of the base class of all config implementations
// (see also: fileconf.h and msw/regconf.h)
// Author: Karsten Ball<6C>der & Vadim Zeitlin
// Modified by:
// Created: 07.04.98 (adapted from appconf.h)
// RCS-ID: $Id$
// Copyright: (c) 1997 Karsten Ball<6C>der Ballueder@usa.net
// Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
// Licence: wxWindows license
///////////////////////////////////////////////////////////////////////////////
#ifndef _WX_CONFIG_H_BASE_
#define _WX_CONFIG_H_BASE_
#ifndef _APPCONF_H
#define _APPCONF_H
#include "wx/confbase.h"
#ifdef __GNUG__
#pragma interface "config.h"
#if defined(__WXMSW__) && defined(wxCONFIG_WIN32_NATIVE)
# ifdef __WIN32__
# include "wx/msw/regconf.h"
#else
# include "wx/msw/iniconf.h"
# endif
#else
# include "wx/fileconf.h"
#endif
// ----------------------------------------------------------------------------
// compile options
// ----------------------------------------------------------------------------
// 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
// ----------------------------------------------------------------------------
// constants
// ----------------------------------------------------------------------------
/// shall we be case sensitive in parsing variable names?
#ifndef APPCONF_CASE_SENSITIVE
#define APPCONF_CASE_SENSITIVE FALSE
#endif
/// separates group and entry names
#ifndef APPCONF_PATH_SEPARATOR
#define APPCONF_PATH_SEPARATOR '/'
#endif
/// introduces immutable entries
#ifndef APPCONF_IMMUTABLE_PREFIX
#define APPCONF_IMMUTABLE_PREFIX '!'
#endif
/// should we use registry instead of configuration files under Win32?
#ifndef APPCONF_WIN32_NATIVE
#define APPCONF_WIN32_NATIVE TRUE
#endif
// ----------------------------------------------------------------------------
// various helper global functions
// ----------------------------------------------------------------------------
/*
Replace environment variables ($SOMETHING) with their values. The format is
$VARNAME or ${VARNAME} where VARNAME contains alphanumeric characters and
'_' only. '$' must be escaped ('\$') in order to be taken literally.
*/
extern wxString ExpandEnvVars(const wxString& str);
/*
Split path into parts removing '..' in progress
*/
extern void SplitPath(wxArrayString& aParts, const char *sz);
// ----------------------------------------------------------------------------
// abstract base class wxConfig which defines the interface for derived classes
//
// wxConfig organizes the items in a tree-like structure (modeled after the
// Unix/Dos filesystem). There are groups (directories) and keys (files).
// There is always one current group given by the current path.
//
// Keys are pairs "key_name = value" where value may be of string or integer
// (long) type (@@@ doubles and other types such as wxDate coming soon).
// ----------------------------------------------------------------------------
class wxConfig
{
public:
// static functions
// sets the config object, returns the previous pointer
static wxConfig *Set(wxConfig *pConfig);
// get the config object, creates it on demand
static wxConfig *Get() { if ( !ms_pConfig ) Create(); return ms_pConfig; }
// create a new config object
static void Create();
// ctor & virtual dtor
wxConfig() { }
virtual ~wxConfig();
// path management
// set current path: if the first character is '/', it's the absolute path,
// otherwise it's a relative path. '..' is supported. If the strPath
// doesn't exist it is created.
virtual void SetPath(const wxString& strPath) = 0;
// retrieve the current path (always as absolute path)
virtual const wxString& GetPath() const = 0;
// enumeration: all functions here return false when there are no more items.
// you must pass the same lIndex to GetNext and GetFirst (don't modify it)
// enumerate subgroups
virtual bool GetFirstGroup(wxString& str, long& lIndex) = 0;
virtual bool GetNextGroup (wxString& str, long& lIndex) = 0;
// enumerate entries
virtual bool GetFirstEntry(wxString& str, long& lIndex) = 0;
virtual bool GetNextEntry (wxString& str, long& lIndex) = 0;
// tests of existence
// returns TRUE if the group by this name exists
virtual bool HasGroup(const wxString& strName) const = 0;
// same as above, but for an entry
virtual bool HasEntry(const wxString& strName) const = 0;
// returns TRUE if either a group or an entry with a given name exist
bool Exists(const wxString& strName) const
{ return HasGroup(strName) || HasEntry(strName); }
// key access: returns TRUE if value was really read, FALSE if default used
// (and if the key is not found the default value is returned.)
// read a string from the key
virtual bool Read(wxString *pStr, const char *szKey,
const char *szDefault = NULL) const = 0;
// another version using statis buffer - it means it will be overwritten
// after each call to this function!
virtual const char *Read(const char *szKey,
const char *szDefault = NULL) const;
// the same for longs
virtual long Read(const char *szKey, long lDefault) const
{ long l; Read(&l, szKey, lDefault); return l; }
// and another version: returns true if default value is returned
virtual bool Read(long *pl, const char *szKey, long lDefault = 0) const = 0;
// write the value (return true on success)
virtual bool Write(const char *szKey, const char *szValue) = 0;
virtual bool Write(const char *szKey, long lValue) = 0;
// permanently writes all changes
virtual bool Flush(bool bCurrentOnly = FALSE) = 0;
// delete entries/groups
// deletes the specified entry and the group it belongs to if
// it was the last key in it and the second parameter is true
virtual bool DeleteEntry(const char *szKey,
bool bDeleteGroupIfEmpty = TRUE) = 0;
// delete the group (with all subgroups)
virtual bool DeleteGroup(const char *szKey) = 0;
// delete the whole underlying object (disk file, registry key, ...)
// primarly for use by desinstallation routine.
virtual bool DeleteAll() = 0;
protected:
static bool IsImmutable(const char *szKey)
{ return *szKey == APPCONF_IMMUTABLE_PREFIX; }
// a handy little class which changes current path to the path of given entry
// and restores it in dtor: so if you declare a local variable of this type,
// you work in the entry directory and the path is automatically restored
// when function returns
class PathChanger
{
public:
// ctor/dtor do path changing/restorin
PathChanger(const wxConfig *pContainer, const wxString& strEntry);
~PathChanger();
// get the key name
const wxString& Name() const { return m_strName; }
private:
wxConfig *m_pContainer; // object we live in
wxString m_strName, // name of entry (i.e. name only)
m_strOldPath; // saved path
bool m_bChanged; // was the path changed?
};
// are we doing automatic environment variable expansion?
bool m_bExpandEnvVars;
// static variables
static wxConfig *ms_pConfig;
};
#endif //_APPCONF_H
// _WX_CONFIG_H_BASE_

View File

@@ -1,13 +1,19 @@
#ifndef __CONTROLH_BASE__
#define __CONTROLH_BASE__
#ifndef _WX_CONTROL_H_BASE_
#define _WX_CONTROL_H_BASE_
#if defined(__WINDOWS__)
#if defined(__WXMSW__)
#include "wx/msw/control.h"
#elif defined(__MOTIF__)
#include "wx/xt/control.h"
#elif defined(__GTK__)
#elif defined(__WXMOTIF__)
#include "wx/motif/control.h"
#elif defined(__WXGTK__)
#include "wx/gtk/control.h"
#elif defined(__WXQT__)
#include "wx/qt/control.h"
#elif defined(__WXMAC__)
#include "wx/mac/control.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/control.h"
#endif
#endif
// __CONTROLH_BASE__
// _WX_CONTROL_H_BASE_

View File

@@ -1,13 +1,19 @@
#ifndef __CURSORH_BASE__
#define __CURSORH_BASE__
#ifndef _WX_CURSOR_H_BASE_
#define _WX_CURSOR_H_BASE_
#if defined(__WINDOWS__)
#if defined(__WXMSW__)
#include "wx/msw/cursor.h"
#elif defined(__MOTIF__)
#include "wx/xt/cursor.h"
#elif defined(__GTK__)
#elif defined(__WXMOTIF__)
#include "wx/motif/cursor.h"
#elif defined(__WXGTK__)
#include "wx/gtk/cursor.h"
#elif defined(__WXQT__)
#include "wx/qt/cursor.h"
#elif defined(__WXMAC__)
#include "wx/mac/cursor.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/cursor.h"
#endif
#endif
// __CURSORH_BASE__
// _WX_CURSOR_H_BASE_

View File

@@ -10,8 +10,8 @@
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef __WXDATEH__
#define __WXDATEH__
#ifndef _WX_DATE_H_
#define _WX_DATE_H_
#ifdef __GNUG__
#pragma interface "date.h"
@@ -128,4 +128,4 @@ class WXDLLEXPORT wxDate: public wxObject
#endif
#endif
// __WXDATEH__
// _WX_DATE_H_

View File

@@ -9,22 +9,19 @@
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
#ifndef __DATSTREAMH__
#define __DATSTREAMH__
#ifndef _WX_DATSTREAM_H_
#define _WX_DATSTREAM_H_
#ifdef __GNUG__
#pragma interface "datstrm.h"
#endif
#include "wx/wx.h"
#include <wx/stream.h>
class wxDataStream {
class wxDataInputStream: public wxFilterInputStream {
public:
wxDataStream(iostream& s);
wxDataStream(istream& s);
wxDataStream(ostream& s);
virtual ~wxDataStream();
wxDataInputStream(wxInputStream& s);
virtual ~wxDataInputStream();
unsigned long Read32();
unsigned short Read16();
@@ -32,6 +29,12 @@ public:
double ReadDouble();
wxString ReadLine();
wxString ReadString();
};
class wxDataOutputStream: public wxFilterOutputStream {
public:
wxDataOutputStream(wxOutputStream& s);
virtual ~wxDataOutputStream();
void Write32(unsigned long i);
void Write16(unsigned short i);
@@ -39,10 +42,7 @@ public:
void WriteDouble(double d);
void WriteLine(const wxString& line);
void WriteString(const wxString& string);
protected:
istream *m_istream;
ostream *m_ostream;
};
#endif
// __HELPBASEH__
// _WX_DATSTREAM_H_

362
include/wx/db.h Normal file
View File

@@ -0,0 +1,362 @@
///////////////////////////////////////////////////////////////////////////////
// Name: db.h
// Purpose: Header file wxDB class. The wxDB class represents a connection
// to an ODBC data source. The wxDB class allows operations on the data
// source such as opening and closing the data source.
// Author: Doug Card
// Modified by:
// Created: 9.96
// RCS-ID: $Id$
// Copyright: (c) 1996 Remstar International, Inc.
// Licence: wxWindows licence, plus:
// Notice: This class library and its intellectual design are free of charge for use,
// modification, enhancement, debugging under the following conditions:
// 1) These classes may only be used as part of the implementation of a
// wxWindows-based application
// 2) All enhancements and bug fixes are to be submitted back to the wxWindows
// user groups free of all charges for use with the wxWindows library.
// 3) These classes may not be distributed as part of any other class library,
// DLL, text (written or electronic), other than a complete distribution of
// the wxWindows GUI development toolkit.
///////////////////////////////////////////////////////////////////////////////
/*
// SYNOPSIS START
// SYNOPSIS STOP
*/
#ifndef DB_DOT_H
#define DB_DOT_H
#ifdef __GNUG__
#pragma interface "db.h"
#endif
#if defined(wx_msw) || defined(WIN32)
#include <windows.h>
#endif
#define ODBCVER 0x0250
#include <sql.h>
#include <sqlext.h>
enum enumDummy {enumDum1};
#define SQL_C_BOOLEAN (sizeof(int) == 2 ? SQL_C_USHORT : SQL_C_ULONG)
#define SQL_C_ENUM (sizeof(enumDummy) == 2 ? SQL_C_USHORT : SQL_C_ULONG) //glt 2-21-97
/*
#ifndef Bool
#define Bool int
#endif
#ifndef TRUE
#define TRUE 1
#endif
#ifndef FALSE
#define FALSE 0
#endif
*/
// Database Globals
const DB_TYPE_NAME_LEN = 40;
const DB_MAX_STATEMENT_LEN = 2048;
const DB_MAX_WHERE_CLAUSE_LEN = 1024;
const DB_MAX_ERROR_MSG_LEN = 512;
const DB_MAX_ERROR_HISTORY = 5;
const DB_MAX_TABLE_NAME_LEN = 128;
const DB_MAX_COLUMN_NAME_LEN = 128;
const DB_DATA_TYPE_VARCHAR = 1;
const DB_DATA_TYPE_INTEGER = 2;
const DB_DATA_TYPE_FLOAT = 3;
const DB_DATA_TYPE_DATE = 4;
const DB_SELECT_KEYFIELDS = 1;
const DB_SELECT_WHERE = 2;
const DB_SELECT_MATCHING = 3;
const DB_SELECT_STATEMENT = 4;
const DB_UPD_KEYFIELDS = 1;
const DB_UPD_WHERE = 2;
const DB_DEL_KEYFIELDS = 1;
const DB_DEL_WHERE = 2;
const DB_DEL_MATCHING = 3;
const DB_WHERE_KEYFIELDS = 1;
const DB_WHERE_MATCHING = 2;
const DB_CURSOR0 = 0;
const DB_CURSOR1 = 1;
const DB_CURSOR2 = 2;
//const DB_CURSOR3 = 3;
//const DB_CURSOR4 = 4;
//const DB_CURSOR5 = 5;
const DB_GRANT_SELECT = 1;
const DB_GRANT_INSERT = 2;
const DB_GRANT_UPDATE = 4;
const DB_GRANT_DELETE = 8;
const DB_GRANT_ALL = DB_GRANT_SELECT | DB_GRANT_INSERT | DB_GRANT_UPDATE | DB_GRANT_DELETE;
// ODBC Error codes (derived from ODBC SqlState codes)
enum ODBC_ERRORS
{
DB_FAILURE = 0,
DB_SUCCESS = 1,
DB_ERR_NOT_IN_USE,
DB_ERR_GENERAL_WARNING, // SqlState = '01000'
DB_ERR_DISCONNECT_ERROR, // SqlState = '01002'
DB_ERR_DATA_TRUNCATED, // SqlState = '01004'
DB_ERR_PRIV_NOT_REVOKED, // SqlState = '01006'
DB_ERR_INVALID_CONN_STR_ATTR, // SqlState = '01S00'
DB_ERR_ERROR_IN_ROW, // SqlState = '01S01'
DB_ERR_OPTION_VALUE_CHANGED, // SqlState = '01S02'
DB_ERR_NO_ROWS_UPD_OR_DEL, // SqlState = '01S03'
DB_ERR_MULTI_ROWS_UPD_OR_DEL, // SqlState = '01S04'
DB_ERR_WRONG_NO_OF_PARAMS, // SqlState = '07001'
DB_ERR_DATA_TYPE_ATTR_VIOL, // SqlState = '07006'
DB_ERR_UNABLE_TO_CONNECT, // SqlState = '08001'
DB_ERR_CONNECTION_IN_USE, // SqlState = '08002'
DB_ERR_CONNECTION_NOT_OPEN, // SqlState = '08003'
DB_ERR_REJECTED_CONNECTION, // SqlState = '08004'
DB_ERR_CONN_FAIL_IN_TRANS, // SqlState = '08007'
DB_ERR_COMM_LINK_FAILURE, // SqlState = '08S01'
DB_ERR_INSERT_VALUE_LIST_MISMATCH, // SqlState = '21S01'
DB_ERR_DERIVED_TABLE_MISMATCH, // SqlState = '21S02'
DB_ERR_STRING_RIGHT_TRUNC, // SqlState = '22001'
DB_ERR_NUMERIC_VALUE_OUT_OF_RNG, // SqlState = '22003'
DB_ERR_ERROR_IN_ASSIGNMENT, // SqlState = '22005'
DB_ERR_DATETIME_FLD_OVERFLOW, // SqlState = '22008'
DB_ERR_DIVIDE_BY_ZERO, // SqlState = '22012'
DB_ERR_STR_DATA_LENGTH_MISMATCH, // SqlState = '22026'
DB_ERR_INTEGRITY_CONSTRAINT_VIOL, // SqlState = '23000'
DB_ERR_INVALID_CURSOR_STATE, // SqlState = '24000'
DB_ERR_INVALID_TRANS_STATE, // SqlState = '25000'
DB_ERR_INVALID_AUTH_SPEC, // SqlState = '28000'
DB_ERR_INVALID_CURSOR_NAME, // SqlState = '34000'
DB_ERR_SYNTAX_ERROR_OR_ACCESS_VIOL, // SqlState = '37000'
DB_ERR_DUPLICATE_CURSOR_NAME, // SqlState = '3C000'
DB_ERR_SERIALIZATION_FAILURE, // SqlState = '40001'
DB_ERR_SYNTAX_ERROR_OR_ACCESS_VIOL2, // SqlState = '42000'
DB_ERR_OPERATION_ABORTED, // SqlState = '70100'
DB_ERR_UNSUPPORTED_FUNCTION, // SqlState = 'IM001'
DB_ERR_NO_DATA_SOURCE, // SqlState = 'IM002'
DB_ERR_DRIVER_LOAD_ERROR, // SqlState = 'IM003'
DB_ERR_SQLALLOCENV_FAILED, // SqlState = 'IM004'
DB_ERR_SQLALLOCCONNECT_FAILED, // SqlState = 'IM005'
DB_ERR_SQLSETCONNECTOPTION_FAILED, // SqlState = 'IM006'
DB_ERR_NO_DATA_SOURCE_DLG_PROHIB, // SqlState = 'IM007'
DB_ERR_DIALOG_FAILED, // SqlState = 'IM008'
DB_ERR_UNABLE_TO_LOAD_TRANSLATION_DLL, // SqlState = 'IM009'
DB_ERR_DATA_SOURCE_NAME_TOO_LONG, // SqlState = 'IM010'
DB_ERR_DRIVER_NAME_TOO_LONG, // SqlState = 'IM011'
DB_ERR_DRIVER_KEYWORD_SYNTAX_ERROR, // SqlState = 'IM012'
DB_ERR_TRACE_FILE_ERROR, // SqlState = 'IM013'
DB_ERR_TABLE_OR_VIEW_ALREADY_EXISTS, // SqlState = 'S0001'
DB_ERR_TABLE_NOT_FOUND, // SqlState = 'S0002'
DB_ERR_INDEX_ALREADY_EXISTS, // SqlState = 'S0011'
DB_ERR_INDEX_NOT_FOUND, // SqlState = 'S0012'
DB_ERR_COLUMN_ALREADY_EXISTS, // SqlState = 'S0021'
DB_ERR_COLUMN_NOT_FOUND, // SqlState = 'S0022'
DB_ERR_NO_DEFAULT_FOR_COLUMN, // SqlState = 'S0023'
DB_ERR_GENERAL_ERROR, // SqlState = 'S1000'
DB_ERR_MEMORY_ALLOCATION_FAILURE, // SqlState = 'S1001'
DB_ERR_INVALID_COLUMN_NUMBER, // SqlState = 'S1002'
DB_ERR_PROGRAM_TYPE_OUT_OF_RANGE, // SqlState = 'S1003'
DB_ERR_SQL_DATA_TYPE_OUT_OF_RANGE, // SqlState = 'S1004'
DB_ERR_OPERATION_CANCELLED, // SqlState = 'S1008'
DB_ERR_INVALID_ARGUMENT_VALUE, // SqlState = 'S1009'
DB_ERR_FUNCTION_SEQUENCE_ERROR, // SqlState = 'S1010'
DB_ERR_OPERATION_INVALID_AT_THIS_TIME, // SqlState = 'S1011'
DB_ERR_INVALID_TRANS_OPERATION_CODE, // SqlState = 'S1012'
DB_ERR_NO_CURSOR_NAME_AVAIL, // SqlState = 'S1015'
DB_ERR_INVALID_STR_OR_BUF_LEN, // SqlState = 'S1090'
DB_ERR_DESCRIPTOR_TYPE_OUT_OF_RANGE, // SqlState = 'S1091'
DB_ERR_OPTION_TYPE_OUT_OF_RANGE, // SqlState = 'S1092'
DB_ERR_INVALID_PARAM_NO, // SqlState = 'S1093'
DB_ERR_INVALID_SCALE_VALUE, // SqlState = 'S1094'
DB_ERR_FUNCTION_TYPE_OUT_OF_RANGE, // SqlState = 'S1095'
DB_ERR_INF_TYPE_OUT_OF_RANGE, // SqlState = 'S1096'
DB_ERR_COLUMN_TYPE_OUT_OF_RANGE, // SqlState = 'S1097'
DB_ERR_SCOPE_TYPE_OUT_OF_RANGE, // SqlState = 'S1098'
DB_ERR_NULLABLE_TYPE_OUT_OF_RANGE, // SqlState = 'S1099'
DB_ERR_UNIQUENESS_OPTION_TYPE_OUT_OF_RANGE, // SqlState = 'S1100'
DB_ERR_ACCURACY_OPTION_TYPE_OUT_OF_RANGE, // SqlState = 'S1101'
DB_ERR_DIRECTION_OPTION_OUT_OF_RANGE, // SqlState = 'S1103'
DB_ERR_INVALID_PRECISION_VALUE, // SqlState = 'S1104'
DB_ERR_INVALID_PARAM_TYPE, // SqlState = 'S1105'
DB_ERR_FETCH_TYPE_OUT_OF_RANGE, // SqlState = 'S1106'
DB_ERR_ROW_VALUE_OUT_OF_RANGE, // SqlState = 'S1107'
DB_ERR_CONCURRENCY_OPTION_OUT_OF_RANGE, // SqlState = 'S1108'
DB_ERR_INVALID_CURSOR_POSITION, // SqlState = 'S1109'
DB_ERR_INVALID_DRIVER_COMPLETION, // SqlState = 'S1110'
DB_ERR_INVALID_BOOKMARK_VALUE, // SqlState = 'S1111'
DB_ERR_DRIVER_NOT_CAPABLE, // SqlState = 'S1C00'
DB_ERR_TIMEOUT_EXPIRED // SqlState = 'S1T00'
};
struct DbStuff
{
HENV Henv;
char Dsn[SQL_MAX_DSN_LENGTH+1]; // Data Source Name
char Uid[20]; // User ID
char AuthStr[20]; // Authorization string (password)
};
typedef struct
{
char TypeName[DB_TYPE_NAME_LEN];
int FsqlType;
long Precision;
short CaseSensitive;
// short MinimumScale;
short MaximumScale;
} SqlTypeInfo;
class CcolInf
{
public:
char tableName[DB_MAX_TABLE_NAME_LEN+1];
char colName[DB_MAX_COLUMN_NAME_LEN+1];
int sqlDataType;
};
class wxDB
{
private:
// Private data
bool dbIsOpen;
char *dsn; // Data source name
char *uid; // User ID
char *authStr; // Authorization string (password)
// Private member functions
bool getDbInfo(void);
bool getDataTypeInfo(SWORD fSqlType, SqlTypeInfo &structSQLTypeInfo);
bool setConnectionOptions(void);
void logError(char *errMsg, char *SQLState);
public:
// The following structure contains database information gathered from the
// datasource when the datasource is first opened.
struct
{
char dbmsName[40]; // Name of the dbms product
char dbmsVer[20]; // Version # of the dbms product
char driverName[40]; // Driver name
char odbcVer[20]; // ODBC version of the driver
char drvMgrOdbcVer[20]; // ODBC version of the driver manager
char driverVer[40]; // Driver version
char serverName[40]; // Server Name, typically a connect string
char databaseName[128]; // Database filename
char outerJoins[2]; // Indicates whether the data source supports outer joins
char procedureSupport[2]; // Indicates whether the data source supports stored procedures
UWORD maxConnections; // Maximum # of connections the data source supports
UWORD maxStmts; // Maximum # of HSTMTs per HDBC
UWORD apiConfLvl; // ODBC API conformance level
UWORD cliConfLvl; // Indicates whether the data source is SAG compliant
UWORD sqlConfLvl; // SQL conformance level
UWORD cursorCommitBehavior; // Indicates how cursors are affected by a db commit
UWORD cursorRollbackBehavior; // Indicates how cursors are affected by a db rollback
UWORD supportNotNullClause; // Indicates if data source supports NOT NULL clause
char supportIEF[2]; // Integrity Enhancement Facility (Referential Integrity)
UDWORD txnIsolation; // Default transaction isolation level supported by the driver
UDWORD txnIsolationOptions; // Transaction isolation level options available
UDWORD fetchDirections; // Fetch directions supported
UDWORD lockTypes; // Lock types supported in SQLSetPos
UDWORD posOperations; // Position operations supported in SQLSetPos
UDWORD posStmts; // Position statements supported
UDWORD scrollConcurrency; // Concurrency control options supported for scrollable cursors
UDWORD scrollOptions; // Scroll Options supported for scrollable cursors
UDWORD staticSensitivity; // Indicates if additions, deletions and updates can be detected
UWORD txnCapable; // Indicates if the data source supports transactions
UDWORD loginTimeout; // Number seconds to wait for a login request
} dbInf;
// ODBC handles
HENV henv; // ODBC Environment handle
HDBC hdbc; // ODBC DB Connection handle
HSTMT hstmt; // ODBC Statement handle
// ODBC Error Inf.
char sqlState[20];
SDWORD nativeError;
char errorMsg[SQL_MAX_MESSAGE_LENGTH];
SWORD cbErrorMsg;
char errorList[DB_MAX_ERROR_HISTORY][DB_MAX_ERROR_MSG_LEN];
int DB_STATUS;
//Error reporting mode
bool silent;
// Inf. about logical data types VARCHAR, INTEGER, FLOAT and DATE.
// This inf. is obtained from the ODBC driver by use of the
// SQLGetTypeInfo() function. The key piece of inf. is the
// type name the data source uses for each logical data type.
// e.g. VARCHAR; Oracle calls it VARCHAR2.
SqlTypeInfo typeInfVarchar, typeInfInteger, typeInfFloat, typeInfDate;
// Public member functions
wxDB(HENV &aHenv);
bool Open(char *Dsn, char *Uid, char *AuthStr); // Data Source Name, User ID, Password
void Close(void);
bool CommitTrans(void);
bool RollbackTrans(void);
bool DispAllErrors(HENV aHenv, HDBC aHdbc = SQL_NULL_HDBC, HSTMT aHstmt = SQL_NULL_HSTMT);
bool GetNextError(HENV aHenv, HDBC aHdbc = SQL_NULL_HDBC, HSTMT aHstmt = SQL_NULL_HSTMT);
void DispNextError(void);
bool CreateView(char *viewName, char *colList, char *pSqlStmt);
bool ExecSql(char *pSqlStmt);
bool Grant(int privileges, char *tableName, char *userList = "PUBLIC");
int TranslateSqlState(char *SQLState);
CcolInf *GetColumns(char *tableName[]);
char *GetDatabaseName(void) {return dbInf.dbmsName;}
char *GetDataSource(void) {return dsn;}
char *GetUsername(void) {return uid;}
char *GetPassword(void) {return authStr;}
bool IsOpen(void) {return dbIsOpen;}
HENV GetHENV(void) {return henv;}
HDBC GetHDBC(void) {return hdbc;}
HSTMT GetHSTMT(void) {return hstmt;}
bool TableExists(char *tableName); // Table name can refer to a table, view, alias or synonym
void LogError(char *errMsg, char *SQLState = 0) {logError(errMsg, SQLState);}
}; // wxDB
// This structure forms a node in a linked list. The linked list of "DbList" objects
// keeps track of allocated database connections. This allows the application to
// open more than one database connection through ODBC for multiple transaction support
// or for multiple database support.
struct DbList
{
DbList *PtrPrev; // Pointer to previous item in the list
char Dsn[SQL_MAX_DSN_LENGTH+1]; // Data Source Name
wxDB *PtrDb; // Pointer to the wxDB object
bool Free; // Is item free or in use?
DbList *PtrNext; // Pointer to next item in the list
};
// The following routines allow a user to get new database connections, free them
// for other code segments to use, or close all of them when the application has
// completed.
wxDB *GetDbConnection(DbStuff *pDbStuff);
bool FreeDbConnection(wxDB *pDb);
void CloseDbConnections(void);
int NumberDbConnectionsInUse(void);
// This routine allows you to query a driver manager
// for a list of available datasources. Call this routine
// the first time using SQL_FETCH_FIRST. Continue to call it
// using SQL_FETCH_NEXT until you've exhausted the list.
bool GetDataSource(HENV henv, char *Dsn, SWORD DsnMax, char *DsDesc, SWORD DsDescMax,
UWORD direction = SQL_FETCH_NEXT);
#endif

165
include/wx/dbtable.h Normal file
View File

@@ -0,0 +1,165 @@
///////////////////////////////////////////////////////////////////////////////
// Name: table.h
// Purpose: Declaration of the wxTable class.
// Author: Doug Card
// Modified by:
// Created: 9.96
// RCS-ID: $Id$
// Copyright: (c) 1996 Remstar International, Inc.
// Licence: wxWindows licence, plus:
// Notice: This class library and its intellectual design are free of charge for use,
// modification, enhancement, debugging under the following conditions:
// 1) These classes may only be used as part of the implementation of a
// wxWindows-based application
// 2) All enhancements and bug fixes are to be submitted back to the wxWindows
// user groups free of all charges for use with the wxWindows library.
// 3) These classes may not be distributed as part of any other class library,
// DLL, text (written or electronic), other than a complete distribution of
// the wxWindows GUI development toolkit.
///////////////////////////////////////////////////////////////////////////////
/*
// SYNOPSIS START
// SYNOPSIS STOP
*/
#ifndef TABLE_DOT_H
#define TABLE_DOT_H
#ifdef __GNUG__
#pragma interface "dbtable.h"
#endif
#include "wx/db.h"
const ROWID_LEN = 24; // 18 is the max, 24 is in case it gets larger
// The following class is used to define a column of a table.
// The wxTable constructor will dynamically allocate as many of
// these as there are columns in the table. The class derived
// from wxTable must initialize these column definitions in it's
// constructor. These column definitions provide inf. to the
// wxTable class which allows it to create a table in the data
// source, exchange data between the data source and the C++
// object, and so on.
class CcolDef
{
public:
char ColName[DB_MAX_COLUMN_NAME_LEN+1]; // Column Name glt 4/19/97 added one for the null terminator
int DbDataType; // Logical Data Type; e.g. DB_DATA_TYPE_INTEGER
int SqlCtype; // C data type; e.g. SQL_C_LONG
void *PtrDataObj; // Address of the data object
int SzDataObj; // Size, in bytes, of the data object
bool KeyField; // TRUE if this column is part of the PRIMARY KEY to the table; Date fields should NOT be KeyFields.
bool Updateable; // Specifies whether this column is updateable
bool InsertAllowed; // Specifies whether this column should be included in an INSERT statement
bool DerivedCol; // Specifies whether this column is a derived value
SDWORD CbValue; // Internal use only!!!
}; // CcolDef
// This structure is used when creating secondary indexes.
class CidxDef
{
public:
char ColName[DB_MAX_COLUMN_NAME_LEN+1]; // Column Name glt 4/19/97 added one for the null terminator
bool Ascending;
}; // CidxDef
class wxTable
{
private:
// Private member variables
int currCursorNo;
// Private member functions
bool bindInsertParams(void);
bool bindUpdateParams(void);
bool bindCols(HSTMT cursor);
bool getRec(UWORD fetchType);
bool execDelete(char *pSqlStmt);
bool execUpdate(char *pSqlStmt);
bool query(int queryType, bool forUpdate, bool distinct, char *pSqlStmt = 0);
public:
// Pointer to the database object this table belongs to
wxDB *pDb;
// ODBC Handles
HENV henv; // ODBC Environment handle
HDBC hdbc; // ODBC DB Connection handle
HSTMT hstmt; // ODBC Statement handle
// HSTMT c0, c1, c2, c3, c4, c5; // Cursors 0 through 5
HSTMT c0, c1, c2; // Limited to Cursors 0 through 2 for now
HSTMT hstmtInsert; // ODBC Statement handle used specifically for inserts
HSTMT hstmtDelete; // ODBC Statement handle used specifically for deletes
HSTMT hstmtUpdate; // ODBC Statement handle used specifically for updates
HSTMT hstmtCount; // ODBC Statement handle used specifically for COUNT(*)
// Table Inf.
char tableName[DB_MAX_TABLE_NAME_LEN+1]; // Table name
char queryTableName[DB_MAX_TABLE_NAME_LEN+1]; // Query Table Name
int noCols; // # of columns in the table
// Column Definitions
CcolDef *colDefs; // Array of CcolDef structures
// Where and Order By clauses
char *where; // Standard SQL where clause, minus the word WHERE
char *orderBy; // Standard SQL order by clause, minus the ORDER BY
// Flags
bool selectForUpdate;
// Public member functions
wxTable(wxDB *pwxDB, const char *tblName, const int nCols, const char *qryTblName = 0);
~wxTable();
bool Open(void);
bool CreateTable(void);
bool CreateIndex(char * idxName, bool unique, int noIdxCols, CidxDef *pIdxDefs);
bool CloseCursor(HSTMT cursor);
int Insert(void);
bool Update(void);
bool Update(char *pSqlStmt);
bool UpdateWhere(char *pWhereClause);
bool Delete(void);
bool DeleteWhere(char *pWhereClause);
bool DeleteMatching(void);
bool Query(bool forUpdate = FALSE, bool distinct = FALSE);
bool QueryBySqlStmt(char *pSqlStmt);
bool QueryMatching(bool forUpdate = FALSE, bool distinct = FALSE);
bool QueryOnKeyFields(bool forUpdate = FALSE, bool distinct = FALSE);
bool GetNext(void) { return(getRec(SQL_FETCH_NEXT)); }
bool operator++(int) { return(getRec(SQL_FETCH_NEXT)); }
#ifndef FWD_ONLY_CURSORS
bool GetPrev(void) { return(getRec(SQL_FETCH_PRIOR)); }
bool operator--(int) { return(getRec(SQL_FETCH_PRIOR)); }
bool GetFirst(void) { return(getRec(SQL_FETCH_FIRST)); }
bool GetLast(void) { return(getRec(SQL_FETCH_LAST)); }
#endif
bool IsCursorClosedOnCommit(void);
bool IsColNull(int colNo);
UWORD GetRowNum(void);
void GetSelectStmt(char *pSqlStmt, int typeOfSelect, bool distinct);
void GetDeleteStmt(char *pSqlStmt, int typeOfDel, char *pWhereClause = 0);
void GetUpdateStmt(char *pSqlStmt, int typeOfUpd, char *pWhereClause = 0);
void GetWhereClause(char *pWhereClause, int typeOfWhere);
bool CanSelectForUpdate(void);
bool CanUpdByROWID(void);
void ClearMemberVars(void);
bool SetQueryTimeout(UDWORD nSeconds);
void SetColDefs (int index, char *fieldName, int dataType, void *pData, int cType,
int size, bool keyField = FALSE, bool upd = TRUE,
bool insAllow = TRUE, bool derivedCol = FALSE);
bool SetCursor(int cursorNo = DB_CURSOR0);
int GetCursor(void) { return(currCursorNo); }
ULONG Count(void);
int DB_STATUS(void) { return(pDb->DB_STATUS); }
bool Refresh(void);
}; // wxTable
#endif

View File

@@ -1,13 +1,19 @@
#ifndef __DCH_BASE__
#define __DCH_BASE__
#ifndef _WX_DC_H_BASE_
#define _WX_DC_H_BASE_
#if defined(__WINDOWS__)
#if defined(__WXMSW__)
#include "wx/msw/dc.h"
#elif defined(__MOTIF__)
#include "wx/xt/dc.h"
#elif defined(__GTK__)
#elif defined(__WXMOTIF__)
#include "wx/motif/dc.h"
#elif defined(__WXGTK__)
#include "wx/gtk/dc.h"
#elif defined(__WXQT__)
#include "wx/qt/dc.h"
#elif defined(__WXMAC__)
#include "wx/mac/dc.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/dc.h"
#endif
#endif
// __DCH_BASE__
// _WX_DC_H_BASE_

View File

@@ -1,13 +1,19 @@
#ifndef __DCCLIENTH_BASE__
#define __DCCLIENTH_BASE__
#ifndef _WX_DCCLIENT_H_BASE_
#define _WX_DCCLIENT_H_BASE_
#if defined(__WINDOWS__)
#if defined(__WXMSW__)
#include "wx/msw/dcclient.h"
#elif defined(__MOTIF__)
#include "wx/xt/dcclient.h"
#elif defined(__GTK__)
#elif defined(__WXMOTIF__)
#include "wx/motif/dcclient.h"
#elif defined(__WXGTK__)
#include "wx/gtk/dcclient.h"
#elif defined(__WXQT__)
#include "wx/qt/dcclient.h"
#elif defined(__WXMAC__)
#include "wx/mac/dcclient.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/dcclient.h"
#endif
#endif
// __DCCLIENTH_BASE__
// _WX_DCCLIENT_H_BASE_

View File

@@ -1,13 +1,19 @@
#ifndef __DCMEMORYH_BASE__
#define __DCMEMORYH_BASE__
#ifndef _WX_DCMEMORY_H_BASE_
#define _WX_DCMEMORY_H_BASE_
#if defined(__WINDOWS__)
#if defined(__WXMSW__)
#include "wx/msw/dcmemory.h"
#elif defined(__MOTIF__)
#include "wx/xt/dcmemory.h"
#elif defined(__GTK__)
#elif defined(__WXMOTIF__)
#include "wx/motif/dcmemory.h"
#elif defined(__WXGTK__)
#include "wx/gtk/dcmemory.h"
#elif defined(__WXQT__)
#include "wx/qt/dcmemory.h"
#elif defined(__WXMAC__)
#include "wx/mac/dcmemory.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/dcmemory.h"
#endif
#endif
// __DCMEMORYH_BASE__
// _WX_DCMEMORY_H_BASE_

View File

@@ -1,9 +1,9 @@
#ifndef __DCPRINTH_BASE__
#define __DCPRINTH_BASE__
#ifndef _WX_DCPRINT_H_BASE_
#define _WX_DCPRINT_H_BASE_
#if defined(__WINDOWS__)
#if defined(__WXMSW__)
#include "wx/msw/dcprint.h"
#endif
#endif
// __DCPRINTH_BASE__
// _WX_DCPRINT_H_BASE_

View File

@@ -1,13 +1,19 @@
#ifndef __DCSCREENH_BASE__
#define __DCSCREENH_BASE__
#ifndef _WX_DCSCREEN_H_BASE_
#define _WX_DCSCREEN_H_BASE_
#if defined(__WINDOWS__)
#if defined(__WXMSW__)
#include "wx/msw/dcscreen.h"
#elif defined(__MOTIF__)
#include "wx/xt/dcscreen.h"
#elif defined(__GTK__)
#elif defined(__WXMOTIF__)
#include "wx/motif/dcscreen.h"
#elif defined(__WXGTK__)
#include "wx/gtk/dcscreen.h"
#elif defined(__WXQT__)
#include "wx/qt/dcscreen.h"
#elif defined(__WXMAC__)
#include "wx/mac/dcscreen.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/dcscreen.h"
#endif
#endif
// __DCSCREENH_BASE__
// _WX_DCSCREEN_H_BASE_

View File

@@ -1,13 +1,19 @@
#ifndef __DDEH_BASE__
#define __DDEH_BASE__
#ifndef _WX_DDE_H_BASE_
#define _WX_DDE_H_BASE_
#if defined(__WINDOWS__)
#if defined(__WXMSW__)
#include "wx/msw/dde.h"
#elif defined(__MOTIF__)
#include "wx/xt/dde.h"
#elif defined(__GTK__)
#elif defined(__WXMOTIF__)
#include "wx/motif/dde.h"
#elif defined(__WXGTK__)
#include "wx/gtk/dde.h"
#elif defined(__WXQT__)
#include "wx/qt/dde.h"
#elif defined(__WXMAC__)
#include "wx/mac/dde.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/dde.h"
#endif
#endif
// __DDEH_BASE__
// _WX_DDE_H_BASE_

View File

@@ -9,8 +9,8 @@
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
#ifndef __DEBUGH__
#define __DEBUGH__
#ifndef _WX_DEBUG_H_
#define _WX_DEBUG_H_
#include <assert.h>
@@ -31,7 +31,7 @@
<BR>
<BR>
Extensive use of these macros is recommended! Remember that ASSERTs are
disabled in final (without DEBUG 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.
@@ -43,7 +43,7 @@
/** @name Macros which are completely disabled in 'release' mode */
//@{
#ifdef __DEBUG__
#ifdef __WXDEBUG__
/**
this function may be redefined to do something non trivial and is called
whenever one of debugging macros fails (i.e. condition is false in an
@@ -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 = NULL);
void wxOnAssert(const char *szFile, int nLine, const char *szMsg = (const char *) NULL);
/// generic assert macro
#define wxASSERT(cond) if ( !(cond) ) wxOnAssert(__FILE__, __LINE__)
@@ -62,7 +62,7 @@
// no more bugs ;-)
#define wxASSERT(cond)
#define wxASSERT_MSG(x, m)
#endif //DEBUG
#endif //WXDEBUG
/// special form of assert: always triggers it (in debug mode)
#define wxFAIL wxASSERT(0)
@@ -99,5 +99,5 @@
//@}
#endif // __DEBUGH__
#endif // _WX_DEBUG_H_

View File

@@ -9,14 +9,14 @@
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef __DEFSH__
#define __DEFSH__
#ifndef _WX_DEFS_H_
#define _WX_DEFS_H_
#ifdef __GNUG__
#pragma interface "defs.h"
#endif
#ifdef __GTK__
#ifdef __WXGTK__
#include "glib.h"
#include "gdk/gdk.h"
@@ -30,8 +30,14 @@
#include "wx/version.h"
// Helps SGI compilation, apparently
#if defined(__SGI__) && defined(__GNUG__)
#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
* mix gcc and cc/CC, the name mangling is different */
#define __SGI_CC__
#endif
#endif
// Eliminate double/float warnings
@@ -43,19 +49,15 @@
//////////////////////////////////////////////////////////////////////////////////
// Currently Only MS-Windows/NT, XView and Motif are supported
//
#if defined(__HPUX__) && !defined(__MOTIF__)
# define __MOTIF__
#if defined(__HPUX__) && !defined(__WXMOTIF__)
# define __WXMOTIF__
#endif
#if defined(__MOTIF__)
#if defined(__WXMOTIF__)
# define __X__
#elif defined(__WINDOWS__) || defined(__WINDOWS_386__) || defined(__NT__) || defined(__MSDOS__)
# ifndef __WINDOWS__
# define __WINDOWS__
# endif
#endif
// wxWindows checks for WIN32, not __WIN32__
#if ((defined(WIN32) || defined(__NT__)) && !defined(__WIN32__))
#if ((defined(WIN32) || defined(__NT__)) && !defined(__WIN32__) && !defined(__WXSTUBS__))
#define __WIN32__
#endif
@@ -68,13 +70,14 @@
#endif
// Make sure the environment is set correctly
#if defined(__WINDOWS__) && defined(__X__)
#if defined(__WXMSW__) && defined(__X__)
# error "Target can't be both X and Windows"
#elif !defined(__MOTIF__) && !defined(__WINDOWS__) && !defined(__GTK__) && !defined(__MAC__) && !defined(__X__)
#error "No Target! Use -D[__MOTIF__|__GTK__|__WINDOWS__|__MAC__]"
#elif !defined(__WXMOTIF__) && !defined(__WXMSW__) && !defined(__WXGTK__) && \
!defined(__WXMAC__) && !defined(__X__) && !defined(__WXQT__) && !defined(__WXSTUBS__)
#error "No Target! Use -D[__WXMOTIF__|__WXGTK__|__WXMSW__|__WXMAC__|__WXQT__|__WXSTUBS__]"
#endif
#if defined(__MOTIF__) || defined(__GTK__)
#if defined(__WXMOTIF__) || defined(__WXGTK__) || defined(__WXQT__) || defined(__WXSTUBS__)
// Bool is now obsolete, use bool instead
// typedef int Bool;
@@ -85,7 +88,7 @@
# define Bool_DEFINED
#endif
#elif defined(__WINDOWS__)
#elif defined(__WXMSW__)
#ifndef TRUE
# define TRUE 1
@@ -119,7 +122,7 @@ typedef int wxWindowID;
* Making or using wxWindows as a Windows DLL
*/
#ifdef __WINDOWS__
#ifdef __WXMSW__
#ifdef __BORLANDC__
@@ -172,22 +175,9 @@ typedef int wxWindowID;
class WXDLLEXPORT wxObject;
class WXDLLEXPORT wxEvent;
// Vadim's types - check whether we need them all
/// the type for various indexes (string, arrays, ...)
typedef unsigned int uint;
/// extended boolean type: { yes, no, may be }
typedef signed int EBool;
/// with TRUE and FALSE is a possible value for a "3-state" boolean var
#define UNKNOWN (-1)
/** symbolic constant used by all Find()-like functions returning positive
/** symbolic constant used by all Find()-like functions returning positive
integer on success as failure indicator */
#define NOT_FOUND (-1)
/** useful for Windows programmers: makes somewhat more clear all these
zeroes being passed to Windows APIs */
#define RESERVED (NULL)
// ----------------------------------------------------------------------------
// Error codes
@@ -210,10 +200,32 @@ enum ErrCode
/** @name Very common macros */
// ----------------------------------------------------------------------------
//@{
/// delete pointer if it is not NULL
#define DELETEP(p) if ( (p) != NULL ) delete (p)
/// delete array pointer if it is not NULL
#define DELETEA(p) if ( (p) != NULL ) delete [] (p)
/// delete pointer if it is not NULL and NULL it afterwards
// (checking that it's !NULL before passing it to delete is just a
// a question of style, because delete will do it itself anyhow, but it might
// be considered as an error by some overzealous debugging implementations of
// the library, so we do it ourselves)
#if defined(__SGI_CC__)
// Okay this is bad styling, but the native SGI compiler is very picky, it
// wont let you compare/assign between a NULL (void *) and another pointer
// type. To be really clean we'd need to pass in another argument, the type
// of p.
// Also note the use of 0L, this would allow future possible 64bit support
// (as yet untested) by ensuring that we zero all the bits in a pointer
// (which is always the same length as a long (at least with the LP64 standard)
// --- offer aug 98
#define wxDELETE(p) if ( (p) ) { delete (p); p = 0L; }
#else
#define wxDELETE(p) if ( (p) != NULL ) { delete p; p = NULL; }
#endif /* __SGI__CC__ */
// delete an array and NULL it (see comments above)
#if defined(__SGI_CC__)
// see above comment.
#define wxDELETEA(p) if ( (p) ) { delete [] (p); p = 0L; }
#else
#define wxDELETEA(p) if ( ((void *) (p)) != NULL ) { delete [] p; p = NULL; }
#endif /* __SGI__CC__ */
/// size of statically declared array
#define WXSIZEOF(array) (sizeof(array)/sizeof(array[0]))
@@ -223,17 +235,13 @@ enum ErrCode
// ----------------------------------------------------------------------------
// OS
#if defined(__HPUX__) || defined(____SVR4____) || defined(__LINUX__)
#if defined(__HPUX__) || defined(____SVR4____) || defined(__LINUX__) || defined(__sgi )
#ifndef __UNIX__
#define __UNIX__
#endif
#endif
#ifndef __UNIX__ // Windows
#ifndef __WINDOWS__
#define __WINDOWS__
#endif
#if defined(_MSC_VER)
#define __VISUALC__
#elif defined(__BCPLUSPLUS__) && !defined(__BORLANDC__)
@@ -246,14 +254,6 @@ enum ErrCode
#endif // OS
#if defined(__UNIX__)
#define FILE_PATH_SEPARATOR ('/')
#elif defined(__WINDOWS__)
#define FILE_PATH_SEPARATOR ('\\')
#else
#error "don't know path separator for this platform"
#endif
// ----------------------------------------------------------------------------
// compiler specific settings
// ----------------------------------------------------------------------------
@@ -367,8 +367,10 @@ typedef void (*wxFunction) (wxObject&, wxEvent&);
*/
#define wxTB_3DBUTTONS 0x8000
#define wxTB_HORIZONTAL 0x0002
#define wxTB_VERTICAL 0x0004
// Flatbar/Coolbar under Win98
#define wxTB_FLAT 0x0002
#define wxTB_FLAT 0x0008
/*
* Apply to all panel items
@@ -387,21 +389,14 @@ typedef void (*wxFunction) (wxObject&, wxEvent&);
* Styles for wxListBox
*/
// In wxListBox style flag
#define wxSB_MASK 0x0008
#define wxNEEDED_SB 0x0000
#define wxALWAYS_SB 0x0008
// New naming convention
#define wxLB_NEEDED_SB wxNEEDED_SB
#define wxLB_ALWAYS_SB wxALWAYS_SB
#define wxLB_SORT 0x0010
// These duplicate the styles in the Multiple argument
#define wxLB_SINGLE 0x0000
#define wxLB_SINGLE 0x0020
#define wxLB_MULTIPLE 0x0040
#define wxLB_EXTENDED 0x0080
// wxLB_OWNERDRAW is Windows-only
#define wxLB_OWNERDRAW 0x0100
#define wxLB_NEEDED_SB 0x0200
#define wxLB_ALWAYS_SB 0x0400
#define wxLB_HSCROLL wxHSCROLL
/*
@@ -414,19 +409,16 @@ typedef void (*wxFunction) (wxObject&, wxEvent&);
#define wxTE_READONLY 0x0010
#define wxTE_MULTILINE 0x0020
// TODO For backward compatibility, need wxOLD_READONLY
#define wxREADONLY wxTE_READONLY
#define wxEDITABLE 0
// #define wxTE_RICHTEXT 0x0020
// MSW-only
#define wxTE_RICHTEXT 0x0020
/*
* wxComboBox style flags
*/
#define wxCB_SIMPLE 0x0004
#define wxCB_DROPDOWN 0x0000
#define wxCB_SORT 0x0008
#define wxCB_READONLY wxREADONLY
#define wxCB_READONLY 0x0010
#define wxCB_DROPDOWN 0x0020
/*
* wxRadioBox/wxRadioButton style flags
@@ -665,26 +657,35 @@ typedef enum {
// Possible SetSize flags
// Use internally-calculated width if -1
#define wxSIZE_AUTO_WIDTH 1
#define wxSIZE_AUTO_WIDTH 0x0001
// Use internally-calculated height if -1
#define wxSIZE_AUTO_HEIGHT 2
#define wxSIZE_AUTO_HEIGHT 0x0002
// Use internally-calculated width and height if each is -1
#define wxSIZE_AUTO 3
#define wxSIZE_AUTO (wxSIZE_AUTO_WIDTH|wxSIZE_AUTO_HEIGHT)
// Ignore missing (-1) dimensions (use existing).
// For readability only: test for wxSIZE_AUTO_WIDTH/HEIGHT in code.
#define wxSIZE_USE_EXISTING 0
#define wxSIZE_USE_EXISTING 0x0000
// Allow -1 as a valid position
#define wxSIZE_ALLOW_MINUS_ONE 4
#define wxSIZE_ALLOW_MINUS_ONE 0x0004
// Don't do parent client adjustments (for implementation only)
#define wxSIZE_NO_ADJUSTMENTS 0x0008
// Clipboard formats
// Numbers as per winuser.h
# define wxCF_TEXT 1 /* CF_TEXT */
# define wxCF_BITMAP 2 /* CF_BITMAP */
# define wxCF_METAFILE 3 /* CF_METAFILEPICT */
# define wxCF_DIB 8 /* CF_DIB */
# define wxCF_OEMTEXT 7 /* CF_OEMTEXT */
// Data format for drag & drop and clipboard operations
// numbers as per winuser.h
enum wxDataFormat
{
wxDF_TEXT = 1, /* CF_TEXT */
wxDF_BITMAP = 2, /* CF_BITMAP */
wxDF_METAFILE = 3, /* CF_METAFILEPICT */
wxDF_DIB = 8, /* CF_DIB */
wxDF_OEMTEXT = 7, /* CF_OEMTEXT */
wxDF_FILENAME = 15 /* CF_HDROP */
};
// Virtual keycodes
enum _Virtual_keycodes {
WXK_BACK = 8,
WXK_TAB = 9,
@@ -769,20 +770,23 @@ enum _Virtual_keycodes {
// OS mnemonics -- Identify the running OS (useful for Windows)
// [Not all platforms are currently available or supported]
enum {
wxCURSES,
wxUNKNOWN_PLATFORM,
wxCURSES, // Text-only CURSES
wxXVIEW_X, // Sun's XView OpenLOOK toolkit
wxMOTIF_X, // OSF Motif 1.x.x
wxCOSE_X, // OSF Common Desktop Environment
wxCOSE_X, // OSF Common Desktop Environment
wxNEXTSTEP, // NeXTStep
wxMACINTOSH, // Apple System 7
wxGEOS, // GEOS
wxOS2_PM, // OS/2 Workplace
wxGTK, // GTK
wxQT, // Qt
wxGEOS, // GEOS
wxOS2_PM, // OS/2 Workplace
wxWINDOWS, // Windows or WfW
wxPENWINDOWS, // Windows for Pen Computing
wxWINDOWS_NT, // Windows NT
wxWIN32S, // Windows 32S API
wxWIN95, // Windows 95
wxWIN386 // Watcom 32-bit supervisor modus
wxWIN32S, // Windows 32S API
wxWIN95, // Windows 95
wxWIN386 // Watcom 32-bit supervisor modus
};
// Printing
@@ -832,8 +836,9 @@ enum {
#define wxID_APPLY 5102
#define wxID_YES 5103
#define wxID_NO 5104
#define wxID_STATIC 5105
#ifdef __WINDOWS__
#ifdef __WXMSW__
// Stand-ins for Windows types, to avoid
// #including all of windows.h
@@ -847,6 +852,7 @@ typedef unsigned long WXHBRUSH;
typedef unsigned long WXHPALETTE;
typedef unsigned long WXHCURSOR;
typedef unsigned long WXHRGN;
typedef unsigned long WXHACCEL;
typedef unsigned long WXHINSTANCE;
typedef unsigned long WXHBITMAP;
typedef unsigned long WXHIMAGELIST;
@@ -858,19 +864,20 @@ typedef unsigned short WXWORD;
typedef unsigned int WXWPARAM;
typedef long WXLPARAM;
typedef unsigned long WXCOLORREF;
typedef void * WXRGN;
typedef void * WXRGNDATA;
typedef void * WXMSG;
typedef unsigned long WXHCONV;
typedef unsigned long WXHKEY;
typedef void * WXDRAWITEMSTRUCT;
typedef void * WXMEASUREITEMSTRUCT;
typedef void * WXLPCREATESTRUCT;
#ifdef __GNUWIN32__
typedef int (*WXFARPROC)();
#else
typedef int (__stdcall *WXFARPROC)();
#endif
#endif
// for drag & drop and clipboard operations
typedef unsigned short wxDataFormat;
#endif
// __WXDEFSH__
// _WX_DEFS_H_

View File

@@ -1,13 +1,19 @@
#ifndef __DIALOGH_BASE__
#define __DIALOGH_BASE__
#ifndef _WX_DIALOG_H_BASE_
#define _WX_DIALOG_H_BASE_
#if defined(__WINDOWS__)
#if defined(__WXMSW__)
#include "wx/msw/dialog.h"
#elif defined(__MOTIF__)
#include "wx/xt/dialog.h"
#elif defined(__GTK__)
#elif defined(__WXMOTIF__)
#include "wx/motif/dialog.h"
#elif defined(__WXGTK__)
#include "wx/gtk/dialog.h"
#elif defined(__WXQT__)
#include "wx/qt/dialog.h"
#elif defined(__WXMAC__)
#include "wx/mac/dialog.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/dialog.h"
#endif
#endif
// __DIALOGH_BASE__
// _WX_DIALOG_H_BASE_

View File

@@ -1,13 +1,19 @@
#ifndef __DIRDLGH_BASE__
#define __DIRDLGH_BASE__
#ifndef _WX_DIRDLG_H_BASE_
#define _WX_DIRDLG_H_BASE_
#if defined(__WINDOWS__)
#if defined(__WXMSW__)
#include "wx/msw/dirdlg.h"
#elif defined(__MOTIF__)
#include "wx/xt/dirdlg.h"
#elif defined(__GTK__)
#elif defined(__WXMOTIF__)
#include "wx/motif/dirdlg.h"
#elif defined(__WXGTK__)
#include "wx/gtk/dirdlg.h"
#elif defined(__WXQT__)
#include "wx/qt/dirdlg.h"
#elif defined(__WXMAC__)
#include "wx/mac/dirdlg.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/dirdlg.h"
#endif
#endif
// __DIRDLGH_BASE__
// _WX_DIRDLG_H_BASE_

View File

@@ -1,14 +1,20 @@
#ifndef __DNDH_BASE__
#define __DNDH_BASE__
#ifndef _WX_DND_H_BASE_
#define _WX_DND_H_BASE_
#if defined(__WINDOWS__)
#if defined(__WXMSW__)
#include "wx/msw/ole/dropsrc.h"
#include "wx/msw/ole/droptgt.h"
#include "wx/msw/ole/dataobj.h"
#elif defined(__MOTIF__)
#elif defined(__GTK__)
#elif defined(__WXMOTIF__)
#elif defined(__WXGTK__)
#include "wx/gtk/dnd.h"
#elif defined(__WXQT__)
#include "wx/qt/dnd.h"
#elif defined(__WXMAC__)
#include "wx/mac/dnd.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/dnd.h"
#endif
#endif
// __DNDH_BASE__
// _WX_DND_H_BASE_

83
include/wx/docmdi.h Normal file
View File

@@ -0,0 +1,83 @@
/////////////////////////////////////////////////////////////////////////////
// Name: docmdi.h
// Purpose: Frame classes for MDI document/view applications
// Author: Julian Smart
// Modified by:
// Created: 01/02/97
// RCS-ID: $Id$
// Copyright: (c)
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_DOCMDI_H_
#define _WX_DOCMDI_H_
#ifdef __GNUG__
#pragma interface "docmdi.h"
#endif
#include "wx/docview.h"
#include "wx/mdi.h"
/*
* Use this instead of wxMDIParentFrame
*/
class wxDocMDIParentFrame: public wxMDIParentFrame
{
DECLARE_CLASS(wxDocMDIParentFrame)
public:
wxDocMDIParentFrame(wxDocManager *manager, wxFrame *parent, wxWindowID id,
const wxString& title, const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE, const wxString& name = "frame");
bool OnClose(void);
// Extend event processing to search the document manager's event table
virtual bool ProcessEvent(wxEvent& event);
wxDocManager *GetDocumentManager(void) const { return m_docManager; }
void OnExit(wxCommandEvent& event);
void OnMRUFile(wxCommandEvent& event);
protected:
wxDocManager *m_docManager;
DECLARE_EVENT_TABLE()
};
/*
* Use this instead of wxMDIChildFrame
*/
class WXDLLEXPORT wxDocMDIChildFrame: public wxMDIChildFrame
{
DECLARE_CLASS(wxDocMDIChildFrame)
public:
wxDocMDIChildFrame(wxDocument *doc, wxView *view, wxMDIParentFrame *frame, wxWindowID id,
const wxString& title, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
long type = wxDEFAULT_FRAME_STYLE, const wxString& name = "frame");
~wxDocMDIChildFrame(void);
bool OnClose(void);
// Extend event processing to search the view's event table
virtual bool ProcessEvent(wxEvent& event);
void OnActivate(wxActivateEvent& event);
inline wxDocument *GetDocument(void) const { return m_childDocument; }
inline wxView *GetView(void) const { return m_childView; }
inline void SetDocument(wxDocument *doc) { m_childDocument = doc; }
inline void SetView(wxView *view) { m_childView = view; }
protected:
wxDocument* m_childDocument;
wxView* m_childView;
DECLARE_EVENT_TABLE()
};
#endif
// _WX_DOCMDI_H_

View File

@@ -9,8 +9,8 @@
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef __DOCH__
#define __DOCH__
#ifndef _WX_DOCH__
#define _WX_DOCH__
#ifdef __GNUG__
#pragma interface "docview.h"
@@ -56,7 +56,7 @@ class WXDLLEXPORT wxDocument : public wxEvtHandler
{
DECLARE_ABSTRACT_CLASS(wxDocument)
public:
wxDocument(wxDocument *parent = NULL);
wxDocument(wxDocument *parent = (wxDocument *) NULL);
~wxDocument(void);
void SetFilename(const wxString& filename, bool notifyViews = FALSE);
@@ -114,7 +114,7 @@ class WXDLLEXPORT wxDocument : public wxEvtHandler
inline wxList& GetViews(void) const { return (wxList&) m_documentViews; }
wxView *GetFirstView(void) const;
virtual void UpdateAllViews(wxView *sender = NULL, wxObject *hint = NULL);
virtual void UpdateAllViews(wxView *sender = (wxView *) NULL, wxObject *hint = (wxObject *) NULL);
// Remove all views (because we're closing the document)
virtual bool DeleteAllViews(void);
@@ -146,7 +146,7 @@ class WXDLLEXPORT wxView: public wxEvtHandler
{
DECLARE_ABSTRACT_CLASS(wxView)
public:
wxView(wxDocument *doc = NULL);
wxView(wxDocument *doc = (wxDocument *) NULL);
~wxView(void);
inline wxDocument *GetDocument(void) const { return m_viewDocument; }
@@ -161,7 +161,7 @@ class WXDLLEXPORT wxView: public wxEvtHandler
virtual void OnActivateView(bool activate, wxView *activeView, wxView *deactiveView);
virtual void OnDraw(wxDC *dc) = 0;
virtual void OnPrint(wxDC *dc, wxObject *info);
virtual void OnUpdate(wxView *sender, wxObject *hint = NULL);
virtual void OnUpdate(wxView *sender, wxObject *hint = (wxObject *) NULL);
virtual void OnChangeFilename(void);
// Called by framework if created automatically by the
@@ -212,7 +212,7 @@ class WXDLLEXPORT wxDocTemplate: public wxObject
// template/document type
wxDocTemplate(wxDocManager *manager, const wxString& descr, const wxString& filter, const wxString& dir,
const wxString& ext, const wxString& docTypeName, const wxString& viewTypeName,
wxClassInfo *docClassInfo = NULL, wxClassInfo *viewClassInfo = NULL,
wxClassInfo *docClassInfo = (wxClassInfo *) NULL, wxClassInfo *viewClassInfo = (wxClassInfo *)NULL,
long flags = wxDEFAULT_TEMPLATE_FLAGS);
~wxDocTemplate(void);
@@ -283,9 +283,9 @@ class WXDLLEXPORT wxDocManager: public wxEvtHandler
void OnUndo(wxCommandEvent& event);
void OnRedo(wxCommandEvent& event);
#ifdef WXWIN_COMPATIBILITY
virtual wxDocument *CreateDocument(char *WXUNUSED(path), long WXUNUSED(flags = 0)) { return NULL; };
#endif
// Extend event processing to search the view's event table
virtual bool ProcessEvent(wxEvent& event);
virtual wxDocument *CreateDocument(const wxString& path, long flags = 0);
virtual wxView *CreateView(wxDocument *doc, long flags = 0);
virtual void DeleteTemplate(wxDocTemplate *temp, long flags = 0);
@@ -317,7 +317,7 @@ class WXDLLEXPORT wxDocManager: public wxEvtHandler
// Views or windows should inform the document manager
// when a view is going in or out of focus
virtual void ActivateView(wxView *view, bool activate = TRUE, bool deleting = FALSE);
virtual inline wxView *GetCurrentView(void) const { return m_currentView; }
virtual wxView *GetCurrentView(void) const;
virtual inline wxList& GetDocuments(void) const { return (wxList&) m_docs; }
@@ -355,7 +355,7 @@ class WXDLLEXPORT wxDocChildFrame: public wxFrame
DECLARE_CLASS(wxDocChildFrame)
public:
wxDocChildFrame(wxDocument *doc, wxView *view, wxFrame *frame, const wxString& title,
wxDocChildFrame(wxDocument *doc, wxView *view, wxFrame *frame, wxWindowID id, const wxString& title,
const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
long type = wxDEFAULT_FRAME_STYLE, const wxString& name = "frame");
~wxDocChildFrame(void);
@@ -387,7 +387,7 @@ class WXDLLEXPORT wxDocParentFrame: public wxFrame
{
DECLARE_CLASS(wxDocParentFrame)
public:
wxDocParentFrame(wxDocManager *manager, wxFrame *frame, const wxString& title,
wxDocParentFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const wxString& title,
const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
long type = wxDEFAULT_FRAME, const wxString& name = "frame");
@@ -416,7 +416,7 @@ class WXDLLEXPORT wxDocPrintout: public wxPrintout
{
DECLARE_DYNAMIC_CLASS(wxDocPrintout)
public:
wxDocPrintout(wxView *view = NULL, const wxString& title = "Printout");
wxDocPrintout(wxView *view = (wxView *) NULL, const wxString& title = "Printout");
bool OnPrintPage(int page);
bool HasPage(int page);
bool OnBeginDocument(int startPage, int endPage);

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