Compare commits

..

82 Commits

Author SHA1 Message Date
Bryan Petty
9689d17da2 This commit was manufactured by cvs2svn to create tag
'MAKEFILES_WITHOUT_TMAKE'.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/tags/MAKEFILES_WITHOUT_TMAKE@2998 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-13 21:59:59 +00:00
J. Russell Smyth
4705ee2dde Added wxHTML build to Makefile for VisualC++
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2997 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-13 21:59:59 +00:00
J. Russell Smyth
ddbde726d7 Added makefiles for VC++ for wxHTML samples
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2996 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-13 21:58:34 +00:00
J. Russell Smyth
ec4f5ef53d added precomp header stuf
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2995 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-13 20:22:12 +00:00
J. Russell Smyth
3364ab799a Added precompiled header support to allow building with VC++
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2994 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-13 18:24:29 +00:00
J. Russell Smyth
602e68af58 Removed default parameter setting for wxHtmlHelpControler::AddBook causing
VC++ to bomb compile


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2993 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-13 17:56:35 +00:00
Robert Roebling
7d6d2cd462 New attempt at getting constraints work
Removed horiz scrollbars from text ctrl
  Corrected client data deletion in combobox


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2992 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-13 13:46:31 +00:00
Guilhem Lavaux
940ddb190c * Changed char to wxChar in operators.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2991 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-13 06:27:42 +00:00
Guilhem Lavaux
b1830dfaba * Changed behaviour of wxTextStreams::operator(wxUint8/wxInt8). Now it writes
characters instead of numbers.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2990 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-12 17:17:43 +00:00
Vadim Zeitlin
bb69661b05 1. wxTextControl::SetFont() does something (good or bad - for you to judge)
2. tip dialog modified slightly to look a bit prettier under GTK
3. notebook test demonstrates the wxGTK radiobox-in-notebook-pages-constraints
bug


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2989 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-12 14:02:01 +00:00
Václav Slavík
a8b96c3dd8 *** empty log message ***
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2988 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-12 13:24:59 +00:00
Václav Slavík
4e938f5b0b *** empty log message ***
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2987 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-12 13:17:41 +00:00
Vadim Zeitlin
f74ececa19 even more about setup0.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2986 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-12 07:59:18 +00:00
Vadim Zeitlin
c219cecc12 1. wxFrame doesn't show incorrect hints in the status bar for popup items
2. radio box handles wxSIZE_AUTO_WIDTH/HEIGHT correctly (finally!)
3. attempts to fix broken sash


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2985 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-11 22:08:17 +00:00
Robert Roebling
9146082cdf New global cursor behaviour.
Test for tear-off menus in controls sample.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2984 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-11 20:49:54 +00:00
Robert Roebling
56d7679d3e DocView and wxStream things
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2983 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-11 19:29:59 +00:00
Robert Roebling
d4c241b9e6 Updated testconf, fixed mistake in install.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2982 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-11 16:24:31 +00:00
Robert Roebling
d1af991f49 A few compile things.
Changed resizing of multi-line text ctrl.
  Augmented beta version to 8.
  Distribution things.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2981 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-11 15:56:57 +00:00
Vadim Zeitlin
e1f36ff823 wxButton::GetDefaultSize() added for MSW and documented
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2980 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-10 21:51:58 +00:00
Václav Slavík
704a4b7524 *** empty log message ***
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2979 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-10 21:17:24 +00:00
Václav Slavík
42977f66f8 *** empty log message ***
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2978 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-10 21:06:05 +00:00
Julian Smart
78bd7ed38c Added an #ifdef
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2977 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-10 20:05:30 +00:00
Brian Macy
e6f09be7da Ignore erase failures
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2976 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-10 16:52:10 +00:00
Julian Smart
f3c0f9e75f Added test for wxUSE_STATLINE in statline.cpp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2975 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-10 13:31:14 +00:00
Václav Slavík
d78b3d6414 *** empty log message ***
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2974 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-10 13:23:22 +00:00
Vadim Zeitlin
7cc98b3e3f 1. minor fixes in wxDynLib
2. added more symbols to winundef.h
3. fixed wxTextFile::IsOpen() - now it does what you'd suppose
4. listctrl now updates the item image when it changes
5. file dlg checks for an error and gives a message about it (debug only)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2973 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-10 00:50:16 +00:00
Harco de Hilster
e5b110b109 Installs Vasek's new generic headers (filesys.h, zipstream.h, wxhtml.h, etc)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2972 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-09 18:26:25 +00:00
Harco de Hilster
77133f2d9c Added Makefile.am in include/wx/html (needed for installation of header files)
Patched configure.in so that creates a Makefile there.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2971 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-09 18:00:56 +00:00
Guilhem Lavaux
c7d9131ae5 * wxStream doc update
* wxHTTP fix


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2970 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-09 17:10:49 +00:00
Patrick Albert
cc985face5 Some minors changes, like adding empty lines at end of files, to be able to compile with VC++1.52c.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2969 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-09 15:30:31 +00:00
Vadim Zeitlin
e3e717ecc5 added wxUSE_FS_INET/ZIP
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2968 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-09 14:32:50 +00:00
Karsten Ballüder
4ad3104559 Updated German and new Finnish translations.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2967 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-09 11:15:21 +00:00
Vadim Zeitlin
c94ad3c365 compilation fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2966 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-08 13:28:31 +00:00
Václav Slavík
76ad75d316 *** empty log message ***
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2965 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-07 22:05:00 +00:00
Václav Slavík
f8f81a2245 *** empty log message ***
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2964 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-07 22:04:59 +00:00
Václav Slavík
5526e819ec *** empty log message ***
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2963 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-07 22:04:58 +00:00
Guilhem Lavaux
fae05df5a9 * New wxStreams (to be documented), new classes: wxBufferedStreams,
wxTextStreams


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2962 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-07 17:45:35 +00:00
Vadim Zeitlin
32d4bfd16c attempts to fix wxStaticBitmap::SetBitmap() - still doesn't work
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2961 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-07 16:00:06 +00:00
Vadim Zeitlin
232806507b compilation fixes for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2960 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-07 15:11:09 +00:00
Karsten Ballüder
4e9865026f documented wxMENU_TEAROFF
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2959 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-07 09:24:55 +00:00
Karsten Ballüder
2b2edbedb4 Made tearoff menus work for gtk :-)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2958 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-07 09:18:34 +00:00
Vadim Zeitlin
094637f6d6 1. wxAppBase class appers, wxApp in wxGTK and wxMSW modified accordingly
(wxMotif not yet, but this change shouldn't break it)
2. GetStdIcon() small fixes
3. #pragma warning removed from dynlib.cpp


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2957 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-06 00:44:26 +00:00
Vadim Zeitlin
4092d6f221 CalcUnscrolledPosition takes int, not floats
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2956 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-05 21:09:00 +00:00
Vadim Zeitlin
ce9a75d225 made wxImage::Scale() const to not confuse people any more and added
a Rescale() which changes the image size "in place". Documented both
changes too.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2955 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-05 21:08:29 +00:00
Vadim Zeitlin
a0bc2c1d27 CalcUnscrolledPosition takes int, not floats
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2954 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-05 20:58:52 +00:00
Karsten Ballüder
ebea0891d0 Made icons configurable via a wxMApp virtual function. Tested on wxGTK only,
added it for all ports, though.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2953 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-05 11:22:45 +00:00
Vadim Zeitlin
13315b0cd3 some appearance fixes from Michael Bedward
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2952 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-04 20:48:05 +00:00
Robert Roebling
8dbf458911 Small changed to wxExtDialog
Made DnD use long instead of int
  Made DnD sample compile again
  Re-Updated wxTextDialog
  Added GetDefaultSize() to wxButton


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2951 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-04 13:50:13 +00:00
Vadim Zeitlin
ba059d80b4 wxList::SortFunc prototype corrected
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2950 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-03 21:13:47 +00:00
Karsten Ballüder
752c7d6bbd Added wxDllLoader::UnloadLibrary()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2949 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-03 19:34:48 +00:00
Robert Roebling
329e86bfde Added wxExtDialog and sample.
Tried to make defs.h slightly more readable, also
    found some wrong flags then.
  Updated testconf.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2948 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-03 16:40:54 +00:00
Vadim Zeitlin
4438caf41a 1. DoSetSize() simplified, DoGetBestSize() introduced
2. code cleanup here and there
3. attempts to make static boxes behave better (i.e. stay below other controls)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2947 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-02 22:02:05 +00:00
Guilhem Lavaux
44719c473b * Typo.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2946 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-02 17:49:59 +00:00
Guilhem Lavaux
e03bcf0d40 * Fixed Apple IEEE conversion
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2945 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-02 17:44:41 +00:00
Karsten Ballüder
eda61172d0 Minor improvement.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2944 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-02 15:52:54 +00:00
Karsten Ballüder
5724671379 Added demonstration of busy cursor bug.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2943 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-02 15:30:00 +00:00
Guilhem Lavaux
e93c800b85 * Changed %d by %u
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2942 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-01 17:38:01 +00:00
Robert Roebling
53daeadab7 Corrected bug in filedlg.
Added more stream tests to typetest sample.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2941 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-01 12:54:06 +00:00
Guilhem Lavaux
1e3eca9d37 * Moved ReadLine()/WriteLine() to wxIn/OutputStream
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2940 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-06-30 17:15:32 +00:00
Karsten Ballüder
f79fd1e54b fixed wrong assert
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2939 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-06-30 15:40:00 +00:00
Karsten Ballüder
88887175e6 Merged in from M.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2938 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-06-30 13:26:58 +00:00
Robin Dunn
9f0f2064a5 Now passes FILE* to wxExprDatabase instead of ofstream to compy with recent
changes in wxExprDatabase.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2937 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-06-30 08:30:45 +00:00
Robin Dunn
06d7fdef4b Corrected link error for missing wxRegTipProvider::GetTip by giving it
an empty stub function that can be filled in later when somebody
finishes this class.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2936 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-06-30 04:34:13 +00:00
Robin Dunn
9f04ccb1ab added some WXDLLEXPORT's
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2935 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-06-30 04:28:29 +00:00
Robert Roebling
266084b5de Typos.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2934 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-06-30 00:03:20 +00:00
Robert Roebling
a533f5c122 wxChoiceDialog fix.
Distribution and build things.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2933 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-06-29 23:16:45 +00:00
Guilhem Lavaux
7b8bd8182c * wxDataStreams use wxUint now.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2932 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-06-29 17:53:42 +00:00
Karsten Ballüder
0868079c33 Added code to look up main program symbols - unix only. PLEASE FIX FOR MSW.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2931 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-06-29 17:04:57 +00:00
Vadim Zeitlin
bf6c2b3505 1. wxGrid fixes contributed by Gerhard Gruber (client data for cells...)
2. Motif warnings removed
3. Using native msgbox under Motif (ok, it doesn't work, but generic doesn't
   work neither)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2930 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-06-29 13:13:11 +00:00
Vadim Zeitlin
dfe1eee3bb my wxMotif fixes (merged with Robert's changes), wxMotif compiles, links
and runs... until you click in the menu, that is.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2929 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-06-29 12:34:18 +00:00
Vadim Zeitlin
a641505f0d startup tips for Unix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2928 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-06-29 11:50:30 +00:00
Unknown (UG)
7c0f3a1ebb no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2927 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-06-29 08:41:07 +00:00
Vadim Zeitlin
c89165a82d more files I forgot to commit
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2926 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-06-28 22:08:46 +00:00
Vadim Zeitlin
c35414dbe4 misc minor fixes I forgot to commit before
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2925 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-06-28 22:06:24 +00:00
Vadim Zeitlin
6c582c35b9 should fix compilation for BC++
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2924 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-06-28 22:04:57 +00:00
Vadim Zeitlin
9f3a38fcd5 wxGTK compile fixes for my wxMSW changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2923 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-06-28 22:04:40 +00:00
Vadim Zeitlin
4e57b0d495 why cvs thinks that I modified these files?
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2922 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-06-28 21:53:29 +00:00
Vadim Zeitlin
e37feda245 file I forgot to add...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2921 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-06-28 21:52:13 +00:00
Vadim Zeitlin
367f2585a5 tip icon in XPM format
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2920 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-06-28 21:47:54 +00:00
Vadim Zeitlin
c50f1fb922 1. wxStaticLine implemented (generic (ugly) and MSW versions)
2. wxTextDialog looks fine under MSW again
3. startup tips added: code, sample, docs
4. read-only text controls don't participate in TAB traversal


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2919 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-06-28 21:39:49 +00:00
Guilhem Lavaux
b6bff3019e * wxStream fixes (integer/line parsing).
* Typetest sample fixes.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2918 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-06-28 18:22:04 +00:00
Robert Roebling
c693edf3bc Applied fixes for AIX (GTK 1.0 compilation).
Removed ostream from property classes.
  Removed Lisp output from wxExpr.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2917 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-06-28 13:22:00 +00:00
237 changed files with 6289 additions and 175000 deletions

780
src/msw/makefile.b32 Normal file
View File

@@ -0,0 +1,780 @@
#
# File: makefile.b32
# Author: Julian Smart
# Created: 1998
# Updated:
# Copyright:
#
# "%W% %G%"
#
# Makefile : Builds wxWindows library wx.lib for MS Windows,
# and Borland C++ (32-bit).
!if "$(BCCDIR)" == ""
!error You must define the BCCDIR variable in autoexec.bat, e.g. BCCDIR=d:\bc4
!endif
!if "$(WXWIN)" == ""
!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx
!endif
WXDIR = $(WXWIN)
# Set all these to 1 if you want to build a dynamic library
!if "$(DLL)" == "1"
WXMAKINGDLL=1
WXBUILDDLL=1
!endif
!include $(WXDIR)\src\makeb32.env
# Please set these according to the settings in wx_setup.h, so we can include
# the appropriate libraries in wx.lib
USE_CTL3D=0
USE_XPM_IN_MSW=0
PERIPH_LIBS=
PERIPH_TARGET=
PERIPH_CLEAN_TARGET=
!if "$(USE_CTL3D)" == "1"
#Use WIN32S/WIN95 32 bit version ctl3d32.dll under win95 (Andre Beltman)
PERIPH_LIBS=$(WXDIR)\lib\ctl3d32.lib $(PERIPH_LIBS)
PERIPH_TARGET=ctl3d $(PERIPH_TARGET)
PERIPH_CLEAN_TARGET=clean_ctl3d $(PERIPH_CLEAN_TARGET)
!endif
!if "$(USE_XPM_IN_MSW)" == "1"
PERIPH_LIBS=$(WXLIB)\xpm.lib $(PERIPH_LIBS)
PERIPH_TARGET=xpm $(PERIPH_TARGET)
PERIPH_CLEAN_TARGET=clean_xpm $(PERIPH_CLEAN_TARGET)
!endif
#PERIPH_LIBS=$(WXDIR)\lib\zlib.lib $(WXDIR)\lib\winpng.lib $(WXDIR)\lib\jpeg.lib $(PERIPH_LIBS)
PERIPH_LIBS=
PERIPH_TARGET=zlib png jpeg $(PERIPH_TARGET)
PERIPH_CLEAN_TARGET=clean_zlib clean_png clean_jpeg $(PERIPH_CLEAN_TARGET)
!if "$(DLL)" == "0"
DUMMY=dummy
!else
DUMMY=dummydll
LIBS= cw32 import32 ole2w32
!endif
LIBTARGET=$(WXLIB)
GENDIR=..\generic
COMMDIR=..\common
OLEDIR=.\ole
MSWDIR=.
DOCDIR = $(WXDIR)\docs
GENERICOBJS= \
$(MSWDIR)\choicdgg.obj \
$(MSWDIR)\gridg.obj \
$(MSWDIR)\laywin.obj \
$(MSWDIR)\panelg.obj \
$(MSWDIR)\progdlgg.obj \
$(MSWDIR)\prop.obj \
$(MSWDIR)\proplist.obj \
$(MSWDIR)\propform.obj \
$(MSWDIR)\sashwin.obj \
$(MSWDIR)\scrolwin.obj \
$(MSWDIR)\splitter.obj \
$(MSWDIR)\statusbr.obj \
$(MSWDIR)\tabg.obj \
$(MSWDIR)\textdlgg.obj \
$(MSWDIR)\tipdlg.obj
# Not needed:
# $(MSWDIR)\colrdlgg.obj \
# $(MSWDIR)\fontdlgg.obj \
# $(MSWDIR)\helpxlp.obj \
# $(MSWDIR)\msgdlgg.obj \
# $(MSWDIR)\printps.obj \
# $(MSWDIR)\prntdlgg.obj \
# $(MSWDIR)\listctrl.obj \
# $(MSWDIR)\notebook.obj \
# $(MSWDIR)\treectrl.obj
COMMONOBJS = \
$(MSWDIR)\config.obj \
$(MSWDIR)\cmndata.obj \
$(MSWDIR)\dcbase.obj \
$(MSWDIR)\dlgcmn.obj \
$(MSWDIR)\docview.obj \
$(MSWDIR)\docmdi.obj \
$(MSWDIR)\dynarray.obj \
$(MSWDIR)\event.obj \
$(MSWDIR)\file.obj \
$(MSWDIR)\fileconf.obj \
$(MSWDIR)\filefn.obj \
$(MSWDIR)\framecmn.obj \
$(MSWDIR)\gdicmn.obj \
$(MSWDIR)\helpbase.obj \
$(MSWDIR)\image.obj \
$(MSWDIR)\imagbmp.obj \
$(MSWDIR)\imagpng.obj \
$(MSWDIR)\imagjpeg.obj \
$(MSWDIR)\imaggif.obj \
$(MSWDIR)\intl.obj \
$(MSWDIR)\ipcbase.obj \
$(MSWDIR)\log.obj \
$(MSWDIR)\layout.obj \
$(MSWDIR)\memory.obj \
$(MSWDIR)\mimetype.obj \
$(MSWDIR)\module.obj \
$(MSWDIR)\object.obj \
$(MSWDIR)\prntbase.obj \
$(MSWDIR)\resource.obj \
$(MSWDIR)\tbarbase.obj \
$(MSWDIR)\tbarsmpl.obj \
$(MSWDIR)\textfile.obj \
$(MSWDIR)\timercmn.obj \
$(MSWDIR)\utilscmn.obj \
$(MSWDIR)\validate.obj \
$(MSWDIR)\valgen.obj \
$(MSWDIR)\valtext.obj \
$(MSWDIR)\variant.obj \
$(MSWDIR)\date.obj \
$(MSWDIR)\hash.obj \
$(MSWDIR)\list.obj \
$(MSWDIR)\paper.obj \
$(MSWDIR)\string.obj \
$(MSWDIR)\time.obj \
$(MSWDIR)\wxexpr.obj \
$(MSWDIR)\y_tab.obj \
$(MSWDIR)\stream.obj \
$(MSWDIR)\wfstream.obj \
$(MSWDIR)\mstream.obj \
$(MSWDIR)\zstream.obj \
$(MSWDIR)\datstrm.obj \
$(MSWDIR)\sckstrm.obj \
$(MSWDIR)\extended.obj \
$(MSWDIR)\wincmn.obj \
$(MSWDIR)\objstrm.obj \
$(MSWDIR)\dynlib.obj \
$(MSWDIR)\tokenzr.obj \
$(MSWDIR)\socket.obj \
$(MSWDIR)\sckint.obj \
$(MSWDIR)\sckaddr.obj \
$(MSWDIR)\protocol.obj \
$(MSWDIR)\url.obj \
$(MSWDIR)\http.obj \
$(MSWDIR)\ftp.obj \
$(MSWDIR)\sckfile.obj \
$(MSWDIR)\sckipc.obj \
$(MSWDIR)\wxchar.obj
# $(MSWDIR)\odbc.obj \
# $(MSWDIR)\matrix.obj \
MSWOBJS = \
$(MSWDIR)\accel.obj \
$(MSWDIR)\app.obj \
$(MSWDIR)\bitmap.obj \
$(MSWDIR)\bmpbuttn.obj \
$(MSWDIR)\brush.obj \
$(MSWDIR)\button.obj \
$(MSWDIR)\caret.obj \
$(MSWDIR)\checkbox.obj \
$(MSWDIR)\checklst.obj \
$(MSWDIR)\choice.obj \
$(MSWDIR)\clipbrd.obj \
$(MSWDIR)\colordlg.obj \
$(MSWDIR)\colour.obj \
$(MSWDIR)\combobox.obj \
$(MSWDIR)\control.obj \
$(MSWDIR)\curico.obj \
$(MSWDIR)\cursor.obj \
$(MSWDIR)\data.obj \
$(MSWDIR)\dc.obj \
$(MSWDIR)\dcmemory.obj \
$(MSWDIR)\dcclient.obj \
$(MSWDIR)\dcprint.obj \
$(MSWDIR)\dcscreen.obj \
$(MSWDIR)\dde.obj \
$(MSWDIR)\dialog.obj \
$(MSWDIR)\dib.obj \
$(MSWDIR)\dibutils.obj \
$(MSWDIR)\dirdlg.obj \
$(MSWDIR)\filedlg.obj \
$(MSWDIR)\font.obj \
$(MSWDIR)\fontdlg.obj \
$(MSWDIR)\frame.obj \
$(MSWDIR)\gauge95.obj \
$(MSWDIR)\gaugemsw.obj \
$(MSWDIR)\gdiobj.obj \
$(MSWDIR)\helpwin.obj \
$(MSWDIR)\icon.obj \
$(MSWDIR)\imaglist.obj \
$(MSWDIR)\joystick.obj \
$(MSWDIR)\listbox.obj \
$(MSWDIR)\listctrl.obj \
$(MSWDIR)\main.obj \
$(MSWDIR)\mdi.obj \
$(MSWDIR)\menu.obj \
$(MSWDIR)\menuitem.obj \
$(MSWDIR)\metafile.obj \
$(MSWDIR)\minifram.obj \
$(MSWDIR)\msgdlg.obj \
$(MSWDIR)\nativdlg.obj \
$(MSWDIR)\notebook.obj \
$(MSWDIR)\ownerdrw.obj \
$(MSWDIR)\palette.obj \
$(MSWDIR)\pen.obj \
$(MSWDIR)\penwin.obj \
$(MSWDIR)\pnghand.obj \
$(MSWDIR)\printdlg.obj \
$(MSWDIR)\printwin.obj \
$(MSWDIR)\radiobox.obj \
$(MSWDIR)\radiobut.obj \
$(MSWDIR)\region.obj \
$(MSWDIR)\registry.obj \
$(MSWDIR)\regconf.obj \
$(MSWDIR)\scrolbar.obj \
$(MSWDIR)\settings.obj \
$(MSWDIR)\slidrmsw.obj \
$(MSWDIR)\slider95.obj \
$(MSWDIR)\spinbutt.obj \
$(MSWDIR)\statbmp.obj \
$(MSWDIR)\statbox.obj \
$(MSWDIR)\statline.obj \
$(MSWDIR)\stattext.obj \
$(MSWDIR)\statbr95.obj \
$(MSWDIR)\tabctrl.obj \
$(MSWDIR)\tbarmsw.obj \
$(MSWDIR)\textctrl.obj \
$(MSWDIR)\txtstrm.obj \
$(MSWDIR)\thread.obj \
$(MSWDIR)\timer.obj \
$(MSWDIR)\tooltip.obj \
$(MSWDIR)\treectrl.obj \
$(MSWDIR)\taskbar.obj \
$(MSWDIR)\tbar95.obj \
$(MSWDIR)\utils.obj \
$(MSWDIR)\utilsexc.obj \
$(MSWDIR)\wave.obj \
$(MSWDIR)\window.obj \
$(MSWDIR)\xpmhand.obj \
$(MSWDIR)\droptgt.obj \
$(MSWDIR)\dropsrc.obj \
$(MSWDIR)\oleutils.obj \
$(MSWDIR)\dataobj.obj \
$(MSWDIR)\uuid.obj
# Unfortunately this causes a crash when the oleauto sample starts.
# $(MSWDIR)\automtn.obj
OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(MSWOBJS)
default: wx
wx: $(CFG) $(DUMMY).obj $(OBJECTS) $(PERIPH_TARGET) $(LIBTARGET)
all: all_libs all_execs
!if "$(DLL)" == "0"
$(LIBTARGET): $(DUMMY).obj $(OBJECTS)
-erase $(LIBTARGET)
tlib $(LIBTARGET) /P512 @&&!
+$(OBJECTS:.obj =.obj +) +$(PERIPH_LIBS:.lib =.lib +)
!
!else
$(LIBTARGET): $(DUMMY).obj $(OBJECTS)
-erase $(LIBTARGET)
-erase $(WXLIBDIR)\wx.dll
tlink32 $(LINK_FLAGS) /v @&&!
c0d32.obj $(OBJECTS)
$(WXLIBDIR)\wx
nul
$(PERIPH_LIBS) $(LIBS)
wxb32
!
implib -c $(LIBTARGET) $(WXLIBDIR)\wx.dll
!endif
dummy.obj: dummy.$(SRCSUFF) $(LOCALHEADERS) $(BASEHEADERS) $(WXDIR)\include\wx\wx.h
dummydll.obj: dummydll.$(SRCSUFF) $(LOCALHEADERS) $(BASEHEADERS) $(WXDIR)\include\wx\wx.h
$(MSWDIR)\y_tab.obj: $(COMMDIR)\y_tab.c $(COMMDIR)\lex_yy.c
# cl @<<
#$(CPPFLAGS2) /c $*.c -DUSE_DEFINE -DYY_USE_PROTOS /Fo$@
#<<
$(COMMDIR)\y_tab.c: $(COMMDIR)\dosyacc.c
copy $(COMMDIR)\dosyacc.c $(COMMDIR)\y_tab.c
$(COMMDIR)\lex_yy.c: $(COMMDIR)\doslex.c
copy $(COMMDIR)\doslex.c $(COMMDIR)\lex_yy.c
#$(OBJECTS): $(WXDIR)\include\wx\setup.h
$(MSWDIR)\accel.obj: $(MSWDIR)\accel.$(SRCSUFF)
$(MSWDIR)\app.obj: $(MSWDIR)\app.$(SRCSUFF)
$(MSWDIR)\bitmap.obj: $(MSWDIR)\bitmap.$(SRCSUFF)
$(MSWDIR)\bmpbuttn.obj: $(MSWDIR)\bmpbuttn.$(SRCSUFF)
$(MSWDIR)\brush.obj: $(MSWDIR)\brush.$(SRCSUFF)
$(MSWDIR)\button.obj: $(MSWDIR)\button.$(SRCSUFF)
$(MSWDIR)\caret.obj: $(MSWDIR)\caret.$(SRCSUFF)
$(MSWDIR)\checkbox.obj: $(MSWDIR)\checkbox.$(SRCSUFF)
$(MSWDIR)\checklst.obj: $(MSWDIR)\checklst.$(SRCSUFF)
$(MSWDIR)\choice.obj: $(MSWDIR)\choice.$(SRCSUFF)
$(MSWDIR)\clipbrd.obj: $(MSWDIR)\clipbrd.$(SRCSUFF)
$(MSWDIR)\colordlg.obj: $(MSWDIR)\colordlg.$(SRCSUFF)
$(MSWDIR)\colour.obj: $(MSWDIR)\colour.$(SRCSUFF)
$(MSWDIR)\combobox.obj: $(MSWDIR)\combobox.$(SRCSUFF)
$(MSWDIR)\control.obj: $(MSWDIR)\control.$(SRCSUFF)
$(MSWDIR)\curico.obj: $(MSWDIR)\curico.$(SRCSUFF)
$(MSWDIR)\cursor.obj: $(MSWDIR)\cursor.$(SRCSUFF)
$(MSWDIR)\data.obj: $(MSWDIR)\data.$(SRCSUFF)
$(MSWDIR)\dde.obj: $(MSWDIR)\dde.$(SRCSUFF)
$(MSWDIR)\dc.obj: $(MSWDIR)\dc.$(SRCSUFF)
$(MSWDIR)\dcmemory.obj: $(MSWDIR)\dcmemory.$(SRCSUFF)
$(MSWDIR)\dcclient.obj: $(MSWDIR)\dcclient.$(SRCSUFF)
$(MSWDIR)\dcprint.obj: $(MSWDIR)\dcprint.$(SRCSUFF)
$(MSWDIR)\dcscreen.obj: $(MSWDIR)\dcscreen.$(SRCSUFF)
$(MSWDIR)\dialog.obj: $(MSWDIR)\dialog.$(SRCSUFF)
$(MSWDIR)\dib.obj: $(MSWDIR)\dib.$(SRCSUFF)
$(MSWDIR)\dirdlg.obj: $(MSWDIR)\dirdlg.$(SRCSUFF)
$(MSWDIR)\filedlg.obj: $(MSWDIR)\filedlg.$(SRCSUFF)
$(MSWDIR)\font.obj: $(MSWDIR)\font.$(SRCSUFF)
$(MSWDIR)\fontdlg.obj: $(MSWDIR)\fontdlg.$(SRCSUFF)
$(MSWDIR)\frame.obj: $(MSWDIR)\frame.$(SRCSUFF)
$(MSWDIR)\gaugemsw.obj: $(MSWDIR)\gaugemsw.$(SRCSUFF)
$(MSWDIR)\gauge95.obj: $(MSWDIR)\gauge95.$(SRCSUFF)
$(MSWDIR)\gdiobj.obj: $(MSWDIR)\gdiobj.$(SRCSUFF)
$(MSWDIR)\icon.obj: $(MSWDIR)\icon.$(SRCSUFF)
$(MSWDIR)\imaglist.obj: $(MSWDIR)\imaglist.$(SRCSUFF)
$(MSWDIR)\joystick.obj: $(MSWDIR)\joystick.$(SRCSUFF)
$(MSWDIR)\listbox.obj: $(MSWDIR)\listbox.$(SRCSUFF)
$(MSWDIR)\listctrl.obj: $(MSWDIR)\listctrl.$(SRCSUFF)
$(MSWDIR)\main.obj: $(MSWDIR)\main.$(SRCSUFF)
$(MSWDIR)\mdi.obj: $(MSWDIR)\mdi.$(SRCSUFF)
$(MSWDIR)\menu.obj: $(MSWDIR)\menu.$(SRCSUFF)
$(MSWDIR)\menuitem.obj: $(MSWDIR)\menu.$(SRCSUFF)
$(MSWDIR)\metafile.obj: $(MSWDIR)\metafile.$(SRCSUFF)
$(MSWDIR)\minifram.obj: $(MSWDIR)\minifram.$(SRCSUFF)
$(MSWDIR)\msgdlg.obj: $(MSWDIR)\msgdlg.$(SRCSUFF)
$(MSWDIR)\nativdlg.obj: $(MSWDIR)\nativdlg.$(SRCSUFF)
$(MSWDIR)\notebook.obj: $(MSWDIR)\notebook.$(SRCSUFF)
$(MSWDIR)\ownerdrw.obj: $(MSWDIR)\ownerdrw.$(SRCSUFF)
$(MSWDIR)\palette.obj: $(MSWDIR)\palette.$(SRCSUFF)
$(MSWDIR)\pen.obj: $(MSWDIR)\pen.$(SRCSUFF)
$(MSWDIR)\penwin.obj: $(MSWDIR)\penwin.$(SRCSUFF)
$(MSWDIR)\printdlg.obj: $(MSWDIR)\printdlg.$(SRCSUFF)
$(MSWDIR)\printwin.obj: $(MSWDIR)\printwin.$(SRCSUFF)
$(MSWDIR)\radiobox.obj: $(MSWDIR)\radiobox.$(SRCSUFF)
$(MSWDIR)\radiobut.obj: $(MSWDIR)\radiobut.$(SRCSUFF)
$(MSWDIR)\region.obj: $(MSWDIR)\region.$(SRCSUFF)
$(MSWDIR)\registry.obj: $(MSWDIR)\registry.$(SRCSUFF)
$(MSWDIR)\regconf.obj: $(MSWDIR)\regconf.$(SRCSUFF)
$(MSWDIR)\scrolbar.obj: $(MSWDIR)\scrolbar.$(SRCSUFF)
$(MSWDIR)\settings.obj: $(MSWDIR)\settings.$(SRCSUFF)
$(MSWDIR)\slidrmsw.obj: $(MSWDIR)\slidrmsw.$(SRCSUFF)
$(MSWDIR)\slider95.obj: $(MSWDIR)\slider95.$(SRCSUFF)
$(MSWDIR)\spinbutt.obj: $(MSWDIR)\spinbutt.$(SRCSUFF)
$(MSWDIR)\statbmp.obj: $(MSWDIR)\statbmp.$(SRCSUFF)
$(MSWDIR)\statbox.obj: $(MSWDIR)\statbox.$(SRCSUFF)
$(MSWDIR)\statline.obj: $(MSWDIR)\statline.$(SRCSUFF)
$(MSWDIR)\statbr95.obj: $(MSWDIR)\statbr95.$(SRCSUFF)
$(MSWDIR)\stattext.obj: $(MSWDIR)\stattext.$(SRCSUFF)
$(MSWDIR)\tabctrl.obj: $(MSWDIR)\tabctrl.$(SRCSUFF)
$(MSWDIR)\taskbar.obj: $(MSWDIR)\taskbar.$(SRCSUFF)
$(MSWDIR)\tbar95.obj: $(MSWDIR)\tbar95.$(SRCSUFF)
$(MSWDIR)\tbarmsw.obj: $(MSWDIR)\tbarmsw.$(SRCSUFF)
$(MSWDIR)\textctrl.obj: $(MSWDIR)\textctrl.$(SRCSUFF)
$(MSWDIR)\txtstrm.obj: $(MSWDIR)\txtstrm.$(SRCSUFF)
$(MSWDIR)\thread.obj: $(MSWDIR)\thread.$(SRCSUFF)
$(MSWDIR)\timer.obj: $(MSWDIR)\timer.$(SRCSUFF)
$(MSWDIR)\tooltip.obj: $(MSWDIR)\tooltip.$(SRCSUFF)
$(MSWDIR)\treectrl.obj: $(MSWDIR)\treectrl.$(SRCSUFF)
$(MSWDIR)\utils.obj: $(MSWDIR)\utils.$(SRCSUFF)
$(MSWDIR)\utilsexc.obj: $(MSWDIR)\utilsexc.$(SRCSUFF)
$(MSWDIR)\wave.obj: $(MSWDIR)\wave.$(SRCSUFF)
$(MSWDIR)\window.obj: $(MSWDIR)\window.$(SRCSUFF)
$(MSWDIR)\droptgt.obj: $(OLEDIR)\droptgt.$(SRCSUFF)
$(MSWDIR)\dropsrc.obj: $(OLEDIR)\dropsrc.$(SRCSUFF)
$(MSWDIR)\dataobj.obj: $(OLEDIR)\dataobj.$(SRCSUFF)
$(MSWDIR)\oleutils.obj: $(OLEDIR)\oleutils.$(SRCSUFF)
$(MSWDIR)\uuid.obj: $(OLEDIR)\uuid.$(SRCSUFF)
$(MSWDIR)\automtn.obj: $(OLEDIR)\automtn.$(SRCSUFF)
########################################################
# Common objects (always compiled)
$(MSWDIR)\config.obj: $(COMMDIR)\config.$(SRCSUFF)
$(MSWDIR)\cmndata.obj: $(COMMDIR)\cmndata.$(SRCSUFF)
$(MSWDIR)\dcbase.obj: $(COMMDIR)\dcbase.$(SRCSUFF)
$(MSWDIR)\docview.obj: $(COMMDIR)\docview.$(SRCSUFF)
$(MSWDIR)\docmdi.obj: $(COMMDIR)\docmdi.$(SRCSUFF)
$(MSWDIR)\dynarray.obj: $(COMMDIR)\dynarray.$(SRCSUFF)
$(MSWDIR)\dynlib.obj: $(COMMDIR)\dynlib.$(SRCSUFF)
$(MSWDIR)\event.obj: $(COMMDIR)\event.$(SRCSUFF)
$(MSWDIR)\file.obj: $(COMMDIR)\file.$(SRCSUFF)
$(MSWDIR)\fileconf.obj: $(COMMDIR)\fileconf.$(SRCSUFF)
$(MSWDIR)\filefn.obj: $(COMMDIR)\filefn.$(SRCSUFF)
$(MSWDIR)\framecmn.obj: $(COMMDIR)\framecmn.$(SRCSUFF)
$(MSWDIR)\gdicmn.obj: $(COMMDIR)\gdicmn.$(SRCSUFF)
$(MSWDIR)\image.obj: $(COMMDIR)\image.$(SRCSUFF)
$(MSWDIR)\imagbmp.obj: $(COMMDIR)\imagbmp.$(SRCSUFF)
$(MSWDIR)\imagpng.obj: $(COMMDIR)\imagpng.$(SRCSUFF)
$(MSWDIR)\imagjpeg.obj: $(COMMDIR)\imagjpeg.$(SRCSUFF)
$(MSWDIR)\imaggif.obj: $(COMMDIR)\imaggif.$(SRCSUFF)
$(MSWDIR)\image.obj: $(COMMDIR)\image.$(SRCSUFF)
$(MSWDIR)\intl.obj: $(COMMDIR)\intl.$(SRCSUFF)
$(MSWDIR)\ipcbase.obj: $(COMMDIR)\ipcbase.$(SRCSUFF)
$(MSWDIR)\helpbase.obj: $(COMMDIR)\helpbase.$(SRCSUFF)
$(MSWDIR)\layout.obj: $(COMMDIR)\layout.$(SRCSUFF)
$(MSWDIR)\log.obj: $(COMMDIR)\log.$(SRCSUFF)
$(MSWDIR)\memory.obj: $(COMMDIR)\memory.$(SRCSUFF)
$(MSWDIR)\mimetype.obj: $(COMMDIR)\mimetype.$(SRCSUFF)
$(MSWDIR)\module.obj: $(COMMDIR)\module.$(SRCSUFF)
$(MSWDIR)\object.obj: $(COMMDIR)\object.$(SRCSUFF)
$(MSWDIR)\odbc.obj: $(COMMDIR)\odbc.$(SRCSUFF)
$(MSWDIR)\prntbase.obj: $(COMMDIR)\prntbase.$(SRCSUFF)
$(MSWDIR)\resource.obj: $(COMMDIR)\resource.$(SRCSUFF)
$(MSWDIR)\tbarbase.obj: $(COMMDIR)\tbarbase.$(SRCSUFF)
$(MSWDIR)\tbarsmpl.obj: $(COMMDIR)\tbarsmpl.$(SRCSUFF)
$(MSWDIR)\textfile.obj: $(COMMDIR)\textfile.$(SRCSUFF)
$(MSWDIR)\timercmn.obj: $(COMMDIR)\timercmn.$(SRCSUFF)
$(MSWDIR)\utilscmn.obj: $(COMMDIR)\utilscmn.$(SRCSUFF)
$(MSWDIR)\validate.obj: $(COMMDIR)\validate.$(SRCSUFF)
$(MSWDIR)\valgen.obj: $(COMMDIR)\valgen.$(SRCSUFF)
$(MSWDIR)\valtext.obj: $(COMMDIR)\valtext.$(SRCSUFF)
$(MSWDIR)\date.obj: $(COMMDIR)\date.$(SRCSUFF)
$(MSWDIR)\wxexpr.obj: $(COMMDIR)\wxexpr.$(SRCSUFF)
$(MSWDIR)\hash.obj: $(COMMDIR)\hash.$(SRCSUFF)
$(MSWDIR)\list.obj: $(COMMDIR)\list.$(SRCSUFF)
$(MSWDIR)\paper.obj: $(COMMDIR)\paper.$(SRCSUFF)
$(MSWDIR)\string.obj: $(COMMDIR)\string.$(SRCSUFF)
$(MSWDIR)\variant.obj: $(COMMDIR)\variant.$(SRCSUFF)
$(MSWDIR)\matrix.obj: $(COMMDIR)\matrix.$(SRCSUFF)
$(MSWDIR)\time.obj: $(COMMDIR)\time.$(SRCSUFF)
$(MSWDIR)\datstrm.obj: $(COMMDIR)\datstrm.$(SRCSUFF)
$(MSWDIR)\sckstrm.obj: $(COMMDIR)\sckstrm.$(SRCSUFF)
$(MSWDIR)\mstream.obj: $(COMMDIR)\mstream.$(SRCSUFF)
$(MSWDIR)\zstream.obj: $(COMMDIR)\zstream.$(SRCSUFF)
$(MSWDIR)\wfstream.obj: $(COMMDIR)\wfstream.$(SRCSUFF)
$(MSWDIR)\stream.obj: $(COMMDIR)\stream.$(SRCSUFF)
$(MSWDIR)\objstrm.obj: $(COMMDIR)\objstrm.$(SRCSUFF)
$(MSWDIR)\dlgcmn.obj: $(COMMDIR)\dlgcmn.$(SRCSUFF)
$(MSWDIR)\wincmn.obj: $(COMMDIR)\wincmn.$(SRCSUFF)
$(MSWDIR)\extended.obj: $(COMMDIR)\extended.c
$(MSWDIR)\tokenzr.obj: $(COMMDIR)\tokenzr.$(SRCSUFF)
$(MSWDIR)\socket.obj: $(COMMDIR)\socket.$(SRCSUFF)
$(MSWDIR)\sckint.obj: $(COMMDIR)\sckint.$(SRCSUFF)
$(MSWDIR)\sckaddr.obj: $(COMMDIR)\sckaddr.$(SRCSUFF)
$(MSWDIR)\protocol.obj: $(COMMDIR)\protocol.$(SRCSUFF)
$(MSWDIR)\url.obj: $(COMMDIR)\url.$(SRCSUFF)
$(MSWDIR)\http.obj: $(COMMDIR)\http.$(SRCSUFF)
$(MSWDIR)\ftp.obj: $(COMMDIR)\ftp.$(SRCSUFF)
$(MSWDIR)\sckfile.obj: $(COMMDIR)\sckfile.$(SRCSUFF)
$(MSWDIR)\sckipc.obj: $(COMMDIR)\sckipc.$(SRCSUFF)
$(MSWDIR)\wxchar.obj: $(COMMDIR)\wxchar.$(SRCSUFF)
########################################################
# Generic objects (not always compiled, depending on
# whether platforms have native implementations)
$(MSWDIR)\choicdgg.obj: $(GENDIR)\choicdgg.$(SRCSUFF)
$(MSWDIR)\colrdlgg.obj: $(GENDIR)\colrdlgg.$(SRCSUFF)
$(MSWDIR)\fontdlgg.obj: $(GENDIR)\fontdlgg.$(SRCSUFF)
$(MSWDIR)\gridg.obj: $(GENDIR)\gridg.$(SRCSUFF)
$(MSWDIR)\helpxlp.obj: $(GENDIR)\helpxlp.$(SRCSUFF)
$(MSWDIR)\laywin.obj: $(GENDIR)\laywin.$(SRCSUFF)
$(MSWDIR)\msgdlgg.obj: $(GENDIR)\msgdlgg.$(SRCSUFF)
$(MSWDIR)\panelg.obj: $(GENDIR)\panelg.$(SRCSUFF)
$(MSWDIR)\progdlgg.obj: $(GENDIR)\progdlgg.$(SRCSUFF)
$(MSWDIR)\prop.obj: $(GENDIR)\prop.$(SRCSUFF)
$(MSWDIR)\proplist.obj: $(GENDIR)\proplist.$(SRCSUFF)
$(MSWDIR)\propform.obj: $(GENDIR)\propform.$(SRCSUFF)
$(MSWDIR)\printps.obj: $(GENDIR)\printps.$(SRCSUFF)
$(MSWDIR)\prntdlgg.obj: $(GENDIR)\prntdlgg.$(SRCSUFF)
$(MSWDIR)\sashwin.obj: $(GENDIR)\sashwin.$(SRCSUFF)
$(MSWDIR)\scrolwin.obj: $(GENDIR)\scrolwin.$(SRCSUFF)
$(MSWDIR)\splitter.obj: $(GENDIR)\splitter.$(SRCSUFF)
$(MSWDIR)\statusbr.obj: $(GENDIR)\statusbr.$(SRCSUFF)
$(MSWDIR)\textdlgg.obj: $(GENDIR)\textdlgg.$(SRCSUFF)
$(MSWDIR)\tipdlg.obj: $(GENDIR)\tipdlg.$(SRCSUFF)
$(MSWDIR)\tabg.obj: $(GENDIR)\tabg.$(SRCSUFF)
all_utils:
cd $(WXDIR)\utils
make -f makefile.b32
cd $(WXDIR)\src\msw
all_samples:
cd $(WXDIR)\samples
make -f makefile.b32
cd $(WXDIR)\src\msw
all_execs:
cd $(WXDIR)\utils
make -f makefile.b32 all_execs
cd $(WXDIR)\src\msw
wxxpm: $(CFG)
cd $(WXDIR)\src\xpm
make -f makefile.b32 -DCFG=$(CFG) -DFINAL=$(FINAL) -DWXWIN=$(WXDIR) -DDEBUG=$(DEBUG)
cd $(WXDIR)\src\msw
clean_wxxpm: $(CFG)
cd $(WXDIR)\src\xpm
make -f makefile.b32 clean
cd $(WXDIR)\src\msw
png: $(CFG)
cd $(WXDIR)\src\png
make -f makefile.b32
cd $(WXDIR)\src\msw
clean_png:
cd $(WXDIR)\src\png
make -f makefile.b32 clean
cd $(WXDIR)\src\msw
zlib: $(CFG)
cd $(WXDIR)\src\zlib
make -f makefile.b32 lib
cd $(WXDIR)\src\msw
clean_zlib:
cd $(WXDIR)\src\zlib
make -f makefile.b32 clean
cd $(WXDIR)\src\msw
jpeg: $(CFG)
cd $(WXDIR)\src\jpeg
make -f makefile.b32
cd $(WXDIR)\src\msw
clean_jpeg:
cd $(WXDIR)\src\jpeg
make -f makefile.b32 clean
cd $(WXDIR)\src\msw
$(CFG): makefile.b32
copy &&!
-H=$(WXDIR)\src\msw\wx32.csm
-3
-d
-R-
-X
-w-par
-w-aus
-w-hid # virtual function A hides virtual function B
-WE
-tWM
-I$(WXINC);$(BCCDIR)\include;$(WXDIR)/src/png;$(WXDIR)/src/jpeg;$(WXDIR)/src/zlib;$(WXDIR)/src/xpm
-I$(WXDIR)\include\wx\msw\gnuwin32
-L$(BCCDIR)\lib
-D__WXWIN__
-D__WXMSW__
-D__WINDOWS__
-DWIN32
$(OPT)
$(DEBUG_FLAGS)
$(WIN95FLAG)
! $(CFG)
#-I$(WXDIR)\src\common\wxxpm\libxpm.34b\lib
# -Oxt
clean: $(PERIPH_CLEAN_TARGET)
-erase $(LIBTARGET)
-erase *.obj
-erase *.pch
-erase *.csm
-erase *.cfg
-erase ..\common\y_tab.c
-erase ..\common\lex_yy.c
cleanall: clean

763
src/msw/makefile.bcc Normal file
View File

@@ -0,0 +1,763 @@
#
# File: makefile.bcc
# Author: Julian Smart
# Created: 1993
# Updated:
# Copyright: (c) 1993, AIAI, University of Edinburgh
#
# "%W% %G%"
#
# Makefile : Builds wxWindows library wx.lib for Windows 3.1
# and Borland C++ 3.1
!if "$(BCCDIR)" == ""
!error You must define the BCCDIR variable in autoexec.bat, e.g. BCCDIR=d:\bc4
!endif
!if "$(WXWIN)" == ""
!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx
!endif
!if "$(CFG)" == ""
#!error You must start compiling from wx\src, not wx\src\msw.
!endif
!ifndef DEBUG
DEBUG=0
!endif
WXDIR = $(WXWIN)
!include $(WXDIR)\src\makebcc.env
THISDIR = $(WXDIR)\src\msw
# Please set these according to the settings in wx_setup.h, so we can include
# the appropriate libraries in wx.lib
USE_CTL3D=1
USE_XPM_IN_MSW=0
PERIPH_LIBS=
PERIPH_TARGET=
PERIPH_CLEAN_TARGET=
!if "$(USE_CTL3D)" == "1"
PERIPH_LIBS=$(BCCDIR)\lib\ctl3dv2.lib $(PERIPH_LIBS)
!endif
!if "$(USE_XPM_IN_MSW)" == "1"
PERIPH_LIBS=$(WXDIR)\xpm.lib $(PERIPH_LIBS)
PERIPH_TARGET=xpm $(PERIPH_TARGET)
PERIPH_CLEAN_TARGET=clean_xpm $(PERIPH_CLEAN_TARGET)
!endif
# TODO: add these libraries
# PERIPH_LIBS=$(WXDIR)\lib\zlib.lib $(WXDIR)\lib\winpng.lib $(PERIPH_LIBS)
PERIPH_TARGET=zlib png $(PERIPH_TARGET)
PERIPH_CLEAN_TARGET=clean_zlib clean_png $(PERIPH_CLEAN_TARGET)
CPPFLAGS=$(DEBUG_FLAGS) $(OPT) @$(CFG)
LIBTARGET= $(WXLIBDIR)\wx.lib
DUMMY=dummy
GENDIR=..\generic
COMMDIR=..\common
OLEDIR=.\ole
MSWDIR=.
DOCDIR = $(WXDIR)\docs
GENERICOBJS= \
$(MSWDIR)\choicdgg.obj \
$(MSWDIR)\colrdlgg.obj \
$(MSWDIR)\fontdlgg.obj \
$(MSWDIR)\gridg.obj \
$(MSWDIR)\imaglist.obj \
$(MSWDIR)\helpxlp.obj \
$(MSWDIR)\laywin.obj \
$(MSWDIR)\listctrl.obj \
$(MSWDIR)\notebook.obj \
$(MSWDIR)\panelg.obj \
$(MSWDIR)\progdlgg.obj \
$(MSWDIR)\prop.obj \
$(MSWDIR)\propform.obj \
$(MSWDIR)\proplist.obj \
$(MSWDIR)\sashwin.obj \
$(MSWDIR)\scrolwin.obj \
$(MSWDIR)\splitter.obj \
$(MSWDIR)\statusbr.obj \
$(MSWDIR)\tabg.obj \
$(MSWDIR)\textdlgg.obj \
$(MSWDIR)\tipdlg.obj \
$(MSWDIR)\treectrl.obj
# $(MSWDIR)\msgdlgg.obj \
# $(MSWDIR)\printps.obj \
# $(MSWDIR)\prntdlgg.obj \
COMMONOBJS = \
$(MSWDIR)\config.obj \
$(MSWDIR)\cmndata.obj \
$(MSWDIR)\dcbase.obj \
$(MSWDIR)\docview.obj \
$(MSWDIR)\docmdi.obj \
$(MSWDIR)\dynarray.obj \
$(MSWDIR)\event.obj \
$(MSWDIR)\file.obj \
$(MSWDIR)\fileconf.obj \
$(MSWDIR)\filefn.obj \
$(MSWDIR)\framecmn.obj \
$(MSWDIR)\gdicmn.obj \
$(MSWDIR)\helpbase.obj \
$(MSWDIR)\image.obj \
$(MSWDIR)\intl.obj \
$(MSWDIR)\ipcbase.obj \
$(MSWDIR)\log.obj \
$(MSWDIR)\layout.obj \
$(MSWDIR)\memory.obj \
$(MSWDIR)\module.obj \
$(MSWDIR)\object.obj \
$(MSWDIR)\prntbase.obj \
$(MSWDIR)\resource.obj \
$(MSWDIR)\resourc2.obj \
$(MSWDIR)\tbarbase.obj \
$(MSWDIR)\tbarsmpl.obj \
$(MSWDIR)\textfile.obj \
$(MSWDIR)\timercmn.obj \
$(MSWDIR)\utilscmn.obj \
$(MSWDIR)\validate.obj \
$(MSWDIR)\valgen.obj \
$(MSWDIR)\valtext.obj \
$(MSWDIR)\variant.obj \
$(MSWDIR)\date.obj \
$(MSWDIR)\hash.obj \
$(MSWDIR)\list.obj \
$(MSWDIR)\paper.obj \
$(MSWDIR)\string.obj \
$(MSWDIR)\time.obj \
$(MSWDIR)\wxexpr.obj \
$(MSWDIR)\y_tab.obj \
$(MSWDIR)\stream.obj \
$(MSWDIR)\wfstream.obj \
$(MSWDIR)\mstream.obj \
$(MSWDIR)\zstream.obj \
$(MSWDIR)\datstrm.obj \
$(MSWDIR)\sckstrm.obj \
$(MSWDIR)\extended.obj \
$(MSWDIR)\dlgcmn.obj \
$(MSWDIR)\wincmn.obj \
$(MSWDIR)\objstrm.obj \
$(MSWDIR)\dynlib.obj \
$(MSWDIR)\tokenzr.obj \
$(MSWDIR)\wxchar.obj
# Don't compile for WIN16
# $(MSWDIR)\socket.obj \
# $(MSWDIR)\sckaddr.obj \
# $(MSWDIR)\protocol.obj \
# $(MSWDIR)\url.obj \
# $(MSWDIR)\http.obj \
# $(MSWDIR)\ftp.obj \
# $(MSWDIR)\sckfile.obj \
# $(MSWDIR)\sckipc.obj \
# Needs extra files (sql*.h) so not compiled by default.
# $(MSWDIR)\odbc.obj \
# Uses WIN32 registry functions
# $(MSWDIR)\mimetype.obj \
MSWOBJS = \
$(MSWDIR)\accel.obj \
$(MSWDIR)\app.obj \
$(MSWDIR)\bitmap.obj \
$(MSWDIR)\bmpbuttn.obj \
$(MSWDIR)\brush.obj \
$(MSWDIR)\button.obj \
$(MSWDIR)\checkbox.obj \
$(MSWDIR)\checklst.obj \
$(MSWDIR)\caret.obj \
$(MSWDIR)\choice.obj \
$(MSWDIR)\clipbrd.obj \
$(MSWDIR)\colordlg.obj \
$(MSWDIR)\colour.obj \
$(MSWDIR)\combobox.obj \
$(MSWDIR)\control.obj \
$(MSWDIR)\curico.obj \
$(MSWDIR)\cursor.obj \
$(MSWDIR)\data.obj \
$(MSWDIR)\dc.obj \
$(MSWDIR)\dcmemory.obj \
$(MSWDIR)\dcclient.obj \
$(MSWDIR)\dcprint.obj \
$(MSWDIR)\dcscreen.obj \
$(MSWDIR)\dde.obj \
$(MSWDIR)\dialog.obj \
$(MSWDIR)\dib.obj \
$(MSWDIR)\dibutils.obj \
$(MSWDIR)\dirdlg.obj \
$(MSWDIR)\filedlg.obj \
$(MSWDIR)\font.obj \
$(MSWDIR)\fontdlg.obj \
$(MSWDIR)\frame.obj \
$(MSWDIR)\gaugemsw.obj \
$(MSWDIR)\gdiobj.obj \
$(MSWDIR)\helpwin.obj \
$(MSWDIR)\icon.obj \
$(MSWDIR)\iniconf.obj \
$(MSWDIR)\joystick.obj \
$(MSWDIR)\listbox.obj \
$(MSWDIR)\main.obj \
$(MSWDIR)\mdi.obj \
$(MSWDIR)\menu.obj \
$(MSWDIR)\menuitem.obj \
$(MSWDIR)\metafile.obj \
$(MSWDIR)\minifram.obj \
$(MSWDIR)\msgdlg.obj \
$(MSWDIR)\nativdlg.obj \
$(MSWDIR)\ownerdrw.obj \
$(MSWDIR)\palette.obj \
$(MSWDIR)\pen.obj \
$(MSWDIR)\penwin.obj \
$(MSWDIR)\pnghand.obj \
$(MSWDIR)\printdlg.obj \
$(MSWDIR)\printwin.obj \
$(MSWDIR)\radiobox.obj \
$(MSWDIR)\radiobut.obj \
$(MSWDIR)\region.obj \
$(MSWDIR)\scrolbar.obj \
$(MSWDIR)\settings.obj \
$(MSWDIR)\slidrmsw.obj \
$(MSWDIR)\spinbutt.obj \
$(MSWDIR)\statbmp.obj \
$(MSWDIR)\statbox.obj \
$(MSWDIR)\statline.obj \
$(MSWDIR)\stattext.obj \
$(MSWDIR)\tbarmsw.obj \
$(MSWDIR)\textctrl.obj \
$(MSWDIR)\timer.obj \
$(MSWDIR)\utils.obj \
$(MSWDIR)\utilsexc.obj \
$(MSWDIR)\wave.obj \
$(MSWDIR)\window.obj \
$(MSWDIR)\xpmhand.obj
# Unfortunately this causes a crash when the oleauto sample starts.
# $(MSWDIR)\automtn.obj
# Not used for 16-bit compilation
# $(MSWDIR)\tooltip.obj \
# $(MSWDIR)\gauge95.obj \
# $(MSWDIR)\treectrl.obj \
# $(MSWDIR)\oleutils.obj \
# $(MSWDIR)\dataobj.obj \
# $(MSWDIR)\uuid.obj
# $(MSWDIR)\droptgt.obj \
# $(MSWDIR)\dropsrc.obj \
# $(MSWDIR)\imaglist.obj \
# $(MSWDIR)\notebook.obj \
# $(MSWDIR)\listctrl.obj \
# $(MSWDIR)\tabctrl.obj \
# $(MSWDIR)\taskbar.obj \
# $(MSWDIR)\tbar95.obj \
# $(MSWDIR)\thread.obj \
# $(MSWDIR)\slider95.obj \
# $(MSWDIR)\statbr95.obj \
# $(MSWDIR)\registry.obj \
# $(MSWDIR)\regconf.obj \
OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(MSWOBJS)
default: wx
wx: $(CFG) $(DUMMY).obj $(OBJECTS) $(PERIPH_TARGET) $(LIBTARGET)
$(LIBTARGET): $(DUMMY).obj $(OBJECTS) $(PERIPH_LIBS)
erase $(LIBTARGET)
tlib $(LIBTARGET) /P1024 @&&!
+$(OBJECTS:.obj =.obj +) +$(PERIPH_LIBS:.lib =.lib +)
!
dummy.obj: dummy.$(SRCSUFF) $(LOCALHEADERS) $(BASEHEADERS) $(WXDIR)\include\wx\wx.h
dummydll.obj: dummydll.$(SRCSUFF) $(LOCALHEADERS) $(BASEHEADERS) $(WXDIR)\include\wx\wx.h
$(MSWDIR)\y_tab.obj: $(COMMDIR)\y_tab.c $(COMMDIR)\lex_yy.c
# cl @<<
#$(CPPFLAGS2) /c $*.c -DUSE_DEFINE -DYY_USE_PROTOS /Fo$@
#<<
$(COMMDIR)\y_tab.c: $(COMMDIR)\dosyacc.c
copy $(COMMDIR)\dosyacc.c $(COMMDIR)\y_tab.c
$(COMMDIR)\lex_yy.c: $(COMMDIR)\doslex.c
copy $(COMMDIR)\doslex.c $(COMMDIR)\lex_yy.c
#$(OBJECTS): $(WXDIR)\include\wx\setup.h
$(MSWDIR)\accel.obj: $(MSWDIR)\accel.$(SRCSUFF)
$(MSWDIR)\app.obj: $(MSWDIR)\app.$(SRCSUFF)
$(MSWDIR)\bitmap.obj: $(MSWDIR)\bitmap.$(SRCSUFF)
$(MSWDIR)\bmpbuttn.obj: $(MSWDIR)\bmpbuttn.$(SRCSUFF)
$(MSWDIR)\brush.obj: $(MSWDIR)\brush.$(SRCSUFF)
$(MSWDIR)\button.obj: $(MSWDIR)\button.$(SRCSUFF)
$(MSWDIR)\caret.obj: $(MSWDIR)\caret.$(SRCSUFF)
$(MSWDIR)\choice.obj: $(MSWDIR)\choice.$(SRCSUFF)
$(MSWDIR)\checkbox.obj: $(MSWDIR)\checkbox.$(SRCSUFF)
$(MSWDIR)\checklst.obj: $(MSWDIR)\checklst.$(SRCSUFF)
$(MSWDIR)\clipbrd.obj: $(MSWDIR)\clipbrd.$(SRCSUFF)
$(MSWDIR)\colordlg.obj: $(MSWDIR)\colordlg.$(SRCSUFF)
$(MSWDIR)\colour.obj: $(MSWDIR)\colour.$(SRCSUFF)
$(MSWDIR)\combobox.obj: $(MSWDIR)\combobox.$(SRCSUFF)
$(MSWDIR)\control.obj: $(MSWDIR)\control.$(SRCSUFF)
$(MSWDIR)\curico.obj: $(MSWDIR)\curico.$(SRCSUFF)
$(MSWDIR)\cursor.obj: $(MSWDIR)\cursor.$(SRCSUFF)
$(MSWDIR)\data.obj: $(MSWDIR)\data.$(SRCSUFF)
$(MSWDIR)\dde.obj: $(MSWDIR)\dde.$(SRCSUFF)
$(MSWDIR)\dc.obj: $(MSWDIR)\dc.$(SRCSUFF)
$(MSWDIR)\dcmemory.obj: $(MSWDIR)\dcmemory.$(SRCSUFF)
$(MSWDIR)\dcclient.obj: $(MSWDIR)\dcclient.$(SRCSUFF)
$(MSWDIR)\dcprint.obj: $(MSWDIR)\dcprint.$(SRCSUFF)
$(MSWDIR)\dcscreen.obj: $(MSWDIR)\dcscreen.$(SRCSUFF)
$(MSWDIR)\dialog.obj: $(MSWDIR)\dialog.$(SRCSUFF)
$(MSWDIR)\dib.obj: $(MSWDIR)\dib.$(SRCSUFF)
$(MSWDIR)\dirdlg.obj: $(MSWDIR)\dirdlg.$(SRCSUFF)
$(MSWDIR)\filedlg.obj: $(MSWDIR)\filedlg.$(SRCSUFF)
$(MSWDIR)\font.obj: $(MSWDIR)\font.$(SRCSUFF)
$(MSWDIR)\fontdlg.obj: $(MSWDIR)\fontdlg.$(SRCSUFF)
$(MSWDIR)\frame.obj: $(MSWDIR)\frame.$(SRCSUFF)
$(MSWDIR)\gaugemsw.obj: $(MSWDIR)\gaugemsw.$(SRCSUFF)
$(MSWDIR)\gauge95.obj: $(MSWDIR)\gauge95.$(SRCSUFF)
$(MSWDIR)\gdiobj.obj: $(MSWDIR)\gdiobj.$(SRCSUFF)
$(MSWDIR)\icon.obj: $(MSWDIR)\icon.$(SRCSUFF)
# $(MSWDIR)\imaglist.obj: $(MSWDIR)\imaglist.$(SRCSUFF)
$(MSWDIR)\joystick.obj: $(MSWDIR)\joystick.$(SRCSUFF)
$(MSWDIR)\listbox.obj: $(MSWDIR)\listbox.$(SRCSUFF)
# $(MSWDIR)\listctrl.obj: $(MSWDIR)\listctrl.$(SRCSUFF)
$(MSWDIR)\main.obj: $(MSWDIR)\main.$(SRCSUFF)
$(MSWDIR)\mdi.obj: $(MSWDIR)\mdi.$(SRCSUFF)
$(MSWDIR)\menu.obj: $(MSWDIR)\menu.$(SRCSUFF)
$(MSWDIR)\menuitem.obj: $(MSWDIR)\menu.$(SRCSUFF)
$(MSWDIR)\metafile.obj: $(MSWDIR)\metafile.$(SRCSUFF)
$(MSWDIR)\minifram.obj: $(MSWDIR)\minifram.$(SRCSUFF)
$(MSWDIR)\msgdlg.obj: $(MSWDIR)\msgdlg.$(SRCSUFF)
$(MSWDIR)\nativdlg.obj: $(MSWDIR)\nativdlg.$(SRCSUFF)
# $(MSWDIR)\notebook.obj: $(MSWDIR)\notebook.$(SRCSUFF)
$(MSWDIR)\ownerdrw.obj: $(MSWDIR)\ownerdrw.$(SRCSUFF)
$(MSWDIR)\palette.obj: $(MSWDIR)\palette.$(SRCSUFF)
$(MSWDIR)\pen.obj: $(MSWDIR)\pen.$(SRCSUFF)
$(MSWDIR)\penwin.obj: $(MSWDIR)\penwin.$(SRCSUFF)
$(MSWDIR)\printdlg.obj: $(MSWDIR)\printdlg.$(SRCSUFF)
$(MSWDIR)\printwin.obj: $(MSWDIR)\printwin.$(SRCSUFF)
$(MSWDIR)\radiobox.obj: $(MSWDIR)\radiobox.$(SRCSUFF)
$(MSWDIR)\radiobut.obj: $(MSWDIR)\radiobut.$(SRCSUFF)
$(MSWDIR)\region.obj: $(MSWDIR)\region.$(SRCSUFF)
$(MSWDIR)\registry.obj: $(MSWDIR)\registry.$(SRCSUFF)
$(MSWDIR)\regconf.obj: $(MSWDIR)\regconf.$(SRCSUFF)
$(MSWDIR)\scrolbar.obj: $(MSWDIR)\scrolbar.$(SRCSUFF)
$(MSWDIR)\settings.obj: $(MSWDIR)\settings.$(SRCSUFF)
$(MSWDIR)\slidrmsw.obj: $(MSWDIR)\slidrmsw.$(SRCSUFF)
$(MSWDIR)\slider95.obj: $(MSWDIR)\slider95.$(SRCSUFF)
$(MSWDIR)\spinbutt.obj: $(MSWDIR)\spinbutt.$(SRCSUFF)
$(MSWDIR)\statbmp.obj: $(MSWDIR)\statbmp.$(SRCSUFF)
$(MSWDIR)\statbox.obj: $(MSWDIR)\statbox.$(SRCSUFF)
$(MSWDIR)\statline.obj: $(MSWDIR)\statline.$(SRCSUFF)
$(MSWDIR)\statbr95.obj: $(MSWDIR)\statbr95.$(SRCSUFF)
$(MSWDIR)\stattext.obj: $(MSWDIR)\stattext.$(SRCSUFF)
$(MSWDIR)\tabctrl.obj: $(MSWDIR)\tabctrl.$(SRCSUFF)
$(MSWDIR)\taskbar.obj: $(MSWDIR)\taskbar.$(SRCSUFF)
$(MSWDIR)\tbar95.obj: $(MSWDIR)\tbar95.$(SRCSUFF)
$(MSWDIR)\tbarmsw.obj: $(MSWDIR)\tbarmsw.$(SRCSUFF)
$(MSWDIR)\textctrl.obj: $(MSWDIR)\textctrl.$(SRCSUFF)
$(MSWDIR)\thread.obj: $(MSWDIR)\thread.$(SRCSUFF)
$(MSWDIR)\timer.obj: $(MSWDIR)\timer.$(SRCSUFF)
$(MSWDIR)\tooltip.obj: $(MSWDIR)\tooltip.$(SRCSUFF)
# $(MSWDIR)\treectrl.obj: $(MSWDIR)\treectrl.$(SRCSUFF)
$(MSWDIR)\utils.obj: $(MSWDIR)\utils.$(SRCSUFF)
$(MSWDIR)\utilsexc.obj: $(MSWDIR)\utilsexc.$(SRCSUFF)
$(MSWDIR)\wave.obj: $(MSWDIR)\wave.$(SRCSUFF)
$(MSWDIR)\window.obj: $(MSWDIR)\window.$(SRCSUFF)
$(MSWDIR)\droptgt.obj: $(OLEDIR)\droptgt.$(SRCSUFF)
$(MSWDIR)\dropsrc.obj: $(OLEDIR)\dropsrc.$(SRCSUFF)
$(MSWDIR)\dataobj.obj: $(OLEDIR)\dataobj.$(SRCSUFF)
$(MSWDIR)\oleutils.obj: $(OLEDIR)\oleutils.$(SRCSUFF)
$(MSWDIR)\uuid.obj: $(OLEDIR)\uuid.$(SRCSUFF)
$(MSWDIR)\automtn.obj: $(OLEDIR)\automtn.$(SRCSUFF)
########################################################
# Common objects (always compiled)
$(MSWDIR)\config.obj: $(COMMDIR)\config.$(SRCSUFF)
$(MSWDIR)\cmndata.obj: $(COMMDIR)\cmndata.$(SRCSUFF)
$(MSWDIR)\dcbase.obj: $(COMMDIR)\dcbase.$(SRCSUFF)
$(MSWDIR)\docview.obj: $(COMMDIR)\docview.$(SRCSUFF)
$(MSWDIR)\docmdi.obj: $(COMMDIR)\docmdi.$(SRCSUFF)
$(MSWDIR)\dynarray.obj: $(COMMDIR)\dynarray.$(SRCSUFF)
$(MSWDIR)\dynlib.obj: $(COMMDIR)\dynlib.$(SRCSUFF)
$(MSWDIR)\event.obj: $(COMMDIR)\event.$(SRCSUFF)
$(MSWDIR)\file.obj: $(COMMDIR)\file.$(SRCSUFF)
$(MSWDIR)\fileconf.obj: $(COMMDIR)\fileconf.$(SRCSUFF)
$(MSWDIR)\filefn.obj: $(COMMDIR)\filefn.$(SRCSUFF)
$(MSWDIR)\framecmn.obj: $(COMMDIR)\framecmn.$(SRCSUFF)
$(MSWDIR)\gdicmn.obj: $(COMMDIR)\gdicmn.$(SRCSUFF)
$(MSWDIR)\image.obj: $(COMMDIR)\image.$(SRCSUFF)
$(MSWDIR)\intl.obj: $(COMMDIR)\intl.$(SRCSUFF)
$(MSWDIR)\ipcbase.obj: $(COMMDIR)\ipcbase.$(SRCSUFF)
$(MSWDIR)\helpbase.obj: $(COMMDIR)\helpbase.$(SRCSUFF)
$(MSWDIR)\layout.obj: $(COMMDIR)\layout.$(SRCSUFF)
$(MSWDIR)\log.obj: $(COMMDIR)\log.$(SRCSUFF)
$(MSWDIR)\memory.obj: $(COMMDIR)\memory.$(SRCSUFF)
$(MSWDIR)\mimetype.obj: $(COMMDIR)\mimetype.$(SRCSUFF)
$(MSWDIR)\module.obj: $(COMMDIR)\module.$(SRCSUFF)
$(MSWDIR)\object.obj: $(COMMDIR)\object.$(SRCSUFF)
$(MSWDIR)\odbc.obj: $(COMMDIR)\odbc.$(SRCSUFF)
$(MSWDIR)\prntbase.obj: $(COMMDIR)\prntbase.$(SRCSUFF)
$(MSWDIR)\resource.obj: $(COMMDIR)\resource.$(SRCSUFF)
$(MSWDIR)\resourc2.obj: $(COMMDIR)\resourc2.$(SRCSUFF)
$(MSWDIR)\tbarbase.obj: $(COMMDIR)\tbarbase.$(SRCSUFF)
$(MSWDIR)\tbarsmpl.obj: $(COMMDIR)\tbarsmpl.$(SRCSUFF)
$(MSWDIR)\textfile.obj: $(COMMDIR)\textfile.$(SRCSUFF)
$(MSWDIR)\timercmn.obj: $(COMMDIR)\timercmn.$(SRCSUFF)
$(MSWDIR)\utilscmn.obj: $(COMMDIR)\utilscmn.$(SRCSUFF)
$(MSWDIR)\validate.obj: $(COMMDIR)\validate.$(SRCSUFF)
$(MSWDIR)\valgen.obj: $(COMMDIR)\valgen.$(SRCSUFF)
$(MSWDIR)\valtext.obj: $(COMMDIR)\valtext.$(SRCSUFF)
$(MSWDIR)\date.obj: $(COMMDIR)\date.$(SRCSUFF)
$(MSWDIR)\wxexpr.obj: $(COMMDIR)\wxexpr.$(SRCSUFF)
$(MSWDIR)\hash.obj: $(COMMDIR)\hash.$(SRCSUFF)
$(MSWDIR)\list.obj: $(COMMDIR)\list.$(SRCSUFF)
$(MSWDIR)\paper.obj: $(COMMDIR)\paper.$(SRCSUFF)
$(MSWDIR)\string.obj: $(COMMDIR)\string.$(SRCSUFF)
$(MSWDIR)\variant.obj: $(COMMDIR)\variant.$(SRCSUFF)
$(MSWDIR)\matrix.obj: $(COMMDIR)\matrix.$(SRCSUFF)
$(MSWDIR)\time.obj: $(COMMDIR)\time.$(SRCSUFF)
$(MSWDIR)\datstrm.obj: $(COMMDIR)\datstrm.$(SRCSUFF)
$(MSWDIR)\sckstrm.obj: $(COMMDIR)\sckstrm.$(SRCSUFF)
$(MSWDIR)\mstream.obj: $(COMMDIR)\mstream.$(SRCSUFF)
$(MSWDIR)\zstream.obj: $(COMMDIR)\zstream.$(SRCSUFF)
$(MSWDIR)\wfstream.obj: $(COMMDIR)\wfstream.$(SRCSUFF)
$(MSWDIR)\stream.obj: $(COMMDIR)\stream.$(SRCSUFF)
$(MSWDIR)\objstrm.obj: $(COMMDIR)\objstrm.$(SRCSUFF)
$(MSWDIR)\dlgcmn.obj: $(COMMDIR)\dlgcmn.$(SRCSUFF)
$(MSWDIR)\wincmn.obj: $(COMMDIR)\wincmn.$(SRCSUFF)
$(MSWDIR)\extended.obj: $(COMMDIR)\extended.c
$(MSWDIR)\tokenzr.obj: $(COMMDIR)\tokenzr.$(SRCSUFF)
$(MSWDIR)\socket.obj: $(COMMDIR)\socket.$(SRCSUFF)
$(MSWDIR)\sckaddr.obj: $(COMMDIR)\sckaddr.$(SRCSUFF)
$(MSWDIR)\protocol.obj: $(COMMDIR)\protocol.$(SRCSUFF)
$(MSWDIR)\url.obj: $(COMMDIR)\url.$(SRCSUFF)
$(MSWDIR)\http.obj: $(COMMDIR)\http.$(SRCSUFF)
$(MSWDIR)\ftp.obj: $(COMMDIR)\ftp.$(SRCSUFF)
$(MSWDIR)\sckfile.obj: $(COMMDIR)\sckfile.$(SRCSUFF)
$(MSWDIR)\sckipc.obj: $(COMMDIR)\sckipc.$(SRCSUFF)
$(MSWDIR)\wxchar.obj: $(COMMDIR)\wxchar.$(SRCSUFF)
########################################################
# Generic objects (not always compiled, depending on
# whether platforms have native implementations)
$(MSWDIR)\choicdgg.obj: $(GENDIR)\choicdgg.$(SRCSUFF)
$(MSWDIR)\colrdlgg.obj: $(GENDIR)\colrdlgg.$(SRCSUFF)
$(MSWDIR)\fontdlgg.obj: $(GENDIR)\fontdlgg.$(SRCSUFF)
$(MSWDIR)\gridg.obj: $(GENDIR)\gridg.$(SRCSUFF)
$(MSWDIR)\helpxlp.obj: $(GENDIR)\helpxlp.$(SRCSUFF)
$(MSWDIR)\laywin.obj: $(GENDIR)\laywin.$(SRCSUFF)
$(MSWDIR)\msgdlgg.obj: $(GENDIR)\msgdlgg.$(SRCSUFF)
$(MSWDIR)\panelg.obj: $(GENDIR)\panelg.$(SRCSUFF)
$(MSWDIR)\printps.obj: $(GENDIR)\printps.$(SRCSUFF)
$(MSWDIR)\prntdlgg.obj: $(GENDIR)\prntdlgg.$(SRCSUFF)
$(MSWDIR)\progdlgg.obj: $(GENDIR)\progdlgg.$(SRCSUFF)
$(MSWDIR)\prop.obj: $(GENDIR)\prop.$(SRCSUFF)
$(MSWDIR)\proplist.obj: $(GENDIR)\proplist.$(SRCSUFF)
$(MSWDIR)\propform.obj: $(GENDIR)\propform.$(SRCSUFF)
$(MSWDIR)\sashwin.obj: $(GENDIR)\sashwin.$(SRCSUFF)
$(MSWDIR)\scrolwin.obj: $(GENDIR)\scrolwin.$(SRCSUFF)
$(MSWDIR)\splitter.obj: $(GENDIR)\splitter.$(SRCSUFF)
$(MSWDIR)\statusbr.obj: $(GENDIR)\statusbr.$(SRCSUFF)
$(MSWDIR)\textdlgg.obj: $(GENDIR)\textdlgg.$(SRCSUFF)
$(MSWDIR)\tipdlg.obj: $(GENDIR)\tipdlg.$(SRCSUFF)
$(MSWDIR)\tabg.obj: $(GENDIR)\tabg.$(SRCSUFF)
$(MSWDIR)\treectrl.obj: $(GENDIR)\treectrl.$(SRCSUFF)
$(MSWDIR)\listctrl.obj: $(GENDIR)\listctrl.$(SRCSUFF)
$(MSWDIR)\imaglist.obj: $(GENDIR)\imaglist.$(SRCSUFF)
$(MSWDIR)\notebook.obj: $(GENDIR)\notebook.$(SRCSUFF)
all_utils:
cd $(WXDIR)\utils
make -f makefile.bcc
cd $(WXDIR)\src\msw
all_samples:
cd $(WXDIR)\samples
make -f makefile.bcc
cd $(WXDIR)\src\msw
all_execs:
cd $(WXDIR)\utils
make -f makefile.bcc all_execs
cd $(WXDIR)\src\msw
all_libs:
cd $(WXDIR)\src\msw
make -f makefile.bcc ctl3d dib fafa gauge hytext itsy prologio rcparser wx wxgraph\
wxstring wxtree mfutils # wxxpm
all_contribs:
cd $(WXDIR)\src\msw
make -f makefile.bcc ctl3d fafa wxstring itsy gauge # wxxpm
# CONTRIB
ctl3d: $(CFG)
cd $(WXDIR)\src\msw\ctl3d\borland
make -f makefile.bcc -DCFG=$(CFG)
cd $(WXDIR)\src\msw
wxxpm: $(CFG)
cd $(WXDIR)\src\xpm
make -f makefile.bcc -DCFG=$(CFG) -DFINAL=$(FINAL) -DWXWIN=$(WXDIR) -DDEBUG=$(DEBUG)
cd $(WXDIR)\src\msw
png: $(CFG)
cd $(WXDIR)\src\png
make -f makefile.bcc
cd $(WXDIR)\src\msw
clean_png:
cd $(WXDIR)\src\png
make -f makefile.bcc clean
cd $(WXDIR)\src\msw
zlib: $(CFG)
cd $(WXDIR)\src\zlib
make -f makefile.bcc
cd $(WXDIR)\src\msw
clean_zlib:
cd $(WXDIR)\src\zlib
make -f makefile.bcc clean
cd $(WXDIR)\src\msw
$(CFG): makefile.bcc
copy &&!
-H=$(WXDIR)\src\msw\borland.pch
-2
-P
-d
-w-hid
-w-par
-w-pia
-w-aus
-w-rch
-ml
-Od
-WE
-Fs-
-Vf
-Ff=4
-I$(WXINC);$(BCCDIR)\include;$(WXDIR)/src/png;$(WXDIR)/src/zlib;$(WXDIR)/src/xpm
-I$(WXDIR)\include\wx\msw\gnuwin32
-L$(BCCDIR)\lib
-D__WXWIN__
-D__WXMSW__
-D__WINDOWS__
-D__WIN16__
! $(CFG)
!if "$(BOR_VER)" == "3.1"
echo -Ff=4 >>$(CFG)
!elif "$(BOR_VER)" == "4"
echo -Ff=512 >>$(CFG)
echo -dc >>$(CFG)
!else
echo -Ff=512 >>$(CFG)
echo -dc >>$(CFG)
!endif
# -O was: -Oxt
clean: $(PERIPH_CLEAN_TARGET)
erase $(LIBTARGET)
erase *.obj
erase *.pch
erase *.csm
erase *.cfg
erase ..\common\y_tab.c
erase ..\common\lex_yy.c
cleanall: clean

1165
src/msw/makefile.dos Normal file

File diff suppressed because it is too large Load Diff

321
src/msw/makefile.g95 Normal file
View File

@@ -0,0 +1,321 @@
#
# File: makefile.unx
# Author: Julian Smart
# Created: 1993
# Updated:
# Copyright: (c) 1993, AIAI, University of Edinburgh
#
# "@(#)makefile.unx 1.2 5/9/94"
#
# Makefile for libwx.a
# Replace this with your own path if necessary
WXDIR = ../..
# All common UNIX compiler flags and options are now in
# this central makefile.
include $(WXDIR)/src/makeg95.env
# IMPORTANT: if you want to link in subsidiary libraries,
# required for some optional parts of wxWindows, you must
# set EXTRATARGETS and EXTRAOBJS to match the settings in wx_setup.h.
# Having done this, you won't have to worry about linking them
# into each application.
#
# Here's the full list.
# prologio: Required if using the wxWindows resource facility
# USE_WX_RESOURCES should be 1
# xmgauge: Gauge class (required for Motif only)
# USE_GAUGE should be 1
# xpm: XPM pixmap support
# USE_XPM_IN_X should be 1
# wxstring: string class
# USE_GNU_WXSTRING should be 1
#
# Unfortunately, 'ar' doesn't like combining objects and libraries,
# so we must identify all the objects from the subordinate libraries. Yuck!
XPMSRC=../../contrib/wxxpm/objects$(GUISUFFIX)
XPMOBJS=$(XPMSRC)/crbuffri.$(OBJSUFF) $(XPMSRC)/crbuffrp.$(OBJSUFF) $(XPMSRC)/crdatfri.$(OBJSUFF) $(XPMSRC)/crdatfrp.$(OBJSUFF)\
$(XPMSRC)/create.$(OBJSUFF) $(XPMSRC)/crifrbuf.$(OBJSUFF) $(XPMSRC)/crifrdat.$(OBJSUFF) $(XPMSRC)/crpfrbuf.$(OBJSUFF) $(XPMSRC)/crpfrdat.$(OBJSUFF)\
$(XPMSRC)/data.$(OBJSUFF) $(XPMSRC)/hashtab.$(OBJSUFF) $(XPMSRC)/misc.$(OBJSUFF) $(XPMSRC)/parse.$(OBJSUFF) $(XPMSRC)/rdftodat.$(OBJSUFF)\
$(XPMSRC)/rdftoi.$(OBJSUFF) $(XPMSRC)/rdftop.$(OBJSUFF) $(XPMSRC)/rgb.$(OBJSUFF) $(XPMSRC)/scan.$(OBJSUFF) $(XPMSRC)/simx.$(OBJSUFF)\
$(XPMSRC)/wrffrdat.$(OBJSUFF) $(XPMSRC)/wrffri.$(OBJSUFF) $(XPMSRC)/wrffrp.$(OBJSUFF)
# Subordinate library possibilities
EXTRAOBJS=
GENDIR=../generic
COMMDIR=../common
XPMDIR=../xpm
OLEDIR=ole
MSWDIR=.
DOCDIR = $(WXDIR)\docs
GENERICOBJS= \
$(GENDIR)/choicdgg.$(OBJSUFF) \
$(GENDIR)/dirdlgg.$(OBJSUFF) \
$(GENDIR)/gridg.$(OBJSUFF) \
$(GENDIR)/laywin.$(OBJSUFF) \
$(GENDIR)/panelg.$(OBJSUFF) \
$(GENDIR)/progdlgg.$(OBJSUFF) \
$(GENDIR)/prop.$(OBJSUFF) \
$(GENDIR)/propform.$(OBJSUFF) \
$(GENDIR)/proplist.$(OBJSUFF) \
$(GENDIR)/sashwin.$(OBJSUFF) \
$(GENDIR)/scrolwin.$(OBJSUFF) \
$(GENDIR)/splitter.$(OBJSUFF) \
$(GENDIR)/statusbr.$(OBJSUFF) \
$(GENDIR)/tabg.$(OBJSUFF) \
$(GENDIR)/textdlgg.$(OBJSUFF) \
$(GENDIR)/tipdlg.$(OBJSUFF)
# $(GENDIR)/colrdlgg.$(OBJSUFF) \
# $(GENDIR)/fontdlgg.$(OBJSUFF) \
# $(GENDIR)/prntdlgg.$(OBJSUFF) \
# $(GENDIR)/printps.$(OBJSUFF) \
# $(GENDIR)/msgdlgg.$(OBJSUFF) \
COMMONOBJS = \
$(COMMDIR)/config.$(OBJSUFF) \
$(COMMDIR)/cmndata.$(OBJSUFF) \
$(COMMDIR)/dcbase.$(OBJSUFF) \
$(COMMDIR)/docview.$(OBJSUFF) \
$(COMMDIR)/docmdi.$(OBJSUFF) \
$(COMMDIR)/dynarray.$(OBJSUFF) \
$(COMMDIR)/event.$(OBJSUFF) \
$(COMMDIR)/file.$(OBJSUFF) \
$(COMMDIR)/fileconf.$(OBJSUFF) \
$(COMMDIR)/filefn.$(OBJSUFF) \
$(COMMDIR)/framecmn.$(OBJSUFF) \
$(COMMDIR)/gdicmn.$(OBJSUFF) \
$(COMMDIR)/helpbase.$(OBJSUFF) \
$(COMMDIR)/image.$(OBJSUFF) \
$(COMMDIR)/imagebmp.$(OBJSUFF) \
$(COMMDIR)/imagpng.$(OBJSUFF) \
$(COMMDIR)/imagjpeg.$(OBJSUFF) \
$(COMMDIR)/intl.$(OBJSUFF) \
$(COMMDIR)/ipcbase.$(OBJSUFF) \
$(COMMDIR)/layout.$(OBJSUFF) \
$(COMMDIR)/log.$(OBJSUFF) \
$(COMMDIR)/memory.$(OBJSUFF) \
$(COMMDIR)/module.$(OBJSUFF) \
$(COMMDIR)/mimetype.$(OBJSUFF) \
$(COMMDIR)/object.$(OBJSUFF) \
$(COMMDIR)/odbc.$(OBJSUFF) \
$(COMMDIR)/process.$(OBJSUFF) \
$(COMMDIR)/prntbase.$(OBJSUFF) \
$(COMMDIR)/resource.$(OBJSUFF) \
$(COMMDIR)/tbarbase.$(OBJSUFF) \
$(COMMDIR)/tbarsmpl.$(OBJSUFF) \
$(COMMDIR)/textfile.$(OBJSUFF) \
$(COMMDIR)/timercmn.$(OBJSUFF) \
$(COMMDIR)/utilscmn.$(OBJSUFF) \
$(COMMDIR)/validate.$(OBJSUFF) \
$(COMMDIR)/valgen.$(OBJSUFF) \
$(COMMDIR)/valtext.$(OBJSUFF) \
$(COMMDIR)/date.$(OBJSUFF) \
$(COMMDIR)/wxexpr.$(OBJSUFF) \
$(COMMDIR)/hash.$(OBJSUFF) \
$(COMMDIR)/list.$(OBJSUFF) \
$(COMMDIR)/variant.$(OBJSUFF) \
$(COMMDIR)/paper.$(OBJSUFF) \
$(COMMDIR)/string.$(OBJSUFF) \
$(COMMDIR)/time.$(OBJSUFF) \
$(COMMDIR)/tokenzr.$(OBJSUFF) \
$(COMMDIR)/y_tab.$(OBJSUFF) \
$(COMMDIR)/stream.$(OBJSUFF) \
$(COMMDIR)/wfstream.$(OBJSUFF) \
$(COMMDIR)/mstream.$(OBJSUFF) \
$(COMMDIR)/zstream.$(OBJSUFF) \
$(COMMDIR)/datstrm.$(OBJSUFF) \
$(COMMDIR)/objstrm.$(OBJSUFF) \
$(COMMDIR)/extended.$(OBJSUFF) \
$(COMMDIR)/dlgcmn.$(OBJSUFF) \
$(COMMDIR)/wincmn.$(OBJSUFF) \
$(COMMDIR)/wxchar.$(OBJSUFF)
# NOTE: if the socket-related files fail with a syntax error in Sockets.h,
# remove the files (probably all GnuWin32 releases < b20). Cygwin b20 is OK,
# Mingw32 may still have problems.
# $(COMMDIR)/socket.$(OBJSUFF) \
# $(COMMDIR)/sckaddr.$(OBJSUFF) \
# $(COMMDIR)/sckfile.$(OBJSUFF) \
# $(COMMDIR)/sckipc.$(OBJSUFF) \
# $(COMMDIR)/sckstrm.$(OBJSUFF) \
# $(COMMDIR)/protocol.$(OBJSUFF) \
# $(COMMDIR)/http.$(OBJSUFF) \
# $(COMMDIR)/ftp.$(OBJSUFF) \
# $(COMMDIR)/url.$(OBJSUFF) \
MSWOBJS = \
accel.$(OBJSUFF) \
app.$(OBJSUFF) \
bitmap.$(OBJSUFF) \
bmpbuttn.$(OBJSUFF) \
brush.$(OBJSUFF) \
button.$(OBJSUFF) \
checkbox.$(OBJSUFF) \
checklst.$(OBJSUFF) \
caret.$(OBJSUFF) \
choice.$(OBJSUFF) \
clipbrd.$(OBJSUFF) \
colordlg.$(OBJSUFF) \
colour.$(OBJSUFF) \
combobox.$(OBJSUFF) \
control.$(OBJSUFF) \
curico.$(OBJSUFF) \
cursor.$(OBJSUFF) \
data.$(OBJSUFF) \
dc.$(OBJSUFF) \
dcmemory.$(OBJSUFF) \
dcclient.$(OBJSUFF) \
dcprint.$(OBJSUFF) \
dcscreen.$(OBJSUFF) \
dde.$(OBJSUFF) \
dialog.$(OBJSUFF) \
dib.$(OBJSUFF) \
filedlg.$(OBJSUFF) \
font.$(OBJSUFF) \
fontdlg.$(OBJSUFF) \
frame.$(OBJSUFF) \
gaugemsw.$(OBJSUFF) \
gauge95.$(OBJSUFF) \
gdiobj.$(OBJSUFF) \
helpwin.$(OBJSUFF) \
icon.$(OBJSUFF) \
imaglist.$(OBJSUFF) \
joystick.$(OBJSUFF) \
listbox.$(OBJSUFF) \
listctrl.$(OBJSUFF) \
main.$(OBJSUFF) \
mdi.$(OBJSUFF) \
menu.$(OBJSUFF) \
menuitem.$(OBJSUFF) \
metafile.$(OBJSUFF) \
minifram.$(OBJSUFF) \
msgdlg.$(OBJSUFF) \
nativdlg.$(OBJSUFF) \
notebook.$(OBJSUFF) \
ownerdrw.$(OBJSUFF) \
palette.$(OBJSUFF) \
pen.$(OBJSUFF) \
penwin.$(OBJSUFF) \
printdlg.$(OBJSUFF) \
printwin.$(OBJSUFF) \
radiobox.$(OBJSUFF) \
radiobut.$(OBJSUFF) \
region.$(OBJSUFF) \
registry.$(OBJSUFF) \
regconf.$(OBJSUFF) \
scrolbar.$(OBJSUFF) \
settings.$(OBJSUFF) \
slidrmsw.$(OBJSUFF) \
slider95.$(OBJSUFF) \
spinbutt.$(OBJSUFF) \
statbmp.$(OBJSUFF) \
statbox.$(OBJSUFF) \
statline.$(OBJSUFF) \
statbr95.$(OBJSUFF) \
stattext.$(OBJSUFF) \
tabctrl.$(OBJSUFF) \
taskbar.$(OBJSUFF) \
tbar95.$(OBJSUFF) \
tbarmsw.$(OBJSUFF) \
textctrl.$(OBJSUFF) \
thread.$(OBJSUFF) \
timer.$(OBJSUFF) \
tooltip.$(OBJSUFF) \
treectrl.$(OBJSUFF) \
utils.$(OBJSUFF) \
utilsexc.$(OBJSUFF) \
wave.$(OBJSUFF) \
window.$(OBJSUFF) \
xpmhand.$(OBJSUFF)
# Native wxDirDlg can't be compiled due to GnuWin32/OLE limitations
# dirdlg.$(OBJSUFF) \
# OLE not supported yet by GnuWin32
# $(OLEDIR)/droptgt.$(OBJSUFF) \
# $(OLEDIR)/dropsrc.$(OBJSUFF) \
# $(OLEDIR)/dataobj.$(OBJSUFF) \
# $(OLEDIR)/oleutils.$(OBJSUFF) \
# $(OLEDIR)/uuid.$(OBJSUFF) \
# $(OLEDIR)/automtn.$(OBJSUFF)
XPMOBJECTS = $(XPMDIR)/crbuffri.o\
$(XPMDIR)/crdatfri.o\
$(XPMDIR)/create.o $(XPMDIR)/crifrbuf.o\
$(XPMDIR)/crifrdat.o\
$(XPMDIR)/data.o\
$(XPMDIR)/hashtab.o $(XPMDIR)/misc.o\
$(XPMDIR)/parse.o $(XPMDIR)/rdftodat.o\
$(XPMDIR)/rdftoi.o\
$(XPMDIR)/rgb.o $(XPMDIR)/scan.o\
$(XPMDIR)/simx.o $(XPMDIR)/wrffrdat.o\
$(XPMDIR)/wrffrp.o $(XPMDIR)/wrffri.o
OBJECTS = $(MSWOBJS) $(COMMONOBJS) $(GENERICOBJS) # $(XPMOBJECTS)
all: $(OBJECTS) $(WXLIB)
base:
cd $(WXDIR)/src/common; $(MAKE) -f makefile.g95 GUI=$(GUI) GUISUFFIX=$(GUISUFFIX) CC=$(CC)\
OPTIONS='$(OPTIONS)' DEBUG='$(DEBUG)' DEBUGFLAGS='$(DEBUGFLAGS)' WARN='$(WARN)' XLIB='$(XLIB)' XINCLUDE='$(XINCLUDE)'
$(WXLIB): $(OBJECTS) $(EXTRAOBJS)
ar $(AROPTIONS) $@ $(EXTRAOBJS) $(OBJECTS)
$(RANLIB) $@
$(OBJECTS): $(WXINC)/wx/defs.h $(WXINC)/wx/object.h $(WXINC)/wx/setup.h
$(COMMDIR)/y_tab.$(OBJSUFF): $(COMMDIR)/y_tab.c $(COMMDIR)/lex_yy.c
$(CCLEX) -c $(CPPFLAGS) -o $@ $(COMMDIR)/y_tab.c
# Replace lex with flex if you run into compilation
# problems with lex_yy.c. See also note about LEX_SCANNER
# above.
$(COMMDIR)/lex_yy.c: $(COMMDIR)/lexer.l
$(LEX) -L -o$(COMMDIR)/lex_yy.c $(COMMDIR)/lexer.l
# Try one of these if the above line doesn't work.
# Alternative syntax (1)
# $(LEX) -t -L $(COMMDIR)/lexer.l > $(COMMDIR)/lex_yy.c
# Alternative syntax (2)
# $(LEX) -L -o$(COMMDIR)/lex_yy.c $(COMMDIR)/lexer.l
# sed -e "s/BUFSIZ/5000/g" < lex.yy.c | \
# sed -e "s/yyoutput(c)/void yyoutput(c)/g" | \
# sed -e "s/YYLMAX 200/YYLMAX 5000/g" > lex_yy.c
# rm -f lex.yy.c
# Replace yacc with bison if you run into compilation
# problems with y_tab.c.
$(COMMDIR)/y_tab.c: $(COMMDIR)/parser.y
$(YACC) -o $(COMMDIR)/y_tab.c $(COMMDIR)/parser.y
# If you use e.g. gcc on Unix, uncomment these lines
# and comment out the above.
#$(COMMDIR)/y_tab.c: $(COMMDIR)/parser.y
# $(YACC) $(COMMDIR)/parser.y
# mv y.tab.c $(COMMDIR)/y_tab.c
# Extra targets
rcparser:
cd $(WXDIR)/utils/rcparser/src; $(MAKE) -f makefile.g95
cd $(WXDIR)/src/msw
clean_rcp:
cd $(WXDIR)/utils/rcparser/src; $(MAKE) -f makefile.g95 clean
cd $(WXDIR)/src/msw
clean:
rm -f $(OBJECTS) $(EXTRAOBJS) ../common/y_tab.c ../common/lex_yy.c $(WXDIR)/lib/libwx$(GUISUFFIX).a core
cleanall: clean

262
src/msw/makefile.sc Normal file
View File

@@ -0,0 +1,262 @@
# Symantec C++ makefile for the msw objects
# called from src\makefile.sc
# configuration section (see src\makefile.sc) ###########################
WXDIR = $(WXWIN)
include ..\makesc.env
DEBUG=0
LIBTARGET = $(LIBDIR)\wx.lib
OPTIONS=
# end of configuration section ##########################################
GENDIR=$(WXDIR)\src\generic
COMMDIR=$(WXDIR)\src\common
XPMDIR=$(WXDIR)\src\xpm
OLEDIR=ole
MSWDIR=$(WXDIR)\src\msw
GENERICOBJS= \
$(GENDIR)\choicdgg.obj \
$(GENDIR)\gridg.obj \
$(GENDIR)\laywin.obj \
$(GENDIR)\panelg.obj \
$(GENDIR)\progdlgg.obj \
$(GENDIR)\prop.obj \
$(GENDIR)\propform.obj \
$(GENDIR)\proplist.obj \
$(GENDIR)\sashwin.obj \
$(GENDIR)\scrolwin.obj \
$(GENDIR)\splitter.obj \
$(GENDIR)\statusbr.obj \
$(GENDIR)\tabg.obj \
$(GENDIR)\textdlgg.obj \
$(GENDIR)\tipdlg.obj
# $(GENDIR)\imaglist.obj \
# $(GENDIR)\treectrl.obj \
# $(GENDIR)\listctrl.obj \
# $(GENDIR)\notebook.obj \
# These are generic things that don't need to be compiled on MSW,
# but sometimes it's useful to do so for testing purposes.
NONESSENTIALOBJS= \
$(GENDIR)\printps.obj \
$(GENDIR)\prntdlgg.obj \
$(GENDIR)\msgdlgg.obj \
$(GENDIR)\helpxlp.obj \
$(GENDIR)\colrdlgg.obj \
$(GENDIR)\fontdlgg.obj
COMMONOBJS = \
$(COMMDIR)\cmndata.obj \
$(COMMDIR)\config.obj \
$(COMMDIR)\dcbase.obj \
$(COMMDIR)\docview.obj \
$(COMMDIR)\docmdi.obj \
$(COMMDIR)\dynarray.obj \
$(COMMDIR)\dynlib.obj \
$(COMMDIR)\event.obj \
$(COMMDIR)\file.obj \
$(COMMDIR)\filefn.obj \
$(COMMDIR)\fileconf.obj \
$(COMMDIR)\framecmn.obj \
$(COMMDIR)\gdicmn.obj \
$(COMMDIR)\image.obj \
$(COMMDIR)\intl.obj \
$(COMMDIR)\ipcbase.obj \
$(COMMDIR)\helpbase.obj \
$(COMMDIR)\layout.obj \
$(COMMDIR)\log.obj \
$(COMMDIR)\memory.obj \
$(COMMDIR)\mimetype.obj \
$(COMMDIR)\module.obj \
$(COMMDIR)\object.obj \
$(COMMDIR)\prntbase.obj \
$(COMMDIR)\resource.obj \
$(COMMDIR)\resourc2.obj \
$(COMMDIR)\tbarbase.obj \
$(COMMDIR)\tbarsmpl.obj \
$(COMMDIR)\textfile.obj \
$(COMMDIR)\timercmn.obj \
$(COMMDIR)\utilscmn.obj \
$(COMMDIR)\validate.obj \
$(COMMDIR)\valgen.obj \
$(COMMDIR)\valtext.obj \
$(COMMDIR)\date.obj \
$(COMMDIR)\hash.obj \
$(COMMDIR)\list.obj \
$(COMMDIR)\paper.obj \
$(COMMDIR)\string.obj \
$(COMMDIR)\time.obj \
$(COMMDIR)\tokenzr.obj \
$(COMMDIR)\wxexpr.obj \
$(COMMDIR)\y_tab.obj \
$(COMMDIR)\extended.obj \
$(COMMDIR)\process.obj \
$(COMMDIR)\wfstream.obj \
$(COMMDIR)\mstream.obj \
$(COMMDIR)\zstream.obj \
$(COMMDIR)\stream.obj \
$(COMMDIR)\datstrm.obj \
$(COMMDIR)\objstrm.obj \
$(COMMDIR)\variant.obj \
$(COMMDIR)\dlgcmn.obj \
$(COMMDIR)\wincmn.obj \
$(COMMDIR)\wxchar.obj
# Don't compile for WIN16
# $(COMMDIR)\socket.obj \
# $(COMMDIR)\sckaddr.obj \
# $(COMMDIR)\sckfile.obj \
# $(COMMDIR)\sckipc.obj \
# $(COMMDIR)\sckstrm.obj \
# $(COMMDIR)\url.obj \
# $(COMMDIR)\http.obj \
# $(COMMDIR)\protocol.obj \
# Don't compile
# $(COMMDIR)\db.obj \
# $(COMMDIR)\dbtable.obj \
# $(COMMDIR)\odbc.obj \
MSWOBJS = \
$(MSWDIR)\accel.obj \
$(MSWDIR)\app.obj \
$(MSWDIR)\bitmap.obj \
$(MSWDIR)\bmpbuttn.obj \
$(MSWDIR)\brush.obj \
$(MSWDIR)\button.obj \
$(MSWDIR)\checkbox.obj \
$(MSWDIR)\checklst.obj \
$(MSWDIR)\caret.obj \
$(MSWDIR)\choice.obj \
$(MSWDIR)\clipbrd.obj \
$(MSWDIR)\colordlg.obj \
$(MSWDIR)\colour.obj \
$(MSWDIR)\combobox.obj \
$(MSWDIR)\control.obj \
$(MSWDIR)\curico.obj \
$(MSWDIR)\cursor.obj \
$(MSWDIR)\data.obj \
$(MSWDIR)\dc.obj \
$(MSWDIR)\dcmemory.obj \
$(MSWDIR)\dcclient.obj \
$(MSWDIR)\dcprint.obj \
$(MSWDIR)\dcscreen.obj \
$(MSWDIR)\dde.obj \
$(MSWDIR)\dialog.obj \
$(MSWDIR)\dib.obj \
$(MSWDIR)\dibutils.obj \
$(MSWDIR)\dirdlg.obj \
$(MSWDIR)\filedlg.obj \
$(MSWDIR)\font.obj \
$(MSWDIR)\fontdlg.obj \
$(MSWDIR)\frame.obj \
$(MSWDIR)\gauge95.obj \
$(MSWDIR)\gaugemsw.obj \
$(MSWDIR)\gdiobj.obj \
$(MSWDIR)\helpwin.obj \
$(MSWDIR)\icon.obj \
$(MSWDIR)\iniconf.obj \
$(MSWDIR)\listbox.obj \
$(MSWDIR)\main.obj \
$(MSWDIR)\mdi.obj \
$(MSWDIR)\menu.obj \
$(MSWDIR)\menuitem.obj \
$(MSWDIR)\metafile.obj \
$(MSWDIR)\minifram.obj \
$(MSWDIR)\msgdlg.obj \
$(MSWDIR)\nativdlg.obj \
$(MSWDIR)\ownerdrw.obj \
$(MSWDIR)\palette.obj \
$(MSWDIR)\pen.obj \
$(MSWDIR)\penwin.obj \
$(MSWDIR)\printdlg.obj \
$(MSWDIR)\printwin.obj \
$(MSWDIR)\radiobox.obj \
$(MSWDIR)\radiobut.obj \
$(MSWDIR)\region.obj \
$(MSWDIR)\registry.obj \
$(MSWDIR)\regconf.obj \
$(MSWDIR)\scrolbar.obj \
$(MSWDIR)\settings.obj \
$(MSWDIR)\slidrmsw.obj \
$(MSWDIR)\slider95.obj \
$(MSWDIR)\spinbutt.obj \
$(MSWDIR)\statbmp.obj \
$(MSWDIR)\statbox.obj \
$(MSWDIR)\statline.obj \
$(MSWDIR)\statbr95.obj \
$(MSWDIR)\stattext.obj \
$(MSWDIR)\tabctrl.obj \
$(MSWDIR)\taskbar.obj \
$(MSWDIR)\tbar95.obj \
$(MSWDIR)\tbarmsw.obj \
$(MSWDIR)\textctrl.obj \
$(MSWDIR)\thread.obj \
$(MSWDIR)\timer.obj \
$(MSWDIR)\tooltip.obj \
$(MSWDIR)\utils.obj \
$(MSWDIR)\utilsexc.obj \
$(MSWDIR)\wave.obj \
$(MSWDIR)\window.obj \
$(MSWDIR)\xpmhand.obj
# Need Win95 support for these
# $(MSWDIR)\notebook.obj \
# $(MSWDIR)\listctrl.obj \
# $(MSWDIR)\imaglist.obj \
# $(MSWDIR)\treectrl.obj \
# $(OLEDIR)\droptgt.obj \
# $(OLEDIR)\dropsrc.obj \
# $(OLEDIR)\dataobj.obj \
# $(OLEDIR)\oleutils.obj \
# $(OLEDIR)\uuid.obj \
# $(OLEDIR)\automtn.obj
# Doesn't compile with SC++ 6
# $(MSWDIR)\joystick.obj \
# $(MSWDIR)\pnghand.obj \
XPMOBJECTS = $(XPMDIR)\crbuffri.obj\
$(XPMDIR)\crdatfri.obj\
$(XPMDIR)\create.obj $(XPMDIR)\crifrbuf.obj\
$(XPMDIR)\crifrdat.obj\
$(XPMDIR)\data.obj\
$(XPMDIR)\hashtab.obj $(XPMDIR)\misc.obj\
$(XPMDIR)\parse.obj $(XPMDIR)\rdftodat.obj\
$(XPMDIR)\rdftoi.obj\
$(XPMDIR)\rgb.obj $(XPMDIR)\scan.obj\
$(XPMDIR)\simx.obj $(XPMDIR)\wrffrdat.obj\
$(XPMDIR)\wrffrp.obj $(XPMDIR)\wrffri.obj
# Add $(NONESSENTIALOBJS) if wanting generic dialogs, PostScript etc.
OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(MSWOBJS) # $(XPMOBJECTS)
all: $(LIBTARGET)
$(LIBTARGET): $(OBJECTS)
-del $(LIBTARGET)
*lib /PAGESIZE:512 $(LIBTARGET) y $(OBJECTS), nul;
clean:
-del *.obj
-del $(LIBTARGET)
$(COMMDIR)\y_tab.obj: $(COMMDIR)\y_tab.c $(COMMDIR)\lex_yy.c
$(COMMDIR)\y_tab.c: $(COMMDIR)\dosyacc.c
copy $(COMMDIR)\dosyacc.c $(COMMDIR)\y_tab.c
$(COMMDIR)\lex_yy.c: $(COMMDIR)\doslex.c
copy $(COMMDIR)\doslex.c $(COMMDIR)\lex_yy.c
#$(COMMDIR)\cmndata.obj: $(COMMDIR)\cmndata.cpp
# *$(CC) -c $(CFLAGS) -I$(INCLUDE) $(OPTIONS) $(COMMDIR)\cmndata.cpp -o$(COMMDIR)\cmndata.obj

929
src/msw/makefile.sl Normal file
View File

@@ -0,0 +1,929 @@
#
# File: makefile.wat
# Author: Julian Smart
# Created: 1998
#
# Makefile : Builds wxWindows library for Salford C++, WIN32
include ..\makesl.env
LIBTARGET = $(WXLIB)\wx.lib
EXTRATARGETS = # xpm png zlib
EXTRATARGETSCLEAN = # clean_xpm clean_png clean_zlib
GENDIR=$(WXDIR)\src\generic
COMMDIR=$(WXDIR)\src\common
XPMDIR=$(WXDIR)\src\xpm
OLEDIR=ole
MSWDIR=$(WXDIR)\src\msw
GENERICOBJS= choicdgg.obj \
dirdlgg.obj \
gridg.obj \
laywin.obj \
panelg.obj \
prop.obj \
progdlgg.obj \
propform.obj \
proplist.obj \
sashwin.obj \
scrolwin.obj \
splitter.obj \
statusbr.obj \
tabg.obj \
textdlgg.obj
# These are generic things that don't need to be compiled on MSW,
# but sometimes it's useful to do so for testing purposes.
NONESSENTIALOBJS= printps.obj \
prntdlgg.obj \
msgdlgg.obj \
helpxlp.obj \
colrdlgg.obj \
fontdlgg.obj
COMMONOBJS = cmndata.obj \
config.obj \
dcbase.obj \
docview.obj \
docmdi.obj \
dynarray.obj \
dynlib.obj \
event.obj \
file.obj \
filefn.obj \
fileconf.obj \
framecmn.obj \
gdicmn.obj \
image.obj \
intl.obj \
ipcbase.obj \
helpbase.obj \
layout.obj \
log.obj \
memory.obj \
module.obj \
object.obj \
prntbase.obj \
resource.obj \
tbarbase.obj \
tbarsmpl.obj \
textfile.obj \
timercmn.obj \
utilscmn.obj \
validate.obj \
valgen.obj \
valtext.obj \
date.obj \
hash.obj \
list.obj \
paper.obj \
string.obj \
socket.obj \
sckint.obj \
sckaddr.obj \
sckfile.obj \
sckipc.obj \
sckstrm.obj \
url.obj \
http.obj \
protocol.obj \
time.obj \
tokenzr.obj \
wxexpr.obj \
y_tab.obj \
extended.obj \
process.obj \
wfstream.obj \
mstream.obj \
zstream.obj \
stream.obj \
datstrm.obj \
objstrm.obj \
variant.obj \
wincmn.obj \
wxchar.obj
# Can't compile these yet under Salford C++
# mimetype.obj \
# odbc.obj \
# db.obj \
# dbtable.obj \
MSWOBJS = \
accel.obj \
app.obj \
bitmap.obj \
bmpbuttn.obj \
brush.obj \
button.obj \
checkbox.obj \
checklst.obj \
caret.obj \
choice.obj \
clipbrd.obj \
colordlg.obj \
colour.obj \
combobox.obj \
control.obj \
curico.obj \
cursor.obj \
data.obj \
dc.obj \
dcmemory.obj \
dcclient.obj \
dcprint.obj \
dcscreen.obj \
dde.obj \
dialog.obj \
dib.obj \
dibutils.obj \
filedlg.obj \
font.obj \
fontdlg.obj \
frame.obj \
gauge95.obj \
gaugemsw.obj \
gdiobj.obj \
helpwin.obj \
icon.obj \
imaglist.obj \
iniconf.obj \
joystick.obj \
listbox.obj \
listctrl.obj \
main.obj \
mdi.obj \
menu.obj \
menuitem.obj \
metafile.obj \
minifram.obj \
msgdlg.obj \
nativdlg.obj \
notebook.obj \
ownerdrw.obj \
palette.obj \
pen.obj \
penwin.obj \
printdlg.obj \
printwin.obj \
radiobox.obj \
radiobut.obj \
region.obj \
registry.obj \
regconf.obj \
scrolbar.obj \
settings.obj \
slidrmsw.obj \
slider95.obj \
spinbutt.obj \
statbmp.obj \
statbox.obj \
statbr95.obj \
stattext.obj \
tabctrl.obj \
taskbar.obj \
tbar95.obj \
tbarmsw.obj \
textctrl.obj \
thread.obj \
timer.obj \
tooltip.obj \
treectrl.obj \
utils.obj \
utilsexc.obj \
wave.obj \
window.obj
# No OLE functions for wxDirDialog: use generic one instead
# dirdlg.obj \
# pnghand.obj \
# xpmhand.obj \
OLEOBJS = \
droptgt.obj \
dropsrc.obj \
dataobj.obj \
oleutils.obj \
uuid.obj \
automtn.obj
# Add $(NONESSENTIALOBJS) if wanting generic dialogs, PostScript etc.
OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(MSWOBJS) # $(OLEOBJS)
all: $(OBJECTS) $(LIBTARGET) $(EXTRATARGETS)
$(LIBTARGET) : $(OBJECTS)
slink $$salford.lnk
clean: $(EXTRATARGETSCLEAN)
-erase *.obj
-erase $(LIBTARGET)
-erase *.pch
-erase *.err
cleanall: clean
test: test.obj
test.obj: test.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) test.cpp
accel.obj: $(MSWDIR)\accel.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\accel.cpp /BINARY accel.obj
app.obj: $(MSWDIR)\app.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\app.cpp /BINARY app.obj
bitmap.obj: $(MSWDIR)\bitmap.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\bitmap.cpp /BINARY bitmap.obj
bmpbuttn.obj: $(MSWDIR)\bmpbuttn.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\bmpbuttn.cpp /BINARY bmpbuttn.obj
brush.obj: $(MSWDIR)\brush.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\brush.cpp /BINARY brush.obj
button.obj: $(MSWDIR)\button.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\button.cpp /BINARY button.obj
caret.obj: $(MSWDIR)\caret.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\caret.cpp /BINARY caret.obj
choice.obj: $(MSWDIR)\choice.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\choice.cpp /BINARY choice.obj
checkbox.obj: $(MSWDIR)\checkbox.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\checkbox.cpp /BINARY checkbox.obj
checklst.obj: $(MSWDIR)\checklst.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\checklst.cpp /BINARY checklst.obj
clipbrd.obj: $(MSWDIR)\clipbrd.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\clipbrd.cpp /BINARY clipbrd.obj
colordlg.obj: $(MSWDIR)\colordlg.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\colordlg.cpp /BINARY colordlg.obj
colour.obj: $(MSWDIR)\colour.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\colour.cpp /BINARY colour.obj
combobox.obj: $(MSWDIR)\combobox.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\combobox.cpp /BINARY combobox.obj
control.obj: $(MSWDIR)\control.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\control.cpp /BINARY control.obj
curico.obj: $(MSWDIR)\curico.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\curico.cpp /BINARY curico.obj
cursor.obj: $(MSWDIR)\cursor.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\cursor.cpp /BINARY cursor.obj
data.obj: $(MSWDIR)\data.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\data.cpp /BINARY data.obj
dde.obj: $(MSWDIR)\dde.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\dde.cpp /BINARY dde.obj
dc.obj: $(MSWDIR)\dc.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\dc.cpp /BINARY dc.obj
dcmemory.obj: $(MSWDIR)\dcmemory.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\dcmemory.cpp /BINARY dcmemory.obj
dcclient.obj: $(MSWDIR)\dcclient.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\dcclient.cpp /BINARY dcclient.obj
dcprint.obj: $(MSWDIR)\dcprint.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\dcprint.cpp /BINARY dcprint.obj
dcscreen.obj: $(MSWDIR)\dcscreen.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\dcscreen.cpp /BINARY dcscreen.obj
dialog.obj: $(MSWDIR)\dialog.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\dialog.cpp /BINARY dialog.obj
dib.obj: $(MSWDIR)\dib.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\dib.cpp /BINARY dib.obj
dibutils.obj: $(MSWDIR)\dibutils.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\dibutils.cpp /BINARY dibutils.obj
dirdlg.obj: $(MSWDIR)\dirdlg.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\dirdlg.cpp /BINARY dirdlg.obj
filedlg.obj: $(MSWDIR)\filedlg.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\filedlg.cpp /BINARY filedlg.obj
font.obj: $(MSWDIR)\font.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\font.cpp /BINARY font.obj
fontdlg.obj: $(MSWDIR)\fontdlg.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\fontdlg.cpp /BINARY fontdlg.obj
frame.obj: $(MSWDIR)\frame.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\frame.cpp /BINARY frame.obj
gauge95.obj: $(MSWDIR)\gauge95.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\gauge95.cpp /BINARY gauge95.obj
gaugemsw.obj: $(MSWDIR)\gaugemsw.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\gaugemsw.cpp /BINARY gaugemsw.obj
gdiobj.obj: $(MSWDIR)\gdiobj.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\gdiobj.cpp /BINARY gdiobj.obj
helpwin.obj: $(MSWDIR)\helpwin.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\helpwin.cpp /BINARY helpwin.obj
icon.obj: $(MSWDIR)\icon.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\icon.cpp /BINARY icon.obj
imaglist.obj: $(MSWDIR)\imaglist.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\imaglist.cpp /BINARY imaglist.obj
iniconf.obj: $(MSWDIR)\iniconf.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\iniconf.cpp /BINARY iniconf.obj
joystick.obj: $(MSWDIR)\joystick.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\joystick.cpp /BINARY joystick.obj
listbox.obj: $(MSWDIR)\listbox.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\listbox.cpp /BINARY listbox.obj
listctrl.obj: $(MSWDIR)\listctrl.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\listctrl.cpp /BINARY listctrl.obj
main.obj: $(MSWDIR)\main.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\main.cpp /BINARY main.obj
mdi.obj: $(MSWDIR)\mdi.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\mdi.cpp /BINARY mdi.obj
menu.obj: $(MSWDIR)\menu.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\menu.cpp /BINARY menu.obj
menuitem.obj: $(MSWDIR)\menuitem.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\menuitem.cpp /BINARY menuitem.obj
metafile.obj: $(MSWDIR)\metafile.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\metafile.cpp /BINARY metafile.obj
minifram.obj: $(MSWDIR)\minifram.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\minifram.cpp /BINARY minifram.obj
msgdlg.obj: $(MSWDIR)\msgdlg.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\msgdlg.cpp /BINARY msgdlg.obj
nativdlg.obj: $(MSWDIR)\nativdlg.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\nativdlg.cpp /BINARY nativdlg.obj
notebook.obj: $(MSWDIR)\notebook.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\notebook.cpp /BINARY notebook.obj
ownerdrw.obj: $(MSWDIR)\ownerdrw.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\ownerdrw.cpp /BINARY ownerdrw.obj
palette.obj: $(MSWDIR)\palette.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\palette.cpp /BINARY palette.obj
pen.obj: $(MSWDIR)\pen.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\pen.cpp /BINARY pen.obj
penwin.obj: $(MSWDIR)\penwin.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\penwin.cpp /BINARY penwin.obj
pnghand.obj: $(MSWDIR)\pnghand.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\pnghand.cpp /BINARY pnghand.obj
printdlg.obj: $(MSWDIR)\printdlg.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\printdlg.cpp /BINARY printdlg.obj
printwin.obj: $(MSWDIR)\printwin.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\printwin.cpp /BINARY printwin.obj
radiobox.obj: $(MSWDIR)\radiobox.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\radiobox.cpp /BINARY radiobox.obj
radiobut.obj: $(MSWDIR)\radiobut.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\radiobut.cpp /BINARY radiobut.obj
region.obj: $(MSWDIR)\region.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\region.cpp /BINARY region.obj
registry.obj: $(MSWDIR)\registry.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\registry.cpp /BINARY registry.obj
regconf.obj: $(MSWDIR)\regconf.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\regconf.cpp /BINARY regconf.obj
scrolbar.obj: $(MSWDIR)\scrolbar.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\scrolbar.cpp /BINARY scrolbar.obj
settings.obj: $(MSWDIR)\settings.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\settings.cpp /BINARY settings.obj
slidrmsw.obj: $(MSWDIR)\slidrmsw.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\slidrmsw.cpp /BINARY slidrmsw.obj
slider95.obj: $(MSWDIR)\slider95.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\slider95.cpp /BINARY slider95.obj
spinbutt.obj: $(MSWDIR)\spinbutt.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\spinbutt.cpp /BINARY spinbutt.obj
statbmp.obj: $(MSWDIR)\statbmp.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\statbmp.cpp /BINARY statbmp.obj
statbox.obj: $(MSWDIR)\statbox.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\statbox.cpp /BINARY statbox.obj
statbr95.obj: $(MSWDIR)\statbr95.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\statbr95.cpp /BINARY statbr95.obj
stattext.obj: $(MSWDIR)\stattext.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\stattext.cpp /BINARY stattext.obj
tabctrl.obj: $(MSWDIR)\tabctrl.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\tabctrl.cpp /BINARY tabctrl.obj
taskbar.obj: $(MSWDIR)\taskbar.cpp
cl @<<
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\taskbar.cpp /BINARY taskbar.obj
tbar95.obj: $(MSWDIR)\tbar95.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\tbar95.cpp /BINARY tbar95.obj
tbarmsw.obj: $(MSWDIR)\tbarmsw.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\tbarmsw.cpp /BINARY tbarmsw.obj
textctrl.obj: $(MSWDIR)\textctrl.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\textctrl.cpp /BINARY textctrl.obj
thread.obj: $(MSWDIR)\thread.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\thread.cpp /BINARY thread.obj
timer.obj: $(MSWDIR)\timer.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\timer.cpp /BINARY timer.obj
tooltip.obj: $(MSWDIR)\tooltip.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\tooltip.cpp /BINARY tooltip.obj
treectrl.obj: $(MSWDIR)\treectrl.cpp
cl @<<
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\treectrl.cpp /BINARY treectrl.obj
utils.obj: $(MSWDIR)\utils.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\utils.cpp /BINARY utils.obj
utilsexc.obj: $(MSWDIR)\utilsexc.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\utilsexc.cpp /BINARY utilsexc.obj
wave.obj: $(MSWDIR)\wave.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\wave.cpp /BINARY wave.obj
window.obj: $(MSWDIR)\window.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\window.cpp /BINARY window.obj
xpmhand.obj: $(MSWDIR)\xpmhand.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\xpmhand.cpp /BINARY xpmhand.obj
droptgt.obj: $(OLEDIR)\droptgt.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(OLEDIR)\droptgt.cpp /BINARY droptgt.obj
dropsrc.obj: $(OLEDIR)\dropsrc.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(OLEDIR)\dropsrc.cpp /BINARY dropsrc.obj
dataobj.obj: $(OLEDIR)\dataobj.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(OLEDIR)\dataobj.cpp /BINARY dataobj.obj
oleutils.obj: $(OLEDIR)\oleutils.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(OLEDIR)\oleutils.cpp /BINARY oleutils.obj
uuid.obj: $(OLEDIR)\uuid.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(OLEDIR)\uuid.cpp /BINARY uuid.obj
automtn.obj: $(OLEDIR)\automtn.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(OLEDIR)\automtn.cpp /BINARY automtn.obj
########################################################
# Common objects (always compiled)
cmndata.obj: $(COMMDIR)\cmndata.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\cmndata.cpp /BINARY cmndata.obj
config.obj: $(COMMDIR)\config.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\config.cpp /BINARY config.obj
dcbase.obj: $(COMMDIR)\dcbase.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\dcbase.cpp /BINARY dcbase.obj
db.obj: $(COMMDIR)\db.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\db.cpp /BINARY db.obj
dbtable.obj: $(COMMDIR)\dbtable.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\dbtable.cpp /BINARY dbtable.obj
docview.obj: $(COMMDIR)\docview.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\docview.cpp /BINARY docview.obj
docmdi.obj: $(COMMDIR)\docmdi.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\docmdi.cpp /BINARY docmdi.obj
dynarray.obj: $(COMMDIR)\dynarray.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\dynarray.cpp /BINARY dynarray.obj
dynlib.obj: $(COMMDIR)\dynlib.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\dynlib.cpp /BINARY dynlib.obj
event.obj: $(COMMDIR)\event.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\event.cpp /BINARY event.obj
file.obj: $(COMMDIR)\file.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\file.cpp /BINARY file.obj
fileconf.obj: $(COMMDIR)\fileconf.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\fileconf.cpp /BINARY fileconf.obj
filefn.obj: $(COMMDIR)\filefn.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\filefn.cpp /BINARY filefn.obj
framecmn.obj: $(COMMDIR)\framecmn.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\framecmn.cpp /BINARY framecmn.obj
gdicmn.obj: $(COMMDIR)\gdicmn.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\gdicmn.cpp /BINARY gdicmn.obj
image.obj: $(COMMDIR)\image.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\image.cpp /BINARY image.obj
intl.obj: $(COMMDIR)\intl.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\intl.cpp /BINARY intl.obj
ipcbase.obj: $(COMMDIR)\ipcbase.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\ipcbase.cpp /BINARY ipcbase.obj
helpbase.obj: $(COMMDIR)\helpbase.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\helpbase.cpp /BINARY helpbase.obj
layout.obj: $(COMMDIR)\layout.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\layout.cpp /BINARY layout.obj
log.obj: $(COMMDIR)\log.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\log.cpp /BINARY log.obj
memory.obj: $(COMMDIR)\memory.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\memory.cpp /BINARY memory.obj
mimetype.obj: $(COMMDIR)\mimetype.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\mimetype.cpp /BINARY mimetype.obj
module.obj: $(COMMDIR)\module.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\module.cpp /BINARY module.obj
object.obj: $(COMMDIR)\object.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\object.cpp /BINARY object.obj
odbc.obj: $(COMMDIR)\odbc.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\odbc.cpp /BINARY odbc.obj
prntbase.obj: $(COMMDIR)\prntbase.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\prntbase.cpp /BINARY prntbase.obj
resource.obj: $(COMMDIR)\resource.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\resource.cpp /BINARY resource.obj
tbarbase.obj: $(COMMDIR)\tbarbase.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\tbarbase.cpp /BINARY tbarbase.obj
tbarsmpl.obj: $(COMMDIR)\tbarsmpl.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\tbarsmpl.cpp /BINARY tbarsmpl.obj
textfile.obj: $(COMMDIR)\textfile.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\textfile.cpp /BINARY textfile.obj
timercmn.obj: $(COMMDIR)\timercmn.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\timercmn.cpp /BINARY timercmn.obj
utilscmn.obj: $(COMMDIR)\utilscmn.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\utilscmn.cpp /BINARY utilscmn.obj
validate.obj: $(COMMDIR)\validate.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\validate.cpp /BINARY validate.obj
valgen.obj: $(COMMDIR)\valgen.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\valgen.cpp /BINARY valgen.obj
valtext.obj: $(COMMDIR)\valtext.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\valtext.cpp /BINARY valtext.obj
date.obj: $(COMMDIR)\date.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\date.cpp /BINARY date.obj
wxexpr.obj: $(COMMDIR)\wxexpr.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\wxexpr.cpp /BINARY wxexpr.obj
hash.obj: $(COMMDIR)\hash.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\hash.cpp /BINARY hash.obj
list.obj: $(COMMDIR)\list.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\list.cpp /BINARY list.obj
paper.obj: $(COMMDIR)\paper.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\paper.cpp /BINARY paper.obj
string.obj: $(COMMDIR)\string.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\string.cpp /BINARY string.obj
socket.obj: $(COMMDIR)\socket.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\socket.cpp /BINARY socket.obj
sckint.obj: $(COMMDIR)\sckint.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\sckint.cpp /BINARY sckint.obj
sckaddr.obj: $(COMMDIR)\sckaddr.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\sckaddr.cpp /BINARY sckaddr.obj
sckfile.obj: $(COMMDIR)\sckfile.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\sckfile.cpp /BINARY sckfile.obj
sckipc.obj: $(COMMDIR)\sckipc.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\sckipc.cpp /BINARY sckipc.obj
sckstrm.obj: $(COMMDIR)\sckstrm.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\sckstrm.cpp /BINARY sckstrm.obj
url.obj: $(COMMDIR)\url.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\url.cpp /BINARY url.obj
http.obj: $(COMMDIR)\http.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\http.cpp /BINARY http.obj
protocol.obj: $(COMMDIR)\protocol.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\protocol.cpp /BINARY protocol.obj
tokenzr.obj: $(COMMDIR)\tokenzr.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\tokenzr.cpp /BINARY tokenzr.obj
matrix.obj: $(COMMDIR)\matrix.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\matrix.cpp /BINARY matrix.obj
time.obj: $(COMMDIR)\time.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\time.cpp /BINARY time.obj
stream.obj: $(COMMDIR)\stream.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\stream.cpp /BINARY stream.obj
wfstream.obj: $(COMMDIR)\wfstream.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\wfstream.cpp /BINARY wfstream.obj
mstream.obj: $(COMMDIR)\mstream.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\mstream.cpp /BINARY mstream.obj
zstream.obj: $(COMMDIR)\zstream.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\zstream.cpp /BINARY zstream.obj
datstrm.obj: $(COMMDIR)\datstrm.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\datstrm.cpp /BINARY datstrm.obj
objstrm.obj: $(COMMDIR)\objstrm.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\objstrm.cpp /BINARY objstrm.obj
extended.obj: $(COMMDIR)\extended.c
$(CC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\extended.c /BINARY extended.obj
process.obj: $(COMMDIR)\process.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\process.cpp /BINARY process.obj
variant.obj: $(COMMDIR)\variant.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\variant.cpp /BINARY variant.obj
wincmn.obj: $(COMMDIR)\wincmn.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\wincmn.cpp /BINARY wincmn.obj
wxchar.obj: $(COMMDIR)\wxcharp.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\wxchar.cpp /BINARY wxchar.obj
########################################################
# Generic objects (not always compiled, depending on
# whether platforms have native implementations)
choicdgg.obj: $(GENDIR)\choicdgg.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\choicdgg.cpp /BINARY choicdgg.obj
colrdlgg.obj: $(GENDIR)\colrdgg.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\colrdgg.cpp /BINARY colordgg.obj
dirdlgg.obj: $(GENDIR)\dirdlgg.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\dirdlgg.cpp /BINARY dirdlgg.obj
fontdlgg.obj: $(GENDIR)\fontdlgg.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\fontdlgg.cpp /BINARY fontdlgg.obj
gridg.obj: $(GENDIR)\gridg.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\gridg.cpp /BINARY gridg.obj
helpxlp.obj: $(GENDIR)\helpxlp.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\helpxlp.cpp /BINARY helpxlp.obj
laywin.obj: $(GENDIR)\laywin.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\laywin.cpp /BINARY laywin.obj
msgdlgg.obj: $(GENDIR)\msgdlgg.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\msgdlgg.cpp /BINARY msgdlgg.obj
panelg.obj: $(GENDIR)\panelg.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\panelg.cpp /BINARY panelg.obj
printps.obj: $(GENDIR)\printps.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\printps.cpp /BINARY printps.obj
progdlgg.obj: $(GENDIR)\progdlgg.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\progdlgg.cpp /BINARY progdlgg.obj
prop.obj: $(GENDIR)\prop.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\prop.cpp /BINARY prop.obj
propform.obj: $(GENDIR)\propform.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\propform.cpp /BINARY propform.obj
proplist.obj: $(GENDIR)\proplist.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\proplist.cpp /BINARY proplist.obj
prntdlgg.obj: $(GENDIR)\prntdlgg.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\prntdlgg.cpp /BINARY prntdlgg.obj
sashwin.obj: $(GENDIR)\sashwin.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\sashwin.cpp /BINARY sashwin.obj
scrolwin.obj: $(GENDIR)\scrolwin.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\scrolwin.cpp /BINARY scrolwin.obj
splitter.obj: $(GENDIR)\splitter.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\splitter.cpp /BINARY splitter.obj
statusbr.obj: $(GENDIR)\statusbr.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\statusbr.cpp /BINARY statusbr.obj
tabg.obj: $(GENDIR)\tabg.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\tabg.cpp /BINARY tabg.obj
textdlgg.obj: $(GENDIR)\textdlgg.cpp
$(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\textdlgg.cpp /BINARY textdlgg.obj
crbuffri.obj: $(XPMDIR)\crbuffri.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\crbuffri.c
crbuffrp.obj: $(XPMDIR)\crbuffrp.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\crbuffrp.c
crdatfri.obj: $(XPMDIR)\crdatfri.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\crdatfri.c
crdatfrp.obj: $(XPMDIR)\crdatfrp.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\crdatfrp.c
create.obj: $(XPMDIR)\create.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\create.c
crifrbuf.obj: $(XPMDIR)\crifrbuf.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\crifrbuf.c
crifrdat.obj: $(XPMDIR)\crifrdat.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\crifrdat.c
crpfrbuf.obj: $(XPMDIR)\crpfrbuf.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\crpfrbuf.c
crpfrdat.obj: $(XPMDIR)\crpfrdat.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\crpfrdat.c
dataxpm.obj: $(XPMDIR)\data.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\data.c /BINARY dataxpm.obj
hashtab.obj: $(XPMDIR)\hashtab.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\hashtab.c
misc.obj: $(XPMDIR)\misc.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\misc.c
parse.obj: $(XPMDIR)\parse.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\parse.c
rdftodat.obj: $(XPMDIR)\rdftodat.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\rdftodat.c
rdftoi.obj: $(XPMDIR)\rdftoi.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\rdftoi.c
rdftop.obj: $(XPMDIR)\rdftop.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\rdftop.c
rgb.obj: $(XPMDIR)\rgb.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\rgb.c
scan.obj: $(XPMDIR)\scan.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\scan.c
simx.obj: $(XPMDIR)\simx.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\simx.c
wrffrdat.obj: $(XPMDIR)\wrffrdat.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\wrffrdat.c
wrffri.obj: $(XPMDIR)\wrffri.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\wrffri.c
wrffrp.obj: $(XPMDIR)\wrffrp.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\wrffrp.c
OBJ1 = adler32$(O) compress$(O) crc32$(O) gzio$(O) uncompr$(O) deflate$(O) \
trees$(O)
OBJ2 = zutil$(O) inflate$(O) infblock$(O) inftrees$(O) infcodes$(O) \
infutil$(O) inffast$(O)
adler32.obj: adler32.c zutil.h zlib.h zconf.h
$(CC) -c $(CFLAGS) $*.c
compress.obj: compress.c zlib.h zconf.h
$(CC) -c $(CFLAGS) $*.c
crc32.obj: crc32.c zutil.h zlib.h zconf.h
$(CC) -c $(CFLAGS) $*.c
deflate.obj: deflate.c deflate.h zutil.h zlib.h zconf.h
$(CC) -c $(CFLAGS) $*.c
gzio.obj: gzio.c zutil.h zlib.h zconf.h
$(CC) -c $(CFLAGS) $*.c
infblock.obj: infblock.c zutil.h zlib.h zconf.h infblock.h inftrees.h\
infcodes.h infutil.h
$(CC) -c $(CFLAGS) $*.c
infcodes.obj: infcodes.c zutil.h zlib.h zconf.h inftrees.h infutil.h\
infcodes.h inffast.h
$(CC) -c $(CFLAGS) $*.c
inflate.obj: inflate.c zutil.h zlib.h zconf.h infblock.h
$(CC) -c $(CFLAGS) $*.c
inftrees.obj: inftrees.c zutil.h zlib.h zconf.h inftrees.h
$(CC) -c $(CFLAGS) $*.c
infutil.obj: infutil.c zutil.h zlib.h zconf.h inftrees.h infutil.h
$(CC) -c $(CFLAGS) $*.c
inffast.obj: inffast.c zutil.h zlib.h zconf.h inftrees.h infutil.h inffast.h
$(CC) -c $(CFLAGS) $*.c
trees.obj: trees.c deflate.h zutil.h zlib.h zconf.h
$(CC) -c $(CFLAGS) $*.c
uncompr.obj: uncompr.c zlib.h zconf.h
$(CC) -c $(CFLAGS) $*.c
zutil.obj: zutil.c zutil.h zlib.h zconf.h
$(CC) -c $(CFLAGS) $*.c
y_tab.obj: $(COMMDIR)\y_tab.c $(COMMDIR)\lex_yy.c
$(CC) /ANSI_C $(CPPFLAGS) $(IFLAGS) /DEFINE USE_DEFINE $(COMMDIR)\y_tab.c /BINARY y_tab.obj
$(COMMDIR)\y_tab.c: $(COMMDIR)\dosyacc.c
copy $(COMMDIR)\dosyacc.c $(COMMDIR)\y_tab.c
$(COMMDIR)\lex_yy.c: $(COMMDIR)\doslex.c
copy $(COMMDIR)\doslex.c $(COMMDIR)\lex_yy.c
xpm:
cd $(WXDIR)\src\xpm
wmake -f makefile.wat all
cd $(WXDIR)\src\msw
clean_xpm:
cd $(WXDIR)\src\xpm
wmake -f makefile.wat clean
cd $(WXDIR)\src\msw
png:
cd $(WXDIR)\src\png
wmake -f makefile.wat all
cd $(WXDIR)\src\msw
clean_png:
cd $(WXDIR)\src\png
wmake -f makefile.wat clean
cd $(WXDIR)\src\msw
zlib:
cd $(WXDIR)\src\zlib
wmake -f makefile.wat all
cd $(WXDIR)\src\msw
clean_zlib:
cd $(WXDIR)\src\zlib
wmake -f makefile.wat clean
cd $(WXDIR)\src\msw

326
src/msw/makefile.twn Normal file
View File

@@ -0,0 +1,326 @@
#
# File: makefile.twn
# Author: Julian Smart
# Created: 1993
# Updated:
#
# Makefile for libwx.a, tagetting TWIN32
# Replace this with your own path if necessary
WXDIR = ../..
# All common UNIX compiler flags and options are now in
# this central makefile.
include $(WXDIR)/src/maketwin.env
# IMPORTANT: if you want to link in subsidiary libraries,
# required for some optional parts of wxWindows, you must
# set EXTRATARGETS and EXTRAOBJS to match the settings in wx_setup.h.
# Having done this, you won't have to worry about linking them
# into each application.
#
# Here's the full list.
# prologio: Required if using the wxWindows resource facility
# USE_WX_RESOURCES should be 1
# xmgauge: Gauge class (required for Motif only)
# USE_GAUGE should be 1
# xpm: XPM pixmap support
# USE_XPM_IN_X should be 1
# wxstring: string class
# USE_GNU_WXSTRING should be 1
#
# Unfortunately, 'ar' doesn't like combining objects and libraries,
# so we must identify all the objects from the subordinate libraries. Yuck!
XPMSRC=../../contrib/wxxpm/objects$(GUISUFFIX)
XPMOBJS=$(XPMSRC)/crbuffri.$(OBJSUFF) $(XPMSRC)/crbuffrp.$(OBJSUFF) $(XPMSRC)/crdatfri.$(OBJSUFF) $(XPMSRC)/crdatfrp.$(OBJSUFF)\
$(XPMSRC)/create.$(OBJSUFF) $(XPMSRC)/crifrbuf.$(OBJSUFF) $(XPMSRC)/crifrdat.$(OBJSUFF) $(XPMSRC)/crpfrbuf.$(OBJSUFF) $(XPMSRC)/crpfrdat.$(OBJSUFF)\
$(XPMSRC)/data.$(OBJSUFF) $(XPMSRC)/hashtab.$(OBJSUFF) $(XPMSRC)/misc.$(OBJSUFF) $(XPMSRC)/parse.$(OBJSUFF) $(XPMSRC)/rdftodat.$(OBJSUFF)\
$(XPMSRC)/rdftoi.$(OBJSUFF) $(XPMSRC)/rdftop.$(OBJSUFF) $(XPMSRC)/rgb.$(OBJSUFF) $(XPMSRC)/scan.$(OBJSUFF) $(XPMSRC)/simx.$(OBJSUFF)\
$(XPMSRC)/wrffrdat.$(OBJSUFF) $(XPMSRC)/wrffri.$(OBJSUFF) $(XPMSRC)/wrffrp.$(OBJSUFF)
# Subordinate library possibilities
EXTRAOBJS=
GENDIR=../generic
COMMDIR=../common
XPMDIR=../xpm
OLEDIR=ole
MSWDIR=.
GENERICOBJDIR=../generic/$(OBJDIR)
COMMOBJDIR=../common/$(OBJDIR)
OLEOBJDIR=ole/$(OBJDIR)
MSWDIR=$(OBJDIR)
DOCDIR = $(WXDIR)\docs
GENERICOBJS= \
$(GENDIR)/choicdgg.$(OBJSUFF) \
$(GENDIR)/dirdlgg.$(OBJSUFF) \
$(GENDIR)/gridg.$(OBJSUFF) \
$(GENDIR)/laywin.$(OBJSUFF) \
$(GENDIR)/panelg.$(OBJSUFF) \
$(GENDIR)/progdlgg.$(OBJSUFF) \
$(GENDIR)/prop.$(OBJSUFF) \
$(GENDIR)/propform.$(OBJSUFF) \
$(GENDIR)/proplist.$(OBJSUFF) \
$(GENDIR)/sashwin.$(OBJSUFF) \
$(GENDIR)/scrolwin.$(OBJSUFF) \
$(GENDIR)/splitter.$(OBJSUFF) \
$(GENDIR)/statusbr.$(OBJSUFF) \
$(GENDIR)/tabg.$(OBJSUFF) \
$(GENDIR)/textdlgg.$(OBJSUFF)
# $(GENDIR)/colrdlgg.$(OBJSUFF) \
# $(GENDIR)/fontdlgg.$(OBJSUFF) \
# $(GENDIR)/prntdlgg.$(OBJSUFF) \
# $(GENDIR)/printps.$(OBJSUFF) \
# $(GENDIR)/msgdlgg.$(OBJSUFF) \
COMMONOBJS = \
$(COMMDIR)/config.$(OBJSUFF) \
$(COMMDIR)/cmndata.$(OBJSUFF) \
$(COMMDIR)/dcbase.$(OBJSUFF) \
$(COMMDIR)/docview.$(OBJSUFF) \
$(COMMDIR)/docmdi.$(OBJSUFF) \
$(COMMDIR)/dynarray.$(OBJSUFF) \
$(COMMDIR)/event.$(OBJSUFF) \
$(COMMDIR)/file.$(OBJSUFF) \
$(COMMDIR)/fileconf.$(OBJSUFF) \
$(COMMDIR)/filefn.$(OBJSUFF) \
$(COMMDIR)/framecmn.$(OBJSUFF) \
$(COMMDIR)/gdicmn.$(OBJSUFF) \
$(COMMDIR)/helpbase.$(OBJSUFF) \
$(COMMDIR)/image.$(OBJSUFF) \
$(COMMDIR)/imagbmp.$(OBJSUFF) \
$(COMMDIR)/imagpng.$(OBJSUFF) \
$(COMMDIR)/imagjpeg.$(OBJSUFF) \
$(COMMDIR)/intl.$(OBJSUFF) \
$(COMMDIR)/ipcbase.$(OBJSUFF) \
$(COMMDIR)/layout.$(OBJSUFF) \
$(COMMDIR)/log.$(OBJSUFF) \
$(COMMDIR)/memory.$(OBJSUFF) \
$(COMMDIR)/module.$(OBJSUFF) \
$(COMMDIR)/mimetype.$(OBJSUFF) \
$(COMMDIR)/object.$(OBJSUFF) \
$(COMMDIR)/odbc.$(OBJSUFF) \
$(COMMDIR)/process.$(OBJSUFF) \
$(COMMDIR)/prntbase.$(OBJSUFF) \
$(COMMDIR)/resource.$(OBJSUFF) \
$(COMMDIR)/tbarbase.$(OBJSUFF) \
$(COMMDIR)/tbarsmpl.$(OBJSUFF) \
$(COMMDIR)/textfile.$(OBJSUFF) \
$(COMMDIR)/timercmn.$(OBJSUFF) \
$(COMMDIR)/utilscmn.$(OBJSUFF) \
$(COMMDIR)/validate.$(OBJSUFF) \
$(COMMDIR)/valgen.$(OBJSUFF) \
$(COMMDIR)/valtext.$(OBJSUFF) \
$(COMMDIR)/date.$(OBJSUFF) \
$(COMMDIR)/wxexpr.$(OBJSUFF) \
$(COMMDIR)/hash.$(OBJSUFF) \
$(COMMDIR)/list.$(OBJSUFF) \
$(COMMDIR)/variant.$(OBJSUFF) \
$(COMMDIR)/paper.$(OBJSUFF) \
$(COMMDIR)/string.$(OBJSUFF) \
$(COMMDIR)/time.$(OBJSUFF) \
$(COMMDIR)/tokenzr.$(OBJSUFF) \
$(COMMDIR)/y_tab.$(OBJSUFF) \
$(COMMDIR)/stream.$(OBJSUFF) \
$(COMMDIR)/wfstream.$(OBJSUFF) \
$(COMMDIR)/mstream.$(OBJSUFF) \
$(COMMDIR)/zstream.$(OBJSUFF) \
$(COMMDIR)/datstrm.$(OBJSUFF) \
$(COMMDIR)/objstrm.$(OBJSUFF) \
$(COMMDIR)/extended.$(OBJSUFF) \
$(COMMDIR)/wincmn.$(OBJSUFF)
# NOTE: if the socket-related files fail with a syntax error in Sockets.h,
# remove the files (probably all GnuWin32 releases < b20). Cygwin b20 is OK,
# Mingw32 may still have problems.
# $(COMMDIR)/socket.$(OBJSUFF) \
# $(COMMDIR)/sckaddr.$(OBJSUFF) \
# $(COMMDIR)/sckfile.$(OBJSUFF) \
# $(COMMDIR)/sckipc.$(OBJSUFF) \
# $(COMMDIR)/sckstrm.$(OBJSUFF) \
# $(COMMDIR)/protocol.$(OBJSUFF) \
# $(COMMDIR)/http.$(OBJSUFF) \
# $(COMMDIR)/ftp.$(OBJSUFF) \
# $(COMMDIR)/url.$(OBJSUFF) \
MSWOBJS = \
accel.$(OBJSUFF) \
app.$(OBJSUFF) \
bitmap.$(OBJSUFF) \
bmpbuttn.$(OBJSUFF) \
brush.$(OBJSUFF) \
button.$(OBJSUFF) \
checkbox.$(OBJSUFF) \
checklst.$(OBJSUFF) \
caret.$(OBJSUFF) \
choice.$(OBJSUFF) \
clipbrd.$(OBJSUFF) \
colordlg.$(OBJSUFF) \
colour.$(OBJSUFF) \
combobox.$(OBJSUFF) \
control.$(OBJSUFF) \
curico.$(OBJSUFF) \
cursor.$(OBJSUFF) \
data.$(OBJSUFF) \
dc.$(OBJSUFF) \
dcmemory.$(OBJSUFF) \
dcclient.$(OBJSUFF) \
dcprint.$(OBJSUFF) \
dcscreen.$(OBJSUFF) \
dde.$(OBJSUFF) \
dialog.$(OBJSUFF) \
dib.$(OBJSUFF) \
filedlg.$(OBJSUFF) \
font.$(OBJSUFF) \
fontdlg.$(OBJSUFF) \
frame.$(OBJSUFF) \
gaugemsw.$(OBJSUFF) \
gauge95.$(OBJSUFF) \
gdiobj.$(OBJSUFF) \
helpwin.$(OBJSUFF) \
icon.$(OBJSUFF) \
imaglist.$(OBJSUFF) \
joystick.$(OBJSUFF) \
listbox.$(OBJSUFF) \
listctrl.$(OBJSUFF) \
main.$(OBJSUFF) \
mdi.$(OBJSUFF) \
menu.$(OBJSUFF) \
menuitem.$(OBJSUFF) \
metafile.$(OBJSUFF) \
minifram.$(OBJSUFF) \
msgdlg.$(OBJSUFF) \
nativdlg.$(OBJSUFF) \
notebook.$(OBJSUFF) \
ownerdrw.$(OBJSUFF) \
palette.$(OBJSUFF) \
pen.$(OBJSUFF) \
penwin.$(OBJSUFF) \
printdlg.$(OBJSUFF) \
printwin.$(OBJSUFF) \
radiobox.$(OBJSUFF) \
radiobut.$(OBJSUFF) \
region.$(OBJSUFF) \
registry.$(OBJSUFF) \
regconf.$(OBJSUFF) \
scrolbar.$(OBJSUFF) \
settings.$(OBJSUFF) \
slidrmsw.$(OBJSUFF) \
slider95.$(OBJSUFF) \
spinbutt.$(OBJSUFF) \
statbmp.$(OBJSUFF) \
statbox.$(OBJSUFF) \
statbr95.$(OBJSUFF) \
stattext.$(OBJSUFF) \
tabctrl.$(OBJSUFF) \
taskbar.$(OBJSUFF) \
tbar95.$(OBJSUFF) \
tbarmsw.$(OBJSUFF) \
textctrl.$(OBJSUFF) \
thread.$(OBJSUFF) \
timer.$(OBJSUFF) \
tooltip.$(OBJSUFF) \
treectrl.$(OBJSUFF) \
utils.$(OBJSUFF) \
utilsexc.$(OBJSUFF) \
wave.$(OBJSUFF) \
window.$(OBJSUFF) \
xpmhand.$(OBJSUFF)
# Native wxDirDlg can't be compiled due to GnuWin32/OLE limitations
# dirdlg.$(OBJSUFF) \
# OLE not supported yet by GnuWin32
# $(OLEDIR)/droptgt.$(OBJSUFF) \
# $(OLEDIR)/dropsrc.$(OBJSUFF) \
# $(OLEDIR)/dataobj.$(OBJSUFF) \
# $(OLEDIR)/oleutils.$(OBJSUFF) \
# $(OLEDIR)/uuid.$(OBJSUFF) \
# $(OLEDIR)/automtn.$(OBJSUFF)
XPMOBJECTS = $(XPMDIR)/crbuffri.o\
$(XPMDIR)/crdatfri.o\
$(XPMDIR)/create.o $(XPMDIR)/crifrbuf.o\
$(XPMDIR)/crifrdat.o\
$(XPMDIR)/data.o\
$(XPMDIR)/hashtab.o $(XPMDIR)/misc.o\
$(XPMDIR)/parse.o $(XPMDIR)/rdftodat.o\
$(XPMDIR)/rdftoi.o\
$(XPMDIR)/rgb.o $(XPMDIR)/scan.o\
$(XPMDIR)/simx.o $(XPMDIR)/wrffrdat.o\
$(XPMDIR)/wrffrp.o $(XPMDIR)/wrffri.o
OBJECTS = $(MSWOBJS) $(COMMONOBJS) $(GENERICOBJS) # $(XPMOBJECTS)
all: $(OBJECTS) $(WXLIB)
base:
cd $(WXDIR)/src/common; $(MAKE) -f makefile.g95 GUI=$(GUI) GUISUFFIX=$(GUISUFFIX) CC=$(CC)\
OPTIONS='$(OPTIONS)' DEBUG='$(DEBUG)' DEBUGFLAGS='$(DEBUGFLAGS)' WARN='$(WARN)' XLIB='$(XLIB)' XINCLUDE='$(XINCLUDE)'
$(WXLIB): $(OBJECTS) $(EXTRAOBJS)
ar $(AROPTIONS) $@ $(EXTRAOBJS) $(OBJECTS)
$(RANLIB) $@
#$(MSWOBJDIR):
# mkdir $(OBJDIR)
#$(COMMOBJDIR):
# mkdir $(COMMDIR)/$(OBJDIR)
#$(GENERICOBJDIR):
# mkdir $(GENDIR)/$(OBJDIR)
$(OBJECTS): $(WXINC)/wx/defs.h $(WXINC)/wx/object.h $(WXINC)/wx/setup.h
$(COMMDIR)/y_tab.$(OBJSUFF): $(COMMDIR)/y_tab.c $(COMMDIR)/lex_yy.c
$(CCLEX) -c $(CPPFLAGS) -o $@ $(COMMDIR)/y_tab.c
# Replace lex with flex if you run into compilation
# problems with lex_yy.c. See also note about LEX_SCANNER
# above.
$(COMMDIR)/lex_yy.c: $(COMMDIR)/lexer.l
$(LEX) $(COMMDIR)/lexer.l
mv lex.yy.c $(COMMDIR)/lex_yy.c
# The following may be required for FLEX
# $(LEX) -o$(COMMDIR)/lex_yy.c $(COMMDIR)/lexer.l
# sed -e "s/BUFSIZ/5000/g" < lex.yy.c | \
# sed -e "s/yyoutput(c)/void yyoutput(c)/g" | \
# sed -e "s/YYLMAX 200/YYLMAX 5000/g" > lex_yy.c
# rm -f lex.yy.c
# Replace yacc with bison if you run into compilation
# problems with y_tab.c.
#$(COMMDIR)/y_tab.c: $(COMMDIR)/parser.y
# $(YACC) -o $(COMMDIR)/y_tab.c $(COMMDIR)/parser.y
# If you use e.g. gcc on Unix, uncomment these lines
# and comment out the above.
$(COMMDIR)/y_tab.c: $(COMMDIR)/parser.y
$(YACC) $(COMMDIR)/parser.y
mv y.tab.c $(COMMDIR)/y_tab.c
# Extra targets
rcparser:
cd $(WXDIR)/utils/rcparser/src; $(MAKE) -f makefile.g95
cd $(WXDIR)/src/msw
clean_rcp:
cd $(WXDIR)/utils/rcparser/src; $(MAKE) -f makefile.g95 clean
cd $(WXDIR)/src/msw
clean:
rm -f $(OBJECTS) $(EXTRAOBJS) ../common/y_tab.c ../common/lex_yy.c $(WXDIR)/lib/libwx$(GUISUFFIX).a core
cleanall: clean

782
src/msw/makefile.vc Normal file
View File

@@ -0,0 +1,782 @@
#
# File: makefile.nt
# Author: Julian Smart
# Created: 1997
# Updated:
# Copyright: (c) 1997, Julian Smart
#
# "%W% %G%"
#
# Makefile : Builds wxWindows library wx.lib for VC++ (32-bit)
# Arguments:
#
# FINAL=1 argument to nmake to build version with no debugging info.
# dll builds a library (wxdll.lib) suitable for creating DLLs
#
!include <..\makevc.env>
THISDIR=$(WXWIN)\src\msw
!if "$(WXMAKINGDLL)" == "1"
LIBTARGET=$(WXDIR)\lib\$(WXLIBNAME).dll
DUMMYOBJ=$D\dummydll.obj
!else
LIBTARGET=$(WXLIB)
DUMMYOBJ=$D\dummy.obj
!endif
# Please set these according to the settings in setup.h, so we can include
# the appropriate libraries in wx.lib
# This one overrides the others, to be consistent with the settings in setup.h
MINIMAL_WXWINDOWS_SETUP=0
PERIPH_LIBS=
PERIPH_TARGET=
PERIPH_CLEAN_TARGET=
# These are absolute paths, so that the compiler
# generates correct __FILE__ symbols for debugging.
# Otherwise you don't be able to double-click on a memory
# error to load that file.
GENDIR=$(WXDIR)\src\generic
COMMDIR=$(WXDIR)\src\common
OLEDIR=ole
MSWDIR=$(WXDIR)\src\msw
DOCDIR = $(WXDIR)\docs
HTMLDIR = $(WXDIR)\src\html
{..\generic}.cpp{..\generic\$D}.obj:
cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $<
<<
{..\common}.cpp{..\common\$D}.obj:
cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $<
<<
{..\msw}.cpp{..\msw\$D}.obj:
cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $<
<<
{..\msw\ole}.cpp{..\msw\ole\$D}.obj:
cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $<
<<
{..\html}.cpp{..\html\$D}.obj:
cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $<
<<
GENERICOBJS= \
..\generic\$D\choicdgg.obj \
..\generic\$D\gridg.obj \
..\generic\$D\laywin.obj \
..\generic\$D\panelg.obj \
..\generic\$D\progdlgg.obj \
..\generic\$D\prop.obj \
..\generic\$D\propform.obj \
..\generic\$D\proplist.obj \
..\generic\$D\sashwin.obj \
..\generic\$D\scrolwin.obj \
..\generic\$D\splitter.obj \
..\generic\$D\statusbr.obj \
..\generic\$D\tabg.obj \
..\generic\$D\textdlgg.obj \
..\generic\$D\extdlgg.obj \
..\generic\$D\tipdlg.obj \
..\generic\$D\busyinfo.obj
# ..\generic\$D\imaglist.obj \
# ..\generic\$D\treectrl.obj \
# ..\generic\$D\listctrl.obj \
# ..\generic\$D\notebook.obj \
# These are generic things that don't need to be compiled on MSW,
# but sometimes it's useful to do so for testing purposes.
NONESSENTIALOBJS= \
..\generic\$D\printps.obj \
..\generic\$D\prntdlgg.obj \
..\generic\$D\msgdlgg.obj \
..\generic\$D\helpxlp.obj \
..\generic\$D\colrdlgg.obj \
..\generic\$D\fontdlgg.obj
COMMONOBJS = \
..\common\$D\cmndata.obj \
..\common\$D\config.obj \
..\common\$D\dcbase.obj \
..\common\$D\db.obj \
..\common\$D\dbtable.obj \
..\common\$D\docview.obj \
..\common\$D\docmdi.obj \
..\common\$D\dynarray.obj \
..\common\$D\dynlib.obj \
..\common\$D\event.obj \
..\common\$D\file.obj \
..\common\$D\filefn.obj \
..\common\$D\fileconf.obj \
..\common\$D\framecmn.obj \
..\common\$D\ftp.obj \
..\common\$D\gdicmn.obj \
..\common\$D\image.obj \
..\common\$D\imagbmp.obj \
..\common\$D\imagjpeg.obj \
..\common\$D\imagpng.obj \
..\common\$D\imaggif.obj \
..\common\$D\intl.obj \
..\common\$D\ipcbase.obj \
..\common\$D\helpbase.obj \
..\common\$D\layout.obj \
..\common\$D\log.obj \
..\common\$D\memory.obj \
..\common\$D\mimetype.obj \
..\common\$D\module.obj \
..\common\$D\odbc.obj \
..\common\$D\object.obj \
..\common\$D\prntbase.obj \
..\common\$D\resource.obj \
..\common\$D\tbarbase.obj \
..\common\$D\tbarsmpl.obj \
..\common\$D\textfile.obj \
..\common\$D\timercmn.obj \
..\common\$D\utilscmn.obj \
..\common\$D\validate.obj \
..\common\$D\valgen.obj \
..\common\$D\valtext.obj \
..\common\$D\date.obj \
..\common\$D\hash.obj \
..\common\$D\list.obj \
..\common\$D\paper.obj \
..\common\$D\string.obj \
..\common\$D\socket.obj \
..\common\$D\sckaddr.obj \
..\common\$D\sckint.obj \
..\common\$D\sckfile.obj \
..\common\$D\sckipc.obj \
..\common\$D\sckstrm.obj \
..\common\$D\url.obj \
..\common\$D\http.obj \
..\common\$D\protocol.obj \
..\common\$D\time.obj \
..\common\$D\tokenzr.obj \
..\common\$D\wxexpr.obj \
..\common\$D\y_tab.obj \
..\common\$D\extended.obj \
..\common\$D\process.obj \
..\common\$D\wfstream.obj \
..\common\$D\mstream.obj \
..\common\$D\zstream.obj \
..\common\$D\stream.obj \
..\common\$D\datstrm.obj \
..\common\$D\objstrm.obj \
..\common\$D\variant.obj \
..\common\$D\dlgcmn.obj \
..\common\$D\wincmn.obj \
..\common\$D\txtstrm.obj \
..\common\$D\wxchar.obj \
..\common\$D\unzip.obj \
..\common\$D\zipstream.obj \
..\common\$D\filesys.obj \
..\common\$D\fs_inet.obj \
..\common\$D\fs_zip.obj
MSWOBJS = \
..\msw\$D\accel.obj \
..\msw\$D\app.obj \
..\msw\$D\bitmap.obj \
..\msw\$D\bmpbuttn.obj \
..\msw\$D\brush.obj \
..\msw\$D\button.obj \
..\msw\$D\checkbox.obj \
..\msw\$D\checklst.obj \
..\msw\$D\caret.obj \
..\msw\$D\choice.obj \
..\msw\$D\clipbrd.obj \
..\msw\$D\colordlg.obj \
..\msw\$D\colour.obj \
..\msw\$D\combobox.obj \
..\msw\$D\control.obj \
..\msw\$D\curico.obj \
..\msw\$D\cursor.obj \
..\msw\$D\data.obj \
..\msw\$D\dc.obj \
..\msw\$D\dcmemory.obj \
..\msw\$D\dcclient.obj \
..\msw\$D\dcprint.obj \
..\msw\$D\dcscreen.obj \
..\msw\$D\dde.obj \
..\msw\$D\dialog.obj \
..\msw\$D\dib.obj \
..\msw\$D\dibutils.obj \
..\msw\$D\dirdlg.obj \
..\msw\$D\dragimag.obj \
..\msw\$D\filedlg.obj \
..\msw\$D\font.obj \
..\msw\$D\fontdlg.obj \
..\msw\$D\frame.obj \
..\msw\$D\gauge95.obj \
..\msw\$D\gaugemsw.obj \
..\msw\$D\gdiobj.obj \
..\msw\$D\helpwin.obj \
..\msw\$D\icon.obj \
..\msw\$D\iniconf.obj \
..\msw\$D\joystick.obj \
..\msw\$D\imaglist.obj \
..\msw\$D\listbox.obj \
..\msw\$D\listctrl.obj \
..\msw\$D\main.obj \
..\msw\$D\mdi.obj \
..\msw\$D\menu.obj \
..\msw\$D\menuitem.obj \
..\msw\$D\metafile.obj \
..\msw\$D\minifram.obj \
..\msw\$D\msgdlg.obj \
..\msw\$D\nativdlg.obj \
..\msw\$D\notebook.obj \
..\msw\$D\ownerdrw.obj \
..\msw\$D\palette.obj \
..\msw\$D\pen.obj \
..\msw\$D\penwin.obj \
..\msw\$D\pnghand.obj \
..\msw\$D\printdlg.obj \
..\msw\$D\printwin.obj \
..\msw\$D\radiobox.obj \
..\msw\$D\radiobut.obj \
..\msw\$D\region.obj \
..\msw\$D\registry.obj \
..\msw\$D\regconf.obj \
..\msw\$D\scrolbar.obj \
..\msw\$D\settings.obj \
..\msw\$D\slidrmsw.obj \
..\msw\$D\slider95.obj \
..\msw\$D\spinbutt.obj \
..\msw\$D\statbmp.obj \
..\msw\$D\statbox.obj \
..\msw\$D\statline.obj \
..\msw\$D\statbr95.obj \
..\msw\$D\stattext.obj \
..\msw\$D\tabctrl.obj \
..\msw\$D\taskbar.obj \
..\msw\$D\tbar95.obj \
..\msw\$D\tbarmsw.obj \
..\msw\$D\textctrl.obj \
..\msw\$D\thread.obj \
..\msw\$D\timer.obj \
..\msw\$D\tooltip.obj \
..\msw\$D\treectrl.obj \
..\msw\$D\utils.obj \
..\msw\$D\utilsexc.obj \
..\msw\ole\$D\uuid.obj \
..\msw\$D\wave.obj \
..\msw\$D\window.obj \
..\msw\$D\xpmhand.obj \
..\msw\ole\$D\dataobj.obj \
..\msw\ole\$D\automtn.obj \
..\msw\ole\$D\droptgt.obj \
..\msw\ole\$D\dropsrc.obj \
..\msw\ole\$D\oleutils.obj
HTMLOBJS = \
..\html\$D\htmlcell.obj \
..\html\$D\htmlfilter.obj \
..\html\$D\htmlhelp.obj \
..\html\$D\htmlhelp_io.obj \
..\html\$D\htmlparser.obj \
..\html\$D\htmltag.obj \
..\html\$D\htmlwin.obj \
..\html\$D\htmlwinparser.obj \
..\html\$D\mod_fonts.obj \
..\html\$D\mod_hline.obj \
..\html\$D\mod_image.obj \
..\html\$D\mod_layout.obj \
..\html\$D\mod_links.obj \
..\html\$D\mod_list.obj \
..\html\$D\mod_pre.obj \
..\html\$D\mod_tables.obj \
..\html\$D\search.obj
# Add $(NONESSENTIALOBJS) if wanting generic dialogs, PostScript etc.
# Add $(HTMLOBJS) if wanting wxHTML classes
OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(MSWOBJS)
# Normal, static library
all: dirs $(DUMMYOBJ) $(OBJECTS) $(PERIPH_TARGET) png zlib xpm jpeg $(LIBTARGET)
dirs: $(MSWDIR)\$D $(COMMDIR)\$D $(GENDIR)\$D $(OLEDIR)\$D $(HTMLDIR)\$D
test: $(MSWDIR)\$D\wave.obj
test2: ..\common\Debug\config.obj
$D:
mkdir $D
$(COMMDIR)\$D:
mkdir $(COMMDIR)\$D
$(MSWDIR)\$D:
mkdir $(MSWDIR)\$D
$(GENDIR)\$D:
mkdir $(GENDIR)\$D
$(OLEDIR)\$D:
mkdir $(OLEDIR)\$D
$(HTMLDIR)\$D:
mkdir $(HTMLDIR)\$D
# wxWindows library as DLL
dll:
nmake -f makefile.vc all FINAL=$(FINAL) DLL=1 WXMAKINGDLL=1 NEW_WXLIBNAME=$(NEW_WXLIBNAME)
cleandll:
nmake -f makefile.vc clean FINAL=$(FINAL) DLL=1 WXMAKINGDLL=1 NEW_WXLIBNAME=$(NEW_WXLIBNAME)
# wxWindows + app as DLL. Only affects main.cpp.
dllapp:
nmake -f makefile.vc all FINAL=$(FINAL) DLL=1
# wxWindows + app as DLL, for Netscape plugin - remove DllMain.
dllnp:
nmake -f makefile.vc all NOMAIN=1 FINAL=$(FINAL) DLL=1
# Use this to make dummy.obj and generate a PCH.
# You might use the dll target, then the pch target, in order to
# generate a DLL, then a PCH/dummy.obj for compiling your applications with.
#
# Explanation: Normally, when compiling a static version of wx.lib, your dummy.obj/PCH
# are associated with wx.lib. When using a DLL version of wxWindows, however,
# the DLL is compiled without a PCH, so you only need it for compiling the app.
# In fact headers are compiled differently depending on whether a DLL is being made
# or an app is calling the DLL exported functionality (WXDLLEXPORT is different
# in each case) so you couldn't use the same PCH.
pch:
nmake -f makefile.vc pch1 WXUSINGDLL=1 FINAL=$(FINAL) NEW_WXLIBNAME=$(NEW_WXLIBNAME)
pch1: dirs $(DUMMYOBJ)
echo $(DUMMYOBJ)
!if "$(WXMAKINGDLL)" != "1"
### Static library
$(WXDIR)\lib\$(WXLIBNAME).lib: $D\dummy.obj $(OBJECTS) $(PERIPH_LIBS)
-erase $(LIBTARGET)
$(implib) @<<
-out:$@
-machine:$(CPU)
$(OBJECTS) $(PERIPH_LIBS)
<<
!else
### Update the import library
$(WXDIR)\lib\$(WXLIBNAME).lib: $(DUMMYOBJ) $(OBJECTS)
$(implib) @<<
-machine:$(CPU)
-def:wx.def
$(DUMMYOBJ) $(OBJECTS)
-out:$(WXDIR)\lib\$(WXLIBNAME).lib
<<
# Update the dynamic link library
$(WXDIR)\lib\$(WXLIBNAME).dll: $(DUMMYOBJ) $(OBJECTS) $(WXDIR)\lib\$(WXLIBNAME).lib
$(link) @<<
$(LINKFLAGS)
-out:$(WXDIR)\lib\$(WXLIBNAME).dll
$(DUMMYOBJ) $(OBJECTS) $(guilibsdll) shell32.lib comctl32.lib ctl3d32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib odbc32.lib advapi32.lib winmm.lib $(WXDIR)\lib\winpng.lib $(WXDIR)\lib\zlib.lib $(WXDIR)\lib\xpm.lib $(WXDIR)\lib\jpeg.lib
<<
!endif
########################################################
# Windows-specific objects
$D\dummy.obj: dummy.$(SRCSUFF) $(WXDIR)\include\wx\wx.h $(WXDIR)\include\wx\msw\setup.h
cl $(CPPFLAGS) $(MAKEPRECOMP) /Fo$D\dummy.obj /c /Tp dummy.cpp
$D\dummydll.obj: dummydll.$(SRCSUFF) $(WXDIR)\include\wx\wx.h $(WXDIR)\include\wx\msw\setup.h
cl @<<
$(CPPFLAGS) $(MAKEPRECOMP) /Fo$D\dummydll.obj /c /Tp dummydll.cpp
<<
# If taking wxWindows from CVS, setup.h doesn't exist yet.
# Actually the 'if not exist setup.h' test doesn't work
# (copies the file anyway)
# we'll have to comment this rule out.
#$(WXDIR)\include\wx\msw\setup.h: $(WXDIR)\include\wx\msw\setup0.h
# cd "$(WXDIR)"\include\wx\msw
# if not exist setup.h copy setup0.h setup.h
# cd "$(WXDIR)"\src\msw
..\common\$D\extended.obj: ..\common\extended.c
cl @<<
$(CPPFLAGS2) /c $(COMMDIR)\extended.c /Fo$@
<<
..\common\$D\y_tab.obj: ..\common\y_tab.c ..\common\lex_yy.c
cl @<<
$(CPPFLAGS2) /c ..\common\y_tab.c -DUSE_DEFINE -DYY_USE_PROTOS /Fo$@
<<
..\common\y_tab.c: ..\common\dosyacc.c
copy "..\common"\dosyacc.c "..\common"\y_tab.c
..\common\lex_yy.c: ..\common\doslex.c
copy "..\common"\doslex.c "..\common"\lex_yy.c
$(OBJECTS): $(WXDIR)/include/wx/setup.h
..\common\$D\unzip.obj: ..\common\unzip.c
cl @<<
$(CPPFLAGS2) /c $(COMMDIR)\unzip.c /Fo$@
<<
# Peripheral components
png:
cd $(WXDIR)\src\png
nmake -f makefile.vc FINAL=$(FINAL) DLL=$(DLL) WXMAKINGDLL=$(WXMAKINGDLL)
cd $(WXDIR)\src\msw
clean_png:
cd $(WXDIR)\src\png
nmake -f makefile.vc clean
cd $(WXDIR)\src\msw
zlib:
cd $(WXDIR)\src\zlib
nmake -f makefile.vc FINAL=$(FINAL) DLL=$(DLL) WXMAKINGDLL=$(WXMAKINGDLL)
cd $(WXDIR)\src\msw
clean_zlib:
cd $(WXDIR)\src\zlib
nmake -f makefile.vc clean
cd $(WXDIR)\src\msw
jpeg:
cd $(WXDIR)\src\jpeg
nmake -f makefile.vc FINAL=$(FINAL) DLL=$(DLL) WXMAKINGDLL=$(WXMAKINGDLL) all
cd $(WXDIR)\src\msw
clean_jpeg:
cd $(WXDIR)\src\jpeg
nmake -f makefile.vc clean
cd $(WXDIR)\src\msw
xpm:
cd $(WXDIR)\src\xpm
nmake -f makefile.vc FINAL=$(FINAL) DLL=$(DLL) WXMAKINGDLL=$(WXMAKINGDLL)
cd $(WXDIR)\src\msw
clean_xpm:
cd $(WXDIR)\src\xpm
nmake -f makefile.vc clean
cd $(WXDIR)\src\msw
rcparser:
cd $(WXDIR)\utils\rcparser\src
nmake -f makefile.vc FINAL=$(FINAL)
cd $(WXDIR)\src\msw
clean: $(PERIPH_CLEAN_TARGET) clean_png clean_zlib clean_jpeg clean_xpm
-erase $(LIBTARGET)
-erase $(WXDIR)\lib\$(WXLIBNAME).pdb
-erase ..\..\lib\wx200.dll
-erase ..\..\lib\wx200.lib
-erase ..\..\lib\wx200.exp
-erase ..\..\lib\wx200.pdb
-erase ..\..\lib\wx200.ilk
-erase *.pdb
-erase *.sbr
-erase $(WXLIBNAME).pch
-erase $(GENDIR)\$D\*.obj
-erase $(GENDIR)\$D\*.pdb
-erase $(GENDIR)\$D\*.sbr
-erase $(COMMDIR)\$D\*.obj
-erase $(COMMDIR)\$D\*.pdb
-erase $(COMMDIR)\$D\*.sbr
-erase $(COMMDIR)\\y_tab.c
-erase $(COMMDIR)\lex_yy.c
-erase $(MSWDIR)\$D\*.obj
-erase $(MSWDIR)\$D\*.sbr
-erase $(MSWDIR)\$D\*.pdb
-erase $(OLEDIR)\$D\*.obj
-erase $(OLEDIR)\$D\*.sbr
-erase $(OLEDIR)\$D\*.pdb
-rmdir $(D)
-rmdir ole\$(D)
-rmdir ..\generic\$(D)
-rmdir ..\common\$(D)
cleanall: clean
# Making documents
docs: allhlp allhtml allpdfrtf
alldocs: docs
hlp: wxhlp portinghlp
wxhlp: $(DOCDIR)/winhelp/wx.hlp
prophlp: $(DOCDIR)/winhelp/prop.hlp
refhlp: $(DOCDIR)/winhelp/techref.hlp
rtf: $(DOCDIR)/winhelp/wx.rtf
proprtf: $(DOCDIR)/winhelp/prop.rtf
pdfrtf: $(DOCDIR)/pdf/wx.rtf
proppdfrtf: $(DOCDIR)/pdf/prop.rtf
refpdfrtf: $(DOCDIR)/pdf/techref.rtf
html: wxhtml portinghtml
wxhtml: $(DOCDIR)\html\wx\wx.htm
htmlhelp: $(DOCDIR)\html\wx\wx.chm
prophtml: $(DOCDIR)\html\proplist\prop.htm
ps: wxps referencps
wxps: $(WXDIR)\docs\ps\wx.ps
propps: $(WXDIR)\docs\ps\prop.ps
referencps: $(WXDIR)\docs\ps\referenc.ps
portinghtml: $(DOCDIR)\html\porting\port.htm
portingrtf: $(DOCDIR)/winhelp/porting.rtf
portinghlp: $(DOCDIR)/winhelp/porting.hlp
portingpdfrtf: $(DOCDIR)/pdf/porting.rtf
portingps: $(WXDIR)\docs\ps\porting.ps
allhlp: wxhlp portinghlp prophlp
cd $(WXDIR)\utils\dialoged\src
nmake -f makefile.vc hlp
cd $(THISDIR)
# cd $(WXDIR)\utils\wxhelp\src
# nmake -f makefile.vc hlp
# cd $(WXDIR)\utils\tex2rtf\src
# nmake -f makefile.vc hlp
# cd $(WXDIR)\utils\wxgraph\src
# nmake -f makefile.vc hlp
# cd $(WXDIR)\utils\wxchart\src
# nmake -f makefile.vc hlp
# cd $(WXDIR)\utils\wxtree\src
# nmake -f makefile.vc hlp
# cd $(WXDIR)\utils\wxbuild\src
# nmake -f makefile.vc hlp
# cd $(WXDIR)\utils\wxgrid\src
# nmake -f makefile.vc hlp
allhtml: wxhtml portinghtml prophtml
cd $(WXDIR)\utils\dialoged\src
nmake -f makefile.vc html
cd $(THISDIR)
# nmake -f makefile.vc html
# cd $(WXDIR)\utils\dialoged\src
# nmake -f makefile.vc html
# cd $(WXDIR)\utils\hytext\src
# nmake -f makefile.vc html
# cd $(WXDIR)\utils\wxhelp\src
# nmake -f makefile.vc html
# cd $(WXDIR)\utils\tex2rtf\src
# nmake -f makefile.vc html
# cd $(WXDIR)\utils\wxgraph\src
# nmake -f makefile.vc html
# cd $(WXDIR)\utils\wxchart\src
# nmake -f makefile.vc html
# cd $(WXDIR)\utils\wxtree\src
# nmake -f makefile.vc html
allps: wxps referencps portingps propps
cd $(WXDIR)\utils\dialoged\src
nmake -f makefile.vc ps
cd $(THISDIR)
allpdfrtf: pdfrtf portingpdfrtf proppdfrtf
cd $(WXDIR)\utils\dialoged\src
nmake -f makefile.vc pdfrtf
cd $(THISDIR)
# cd $(WXDIR)\utils\wxhelp\src
# nmake -f makefile.vc ps
# cd $(WXDIR)\utils\tex2rtf\src
# nmake -f makefile.vc ps
# cd $(WXDIR)\utils\wxgraph\src
# nmake -f makefile.vc ps
# cd $(WXDIR)\utils\wxchart\src
# nmake -f makefile.vc ps
# cd $(WXDIR)\utils\wxtree\src
# nmake -f makefile.vc ps
# cd $(THISDIR)
$(DOCDIR)/winhelp/wx.hlp: $(DOCDIR)/latex/wx/wx.rtf $(DOCDIR)/latex/wx/wx.hpj
cd $(DOCDIR)/latex/wx
-erase wx.ph
hc wx
move wx.hlp $(DOCDIR)\winhelp\wx.hlp
move wx.cnt $(DOCDIR)\winhelp\wx.cnt
cd $(THISDIR)
$(DOCDIR)/winhelp/porting.hlp: $(DOCDIR)/latex/porting/porting.rtf $(DOCDIR)/latex/porting/porting.hpj
cd $(DOCDIR)/latex/porting
-erase porting.ph
hc porting
move porting.hlp $(DOCDIR)\winhelp\porting.hlp
move porting.cnt $(DOCDIR)\winhelp\porting.cnt
cd $(THISDIR)
$(DOCDIR)/winhelp/prop.hlp: $(DOCDIR)/latex/proplist/prop.rtf $(DOCDIR)/latex/proplist/prop.hpj
cd $(DOCDIR)/latex/proplist
-erase prop.ph
hc prop
move prop.hlp $(DOCDIR)\winhelp\prop.hlp
move prop.cnt $(DOCDIR)\winhelp\prop.cnt
cd $(THISDIR)
$(DOCDIR)/winhelp/techref.hlp: $(DOCDIR)/latex/techref/techref.rtf $(DOCDIR)/latex/techref/techref.hpj
cd $(DOCDIR)/latex/techref
-erase techref.ph
hc techref
move techref.hlp $(DOCDIR)\winhelp\techref.hlp
move techref.cnt $(DOCDIR)\winhelp\techref.cnt
cd $(THISDIR)
$(DOCDIR)/latex/wx/wx.rtf: $(DOCDIR)/latex/wx/classes.tex $(DOCDIR)/latex/wx/body.tex $(DOCDIR)/latex/wx/topics.tex $(DOCDIR)/latex/wx/manual.tex
cd $(DOCDIR)\latex\wx
-start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/wx/manual.tex $(DOCDIR)/latex/wx/wx.rtf -twice -winhelp
cd $(THISDIR)
$(DOCDIR)/latex/porting/porting.rtf: $(DOCDIR)/latex/porting/porting.tex
cd $(DOCDIR)\latex\porting
-start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/porting/porting.tex $(DOCDIR)/latex/porting/porting.rtf -twice -winhelp
cd $(THISDIR)
$(DOCDIR)/latex/proplist/prop.rtf: $(DOCDIR)/latex/proplist/prop.tex $(DOCDIR)/latex/proplist/body.tex $(DOCDIR)/latex/proplist/classes.tex $(DOCDIR)/latex/proplist/changes.tex
cd $(DOCDIR)\latex\proplist
-start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/proplist/prop.tex $(DOCDIR)/latex/proplist/prop.rtf -twice -winhelp
cd $(THISDIR)
$(DOCDIR)/latex/techref/techref.rtf: $(DOCDIR)/latex/techref/techref.tex
cd $(DOCDIR)\latex\techref
-start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/techref/techref.tex $(DOCDIR)/latex/techref/techref.rtf -twice -winhelp
cd $(THISDIR)
$(DOCDIR)/pdf/wx.rtf: $(DOCDIR)/latex/wx/classes.tex $(DOCDIR)/latex/wx/body.tex $(DOCDIR)/latex/wx/topics.tex $(DOCDIR)/latex/wx/manual.tex
cd $(DOCDIR)\latex\wx
-copy *.bmp *.wmf $(DOCDIR)\pdf
-start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/wx/manual.tex $(DOCDIR)/pdf/wx.rtf -twice -rtf
cd $(THISDIR)
$(DOCDIR)/pdf/porting.rtf: $(DOCDIR)/latex/porting/porting.tex
cd $(DOCDIR)\latex\porting
-copy *.bmp *.wmf $(DOCDIR)\pdf
-start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/porting/porting.tex $(DOCDIR)/pdf/porting.rtf -twice -rtf
cd $(THISDIR)
$(DOCDIR)/pdf/prop.rtf: $(DOCDIR)/latex/proplist/prop.tex $(DOCDIR)/latex/proplist/body.tex $(DOCDIR)/latex/proplist/classes.tex $(DOCDIR)/latex/proplist/changes.tex
cd $(DOCDIR)\latex\proplist
-copy *.bmp *.wmf $(DOCDIR)\pdf
-start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/proplist/prop.tex $(DOCDIR)/pdf/prop.rtf -twice -rtf
cd $(THISDIR)
$(DOCDIR)/pdf/techref.rtf: $(DOCDIR)/latex/techref/techref.tex
cd $(DOCDIR)\latex\techref
-copy *.bmp *.wmf $(DOCDIR)\pdf
-start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/techref/techref.tex $(DOCDIR)/pdf/techref.rtf -twice -rtf
cd $(THISDIR)
$(DOCDIR)\html\wx\wx.htm: $(DOCDIR)\latex\wx\classes.tex $(DOCDIR)\latex\wx\body.tex $(DOCDIR)/latex/wx/topics.tex $(DOCDIR)\latex\wx\manual.tex
cd $(DOCDIR)\latex\wx
-mkdir $(DOCDIR)\html\wx
-start $(WAITFLAG) tex2rtf $(DOCDIR)\latex\wx\manual.tex $(DOCDIR)\html\wx\wx.htm -twice -html
-erase $(DOCDIR)\html\wx\*.con
-erase $(DOCDIR)\html\wx\*.ref
-erase $(DOCDIR)\latex\wx\*.con
-erase $(DOCDIR)\latex\wx\*.ref
cd $(THISDIR)
$(DOCDIR)\html\wx\wx.chm : $(DOCDIR)\html\wx\wx.htm $(DOCDIR)\html\wx\wx.hhp
cd $(DOCDIR)\html\wx
-hhc wx.hhp
cd $(THISDIR)
$(DOCDIR)\html\porting\port.htm: $(DOCDIR)\latex\porting\porting.tex
cd $(DOCDIR)\latex\porting
-mkdir $(DOCDIR)\html\porting
-start $(WAITFLAG) tex2rtf $(DOCDIR)\latex\porting\porting.tex $(DOCDIR)\html\porting\port.htm -twice -html
-erase $(DOCDIR)\html\porting\*.con
-erase $(DOCDIR)\html\porting\*.ref
-erase $(DOCDIR)\latex\porting\*.con
-erase $(DOCDIR)\latex\porting\*.ref
cd $(THISDIR)
$(DOCDIR)\html\proplist\prop.htm: $(DOCDIR)\latex\proplist\prop.tex $(DOCDIR)\latex\proplist\body.tex $(DOCDIR)\latex\proplist\classes.tex $(DOCDIR)\latex\proplist\changes.tex
cd $(DOCDIR)\latex\proplist
-mkdir $(DOCDIR)\html\proplist
-start $(WAITFLAG) tex2rtf $(DOCDIR)\latex\proplist\prop.tex $(DOCDIR)\html\proplist\prop.htm -twice -html
-erase $(DOCDIR)\html\proplist\*.con
-erase $(DOCDIR)\html\proplist\*.ref
-erase $(DOCDIR)\latex\proplist\*.con
-erase $(DOCDIR)\latex\proplist\*.ref
cd $(THISDIR)
$(WXDIR)\docs\latex\wx\manual.dvi: $(DOCDIR)/latex/wx/body.tex $(DOCDIR)/latex/wx/manual.tex
cd $(WXDIR)\docs\latex\wx
-latex manual
-latex manual
-makeindx manual
-bibtex manual
-latex manual
-latex manual
cd $(THISDIR)
$(WXDIR)\docs\latex\porting\porting.dvi: $(DOCDIR)/latex/porting/porting.tex
cd $(WXDIR)\docs\latex\porting
-latex porting
-latex porting
-makeindx porting
-bibtex porting
-latex porting
-latex porting
cd $(THISDIR)
$(WXDIR)\docs\ps\wx.ps: $(WXDIR)\docs\latex\wx\manual.dvi
cd $(WXDIR)\docs\latex\wx
-dvips32 -o wx.ps manual
move wx.ps $(WXDIR)\docs\ps\wx.ps
cd $(THISDIR)
$(WXDIR)\docs\ps\porting.ps: $(WXDIR)\docs\latex\porting\porting.dvi
cd $(WXDIR)\docs\latex\porting
-dvips32 -o porting.ps porting
move porting.ps $(WXDIR)\docs\ps\porting.ps
cd $(THISDIR)
$(WXDIR)\docs\latex\wx\referenc.dvi: $(DOCDIR)/latex/wx/classes.tex $(DOCDIR)/latex/wx/topics.tex $(DOCDIR)/latex/wx/referenc.tex
cd $(WXDIR)\docs\latex\wx
-latex referenc
-latex referenc
-makeindx referenc
-bibtex referenc
-latex referenc
-latex referenc
cd $(THISDIR)
$(WXDIR)\docs\ps\referenc.ps: $(WXDIR)\docs\latex\wx\referenc.dvi
cd $(WXDIR)\docs\latex\wx
-dvips32 -o referenc.ps referenc
move referenc.ps $(WXDIR)\docs\ps\referenc.ps
cd $(THISDIR)
# In order to force document reprocessing
touchmanual:
-touch $(WXDIR)\docs\latex\wx\manual.tex
updatedocs: touchmanual alldocs
# Start Word, running the GeneratePDF macro. MakeManual.dot should be in the
# Office StartUp folder, and PDFMaker should be installed.
updatepdf: # touchmanual pdfrtf
start $(WAITFLAG) "winword d:\wx2\wxWindows\docs\latex\pdf\wx.rtf /mGeneratePDF"

961
src/msw/makefile.wat Normal file
View File

@@ -0,0 +1,961 @@
#!/binb/wmake.exe
#
# File: makefile.wat
# Author: Julian Smart
# Created: 1998
#
# Makefile : Builds wxWindows library for Watcom C++, WIN32
WXDIR = ..\..
!include $(WXDIR)\src\makewat.env
WXLIB = $(WXDIR)\lib
LIBTARGET = $(WXLIB)\wx.lib
DUMMY=dummydll
# ODBCLIB = ..\..\contrib\odbc\odbc32.lib
EXTRATARGETS = xpm png zlib
EXTRATARGETSCLEAN = clean_xpm clean_png clean_zlib
GENDIR=$(WXDIR)\src\generic
COMMDIR=$(WXDIR)\src\common
XPMDIR=$(WXDIR)\src\xpm
OLEDIR=ole
MSWDIR=$(WXDIR)\src\msw
DOCDIR = $(WXDIR)\docs
GENERICOBJS= choicdgg.obj &
gridg.obj &
laywin.obj &
panelg.obj &
progdlgg.obj &
prop.obj &
propform.obj &
proplist.obj &
sashwin.obj &
scrolwin.obj &
splitter.obj &
statusbr.obj &
tabg.obj &
textdlgg.obj &
tipdlg.obj
# These are generic things that don't need to be compiled on MSW,
# but sometimes it's useful to do so for testing purposes.
NONESSENTIALOBJS= printps.obj &
prntdlgg.obj &
msgdlgg.obj &
helpxlp.obj &
colrdlgg.obj &
fontdlgg.obj
COMMONOBJS = cmndata.obj &
config.obj &
dcbase.obj &
docview.obj &
docmdi.obj &
dynarray.obj &
dynlib.obj &
event.obj &
file.obj &
filefn.obj &
fileconf.obj &
framecmn.obj &
gdicmn.obj &
image.obj &
imagbmp.obj &
imagpng.obj &
intl.obj &
ipcbase.obj &
helpbase.obj &
layout.obj &
log.obj &
memory.obj &
mimetype.obj &
module.obj &
object.obj &
prntbase.obj &
resource.obj &
tbarbase.obj &
tbarsmpl.obj &
textfile.obj &
timercmn.obj &
utilscmn.obj &
validate.obj &
valgen.obj &
valtext.obj &
date.obj &
hash.obj &
list.obj &
paper.obj &
string.obj &
socket.obj &
sckaddr.obj &
sckfile.obj &
sckipc.obj &
sckstrm.obj &
sckint.obj &
url.obj &
http.obj &
protocol.obj &
time.obj &
tokenzr.obj &
wxexpr.obj &
y_tab.obj &
extended.obj &
process.obj &
wfstream.obj &
mstream.obj &
zstream.obj &
stream.obj &
datstrm.obj &
objstrm.obj &
variant.obj &
dlgcmn.obj &
wincmn.obj &
wxchar.obj
# Can't compile these yet under Watcom C++
# imagjpeg.obj &
# odbc.obj &
# db.obj &
# dbtable.obj &
MSWOBJS = &
accel.obj &
app.obj &
bitmap.obj &
bmpbuttn.obj &
brush.obj &
button.obj &
checkbox.obj &
checklst.obj &
caret.obj &
choice.obj &
clipbrd.obj &
colordlg.obj &
colour.obj &
combobox.obj &
control.obj &
curico.obj &
cursor.obj &
data.obj &
dc.obj &
dcmemory.obj &
dcclient.obj &
dcprint.obj &
dcscreen.obj &
dde.obj &
dialog.obj &
dib.obj &
dibutils.obj &
dirdlg.obj &
filedlg.obj &
font.obj &
fontdlg.obj &
frame.obj &
gauge95.obj &
gaugemsw.obj &
gdiobj.obj &
helpwin.obj &
icon.obj &
imaglist.obj &
iniconf.obj &
joystick.obj &
listbox.obj &
listctrl.obj &
main.obj &
mdi.obj &
menu.obj &
menuitem.obj &
metafile.obj &
minifram.obj &
msgdlg.obj &
nativdlg.obj &
notebook.obj &
ownerdrw.obj &
palette.obj &
pen.obj &
penwin.obj &
printdlg.obj &
printwin.obj &
radiobox.obj &
radiobut.obj &
region.obj &
registry.obj &
regconf.obj &
scrolbar.obj &
settings.obj &
slidrmsw.obj &
slider95.obj &
spinbutt.obj &
statbmp.obj &
statbox.obj &
statline.obj &
statbr95.obj &
stattext.obj &
tabctrl.obj &
taskbar.obj &
tbar95.obj &
tbarmsw.obj &
textctrl.obj &
thread.obj &
timer.obj &
tooltip.obj &
treectrl.obj &
utils.obj &
utilsexc.obj &
wave.obj &
window.obj &
xpmhand.obj
# pnghand.obj &
OLEOBJS = &
droptgt.obj &
dropsrc.obj &
dataobj.obj &
oleutils.obj &
uuid.obj &
automtn.obj
# Add $(NONESSENTIALOBJS) if wanting generic dialogs, PostScript etc.
OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(MSWOBJS) $(OLEOBJS)
all: $(OBJECTS) $(LIBTARGET) $(EXTRATARGETS)
$(LIBTARGET) : $(OBJECTS)
%create tmp.lbc
@for %i in ( $(OBJECTS) ) do @%append tmp.lbc +%i
wlib /b /c /n /p=512 $^@ @tmp.lbc
#test : $(OBJECTS)
# %create tmp.lbc
# @for %i in ( $(OBJECTS) ) do @%append tmp.lbc +%i
# wlib /b /c /n /p=512 $^@ @tmp.lbc
clean: .SYMBOLIC $(EXTRATARGETSCLEAN)
-erase *.obj
-erase $(LIBTARGET)
-erase *.pch
-erase *.err
-erase *.lbc
cleanall: clean
accel.obj: $(MSWDIR)\accel.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
app.obj: $(MSWDIR)\app.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
bitmap.obj: $(MSWDIR)\bitmap.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
bmpbuttn.obj: $(MSWDIR)\bmpbuttn.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
brush.obj: $(MSWDIR)\brush.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
button.obj: $(MSWDIR)\button.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
caret.obj: $(MSWDIR)\caret.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
choice.obj: $(MSWDIR)\choice.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
checkbox.obj: $(MSWDIR)\checkbox.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
checklst.obj: $(MSWDIR)\checklst.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
clipbrd.obj: $(MSWDIR)\clipbrd.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
colordlg.obj: $(MSWDIR)\colordlg.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
colour.obj: $(MSWDIR)\colour.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
combobox.obj: $(MSWDIR)\combobox.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
control.obj: $(MSWDIR)\control.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
curico.obj: $(MSWDIR)\curico.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
cursor.obj: $(MSWDIR)\cursor.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
data.obj: $(MSWDIR)\data.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
dde.obj: $(MSWDIR)\dde.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
dc.obj: $(MSWDIR)\dc.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
dcmemory.obj: $(MSWDIR)\dcmemory.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
dcclient.obj: $(MSWDIR)\dcclient.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
dcprint.obj: $(MSWDIR)\dcprint.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
dcscreen.obj: $(MSWDIR)\dcscreen.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
dialog.obj: $(MSWDIR)\dialog.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
dib.obj: $(MSWDIR)\dib.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
dibutils.obj: $(MSWDIR)\dibutils.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
dirdlg.obj: $(MSWDIR)\dirdlg.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
filedlg.obj: $(MSWDIR)\filedlg.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
font.obj: $(MSWDIR)\font.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
fontdlg.obj: $(MSWDIR)\fontdlg.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
frame.obj: $(MSWDIR)\frame.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
gauge95.obj: $(MSWDIR)\gauge95.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
gaugemsw.obj: $(MSWDIR)\gaugemsw.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
gdiobj.obj: $(MSWDIR)\gdiobj.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
helpwin.obj: $(MSWDIR)\helpwin.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
icon.obj: $(MSWDIR)\icon.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
imaglist.obj: $(MSWDIR)\imaglist.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
iniconf.obj: $(MSWDIR)\iniconf.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
joystick.obj: $(MSWDIR)\joystick.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
listbox.obj: $(MSWDIR)\listbox.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
listctrl.obj: $(MSWDIR)\listctrl.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
main.obj: $(MSWDIR)\main.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
mdi.obj: $(MSWDIR)\mdi.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
menu.obj: $(MSWDIR)\menu.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
menuitem.obj: $(MSWDIR)\menuitem.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
metafile.obj: $(MSWDIR)\metafile.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
minifram.obj: $(MSWDIR)\minifram.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
msgdlg.obj: $(MSWDIR)\msgdlg.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
nativdlg.obj: $(MSWDIR)\nativdlg.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
notebook.obj: $(MSWDIR)\notebook.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
ownerdrw.obj: $(MSWDIR)\ownerdrw.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
palette.obj: $(MSWDIR)\palette.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
pen.obj: $(MSWDIR)\pen.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
penwin.obj: $(MSWDIR)\penwin.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
pnghand.obj: $(MSWDIR)\pnghand.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
printdlg.obj: $(MSWDIR)\printdlg.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
printwin.obj: $(MSWDIR)\printwin.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
radiobox.obj: $(MSWDIR)\radiobox.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
radiobut.obj: $(MSWDIR)\radiobut.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
region.obj: $(MSWDIR)\region.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
registry.obj: $(MSWDIR)\registry.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
regconf.obj: $(MSWDIR)\regconf.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
scrolbar.obj: $(MSWDIR)\scrolbar.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
settings.obj: $(MSWDIR)\settings.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
slidrmsw.obj: $(MSWDIR)\slidrmsw.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
slider95.obj: $(MSWDIR)\slider95.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
spinbutt.obj: $(MSWDIR)\spinbutt.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
statbmp.obj: $(MSWDIR)\statbmp.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
statbox.obj: $(MSWDIR)\statbox.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
statline.obj: $(MSWDIR)\statline.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
statbr95.obj: $(MSWDIR)\statbr95.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
stattext.obj: $(MSWDIR)\stattext.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
tabctrl.obj: $(MSWDIR)\tabctrl.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
taskbar.obj: $(MSWDIR)\taskbar.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
tbar95.obj: $(MSWDIR)\tbar95.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
tbarmsw.obj: $(MSWDIR)\tbarmsw.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
textctrl.obj: $(MSWDIR)\textctrl.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
thread.obj: $(MSWDIR)\thread.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
timer.obj: $(MSWDIR)\timer.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
tooltip.obj: $(MSWDIR)\tooltip.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
treectrl.obj: $(MSWDIR)\treectrl.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
utils.obj: $(MSWDIR)\utils.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
utilsexc.obj: $(MSWDIR)\utilsexc.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
wave.obj: $(MSWDIR)\wave.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
window.obj: $(MSWDIR)\window.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
xpmhand.obj: $(MSWDIR)\xpmhand.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
droptgt.obj: $(OLEDIR)\droptgt.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
dropsrc.obj: $(OLEDIR)\dropsrc.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
dataobj.obj: $(OLEDIR)\dataobj.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
oleutils.obj: $(OLEDIR)\oleutils.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
uuid.obj: $(OLEDIR)\uuid.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
automtn.obj: $(OLEDIR)\automtn.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
########################################################
# Common objects (always compiled)
cmndata.obj: $(COMMDIR)\cmndata.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
config.obj: $(COMMDIR)\config.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
dcbase.obj: $(COMMDIR)\dcbase.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
db.obj: $(COMMDIR)\db.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
dbtable.obj: $(COMMDIR)\dbtable.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
docview.obj: $(COMMDIR)\docview.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
docmdi.obj: $(COMMDIR)\docmdi.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
dynarray.obj: $(COMMDIR)\dynarray.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
dynlib.obj: $(COMMDIR)\dynlib.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
event.obj: $(COMMDIR)\event.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
file.obj: $(COMMDIR)\file.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
fileconf.obj: $(COMMDIR)\fileconf.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
filefn.obj: $(COMMDIR)\filefn.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
framecmn.obj: $(COMMDIR)\framecmn.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
gdicmn.obj: $(COMMDIR)\gdicmn.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
image.obj: $(COMMDIR)\image.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
imagbmp.obj: $(COMMDIR)\imagbmp.cpp
*$(CCC) $(CPPFLAGS) -i=..\png -i=..\zlib $(IFLAGS) $<
imagpng.obj: $(COMMDIR)\imagpng.cpp
*$(CCC) $(CPPFLAGS) -i=..\png -i=..\zlib $(IFLAGS) $<
imagjpeg.obj: $(COMMDIR)\imagjpeg.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
intl.obj: $(COMMDIR)\intl.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
ipcbase.obj: $(COMMDIR)\ipcbase.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
helpbase.obj: $(COMMDIR)\helpbase.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
layout.obj: $(COMMDIR)\layout.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
log.obj: $(COMMDIR)\log.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
memory.obj: $(COMMDIR)\memory.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
mimetype.obj: $(COMMDIR)\mimetype.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
module.obj: $(COMMDIR)\module.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
object.obj: $(COMMDIR)\object.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
odbc.obj: $(COMMDIR)\odbc.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
prntbase.obj: $(COMMDIR)\prntbase.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
resource.obj: $(COMMDIR)\resource.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
tbarbase.obj: $(COMMDIR)\tbarbase.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
tbarsmpl.obj: $(COMMDIR)\tbarsmpl.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
textfile.obj: $(COMMDIR)\textfile.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
timercmn.obj: $(COMMDIR)\timercmn.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
utilscmn.obj: $(COMMDIR)\utilscmn.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
validate.obj: $(COMMDIR)\validate.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
valgen.obj: $(COMMDIR)\valgen.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
valtext.obj: $(COMMDIR)\valtext.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
date.obj: $(COMMDIR)\date.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
wxexpr.obj: $(COMMDIR)\wxexpr.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
hash.obj: $(COMMDIR)\hash.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
list.obj: $(COMMDIR)\list.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
paper.obj: $(COMMDIR)\paper.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
string.obj: $(COMMDIR)\string.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
socket.obj: $(COMMDIR)\socket.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
sckint.obj: $(COMMDIR)\sckint.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
sckaddr.obj: $(COMMDIR)\sckaddr.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
sckfile.obj: $(COMMDIR)\sckfile.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
sckipc.obj: $(COMMDIR)\sckipc.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
sckstrm.obj: $(COMMDIR)\sckstrm.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
url.obj: $(COMMDIR)\url.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
http.obj: $(COMMDIR)\http.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
protocol.obj: $(COMMDIR)\protocol.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
tokenzr.obj: $(COMMDIR)\tokenzr.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
matrix.obj: $(COMMDIR)\matrix.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
time.obj: $(COMMDIR)\time.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
stream.obj: $(COMMDIR)\stream.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
wfstream.obj: $(COMMDIR)\wfstream.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
mstream.obj: $(COMMDIR)\mstream.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
zstream.obj: $(COMMDIR)\zstream.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
datstrm.obj: $(COMMDIR)\datstrm.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
objstrm.obj: $(COMMDIR)\objstrm.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
extended.obj: $(COMMDIR)\extended.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\extended.c
process.obj: $(COMMDIR)\process.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
variant.obj: $(COMMDIR)\variant.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
dlgcmn.obj: $(COMMDIR)\dlgcmn.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
wincmn.obj: $(COMMDIR)\wincmn.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
wxchar.obj: $(COMMDIR)\wxchar.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
y_tab.obj: $(COMMDIR)\y_tab.c $(COMMDIR)\lex_yy.c
*$(CC) $(CPPFLAGS) $(IFLAGS) -DUSE_DEFINE $(COMMDIR)\y_tab.c
# *$(CC) $(CPPFLAGS) $(IFLAGS) -DUSE_DEFINE -DYY_USE_PROTOS $(COMMDIR)\y_tab.c
$(COMMDIR)\y_tab.c: $(COMMDIR)\dosyacc.c
copy $(COMMDIR)\dosyacc.c $(COMMDIR)\y_tab.c
$(COMMDIR)\lex_yy.c: $(COMMDIR)\doslex.c
copy $(COMMDIR)\doslex.c $(COMMDIR)\lex_yy.c
########################################################
# Generic objects (not always compiled, depending on
# whether platforms have native implementations)
choicdgg.obj: $(GENDIR)\choicdgg.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
colrdlgg.obj: $(GENDIR)\colrdgg.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
fontdlgg.obj: $(GENDIR)\fontdlgg.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
gridg.obj: $(GENDIR)\gridg.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
helpxlp.obj: $(GENDIR)\helpxlp.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
laywin.obj: $(GENDIR)\laywin.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
msgdlgg.obj: $(GENDIR)\msgdlgg.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
panelg.obj: $(GENDIR)\panelg.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
printps.obj: $(GENDIR)\printps.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
progdlgg.obj: $(GENDIR)\progdlgg.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
prop.obj: $(GENDIR)\prop.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
propform.obj: $(GENDIR)\propform.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
proplist.obj: $(GENDIR)\proplist.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
prntdlgg.obj: $(GENDIR)\prntdlgg.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
sashwin.obj: $(GENDIR)\sashwin.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
scrolwin.obj: $(GENDIR)\scrolwin.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
splitter.obj: $(GENDIR)\splitter.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
statusbr.obj: $(GENDIR)\statusbr.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
tabg.obj: $(GENDIR)\tabg.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
textdlgg.obj: $(GENDIR)\textdlgg.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
tipdlg.obj: $(GENDIR)\tipdlg.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
crbuffri.obj: $(XPMDIR)\crbuffri.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $<
crbuffrp.obj: $(XPMDIR)\crbuffrp.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $<
crdatfri.obj: $(XPMDIR)\crdatfri.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $<
crdatfrp.obj: $(XPMDIR)\crdatfrp.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $<
create.obj: $(XPMDIR)\create.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $<
crifrbuf.obj: $(XPMDIR)\crifrbuf.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $<
crifrdat.obj: $(XPMDIR)\crifrdat.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $<
crpfrbuf.obj: $(XPMDIR)\crpfrbuf.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $<
crpfrdat.obj: $(XPMDIR)\crpfrdat.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $<
# TODO: what to do about this clash of filename????
#data.obj: $(XPMDIR)\data.c
# *$(CC) $(CPPFLAGS) $(IFLAGS) $<
hashtab.obj: $(XPMDIR)\hashtab.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $<
misc.obj: $(XPMDIR)\misc.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $<
parse.obj: $(XPMDIR)\parse.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $<
rdftodat.obj: $(XPMDIR)\rdftodat.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $<
rdftoi.obj: $(XPMDIR)\rdftoi.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $<
rdftop.obj: $(XPMDIR)\rdftop.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $<
rgb.obj: $(XPMDIR)\rgb.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $<
scan.obj: $(XPMDIR)\scan.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $<
simx.obj: $(XPMDIR)\simx.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $<
wrffrdat.obj: $(XPMDIR)\wrffrdat.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $<
wrffri.obj: $(XPMDIR)\wrffri.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $<
wrffrp.obj: $(XPMDIR)\wrffrp.c
*$(CC) $(CPPFLAGS) $(IFLAGS) $<
OBJ1 = adler32$(O) compress$(O) crc32$(O) gzio$(O) uncompr$(O) deflate$(O) \
trees$(O)
OBJ2 = zutil$(O) inflate$(O) infblock$(O) inftrees$(O) infcodes$(O) \
infutil$(O) inffast$(O)
adler32.obj: adler32.c zutil.h zlib.h zconf.h
$(CC) -c $(CFLAGS) $*.c
compress.obj: compress.c zlib.h zconf.h
$(CC) -c $(CFLAGS) $*.c
crc32.obj: crc32.c zutil.h zlib.h zconf.h
$(CC) -c $(CFLAGS) $*.c
deflate.obj: deflate.c deflate.h zutil.h zlib.h zconf.h
$(CC) -c $(CFLAGS) $*.c
gzio.obj: gzio.c zutil.h zlib.h zconf.h
$(CC) -c $(CFLAGS) $*.c
infblock.obj: infblock.c zutil.h zlib.h zconf.h infblock.h inftrees.h\
infcodes.h infutil.h
$(CC) -c $(CFLAGS) $*.c
infcodes.obj: infcodes.c zutil.h zlib.h zconf.h inftrees.h infutil.h\
infcodes.h inffast.h
$(CC) -c $(CFLAGS) $*.c
inflate.obj: inflate.c zutil.h zlib.h zconf.h infblock.h
$(CC) -c $(CFLAGS) $*.c
inftrees.obj: inftrees.c zutil.h zlib.h zconf.h inftrees.h
$(CC) -c $(CFLAGS) $*.c
infutil.obj: infutil.c zutil.h zlib.h zconf.h inftrees.h infutil.h
$(CC) -c $(CFLAGS) $*.c
inffast.obj: inffast.c zutil.h zlib.h zconf.h inftrees.h infutil.h inffast.h
$(CC) -c $(CFLAGS) $*.c
trees.obj: trees.c deflate.h zutil.h zlib.h zconf.h
$(CC) -c $(CFLAGS) $*.c
uncompr.obj: uncompr.c zlib.h zconf.h
$(CC) -c $(CFLAGS) $*.c
zutil.obj: zutil.c zutil.h zlib.h zconf.h
$(CC) -c $(CFLAGS) $*.c
xpm: .SYMBOLIC
cd $(WXDIR)\src\xpm
wmake -f makefile.wat all
cd $(WXDIR)\src\msw
clean_xpm: .SYMBOLIC
cd $(WXDIR)\src\xpm
wmake -f makefile.wat clean
cd $(WXDIR)\src\msw
png: .SYMBOLIC
cd $(WXDIR)\src\png
wmake -f makefile.wat all
cd $(WXDIR)\src\msw
clean_png: .SYMBOLIC
cd $(WXDIR)\src\png
wmake -f makefile.wat clean
cd $(WXDIR)\src\msw
zlib: .SYMBOLIC
cd $(WXDIR)\src\zlib
wmake -f makefile.wat all
cd $(WXDIR)\src\msw
clean_zlib: .SYMBOLIC
cd $(WXDIR)\src\zlib
wmake -f makefile.wat clean
cd $(WXDIR)\src\msw

View File

@@ -1,114 +0,0 @@
*.pyc
*.pyd
*.pyo
*.zip
.cvsignore
.emacs.desktop
__init__.py
__init__.py
__init__.pyc
__init__.pyc
__init__.pyo
__init__.pyo
cmndlgs.py
cmndlgs.py
cmndlgs.pyc
cmndlgs.pyc
cmndlgs.pyo
cmndlgs.pyo
controls.py
controls.py
controls.pyc
controls.pyc
controls.pyo
controls.pyo
controls2.py
controls2.py
controls2.pyc
controls2.pyc
controls2.pyo
controls2.pyo
docs
events.py
events.py
events.pyc
events.pyc
events.pyo
events.pyo
frames.py
frames.py
frames.pyc
frames.pyc
frames.pyo
frames.pyo
gdi.py
gdi.py
gdi.pyc
gdi.pyc
gdi.pyo
gdi.pyo
glcanvas.py
glcanvas.pyc
glcanvasc.ilk
glcanvasc.pyd
image.py
image.pyc
mdi.py
mdi.py
mdi.pyc
mdi.pyc
mdi.pyo
mdi.pyo
misc.py
misc.py
misc.pyc
misc.pyc
misc.pyo
misc.pyo
printfw.py
stattool.py
stattool.py
stattool.pyc
stattool.pyc
stattool.pyo
stattool.pyo
utils.py
utils.py
utils.pyc
utils.pyc
utils.pyo
utilsc.ilk
utilsc.pyd
windows.py
windows.py
windows.pyc
windows.pyc
windows.pyo
windows.pyo
windows2.py
windows2.py
windows2.pyc
windows2.pyc
windows2.pyo
windows2.pyo
windows3.py
windows3.pyc
windows3.pyo
wx.py
wx.py
wx.pyc
wx.pyc
wx.pyo
wxc.ilk
wxc.pdb
wxc.pyd
wxp.py
wxp.pyc
wxp.pyo
wxpc.ilk
wxpc.pdb
wxpc.pyd
*.py
*.pyc
*.pyo
*.pyd

View File

@@ -1,318 +0,0 @@
wxPython README
---------------
Welcome to the wonderful world of wxPython!
Once you have installed the wxPython extension module, you can try it
out by going to the [install dir]\wxPython\demo directory and typing:
python demo.py
There are also some other sample files there for you to play with and
learn from.
If you selected to install the documentation then point your browser
to [install dir]\wxPython\docs\index.htm and you will then be looking
at the docs for wxWindows. For the most part you can use the C++ docs
as most classes and methods are used identically. Where there are
differences they are documented with a "wxPython Note."
On Win32 systems the binary self-installer creates a program group on
the Start Menu that contains a link to running the demo and a link to
the help file. To help you save disk space I'm now using Microsoft's
HTML Help format. If your system doesn't know what to do with the help
file, you can install the HTML Help Viewer as part of IE 4+, NT
Service Pack 4+, or the HTML Workshop at
http://msdn.microsoft.com/workshop/author/htmlhelp/download.asp.
Getting Help
------------
Since wxPython is a blending of multiple technologies, help comes from
multiple sources. See the http://alldunn.com/wxPython for details on
various sources of help, but probably the best source is the
wxPython-users mail list. You can view the archive or subscribe by
going to
http://starship.python.net/mailman/listinfo/wxpython-users
Or you can send mail directly to the list using this address:
wxpython-users@starship.python.net
----------------------------------------------------------------------
What's new in 2.1b1
--------------------
Fixed wxComboBox.SetSelection so that it actually sets the selected
item. (Actually just removed it from wxPython and let it default to
wxChoice.SetSelection which was already doing the right thing.)
Added the Printing Framework.
Switched back to using the wxWindows DLL for the pre-built Win32
version. The problem was needing to reinitialize static class info
data after loading each extension module.
Lots of little tweaks and additions to reflect changes to various
wxWindows classes.
Fixed a bug with attaching objects to tree items. Actually was a
symptom of a larger problem with not obtaining the interpreter lock
when doing any Py_DECREFs.
wxSizer and friends. Sizers are layout tools that manage a colection
of windows and sizers. Different types of sizers apply different
types of layout algorithms. You saw it here first! These classes are
not even in the wxWindows C++ library yet!
What's new in 2.0b9
-------------------
Bug fix for ListCtrl in test4.py (Was a missing file... DSM!)
Bug fix for occassional GPF on Win32 systems upon termination of a
wxPython application.
Added wxListBox.GetSelections returning selections as a Tuple.
Added a wxTreeItemData that is able to hold any Python object and be
associated with items in a wxTreeCtrl. Added test pytree.py to show
this feature off.
Added wxSafeYield function.
OpenGL Canvas can be optionally compiled in to wxPython.
Awesome new Demo Framework for showing off wxPython and for learning
how it all works.
The pre-built Win32 version is no longer distributing the wxWindows
DLL. It is statically linked with the wxWindows library instead.
Added a couple missing items from the docs.
Added wxImage, wxImageHandler, wxPNGHandler, wxJPEGHandler,
wxGIFHandler and wxBMPHandler.
Added new methods to wxTextCtrl.
Fixed some problems with how SWIG was wrapping some wxTreeCtrl
methods.
What's new in 2.0b8
-------------------
Support for using Python threads in wxPython apps.
Several missing methods from various classes.
Various bug fixes.
What's new in 2.0b7
-------------------
Added DLG_PNT and DLG_SZE convienience methods to wxWindow class.
Added missing constructor and other methods for wxMenuItem.
What's new in 2.0b6
-------------------
Just a quickie update to fix the self-installer to be compatible with
Python 1.5.2b2's Registry settings.
What's new in 2.0b5
-------------------
Well obviously the numbering scheme has changed. I did this to
reflect the fact that this truly is the second major revision of
wxPython, (well the third actually if you count the one I did for
wxWindows 1.68 and then threw away...) and also that it is associated
with the 2.0 version of wxWindows.
I have finally started documenting wxPython. There are several pages
in the wxWindows documentation tree specifically about wxPython, and I
have added notes within the class references about where and how wxPython
diverges from wxWindows.
Added wxWindow_FromHWND(hWnd) for wxMSW to construct a wxWindow from a
window handle. If you can get the window handle into the python code,
it should just work... More news on this later.
Added wxImageList, wxToolTip.
Re-enabled wxConfig.DeleteAll() since it is reportedly fixed for the
wxRegConfig class.
As usual, some bug fixes, tweaks, etc.
What's new in 0.5.3
-------------------
Added wxSashWindow, wxSashEvent, wxLayoutAlgorithm, etc.
Various cleanup, tweaks, minor additions, etc. to maintain
compatibility with the current wxWindows.
What's new in 0.5.0
-------------------
Changed the import semantics from "from wxPython import *" to "from
wxPython.wx import *" This is for people who are worried about
namespace pollution, they can use "from wxPython import wx" and then
prefix all the wxPython identifiers with "wx."
Added wxTaskbarIcon for wxMSW.
Made the events work for wxGrid.
Added wxConfig.
Added wxMiniFrame for wxGTK.
Changed many of the args and return values that were pointers to gdi
objects to references to reflect changes in the wxWindows API.
Other assorted fixes and additions.
What's new in 0.4.2
-------------------
wxPython on wxGTK works!!! Both dynamic and static on Linux and
static on Solaris have been tested. Many thanks go to Harm
<H.v.d.Heijden@phys.tue.nl> for his astute detective work on tracking
down a nasty DECREF bug. Okay so I have to confess that it was just a
DSM (Dumb Stupid Mistake) on my part but it was nasty none the less
because the behavior was so different on different platforms.
The dynamicly loaded module on Solaris is still segfaulting, so it
must have been a different issue all along...
What's New in 0.4
-----------------
1. Worked on wxGTK compatibility. It is partially working. On a
Solaris/Sparc box wxPython is working but only when it is statically
linked with the Python interpreter. When built as a dyamically loaded
extension module, things start acting weirdly and it soon seg-faults.
And on Linux both the statically linked and the dynamically linked
version segfault shortly after starting up.
2. Added Toolbar, StatusBar and SplitterWindow classes.
3. Varioius bug fixes, enhancements, etc.
----------------------------------------------------------------------
Build Instructions
------------------
I used SWIG (http://www.swig.org) to create the source code for the
extension module. This enabled me to only have to deal with a small
amount of code and only have to bother with the exceptional issues.
SWIG takes care of the rest and generates all the repetative code for
me. You don't need SWIG to build the extension module as all the
generated C++ code is included under the src directory.
I added a few minor features to SWIG to control some of the code
generation. If you want to playaround with this the patches are in
wxPython/SWIG.patches and they should be applied to the 1.1p5 version
of SWIG. These new patches are documented at
http://starship.skyport.net/crew/robind/#swig, and they should also
end up in the 1.2 version of SWIG.
wxPython is organized as a Python package. This means that the
directory containing the results of the build process should be a
subdirectory of a directory on the PYTHONPATH. (And preferably should
be named wxPython.) You can control where the build process will dump
wxPython by setting the TARGETDIR makefile variable. The default is
$(WXWIN)/utils/wxPython, where this README.txt is located. If you
leave it here then you should add $(WXWIN)/utils to your PYTHONPATH.
However, you may prefer to use something that is already on your
PYTHONPATH, such as the site-packages directory on Unix systems.
Win32
-----
1. Build wxWindows with wxUSE_RESOURCE_LOADING_IN_MSW set to 1 in
include/wx/msw/setup.h so icons can be loaded dynamically. While
there, make sure wxUSE_OWNER_DRAWN is also set to 1.
2. Change into the $(WXWIN)/utils/wxPython/src directory.
3. Edit makefile.vc and specify where your python installation is at.
You may also want to fiddle with the TARGETDIR variable as described
above.
4. Run nmake -f makefile.vc
5. If it builds successfully, congratulations! Move on to the next
step. If not then you can try mailing me for help. Also, I will
always have a pre-built win32 version of this extension module at
http://alldunn.com/wxPython/.
6. Change to the $(WXWIN)/utils/wxPython/demo directory.
7. Try executing the demo program. For example:
python demo.py
To run it without requiring a console, you can use the pythonw.exe
version of Python either from the command line or from a shortcut.
Unix
----
0. I configure wxWindows like this, YMMV:
./configure --with-gtk --without-shared --with-threads --without-unicode --with-libjpeg
1. Change into the $(WXWIN)/utils/wxPython/src directory.
2. Edit Setup.in and ensure that the flags, directories, and toolkit
options are correct. See the above commentary about TARGETDIR. There
are a few sample Setup.in.[platform] files provided.
3. Run this command to generate a makefile:
make -f Makefile.pre.in boot
4. Run these commands to build and then install the wxPython extension
module:
make
make install
5. Change to the $(WXWIN)/utils/wxPython/demo directory.
6. Try executing the demo program. For example:
python demo.py
----------------
Robin Dunn
robin@alldunn.com

View File

@@ -1,97 +0,0 @@
*** swig.h.old Wed Feb 04 14:59:40 1998
--- swig.h Fri Aug 28 14:46:32 1998
***************
*** 178,185 ****
--- 178,211 ----
char *firstkey();
char *nextkey();
};
+ // -------------------------------------------------------------------
+ // Simple Vector class
+ // User is responsible for deleting contents before deleteing Vector
+ // -------------------------------------------------------------------
+
+ class Vector {
+ public:
+ Vector(size_t allocSize=8);
+ ~Vector();
+
+ size_t size() { return m_size; }
+ size_t count() { return m_count; }
+ size_t append(void* object);
+ size_t extend(size_t newSize);
+
+ void*& operator[] (size_t idx);
+
+ static void* s_nullPtr;
+
+ private:
+ size_t m_size;
+ size_t m_count;
+ void** m_data;
+ };
+
+
/************************************************************************
* class DataType
*
* Defines the basic datatypes supported by the translator.
***************
*** 684,691 ****
--- 710,761 ----
extern char *name_get(char *vname, int suppress=0);
extern char *name_set(char *vname, int suppress=0);
extern char *name_construct(char *classname, int suppress=0);
extern char *name_destroy(char *classname, int suppress=0);
+
+ // ----------------------------------------------------------------------
+ // class CPP_class
+ //
+ // Class for managing class members (internally)
+ // ----------------------------------------------------------------------
+
+ class CPP_member;
+
+ class CPP_class {
+ public:
+ char *classname; // Real class name
+ char *classrename; // New name of class (if applicable)
+ char *classtype; // class type (struct, union, class)
+ int strip; // Strip off class declarator
+ int wextern; // Value of extern wrapper variable for this class
+ int have_constructor; // Status bit indicating if we've seen a constructor
+ int have_destructor; // Status bit indicating if a destructor has been seen
+ int is_abstract; // Status bit indicating if this is an abstract class
+ int generate_default; // Generate default constructors
+ int objective_c; // Set if this is an objective C class
+ int error; // Set if this class can't be generated
+ int line; // Line number
+ char **baseclass; // Base classes (if any)
+ Hash *local; // Hash table for local types
+ Hash *scope; // Local scope hash table
+ DocEntry *de; // Documentation entry of class
+ CPP_member *members; // Linked list of members
+ CPP_class *next; // Next class
+ static CPP_class *classlist; // List of all classes stored
+
+ Vector addPragmas;
+
+ CPP_class(char *name, char *ctype);
+ void add_member(CPP_member *m);
+ CPP_member *search_member(char *name);
+ void inherit_decls(int mode);
+ void emit_decls();
+ static CPP_class *search(char *name);
+ void create_default();
+ static void create_all();
+ };
+
+ extern CPP_class *current_class;
/***********************************************************************
* -- Revision History
* $Log$
* Revision 1.1 1998/10/03 05:56:02 RD
* *** empty log message ***
*

View File

@@ -1,136 +0,0 @@
*** python.cxx.old Fri Jan 02 22:17:40 1998
--- python.cxx Fri Aug 28 14:49:18 1998
***************
*** 1679,1684 ****
--- 1679,1701 ----
}
}
}
+ } else if (strcmp(cmd, "addtomethod") == 0) {
+ // parse value, expected to be in the form "methodName:line"
+ char* txtptr = strchr(value, ':');
+ if (txtptr) {
+ // add name and line to a list in current_class
+ *txtptr = 0;
+ txtptr++;
+ AddPragmaData* apData = new AddPragmaData(value, txtptr);
+ current_class->addPragmas.append(apData);
+
+ } else {
+ fprintf(stderr,"%s : Line %d. Malformed addtomethod pragma. Should be \"methodName:text\"\n",
+ input_file, line_number);
+ }
+ } else if (strcmp(cmd, "addtoclass") == 0) {
+ AddPragmaData* apData = new AddPragmaData("__class__", value);
+ current_class->addPragmas.append(apData);
} else {
fprintf(stderr,"%s : Line %d. Unrecognized pragma.\n", input_file, line_number);
}
*** python.h.old Thu Jul 24 22:18:50 1997
--- python.h Fri Aug 28 14:46:08 1998
***************
*** 185,191 ****
--- 185,203 ----
void cpp_class_decl(char *, char *,char *);
void pragma(char *, char *, char *);
void add_typedef(DataType *t, char *name);
+
+ void emitAddPragmas(String& output, char* name, char* spacing);
};
#define PYSHADOW_MEMBER 0x2
+
+ struct AddPragmaData {
+ String m_method;
+ String m_text;
+
+ AddPragmaData(char* method, char* text)
+ : m_method(method),
+ m_text(text)
+ {}
+ };
*** pycpp.cxx.old Fri Jan 02 20:23:22 1998
--- pycpp.cxx Fri Aug 28 16:01:46 1998
***************
*** 276,281 ****
--- 276,282 ----
}
}
// if ((t->type != T_VOID) || (t->is_pointer))
+ emitAddPragmas(*pyclass, realname, tab8);
*pyclass << tab8 << "return val\n";
// Change the usage string to reflect our shadow class
***************
*** 394,399 ****
--- 395,401 ----
}
*construct << ")\n";
*construct << tab8 << "self.thisown = 1\n";
+ emitAddPragmas(*construct, "__init__", tab8);
have_constructor = 1;
} else {
***************
*** 494,502 ****
*pyclass << tab4 << "def __del__(self):\n"
<< tab8 << "if self.thisown == 1 :\n"
<< tab8 << tab4 << module << "." << name_destroy(realname) << "(self.this)\n";
!
have_destructor = 1;
-
if (doc_entry) {
doc_entry->usage = "";
doc_entry->usage << "del this";
--- 496,503 ----
*pyclass << tab4 << "def __del__(self):\n"
<< tab8 << "if self.thisown == 1 :\n"
<< tab8 << tab4 << module << "." << name_destroy(realname) << "(self.this)\n";
! emitAddPragmas(*pyclass, "__del__", tab8);
have_destructor = 1;
if (doc_entry) {
doc_entry->usage = "";
doc_entry->usage << "del this";
***************
*** 552,557 ****
--- 553,560 ----
<< tab8 << "return \"<C " << class_name <<" instance>\"\n";
classes << repr;
+ emitAddPragmas(classes, "__class__", tab4);
+
}
// Now build the real class with a normal constructor
***************
*** 747,752 ****
--- 750,777 ----
}
}
+ // --------------------------------------------------------------------------------
+ // PYTHON::emitAddPragmas(String& output, char* name, char* spacing);
+ //
+ // Search the current_class->addPragmas vector for any text belonging to name.
+ // Append the text properly spcaed to the output string.
+ //
+ // --------------------------------------------------------------------------------
+
+ void PYTHON::emitAddPragmas(String& output, char* name, char* spacing)
+ {
+ AddPragmaData* apData;
+ size_t count;
+ int i;
+
+ count = current_class->addPragmas.count();
+ for (i=0; i<count; i++) {
+ apData = (AddPragmaData*)current_class->addPragmas[i];
+ if (strcmp(apData->m_method, name) == 0) {
+ output << spacing << apData->m_text << "\n";
+ }
+ }
+ }
/*********************************************************************************
*

View File

@@ -1,499 +0,0 @@
*** cplus.cxx.old Mon Feb 02 14:55:42 1998
--- cplus.cxx Fri Aug 28 12:02:50 1998
***************
*** 581,612 ****
// Class for managing class members (internally)
// ----------------------------------------------------------------------
static char *inherit_base_class = 0;
- class CPP_class {
- public:
- char *classname; // Real class name
- char *classrename; // New name of class (if applicable)
- char *classtype; // class type (struct, union, class)
- int strip; // Strip off class declarator
- int wextern; // Value of extern wrapper variable for this class
- int have_constructor; // Status bit indicating if we've seen a constructor
- int have_destructor; // Status bit indicating if a destructor has been seen
- int is_abstract; // Status bit indicating if this is an abstract class
- int generate_default; // Generate default constructors
- int objective_c; // Set if this is an objective C class
- int error; // Set if this class can't be generated
- int line; // Line number
- char **baseclass; // Base classes (if any)
- Hash *local; // Hash table for local types
- Hash *scope; // Local scope hash table
- DocEntry *de; // Documentation entry of class
- CPP_member *members; // Linked list of members
- CPP_class *next; // Next class
- static CPP_class *classlist; // List of all classes stored
! CPP_class(char *name, char *ctype) {
CPP_class *c;
classname = copy_string(name);
classtype = copy_string(ctype);
classrename = 0;
--- 581,593 ----
// Class for managing class members (internally)
// ----------------------------------------------------------------------
static char *inherit_base_class = 0;
+ CPP_class *CPP_class::classlist = 0;
+ CPP_class *current_class;
! CPP_class::CPP_class(char *name, char *ctype) {
CPP_class *c;
classname = copy_string(name);
classtype = copy_string(ctype);
classrename = 0;
***************
*** 642,650 ****
// ------------------------------------------------------------------------------
// Add a new C++ member to this class
// ------------------------------------------------------------------------------
! void add_member(CPP_member *m) {
CPP_member *cm;
// Set base class where this was defined
if (inherit_base_class)
--- 623,631 ----
// ------------------------------------------------------------------------------
// Add a new C++ member to this class
// ------------------------------------------------------------------------------
! void CPP_class::add_member(CPP_member *m) {
CPP_member *cm;
// Set base class where this was defined
if (inherit_base_class)
***************
*** 664,672 ****
// ------------------------------------------------------------------------------
// Search for a member with the given name. Returns the member on success, 0 on failure
// ------------------------------------------------------------------------------
! CPP_member *search_member(char *name) {
CPP_member *m;
char *c;
m = members;
while (m) {
--- 645,653 ----
// ------------------------------------------------------------------------------
// Search for a member with the given name. Returns the member on success, 0 on failure
// ------------------------------------------------------------------------------
! CPP_member *CPP_class::search_member(char *name) {
CPP_member *m;
char *c;
m = members;
while (m) {
***************
*** 680,688 ****
// ------------------------------------------------------------------------------
// Inherit. Put all the declarations associated with this class into the current
// ------------------------------------------------------------------------------
! void inherit_decls(int mode) {
CPP_member *m;
m = members;
while (m) {
inherit_base_class = m->base;
--- 661,669 ----
// ------------------------------------------------------------------------------
// Inherit. Put all the declarations associated with this class into the current
// ------------------------------------------------------------------------------
! void CPP_class::inherit_decls(int mode) {
CPP_member *m;
m = members;
while (m) {
inherit_base_class = m->base;
***************
*** 696,704 ****
// ------------------------------------------------------------------------------
// Emit all of the declarations associated with this class
// ------------------------------------------------------------------------------
! void emit_decls() {
CPP_member *m = members;
int last_scope = name_scope(0);
abstract = is_abstract;
while (m) {
--- 677,685 ----
// ------------------------------------------------------------------------------
// Emit all of the declarations associated with this class
// ------------------------------------------------------------------------------
! void CPP_class::emit_decls() {
CPP_member *m = members;
int last_scope = name_scope(0);
abstract = is_abstract;
while (m) {
***************
*** 713,721 ****
// ------------------------------------------------------------------------------
// Search for a given class in the list
// ------------------------------------------------------------------------------
! static CPP_class *search(char *name) {
CPP_class *c;
c = classlist;
if (!name) return 0;
while (c) {
--- 694,702 ----
// ------------------------------------------------------------------------------
// Search for a given class in the list
// ------------------------------------------------------------------------------
! CPP_class *CPP_class::search(char *name) {
CPP_class *c;
c = classlist;
if (!name) return 0;
while (c) {
***************
*** 729,737 ****
// Add default constructors and destructors
//
// ------------------------------------------------------------------------------
! void create_default() {
if (!generate_default) return;
// Try to generate a constructor if not available.
--- 710,718 ----
// Add default constructors and destructors
//
// ------------------------------------------------------------------------------
! void CPP_class::create_default() {
if (!generate_default) return;
// Try to generate a constructor if not available.
***************
*** 751,764 ****
// ------------------------------------------------------------------------------
// Dump *all* of the classes saved out to the various
// language modules (this does what cplus_close_class used to do)
// ------------------------------------------------------------------------------
- static void create_all();
- };
-
- CPP_class *CPP_class::classlist = 0;
- static CPP_class *current_class;
-
void CPP_class::create_all() {
CPP_class *c;
c = classlist;
while (c) {
--- 732,739 ----
*** vector.cxx.old Fri Aug 28 14:23:16 1998
--- vector.cxx Fri Aug 28 14:46:52 1998
***************
*** 0 ****
--- 1,182 ----
+
+ /*******************************************************************************
+ * Simplified Wrapper and Interface Generator (SWIG)
+ *
+ * Dave Beazley
+ *
+ * Department of Computer Science Theoretical Division (T-11)
+ * University of Utah Los Alamos National Laboratory
+ * Salt Lake City, Utah 84112 Los Alamos, New Mexico 87545
+ * beazley@cs.utah.edu beazley@lanl.gov
+ *
+ * Copyright (c) 1995-1997
+ * The University of Utah and the Regents of the University of California
+ * All Rights Reserved
+ *
+ * Permission is hereby granted, without written agreement and without
+ * license or royalty fees, to use, copy, modify, and distribute this
+ * software and its documentation for any purpose, provided that
+ * (1) The above copyright notice and the following two paragraphs
+ * appear in all copies of the source code and (2) redistributions
+ * including binaries reproduces these notices in the supporting
+ * documentation. Substantial modifications to this software may be
+ * copyrighted by their authors and need not follow the licensing terms
+ * described here, provided that the new terms are clearly indicated in
+ * all files where they apply.
+ *
+ * IN NO EVENT SHALL THE AUTHOR, THE UNIVERSITY OF CALIFORNIA, THE
+ * UNIVERSITY OF UTAH OR DISTRIBUTORS OF THIS SOFTWARE BE LIABLE TO ANY
+ * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
+ * DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION,
+ * EVEN IF THE AUTHORS OR ANY OF THE ABOVE PARTIES HAVE BEEN ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * THE AUTHOR, THE UNIVERSITY OF CALIFORNIA, AND THE UNIVERSITY OF UTAH
+ * SPECIFICALLY DISCLAIM ANY WARRANTIES,INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND
+ * THE AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE MAINTENANCE,
+ * SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+ *
+ *******************************************************************************/
+
+ #include "internal.h"
+
+ /*******************************************************************************
+ * $Header$
+ *
+ * File : vector.cxx
+ *
+ * A very simple Vector class. Allways assumes that memory allocations are
+ * successful. Should be made more robust...
+ *
+ *******************************************************************************/
+
+ void* Vector::s_nullPtr = NULL;
+
+ // -----------------------------------------------------------------------------
+ // Vector::Vector(size_t allocSize = 8)
+ //
+ // Constructor. Creates a new Vector.
+ //
+ // Inputs : initial allocation size (optional)
+ //
+ // Output : New Vector object.
+ //
+ // Side Effects : None
+ // -----------------------------------------------------------------------------
+
+ Vector::Vector(size_t allocSize)
+ : m_size(allocSize),
+ m_count(0),
+ m_data(0)
+ {
+ if (m_size) {
+ m_data = new void*[m_size];
+ int i;
+ for (i=0; i<m_size;i++)
+ m_data[i] = 0;
+ }
+ }
+
+
+ // -----------------------------------------------------------------------------
+ // Vector::~Vector
+ //
+ // Destructor. Only cleans up the vector, not its contents!
+ //
+ // -----------------------------------------------------------------------------
+
+
+ Vector::~Vector() {
+ if (m_data) {
+ delete [] m_data;
+ }
+
+ m_data = 0;
+ m_size = m_count = 0;
+ }
+
+
+
+ // -----------------------------------------------------------------------------
+ // size_t Vector::extend(size_t newSize)
+ //
+ // Extends the vector to at least newSize length. Won't do anything if newSize
+ // is smaller than the current size of the vector.
+ //
+ // Returns the new allocated size.
+ //
+ // -----------------------------------------------------------------------------
+
+ #define GRANULARITY 16
+
+ size_t Vector::extend(size_t newSize) {
+
+ if (newSize > m_size) {
+ newSize = newSize + (GRANULARITY - (newSize % GRANULARITY));
+
+ void** temp = new void*[newSize];
+ memcpy(temp, m_data, m_size*sizeof(void*));
+
+ int i;
+ for (i=m_size; i<newSize; i++)
+ temp[i] = 0;
+
+ delete [] m_data;
+ m_data = temp;
+ m_size = newSize;
+ }
+ return m_size;
+ }
+
+
+ // -----------------------------------------------------------------------------
+ // Vector::append(void* object)
+ //
+ // Appends the object pointer to vector at index m_count. Increments m_count.
+ // Returns the new count.
+ // -----------------------------------------------------------------------------
+
+ size_t Vector::append(void* object) {
+ if (m_count >= m_size) {
+ extend(m_count + 1);
+ }
+
+ m_data[m_count] = object;
+ m_count += 1;
+
+ return m_count;
+ }
+
+
+ // -----------------------------------------------------------------------------
+ // Vector::operator[] (size_t idx)
+ //
+ // Returns a reference to the void pointer at idx. If idx is beyond the range
+ // of the vector, returns a reference to s_nullPtr.
+ //
+ // -----------------------------------------------------------------------------
+
+ void*& Vector::operator[] (size_t idx) {
+ if (idx >= m_size) {
+ s_nullPtr = 0;
+ return s_nullPtr;
+ }
+
+ return m_data[idx];
+ }
+
+
+ /***********************************************************************
+ *
+ * -- Revision History
+ * $Log$
+ * Revision 1.2 1999/04/30 03:28:35 RD
+ * wxPython 2.0b9, first phase (win32)
+ * Added gobs of stuff, see wxPython/README.txt for details
+ *
+ * Revision 1.1.4.1 1999/03/27 23:28:59 RD
+ *
+ * wxPython 2.0b8
+ * Python thread support
+ * various minor additions
+ * various minor fixes
+ *
+ * Revision 1.1 1998/10/03 05:56:03 RD
+ * *** empty log message ***
+ *
+ *
+ ***********************************************************************/
+
+
+
+
+
+
*** makefile.msc.old Mon Jun 23 15:15:32 1997
--- makefile.msc Fri Aug 28 10:21:58 1998
***************
*** 33,50 ****
# Normally, you shouldn't have to change anything below this point #
########################################################################
LIBOBJS = main.obj scanner.obj symbol.obj include.obj types.obj parms.obj emit.obj newdoc.obj ascii.obj \
! html.obj latex.obj cplus.obj lang.obj hash.obj sstring.obj wrapfunc.obj getopt.obj comment.obj typemap.obj naming.obj
LIBSRCS = main.cxx scanner.cxx symbol.cxx include.cxx types.cxx parms.cxx emit.cxx \
! newdoc.cxx ascii.cxx html.cxx latex.cxx cplus.cxx lang.cxx hash.cxx \
sstring.cxx wrapfunc.cxx getopt.cxx comment.cxx typemap.cxx naming.cxx
LIBHEADERS = internal.h ../Include/swig.h latex.h ascii.h html.h nodoc.h
LIBNAME = ..\libswig.lib
INCLUDE = -I../Include -I$(STD_INC)
! CFLAGS = -Zi -nologo -DSWIG_LIB="\"$(SWIG_LIB)\"" -DSWIG_CC="\"$(CC)\"" -DMSDOS -DSTDC_HEADERS=1 -DHAVE_LIBDL=1 $(SWIG_OPTS)
LD_FLAGS = -VERBOSE
#
--- 33,50 ----
# Normally, you shouldn't have to change anything below this point #
########################################################################
LIBOBJS = main.obj scanner.obj symbol.obj include.obj types.obj parms.obj emit.obj newdoc.obj ascii.obj \
! html.obj latex.obj cplus.obj lang.obj hash.obj vector.obj sstring.obj wrapfunc.obj getopt.obj comment.obj typemap.obj naming.obj
LIBSRCS = main.cxx scanner.cxx symbol.cxx include.cxx types.cxx parms.cxx emit.cxx \
! newdoc.cxx ascii.cxx html.cxx latex.cxx cplus.cxx lang.cxx hash.cxx vector.cxx \
sstring.cxx wrapfunc.cxx getopt.cxx comment.cxx typemap.cxx naming.cxx
LIBHEADERS = internal.h ../Include/swig.h latex.h ascii.h html.h nodoc.h
LIBNAME = ..\libswig.lib
INCLUDE = -I../Include -I$(STD_INC)
! CFLAGS = -Zi -nologo -DSWIG_LIB="\"$(SWIG_LIB)\"" -DSWIG_CC="\"$(CC)\"" -DMSDOS -DSTDC_HEADERS=1 -DHAVE_LIBDL=1 $(SWIG_OPTS) $(OTHERFLAGS)
LD_FLAGS = -VERBOSE
#
*** makefile.bc.old Sun Jan 04 12:49:24 1998
--- makefile.bc Fri Aug 28 14:42:58 1998
***************
*** 34,47 ****
########################################################################
LIBOBJS = main.obj scanner.obj symbol.obj include.obj types.obj parms.obj \
emit.obj newdoc.obj ascii.obj \
! html.obj latex.obj cplus.obj lang.obj hash.obj sstring.obj \
wrapfunc.obj getopt.obj comment.obj typemap.obj naming.obj
LIBSRCS = main.cxx scanner.cxx symbol.cxx include.cxx types.cxx parms.cxx \
emit.cxx newdoc.cxx ascii.cxx html.cxx latex.cxx cplus.cxx lang.cxx hash.cxx \
! sstring.cxx wrapfunc.cxx getopt.cxx comment.cxx typemap.cxx naming.cxx
LIBHEADERS = internal.h ../Include/swig.h latex.h ascii.h html.h nodoc.h
LIBNAME = ..\libswig.lib
INCLUDE = -I../Include -I$(STD_INC)
--- 34,47 ----
########################################################################
LIBOBJS = main.obj scanner.obj symbol.obj include.obj types.obj parms.obj \
emit.obj newdoc.obj ascii.obj \
! html.obj latex.obj cplus.obj lang.obj hash.obj vector.obj sstring.obj \
wrapfunc.obj getopt.obj comment.obj typemap.obj naming.obj
LIBSRCS = main.cxx scanner.cxx symbol.cxx include.cxx types.cxx parms.cxx \
emit.cxx newdoc.cxx ascii.cxx html.cxx latex.cxx cplus.cxx lang.cxx hash.cxx \
! vector.cxx sstring.cxx wrapfunc.cxx getopt.cxx comment.cxx typemap.cxx naming.cxx
LIBHEADERS = internal.h ../Include/swig.h latex.h ascii.h html.h nodoc.h
LIBNAME = ..\libswig.lib
INCLUDE = -I../Include -I$(STD_INC)
*** Makefile.in.old Wed May 28 22:56:56 1997
--- Makefile.in Fri Aug 28 14:43:36 1998
***************
*** 51,63 ****
# Normally, you shouldn't have to change anything below this point #
########################################################################
LIBOBJS = main.o scanner.o symbol.o include.o types.o parms.o emit.o newdoc.o ascii.o \
! html.o latex.o cplus.o lang.o hash.o sstring.o wrapfunc.o getopt.o comment.o \
typemap.o naming.o
LIBSRCS = main.cxx scanner.cxx symbol.cxx include.cxx types.cxx parms.cxx emit.cxx \
! newdoc.cxx ascii.cxx html.cxx latex.cxx cplus.cxx lang.cxx hash.cxx \
sstring.cxx wrapfunc.cxx getopt.cxx comment.cxx typemap.cxx naming.cxx
LIBHEADERS = internal.h ../Include/swig.h latex.h ascii.h html.h nodoc.h
LIB = ../libswig.a
--- 51,63 ----
# Normally, you shouldn't have to change anything below this point #
########################################################################
LIBOBJS = main.o scanner.o symbol.o include.o types.o parms.o emit.o newdoc.o ascii.o \
! html.o latex.o cplus.o lang.o hash.o vector.o sstring.o wrapfunc.o getopt.o comment.o \
typemap.o naming.o
LIBSRCS = main.cxx scanner.cxx symbol.cxx include.cxx types.cxx parms.cxx emit.cxx \
! newdoc.cxx ascii.cxx html.cxx latex.cxx cplus.cxx lang.cxx hash.cxx vector.cxx \
sstring.cxx wrapfunc.cxx getopt.cxx comment.cxx typemap.cxx naming.cxx
LIBHEADERS = internal.h ../Include/swig.h latex.h ascii.h html.h nodoc.h
LIB = ../libswig.a

View File

@@ -1,5 +0,0 @@
*.pyc
.emacs.desktop
hangman_dict.txt
setup.bat
tmphtml.txt

View File

@@ -1,25 +0,0 @@
#!/bin/env python
#----------------------------------------------------------------------------
# Name: ColorPanel.py
# Purpose: Testing lots of stuff, controls, window types, etc.
#
# Author: Robin Dunn & Gary Dumer
#
# Created:
# RCS-ID: $Id$
# Copyright: (c) 1998 by Total Control Software
# Licence: wxWindows license
#----------------------------------------------------------------------------
from wxPython.wx import *
#---------------------------------------------------------------------------
class ColoredPanel(wxWindow):
def __init__(self, parent, color):
wxWindow.__init__(self, parent, -1,
wxDefaultPosition, wxDefaultSize, wxRAISED_BORDER)
self.SetBackgroundColour(color)
#---------------------------------------------------------------------------

View File

@@ -1,123 +0,0 @@
#!/bin/env python
#----------------------------------------------------------------------------
# Name: DialogUnits.py
# Purpose: A minimal wxPython program that is a bit smarter than test1.
#
# Author: Robin Dunn
#
# Created: A long time ago, in a galaxy far, far away...
# RCS-ID: $Id$
# Copyright: (c) 1998 by Total Control Software
# Licence: wxWindows license
#----------------------------------------------------------------------------
## import all of the wxPython GUI package
from wxPython.wx import *
#---------------------------------------------------------------------------
## Create a new frame class, derived from the wxPython Frame.
class MyFrame(wxFrame):
def __init__(self, parent, id, title):
# First, call the base class' __init__ method to create the frame
wxFrame.__init__(self, parent, id, title,
wxPoint(100, 100), wxSize(160, 100))
# Associate some events with methods of this class
EVT_SIZE(self, self.OnSize)
EVT_MOVE(self, self.OnMove)
# Add a panel and some controls to display the size and position
panel = wxPanel(self, -1)
wxStaticText(panel, -1, "Size:",
wxDLG_PNT(panel, wxPoint(4, 4)), wxDefaultSize)
wxStaticText(panel, -1, "Pos:",
wxDLG_PNT(panel, wxPoint(4, 16)), wxDefaultSize)
self.sizeCtrl = wxTextCtrl(panel, -1, "",
wxDLG_PNT(panel, wxPoint(24, 4)),
wxDLG_SZE(panel, wxSize(36, -1)),
wxTE_READONLY)
self.posCtrl = wxTextCtrl(panel, -1, "",
wxDLG_PNT(panel, wxPoint(24, 16)),
wxDLG_SZE(panel, wxSize(36, -1)),
wxTE_READONLY)
# This method is called automatically when the CLOSE event is
# sent to this window
def OnCloseWindow(self, event):
# tell the window to kill itself
self.Destroy()
# This method is called by the System when the window is resized,
# because of the association above.
def OnSize(self, event):
size = event.GetSize()
self.sizeCtrl.SetValue("%s, %s" % (size.width, size.height))
# tell the event system to continue looking for an event handler,
# so the default handler will get called.
event.Skip()
# This method is called by the System when the window is moved,
# because of the association above.
def OnMove(self, event):
pos = event.GetPosition()
self.posCtrl.SetValue("%s, %s" % (pos.x, pos.y))
#---------------------------------------------------------------------------
# if running standalone
if __name__ == "__main__":
# Every wxWindows application must have a class derived from wxApp
class MyApp(wxApp):
# wxWindows calls this method to initialize the application
def OnInit(self):
# Create an instance of our customized Frame class
frame = MyFrame(NULL, -1, "This is a test")
frame.Show(true)
# Tell wxWindows that this is our main window
self.SetTopWindow(frame)
# Return a success flag
return true
app = MyApp(0) # Create an instance of the application class
app.MainLoop() # Tell it to start processing events
#---------------------------------------------------------------------------
# if running as part of the Demo Framework...
def runTest(frame, nb, log):
win = MyFrame(frame, -1, "This is a test")
frame.otherWin = win
win.Show(true)
overview = """\
A simple example that shows how to use Dialog Units.
"""
#----------------------------------------------------------------------------
#

View File

@@ -1,62 +0,0 @@
from wxPython.wx import *
from wxPython.lib.layoutf import Layoutf
#---------------------------------------------------------------------------
class TestLayoutf(wxPanel):
def __init__(self, parent):
wxPanel.__init__(self, parent, -1)
self.SetAutoLayout(true)
EVT_BUTTON(self, 100, self.OnButton)
self.panelA = wxWindow(self, -1, wxPyDefaultPosition, wxPyDefaultSize, wxSIMPLE_BORDER)
self.panelA.SetBackgroundColour(wxBLUE)
self.panelA.SetConstraints(Layoutf('t=t10#1;l=l10#1;b=b10#1;r%r50#1',(self,)))
self.panelB = wxWindow(self, -1, wxPyDefaultPosition, wxPyDefaultSize, wxSIMPLE_BORDER)
self.panelB.SetBackgroundColour(wxRED)
self.panelB.SetConstraints(Layoutf('t=t10#1;r=r10#1;b%b30#1;l>10#2', (self,self.panelA)))
self.panelC = wxWindow(self, -1, wxPyDefaultPosition, wxPyDefaultSize, wxSIMPLE_BORDER)
self.panelC.SetBackgroundColour(wxWHITE)
self.panelC.SetConstraints(Layoutf('t_10#3;r=r10#1;b=b10#1;l>10#2', (self,self.panelA,self.panelB)))
b = wxButton(self.panelA, 100, ' Panel A ')
b.SetConstraints(Layoutf('X=X#1;Y=Y#1;h*;w%w50#1', (self.panelA,)))
b = wxButton(self.panelB, 100, ' Panel B ')
b.SetConstraints(Layoutf('t=t2#1;r=r4#1;h*;w*', (self.panelB,)))
self.panelD = wxWindow(self.panelC, -1, wxPyDefaultPosition, wxPyDefaultSize, wxSIMPLE_BORDER)
self.panelD.SetBackgroundColour(wxGREEN)
self.panelD.SetConstraints(Layoutf('b%h50#1;r%w50#1;h=h#2;w=w#2', (self.panelC, b)))
b = wxButton(self.panelC, 100, ' Panel C ')
b.SetConstraints(Layoutf('t_#1;l>#1;h*;w*', (self.panelD,)))
wxStaticText(self.panelD, -1, "Panel D", wxPoint(4, 4)).SetBackgroundColour(wxGREEN)
def OnButton(self, event):
wxBell()
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestLayoutf(nb)
return win
#---------------------------------------------------------------------------
overview = Layoutf.__doc__

View File

@@ -1,336 +0,0 @@
#!/bin/env python
#----------------------------------------------------------------------------
# Name: Main.py
# Purpose: Testing lots of stuff, controls, window types, etc.
#
# Author: Robin Dunn & Gary Dumer
#
# Created:
# RCS-ID: $Id$
# Copyright: (c) 1999 by Total Control Software
# Licence: wxWindows license
#----------------------------------------------------------------------------
import sys, os
from wxPython.wx import *
#---------------------------------------------------------------------------
_treeList = [
('Managed Windows', ['wxFrame', 'wxDialog', 'wxMiniFrame']),
('Miscellaneous Windows', ['wxGrid', 'wxSashWindow',
'wxScrolledWindow', 'wxSplitterWindow',
'wxStatusBar', 'wxToolBar', 'wxNotebook']),
('Common Dialogs', ['wxColourDialog', 'wxDirDialog', 'wxFileDialog',
'wxSingleChoiceDialog', 'wxTextEntryDialog',
'wxFontDialog', 'wxPageSetupDialog', 'wxPrintDialog',
'wxMessageDialog', 'wxProgressDialog']),
('Controls', ['wxButton', 'wxCheckBox', 'wxCheckListBox', 'wxChoice',
'wxComboBox', 'wxGauge', 'wxListBox', 'wxListCtrl', 'wxTextCtrl',
'wxTreeCtrl', 'wxSpinButton', 'wxStaticText', 'wxStaticBitmap',
'wxRadioBox', 'wxSlider']),
('Window Layout', ['wxLayoutConstraints', 'Sizers']),
('Miscellaneous', ['wxTimer', 'wxGLCanvas', 'DialogUnits', 'wxImage',
'PrintFramework']),
('wxPython Library', ['Sizers', 'Layoutf', 'wxScrolledMessageDialog',
'wxMultipleChoiceDialog', 'wxPlotCanvas']),
('Cool Contribs', ['pyTree', 'hangman', 'SlashDot']),
]
#---------------------------------------------------------------------------
class wxPythonDemo(wxFrame):
def __init__(self, parent, id, title):
wxFrame.__init__(self, parent, -1, title,
wxDefaultPosition, wxSize(700, 550))
if wxPlatform == '__WXMSW__':
self.icon = wxIcon('bitmaps/mondrian.ico', wxBITMAP_TYPE_ICO)
self.SetIcon(self.icon)
self.otherWin = None
EVT_IDLE(self, self.OnIdle)
self.Centre(wxBOTH)
self.CreateStatusBar(1, wxST_SIZEGRIP)
splitter = wxSplitterWindow(self, -1)
splitter2 = wxSplitterWindow(splitter, -1)
# Prevent TreeCtrl from displaying all items after destruction
self.dying = false
# Make a File menu
self.mainmenu = wxMenuBar()
menu = wxMenu()
mID = NewId()
menu.Append(mID, 'E&xit', 'Get the heck outta here!')
EVT_MENU(self, mID, self.OnFileExit)
self.mainmenu.Append(menu, '&File')
# Make a Help menu
mID = NewId()
menu = wxMenu()
menu.Append(mID, '&About', 'wxPython RULES!!!')
EVT_MENU(self, mID, self.OnHelpAbout)
self.mainmenu.Append(menu, '&Help')
self.SetMenuBar(self.mainmenu)
selectedDemo = None
selectedDemoName = "Nada"
if len(sys.argv) == 2:
selectedDemoName = sys.argv[1]
# Create a TreeCtrl
tID = NewId()
self.tree = wxTreeCtrl(splitter, tID)
root = self.tree.AddRoot("Overview")
for item in _treeList:
child = self.tree.AppendItem(root, item[0])
for childItem in item[1]:
theDemo = self.tree.AppendItem(child, childItem)
if childItem == selectedDemoName:
selectedDemo = theDemo
self.tree.Expand(root)
EVT_TREE_ITEM_EXPANDED (self.tree, tID, self.OnItemExpanded)
EVT_TREE_ITEM_COLLAPSED (self.tree, tID, self.OnItemCollapsed)
EVT_TREE_SEL_CHANGED (self.tree, tID, self.OnSelChanged)
# Create a Notebook
self.nb = wxNotebook(splitter2, -1)
# Set up a TextCtrl on the Overview Notebook page
self.ovr = wxTextCtrl(self.nb, -1, '', wxDefaultPosition, wxDefaultSize,
wxTE_MULTILINE|wxTE_READONLY)
self.nb.AddPage(self.ovr, "Overview")
# Set up a TextCtrl on the Demo Code Notebook page
self.txt = wxTextCtrl(self.nb, -1, '', wxDefaultPosition, wxDefaultSize,
wxTE_MULTILINE|wxTE_READONLY|wxHSCROLL)
self.txt.SetFont(wxFont(9, wxMODERN, wxNORMAL, wxNORMAL, false))
self.nb.AddPage(self.txt, "Demo Code")
# Set up a log on the View Log Notebook page
self.log = wxTextCtrl(splitter2, -1, '', wxDefaultPosition, wxDefaultSize,
wxTE_MULTILINE|wxTE_READONLY|wxHSCROLL)
(w, self.charHeight) = self.log.GetTextExtent('X')
#self.WriteText('wxPython Demo Log:\n')
# add the windows to the splitter and split it.
splitter.SplitVertically(self.tree, splitter2)
splitter.SetSashPosition(180, true)
splitter.SetMinimumPaneSize(20)
splitter2.SplitHorizontally(self.nb, self.log)
splitter2.SetSashPosition(360, true)
splitter2.SetMinimumPaneSize(20)
# make our log window be stdout
#sys.stdout = self
# select initial items
self.nb.SetSelection(0)
self.tree.SelectItem(root)
if selectedDemo:
self.tree.SelectItem(selectedDemo)
self.tree.EnsureVisible(selectedDemo)
#---------------------------------------------
def WriteText(self, text):
self.log.WriteText(text)
w, h = self.log.GetClientSizeTuple()
numLines = h/self.charHeight
x, y = self.log.PositionToXY(self.log.GetLastPosition())
self.log.ShowPosition(self.log.XYToPosition(x, y-numLines+1))
self.log.SetInsertionPointEnd()
def write(self, txt):
self.WriteText(txt)
#---------------------------------------------
def OnItemExpanded(self, event):
item = event.GetItem()
self.log.WriteText("OnItemExpanded: %s\n" % self.tree.GetItemText(item))
#---------------------------------------------
def OnItemCollapsed(self, event):
item = event.GetItem()
self.log.WriteText("OnItemCollapsed: %s\n" % self.tree.GetItemText(item))
#---------------------------------------------
def OnSelChanged(self, event):
if self.dying:
return
if self.nb.GetPageCount() == 3:
if self.nb.GetSelection() == 2:
self.nb.SetSelection(0)
self.nb.DeletePage(2)
item = event.GetItem()
itemText = self.tree.GetItemText(item)
if itemText == 'Overview':
self.GetDemoFile('Main.py')
self.SetOverview('Overview', overview)
#self.nb.ResizeChildren();
self.nb.Refresh();
#wxYield()
else:
if os.path.exists(itemText + '.py'):
self.GetDemoFile(itemText + '.py')
module = __import__(itemText, globals())
self.SetOverview(itemText, module.overview)
# in case runTest is modal, make sure things look right...
self.nb.Refresh();
wxYield()
window = module.runTest(self, self.nb, self)
if window:
self.nb.AddPage(window, 'Demo')
self.nb.SetSelection(2)
self.nb.ResizeChildren();
else:
self.ovr.Clear()
self.txt.Clear()
#---------------------------------------------
# Get the Demo files
def GetDemoFile(self, filename):
self.txt.Clear()
#if not self.txt.LoadFile(filename):
# self.txt.WriteText("Cannot open %s file." % filename)
try:
self.txt.SetValue(open(filename).read())
except IOException:
self.txt.WriteText("Cannot open %s file." % filename)
self.txt.SetInsertionPoint(0)
self.txt.ShowPosition(0)
#---------------------------------------------
def SetOverview(self, name, text):
self.ovr.Clear()
self.ovr.WriteText(text)
self.nb.SetPageText(0, name)
self.ovr.SetInsertionPoint(0)
self.ovr.ShowPosition(0)
#---------------------------------------------
# Menu methods
def OnFileExit(self, event):
self.Close()
def OnHelpAbout(self, event):
about = wxMessageDialog(self,
"wxPython is a Python extension module that\n"
"encapsulates the wxWindows GUI classes.\n\n"
"This demo shows off some of the capabilities\n"
"of wxPython.\n\n"
" Developed by Robin Dunn",
"About wxPython", wxOK)
about.ShowModal()
about.Destroy()
#---------------------------------------------
def OnCloseWindow(self, event):
self.dying = true
self.Destroy()
#---------------------------------------------
def OnIdle(self, event):
if self.otherWin:
self.otherWin.Raise()
self.otherWin = None
#---------------------------------------------------------------------------
#---------------------------------------------------------------------------
class MyApp(wxApp):
def OnInit(self):
wxImage_AddHandler(wxJPEGHandler())
wxImage_AddHandler(wxPNGHandler())
wxImage_AddHandler(wxGIFHandler())
frame = wxPythonDemo(NULL, -1, "wxPython: (A Demonstration)")
frame.Show(true)
self.SetTopWindow(frame)
return true
#---------------------------------------------------------------------------
def main():
app = MyApp(0)
app.MainLoop()
#---------------------------------------------------------------------------
overview = """\
Python
------------
Python is an interpreted, interactive, object-oriented programming language often compared to Tcl, Perl, Scheme, or Java.
Python combines remarkable power with very clear syntax. It has modules, classes, exceptions, very high level dynamic data types, and dynamic typing. There are interfaces to many system calls and libraries, and new built-in modules are easily written in C or C++. Python is also usable as an extension language for applications that need a programmable interface.
wxWindows
--------------------
wxWindows is a free C++ framework designed to make cross-platform programming child's play. Well, almost. wxWindows 2 supports Windows 3.1/95/98/NT, Unix with GTK/Motif/Lesstif, with a Mac version underway. Other ports are under consideration.
wxWindows is a set of libraries that allows C++ applications to compile and run on several different types of computers, with minimal source code changes. There is one library per supported GUI (such as Motif, or Windows). As well as providing a common API (Application Programming Interface) for GUI functionality, it provides functionality for accessing some commonly-used operating system facilities, such as copying or deleting files. wxWindows is a 'framework' in the sense that it provides a lot of built-in functionality, which the application can use or replace as required, thus saving a great deal of coding effort. Basic data structures such as strings, linked lists and hash tables are also supported.
wxPython
----------------
wxPython is a Python extension module that encapsulates the wxWindows GUI classes. Currently it is only available for the Win32 and GTK ports of wxWindows, but as soon as the other ports are brought up to the same level as Win32 and GTK, it should be fairly trivial to enable wxPython to be used with the new GUI.
The wxPython extension module attempts to mirror the class heiarchy of wxWindows as closely as possible. This means that there is a wxFrame class in wxPython that looks, smells, tastes and acts almost the same as the wxFrame class in the C++ version. Unfortunately, because of differences in the languages, wxPython doesn't match wxWindows exactly, but the differences should be easy to absorb because they are natural to Python. For example, some methods that return multiple values via argument pointers in C++ will return a tuple of values in Python.
There is still much to be done for wxPython, many classes still need to be mirrored. Also, wxWindows is still somewhat of a moving target so it is a bit of an effort just keeping wxPython up to date. On the other hand, there are enough of the core classes completed that useful applications can be written.
wxPython is close enough to the C++ version that the majority of the wxPython documentation is actually just notes attached to the C++ documents that describe the places where wxPython is different. There is also a series of sample programs included, and a series of documentation pages that assist the programmer in getting started with wxPython.
"""
#----------------------------------------------------------------------------
#----------------------------------------------------------------------------
if __name__ == '__main__':
main()
#----------------------------------------------------------------------------

View File

@@ -1,179 +0,0 @@
from wxPython.wx import *
from wxPython.lib.sizers import *
from wxScrolledWindow import MyCanvas
#----------------------------------------------------------------------
class MyPrintout(wxPrintout):
def __init__(self, canvas, log):
wxPrintout.__init__(self)
self.canvas = canvas
self.log = log
def OnBeginDocument(self, start, end):
self.log.WriteText("wxPrintout.OnBeginDocument\n")
return self.base_OnBeginDocument(start, end)
def OnEndDocument(self):
self.log.WriteText("wxPrintout.OnEndDocument\n")
self.base_OnEndDocument()
def OnBeginPrinting(self):
self.log.WriteText("wxPrintout.OnBeginPrinting\n")
self.base_OnBeginPrinting()
def OnEndPrinting(self):
self.log.WriteText("wxPrintout.OnEndPrinting\n")
self.base_OnEndPrinting()
def OnPreparePrinting(self):
self.log.WriteText("wxPrintout.OnPreparePrinting\n")
self.base_OnPreparePrinting()
def HasPage(self, page):
self.log.WriteText("wxPrintout.HasPage\n")
if page == 1:
return true
else:
return false
def GetPageInfo(self):
self.log.WriteText("wxPrintout.GetPageInfo\n")
return (1, 1, 1, 1)
def OnPrintPage(self, page):
self.log.WriteText("wxPrintout.OnPrintPage\n")
dc = self.GetDC()
#-------------------------------------------
# One possible method of setting scaling factors...
maxX = self.canvas.getWidth()
maxY = self.canvas.getHeight()
# Let's have at least 50 device units margin
marginX = 50
marginY = 50
# Add the margin to the graphic size
maxX = maxX + (2 * marginX)
maxY = maxY + (2 * marginY)
# Get the size of the DC in pixels
(w, h) = dc.GetSizeTuple()
# Calculate a suitable scaling factor
scaleX = float(w) / maxX
scaleY = float(h) / maxY
# Use x or y scaling factor, whichever fits on the DC
actualScale = min(scaleX, scaleY)
# Calculate the position on the DC for centring the graphic
posX = (w - (self.canvas.getWidth() * actualScale)) / 2.0
posY = (h - (self.canvas.getHeight() * actualScale)) / 2.0
# Set the scale and origin
dc.SetUserScale(actualScale, actualScale)
dc.SetDeviceOrigin(int(posX), int(posY))
#-------------------------------------------
self.canvas.DoDrawing(dc)
return true
#----------------------------------------------------------------------
class TestPrintPanel(wxPanel):
def __init__(self, parent, frame, log):
wxPanel.__init__(self, parent, -1)
self.log = log
self.frame = frame
self.printData = wxPrintData()
self.printData.SetPaperId(wxPAPER_LETTER)
self.box = box.wxBoxSizer(wxVERTICAL)
self.canvas = MyCanvas(self)
self.box.Add(self.canvas, 1)
subbox = wxBoxSizer(wxHORIZONTAL)
btn = wxButton(self, 1201, "Print Setup")
EVT_BUTTON(self, 1201, self.OnPrintSetup)
subbox.Add(btn, 1)
btn = wxButton(self, 1202, "Print Preview")
EVT_BUTTON(self, 1202, self.OnPrintPreview)
subbox.Add(btn, 1)
btn = wxButton(self, 1203, "Print")
EVT_BUTTON(self, 1203, self.OnDoPrint)
subbox.Add(btn, 1)
self.box.Add(subbox)
def OnSize(self, event):
size = self.GetClientSize()
self.box.Layout(size)
def OnPrintSetup(self, event):
printerDialog = wxPrintDialog(self)
printerDialog.GetPrintDialogData().SetPrintData(self.printData)
printerDialog.GetPrintDialogData().SetSetupDialog(true)
printerDialog.ShowModal();
self.printData = printerDialog.GetPrintDialogData().GetPrintData()
printerDialog.Destroy()
def OnPrintPreview(self, event):
self.log.WriteText("OnPrintPreview\n")
printout = MyPrintout(self.canvas, self.log)
printout2 = MyPrintout(self.canvas, self.log)
self.preview = wxPrintPreview(printout, printout2, self.printData)
if not self.preview.Ok():
self.log.WriteText("Houston, we have a problem...\n")
return
frame = wxPreviewFrame(self.preview, self.frame, "This is a print preview")
frame.Initialize()
frame.SetPosition(self.frame.GetPosition())
frame.SetSize(self.frame.GetSize())
frame.Show(true)
def OnDoPrint(self, event):
pdd = wxPrintDialogData()
pdd.SetPrintData(self.printData)
printer = wxPrinter(pdd)
printout = MyPrintout(self.canvas, self.log)
if not printer.Print(self.frame, printout):
wxMessageBox("There was a problem printing.\nPerhaps your current printer is not set correctly?", "Printing", wxOK)
else:
self.printData = printer.GetPrintDialogData().GetPrintData()
printout.Destroy()
#----------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestPrintPanel(nb, frame, log)
return win
#----------------------------------------------------------------------
overview = """\
"""

View File

@@ -1,7 +0,0 @@
To run the main demo in this directory, execute demo.py. In other
words, one of the following commands should do it:
demo.py
python demo.py
pythonw demo.py

View File

@@ -1,370 +0,0 @@
#----------------------------------------------------------------------
# sizer test code
#----------------------------------------------------------------------
from wxPython.wx import *
from wxPython.lib.sizers import *
#----------------------------------------------------------------------
def makeSimpleBox1(win):
box = wxBoxSizer(wxHORIZONTAL)
box.Add(wxButton(win, 1010, "one"), 0)
box.Add(wxButton(win, 1010, "two"), 0)
box.Add(wxButton(win, 1010, "three"), 0)
box.Add(wxButton(win, 1010, "four"), 0)
return box
#----------------------------------------------------------------------
def makeSimpleBox2(win):
box = wxBoxSizer(wxVERTICAL)
box.Add(wxButton(win, 1010, "one"), 0)
box.Add(wxButton(win, 1010, "two"), 0)
box.Add(wxButton(win, 1010, "three"), 0)
box.Add(wxButton(win, 1010, "four"), 0)
return box
#----------------------------------------------------------------------
def makeSimpleBox3(win):
box = wxBoxSizer(wxHORIZONTAL)
box.Add(wxButton(win, 1010, "one"), 0)
box.Add(wxButton(win, 1010, "two"), 0)
box.Add(wxButton(win, 1010, "three"), 0)
box.Add(wxButton(win, 1010, "four"), 0)
box.Add(wxButton(win, 1010, "five"), 1)
return box
#----------------------------------------------------------------------
def makeSimpleBox4(win):
box = wxBoxSizer(wxHORIZONTAL)
box.Add(wxButton(win, 1010, "one"), 0)
box.Add(wxButton(win, 1010, "two"), 0)
box.Add(wxButton(win, 1010, "three"), 1)
box.Add(wxButton(win, 1010, "four"), 1)
box.Add(wxButton(win, 1010, "five"), 1)
return box
#----------------------------------------------------------------------
def makeSimpleBox5(win):
box = wxBoxSizer(wxHORIZONTAL)
box.Add(wxButton(win, 1010, "one"), 0)
box.Add(wxButton(win, 1010, "two"), 0)
box.Add(wxButton(win, 1010, "three"), 3)
box.Add(wxButton(win, 1010, "four"), 1)
box.Add(wxButton(win, 1010, "five"), 1)
return box
#----------------------------------------------------------------------
def makeSimpleBox6(win):
box = wxBoxSizer(wxHORIZONTAL, wxSize(250, 50))
box.Add(wxButton(win, 1010, "10"), 10)
box.Add(wxButton(win, 1010, "20"), 20)
box.Add(wxButton(win, 1010, "30"), 30)
box.Add(wxButton(win, 1010, "15"), 15)
box.Add(wxButton(win, 1010, "5"), 5)
return box
#----------------------------------------------------------------------
def makeSimpleBorder1(win):
bdr = wxBorderSizer(wxALL)
btn = wxButton(win, 1010, "border")
btn.SetSize(wxSize(80, 80))
bdr.Add(btn, 15)
return bdr
#----------------------------------------------------------------------
def makeSimpleBorder2(win):
bdr = wxBorderSizer(wxEAST | wxWEST)
btn = wxButton(win, 1010, "border")
btn.SetSize(wxSize(80, 80))
bdr.Add(btn, 15)
return bdr
#----------------------------------------------------------------------
def makeSimpleBorder3(win):
bdr = wxBorderSizer(wxNORTH | wxWEST)
btn = wxButton(win, 1010, "border")
btn.SetSize(wxSize(80, 80))
bdr.Add(btn, 15)
return bdr
#----------------------------------------------------------------------
#----------------------------------------------------------------------
def makeBoxInBox(win):
box = wxBoxSizer(wxVERTICAL)
btn = wxButton(win, 1010, "one")
box.Add(btn)
box2 = wxBoxSizer(wxHORIZONTAL)
btn = wxButton(win, 1010, "two")
box2.Add(btn)
btn = wxButton(win, 1010, "three")
box2.Add(btn)
btn = wxButton(win, 1010, "four")
box2.Add(btn)
btn = wxButton(win, 1010, "five")
box2.Add(btn)
box3 = wxBoxSizer(wxVERTICAL)
box3.AddMany([ (wxButton(win, 1010, "six"), 1),
(wxButton(win, 1010, "seven"), 2),
(wxButton(win, 1010, "eight"), 1),
(wxButton(win, 1010, "nine"), 1),
])
box2.Add(box3, 1)
box.Add(box2, 1)
btn = wxButton(win, 1010, "ten")
box.Add(btn)
return box
#----------------------------------------------------------------------
def makeBoxInBorder(win):
bdr = wxBorderSizer(wxALL)
box = makeSimpleBox3(win)
bdr.Add(box, 15)
return bdr
#----------------------------------------------------------------------
def makeBorderInBox(win):
insideBox = wxBoxSizer(wxHORIZONTAL)
box2 = wxBoxSizer(wxHORIZONTAL)
box2.AddMany([ (wxButton(win, 1010, "one"), 0),
(wxButton(win, 1010, "two"), 0),
(wxButton(win, 1010, "three"), 0),
(wxButton(win, 1010, "four"), 0),
(wxButton(win, 1010, "five"), 0),
])
insideBox.Add(box2, 0)
bdr = wxBorderSizer(wxALL)
bdr.Add(wxButton(win, 1010, "border"), 20)
insideBox.Add(bdr, 1)
box3 = wxBoxSizer(wxVERTICAL)
box3.AddMany([ (wxButton(win, 1010, "six"), 1),
(wxButton(win, 1010, "seven"), 2),
(wxButton(win, 1010, "eight"), 1),
(wxButton(win, 1010, "nine"), 1),
])
insideBox.Add(box3, 1)
outsideBox = wxBoxSizer(wxVERTICAL)
outsideBox.Add(wxButton(win, 1010, "top"))
outsideBox.Add(insideBox, 1)
outsideBox.Add(wxButton(win, 1010, "bottom"))
return outsideBox
#----------------------------------------------------------------------
theTests = [
("Simple horizontal boxes", makeSimpleBox1,
"This is a HORIZONTAL box sizer with four non-stretchable buttons held "
"within it. Notice that the buttons are added and aligned in the horizontal "
"dimension. Also notice that they are fixed size in the horizontal dimension, "
"but will stretch vertically."
),
("Simple vertical boxes", makeSimpleBox2,
"Exactly the same as the previous sample but using a VERTICAL box sizer "
"instead of a HORIZONTAL one."
),
("Add a stretchable", makeSimpleBox3,
"We've added one more button with the strechable flag turned on. Notice "
"how it grows to fill the extra space in the otherwise fixed dimension."
),
("More than one stretchable", makeSimpleBox4,
"Here there are several items that are stretchable, they all divide up the "
"extra space evenly."
),
("Weighting factor", makeSimpleBox5,
"This one shows more than one strechable, but one of them has a weighting "
"factor so it gets more of the free space."
),
# ("Percent Sizer", makeSimpleBox6,
# "You can use the wxBoxSizer like a Percent Sizer. Just make sure that all "
# "the weighting factors add up to 100!"
# ),
("", None, ""),
("Simple border sizer", makeSimpleBorder1,
"The wxBorderSizer leaves empty space around its contents. This one "
"gives a border all the way around."
),
("East and West border", makeSimpleBorder2,
"You can pick and choose which sides have borders."
),
("North and West border", makeSimpleBorder3,
"You can pick and choose which sides have borders."
),
("", None, ""),
("Boxes inside of boxes", makeBoxInBox,
"This one shows nesting of boxes within boxes within boxes, using both "
"orientations. Notice also that button seven has a greater weighting "
"factor than its siblings."
),
("Boxes inside a Border", makeBoxInBorder,
"Sizers of different types can be nested withing each other as well. "
"Here is a box sizer with several buttons embedded within a border sizer."
),
("Border in a Box", makeBorderInBox,
"Another nesting example. This one has Boxes and a Border inside another Box."
),
]
#----------------------------------------------------------------------
class TestFrame(wxFrame):
def __init__(self, parent, title, sizerFunc):
wxFrame.__init__(self, parent, -1, title)
EVT_BUTTON(self, 1010, self.OnButton)
self.sizer = sizerFunc(self)
self.CreateStatusBar()
self.SetStatusText("Resize this frame to see how the sizers respond...")
self.sizer.FitWindow(self)
def OnSize(self, event):
size = self.GetClientSize()
self.sizer.Layout(size)
def OnCloseWindow(self, event):
self.MakeModal(false)
self.Destroy()
def OnButton(self, event):
self.Close(true)
#----------------------------------------------------------------------
class TestSelectionPanel(wxPanel):
def __init__(self, parent, frame):
wxPanel.__init__(self, parent, -1)
self.frame = frame
self.list = wxListBox(self, 401,
wxDLG_PNT(self, 10, 10), wxDLG_SZE(self, 100, 60),
[])
EVT_LISTBOX(self, 401, self.OnSelect)
EVT_LISTBOX_DCLICK(self, 401, self.OnDClick)
wxButton(self, 402, "Try it!", wxDLG_PNT(self, 120, 10)).SetDefault()
EVT_BUTTON(self, 402, self.OnDClick)
self.text = wxTextCtrl(self, -1, "",
wxDLG_PNT(self, 10, 80),
wxDLG_SZE(self, 200, 60),
wxTE_MULTILINE | wxTE_READONLY)
for item in theTests:
self.list.Append(item[0])
def OnSelect(self, event):
pos = self.list.GetSelection()
self.text.SetValue(theTests[pos][2])
def OnDClick(self, event):
pos = self.list.GetSelection()
title = theTests[pos][0]
func = theTests[pos][1]
if func:
win = TestFrame(self, title, func)
win.CentreOnParent(wxBOTH)
win.Show(true)
win.MakeModal(true)
#----------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestSelectionPanel(nb, frame)
return win
overview = wxSizer.__doc__ + '\n' + '-' * 80 + '\n' + \
wxBoxSizer.__doc__ + '\n' + '-' * 80 + '\n' + \
wxBorderSizer.__doc__
#----------------------------------------------------------------------
if __name__ == '__main__':
class MainFrame(wxFrame):
def __init__(self):
wxFrame.__init__(self, NULL, -1, "Testing...")
self.CreateStatusBar()
mainmenu = wxMenuBar()
menu = wxMenu()
menu.Append(200, 'E&xit', 'Get the heck outta here!')
mainmenu.Append(menu, "&File")
self.SetMenuBar(mainmenu)
EVT_MENU(self, 200, self.OnExit)
self.panel = TestSelectionPanel(self)
self.SetSize(wxSize(400, 380))
def OnCloseWindow(self, event):
self.Destroy()
def OnExit(self, event):
self.Close(true)
class TestApp(wxApp):
def OnInit(self):
frame = MainFrame()
frame.Show(true)
self.SetTopWindow(frame)
return true
app = TestApp(0)
app.MainLoop()
#----------------------------------------------------------------------

View File

@@ -1,378 +0,0 @@
#!/usr/bin/python
"""This is SlashDot 1.2
It's the obligatory Slashdot.org headlines reader that
any modern widget set/library must have in order to be taken
seriously :-)
Usage is quite simple; wxSlash attempts to download the
'ultramode.txt' file from http://slashdot.org, which
contains the headlines in a computer friendly format. It
then displays said headlines in a wxWindows list control.
You can read articles using either Python's html library
or an external browser. Uncheck the 'browser->internal' menu
item to use the latter option. Use the settings dialog box
to set which external browser is started.
This code is available under the wxWindows license, see
elsewhere. If you modify this code, be aware of the fact
that slashdot.org's maintainer, CmdrTaco, explicitly asks
'ultramode.txt' downloaders not to do this automatically
more than twice per hour. If this feature is abused,
CmdrTaco may remove the ultramode file completely and that
will make a *lot* of people unhappy.
I want to thank Alex Shnitman whose slashes.pl
(Perl/GTK) script gave me the idea for this applet.
Have fun with it,
Harm van der Heijden (H.v.d.Heijden@phys.tue.nl)
"""
from wxPython.wx import *
from httplib import HTTP
from htmllib import HTMLParser
import os
import re
import formatter
class HTMLTextView(wxFrame):
def __init__(self, parent, id, title='HTMLTextView', url=None):
wxFrame.__init__(self, parent, id, title, wxPyDefaultPosition,
wxSize(600,400))
self.mainmenu = wxMenuBar()
menu = wxMenu()
menu.Append(201, '&Open URL...', 'Open URL')
EVT_MENU(self, 201, self.OnFileOpen)
menu.Append(209, 'E&xit', 'Exit viewer')
EVT_MENU(self, 209, self.OnFileExit)
self.mainmenu.Append(menu, '&File')
self.SetMenuBar(self.mainmenu)
self.CreateStatusBar(1)
self.text = wxTextCtrl(self, -1, "", wxPyDefaultPosition,
wxPyDefaultSize, wxTE_MULTILINE | wxTE_READONLY)
if (url):
self.OpenURL(url)
def logprint(self, x):
self.SetStatusText(x)
def OpenURL(self, url):
self.url = url
m = re.match('file:(\S+)\s*', url)
if m:
f = open(m.groups()[0],'r')
else:
m = re.match('http://([^/]+)(/\S*)\s*', url)
if m:
host = m.groups()[0]
path = m.groups()[1]
else:
m = re.match('http://(\S+)\s*', url)
if not m:
# Invalid URL
self.logprint("Invalid or unsupported URL: %s" % (url))
return
host = m.groups()[0]
path = ''
f = RetrieveAsFile(host,path,self.logprint)
if not f:
self.logprint("Could not open %s" % (url))
return
self.logprint("Receiving data...")
data = f.read()
tmp = open('tmphtml.txt','w')
fmt = formatter.AbstractFormatter(formatter.DumbWriter(tmp))
p = HTMLParser(fmt)
self.logprint("Parsing data...")
p.feed(data)
p.close()
tmp.close()
tmp = open('tmphtml.txt', 'r')
self.text.SetValue(tmp.read())
self.SetTitle(url)
self.logprint(url)
def OnFileOpen(self, event):
dlg = wxTextEntryDialog(self, "Enter URL to open:", "")
if dlg.ShowModal() == wxID_OK:
url = dlg.GetValue()
else:
url = None
if url:
self.OpenURL(url)
def OnFileExit(self, event):
self.Close()
def OnCloseWindow(self, event):
self.Destroy()
def ParseSlashdot(f):
art_sep = re.compile('%%\r?\n')
line_sep = re.compile('\r?\n')
data = f.read()
list = art_sep.split(data)
art_list = []
for i in range(1,len(list)-1):
art_list.append(line_sep.split(list[i]))
return art_list
def myprint(x):
print x
def RetrieveAsFile(host, path='', logprint = myprint):
try:
h = HTTP(host)
except:
logprint("Failed to create HTTP connection to %s... is the network available?" % (host))
return None
h.putrequest('GET',path)
h.putheader('Accept','text/html')
h.putheader('Accept','text/plain')
h.endheaders()
errcode, errmsg, headers = h.getreply()
if errcode != 200:
logprint("HTTP error code %d: %s" % (errcode, errmsg))
return None
f = h.getfile()
# f = open('/home/harm/ultramode.txt','r')
return f
class AppStatusBar(wxStatusBar):
def __init__(self, parent):
wxStatusBar.__init__(self,parent, -1)
self.SetFieldsCount(2)
self.SetStatusWidths([-1, 100])
self.but = wxButton(self, 1001, "Refresh")
EVT_BUTTON(self, 1001, parent.OnViewRefresh)
self.OnSize(None)
def logprint(self,x):
self.SetStatusText(x,0)
def OnSize(self, event):
rect = self.GetFieldRect(1)
self.but.SetPosition(wxPoint(rect.x+2, rect.y+2))
self.but.SetSize(wxSize(rect.width-4, rect.height-4))
# This is a simple timer class to start a function after a short delay;
class QuickTimer(wxTimer):
def __init__(self, func, wait=100):
wxTimer.__init__(self)
self.callback = func
self.Start(wait); # wait .1 second (.001 second doesn't work. why?)
def Notify(self):
self.Stop();
apply(self.callback, ());
class AppFrame(wxFrame):
def __init__(self, parent, id, title):
wxFrame.__init__(self, parent, id, title, wxPyDefaultPosition,
wxSize(650, 250))
# if the window manager closes the window:
EVT_CLOSE(self, self.OnCloseWindow);
# Now Create the menu bar and items
self.mainmenu = wxMenuBar()
menu = wxMenu()
menu.Append(209, 'E&xit', 'Enough of this already!')
EVT_MENU(self, 209, self.OnFileExit)
self.mainmenu.Append(menu, '&File')
menu = wxMenu()
menu.Append(210, '&Refresh', 'Refresh headlines')
EVT_MENU(self, 210, self.OnViewRefresh)
menu.Append(211, '&Slashdot Index', 'View Slashdot index')
EVT_MENU(self, 211, self.OnViewIndex)
menu.Append(212, 'Selected &Article', 'View selected article')
EVT_MENU(self, 212, self.OnViewArticle)
self.mainmenu.Append(menu, '&View')
menu = wxMenu()
menu.Append(220, '&Internal', 'Use internal text browser',TRUE)
menu.Check(220, true)
self.UseInternal = 1;
EVT_MENU(self, 220, self.OnBrowserInternal)
menu.Append(222, '&Settings...', 'External browser Settings')
EVT_MENU(self, 222, self.OnBrowserSettings)
self.mainmenu.Append(menu, '&Browser')
menu = wxMenu()
menu.Append(230, '&About', 'Some documentation');
EVT_MENU(self, 230, self.OnAbout)
self.mainmenu.Append(menu, '&Help')
self.SetMenuBar(self.mainmenu)
if wxPlatform == '__WXGTK__':
# I like lynx. Also Netscape 4.5 doesn't react to my cmdline opts
self.BrowserSettings = "xterm -e lynx %s &"
elif wxPlatform == '__WXMSW__':
# netscape 4.x likes to hang out here...
self.BrowserSettings = '\\progra~1\\Netscape\\Communicator\\Program\\netscape.exe %s'
else:
# a wild guess...
self.BrowserSettings = 'netscape %s'
# A status bar to tell people what's happening
self.sb = AppStatusBar(self)
self.SetStatusBar(self.sb)
self.list = wxListCtrl(self, 1100)
self.list.SetSingleStyle(wxLC_REPORT)
self.list.InsertColumn(0, 'Subject')
self.list.InsertColumn(1, 'Date')
self.list.InsertColumn(2, 'Posted by')
self.list.InsertColumn(3, 'Comments')
self.list.SetColumnWidth(0, 300)
self.list.SetColumnWidth(1, 150)
self.list.SetColumnWidth(2, 100)
self.list.SetColumnWidth(3, 100)
EVT_LIST_ITEM_SELECTED(self, 1100, self.OnItemSelected)
EVT_LEFT_DCLICK(self.list, self.OnLeftDClick)
self.logprint("Connecting to slashdot... Please wait.")
# wxYield doesn't yet work here. That's why we use a timer
# to make sure that we see some GUI stuff before the slashdot
# file is transfered.
self.timer = QuickTimer(self.DoRefresh, 1000)
def logprint(self, x):
self.sb.logprint(x)
def OnFileExit(self, event):
self.Destroy()
def DoRefresh(self):
f = RetrieveAsFile('slashdot.org','/ultramode.txt',self.sb.logprint)
art_list = ParseSlashdot(f)
self.list.DeleteAllItems()
self.url = []
self.current = -1
i = 0;
for article in art_list:
self.list.InsertStringItem(i, article[0])
self.list.SetStringItem(i, 1, article[2])
self.list.SetStringItem(i, 2, article[3])
self.list.SetStringItem(i, 3, article[6])
self.url.append(article[1])
i = i + 1
self.logprint("File retrieved OK.")
def OnViewRefresh(self, event):
self.logprint("Connecting to slashdot... Please wait.");
wxYield()
self.DoRefresh()
def DoViewIndex(self):
if self.UseInternal:
self.view = HTMLTextView(self, -1, 'slashdot.org',
'http://slashdot.org')
self.view.Show(true)
else:
self.logprint(self.BrowserSettings % ('http://slashdot.org'))
#os.system(self.BrowserSettings % ('http://slashdot.org'))
wxExecute(self.BrowserSettings % ('http://slashdot.org'))
self.logprint("OK")
def OnViewIndex(self, event):
self.logprint("Starting browser... Please wait.")
wxYield()
self.DoViewIndex()
def DoViewArticle(self):
if self.current<0: return
url = self.url[self.current]
if self.UseInternal:
self.view = HTMLTextView(self, -1, url, url)
self.view.Show(true)
else:
self.logprint(self.BrowserSettings % (url))
os.system(self.BrowserSettings % (url))
self.logprint("OK")
def OnViewArticle(self, event):
self.logprint("Starting browser... Please wait.")
wxYield()
self.DoViewArticle()
def OnBrowserInternal(self, event):
if self.mainmenu.Checked(220):
self.UseInternal = 1
else:
self.UseInternal = 0
def OnBrowserSettings(self, event):
dlg = wxTextEntryDialog(self, "Enter command to view URL.\nUse %s as a placeholder for the URL.", "", self.BrowserSettings);
if dlg.ShowModal() == wxID_OK:
self.BrowserSettings = dlg.GetValue()
def OnAbout(self, event):
dlg = wxMessageDialog(self, __doc__, "wxSlash", wxOK | wxICON_INFORMATION)
dlg.ShowModal()
def OnItemSelected(self, event):
self.current = event.m_itemIndex
self.logprint("URL: %s" % (self.url[self.current]))
def OnLeftDClick(self, event):
(x,y) = event.Position();
# Actually, we should convert x,y to logical coords using
# a dc, but only for a wxScrolledWindow widget.
# Now wxGTK derives wxListCtrl from wxScrolledWindow,
# and wxMSW from wxControl... So that doesn't work.
#dc = wxClientDC(self.list)
##self.list.PrepareDC(dc)
#x = dc.DeviceToLogicalX( event.GetX() )
#y = dc.DeviceToLogicalY( event.GetY() )
id = self.list.HitTest(wxPoint(x,y))
#print "Double click at %d %d" % (x,y), id
# Okay, we got a double click. Let's assume it's the current selection
wxYield()
self.OnViewArticle(event)
def OnCloseWindow(self, event):
self.Destroy()
#---------------------------------------------------------------------------
# if running standalone
if __name__ == '__main__':
class MyApp(wxApp):
def OnInit(self):
frame = AppFrame(NULL, -1, "Slashdot Breaking News")
frame.Show(true)
self.SetTopWindow(frame)
return true
app = MyApp(0)
app.MainLoop()
#---------------------------------------------------------------------------
# if running as part of the Demo Framework...
def runTest(frame, nb, log):
win = AppFrame(NULL, -1, "Slashdot Breaking News")
frame.otherWin = win
win.Show(true)
overview = __doc__
#----------------------------------------------------------------------------

Binary file not shown.

Before

Width:  |  Height:  |  Size: 238 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 766 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 238 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 238 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 238 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 246 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 766 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 238 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 238 B

View File

@@ -1,4 +0,0 @@
#!/bin/env python
import Main
Main.main()

View File

@@ -1,465 +0,0 @@
"""Hangman.py, a simple wxPython game, inspired by the
old bsd game by Ken Arnold.
From the original man page:
In hangman, the computer picks a word from the on-line
word list and you must try to guess it. The computer
keeps track of which letters have been guessed and how
many wrong guesses you have made on the screen in a
graphic fashion.
That says it all, doesn't it?
Have fun with it,
Harm van der Heijden (H.v.d.Heijden@phys.tue.nl)"""
import random,re,string
from wxPython.wx import *
class WordFetcher:
builtin_words = ' albatros banana electrometer eggshell'
def __init__(self, filename, min_length = 5):
self.min_length = min_length
print "Trying to open file %s" % (filename,)
try:
f = open(filename, "r")
except:
print "Couldn't open dictionary file %s, using builtins" % (filename,)
self.words = self.builtin_words
self.filename = None
return
self.words = f.read()
self.filename = filename
print "Got %d bytes." % (len(self.words),)
def SetMinLength(min_length):
self.min_length = min_length
def Get(self):
reg = re.compile('\s+([a-zA-Z]+)\s+')
n = 50 # safety valve; maximum number of tries to find a suitable word
while n:
index = int(random.random()*len(self.words))
m = reg.search(self.words[index:])
if m and len(m.groups()[0]) >= self.min_length: break
n = n - 1
if n: return string.lower(m.groups()[0])
return "error"
def stdprint(x):
print x
class URLWordFetcher(WordFetcher):
def __init__(self, url):
self.OpenURL(url)
WordFetcher.__init__(self, "hangman_dict.txt")
def logprint(self,x):
print x
def RetrieveAsFile(self, host, path=''):
from httplib import HTTP
try:
h = HTTP(host)
except:
self.logprint("Failed to create HTTP connection to %s... is the network available?" % (host))
return None
h.putrequest('GET',path)
h.putheader('Accept','text/html')
h.putheader('Accept','text/plain')
h.endheaders()
errcode, errmsg, headers = h.getreply()
if errcode != 200:
self.logprint("HTTP error code %d: %s" % (errcode, errmsg))
return None
f = h.getfile()
return f
def OpenURL(self,url):
from htmllib import HTMLParser
import formatter
self.url = url
m = re.match('http://([^/]+)(/\S*)\s*', url)
if m:
host = m.groups()[0]
path = m.groups()[1]
else:
m = re.match('http://(\S+)\s*', url)
if not m:
# Invalid URL
self.logprint("Invalid or unsupported URL: %s" % (url))
return
host = m.groups()[0]
path = ''
f = self.RetrieveAsFile(host,path)
if not f:
self.logprint("Could not open %s" % (url))
return
self.logprint("Receiving data...")
data = f.read()
tmp = open('hangman_dict.txt','w')
fmt = formatter.AbstractFormatter(formatter.DumbWriter(tmp))
p = HTMLParser(fmt)
self.logprint("Parsing data...")
p.feed(data)
p.close()
tmp.close()
class HangmanWnd(wxWindow):
def __init__(self, parent, id, pos=wxDefaultPosition, size=wxDefaultSize):
wxWindow.__init__(self, parent, id, pos, size)
self.SetBackgroundColour(wxNamedColour('white'))
if wxPlatform == '__WXGTK__':
self.font = wxFont(12, wxMODERN, wxNORMAL, wxNORMAL)
else:
self.font = wxFont(10, wxMODERN, wxNORMAL, wxNORMAL)
self.SetFocus()
def StartGame(self, word):
self.word = word
self.guess = []
self.tries = 0
self.misses = 0
self.Draw()
def EndGame(self):
self.misses = 7;
self.guess = map(chr, range(ord('a'),ord('z')+1))
self.Draw()
def HandleKey(self, key):
self.message = ""
if self.guess.count(key):
self.message = 'Already guessed %s' % (key,)
return 0
self.guess.append(key)
self.guess.sort()
self.tries = self.tries+1
if not key in self.word:
self.misses = self.misses+1
if self.misses == 7:
self.EndGame()
return 1
has_won = 1
for letter in self.word:
if not self.guess.count(letter):
has_won = 0
break
if has_won:
self.Draw()
return 2
self.Draw()
return 0
def Draw(self, dc = None):
if not dc:
dc = wxClientDC(self)
dc.SetFont(self.font)
dc.Clear()
(x,y) = self.GetSizeTuple()
x1 = x-200; y1 = 20
for letter in self.word:
if self.guess.count(letter):
dc.DrawText(letter, x1, y1)
else:
dc.DrawText('.', x1, y1)
x1 = x1 + 10
x1 = x-200
dc.DrawText("tries %d misses %d" % (self.tries,self.misses),x1,50)
guesses = ""
for letter in self.guess:
guesses = guesses + letter
dc.DrawText("guessed:", x1, 70)
dc.DrawText(guesses[:13], x1+80, 70)
dc.DrawText(guesses[13:], x1+80, 90)
dc.SetUserScale(x/1000.0, y/1000.0)
self.DrawVictim(dc)
def DrawVictim(self, dc):
dc.SetPen(wxPen(wxNamedColour('black'), 20))
dc.DrawLines([(10, 980), (10,900), (700,900), (700,940), (720,940),
(720,980), (900,980)])
dc.DrawLines([(100,900), (100, 100), (300,100)])
dc.DrawLine(100,200,200,100)
if ( self.misses == 0 ): return
dc.SetPen(wxPen(wxNamedColour('blue'), 10))
dc.DrawLine(300,100,300,200)
if ( self.misses == 1 ): return
dc.DrawEllipse(250,200,100,100)
if ( self.misses == 2 ): return
dc.DrawLine(300,300,300,600)
if ( self.misses == 3) : return
dc.DrawLine(300,300,250,550)
if ( self.misses == 4) : return
dc.DrawLine(300,300,350,550)
if ( self.misses == 5) : return
dc.DrawLine(300,600,350,850)
if ( self.misses == 6) : return
dc.DrawLine(300,600,250,850)
def OnPaint(self, event):
dc = wxPaintDC(self)
self.Draw(dc)
class HangmanDemo(HangmanWnd):
def __init__(self, wf, parent, id, pos, size):
HangmanWnd.__init__(self, parent, id, pos, size)
self.StartGame("dummy")
self.start_new = 1
self.wf = wf
self.delay = 500
self.timer = self.PlayTimer(self.MakeMove)
def MakeMove(self):
self.timer.Stop()
if self.start_new:
self.StartGame(self.wf.Get())
self.start_new = 0
self.left = list('aaaabcdeeeeefghiiiiijklmnnnoooopqrssssttttuuuuvwxyz')
else:
key = self.left[int(random.random()*len(self.left))]
while self.left.count(key): self.left.remove(key)
self.start_new = self.HandleKey(key)
self.timer.Start(self.delay)
def Stop(self):
self.timer.Stop()
class PlayTimer(wxTimer):
def __init__(self,func):
wxTimer.__init__(self)
self.func = func
self.Start(1000)
def Notify(self):
apply(self.func, ())
class HangmanDemoFrame(wxFrame):
def __init__(self, wf, parent, id, pos, size):
wxFrame.__init__(self, parent, id, "Hangman demo", pos, size)
self.demo = HangmanDemo(wf, self, -1, wxDefaultPosition, wxDefaultSize)
def OnCloseWindow(self, event):
self.demo.timer.Stop()
self.Destroy()
class AboutBox(wxDialog):
def __init__(self, parent,wf):
wxDialog.__init__(self, parent, -1, "About Hangman", wxDefaultPosition, wxSize(350,450))
self.wnd = HangmanDemo(wf, self, -1, wxPoint(1,1), wxSize(350,150))
self.static = wxStaticText(self, -1, __doc__, wxPoint(1,160), wxSize(350, 250))
self.button = wxButton(self, 2001, "OK", wxPoint(150,420), wxSize(50,-1))
EVT_BUTTON(self, 2001, self.OnOK)
def OnOK(self, event):
self.wnd.Stop()
self.EndModal(wxID_OK)
class MyFrame(wxFrame):
def __init__(self, parent, wf):
self.wf = wf
wxFrame.__init__(self, parent, -1, "hangman", wxDefaultPosition, wxSize(400,300))
self.wnd = HangmanWnd(self, -1)
menu = wxMenu()
menu.Append(1001, "New")
menu.Append(1002, "End")
menu.AppendSeparator()
menu.Append(1003, "Reset")
menu.Append(1004, "Demo...")
menu.AppendSeparator()
menu.Append(1005, "Exit")
menubar = wxMenuBar()
menubar.Append(menu, "Game")
menu = wxMenu()
#menu.Append(1010, "Internal", "Use internal dictionary", TRUE)
menu.Append(1011, "ASCII File...")
urls = [ 'wxPython home', 'http://alldunn.com/wxPython/main.html',
'slashdot.org', 'http://slashdot.org/',
'cnn.com', 'http://cnn.com',
'The New York Times', 'http://www.nytimes.com',
'De Volkskrant', 'http://www.volkskrant.nl/frameless/25000006.html',
'Gnu GPL', 'http://www.fsf.org/copyleft/gpl.html',
'Bijbel: Genesis', 'http://www.coas.com/bijbel/gn1.htm']
urlmenu = wxMenu()
for item in range(0,len(urls),2):
urlmenu.Append(1020+item/2, urls[item], urls[item+1])
urlmenu.Append(1080, 'Other...', 'Enter an URL')
menu.AppendMenu(1012, 'URL', urlmenu, 'Use a webpage')
menu.Append(1013, 'Dump', 'Write contents to stdout')
menubar.Append(menu, "Dictionary")
self.urls = urls
self.urloffset = 1020
menu = wxMenu()
menu.Append(1090, "About...")
menubar.Append(menu, "Help")
self.SetMenuBar(menubar)
self.CreateStatusBar(2)
EVT_MENU(self, 1001, self.OnGameNew)
EVT_MENU(self, 1002, self.OnGameEnd)
EVT_MENU(self, 1003, self.OnGameReset)
EVT_MENU(self, 1004, self.OnGameDemo)
EVT_MENU(self, 1005, self.OnWindowClose)
EVT_MENU(self, 1011, self.OnDictFile)
EVT_MENU_RANGE(self, 1020, 1020+len(urls)/2, self.OnDictURL)
EVT_MENU(self, 1080, self.OnDictURLSel)
EVT_MENU(self, 1013, self.OnDictDump)
EVT_MENU(self, 1090, self.OnHelpAbout)
EVT_CHAR(self.wnd, self.OnChar)
self.OnGameReset()
def OnGameNew(self, event):
word = self.wf.Get()
self.in_progress = 1
self.SetStatusText("",0)
self.wnd.StartGame(word)
def OnGameEnd(self, event):
self.UpdateAverages(0)
self.in_progress = 0
self.SetStatusText("",0)
self.wnd.EndGame()
def OnGameReset(self, event=None):
self.played = 0
self.won = 0
self.history = []
self.average = 0.0
self.OnGameNew(None)
def OnGameDemo(self, event):
frame = HangmanDemoFrame(self.wf, self, -1, wxDefaultPosition, self.GetSize())
frame.Show(TRUE)
def OnDictFile(self, event):
fd = wxFileDialog(self)
if (self.wf.filename):
fd.SetFilename(self.wf.filename)
if fd.ShowModal() == wxID_OK:
file = fd.GetPath()
self.wf = WordFetcher(file)
def OnDictURL(self, event):
item = (event.GetId() - self.urloffset)*2
print "Trying to open %s at %s" % (self.urls[item], self.urls[item+1])
self.wf = URLWordFetcher(self.urls[item+1])
def OnDictURLSel(self, event):
msg = wxTextEntryDialog(self, "Enter the URL of the dictionary document", "Enter URL")
if msg.ShowModal() == wxID_OK:
url = msg.GetValue()
self.wf = URLWordFetcher(url)
def OnDictDump(self, event):
print self.wf.words
def OnHelpAbout(self, event):
about = AboutBox(self, self.wf)
about.ShowModal()
about.wnd.Stop() # that damn timer won't stop!
def UpdateAverages(self, has_won):
if has_won:
self.won = self.won + 1
self.played = self.played+1
self.history.append(self.wnd.misses) # ugly
total = 0.0
for m in self.history:
total = total + m
self.average = float(total/len(self.history))
def OnChar(self, event):
if not self.in_progress:
#print "new"
self.OnGameNew(None)
return
key = event.KeyCode();
#print key
if key >= ord('A') and key <= ord('Z'):
key = key + ord('a') - ord('A')
key = chr(key)
if key < 'a' or key > 'z':
event.Skip()
return
res = self.wnd.HandleKey(key)
if res == 0:
self.SetStatusText(self.wnd.message)
elif res == 1:
self.UpdateAverages(0)
self.SetStatusText("Too bad, you're dead!",0)
self.in_progress = 0
elif res == 2:
self.in_progress = 0
self.UpdateAverages(1)
self.SetStatusText("Congratulations!",0)
if self.played:
percent = (100.*self.won)/self.played
else:
percent = 0.0
self.SetStatusText("p %d, w %d (%g %%), av %g" % (self.played,self.won, percent, self.average),1)
def OnWindowClose(self, event):
self.Destroy()
class MyApp(wxApp):
def OnInit(self):
if wxPlatform == '__WXGTK__':
defaultfile = "/usr/share/games/hangman-words"
elif wxPlatform == '__WXMSW__':
defaultfile = "c:\\windows\\hardware.txt"
else:
defaultfile = ""
wf = WordFetcher(defaultfile)
frame = MyFrame(NULL, wf)
self.SetTopWindow(frame)
frame.Show(TRUE)
return TRUE
if __name__ == '__main__':
app = MyApp(0)
app.MainLoop()
#----------------------------------------------------------------------
overview = __doc__
def runTest(frame, nb, log):
if wxPlatform == '__WXGTK__' or wxPlatform == '__WXMOTIF__':
defaultfile = "/usr/share/games/hangman-words"
elif wxPlatform == '__WXMSW__':
defaultfile = "c:\\windows\\hardware.txt"
else:
defaultfile = ""
wf = WordFetcher(defaultfile)
win = MyFrame(frame, wf)
frame.otherWin = win
win.Show(true)
#----------------------------------------------------------------------

View File

@@ -1,211 +0,0 @@
"""
Hello, and welcome to this test of the wxTreeItemData
class.
The wxTreeItemData class can be used to associate a python
object with a wxTreeCtrl item. In this sample, its use is
demonstrated via a tree control that shows the contents of a
python namespace according to the standard dir()
command. Every item in the tree has its label taken from the
dir() output, and 'behind it' a reference to the python
object is stored in a wxTreeItemData object.
As you may have guessed by now, this sample automatically
displays '__doc__' strings if the selected python object
happens to have one. Please expand the pyTree object to
learn more about the implementation.
Version 1.0, April 4 1999.
Harm van der Heijden (H.v.d.Heijden@phys.tue.nl)
P.S. Check out the string module. It's imported in this
sample not because it's used, but because it's so
beautifully documented...
"""
from wxPython import wx
import string # Don't use it, but it's fun expanding :-)
#----------------------------------------------------------------------
def _getindent(line):
"""Returns the indentation level of the given line."""
indent = 0
for c in line:
if c == ' ': indent = indent + 1
elif c == '\t': indent = indent + 8
else: break
return indent
def _sourcefinder(func):
"""Given a func_code object, this function tries to find and return
the python source code of the function."""
try:
f = open(func.co_filename,"r")
except:
return "(could not open file %s)" % (func.co_filename,)
for i in range(func.co_firstlineno):
line = f.readline()
ind = _getindent(line)
msg = ""
while line:
msg = msg + line
line = f.readline()
# the following should be <= ind, but then we get
# confused by multiline docstrings. Using == works most of
# the time... but not always!
if _getindent(line) == ind: break
return msg
#----------------------------------------------------------------------
class pyTree(wx.wxTreeCtrl):
"""
This wxTreeCtrl derivative displays a tree view of a Python namespace.
Anything from which the dir() command returns a non-empty list is a branch
in this tree.
"""
def __init__(self, parent, id, root):
"""
Initialize function; because we insert branches into the tree
as needed, we use the ITEM_EXPANDING event handler. The
ITEM_COLLAPSED handler removes the stuff afterwards. The
SEL_CHANGED handler attempts to display interesting
information about the selected object.
"""
wx.wxTreeCtrl.__init__(self, parent, id)
self.root = self.AddRoot(str(root), -1, -1, wx.wxTreeItemData(root))
if dir(root):
self.SetItemHasChildren(self.root, wx.TRUE)
wx.EVT_TREE_ITEM_EXPANDING(self, self.GetId(), self.OnItemExpanding)
wx.EVT_TREE_ITEM_COLLAPSED(self, self.GetId(), self.OnItemCollapsed)
wx.EVT_TREE_SEL_CHANGED(self, self.GetId(), self.OnSelChanged)
self.output = None
def SetOutput(self, output):
"""
Set output function (accepts single string). Used to display string
representation of the selected object by OnSelChanged.
"""
self.output = output
def OnItemExpanding(self,event):
"""
The real workhorse of this class. First we retrieve the object
(parent) belonging to the branch that is to be expanded. This
is done by calling GetPyData(parent), which is a short-cut for
GetPyItemData(parent).Get().
Then we get the dir() list of that object. For each item in
this list, a tree item is created with associated
wxTreeItemData referencing the child object. We get this
object using child = getattr(parent, item).
Finally, we check wether the child returns a non-empty dir()
list. If so, it is labeled as 'having children', so that it
may be expanded. When it actually is expanded, this function
will again figure out what the offspring is.
"""
item = event.GetItem()
obj = self.GetPyData( item )
lst = dir(obj)
for key in lst:
new_obj = getattr(obj,key)
new_item = self.AppendItem( item, key, -1, -1,
wx.wxTreeItemData(new_obj) )
if dir(new_obj):
self.SetItemHasChildren(new_item, wx.TRUE)
def OnItemCollapsed(self, event):
"""
We need to remove all children here, otherwise we'll see all
that old rubbish again after the next expansion.
"""
item = event.GetItem()
self.DeleteChildren(item)
def OnSelChanged(self, event):
"""
If an output function is defined, we try to print some
informative, interesting and thought-provoking stuff to it.
If it has a __doc__ string, we print it. If it's a function or
unbound class method, we attempt to find the python source.
"""
if not self.output:
return
obj = self.GetPyData( event.GetItem() )
msg = str(obj)
if hasattr(obj, '__doc__'):
msg = msg+"\n\nDocumentation string:\n\n%s" % ( getattr(obj, '__doc__'),)
# Is it a function?
func = None
if hasattr(obj, "func_code"): # normal function
func = getattr(obj, "func_code")
elif hasattr(obj, "im_func"): # unbound class method
func = getattr(getattr(obj, "im_func"), "func_code")
if func: # if we found one, let's try to print the source
msg = msg+"\n\nFunction source:\n\n" + _sourcefinder(func)
apply(self.output, (msg,))
#----------------------------------------------------------------------
overview = __doc__
def runTest(frame, nb, log):
"""
This method is used by the wxPython Demo Framework for integrating
this demo with the rest.
"""
thisModule = __import__(__name__, globals())
win = wx.wxFrame(frame, -1, "PyTreeItemData Test")
split = wx.wxSplitterWindow(win, -1)
tree = pyTree(split, -1, thisModule)
text = wx.wxTextCtrl(split, -1, "", wx.wxDefaultPosition,
wx.wxDefaultSize, wx.wxTE_MULTILINE)
split.SplitVertically(tree, text, 200)
tree.SetOutput(text.SetValue)
tree.SelectItem(tree.root)
win.SetSize(wx.wxSize(800,500))
frame.otherWin = win
win.Show(1)
#----------------------------------------------------------------------
if __name__ == '__main__':
class MyFrame(wx.wxFrame):
"""Very standard Frame class. Nothing special here!"""
def __init__(self):
"""Make a splitter window; left a tree, right a textctrl. Wow."""
import __main__
wx.wxFrame.__init__(self, wx.NULL, -1, "PyTreeItemData Test",
wx.wxDefaultPosition, wx.wxSize(800,500))
split = wx.wxSplitterWindow(self, -1)
tree = pyTree(split, -1, __main__)
text = wx.wxTextCtrl(split, -1, "", wx.wxDefaultPosition,
wx.wxDefaultSize, wx.wxTE_MULTILINE)
split.SplitVertically(tree, text, 200)
tree.SetOutput(text.SetValue)
tree.SelectItem(tree.root)
class MyApp(wx.wxApp):
"""This class is even less interesting than MyFrame."""
def OnInit(self):
"""OnInit. Boring, boring, boring!"""
frame = MyFrame()
frame.Show(wx.TRUE)
self.SetTopWindow(frame)
return wx.TRUE
app = MyApp(0)
app.MainLoop()

View File

@@ -1,47 +0,0 @@
from wxPython.wx import *
#----------------------------------------------------------------------
class TestPanel(wxPanel):
def __init__(self, parent, log):
wxPanel.__init__(self, parent, -1)
self.log = log
wxButton(self, 10, "Hello", wxPoint(20, 20)).SetDefault()
EVT_BUTTON(self, 10, self.OnClick)
wxButton(self, 20, "HELLO AGAIN!", wxPoint(20, 60), wxSize(90, 45))
EVT_BUTTON(self, 20, self.OnClick)
bmp = wxBitmap('bitmaps/test2.bmp', wxBITMAP_TYPE_BMP)
wxBitmapButton(self, 30, bmp, wxPoint(140, 20),
wxSize(bmp.GetWidth()+10, bmp.GetHeight()+10))
EVT_BUTTON(self, 30, self.OnClick)
def OnClick(self, event):
self.log.WriteText("Click! (%d)\n" % event.GetId())
#----------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestPanel(nb, log)
return win
#----------------------------------------------------------------------
overview = """\
"""

View File

@@ -1,80 +0,0 @@
from wxPython.wx import *
#---------------------------------------------------------------------------
class TestCheckBox(wxPanel):
def __init__(self, parent, log):
self.log = log
wxPanel.__init__(self, parent, -1)
wxStaticText(self, -1, "This example uses the wxCheckBox control.",
wxPoint(10, 10))
cID = NewId()
cb1 = wxCheckBox(self, cID, " Apples", wxPoint(65, 40), wxSize(150, 20), wxNO_BORDER)
cb2 = wxCheckBox(self, cID+1, " Oranges", wxPoint(65, 60), wxSize(150, 20), wxNO_BORDER)
cb2.SetValue(true)
cb3 = wxCheckBox(self, cID+2, " Pears", wxPoint(65, 80), wxSize(150, 20), wxNO_BORDER)
EVT_CHECKBOX(self, cID, self.EvtCheckBox)
EVT_CHECKBOX(self, cID+1, self.EvtCheckBox)
EVT_CHECKBOX(self, cID+2, self.EvtCheckBox)
def EvtCheckBox(self, event):
self.log.WriteText('EvtCheckBox: %d\n' % event.Checked())
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestCheckBox(nb, log)
return win
#---------------------------------------------------------------------------
overview = """\
A checkbox is a labelled box which is either on (checkmark is visible) or off (no checkmark).
wxCheckBox()
-----------------------
Default constructor.
wxCheckBox(wxWindow* parent, wxWindowID id, const wxString& label, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& val, const wxString& name = "checkBox")
Constructor, creating and showing a checkbox.
Parameters
-------------------
parent = Parent window. Must not be NULL.
id = Checkbox identifier. A value of -1 indicates a default value.
label = Text to be displayed next to the checkbox.
pos = Checkbox position. If the position (-1, -1) is specified then a default position is chosen.
size = Checkbox size. If the default size (-1, -1) is specified then a default size is chosen.
style = Window style. See wxCheckBox.
validator = Window validator.
name = Window name.
"""

View File

@@ -1,53 +0,0 @@
from wxPython.wx import *
#----------------------------------------------------------------------
class TestPanel(wxPanel):
def __init__(self, parent, log):
wxPanel.__init__(self, parent, -1)
self.log = log
sampleList = ['zero', 'one', 'two', 'three', 'four', 'five',
'six', 'seven', 'eight', 'nine', 'ten', 'eleven',
'twelve', 'thirteen', 'fourteen']
wxStaticText(self, -1, "This example uses the wxCheckListBox control.",
wxPoint(45, 15))
lb = wxCheckListBox(self, 60, wxPoint(80, 50), wxSize(80, 120),
sampleList)
EVT_LISTBOX(self, 60, self.EvtListBox)
EVT_LISTBOX_DCLICK(self, 60, self.EvtListBoxDClick)
lb.SetSelection(0)
def EvtListBox(self, event):
self.log.WriteText('EvtListBox: %s\n' % event.GetString())
def EvtListBoxDClick(self, event):
self.log.WriteText('EvtListBoxDClick:\n')
#----------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestPanel(nb, log)
return win
#----------------------------------------------------------------------
overview = """\
"""

View File

@@ -1,76 +0,0 @@
from wxPython.wx import *
#---------------------------------------------------------------------------
class TestChoice(wxPanel):
def __init__(self, parent, log):
self.log = log
wxPanel.__init__(self, parent, -1)
sampleList = ['zero', 'one', 'two', 'three', 'four', 'five',
'six', 'seven', 'eight']
wxStaticText(self, -1, "This example uses the wxChoice control.",
wxPoint(15, 10))
wxStaticText(self, -1, "Select one:", wxPoint(15, 50), wxSize(75, 20))
wxChoice(self, 40, wxPoint(80, 50), wxSize(95, 20), #wxDefaultSize,
sampleList)
EVT_CHOICE(self, 40, self.EvtChoice)
def EvtChoice(self, event):
self.log.WriteText('EvtChoice: %s\n' % event.GetString())
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestChoice(nb, log)
return win
#---------------------------------------------------------------------------
overview = """\
A choice item is used to select one of a list of strings. Unlike a listbox, only the selection is visible until the user pulls down the menu of choices.
wxChoice()
-------------------
Default constructor.
wxChoice(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, int n, const wxString choices[], long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = "choice")
Constructor, creating and showing a choice.
Parameters
-------------------
parent = Parent window. Must not be NULL.
id = Window identifier. A value of -1 indicates a default value.
pos = Window position.
size = Window size. If the default size (-1, -1) is specified then the choice is sized appropriately.
n = Number of strings with which to initialise the choice control.
choices = An array of strings with which to initialise the choice control.
style = Window style. See wxChoice.
validator = Window validator.
name = Window name.
"""

View File

@@ -1,38 +0,0 @@
from wxPython.wx import *
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
data = wxColourData()
data.SetChooseFull(true)
dlg = wxColourDialog(frame, data)
if dlg.ShowModal() == wxID_OK:
data = dlg.GetColourData()
log.WriteText('You selected: %s\n' % str(data.GetColour().Get()))
dlg.Destroy()
#---------------------------------------------------------------------------
overview = """\
This class represents the colour chooser dialog.
wxColourDialog()
------------------------------
wxColourDialog(wxWindow* parent, wxColourData* data = NULL)
Constructor. Pass a parent window, and optionally a pointer to a block of colour data, which will be copied to the colour dialog's colour data.
"""

View File

@@ -1,79 +0,0 @@
from wxPython.wx import *
#---------------------------------------------------------------------------
class TestComboBox(wxPanel):
def __init__(self, parent, log):
self.log = log
wxPanel.__init__(self, parent, -1)
sampleList = ['zero', 'one', 'two', 'three', 'four', 'five',
'six', 'seven', 'eight']
wxStaticText(self, -1, "This example uses the wxComboBox control.",
wxPoint(8, 10))
wxStaticText(self, -1, "Select one:", wxPoint(15, 50), wxSize(75, 18))
wxComboBox(self, 50, "default value", wxPoint(80, 50), wxSize(95, 20),
sampleList, wxCB_DROPDOWN)
EVT_COMBOBOX(self, 50, self.EvtComboBox)
def EvtComboBox(self, event):
self.log.WriteText('EvtComboBox: %s\n' % event.GetString())
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestComboBox(nb, log)
return win
#---------------------------------------------------------------------------
overview = """\
A combobox is like a combination of an edit control and a listbox. It can be displayed as static list with editable or read-only text field; or a drop-down list with text field; or a drop-down list without a text field.
A combobox permits a single selection only. Combobox items are numbered from zero.
wxComboBox()
-----------------------
Default constructor.
wxComboBox(wxWindow* parent, wxWindowID id, const wxString& value = "", const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, int n, const wxString choices[], long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = "comboBox")
Constructor, creating and showing a combobox.
Parameters
-------------------
parent = Parent window. Must not be NULL.
id = Window identifier. A value of -1 indicates a default value.
pos = Window position.
size = Window size. If the default size (-1, -1) is specified then the window is sized appropriately.
n = Number of strings with which to initialise the control.
choices = An array of strings with which to initialise the control.
style = Window style. See wxComboBox.
validator = Window validator.
name = Window name.
"""

View File

@@ -1,33 +0,0 @@
from wxPython.wx import *
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
win = wxDialog(frame, -1, "This is a wxDialog", wxDefaultPosition, wxSize(350, 200))
wxStaticText(win, -1, "This is a wxDialog", wxPoint(20, 20))
wxButton(win, wxID_OK, " OK ", wxPoint(75, 120), wxDefaultSize).SetDefault()
wxButton(win, wxID_CANCEL, " Cancel ", wxPoint(150, 120), wxDefaultSize)
val = win.ShowModal()
if val == wxID_OK:
log.WriteText("You pressed OK\n")
else:
log.WriteText("You pressed Cancel\n")
#---------------------------------------------------------------------------
overview = """\
"""

View File

@@ -1,53 +0,0 @@
from wxPython.wx import *
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
dlg = wxDirDialog(frame)
if dlg.ShowModal() == wxID_OK:
log.WriteText('You selected: %s\n' % dlg.GetPath())
dlg.Destroy()
#---------------------------------------------------------------------------
overview = """\
This class represents the directory chooser dialog.
wxDirDialog()
------------------------
wxDirDialog(wxWindow* parent, const wxString& message = "Choose a directory", const wxString& defaultPath = "", long style = 0, const wxPoint& pos = wxDefaultPosition)
Constructor. Use wxDirDialog::ShowModal to show the dialog.
Parameters
-------------------
parent = Parent window.
message = Message to show on the dialog.
defaultPath = The default path, or the empty string.
style = A dialog style, currently unused.
pos = Dialog position.
"""

View File

@@ -1,62 +0,0 @@
from wxPython.wx import *
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
dlg = wxFileDialog(frame, "Choose a file", ".", "", "*.*", wxOPEN)
if dlg.ShowModal() == wxID_OK:
log.WriteText('You selected: %s\n' % dlg.GetPath())
dlg.Destroy()
#---------------------------------------------------------------------------
overview = """\
This class represents the file chooser dialog.
wxFileDialog()
----------------------------
wxFileDialog(wxWindow* parent, const wxString& message = "Choose a file", const wxString& defaultDir = ""
, const wxString& defaultFile = "", const wxString& wildcard = "*.*", long style = 0, const wxPoint& pos = wxDefaultPosition)
Constructor. Use wxFileDialog::ShowModal to show the dialog.
Parameters
-------------------
parent = Parent window.
message = Message to show on the dialog.
defaultDir = The default directory, or the empty string.
defaultFile = The default filename, or the empty string.
wildcard = A wildcard, such as "*.*".
style = A dialog style. A bitlist of:
wxOPEN This is an open dialog (Windows only).
wxSAVE This is a save dialog (Windows only).
wxHIDE_READONLY Hide read-only files (Windows only).
wxOVERWRITE_PROMPT Prompt for a conformation if a file will be overridden (Windows only).
pos = Dialog position.
"""

View File

@@ -1,39 +0,0 @@
from wxPython.wx import *
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
dlg = wxFontDialog(frame)
if dlg.ShowModal() == wxID_OK:
data = dlg.GetFontData()
font = data.GetChosenFont()
log.WriteText('You selected: "%s", %d points, color %s\n' %
(font.GetFaceName(), font.GetPointSize(),
data.GetColour().Get()))
dlg.Destroy()
#---------------------------------------------------------------------------
overview = """\
This class represents the font chooser dialog.
wxFontDialog()
----------------------------
wxFontDialog(wxWindow* parent, wxFontData* data = NULL)
Constructor. Pass a parent window, and optionally a pointer to a block of font data, which will be copied to the font dialog's font data.
"""

View File

@@ -1,41 +0,0 @@
from wxPython.wx import *
#---------------------------------------------------------------------------
class MyFrame(wxFrame):
def __init__(self, parent, ID, title, pos, size):
wxFrame.__init__(self, parent, ID, title, pos, size)
panel = wxPanel(self, -1)
button = wxButton(panel, 1003, "Close Me")
button.SetPosition(wxPoint(15, 15))
EVT_BUTTON(self, 1003, self.OnCloseMe)
def OnCloseMe(self, event):
self.Close(true)
def OnCloseWindow(self, event):
self.Destroy()
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
win = MyFrame(frame, -1, "This is a wxFrame", wxDefaultPosition, wxSize(350, 200))
frame.otherWin = win
win.Show(true)
#---------------------------------------------------------------------------
overview = """\
"""

View File

@@ -1,153 +0,0 @@
from wxPython.wx import *
try:
from wxPython.glcanvas import *
haveGLCanvas = true
except ImportError:
haveGLCanvas = false
#----------------------------------------------------------------------
if not haveGLCanvas:
def runTest(frame, nb, log):
dlg = wxMessageDialog(frame, 'The wxGLCanvas has not been included with this build of wxPython!',
'Sorry', wxOK | wxICON_INFORMATION)
dlg.ShowModal()
dlg.Destroy()
else:
def runTest(frame, nb, log):
win = TestGLCanvas(nb)
return win
class TestGLCanvas(wxGLCanvas):
def __init__(self, parent):
wxGLCanvas.__init__(self, parent, -1)
EVT_ERASE_BACKGROUND(self, self.OnEraseBackground)
self.init = false
def OnEraseBackground(self, event):
pass # Do nothing, to avoid flashing.
def OnSize(self, event):
size = self.GetClientSize()
if self.GetContext() != 'NULL':
self.SetCurrent()
glViewport(0, 0, size.width, size.height)
def OnPaint(self, event):
dc = wxPaintDC(self)
ctx = self.GetContext()
if ctx == "NULL": return
self.SetCurrent()
if not self.init:
self.InitGL()
self.init = true
# clear color and depth buffers
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
# draw six faces of a cube
glBegin(GL_QUADS)
glNormal3f( 0.0, 0.0, 1.0)
glVertex3f( 0.5, 0.5, 0.5)
glVertex3f(-0.5, 0.5, 0.5)
glVertex3f(-0.5,-0.5, 0.5)
glVertex3f( 0.5,-0.5, 0.5)
glNormal3f( 0.0, 0.0,-1.0)
glVertex3f(-0.5,-0.5,-0.5)
glVertex3f(-0.5, 0.5,-0.5)
glVertex3f( 0.5, 0.5,-0.5)
glVertex3f( 0.5,-0.5,-0.5)
glNormal3f( 0.0, 1.0, 0.0)
glVertex3f( 0.5, 0.5, 0.5)
glVertex3f( 0.5, 0.5,-0.5)
glVertex3f(-0.5, 0.5,-0.5)
glVertex3f(-0.5, 0.5, 0.5)
glNormal3f( 0.0,-1.0, 0.0)
glVertex3f(-0.5,-0.5,-0.5)
glVertex3f( 0.5,-0.5,-0.5)
glVertex3f( 0.5,-0.5, 0.5)
glVertex3f(-0.5,-0.5, 0.5)
glNormal3f( 1.0, 0.0, 0.0)
glVertex3f( 0.5, 0.5, 0.5)
glVertex3f( 0.5,-0.5, 0.5)
glVertex3f( 0.5,-0.5,-0.5)
glVertex3f( 0.5, 0.5,-0.5)
glNormal3f(-1.0, 0.0, 0.0)
glVertex3f(-0.5,-0.5,-0.5)
glVertex3f(-0.5,-0.5, 0.5)
glVertex3f(-0.5, 0.5, 0.5)
glVertex3f(-0.5, 0.5,-0.5)
glEnd()
self.SwapBuffers()
def InitGL(self):
# set viewing projection
glMatrixMode(GL_PROJECTION);
glFrustum(-0.5, 0.5, -0.5, 0.5, 1.0, 3.0);
# position viewer
glMatrixMode(GL_MODELVIEW);
glTranslatef(0.0, 0.0, -2.0);
# position object
glRotatef(30.0, 1.0, 0.0, 0.0);
glRotatef(30.0, 0.0, 1.0, 0.0);
glEnable(GL_DEPTH_TEST);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
overview = """\
"""
#----------------------------------------------------------------------
def _test():
class MyApp(wxApp):
def OnInit(self):
frame = wxFrame(NULL, -1, "HELP ME!!")
win = TestGLCanvas(frame)
frame.Show(TRUE)
self.SetTopWindow(frame)
return TRUE
app = MyApp(0)
app.MainLoop()
if __name__ == '__main__':
_test()

View File

@@ -1,55 +0,0 @@
from wxPython.wx import *
#----------------------------------------------------------------------
class TestPanel(wxPanel):
def __init__(self, parent, log):
wxPanel.__init__(self, parent, -1)
self.log = log
self.count = 0
wxStaticText(self, -1, "This example uses the wxGauge control.",
wxPoint(45, 15))
#self.g1 = wxGauge(self, -1, 50, wxPoint(40, 50), wxSize(40, 160),
# wxGA_VERTICAL)
#self.g1.SetBezelFace(3)
#self.g1.SetShadowWidth(3)
self.g2 = wxGauge(self, -1, 50, wxPoint(110, 50), wxSize(250, 25),
wxGA_HORIZONTAL)
self.g2.SetBezelFace(5)
self.g2.SetShadowWidth(5)
EVT_IDLE(self, self.IdleHandler)
def IdleHandler(self, event):
self.count = self.count + 1
if self.count >= 50:
self.count = 0
#self.g1.SetValue(self.count)
self.g2.SetValue(self.count)
#----------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestPanel(nb, log)
return win
#----------------------------------------------------------------------
overview = """\
"""

View File

@@ -1,77 +0,0 @@
from wxPython.wx import *
#---------------------------------------------------------------------------
class TestGrid(wxGrid):
def __init__(self, parent, log):
wxGrid.__init__(self, parent, -1)
self.log = log
self.CreateGrid(16, 16)
self.SetColumnWidth(3, 200)
self.SetRowHeight(4, 45)
self.SetCellValue("First cell", 0, 0)
self.SetCellValue("Another cell", 1, 1)
self.SetCellValue("Yet another cell", 2, 2)
self.SetCellTextFont(wxFont(12, wxROMAN, wxITALIC, wxNORMAL), 0, 0)
self.SetCellTextColour(wxRED, 1, 1)
self.SetCellBackgroundColour(wxCYAN, 2, 2)
self.UpdateDimensions()
self.AdjustScrollbars()
EVT_GRID_SELECT_CELL(self, self.OnSelectCell)
EVT_GRID_CELL_CHANGE(self, self.OnCellChange)
EVT_GRID_CELL_LCLICK(self, self.OnCellClick)
EVT_GRID_LABEL_LCLICK(self, self.OnLabelClick)
def OnSelectCell(self, event):
self.log.WriteText("OnSelectCell: (%d, %d)\n" % (event.m_row, event.m_col))
def OnCellChange(self, event):
self.log.WriteText("OnCellChange: (%d, %d)\n" % (event.m_row, event.m_col))
def OnCellClick(self, event):
self.log.WriteText("OnCellClick: (%d, %d)\n" % (event.m_row, event.m_col))
def OnLabelClick(self, event):
self.log.WriteText("OnLabelClick: (%d, %d)\n" % (event.m_row, event.m_col))
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestGrid(nb, log)
return win
#---------------------------------------------------------------------------
overview = """\
wxGrid is a class for displaying and editing tabular information.
wxGrid()
-----------------
wxGrid(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style=0, const wxString& name="grid")
Constructor. Before using a wxGrid object, you must call CreateGrid to set up the required rows and columns.
"""

View File

@@ -1,40 +0,0 @@
from wxPython.wx import *
#----------------------------------------------------------------------
def runTest(frame, nb, log):
bmp = wxImage('bitmaps/image.bmp', wxBITMAP_TYPE_BMP).ConvertToBitmap()
gif = wxImage('bitmaps/image.gif', wxBITMAP_TYPE_GIF).ConvertToBitmap()
png = wxImage('bitmaps/image.png', wxBITMAP_TYPE_PNG).ConvertToBitmap()
jpg = wxImage('bitmaps/image.jpg', wxBITMAP_TYPE_JPEG).ConvertToBitmap()
panel = wxPanel(nb, -1)
pos = 10
wxStaticBitmap(panel, -1, bmp, wxPoint(10, pos),
wxSize(bmp.GetWidth(), bmp.GetHeight()))
pos = pos + bmp.GetHeight() + 10
wxStaticBitmap(panel, -1, gif, wxPoint(10, pos),
wxSize(gif.GetWidth(), gif.GetHeight()))
pos = pos + gif.GetHeight() + 10
wxStaticBitmap(panel, -1, png, wxPoint(10, pos),
wxSize(png.GetWidth(), png.GetHeight()))
pos = pos + png.GetHeight() + 10
wxStaticBitmap(panel, -1, jpg, wxPoint(10, pos),
wxSize(jpg.GetWidth(), jpg.GetHeight()))
return panel
#----------------------------------------------------------------------
overview = """\
"""

View File

@@ -1,142 +0,0 @@
from wxPython.wx import *
#---------------------------------------------------------------------------
class TestLayoutConstraints(wxWindow):
def __init__(self, parent):
wxWindow.__init__(self, parent, -1)
self.SetBackgroundColour(wxNamedColour("MEDIUM ORCHID"))
self.SetAutoLayout(true)
EVT_BUTTON(self, 100, self.OnButton)
self.panelA = wxWindow(self, -1, wxDefaultPosition, wxDefaultSize,
wxSIMPLE_BORDER)
self.panelA.SetBackgroundColour(wxBLUE)
txt = wxStaticText(self.panelA, -1,
"Resize the window and see\n"
"what happens... Notice that\n"
"there is no OnSize handler.",
wxPoint(5,5), wxSize(-1, 50))
txt.SetBackgroundColour(wxBLUE)
txt.SetForegroundColour(wxWHITE)
lc = wxLayoutConstraints()
lc.top.SameAs(self, wxTop, 10)
lc.left.SameAs(self, wxLeft, 10)
lc.bottom.SameAs(self, wxBottom, 10)
lc.right.PercentOf(self, wxRight, 50)
self.panelA.SetConstraints(lc)
self.panelB = wxWindow(self, -1, wxDefaultPosition, wxDefaultSize,
wxSIMPLE_BORDER)
self.panelB.SetBackgroundColour(wxRED)
lc = wxLayoutConstraints()
lc.top.SameAs(self, wxTop, 10)
lc.right.SameAs(self, wxRight, 10)
lc.bottom.PercentOf(self, wxBottom, 30)
lc.left.RightOf(self.panelA, 10)
self.panelB.SetConstraints(lc)
self.panelC = wxWindow(self, -1, wxDefaultPosition, wxDefaultSize,
wxSIMPLE_BORDER)
self.panelC.SetBackgroundColour(wxWHITE)
lc = wxLayoutConstraints()
lc.top.Below(self.panelB, 10)
lc.right.SameAs(self, wxRight, 10)
lc.bottom.SameAs(self, wxBottom, 10)
lc.left.RightOf(self.panelA, 10)
self.panelC.SetConstraints(lc)
b = wxButton(self.panelA, 100, ' Panel A ')
lc = wxLayoutConstraints()
lc.centreX.SameAs (self.panelA, wxCentreX)
lc.centreY.SameAs (self.panelA, wxCentreY)
lc.height.AsIs ()
lc.width.PercentOf (self.panelA, wxWidth, 50)
b.SetConstraints(lc);
b = wxButton(self.panelB, 100, ' Panel B ')
lc = wxLayoutConstraints()
lc.top.SameAs (self.panelB, wxTop, 2)
lc.right.SameAs (self.panelB, wxRight, 4)
lc.height.AsIs ()
lc.width.AsIs ()
b.SetConstraints(lc);
self.panelD = wxWindow(self.panelC, -1, wxDefaultPosition, wxDefaultSize,
wxSIMPLE_BORDER)
self.panelD.SetBackgroundColour(wxGREEN)
wxStaticText(self.panelD, -1, "Panel D", wxPoint(4, 4)).SetBackgroundColour(wxGREEN)
b = wxButton(self.panelC, 100, ' Panel C ')
lc = wxLayoutConstraints()
lc.top.Below (self.panelD)
lc.left.RightOf (self.panelD)
lc.height.AsIs ()
lc.width.AsIs ()
b.SetConstraints(lc);
lc = wxLayoutConstraints()
lc.bottom.PercentOf (self.panelC, wxHeight, 50)
lc.right.PercentOf (self.panelC, wxWidth, 50)
lc.height.SameAs (b, wxHeight)
lc.width.SameAs (b, wxWidth)
self.panelD.SetConstraints(lc);
def OnButton(self, event):
wxBell()
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestLayoutConstraints(nb)
return win
#---------------------------------------------------------------------------
overview = """\
Objects of this class can be associated with a window to define its layout constraints, with respect to siblings or its parent.
The class consists of the following eight constraints of class wxIndividualLayoutConstraint, some or all of which should be accessed directly to set the appropriate constraints.
left: represents the left hand edge of the window
right: represents the right hand edge of the window
top: represents the top edge of the window
bottom: represents the bottom edge of the window
width: represents the width of the window
height: represents the height of the window
centreX: represents the horizontal centre point of the window
centreY: represents the vertical centre point of the window
Most constraints are initially set to have the relationship wxUnconstrained, which means that their values should be calculated by looking at known constraints. The exceptions are width and height, which are set to wxAsIs to ensure that if the user does not specify a constraint, the existing width and height will be used, to be compatible with panel items which often have take a default size. If the constraint is wxAsIs, the dimension will not be changed.
wxLayoutConstraints()
-------------------------------------------
Constructor.
"""

View File

@@ -1,102 +0,0 @@
from wxPython.wx import *
#---------------------------------------------------------------------------
class TestListBox(wxPanel):
def __init__(self, parent, log):
self.log = log
wxPanel.__init__(self, parent, -1)
sampleList = ['zero', 'one', 'two', 'three', 'four', 'five',
'six', 'seven', 'eight', 'nine', 'ten', 'eleven',
'twelve', 'thirteen', 'fourteen']
wxStaticText(self, -1, "This example uses the wxListBox control.",
wxPoint(45, 10))
wxStaticText(self, -1, "Select one:", wxPoint(15, 50), wxSize(65, 18))
self.lb1 = wxListBox(self, 60, wxPoint(80, 50), wxSize(80, 120),
sampleList, wxLB_SINGLE)
EVT_LISTBOX(self, 60, self.EvtListBox)
EVT_LISTBOX_DCLICK(self, 60, self.EvtListBoxDClick)
EVT_RIGHT_UP(self.lb1, self.EvtRightButton)
self.lb1.SetSelection(0)
wxStaticText(self, -1, "Select many:", wxPoint(200, 50), wxSize(65, 18))
self.lb2 = wxListBox(self, 70, wxPoint(280, 50), wxSize(80, 120),
sampleList, wxLB_EXTENDED)
EVT_LISTBOX(self, 70, self.EvtMultiListBox)
EVT_LISTBOX_DCLICK(self, 70, self.EvtListBoxDClick)
self.lb2.SetSelection(0)
def EvtListBox(self, event):
self.log.WriteText('EvtListBox: %s\n' % event.GetString())
def EvtListBoxDClick(self, event):
self.log.WriteText('EvtListBoxDClick: %s\n' % self.lb1.GetSelection())
def EvtMultiListBox(self, event):
self.log.WriteText('EvtMultiListBox: %s\n' % str(self.lb2.GetSelections()))
def EvtRightButton(self, event):
self.log.WriteText('EvtRightButton: %s\n' % event.GetPosition())
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestListBox(nb, log)
return win
#---------------------------------------------------------------------------
overview = """\
A listbox is used to select one or more of a list of strings. The strings are displayed in a scrolling box, with the selected string(s) marked in reverse video. A listbox can be single selection (if an item is selected, the previous selection is removed) or multiple selection (clicking an item toggles the item on or off independently of other selections).
List box elements are numbered from zero.
wxListBox()
---------------------
Default constructor.
wxListBox(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, int n, const wxString choices[] = NULL, long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = "listBox")
Constructor, creating and showing a list box.
Parameters
-------------------
parent = Parent window. Must not be NULL.
id = Window identifier. A value of -1 indicates a default value.
pos = Window position.
size = Window size. If the default size (-1, -1) is specified then the window is sized appropriately.
n = Number of strings with which to initialise the control.
choices = An array of strings with which to initialise the control.
style = Window style. See wxListBox.
validator = Window validator.
name = Window name.
"""

View File

@@ -1,158 +0,0 @@
#!/bin/env python
#----------------------------------------------------------------------------
# Name: ListCtrl.py
# Purpose: Testing lots of stuff, controls, window types, etc.
#
# Author: Robin Dunn & Gary Dumer
#
# Created:
# RCS-ID: $Id$
# Copyright: (c) 1998 by Total Control Software
# Licence: wxWindows license
#----------------------------------------------------------------------------
from wxPython.wx import *
#---------------------------------------------------------------------------
class TestListCtrlPanel(wxPanel):
def __init__(self, parent, log):
wxPanel.__init__(self, parent, -1)
self.log = log
tID = NewId()
self.il = wxImageList(16, 16)
idx1 = self.il.Add(wxNoRefBitmap('bitmaps/smiles.bmp', wxBITMAP_TYPE_BMP))
self.list = wxListCtrl(self, tID, wxDefaultPosition, wxDefaultSize,
wxLC_REPORT|wxSUNKEN_BORDER)
self.list.SetImageList(self.il, wxIMAGE_LIST_SMALL)
self.list.SetToolTip(wxToolTip("This is a ToolTip!"))
wxToolTip_Enable(true)
self.list.InsertColumn(0, "Column 0")
self.list.InsertColumn(1, "Column 1")
self.list.InsertColumn(2, "One More Column (2)")
for x in range(50):
self.list.InsertImageStringItem(x, "This is item %d" % x, idx1)
self.list.SetStringItem(x, 1, "Col 1, item %d" % x)
self.list.SetStringItem(x, 2, "item %d in column 2" % x)
self.list.SetColumnWidth(0, wxLIST_AUTOSIZE)
self.list.SetColumnWidth(1, wxLIST_AUTOSIZE)
self.list.SetColumnWidth(2, wxLIST_AUTOSIZE)
self.list.SetItemState(5, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED)
self.currentItem = 0
EVT_LIST_ITEM_SELECTED(self, tID, self.OnItemSelected)
EVT_LEFT_DCLICK(self.list, self.OnDoubleClick)
EVT_RIGHT_DOWN(self.list, self.OnRightDown)
# for wxMSW
EVT_COMMAND_RIGHT_CLICK(self.list, tID, self.OnRightClick)
# for wxGTK
EVT_RIGHT_UP(self.list, self.OnRightClick)
def OnRightDown(self, event):
self.x = event.GetX()
self.y = event.GetY()
self.log.WriteText("x, y = %s\n" % str((self.x, self.y)))
event.Skip()
def OnItemSelected(self, event):
self.currentItem = event.m_itemIndex
self.log.WriteText("OnItemSelected: %s\n" % self.list.GetItemText(self.currentItem))
def OnDoubleClick(self, event):
self.log.WriteText("OnDoubleClick item %s\n" % self.list.GetItemText(self.currentItem))
def OnRightClick(self, event):
self.log.WriteText("OnRightClick %s\n" % self.list.GetItemText(self.currentItem))
self.menu = wxMenu()
tPopupID1 = 0
tPopupID2 = 1
tPopupID3 = 2
self.menu.Append(tPopupID1, "One")
self.menu.Append(tPopupID2, "Two")
self.menu.Append(tPopupID3, "Three")
EVT_MENU(self, tPopupID1, self.OnPopupOne)
EVT_MENU(self, tPopupID2, self.OnPopupTwo)
EVT_MENU(self, tPopupID3, self.OnPopupThree)
self.PopupMenu(self.menu, self.x, self.y)
def OnPopupOne(self, event):
self.log.WriteText("Popup one\n")
def OnPopupTwo(self, event):
self.log.WriteText("Popup two\n")
def OnPopupThree(self, event):
self.log.WriteText("Popup three\n")
def OnSize(self, event):
w,h = self.GetClientSizeTuple()
self.list.SetDimensions(0, 0, w, h)
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestListCtrlPanel(nb, log)
return win
#---------------------------------------------------------------------------
overview = """\
A list control presents lists in a number of formats: list view, report view, icon view and small icon view. Elements are numbered from zero.
wxListCtrl()
------------------------
Default constructor.
wxListCtrl(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxLC_ICON, const wxValidator& validator = wxDefaultValidator, const wxString& name = "listCtrl")
Constructor, creating and showing a list control.
Parameters
-------------------
parent = Parent window. Must not be NULL.
id = Window identifier. A value of -1 indicates a default value.
pos = Window position.
size = Window size. If the default size (-1, -1) is specified then the window is sized appropriately.
style = Window style. See wxListCtrl.
validator = Window validator.
name = Window name.
"""

View File

@@ -1,62 +0,0 @@
from wxPython.wx import *
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
dlg = wxMessageDialog(frame, 'Hello from Python and wxPython!',
'A Message Box', wxOK | wxICON_INFORMATION)
dlg.ShowModal()
dlg.Destroy()
#---------------------------------------------------------------------------
overview = """\
wxMessageDialog()
----------------------------------
wxMessageDialog(wxWindow* parent, const wxString& message, const wxString& caption = "Message box", long style = wxOK | wxCANCEL | wxCENTRE, const wxPoint& pos = wxDefaultPosition)
Constructor. Use wxMessageDialog::ShowModal to show the dialog.
Parameters
-------------------
parent = Parent window.
message = Message to show on the dialog.
caption = The dialog caption.
style = A dialog style (bitlist) containing flags chosen from the following:
wxOK Show an OK button.
wxCANCEL Show a Cancel button.
wxYES_NO Show Yes and No buttons.
wxCENTRE Centre the message. Not Windows.
wxICON_EXCLAMATION Shows an exclamation mark icon. Windows only.
wxICON_HAND Shows a hand icon. Windows only.
wxICON_QUESTION Shows a question mark icon. Windows only.
wxICON_INFORMATION Shows an information (i) icon. Windows only.
pos = Dialog position.
"""

View File

@@ -1,42 +0,0 @@
from wxPython.wx import *
#---------------------------------------------------------------------------
class MyMiniFrame(wxMiniFrame):
def __init__(self, parent, ID, title, pos, size, style):
wxMiniFrame.__init__(self, parent, ID, title, pos, size, style)
panel = wxPanel(self, -1)
button = wxButton(panel, 1003, "Close Me")
button.SetPosition(wxPoint(15, 15))
EVT_BUTTON(self, 1003, self.OnCloseMe)
def OnCloseMe(self, event):
self.Close(true)
def OnCloseWindow(self, event):
self.Destroy()
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
win = MyMiniFrame(frame, -1, "This is a wxMiniFrame",
wxDefaultPosition, wxSize(200, 200),
wxDEFAULT_FRAME_STYLE | wxTINY_CAPTION_HORIZ)
frame.otherWin = win
win.Show(true)
#---------------------------------------------------------------------------
overview = """\
"""

View File

@@ -1,27 +0,0 @@
from wxPython.wx import *
from wxPython.lib.dialogs import wxMultipleChoiceDialog
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
lst = [ 'apple', 'pear', 'banana', 'coconut', 'orange',
'etc', 'etc..', 'etc...' ]
dlg = wxMultipleChoiceDialog(frame,
"Pick some from\n this list\nblah blah...",
"m.s.d.", lst)
if (dlg.ShowModal() == wxID_OK):
print "Selection:", dlg.GetValue(), " -> ", dlg.GetValueString()
#---------------------------------------------------------------------------
overview = """\
"""

View File

@@ -1,84 +0,0 @@
from wxPython.wx import *
import ColorPanel
#----------------------------------------------------------------------------
def runTest(frame, nb, log):
testWin = wxNotebook(nb, -1)
win = ColorPanel.ColoredPanel(testWin, wxBLUE)
testWin.AddPage(win, "Blue")
st = wxStaticText(win, -1,
"You can put nearly any type of window here!",
wxPoint(10, 10))
st.SetForegroundColour(wxWHITE)
st.SetBackgroundColour(wxBLUE)
win = ColorPanel.ColoredPanel(testWin, wxRED)
testWin.AddPage(win, "Red")
win = ColorPanel.ColoredPanel(testWin, wxGREEN)
testWin.AddPage(win, "Green")
win = ColorPanel.ColoredPanel(testWin, wxCYAN)
testWin.AddPage(win, "Cyan")
win = ColorPanel.ColoredPanel(testWin, wxWHITE)
testWin.AddPage(win, "White")
win = ColorPanel.ColoredPanel(testWin, wxBLACK)
testWin.AddPage(win, "Black")
win = ColorPanel.ColoredPanel(testWin, wxNamedColour('MIDNIGHT BLUE'))
testWin.AddPage(win, "MIDNIGHT BLUE")
win = ColorPanel.ColoredPanel(testWin, wxNamedColour('INDIAN RED'))
testWin.AddPage(win, "INDIAN RED")
return testWin
#----------------------------------------------------------------------------
overview = """\
This class represents a notebook control, which manages multiple windows with associated tabs.
To use the class, create a wxNotebook object and call AddPage or InsertPage, passing a window to be used as the page. Do not explicitly delete the window for a page that is currently managed by wxNotebook.
wxNotebook()
-------------------------
Default constructor.
wxNotebook(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size, long style = 0, const wxString& name = "notebook")
Constructs a notebook control.
Parameters
-------------------
parent = The parent window. Must be non-NULL.
id = The window identifier.
pos = The window position.
size = The window size.
style = The window style. Its value is a bit list of zero or more of wxTC_MULTILINE, wxTC_RIGHTJUSTIFY, wxTC_FIXEDWIDTH and wxTC_OWNERDRAW.
"""

View File

@@ -1,33 +0,0 @@
from wxPython.wx import *
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
data = wxPageSetupDialogData()
data.SetMarginTopLeft(wxPoint(50,50))
data.SetMarginBottomRight(wxPoint(50,50))
dlg = wxPageSetupDialog(frame, data)
if dlg.ShowModal() == wxID_OK:
data = dlg.GetPageSetupData()
tl = data.GetMarginTopLeft()
br = data.GetMarginBottomRight()
log.WriteText('Margins are: %s %s\n' % (str(tl), str(br)))
dlg.Destroy()
#---------------------------------------------------------------------------
overview = """\
"""

View File

@@ -1,39 +0,0 @@
from wxPython.lib.wxPlotCanvas import *
from wxPython.lib import wxPlotCanvas
#---------------------------------------------------------------------------
def _InitObjects():
# 100 points sin function, plotted as green circles
data1 = 2.*Numeric.pi*Numeric.arange(200)/200.
data1.shape = (100, 2)
data1[:,1] = Numeric.sin(data1[:,0])
markers1 = PolyMarker(data1, color='green', marker='circle',size=1)
# 50 points cos function, plotted as red line
data1 = 2.*Numeric.pi*Numeric.arange(100)/100.
data1.shape = (50,2)
data1[:,1] = Numeric.cos(data1[:,0])
lines = PolyLine(data1, color='red')
# A few more points...
pi = Numeric.pi
markers2 = PolyMarker([(0., 0.), (pi/4., 1.), (pi/2, 0.),
(3.*pi/4., -1)], color='blue',
fillcolor='green', marker='cross')
return PlotGraphics([markers1, lines, markers2])
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
win = PlotCanvas(nb)
win.draw(_InitObjects(),'automatic','automatic');
return win
overview = wxPlotCanvas.__doc__
#---------------------------------------------------------------------------

View File

@@ -1,31 +0,0 @@
from wxPython.wx import *
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
data = wxPrintDialogData()
data.EnablePrintToFile(true)
data.EnablePageNumbers(true)
data.EnableSelection(true)
dlg = wxPrintDialog(frame, data)
if dlg.ShowModal() == wxID_OK:
log.WriteText('\n')
dlg.Destroy()
#---------------------------------------------------------------------------
overview = """\
"""

View File

@@ -1,38 +0,0 @@
from wxPython.wx import *
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
max = 20
dlg = wxProgressDialog("Progress dialog example",
"An informative message",
max,
frame,
wxPD_CAN_ABORT | wxPD_APP_MODAL)
keepGoing = true
count = 0
while keepGoing and count <= max:
count = count + 1
wxSleep(1)
if count == max / 2:
keepGoing = dlg.Update(count, "Half-time!")
else:
keepGoing = dlg.Update(count)
dlg.Destroy()
#---------------------------------------------------------------------------
overview = """\
"""

View File

@@ -1,76 +0,0 @@
from wxPython.wx import *
#---------------------------------------------------------------------------
class TestRadioButtons(wxPanel):
def __init__(self, parent, log):
self.log = log
wxPanel.__init__(self, parent, -1)
sampleList = ['zero', 'one', 'two', 'three', 'four', 'five',
'six', 'seven', 'eight']
rb = wxRadioBox(self, 30, "wxRadioBox", wxPoint(35, 30), wxDefaultSize,
sampleList, 3, wxRA_SPECIFY_COLS | wxNO_BORDER)
EVT_RADIOBOX(self, 30, self.EvtRadioBox)
def EvtRadioBox(self, event):
self.log.WriteText('EvtRadioBox: %d\n' % event.GetInt())
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestRadioButtons(nb, log)
return win
#---------------------------------------------------------------------------
overview = """\
A radio box item is used to select one of number of mutually exclusive choices. It is displayed as a vertical column or horizontal row of labelled buttons.
wxRadioBox()
----------------------
Default constructor.
wxRadioBox(wxWindow* parent, wxWindowID id, const wxString& label, const wxPoint& point = wxDefaultPosition, const wxSize& size = wxDefaultSize, int n = 0, const wxString choices[] = NULL, int majorDimension = 0, long style = wxRA_SPECIFY_COLS, const wxValidator& validator = wxDefaultValidator, const wxString& name = "radioBox")
Constructor, creating and showing a radiobox.
Parameters
-------------------
parent = Parent window. Must not be NULL.
id = Window identifier. A value of -1 indicates a default value.
label = Label for the static box surrounding the radio buttons.
pos = Window position. If the position (-1, -1) is specified then a default position is chosen.
size = Window size. If the default size (-1, -1) is specified then a default size is chosen.
n = Number of choices with which to initialize the radiobox.
choices = An array of choices with which to initialize the radiobox.
majorDimension = Specifies the maximum number of rows (if style contains wxRA_SPECIFY_ROWS) or columns (if style contains wxRA_SPECIFY_COLS) for a two-dimensional radiobox.
style = Window style. See wxRadioBox.
validator = Window validator.
name = Window name.
"""

View File

@@ -1,152 +0,0 @@
from wxPython.wx import *
#---------------------------------------------------------------------------
class TestSashWindow(wxPanel):
ID_WINDOW_TOP = 5100
ID_WINDOW_LEFT1 = 5101
ID_WINDOW_LEFT2 = 5102
ID_WINDOW_BOTTOM = 5103
def __init__(self, parent, log):
wxPanel.__init__(self, parent, -1)
self.log = log
EVT_SASH_DRAGGED_RANGE(self, self.ID_WINDOW_TOP,
self.ID_WINDOW_BOTTOM, self.OnSashDrag)
# Create some layout windows
# A window like a toolbar
win = wxSashLayoutWindow(self, self.ID_WINDOW_TOP, wxDefaultPosition,
wxSize(200, 30), wxNO_BORDER|wxSW_3D)
win.SetDefaultSize(wxSize(1000, 30))
win.SetOrientation(wxLAYOUT_HORIZONTAL)
win.SetAlignment(wxLAYOUT_TOP)
win.SetBackgroundColour(wxColour(255, 0, 0))
win.SetSashVisible(wxSASH_BOTTOM, true)
self.topWindow = win
# A window like a statusbar
win = wxSashLayoutWindow(self, self.ID_WINDOW_BOTTOM,
wxDefaultPosition, wxSize(200, 30),
wxNO_BORDER|wxSW_3D)
win.SetDefaultSize(wxSize(1000, 30))
win.SetOrientation(wxLAYOUT_HORIZONTAL)
win.SetAlignment(wxLAYOUT_BOTTOM)
win.SetBackgroundColour(wxColour(0, 0, 255))
win.SetSashVisible(wxSASH_TOP, true)
self.bottomWindow = win
# A window to the left of the client window
win = wxSashLayoutWindow(self, self.ID_WINDOW_LEFT1,
wxDefaultPosition, wxSize(200, 30),
wxNO_BORDER|wxSW_3D)
win.SetDefaultSize(wxSize(120, 1000))
win.SetOrientation(wxLAYOUT_VERTICAL)
win.SetAlignment(wxLAYOUT_LEFT)
win.SetBackgroundColour(wxColour(0, 255, 0))
win.SetSashVisible(wxSASH_RIGHT, TRUE)
win.SetExtraBorderSize(10)
textWindow = wxTextCtrl(win, -1, "", wxDefaultPosition, wxDefaultSize,
wxTE_MULTILINE|wxSUNKEN_BORDER)
textWindow.SetValue("A help window")
self.leftWindow1 = win
# Another window to the left of the client window
win = wxSashLayoutWindow(self, self.ID_WINDOW_LEFT2,
wxDefaultPosition, wxSize(200, 30),
wxNO_BORDER|wxSW_3D)
win.SetDefaultSize(wxSize(120, 1000))
win.SetOrientation(wxLAYOUT_VERTICAL)
win.SetAlignment(wxLAYOUT_LEFT)
win.SetBackgroundColour(wxColour(0, 255, 255))
win.SetSashVisible(wxSASH_RIGHT, TRUE)
self.leftWindow2 = win
def OnSashDrag(self, event):
if event.GetDragStatus() == wxSASH_STATUS_OUT_OF_RANGE:
return
eID = event.GetId()
if eID == self.ID_WINDOW_TOP:
self.topWindow.SetDefaultSize(wxSize(1000, event.GetDragRect().height))
elif eID == self.ID_WINDOW_LEFT1:
self.leftWindow1.SetDefaultSize(wxSize(event.GetDragRect().width, 1000))
elif eID == self.ID_WINDOW_LEFT2:
self.leftWindow2.SetDefaultSize(wxSize(event.GetDragRect().width, 1000))
elif eID == self.ID_WINDOW_BOTTOM:
self.bottomWindow.SetDefaultSize(wxSize(1000, event.GetDragRect().height))
wxLayoutAlgorithm().LayoutWindow(self)
def OnSize(self, event):
wxLayoutAlgorithm().LayoutWindow(self)
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestSashWindow(nb, log)
return win
#---------------------------------------------------------------------------
overview = """\
wxSashLayoutWindow responds to OnCalculateLayout events generated by wxLayoutAlgorithm. It allows the application to use simple accessors to specify how the window should be laid out, rather than having to respond to events. The fact that the class derives from wxSashWindow allows sashes to be used if required, to allow the windows to be user-resizable.
wxSashLayoutWindow()
-------------------------------------------
Default constructor.
wxSashLayoutWindow(wxSashLayoutWindow* parent, wxSashLayoutWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxCLIP_CHILDREN | wxSW_3D, const wxString& name = "layoutWindow")
Constructs a sash layout window, which can be a child of a frame, dialog or any other non-control window.
Parameters
-------------------
parent = Pointer to a parent window.
id = Window identifier. If -1, will automatically create an identifier.
pos = Window position. wxDefaultPosition is (-1, -1) which indicates that wxSashLayoutWindows should generate a default position for the window. If using the wxSashLayoutWindow class directly, supply an actual position.
size = Window size. wxDefaultSize is (-1, -1) which indicates that wxSashLayoutWindows should generate a default size for the window.
style = Window style. For window styles, please see wxSashLayoutWindow.
name = Window name.
"""

View File

@@ -1,24 +0,0 @@
from wxPython.wx import *
from wxPython.lib.dialogs import wxScrolledMessageDialog
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
f = open("Main.py", "r")
msg = f.read()
dlg = wxScrolledMessageDialog(frame, msg, "message test")
dlg.ShowModal()
#---------------------------------------------------------------------------
overview = """\
"""

View File

@@ -1,129 +0,0 @@
from wxPython.wx import *
#---------------------------------------------------------------------------
class MyCanvas(wxScrolledWindow):
def __init__(self, parent):
wxScrolledWindow.__init__(self, parent, -1, wxPoint(0, 0), wxPyDefaultSize, wxSUNKEN_BORDER)
self.lines = []
self.maxWidth = 1000
self.maxHeight = 1000
self.SetBackgroundColour(wxNamedColor("WHITE"))
self.Connect(-1, -1, wxEVT_LEFT_DOWN, self.OnLeftButtonEvent)
self.Connect(-1, -1, wxEVT_LEFT_UP, self.OnLeftButtonEvent)
self.Connect(-1, -1, wxEVT_MOTION, self.OnLeftButtonEvent)
self.SetCursor(wxStockCursor(wxCURSOR_PENCIL))
bmp = wxBitmap('bitmaps/test2.bmp', wxBITMAP_TYPE_BMP)
self.bmp = bmp
self.SetScrollbars(20, 20, self.maxWidth/20, self.maxHeight/20)
def getWidth(self):
return self.maxWidth
def getHeight(self):
return self.maxHeight
def OnPaint(self, event):
dc = wxPaintDC(self)
self.PrepareDC(dc)
self.DoDrawing(dc)
def DoDrawing(self, dc):
dc.BeginDrawing()
pen1 = wxPen(wxNamedColour('RED'))
dc.SetPen(pen1)
dc.DrawRectangle(5, 5, 50, 50)
dc.SetBrush(wxLIGHT_GREY_BRUSH)
dc.SetPen(wxPen(wxNamedColour('BLUE'), 4))
dc.DrawRectangle(15, 15, 50, 50)
font = wxFont(14, wxSWISS, wxNORMAL, wxNORMAL)
dc.SetFont(font)
dc.SetTextForeground(wxColour(0xFF, 0x20, 0xFF))
te = dc.GetTextExtent("Hello World")
dc.DrawText("Hello World", 60, 65)
dc.SetPen(wxPen(wxNamedColour('VIOLET'), 4))
dc.DrawLine(5, 65+te[1], 60+te[0], 65+te[1])
lst = [(100,110), (150,110), (150,160), (100,160)]
dc.DrawLines(lst, -60)
dc.SetPen(wxGREY_PEN)
dc.DrawPolygon(lst, 75)
dc.SetPen(wxGREEN_PEN)
dc.DrawSpline(lst+[(100,100)])
dc.DrawBitmap(self.bmp, 200, 20)
dc.SetTextForeground(wxColour(0, 0xFF, 0x80))
dc.DrawText("a bitmap", 200, 85)
self.DrawSavedLines(dc)
dc.EndDrawing()
def DrawSavedLines(self, dc):
dc.SetPen(wxPen(wxNamedColour('MEDIUM FOREST GREEN'), 4))
for line in self.lines:
for coords in line:
apply(dc.DrawLine, coords)
def SetXY(self, event):
self.x, self.y = self.ConvertEventCoords(event)
def ConvertEventCoords(self, event):
xView, yView = self.ViewStart()
xDelta, yDelta = self.GetScrollPixelsPerUnit()
return (event.GetX() + (xView * xDelta),
event.GetY() + (yView * yDelta))
def OnLeftButtonEvent(self, event):
if event.LeftDown():
self.SetXY(event)
self.curLine = []
elif event.Dragging():
dc = wxClientDC(self)
self.PrepareDC(dc)
dc.BeginDrawing()
dc.SetPen(wxPen(wxNamedColour('MEDIUM FOREST GREEN'), 4))
coords = (self.x, self.y) + self.ConvertEventCoords(event)
self.curLine.append(coords)
apply(dc.DrawLine, coords)
self.SetXY(event)
dc.EndDrawing()
elif event.LeftUp():
self.lines.append(self.curLine)
self.curLine = []
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
win = MyCanvas(nb)
return win
#---------------------------------------------------------------------------
overview = """\
"""

View File

@@ -1,59 +0,0 @@
from wxPython.wx import *
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
dlg = wxSingleChoiceDialog(frame, 'Test Single Choice', 'The Caption',
['zero', 'one', 'two', 'three', 'four', 'five',
'six', 'seven', 'eight'])
if dlg.ShowModal() == wxID_OK:
log.WriteText('You selected: %s\n' % dlg.GetStringSelection())
dlg.Destroy()
#---------------------------------------------------------------------------
overview = """\
This class represents a dialog that shows a list of strings, and allows the user to select one. Double-clicking on a list item is equivalent to single-clicking and then pressing OK.
wxSingleChoiceDialog()
---------------------------------------------
wxSingleChoiceDialog(wxWindow* parent, const wxString& message, const wxString& caption, int n, const wxString* choices, char** clientData = NULL, long style = wxOK | wxCANCEL | wxCENTRE, const wxPoint& pos = wxDefaultPosition)
Constructor, taking an array of wxString choices and optional client data.
Parameters
-------------------
parent = Parent window.
message = Message to show on the dialog.
caption = The dialog caption.
n = The number of choices.
choices = An array of strings, or a string list, containing the choices.
style = A dialog style (bitlist) containing flags chosen from the following:
wxOK Show an OK button.
wxCANCEL Show a Cancel button.
wxCENTRE Centre the message. Not Windows.
pos = Dialog position.
"""

View File

@@ -1,41 +0,0 @@
from wxPython.wx import *
import string
#----------------------------------------------------------------------
class TestPanel(wxPanel):
def __init__(self, parent, log):
wxPanel.__init__(self, parent, -1)
self.log = log
self.count = 0
wxStaticText(self, -1, "This is a wxSlider.", wxPoint(45, 15))
slider = wxSlider(self, 100, 25, 1, 100, wxPoint(30, 60),
wxSize(250, -1),
wxSL_HORIZONTAL | wxSL_AUTOTICKS | wxSL_LABELS )
slider.SetTickFreq(5, 1)
#----------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestPanel(nb, log)
return win
#----------------------------------------------------------------------
overview = """\
"""

View File

@@ -1,49 +0,0 @@
from wxPython.wx import *
import string
#----------------------------------------------------------------------
class TestPanel(wxPanel):
def __init__(self, parent, log):
wxPanel.__init__(self, parent, -1)
self.log = log
self.count = 0
wxStaticText(self, -1, "This example uses the wxSpinButton control.",
wxPoint(45, 15))
self.text = wxTextCtrl(self, -1, "1", wxPoint(30, 50), wxSize(60, -1))
h = self.text.GetSize().height
self.spin = wxSpinButton(self, 20, wxPoint(92, 50), wxSize(h*2, h))
self.spin.SetRange(1, 100)
self.spin.SetValue(1)
EVT_SPIN(self, 20, self.OnSpin)
def OnSpin(self, event):
self.text.SetValue(str(event.GetPosition()))
#----------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestPanel(nb, log)
return win
#----------------------------------------------------------------------
overview = """\
"""

View File

@@ -1,67 +0,0 @@
from wxPython.wx import *
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
splitter = wxSplitterWindow(nb, -1)
p1 = wxWindow(splitter, -1)
p1.SetBackgroundColour(wxRED)
wxStaticText(p1, -1, "Panel One", wxPoint(5,5)).SetBackgroundColour(wxRED)
p2 = wxWindow(splitter, -1)
p2.SetBackgroundColour(wxBLUE)
wxStaticText(p2, -1, "Panel Two", wxPoint(5,5)).SetBackgroundColour(wxBLUE)
splitter.SplitVertically(p1, p2)
splitter.SetSashPosition(100)
splitter.SetMinimumPaneSize(20)
return splitter
#---------------------------------------------------------------------------
overview = """\
This class manages up to two subwindows. The current view can be split into two programmatically (perhaps from a menu command), and unsplit either programmatically or via the wxSplitterWindow user interface.
wxSplitterWindow()
-----------------------------------
Default constructor.
wxSplitterWindow(wxWindow* parent, wxWindowID id, int x, const wxPoint& point = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style=wxSP_3D, const wxString& name = "splitterWindow")
Constructor for creating the window.
Parameters
-------------------
parent = The parent of the splitter window.
id = The window identifier.
pos = The window position.
size = The window size.
style = The window style. See wxSplitterWindow.
name = The window name.
"""

View File

@@ -1,41 +0,0 @@
from wxPython.wx import *
import string
#----------------------------------------------------------------------
class TestPanel(wxPanel):
def __init__(self, parent, log):
wxPanel.__init__(self, parent, -1)
self.log = log
self.count = 0
wxStaticText(self, -1, "This is a wxStaticBitmap.", wxPoint(45, 15))
bmp = wxBitmap('bitmaps/test2.bmp', wxBITMAP_TYPE_BMP)
wxStaticBitmap(self, -1, bmp, wxPoint(80, 50),
wxSize(bmp.GetWidth(), bmp.GetHeight()))
#----------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestPanel(nb, log)
return win
#----------------------------------------------------------------------
overview = """\
"""

View File

@@ -1,73 +0,0 @@
from wxPython.wx import *
#---------------------------------------------------------------------------
class TestPanel(wxPanel):
def __init__(self, parent):
wxPanel.__init__(self, parent, -1)
wxStaticText(self, -1, "This is an example of static text",
wxPoint(20, 10))
wxStaticText(self, -1, "using the wxStaticText Control.",
wxPoint(20, 30))
wxStaticText(self, -1, "Is this yellow?",
wxPoint(20, 70)).SetBackgroundColour(wxNamedColour('Yellow'))
str = "This is a different font."
text = wxStaticText(self, -1, str, wxPoint(20, 100))
font = wxFont(20, wxSWISS, wxNORMAL, wxNORMAL, false, "Arial")
w, h, d, e = self.GetFullTextExtent(str, font)
text.SetFont(font)
text.SetSize(wxSize(w, h))
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
panel = TestPanel(nb)
return panel
#---------------------------------------------------------------------------
overview = '''\
A static text control displays one or more lines of read-only text.
wxStaticText()
-------------------------
Default constructor.
wxStaticText(wxWindow* parent, wxWindowID id, const wxString& label = "", const wxPoint& pos, const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = "staticText")
Constructor, creating and showing a text control.
Parameters
-------------------
parent = Parent window. Should not be NULL.
id = Control identifier. A value of -1 denotes a default value.
label = Text label.
pos = Window position.
size = Window size.
style = Window style. See wxStaticText.
name = Window name.
'''
#---------------------------------------------------------------------------

View File

@@ -1,114 +0,0 @@
from wxPython.wx import *
import time
#---------------------------------------------------------------------------
class CustomStatusBar(wxStatusBar):
def __init__(self, parent, log):
wxStatusBar.__init__(self, parent, -1)
self.SetFieldsCount(3)
self.log = log
self.SetStatusText("A Custom StatusBar...", 0)
self.cb = wxCheckBox(self, 1001, "toggle clock")
EVT_CHECKBOX(self, 1001, self.OnToggleClock)
self.cb.SetValue(true)
# figure out how tall to make it.
dc = wxClientDC(self)
dc.SetFont(self.GetFont())
(w,h) = dc.GetTextExtent('X')
h = int(h * 1.8)
self.SetSize(wxSize(100, h))
# start our timer
self.timer = wxPyTimer(self.Notify)
self.timer.Start(1000)
self.Notify()
# Time-out handler
def Notify(self):
t = time.localtime(time.time())
st = time.strftime("%d-%b-%Y %I:%M:%S", t)
self.SetStatusText(st, 2)
self.log.WriteText("tick...\n")
# the checkbox was clicked
def OnToggleClock(self, event):
if self.cb.GetValue():
self.timer.Start(1000)
self.Notify()
else:
self.timer.Stop()
# reposition the checkbox
def OnSize(self, event):
rect = self.GetFieldRect(1)
self.cb.SetPosition(wxPoint(rect.x+2, rect.y+2))
self.cb.SetSize(wxSize(rect.width-4, rect.height-4))
class TestCustomStatusBar(wxFrame):
def __init__(self, parent, log):
wxFrame.__init__(self, parent, -1, 'Test Custom StatusBar',
wxPoint(0,0), wxSize(500, 300))
wxWindow(self, -1).SetBackgroundColour(wxNamedColour("WHITE"))
self.sb = CustomStatusBar(self, log)
self.SetStatusBar(self.sb)
def OnCloseWindow(self, event):
self.sb.timer.Stop()
del self.sb.timer
self.Destroy()
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestCustomStatusBar(frame, log)
frame.otherWin = win
win.Show(true)
#---------------------------------------------------------------------------
overview = """\
A status bar is a narrow window that can be placed along the bottom of a frame to give small amounts of status information. It can contain one or more fields, one or more of which can be variable length according to the size of the window.
wxStatusBar()
----------------------------
Default constructor.
wxStatusBar(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = "statusBar")
Constructor, creating the window.
Parameters
-------------------
parent = The window parent, usually a frame.
id = The window identifier. It may take a value of -1 to indicate a default value.
pos = The window position. A value of (-1, -1) indicates a default position, chosen by either the windowing system or wxWindows, depending on platform.
size = The window size. A value of (-1, -1) indicates a default size, chosen by either the windowing system or wxWindows, depending on platform.
style = The window style. See wxStatusBar.
name = The name of the window. This parameter is used to associate a name with the item, allowing the application user to set Motif resource values for individual windows.
"""

View File

@@ -1,40 +0,0 @@
from wxPython.wx import *
#---------------------------------------------------------------------------
class TestPanel(wxPanel):
def __init__(self, parent, log):
wxPanel.__init__(self, parent, -1)
self.log = log
wxStaticText(self, -1, "wxTextCtrl", wxPoint(5, 25), wxSize(75, 20))
wxTextCtrl(self, 10, "", wxPoint(80, 25), wxSize(150, 20))
EVT_TEXT(self, 10, self.EvtText)
wxStaticText(self, -1, "Passsword", wxPoint(5, 50), wxSize(75, 20))
wxTextCtrl(self, 20, "", wxPoint(80, 50), wxSize(150, 20), wxTE_PASSWORD)
EVT_TEXT(self, 20, self.EvtText)
wxStaticText(self, -1, "Multi-line", wxPoint(5, 75), wxSize(75, 20))
wxTextCtrl(self, 30, "", wxPoint(80, 75), wxSize(200, 150), wxTE_MULTILINE)
EVT_TEXT(self, 30, self.EvtText)
def EvtText(self, event):
self.log.WriteText('EvtText: %s\n' % event.GetString())
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestPanel(nb, log)
return win
#---------------------------------------------------------------------------
overview = """\
"""

View File

@@ -1,50 +0,0 @@
from wxPython.wx import *
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
dlg = wxTextEntryDialog(frame, 'What is your favorite programming language?',
'Duh??', 'Python')
dlg.SetValue("Python is the best!") #### this doesn't work?
if dlg.ShowModal() == wxID_OK:
log.WriteText('You entered: %s\n' % dlg.GetValue())
dlg.Destroy()
#---------------------------------------------------------------------------
overview = """\
This class represents a dialog that requests a one-line text string from the user. It is implemented as a generic wxWindows dialog.
wxTextEntryDialog()
----------------------------------
wxTextEntryDialog(wxWindow* parent, const wxString& message, const wxString& caption = "Please enter text", const wxString& defaultValue = "", long style = wxOK | wxCANCEL | wxCENTRE, const wxPoint& pos = wxDefaultPosition)
Constructor. Use wxTextEntryDialog::ShowModal to show the dialog.
Parameters
-------------------
parent = Parent window.
message = Message to show on the dialog.
defaultValue = The default value, which may be the empty string.
style = A dialog style, specifying the buttons (wxOK, wxCANCEL) and an optional wxCENTRE style.
pos = Dialog position.
"""

View File

@@ -1,67 +0,0 @@
from wxPython.wx import *
import time
#---------------------------------------------------------------------------
class TestTimer(wxTimer):
def __init__(self, log = None):
wxTimer.__init__(self)
self.log = log
def Notify(self):
wxBell()
if self.log:
self.log.WriteText('beep!\n')
#---------------------------------------------------------------------------
_timer = TestTimer()
class TestTimerWin(wxPanel):
def __init__(self, parent, log):
_timer.log = log
wxPanel.__init__(self, parent, -1)
wxStaticText(self, -1, "This is a timer example",
wxPoint(15, 30))
wxButton(self, 11101, ' Start ', wxPoint(15, 75), wxDefaultSize)
wxButton(self, 11102, ' Stop ', wxPoint(77, 75), wxDefaultSize)
EVT_BUTTON(self, 11101, self.OnStart)
EVT_BUTTON(self, 11102, self.OnStop)
def OnStart(self, event):
_timer.Start(1000)
def OnStop(self, event):
_timer.Stop()
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestTimerWin(nb, log)
return win
#---------------------------------------------------------------------------
overview = """\
The wxTimer class allows you to execute code at specified intervals. To use it, derive a new class and override the Notify member to perform the required action. Start with Start, stop with Stop, it's as simple as that.
wxTimer()
------------------
Constructor.
"""

View File

@@ -1,125 +0,0 @@
from wxPython.wx import *
#---------------------------------------------------------------------------
class TestToolBar(wxFrame):
def __init__(self, parent, log):
wxFrame.__init__(self, parent, -1, 'Test ToolBar',
wxPoint(0,0), wxSize(500, 300))
self.log = log
wxWindow(self, -1).SetBackgroundColour(wxNamedColour("WHITE"))
tb = self.CreateToolBar(wxTB_HORIZONTAL|wxNO_BORDER)
#tb = wxToolBar(self, -1, wxDefaultPosition, wxDefaultSize,
# wxTB_HORIZONTAL | wxNO_BORDER | wxTB_FLAT)
#self.SetToolBar(tb)
self.CreateStatusBar()
tb.AddTool(10, wxNoRefBitmap('bitmaps/new.bmp', wxBITMAP_TYPE_BMP),
wxNullBitmap, false, -1, -1, "New", "Long help for 'New'")
EVT_TOOL(self, 10, self.OnToolClick)
EVT_TOOL_RCLICKED(self, 10, self.OnToolRClick)
tb.AddTool(20, wxNoRefBitmap('bitmaps/open.bmp', wxBITMAP_TYPE_BMP),
wxNullBitmap, false, -1, -1, "Open")
EVT_TOOL(self, 20, self.OnToolClick)
EVT_TOOL_RCLICKED(self, 20, self.OnToolRClick)
tb.AddSeparator()
tb.AddTool(30, wxNoRefBitmap('bitmaps/copy.bmp', wxBITMAP_TYPE_BMP),
wxNullBitmap, false, -1, -1, "Copy")
EVT_TOOL(self, 30, self.OnToolClick)
EVT_TOOL_RCLICKED(self, 30, self.OnToolRClick)
tb.AddTool(40, wxNoRefBitmap('bitmaps/paste.bmp', wxBITMAP_TYPE_BMP),
wxNullBitmap, false, -1, -1, "Paste")
EVT_TOOL(self, 40, self.OnToolClick)
EVT_TOOL_RCLICKED(self, 40, self.OnToolRClick)
tb.AddSeparator()
tb.AddTool(50, wxNoRefBitmap('bitmaps/tog1.bmp', wxBITMAP_TYPE_BMP),
wxNullBitmap, true, -1, -1, "Toggle this")
EVT_TOOL(self, 50, self.OnToolClick)
EVT_TOOL_RCLICKED(self, 50, self.OnToolRClick)
tb.AddTool(60, wxNoRefBitmap('bitmaps/tog1.bmp', wxBITMAP_TYPE_BMP),
wxNoRefBitmap('bitmaps/tog2.bmp', wxBITMAP_TYPE_BMP),
true, -1, -1, "Toggle with 2 bitmaps")
EVT_TOOL(self, 60, self.OnToolClick)
EVT_TOOL_RCLICKED(self, 60, self.OnToolRClick)
tb.Realize()
def OnCloseWindow(self, event):
self.Destroy()
def OnToolClick(self, event):
self.log.WriteText("tool %s clicked\n" % event.GetId())
def OnToolRClick(self, event):
self.log.WriteText("tool %s right-clicked\n" % event.GetId())
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestToolBar(frame, log)
frame.otherWin = win
win.Show(true)
#---------------------------------------------------------------------------
overview = """\
The name wxToolBar is defined to be a synonym for one of the following classes:
wxToolBar95 The native Windows 95 toolbar. Used on Windows 95, NT 4 and above.
wxToolBarMSW A Windows implementation. Used on 16-bit Windows.
wxToolBarGTK The GTK toolbar.
wxToolBarSimple A simple implementation, with scrolling. Used on platforms with no native toolbar control, or where scrolling is required.
wxToolBar()
-----------------------
Default constructor.
wxToolBar(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxTB_HORIZONTAL | wxNO_BORDER, const wxString& name = wxPanelNameStr)
Constructs a toolbar.
Parameters
-------------------
parent = Pointer to a parent window.
id = Window identifier. If -1, will automatically create an identifier.
pos = Window position. wxDefaultPosition is (-1, -1) which indicates that wxWindows should generate a default position for the window. If using the wxWindow class directly, supply an actual position.
size = Window size. wxDefaultSize is (-1, -1) which indicates that wxWindows should generate a default size for the window.
style = Window style. See wxToolBar for details.
name = Window name.
"""

View File

@@ -1,118 +0,0 @@
from wxPython.wx import *
#---------------------------------------------------------------------------
class TestTreeCtrlPanel(wxPanel):
def __init__(self, parent, log):
wxPanel.__init__(self, parent, -1)
self.log = log
tID = NewId()
self.tree = wxTreeCtrl(self, tID)
root = self.tree.AddRoot("The Root Item")
for x in range(15):
child = self.tree.AppendItem(root, "Item %d" % x)
for y in range(5):
last = self.tree.AppendItem(child, "item %d-%s" % (x, chr(ord("a")+y)))
for z in range(5):
self.tree.AppendItem(last, "item %d-%s-%d" % (x, chr(ord("a")+y), z))
self.tree.Expand(root)
EVT_TREE_ITEM_EXPANDED (self, tID, self.OnItemExpanded)
EVT_TREE_ITEM_COLLAPSED (self, tID, self.OnItemCollapsed)
EVT_TREE_SEL_CHANGED (self, tID, self.OnSelChanged)
EVT_LEFT_DCLICK(self.tree, self.OnLeftDClick)
EVT_RIGHT_DOWN(self.tree, self.OnRightClick)
EVT_RIGHT_UP(self.tree, self.OnRightUp)
def OnRightClick(self, event):
(x,y) = event.Position();
item = self.tree.HitTest(wxPoint(x,y))
self.log.WriteText("OnRightClick: %s\n" % self.tree.GetItemText(item))
self.tree.SelectItem(item)
def OnRightUp(self, event):
(x,y) = event.Position();
item = self.tree.HitTest(wxPoint(x,y))
self.log.WriteText("OnRightUp: %s\n" % self.tree.GetItemText(item))
def OnLeftDClick(self, event):
(x,y) = event.Position();
item = self.tree.HitTest(wxPoint(x,y))
self.log.WriteText("OnLeftDClick: %s\n" % self.tree.GetItemText(item))
def OnSize(self, event):
w,h = self.GetClientSizeTuple()
self.tree.SetDimensions(0, 0, w, h)
def OnItemExpanded(self, event):
item = event.GetItem()
self.log.WriteText("OnItemExpanded: %s\n" % self.tree.GetItemText(item))
def OnItemCollapsed(self, event):
item = event.GetItem()
self.log.WriteText("OnItemCollapsed: %s\n" % self.tree.GetItemText(item))
def OnSelChanged(self, event):
item = event.GetItem()
self.log.WriteText("OnSelChanged: %s\n" % self.tree.GetItemText(item))
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestTreeCtrlPanel(nb, log)
return win
#---------------------------------------------------------------------------
overview = """\
A tree control presents information as a hierarchy, with items that may be expanded to show further items. Items in a tree control are referenced by wxTreeItemId handles.
wxTreeCtrl()
-------------------------
Default constructor.
wxTreeCtrl(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxTR_HAS_BUTTONS, const wxValidator& validator = wxDefaultValidator, const wxString& name = "listCtrl")
Constructor, creating and showing a tree control.
Parameters
-------------------
parent = Parent window. Must not be NULL.
id = Window identifier. A value of -1 indicates a default value.
pos = Window position.
size = Window size. If the default size (-1, -1) is specified then the window is sized appropriately.
style = Window style. See wxTreeCtrl.
validator = Window validator.
name = Window name.
"""

View File

@@ -1,6 +0,0 @@
*.gz
*.rpm
*.zip
filelist
wxPython.spec
wxp2.wse

View File

@@ -1,5 +0,0 @@
sourcedir : .
builddir : .
rpmdir : .
srcrpmdir : .

View File

@@ -1,26 +0,0 @@
#!/bin/bash
if [ -z $1 ]; then
echo "Please specify a version number on the command line."
exit 1
fi
if [ ! -f wxPython.spec.in ]; then
echo "Please run this script from the directory containing the wxPython.spec.in file."
exit 1
fi
strip /usr/lib/python1.5/site-packages/wxPython/wxcmodule.so
cat wxPython.spec.in | sed s/__VERSION__/$1/g > wxPython.spec
mkdir /usr/doc/wxPython-$1
cp ../README.txt /usr/doc/wxPython-$1
rpm -bb wxPython.spec
mv /usr/src/redhat/RPMS/*/wxPython*.rpm .
rm -r /usr/doc/wxPython-$1

View File

@@ -1,36 +0,0 @@
#!/bin/bash
#----------------------------------------------------------------------
# Make a source distribution as a tar.gz file. This script should be
# run from the directory that holds the wxPython dir (../..) and be
# given a version number as an parameter. The best way to do this is
# run "make dist" in the wxPython/src/ directory.
#----------------------------------------------------------------------
if [ -z $1 ]; then
echo "Please specify a version number on the command line."
exit 1
fi
if [ ! -d wxPython ]; then
echo "Please run this script from the directory containing the wxPython sources."
exit 1
fi
rm -f wxPython/distrib/filelist
for x in `cat wxPython/distrib/wxPython.rsp`; do
ls $x >> wxPython/distrib/filelist
done
tar cf wxPython/distrib/dist-temp.tar -T wxPython/distrib/filelist
cd wxPython/distrib
tar xf dist-temp.tar
rm dist-temp.tar
mv wxPython wxPython-$1
tar cvf wxPython-$1.tar wxPython-$1
gzip wxPython-$1.tar
rm -rf wxPython-$1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

View File

@@ -1,44 +0,0 @@
wxPython/*.txt
wxPython/demo/*.py
wxPython/demo/bitmaps/*.bmp
wxPython/demo/bitmaps/*.ico
wxPython/demo/bitmaps/*.gif
wxPython/demo/bitmaps/*.png
wxPython/demo/bitmaps/*.jpg
wxPython/demo/README.txt
wxPython/lib/*.py
wxPython/lib/*.txt
wxPython/lib/sizers/*.py
wxPython/lib/sizers/*.txt
wxPython/src/*.i
wxPython/src/*.py
wxPython/src/*.cpp
wxPython/src/*.h
wxPython/src/*.ico
wxPython/src/*.def
wxPython/src/*.rc
wxPython/src/makefile.*
wxPython/src/Makefile.pre.in
wxPython/src/Setup.*
wxPython/src/msw/*.cpp
wxPython/src/msw/*.h
wxPython/src/msw/*.py
wxPython/src/gtk/*.cpp
wxPython/src/gtk/*.h
wxPython/src/gtk/*.py
wxpython/src/motif/*.cpp
wxPython/src/motif/*.h
wxPython/src/motif/*.py
wxPython/src/qt/*.cpp
wxPython/src/qt/*.h
wxPython/src/qt/*.py
wxPython/SWIG.patches/*.patch

View File

@@ -1,41 +0,0 @@
Summary: Cross platform GUI toolkit for use with the Python language.
Name: wxPython
Version: __VERSION__
Release: 1
Copyright: wxWindows
Group: Development/Languages/Python
Source: http://alldunn.com/wxPython/wxPython-__VERSION__.tar.gz
Packager: Robin Dunn <robin@alldunn.com>
Vendor: Total Control Software
Requires: python >= 1.5.1
Prefix: /usr/lib/python1.5/site-packages
%description
This Python package consists of an extension module that wraps around the
wxWindows C++ class library and provides a cross platform GUI toolkit for
use with Python. Currently supported platforms are Win32 and Unix/GTK/X.
Python is an interpreted, interactive, object-oriented programming language.
Python combines remarkable power with very clear syntax. It has modules,
classes, exceptions, very high level dynamic data types, and dynamic typing.
There are interfaces to many system calls and libraries, and new built-in
modules are easily written in C or C++. Python is also usable as an
extension language for applications that need a programmable interface.
#%prep
#%setup
#cd wxPython-__VERSION__
#make -f Makefile.pre.in boot
#
#%build
#make
#
#
#%install
#make install
%files
%doc /usr/doc/wxPython-__VERSION__/README.txt
/usr/lib/python1.5/site-packages/wxPython

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -1,17 +0,0 @@
@echo off
zip -@ -r wxPython\wxPython-src-%1.zip < wxPython\distrib\wxPython.rsp
mkdir wxPython\docs
copy %WXWIN%\docs\html\wx\*.gif wxPython\docs
copy %WXWIN%\docs\html\wx\*.htm wxPython\docs
copy wxPython\docs\wx.htm wxPython\docs\index.htm
zip -r wxPython\wxPython-docs-%1.zip wxPython\docs
del /y wxPython\docs\*.*
rmdir wxPython\docs
move /R wxPython\*.zip wxPython\distrib

View File

@@ -1 +0,0 @@
*.pyc

View File

@@ -1,3 +0,0 @@

View File

@@ -1,106 +0,0 @@
from wxPython.wx import *
from layoutf import Layoutf
import string
class wxScrolledMessageDialog(wxDialog):
def __init__(self, parent, msg, caption, pos = None, size = None):
if not pos:
pos = wxDefaultPosition
if not size:
size = wxSize(500,300)
wxDialog.__init__(self, parent, -1, caption, pos, size)
text = wxTextCtrl(self, -1, msg, wxDefaultPosition,
wxDefaultSize,
wxTE_MULTILINE | wxTE_READONLY)
ok = wxButton(self, wxID_OK, "OK")
text.SetConstraints(Layoutf('t=t5#1;b=t5#2;l=l5#1;r=r5#1', (self,ok)))
ok.SetConstraints(Layoutf('b=b5#1;x%w50#1;w!80;h!25', (self,)))
self.SetAutoLayout(TRUE)
class wxMultipleChoiceDialog(wxDialog):
def __init__(self, parent, msg, title, lst, pos = None, size = None):
if not pos:
pos = wxDefaultPosition
if not size:
size = wxSize(200,200)
wxDialog.__init__(self, parent, -1, title, pos, size)
dc = wxClientDC(self)
height = 0
for line in string.split(msg,'\n'):
height = height + dc.GetTextExtent(msg)[1] + 4
stat = wxStaticText(self, -1, msg)
self.lbox = wxListBox(self, 100, wxDefaultPosition,
wxDefaultSize, lst, wxLB_MULTIPLE)
ok = wxButton(self, wxID_OK, "OK")
cancel = wxButton(self, wxID_CANCEL, "Cancel")
stat.SetConstraints(Layoutf('t=t10#1;l=l5#1;r=r5#1;h!%d' % (height,),
(self,)))
self.lbox.SetConstraints(Layoutf('t=b10#2;l=l5#1;r=r5#1;b=t5#3',
(self, stat, ok)))
ok.SetConstraints(Layoutf('b=b5#1;x%w25#1;w!80;h!25', (self,)))
cancel.SetConstraints(Layoutf('b=b5#1;x%w75#1;w!80;h!25', (self,)))
self.SetAutoLayout(TRUE)
self.lst = lst
def OnSize(self, event):
self.Layout()
def GetValue(self):
return self.lbox.GetSelections()
def GetValueString(self):
sel = self.lbox.GetSelections()
val = []
for i in sel:
val.append(self.lst[i])
return tuple(val)
if __name__ == '__main__':
class MyFrame(wxFrame):
def __init__(self):
wxFrame.__init__(self, NULL, -1, "hello",
wxDefaultPosition, wxSize(200,200))
wxButton(self, 100, "Multiple Test",wxPoint(0,0))
wxButton(self, 101, "Message Test", wxPoint(0,100))
EVT_BUTTON(self, 100, self.OnMultipleTest)
EVT_BUTTON(self, 101, self.OnMessageTest)
def OnMultipleTest(self, event):
self.lst = [ 'apple', 'pear', 'banana', 'coconut', 'orange',
'etc', 'etc..', 'etc...' ]
dlg = wxMultipleChoiceDialog(self,
"Pick some from\n this list\nblabla",
"m.s.d.", self.lst)
if (dlg.ShowModal() == wxID_OK):
print "Selection:", dlg.GetValue(), " -> ", dlg.GetValueString()
def OnMessageTest(self, event):
import sys;
f = open(sys.argv[0],"r")
msg = f.read()
dlg = wxScrolledMessageDialog(self, msg, "message test")
dlg.ShowModal()
class MyApp(wxApp):
def OnInit(self):
frame = MyFrame()
frame.Show(TRUE)
self.SetTopWindow(frame)
return TRUE
app = MyApp(0)
app.MainLoop()

View File

@@ -1,262 +0,0 @@
from wxPython.wx import wxLayoutConstraints,\
wxTop, wxLeft, wxBottom, wxRight, \
wxHeight, wxWidth, wxCentreX, wxCentreY
import re,string
class Layoutf(wxLayoutConstraints):
"""
The class Layoutf(wxLayoutConstraints) presents a simplification
of the wxLayoutConstraints syntax. The name Layoutf is choosen
because of the similarity with C's printf function.
Quick Example:
lc = Layoutf('t=t#1;l=r10#2;r!100;h%h50#1', (self, self.panel))
is equivalent to
lc = wxLayoutContraints()
lc.top.SameAs(self, wxTop)
lc.left.SameAs(self.panel, wxRight, 10)
lc.right.Absolute(100)
lc.height.PercentOf(self, wxHeight, 50)
Usage:
You can give a constraint string to the Layoutf constructor,
or use the 'pack' method. The following are equivalent:
lc = Layoutf('t=t#1;l=r#2;r!100;h%h50#1', (self, self.panel))
and
lc = Layoutf()
lc.pack('t=t#1;l=r#2;r!100;h%h50#1', (self, self.panel))
Besides 'pack' there's also 'debug_pack' which does not set
constraints, but prints traditional wxLayoutConstraint calls to
stdout.
The calls to the Layoutf constructor and pack methods have
the following argument list:
(constraint_string, objects_tuple)
Constraint String syntax:
Constraint directives are separated by semi-colons. You
generally (always?) need four directives to completely describe a
subwindow's location.
A single directive has either of the following forms:
1. <own attribute><compare operation>[numerical argument]
for example r!100 -> lc.right.Absolute(100) )
and w* -> lc.width.AsIs()
2. <own attribute><compare operation>[numerical argument]
#<compare object nr.>
for example t_10#2 (lc.top.Below(<second obj>, 10)
3. <own attribute><compare operation><compare attribute>
[numerical argument]#<compare object nr.>
for example w%h50#2 ( lc.width.PercentOf(<second obj>,
wxHeight, 50) and t=b#1 ( lc.top.SameAs(<first obj>,
wxBottom) )
Which one you need is defined by the <compare operation>
type. The following take type 1 (no object to compare with):
'!': 'Absolute', '?': 'Unconstrained', '*': 'AsIs'
These take type 2 (need to be compared with another object)
'<': 'LeftOf', '>': 'RightOf', '^': 'Above', '_': 'Below'
These take type 3 (need to be compared to another object
attribute)
'=': 'SameAs', '%': 'PercentOf'
For all types, the <own attribute> letter can be any of
't': 'top', 'l': 'left', 'b': 'bottom',
'r': 'right', 'h': 'height', 'w': 'width',
'x': 'centreX', 'y': 'centreY'
If the operation takes an (optional) numerical argument, place it
in [numerical argument]. For type 3 directives, the <compare
attribute> letter can be any of
't': 'wxTop', 'l': 'wxLeft', 'b': 'wxBottom'
'r': 'wxRight', 'h': 'wxHeight', 'w': 'wxWidth',
'x': 'wxCentreX', 'y': 'wxCentreY'
Note that these are the same letters as used for <own attribute>,
so you'll only need to remember one set. Finally, the object
whose attribute is refered to, is specified by #<compare object
nr>, where <compare object nr> is the 1-based (stupid, I know,
but I've gotten used to it) index of the object in the
objects_tuple argument.
Bugs:
Not entirely happy about the logic in the order of arguments
after the <compare operation> character.
Not all wxLayoutConstraint methods are included in the
syntax. However, the type 3 directives are generally the most
used. Further excuse: wxWindows layout constraints are at the
time of this writing not documented.
"""
attr_d = { 't': 'top', 'l': 'left', 'b': 'bottom',
'r': 'right', 'h': 'height', 'w': 'width',
'x': 'centreX', 'y': 'centreY' }
op_d = { '=': 'SameAs', '%': 'PercentOf', '<': 'LeftOf',
'>': 'RightOf', '^': 'Above', '_': 'Below',
'!': 'Absolute', '?': 'Unconstrained', '*': 'AsIs' }
cmp_d = { 't': 'wxTop', 'l': 'wxLeft', 'b': 'wxBottom',
'r': 'wxRight', 'h': 'wxHeight', 'w': 'wxWidth',
'x': 'wxCentreX', 'y': 'wxCentreY' }
rexp1 = re.compile('^\s*([tlrbhwxy])\s*([!\?\*])\s*(\d*)\s*$')
rexp2 = re.compile('^\s*([tlrbhwxy])\s*([=%<>^_])\s*([tlrbhwxy]?)\s*(\d*)\s*#(\d+)\s*$')
def __init__(self,pstr=None,winlist=None):
wxLayoutConstraints.__init__(self)
if pstr:
self.pack(pstr,winlist)
def pack(self, pstr, winlist):
pstr = string.lower(pstr)
for item in string.split(pstr,';'):
m = self.rexp1.match(item)
if m:
g = list(m.groups())
attr = getattr(self, self.attr_d[g[0]])
func = getattr(attr, self.op_d[g[1]])
if g[1] == '!':
func(int(g[2]))
else:
func()
continue
m = self.rexp2.match(item)
if not m: raise ValueError
g = list(m.groups())
attr = getattr(self, self.attr_d[g[0]])
func = getattr(attr, self.op_d[g[1]])
if g[3]: g[3] = int(g[3])
else: g[3] = None;
g[4] = int(g[4]) - 1
if g[1] in '<>^_':
if g[3]: func(winlist[g[4]], g[3])
else: func(winlist[g[4]])
else:
cmp = eval(self.cmp_d[g[2]])
if g[3]: func(winlist[g[4]], cmp, g[3])
else: func(winlist[g[4]], cmp)
def debug_pack(self, pstr, winlist):
pstr = string.lower(pstr)
for item in string.split(pstr,';'):
m = self.rexp1.match(item)
if m:
g = list(m.groups())
attr = getattr(self, self.attr_d[g[0]])
func = getattr(attr, self.op_d[g[1]])
if g[1] == '!':
print "%s.%s.%s(%s)" % \
('self',self.attr_d[g[0]],self.op_d[g[1]],g[2])
else:
print "%s.%s.%s()" % \
('self',self.attr_d[g[0]],self.op_d[g[1]])
continue
m = self.rexp2.match(item)
if not m: raise ValueError
g = list(m.groups())
if g[3]: g[3] = int(g[3])
else: g[3] = 0;
g[4] = int(g[4]) - 1
if g[1] in '<>^_':
if g[3]: print "%s.%s.%s(%s,%d)" % \
('self',self.attr_d[g[0]],self.op_d[g[1]],winlist[g[4]],
g[3])
else: print "%s.%s.%s(%s)" % \
('self',self.attr_d[g[0]],self.op_d[g[1]],winlist[g[4]])
else:
if g[3]: print "%s.%s.%s(%s,%s,%d)" % \
('self',self.attr_d[g[0]],self.op_d[g[1]],winlist[g[4]],
self.cmp_d[g[2]],g[3])
else: print "%s.%s.%s(%s,%s)" % \
('self',self.attr_d[g[0]],self.op_d[g[1]],winlist[g[4]],
self.cmp_d[g[2]])
if __name__=='__main__':
from wxPython.wx import *
class TestLayoutf(wxFrame):
def __init__(self, parent):
wxFrame.__init__(self, parent, -1, 'Test Layout Constraints',
wxPyDefaultPosition, wxSize(500, 300))
self.SetAutoLayout(true)
EVT_BUTTON(self, 100, self.OnButton)
EVT_BUTTON(self, 101, self.OnAbout)
self.panelA = wxWindow(self, -1, wxPyDefaultPosition, wxPyDefaultSize, wxSIMPLE_BORDER)
self.panelA.SetBackgroundColour(wxBLUE)
self.panelA.SetConstraints(Layoutf('t=t10#1;l=l10#1;b=b10#1;r%r50#1',(self,)))
self.panelB = wxWindow(self, -1, wxPyDefaultPosition, wxPyDefaultSize, wxSIMPLE_BORDER)
self.panelB.SetBackgroundColour(wxRED)
self.panelB.SetConstraints(Layoutf('t=t10#1;r=r10#1;b%b30#1;l>10#2', (self,self.panelA)))
self.panelC = wxWindow(self, -1, wxPyDefaultPosition, wxPyDefaultSize, wxSIMPLE_BORDER)
self.panelC.SetBackgroundColour(wxWHITE)
self.panelC.SetConstraints(Layoutf('t_10#3;r=r10#1;b=b10#1;l>10#2', (self,self.panelA,self.panelB)))
b = wxButton(self.panelA, 101, ' About: ')
b.SetConstraints(Layoutf('X=X#1;Y=Y#1;h*;w%w50#1', (self.panelA,)))
b = wxButton(self.panelB, 100, ' Panel B ')
b.SetConstraints(Layoutf('t=t2#1;r=r4#1;h*;w*', (self.panelB,)))
self.panelD = wxWindow(self.panelC, -1, wxPyDefaultPosition, wxPyDefaultSize, wxSIMPLE_BORDER)
self.panelD.SetBackgroundColour(wxGREEN)
self.panelD.SetConstraints(Layoutf('b%h50#1;r%w50#1;h=h#2;w=w#2', (self.panelC, b)))
b = wxButton(self.panelC, 100, ' Panel C ')
b.SetConstraints(Layoutf('t_#1;l>#1;h*;w*', (self.panelD,)))
wxStaticText(self.panelD, -1, "Panel D", wxPoint(4, 4)).SetBackgroundColour(wxGREEN)
def OnButton(self, event):
self.Close(true)
def OnAbout(self, event):
try:
from dialogs import wxScrolledMessageDialog
msg = wxScrolledMessageDialog(self, Layoutf.__doc__, "about")
msg.ShowModal()
except:
print msg
def OnCloseWindow(self, event):
self.Destroy()
class TestApp(wxApp):
def OnInit(self):
frame = TestLayoutf(NULL)
frame.Show(1)
self.SetTopWindow(frame)
return 1
app = TestApp(0)
app.MainLoop()

View File

@@ -1,2 +0,0 @@
*.pyc

View File

@@ -1,18 +0,0 @@
#----------------------------------------------------------------------------
# Name: __init__.py
# Purpose: The presence of this file turns this directory into a
# Python package.
#
# Author: Robin Dunn
#
# Created: 18-May-1999
# RCS-ID: $Id$
# Copyright: (c) 1998 by Total Control Software
# Licence: wxWindows license
#----------------------------------------------------------------------------
from sizer import *
from box import *
from border import *
#----------------------------------------------------------------------------

View File

@@ -1,109 +0,0 @@
#----------------------------------------------------------------------
# Name: wxPython.lib.sizers.border
# Purpose: A Sizer that wraps an empty border around its contents
#
# Author: Robin Dunn
#
# Created: 9-June-1999
# RCS-ID: $Id$
# Copyright: (c) 1998 by Total Control Software
# Licence: wxWindows license
#----------------------------------------------------------------------
from sizer import wxSizer
wxNORTH = 1
wxSOUTH = 2
wxEAST = 4
wxWEST = 8
wxALL = wxNORTH | wxSOUTH | wxEAST | wxWEST
#----------------------------------------------------------------------
class wxBorderSizer(wxSizer):
"""
wxBorderSizer
This sizer provides an empty buffer on one or more sides of it's
contents. It can only hold a single widget, but that can be a
sizer containing other items if you wish.
The sizer is constructed with a parameter specifying which sides
should have the border. You can use a logical OR of the following
values to specify the sides:
wxNORTH -- the top side
wxSOUTH -- the bottom side
wxEAST -- the right side
wxWEST -- the left side
wxALL -- all sides
The width in pixels of the border is specified when the child
widget is Added to the sizer.
"""
def __init__(self, sides = wxALL):
wxSizer.__init__(self)
self.sides = sides
def Add(self, widget, borderSize):
if self.children:
raise ValueError("wxBorderSizer can only contain one child.")
wxSizer.Add(self, widget, borderSize)
def CalcMin(self):
isSizer, widget, width, height, borderSize = self.children[0]
if isSizer:
width, height = widget.CalcMin()
if self.sides & wxEAST:
width = width + borderSize
if self.sides & wxWEST:
width = width + borderSize
if self.sides & wxNORTH:
height = height + borderSize
if self.sides & wxSOUTH:
height = height + borderSize
return width, height
def RecalcSizes(self):
isSizer, widget, width, height, borderSize = self.children[0]
width = self.size.width
height = self.size.height
px = self.origin.x
py = self.origin.y
if self.sides & wxWEST:
width = width - borderSize
px = px + borderSize
if self.sides & wxEAST:
width = width - borderSize
if self.sides & wxNORTH:
height = height - borderSize
py = py + borderSize
if self.sides & wxSOUTH:
height = height - borderSize
widget.SetDimensions(px, py, width, height)
#----------------------------------------------------------------------
#
# TODO... Make an abstract class wxBorder whose decendants can be added to
# a wxBorderSizer to provide drawing for the buffer area. Ideas are
# to provide a color border, beveled borders, rounded borders, etc.

View File

@@ -1,137 +0,0 @@
#----------------------------------------------------------------------
# Name: wxPython.lib.sizers.box
# Purpose: A sizer/layout managers for wxPython that places items in
# a stretchable box
#
# Author: Robin Dunn and Dirk Holtwick
#
# Created: 17-May-1999
# RCS-ID: $Id$
# Copyright: (c) 1998 by Total Control Software
# Licence: wxWindows license
#----------------------------------------------------------------------
from sizer import wxSizer
from wxPython.wx import wxVERTICAL, wxHORIZONTAL
#----------------------------------------------------------------------
class wxBoxSizer(wxSizer):
"""
wxBoxSizer
A Sizer that lays components out in a box, in the order they are
added to the layout manager, with a given orientation. The
orientation is specified in the constructor with either wxVERTICAL
or wxHORIZONTAL.
The optional parameter to the Add method (for this sizer it's
called the stretch flag) can be used to flag one or more components
as stretchable, meaning that they will expand to fill available
space in the given orientation. The default is zero, or not
stretchable.
If the stretch flag is non-zero then the widget will stretch. If
the sizer holds more than one item that is stretchable then they
share the available space.
If the strech flag is greater than 1 then it serves as a weighting
factor. Widgets with a flag of 2 will get twice as much space as
widgets with 1, etc.
"""
def __init__(self, orientation, size = None):
wxSizer.__init__(self, size)
self.orientation = orientation
def CalcMin(self):
self.stretchable = 0 # number of stretchable items
self.minWidth = 0 # minimal size
self.minHeight = 0
self.fixedWidth = 0 # size without stretched widgets
self.fixedHeight = 0
# iterate through children
for (isSizer, widget, width, height, stretch) in self.children:
weight = 1
if stretch:
weight = stretch
if isSizer:
# let sub-sizers recalc their required space
width, height = widget.CalcMin()
# minimal size
if self.orientation == wxVERTICAL:
self.minHeight = self.minHeight + (height * weight)
self.minWidth = max(self.minWidth, width)
else:
self.minWidth = self.minWidth + (width * weight)
self.minHeight = max(self.minHeight, height)
# stretchable items
if stretch:
self.stretchable = self.stretchable + weight
else:
if self.orientation == wxVERTICAL:
self.fixedHeight = self.fixedHeight + height
self.fixedWidth = max(self.fixedWidth, width)
else:
self.fixedWidth = self.fixedWidth + width
self.fixedHeight = max(self.fixedHeight, height)
return self.minWidth, self.minHeight
def RecalcSizes(self):
# get current dimensions, save for performance
myWidth = self.size.width
myHeight = self.size.height
# relative recent positions & sizes
px = self.origin.x
py = self.origin.y
newWidth = 0
newHeight = 0
# calculate space for one stretched item
if self.stretchable:
if self.orientation == wxHORIZONTAL:
delta = (myWidth - self.fixedWidth) / self.stretchable
extra = (myWidth - self.fixedWidth) % self.stretchable
else:
delta = (myHeight - self.fixedHeight) / self.stretchable
extra = (myHeight - self.fixedHeight) % self.stretchable
# iterate children ...
for (isSizer, widget, width, height, stretch) in self.children:
weight = 1
if stretch:
weight = stretch
if isSizer:
width, height = widget.CalcMin()
# ... vertical
if self.orientation == wxVERTICAL:
newHeight = height
if stretch:
newHeight = (delta * weight) + extra # first stretchable gets extra pixels
extra = 0
widget.SetDimensions(px, py, myWidth, newHeight)
# ... horizontal
elif self.orientation == wxHORIZONTAL:
newWidth = width
if stretch:
newWidth = (delta * weight) + extra # first stretchable gets extra pixels
extra = 0
widget.SetDimensions(px, py, newWidth, myHeight)
px = px + newWidth
py = py + newHeight
#----------------------------------------------------------------------

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