Compare commits

...

762 Commits

Author SHA1 Message Date
Bryan Petty
50c4c97be9 This commit was manufactured by cvs2svn to create tag 'WITH_OGL'.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/tags/WITH_OGL@6390 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-01 23:37:09 +00:00
Vadim Zeitlin
bc9027cc74 menu sample added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6389 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-01 23:37:09 +00:00
Vadim Zeitlin
6d072a854f used in the sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6388 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-01 23:07:48 +00:00
Robert Roebling
bdad4e7e02 Various changes due to OGL and glcanvas having changed
position.

  Had to butcher Vadims system header patch.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6387 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-01 20:27:16 +00:00
Robert Roebling
69e9bc09b8 OGL: misc.cpp clashes with misc.c frim iODBC, therefore
added oglmsc.cpp instead. misc.cpp should be removed.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6386 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-01 20:13:42 +00:00
Robert Roebling
3ca6942f6a typo in plot.cpp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6385 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-01 20:11:47 +00:00
Robert Roebling
335258dcdd get opengl samples going again
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6384 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-01 20:11:17 +00:00
Vadim Zeitlin
77c4358743 added a note about where to find makegen
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6383 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-01 19:24:07 +00:00
Vadim Zeitlin
d81a8f2ece created 'how to add a sample' technote
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6382 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-01 19:22:41 +00:00
Vadim Zeitlin
25d0821b7f created tech note directory
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6381 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-01 19:22:22 +00:00
Vadim Zeitlin
c4608a8af3 1. warning in gtk/menu.cpp fixed
2. Unicode fix in msw/textctrl.cpp
3. more parameters support in grid editors/handlers


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6380 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-01 18:55:29 +00:00
Julian Smart
66eca538a0 Full-screen dragging fix (GC setting)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6379 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-01 18:09:39 +00:00
Vadim Zeitlin
831243b127 asserts in wxGridStringTable corrected
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6378 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-01 17:21:00 +00:00
Vadim Zeitlin
c733b2224f patch for using system libz
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6377 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-01 17:08:20 +00:00
Vadim Zeitlin
641f5461b2 IMPLEMENT_DYNAMIC_CLASS() for wxMenuBar correction
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6376 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-01 17:02:32 +00:00
Guillermo Rodriguez Garcia
16162a64d6 DrawButtonFrame was a bit wrong because it was ignoring COLOR_3DLIGHT;
fixed now.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6375 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-01 16:39:22 +00:00
Julian Smart
afff720b28 Fixing commit problem
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6374 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-01 15:01:51 +00:00
Guillermo Rodriguez Garcia
47e92c4137 wxBitmapButton transparency fixed by using wxDC API at all times
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6373 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-01 14:57:33 +00:00
Julian Smart
68be9f090f Added wxDragImage generic implementation and sample; added mask handling to Motif's
wxImage::ConvertToBitmap


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6372 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-01 11:05:49 +00:00
Bart A.M. Jourquin
c443296124 remove 'extern' from IsKeyDown,... for bcc
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6371 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-01 10:35:30 +00:00
Bart A.M. Jourquin
1c2d49808c Restore previous ogl sources. Waiting for fix in configure system
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6370 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-01 08:44:38 +00:00
Michael Bedward
294d195c3c Minor compilation fix for Borland
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6369 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-01 04:10:21 +00:00
George Tasker
4c4a393f3e Fixed the QUERY dialog so it would not crash on exit, and the COUNT button now works
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6368 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-03-01 01:01:01 +00:00
George Tasker
2b0b4c55aa Added a #include of wx/module.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6367 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-29 23:58:50 +00:00
David Webster
22e90769f8 no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6366 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-29 23:18:42 +00:00
Guillermo Rodriguez Garcia
e02567553f Beginning the thread with _beginthreadex but ending with ExitThread is not a good thing.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6365 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-29 21:12:34 +00:00
Guillermo Rodriguez Garcia
19da72379f Tell is now compatible with the wback buffer
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6364 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-29 21:05:12 +00:00
Guillermo Rodriguez Garcia
fc4b32c270 Changed to use current wxSocket flag names instead of old ones
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6363 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-29 21:04:04 +00:00
Guillermo Rodriguez Garcia
6f505cae82 Added some safety checks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6362 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-29 21:02:16 +00:00
Guillermo Rodriguez Garcia
24d24189f5 mfc not available for mingw
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6361 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-29 21:00:19 +00:00
Guillermo Rodriguez Garcia
0141d2c9bd moved Destroy() to the beginning
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6360 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-29 20:58:36 +00:00
Guillermo Rodriguez Garcia
658c54003b Fixed potential bug related to clock skew when different clocks are used
for hi and lo res timing. Still to be solved where ftime or gettimeofday
are not available!


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6359 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-29 20:57:58 +00:00
Vadim Zeitlin
e72b421324 setting parameters for wxGridCellFloatRenderer seems to work
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6358 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-29 19:30:26 +00:00
Vadim Zeitlin
0b190b0f6a 1. more corrections for ref counted editors/renderers (doesn't crash any more,
might leak memory though)
2. attempt to add parameters to renderers - failed.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6357 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-29 18:36:04 +00:00
Vadim Zeitlin
39bcce60fe wxGridCellRenderer/Editor made ref counted
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6356 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-29 17:42:28 +00:00
Vadim Zeitlin
af547d51b7 1. added range checks in wxGridStringTable
2. added AutoSizeRow(), setting minimal size for the rows is supported as
   well now
3. replaced ugly wxHashTables with (just created) wxHashTableLong


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6355 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-29 17:21:20 +00:00
Vadim Zeitlin
c2bb85e9e3 added wxHashTableLong
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6354 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-29 17:19:36 +00:00
Ron Lee
d3cc7c6521 added missing include mdi.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6353 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-29 16:12:54 +00:00
Robert Roebling
589c9fff04 Commented out debug code.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6352 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-29 15:09:09 +00:00
Vadim Zeitlin
c5145d4177 wxListCtrl uses SetWindowChange() in its OnChar
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6351 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-29 15:00:21 +00:00
Mark Johnson
7beec8135e Makefile.in makefile.g95 makefile.vc
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6350 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-29 12:48:33 +00:00
Jouk Jansen
dd54fca3f3 Committing in .
Configuration for VMS

 Modified Files:
 	wxWindows/setup.h_vms
 ----------------------------------------------------------------------


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6349 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-29 12:21:27 +00:00
George Tasker
bebb64f0e2 Fixed a misleading comment regarding MySQL and Postgres
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6348 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-29 11:27:43 +00:00
Michael Bedward
ad115b2d65 AutoSizeColumns and AutoSizeRows changed to pass FALSE for calcOnly arg
to SetOrCalcXXXSizes()


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6347 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-29 08:27:29 +00:00
Unknown (MT)
cfdd3a98d8 add wxTE_AUTO_SCROLL
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6346 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-29 08:14:01 +00:00
Vadim Zeitlin
7f82eb0018 typo(s) fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6345 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-29 01:52:48 +00:00
Vadim Zeitlin
477350ceb4 1. fruitless attempts to reproduce wxNotebook bug in the sample
2. multiple selection related changes in the treetest


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6344 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-29 01:49:05 +00:00
Vadim Zeitlin
3f7bc32b53 1. fixed bug with MDI child frames changign state when parent frame was
iconized/uniconized
2. multiple selection emulation for wxTreeCtrl almost done


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6343 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-29 01:47:34 +00:00
Michael Bedward
ebd773c6f8 Added wxWANTS_CHARS style to all windows so that the grid reacts to
cursor keys when it is on a panel.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6342 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-29 01:37:37 +00:00
Michael Bedward
cab472ecf9 Changed string members in BugsGridData struct to wxChar * for Borland
only and added code to BugsGridTable::SetValue() for Borland to set
string values.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6341 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-29 01:27:42 +00:00
David Webster
29a99be398 no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6340 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-28 23:47:35 +00:00
Vadim Zeitlin
a68c1246db wxGridCellAttr::Clone() added to allow the demo of custom grid cell attr provider to work
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6339 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-28 19:08:01 +00:00
Vadim Zeitlin
3f5513f5bb correction for Fit() which didn't handle properly windows positioned at (-1, -1)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6338 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-28 19:07:20 +00:00
Vadim Zeitlin
cc023d9fd9 Ctrl-TAB works when notebook has focus
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6337 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-28 17:54:17 +00:00
Vadim Zeitlin
611cb66656 use _beginthreadex() for mingw32 if possible
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6336 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-28 17:33:56 +00:00
Vadim Zeitlin
0990cd942e fixed wxPD_AUTO_HIDE bug (didn't auto hide)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6335 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-28 16:44:27 +00:00
Vadim Zeitlin
266e83674a grid autosize fixes/changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6334 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-28 16:40:14 +00:00
David Webster
bb338b31a7 Standard frame resource defines for OS/2
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6333 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-28 16:02:07 +00:00
Julian Smart
94799627ee Some corrections
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6332 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-28 15:57:06 +00:00
Guillermo Rodriguez Garcia
dc6eda546b Added fix for mingw32 gcc-2.95 regarding FillMemory
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6331 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-28 15:05:18 +00:00
Julian Smart
babc97583e Removed old wxGLCanvas stuff; moved wxTreeLayout to wxWindows; corrected some doc errors
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6330 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-28 13:42:59 +00:00
Guillermo Rodriguez Garcia
43b2cccb4b Added #include "wx/bitmap.h"
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6329 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-28 13:15:44 +00:00
Julian Smart
f9566e1007 Removed utils/ogl
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6328 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-28 11:45:38 +00:00
Julian Smart
2d08140fdb Moved OGL to new locations.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6327 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-28 11:33:39 +00:00
Julian Smart
8b089c5e8c Moved wxGLCanvas to more normal positions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6326 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-28 08:22:57 +00:00
David Webster
61243a510f More updates to wxWindow, wxMenu, GdiImage to get minimal to work
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6325 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-28 04:40:52 +00:00
Robin Dunn
dcd386834a Added wrapper for wxListCtrl.SortItems. Added column sorting to the
demo to show how to use it.

Other fixes and updates.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6324 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-28 04:05:41 +00:00
Michael Bedward
984ef9dce7 Reverted wxString members to const wxChar * for struct BugsGridData
otherwise demo won't compile with BC5.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6323 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-28 03:28:51 +00:00
Václav Slavík
b25753b802 added wxMemoryFSHandler docs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6322 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-27 21:29:10 +00:00
Václav Slavík
dbddf57391 added wxMemoryFSHandler docs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6321 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-27 21:07:24 +00:00
Václav Slavík
cadd476dab documented VFS handlers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6320 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-27 21:07:04 +00:00
Václav Slavík
9704b2509a added Include files section to my classes where it was missing
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6319 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-27 21:06:58 +00:00
Václav Slavík
26de8b7d32 updated legalese regarding libtiff, libjpeg
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6318 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-27 21:06:38 +00:00
Václav Slavík
24528b0c14 added --enable-filesystem
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6317 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-27 21:06:17 +00:00
Václav Slavík
93d3817568 minimalistic build fixes (mostly #if wxUSE_something)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6316 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-27 21:04:26 +00:00
Václav Slavík
8eb9501e82 fixed: text.rc was datafile => copied to build dir
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6315 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-27 21:03:59 +00:00
Robert Roebling
c826213d96 Added bitmap create
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6314 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-27 16:48:27 +00:00
Guilhem Lavaux
272c44532a Added wxMMedia doc. For the moment only a few files are really a documentation.
(sndbase.tex). The rest will come progressively.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6313 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-27 16:09:26 +00:00
Robert Roebling
b480710b16 More wxPlotWindow goodies.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6312 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-27 15:56:24 +00:00
Guilhem Lavaux
8b33ae2d5a Inserted "stdio catch" in wxExecute. The activation is controlled by wxProcess.
Completed some TODO in wxMMedia (wxSoundUlaw, ...)
Reworked the PCM converted: it should be simpler to add converters now and it is
cleaner.
Implemented status information in wxVideoWindows but it doesn't work on my
Win98SE (UNSUPPORTED_FUNCTION)
Changed *ERR into *ERROR
Added a TODO: we must detect the best format in wxSoundWindows


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6311 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-27 10:44:49 +00:00
Guillermo Rodriguez Garcia
bdeca1d18c Added support for wxSCROLL[WIN]_THUMBRELEASE events
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6310 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-27 05:06:09 +00:00
Guillermo Rodriguez Garcia
7cd315c655 Large parts rewritten and reorganized
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6309 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-27 04:59:41 +00:00
Guillermo Rodriguez Garcia
5ab1fa8e64 Added support for bitmap buttons with standard Win95/98 LNF if __WIN95__ is #defined
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6308 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-27 04:56:17 +00:00
George Tasker
446fba815b Updated the ODBC-related ToDos
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6307 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-26 22:14:02 +00:00
Vadim Zeitlin
57c086ef99 wxGrid::AutoSize() added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6306 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-26 21:00:07 +00:00
Vadim Zeitlin
d5a5af9d39 SHARED_LD/LDFLAGS correction
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6305 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-26 20:42:47 +00:00
Vadim Zeitlin
72041ceca2 oops, a stray C++ comment
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6304 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-26 20:40:28 +00:00
Vadim Zeitlin
98440bc354 removing the IsWindow() test in ~wxWindow
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6303 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-26 20:35:39 +00:00
Guillermo Rodriguez Garcia
8355a72fa5 Corrected small miniframe-realted bug (itsy bitsy is never used for win32)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6302 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-26 19:46:50 +00:00
Václav Slavík
9dff41820a fixed reference to wxEvtHandler
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6301 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-26 14:42:10 +00:00
Václav Slavík
7b0b2dcc0c added base.t to the script
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6300 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-26 14:42:03 +00:00
Guilhem Lavaux
c12a24e223 Reenabled OSS support
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6299 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-26 13:47:53 +00:00
Robert Roebling
0efe4a9855 Compile fixes.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6298 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-26 12:45:06 +00:00
Vadim Zeitlin
d147774515 only modal dialogs ignore busy cursor, not all dialogs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6297 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-25 23:57:21 +00:00
Vadim Zeitlin
bfbd6dc192 1. cursor fixes: frame does have hand cursor in the controls sample now,
modal dialogs don't have busy cursor even if wxIsBusy()
2. wxTextCtrl sets client data field in the generated events
3. added wxEnhMetaFile::SetClipboard()


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6296 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-25 23:49:41 +00:00
Guilhem Lavaux
171774fcf3 Ok. Vidwin works again on Windows.
Extremely urgent: it must behave the same way as wxVideoXANIM


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6295 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-25 21:28:31 +00:00
George Tasker
0b8410f3ca Replaced <iostream.h> reference with "wx/ioswrap.h"
Replaced wxMessageBox() with wxLogDebug() calls
When calling GetColumns(), some drivers/datasources would not return a proper value for columnSize.  If columnSize is less than 1, columnSize gets set to bufferLength
Some cout statements in DBDEBUG_CONSOLE were treating char* variables as if they were wxString variables.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6294 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-25 20:36:32 +00:00
George Tasker
52a17fe534 Replaced <iostream.h> reference with "wx/ioswrap.h"
Replaced wxMessageBox() with wxLogDebug() calls
When calling GetColumns(), some drivers/datasources would not return a proper value for columnSize.  If columnSize is less than 1, columnSize gets set to bufferLength


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6293 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-25 20:27:37 +00:00
Vadim Zeitlin
bcaa23de09 WX_DECLARE_HASH() macro for type safe hashes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6292 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-25 19:23:11 +00:00
Guilhem Lavaux
794bcc2dea Removed unnecessary code from utilsunx.cpp
Corrected the support for seeking in wxSoundFileStream.
Added support for seeking in wxMultimediaBoard
Reindentation of the code (conforming or nearly to the coding standard)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6291 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-25 19:07:14 +00:00
Guilhem Lavaux
a9c3ed030e Windows stdio capture is working on my MSVC5. Here is the first
alpha release.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6290 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-25 18:50:38 +00:00
Bart A.M. Jourquin
13d12797d2 Tentative fix for UNICODE
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6289 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-25 16:27:24 +00:00
Vadim Zeitlin
52a07708c4 attempts at making wxSocket work with wxBase - it doesn't work but
already compiles :-|


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6288 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-25 16:21:53 +00:00
Julian Smart
2f4ef631af Fixed wxWindow::HandleCommand so multiple toolbars work again (e.g. ogl/studio sample);
added border to OGL studio window


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6287 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-25 16:20:58 +00:00
Vadim Zeitlin
e006f096ad attempt at fixing LDFLAGS
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6286 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-25 15:32:24 +00:00
Julian Smart
ec06b234d2 Added fix to wxMDIClientWindow to redisplay contents when
window is repositioned


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6285 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-25 15:16:39 +00:00
Bart A.M. Jourquin
7c5c05ae65 fix memory allocation problem for strings
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6284 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-25 15:00:22 +00:00
Vadim Zeitlin
ed23853bc0 assigning values to wxString is better than assigning to 'wxChar *' - editing of bugs table works
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6283 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-25 14:02:47 +00:00
Vadim Zeitlin
cff5ce9e7a compatibility/compilation fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6282 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-25 13:56:52 +00:00
Mark Johnson
47677e9bf2 dbgrid.cpp dbgrid.h bitmaps/logo.xpm
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6281 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-25 12:01:38 +00:00
Guilhem Lavaux
2018e574e7 Major changes in wxVidXANIM (support for output filtering)
Several API addings
Added process.cpp, process.h and utilsunx.cpp in wxMMedia directory
They should be moved to src/unix, src/common and include/wx to use them


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6280 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-25 09:08:52 +00:00
Guillermo Rodriguez Garcia
079bb992e1 Corrected an HTML typo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6279 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-25 07:13:49 +00:00
Michael Bedward
3c79cf49ec Added call to CalcDimensions() at end of wxGrid::Init so that you can,
for example, put a grid in a dialog, size it and then call CreateGrid
at some later stage.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6278 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-25 06:56:41 +00:00
David Webster
6dc3e5dc9c Visualge V3.0 fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6277 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-25 04:19:49 +00:00
David Webster
542875a8c4 latest wxWindow updates
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6276 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-25 04:17:55 +00:00
David Webster
b2a81bd914 Change m_SubControls from wxList to wxArrayLong
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6275 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-25 04:16:19 +00:00
Vadim Zeitlin
c239a4bb76 F2 enables edit in place
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6274 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-25 02:29:38 +00:00
Vadim Zeitlin
abceee76ea 1. corrected problem with label updating in wxProgressDialog
2. optical fix in wxTipDlg: use wxTE_RICH control to avoid vert scrollbar
3. put wxProgressDialog demo into dialogs sample, seems more appropriate
4. fixed a serious bug in wxProgressDialog when its parent was not a top
   level window (as in controls sample)
5. fixes in BringWindowToTop() usage in msw/dialog.cpp
6. fixed another serious bug in wxProgressDialog::OnClose()
7. wxDialog restores focus to previously focused window once again
8. attempts at fixing wxBusyCursor with modal dialogs problem - unsuccessful


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6273 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-25 02:20:44 +00:00
Vadim Zeitlin
488fe1feb6 fix for bug #29 (blank lines in GetLineText)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6272 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-25 00:03:29 +00:00
Guillermo Rodriguez Garcia
030d06e13f Very minor changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6271 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-24 23:52:01 +00:00
Vadim Zeitlin
c41ea66a5d 1. corrected bug in MDI sample (which resulted in missing horz scrollbar)
2. wxRegKey::Rename() added, regtest sample shows copying/moving/renaming keys
   and values now
3. using wxLog() insread of WriteText() contorsions in the listctrl sample,
   show client data from events in the log messages


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6270 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-24 23:40:42 +00:00
Vadim Zeitlin
225fe9d6ef 1. corrected bug in MDI sample (which resulted in missing horz scrollbar)
2. define LVS_EX_FULLROWSELECT ourselves if compiler headers don't
3. wxSafeYield() will only reenable windows which had been enabled, not all
   windows in the application
4. selection in wxTreeCtrl is not broken after dnd operation
5. wxRegKey::Rename() added, regtest sample shows copying/moving/renaming keys
   and values now
6. wxListEvent accessors made const
7. wxListCtrl sets client data field in generated events under MSW too


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6269 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-24 23:33:15 +00:00
Julian Smart
18d2e17080 Fix to MDI to restore 3D border; kludge to OGL Studio sample to redraw
the first client frame properly (need wxWindow::Redraw in wxWin API?)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6268 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-24 20:18:09 +00:00
Guilhem Lavaux
802e2f34c1 Added a missing wxStream_NOERROR
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6267 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-24 19:05:11 +00:00
Guilhem Lavaux
775c1df40f Cut out some duplicate symbol in datstrm.tex
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6266 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-24 18:52:31 +00:00
Robert Roebling
b0e282b34d Minor optical things.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6265 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-24 18:09:48 +00:00
Julian Smart
a368a8c4a8 Added missing SetToolBitmapSize
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6264 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-24 17:17:43 +00:00
Julian Smart
f42c2a7a62 wxToolBarSimple fix + OGL studio sample compilation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6263 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-24 16:26:20 +00:00
Julian Smart
dc1efb1d9f Some Motif fixes; makefile fixes; added wxTransferStreamToFile/FileToStream for wxWin
streams; fixed wxSP_... ids that clashed with wxTextCtrl; added generic GetPixel implementation for GTK/Motif


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6262 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-24 15:04:24 +00:00
Ron Lee
07eb77a690 configure changes, for wxBase and wx-config
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6261 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-24 12:20:22 +00:00
Michael Bedward
b0c8fc357c Several ugly hacks to get the bugs table and virtual table demos to
work under wxMotif.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6260 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-24 07:42:17 +00:00
Ron Lee
5c0e67b250 added wxBase & examples & various tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6259 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-24 01:15:08 +00:00
George Tasker
e16143f6c7 Reverting to 1.30
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6258 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-24 00:43:40 +00:00
George Tasker
ea5d599df3 Reverting back to 1.35 as 1.36 does not work with all data sources
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6257 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-24 00:35:28 +00:00
Vadim Zeitlin
66b3609e6a mwxLog was leaked - fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6256 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-24 00:20:45 +00:00
Vadim Zeitlin
ab70fb1de1 fix for wxSplitPath(foo/.filename)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6255 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-24 00:08:14 +00:00
Vadim Zeitlin
857eb08152 wxLogWindow now uses standard menu ids
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6254 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-24 00:01:44 +00:00
David Webster
a7ef993c98 More wxWindow updates
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6253 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-23 23:43:03 +00:00
Vadim Zeitlin
122603f10f typo fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6252 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-23 23:42:18 +00:00
Vadim Zeitlin
b94ae1ea10 1. wxGCBoolRenderer looks better under MSW
2. wxGCBoolEditor too
3. only alnum keys start editing in-place
4. some memory leaks in wxGrid plugged


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6251 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-23 23:38:00 +00:00
George Tasker
2f74ed2859 ::IsNumber() returned FALSE if a + or - sign was the first character of the string. "-123" should be considered a number
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6250 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-23 23:11:53 +00:00
Ron Lee
6be0044cf2 tweaked debian-dist for building wxBase
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6249 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-23 21:45:01 +00:00
Robin Dunn
a5777624e2 fallback to string changes for number and float editors
Fixes for DrawGridSpace (it needed moved over/up by one pixel, at
least for MSW)

Editor left active when resizing rows/cols


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6248 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-23 19:27:08 +00:00
Vadim Zeitlin
fc3398f8e0 removed the goto provoking HP-UX compiler warnings
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6247 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-23 19:23:23 +00:00
Vadim Zeitlin
b8b9762a1b fixed (?) race condition in the sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6246 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-23 19:04:31 +00:00
Vadim Zeitlin
829f05419d some more cosmetic fixes for wxLogTrace
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6245 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-23 18:54:53 +00:00
Vadim Zeitlin
54a8f42b9d typo fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6244 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-23 18:50:56 +00:00
Vadim Zeitlin
0131687bb5 wxLogTrace doesn't give messages with two 'Trace' in the beginning
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6243 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-23 18:50:12 +00:00
Stefan Neis
cb105ad434 Improved wxMotif's look.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6242 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-23 18:26:47 +00:00
Stefan Neis
69d8f6124d Improved checkmark on wxMotif.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6241 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-23 17:53:42 +00:00
Robert Roebling
809934d22a #ifdeffed new paint clipping :-(
Moved replacement code to printing preview canvas where
    its effect was particularly useful.
  Completed GC pooling.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6240 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-23 17:47:43 +00:00
Vadim Zeitlin
c52a6847be using LDFLAGS for the linker
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6239 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-23 17:44:56 +00:00
Julian Smart
e06b95691f Misc small changes, some for VC++ 1.5
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6238 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-23 16:54:18 +00:00
Vadim Zeitlin
9c4ba61452 fall back on text value if no long/double value could be retrieved from the cell
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6237 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-23 16:15:46 +00:00
Vadim Zeitlin
3324d5f50f removed saveValue param in EndEdit()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6236 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-23 15:58:10 +00:00
Vadim Zeitlin
8def743e8f fix for (too big) combobox height
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6235 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-23 15:45:36 +00:00
Vadim Zeitlin
d2d93fdde4 command events are not redirected to focused window
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6234 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-23 15:38:25 +00:00
Vadim Zeitlin
d1f82b073f fix to allow non-extension based template choosing to work from Vegh Janos
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6233 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-23 15:32:14 +00:00
Sylvain Bougnoux
fe482327a5 Add exemple for redirecting cout
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6232 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-23 13:17:14 +00:00
George Tasker
a40860394c TablesInUse did not have DeleteContents() set to TRUE in __WXDEBUG__ mode
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6231 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-23 12:31:59 +00:00
Michael Bedward
7c8a8ad57e Added wxGrid::DrawGridSpace function to suppress junk beyond last
row and col of grid.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6230 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-23 07:15:04 +00:00
Robin Dunn
4cfa5de640 Some mouse events need to be handled even when outside the grid.
Added flag and accessors to enable/disable the dragging of the grid
lines.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6229 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-23 07:03:56 +00:00
Robin Dunn
28a77bc43b delay getting the default editor and renderer (by data type) until
actually needed


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6228 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-23 04:45:24 +00:00
Vadim Zeitlin
7cc8c9884d multiple/single sel mode can now be toggled from menu
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6227 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-23 00:30:59 +00:00
David Webster
c86c44a080 More wxWindow updates
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6226 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-22 23:06:35 +00:00
Ron Lee
491e9f50b3 added missing files to life & poem, added wxPython/demo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6225 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-22 22:48:00 +00:00
Robert Roebling
8e217128a0 Playing with scrolling, als fixed redraw
bug in wxGrid (outer regions). You must
    not to maths with update regions within
    an scroll related OnPaint(). Everything
    else is allowed.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6224 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-22 22:39:55 +00:00
Václav Slavík
956ddeca4a fixed divide by zero exception when layouting justified text
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6223 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-22 20:09:27 +00:00
Václav Slavík
8e3f126189 one of error messages had way too much spaces in it
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6222 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-22 20:09:04 +00:00
Václav Slavík
e5aff4c568 better documented wxListCtrl::GetItem (it was absolutely unclear how to use it)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6221 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-22 20:08:16 +00:00
Robin Dunn
ea179c7b4a 1. wxGridCellEditor::SetSize needs to use the wxSIZE_ALLOW_MINUS_ONE
flag otherwise the choice editor will not move to row 1, (the wxRect
given has a -1 y value.)

2. I fixed wxGridCellChoiceEditor::BeginEdit to not only set the
current value into the text field, but also to make it the current
selection in the dropdown.

3. EndEdit was getting called twice for each cell when you leave it
with the TAB or ENTER.  I commented out a call to SaveEditControlValue
in SetCurrentCell to take care of this.  It shouldn't hurt anything
since SaveEditControlValue is also called within the
EnableCellEditControl(FALSE) which gets called next.  If this causes
no problems for anybody it can be removed entirely.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6220 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-22 20:02:48 +00:00
Guilhem Lavaux
ebaad2ccc7 AVI file playing on Windows is working
Many fixes


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6219 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-22 18:20:46 +00:00
Stefan Neis
85bc0351f7 Compilation fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6218 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-22 17:25:06 +00:00
Karsten Ballüder
c91f7c7e9f added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6217 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-22 17:23:26 +00:00
David Webster
f938057092 GetSubcontrols now returns a reference to an Arraylong
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6216 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-22 17:19:38 +00:00
David Webster
2912e35f17 no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6215 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-22 17:11:02 +00:00
Vadim Zeitlin
4ee5fc9c92 added combobox editor
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6214 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-22 16:57:12 +00:00
Vadim Zeitlin
65e4e78efb column autosizing added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6213 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-22 16:03:54 +00:00
Robert Roebling
33d0e17c11 SetSelection() in wxNotebook now sets the focus,
SPACE in wxListCtrl now sends Activate in multiple sel mode


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6212 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-22 15:29:59 +00:00
Vadim Zeitlin
efbb7287e6 1. corrected bug with LIST_ITEM_ACTIVATED being sent even if second click in
dbl click was on another item
2. moved private classes from listctrl.h -> listctrl.cpp
3. made sample messages include the item index


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6211 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-22 15:22:21 +00:00
Vadim Zeitlin
816be743e8 added renderers/editors for long/float, not fully tested yet, but seems to
work - see the demo in the (updated) sample


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6210 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-22 14:29:41 +00:00
Mark Johnson
66d6c315a3 dbbrowse.cpp dbbrowse.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6209 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-22 13:00:06 +00:00
Vadim Zeitlin
99306db210 don't draw cell highlight over the cell editor (improves wxGCBoolEditor appearance
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6208 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-22 11:08:17 +00:00
Mark Johnson
89fcf04c8c dbbrowse.cpp dbbrowse.h de/dbbrowse.mo de/dbbrowse.po
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6207 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-22 10:53:40 +00:00
Vadim Zeitlin
270e8b6a37 1. wxMenuBar::FindMenu() made "const"
2. documented it
3. documented recent change to wxYield()


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6206 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-22 10:17:32 +00:00
Vadim Zeitlin
e5131165b0 attempt at HP-UX compilation fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6205 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-22 10:09:27 +00:00
Vadim Zeitlin
2ed3265e18 added wxLog::Suspend/Resume and wxYield() uses them now so that it won't flush
the messages any more


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6204 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-22 10:00:29 +00:00
Vadim Zeitlin
6daa30a07e removed some default value for wxGrid compatibility ctor resolving ambiguity of writing wxGrid(this, -1)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6203 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-22 09:56:22 +00:00
Vadim Zeitlin
52130557bf moved wxMenuBar::FindMenu(title) from MSW to common code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6202 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-22 09:53:55 +00:00
Julian Smart
86ad564eb1 Moved the wxDialog BringWindowToFront fix to Show because it happens in
modeless dialogs too, if other windows have been disabled.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6201 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-22 08:54:05 +00:00
David Webster
05fc6c0a67 no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6200 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-22 05:34:42 +00:00
Michael Bedward
dd16fdaeaa Added view menu items to toggle row and col drag-resizing.
Removed setting of cell background colour for the moment.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6199 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-22 04:06:58 +00:00
Michael Bedward
6e8524b11b Added functions to enable/disable drag-resizing of rows and cols.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6198 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-22 03:51:43 +00:00
Robert Roebling
40c7018756 Removed some debug code.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6197 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-22 00:01:03 +00:00
Robin Dunn
0ba143c9a0 forgot to uncomment a few things
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6196 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 23:22:40 +00:00
Robin Dunn
f2d7623799 Added ability for tables, grids, editors and renderers to handle nonstring data.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6195 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 23:17:40 +00:00
Ron Lee
e0a4aa8a21 added wxPython control files and a few changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6194 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 23:02:25 +00:00
Ron Lee
9b0326f79a added PYTHON_DIST for creating Debian source
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6193 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 22:57:54 +00:00
Guillermo Rodriguez Garcia
9742d3cc18 End of stream reading stuff
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6192 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 22:18:15 +00:00
Robin Dunn
7299b1b267 added typcast needed for VC++ 6
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6191 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 22:09:03 +00:00
Ron Lee
879345103c removed redundant #! line
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6190 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 20:33:10 +00:00
Ron Lee
6f82295e5c allow '=' inside a value on command line.
return error code from calling makefiles in lower 8 bits so any
Makefile calling build.py will correctly interpret fatal build
errors.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6189 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 20:29:12 +00:00
Ron Lee
05cdfc6fad modified burnt_name to use only soname instead of full version name
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6188 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 20:11:03 +00:00
Vadim Zeitlin
35f97e951c added "bugs table" which will show non string data support when it's ready
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6187 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 18:34:30 +00:00
Sylvain Bougnoux
5d097345ba tiny fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6186 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 18:13:09 +00:00
Sylvain Bougnoux
dfc6cd933d Check multiple selection :-)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6185 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 18:08:07 +00:00
Vadim Zeitlin
439479796a added SetColMinimalWidth()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6184 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 18:01:45 +00:00
Robert Roebling
0e09f76e6d Slightly better GC pooling,
Implemented automatic updateregion clipping as MSW does.
  Made drawing sample a bit saner.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6183 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 18:01:02 +00:00
Vadim Zeitlin
1618dca721 make it possible to specify the virtual table size (this makes it easier to
see that the memory taken by the grid doesn't depend on it with top)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6182 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 17:37:07 +00:00
Vadim Zeitlin
6d55126d0b a couple of terrible typos fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6181 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 17:25:43 +00:00
Stefan Neis
b0486e0dc3 Eliminate apparently unnecessary updates in SetScrollbars.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6180 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 17:10:39 +00:00
Vadim Zeitlin
b32719cc03 Left() -> BeforeFirst()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6179 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 16:48:03 +00:00
Vadim Zeitlin
7c1cb26122 virtualized m_row/col height/widths arrays
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6178 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 16:39:23 +00:00
Vadim Zeitlin
943d28e424 added wxCURSOR_DEFAULT to others (not GTK only), hide the current selection in
the tree ctrl during dnd


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6177 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 14:35:44 +00:00
Vadim Zeitlin
8dd4f53663 Michaels change to OnEraseBackground()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6176 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 14:31:55 +00:00
Vadim Zeitlin
d16c04bb0a 1. removed 3d border, but
a) made DrawCellHighlight() virtual to allow overriding it in user code
 b) fixed bug with grid lines painting over the border, so it should really
    work now
2. char events to readonly cells are Skip()ped which makes Alt-X work for
   them too


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6175 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 14:27:36 +00:00
Vadim Zeitlin
b3a7510d21 include
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6174 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 14:25:20 +00:00
Vadim Zeitlin
2cd31b57b2 a couple of wors about wxObjArray::Index()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6173 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 14:19:02 +00:00
Robert Roebling
3d2d8da1d8 Implemented MSW's paint region clipping, but
it exposed some bug in GTK's guffaw stuff.
  Implmented GC pooling.
  Implemented Corrcet mixing of pain region clipping,
    user clipping and masked bitmap clipping.
  Minor other corrections.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6172 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 14:16:32 +00:00
Robert Roebling
78066fbfd4 Set logical functions to wxCOPY, no -1.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6171 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 14:13:08 +00:00
Robert Roebling
5456b91616 Make use of FillRect() when possible.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6170 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 14:12:20 +00:00
Vadim Zeitlin
d6a55c4bc2 wxUSE_NEW_GRID implies wxUSE_GRID
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6169 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 13:19:03 +00:00
Vadim Zeitlin
ea968ccd07 compile fix for wxUSE_STD_IOSTREAM case
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6168 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 13:17:46 +00:00
Mark Johnson
0068587be2 browsedb.cpp dbgrid.cpp dbtree.cpp dlguser.cpp de/dbbrowse.mo
de/dbbrowse.po de/xget.cfg


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6167 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 12:31:07 +00:00
Mark Johnson
ad288a8990 xget.cfg
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6166 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 12:30:20 +00:00
Michael Bedward
3d1b41968f Changed system colours for better default display of wxGrid. Please revert
this if it causes problems with other things and let me know on wxwin-dev.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6165 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 09:53:16 +00:00
Julian Smart
6a088435b3 Fixed (I hope) the wxDialog reactivation bug
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6164 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 09:42:31 +00:00
Václav Slavík
5f8525bf22 modif time of FS inet and FS mem files is not wxDateTime::Now, not wxDateTime::Today
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6163 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 08:37:46 +00:00
Václav Slavík
ed323aeaa8 wxGTK compilation fix (wxFrame::Show call without argument)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6162 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 08:37:39 +00:00
Mark Johnson
3fa0976a57 browsedb.h dbbrowse.cpp dbbrowse.h dbgrid.h dbtree.h
dlguser.cpp dlguser.h doc.cpp doc.h pgmctrl.h de/dbbrowse.mo
 	de/dbbrowse.po


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6161 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 08:05:13 +00:00
David Webster
a885d89ae9 Frame and Window coding
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6160 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-21 05:12:34 +00:00
Julian Smart
f250631042 wxImage::Rotate corrections added; docview improvements (menus updated properly)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6159 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-20 12:40:08 +00:00
Robert Roebling
00cf120892 configure changes
grid 3d changes


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6158 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-20 10:23:06 +00:00
Mark Johnson
5aeda15836 browsedb.cpp dbtree.cpp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6157 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-20 10:04:48 +00:00
Mark Johnson
4069116a15 help.de/compiler.htm help.de/dbbrowse.htm help.de/getcol.htm
help.de/getcolsh.htm help.de/icons.htm help.de/picgrams.htm
 	help.de/problems.htm help.de/remstar.htm help.de/sample.htm
 	help.de/startprm.htm help.de/todo.htm help.de/wxdb.htm
 	help.de/wxtable.htm help.std/compiler.htm
 	help.std/dbbrowse.htm help.std/getcol.htm
	help.std/getcolsh.htm help.std/icons.htm help.std/picgrams.htm
 	help.std/problems.htm help.std/remstar.htm help.std/sample.htm
 	help.std/startprm.htm help.std/todo.htm help.std/wxdb.htm
 	help.std/wxtable.htm


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6156 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-20 07:06:51 +00:00
Guillermo Rodriguez Garcia
2f17584941 Opps. Sorry - typo fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6155 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-20 02:52:01 +00:00
Guillermo Rodriguez Garcia
967a322fe9 Don't try to translate empty strings (just a cosmetical issue - it should
not fail anyway, but it is cleaner this way)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6154 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-20 01:08:40 +00:00
Guillermo Rodriguez Garcia
52e52bea12 Process all pending events before starting to delete pending objects -
specially important for wxPostEvent to work OK.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6153 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-20 01:04:34 +00:00
Guillermo Rodriguez Garcia
5fb2f4ba7e Solved bug which was breaking richedit ctrls for non-unicode builds on some compilers.
Fixed some small non-fatal bugs like missing c_str() and the like.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6152 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-20 01:03:15 +00:00
Guillermo Rodriguez Garcia
6d5ca46c65 Fixed these:
text.cpp:588: passing `const char *' as argument 1 of
`wxWindowBase::SetClientData(void *)' discards qualifiers
text.cpp:592: passing `const char *' as argument 1 of
`wxWindowBase::SetClientData(void *)' discards qualifiers


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6151 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-19 06:49:20 +00:00
Guillermo Rodriguez Garcia
176fe5af12 Solved multiple memory leaks.
Added some comments (on-screen, not to the code)
Inverted the original XBM file.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6150 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-19 04:22:08 +00:00
Václav Slavík
c83b076636 fixed bug in wxMemoryInput/OutputStream::OnSysRead/Write that caused incorrect LastRead reports
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6149 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-19 00:55:10 +00:00
Václav Slavík
69a492c9b2 ripper_main.o does not belong to HelpGen
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6148 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-19 00:55:05 +00:00
David Webster
0fe536e3f6 no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6147 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-18 23:35:39 +00:00
Vadim Zeitlin
3dbeaa523d added dnd support to generic wxTreeCtrl
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6146 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-18 22:12:58 +00:00
Robin Dunn
c4c829aeab toggle button doesn't send event if mouse is released outside of the
button.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6145 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-18 21:21:04 +00:00
Robin Dunn
352f281a24 fixed some typos
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6144 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-18 21:01:27 +00:00
Vadim Zeitlin
ee6694a711 auto arrays can't be initialized - compile error for HP-UX
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6143 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-18 20:45:56 +00:00
Vadim Zeitlin
619fda4f5a HP-UX recommendations added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6142 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-18 20:40:38 +00:00
Robin Dunn
266839eee9 wx-config is configurable...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6141 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-18 20:28:36 +00:00
Vadim Zeitlin
6cedba093a more long/double to int conversion warnings from HP-UX logs fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6140 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-18 20:20:15 +00:00
Guilhem Lavaux
7d533797a0 * ESD works in full duplex (theorically)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6139 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-18 19:05:27 +00:00
Guilhem Lavaux
db2e2242ef * Some more missing files. MMBoard tested (wave files) on MSVC 5
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6138 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-18 19:00:52 +00:00
Guilhem Lavaux
e1c324c375 * Make some more work on the video for Linux (Unix hopefully as I use XAnim)
* Added some datas for Windows


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6137 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-18 18:36:00 +00:00
Robert Roebling
86fe74c5cd help sample useful again
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6136 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-18 16:57:47 +00:00
Guillermo Rodriguez Garcia
aadaf84128 Added missing Unref() in wxImage::Create()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6135 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-18 16:15:17 +00:00
Guillermo Rodriguez Garcia
28026dc671 Solved a typo related to masks. Was setting *all* pixels in the mask
to rgb(0,0,0) - hence no mask at all :-) Corrected related OS/2 code
as well (this is where the typo was introduced in the first place)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6134 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-18 16:10:11 +00:00
Bart A.M. Jourquin
ffae916f44 Hashtable now supports negative keys
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6133 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-18 15:03:48 +00:00
Julian Smart
49676b852c Added JPEG rsp file
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6132 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-18 08:14:32 +00:00
Guillermo Rodriguez Garcia
8141573c1e Now wxGIFDecoder always tries to read to the end of the GIF data.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6131 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-17 23:39:35 +00:00
David Webster
80d83cbcc2 More wxFrame updates
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6130 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-17 23:31:03 +00:00
Václav Slavík
c692969f82 added wxMemoryFSHandler for storing VFS in memory
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6129 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-17 23:18:56 +00:00
Václav Slavík
dcb86da021 added wxMemoryFSHandler for storing VFS in memory
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6128 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-17 23:13:41 +00:00
Julian Smart
058939fc08 Reverted change to DrawLine so it doesn't draw the last point (sorry!)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6127 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-17 22:44:07 +00:00
Robert Roebling
c916e13bc0 Small testing changes,
Small flicker reduction in wxGrid.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6126 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-17 21:17:54 +00:00
Julian Smart
d6f0a4b367 Removed redundant wxColour constructor (how come this didn't cause problems before...)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6125 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-17 20:36:52 +00:00
Vadim Zeitlin
e195a54c31 added wxGridCellEditor::StartingClick(), used by BoolEditor
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6124 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-17 20:03:01 +00:00
Vadim Zeitlin
297da4bad9 some (attempts of) appearance fixes for wxGCBoolRenderer
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6123 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-17 19:32:25 +00:00
Vadim Zeitlin
189d0213da wxGridCellEditor::PaintBackground() added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6122 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-17 19:13:48 +00:00
Ron Lee
f538864d03 added -doc package
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6121 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-17 19:07:25 +00:00
Ron Lee
88d3a15cc6 remembered to update and commit after changing .in, duh :)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6120 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-17 19:05:06 +00:00
Sylvain Bougnoux
fa40e7a175 Workaround (?) for using streambuf with wxUSE_IOSTREAMH=0
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6119 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-17 18:23:41 +00:00
Ron Lee
b51b78a9c7 fixed cutnpaste error samples->utils in UTILS_DIST
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6118 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-17 17:26:26 +00:00
Václav Slavík
c1e5e88134 fixed inaccurancy in container layouting with wxHTML_ALIGN_JUSTIFY
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6117 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-17 17:09:11 +00:00
Václav Slavík
2cb20bea55 documented 2nd prototype of wxListCtrl::SetItem
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6116 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-17 17:09:04 +00:00
Ron Lee
676b8fb6f1 ignore CVS dir when copying /debian
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6115 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-17 17:03:07 +00:00
Václav Slavík
410207c3b3 fixed detection of listbox background
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6114 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-17 15:17:31 +00:00
Vadim Zeitlin
ee6e1b1d9c assorted files I forgot to commit before
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6113 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-17 14:12:32 +00:00
Vadim Zeitlin
508011ce6c bool editor/renderer added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6112 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-17 14:08:27 +00:00
Vadim Zeitlin
45816ddded added wxRect::Inflate()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6111 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-17 14:06:00 +00:00
Ron Lee
19a9df0980 added APPEXTRADEFS var so things like tex2rtf can pass their own flags to the make system
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6110 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-17 13:57:54 +00:00
Vadim Zeitlin
cd9da20028 added and documented wxDC::DrawCheckMark()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6109 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-17 12:53:36 +00:00
Vadim Zeitlin
6d516e09b3 wxSysErrorCode/Msg documented
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6108 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-17 12:16:41 +00:00
Julian Smart
b14c14ff36 Added demo of strange rectangle behaviour
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6107 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-17 11:04:26 +00:00
Vadim Zeitlin
b54ba67107 1. EVT_GRID_XXX constants renamed to wxEVT_GRID_XXX
2. EVT_GRID_EDITOR_SHOWN/HIDDEN added
3. Alt-X now work in the grid (instead of being eaten in StartingKey)
4. added CanEnableCellControl() and use it before calling EnableEC


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6106 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-17 10:12:48 +00:00
Vadim Zeitlin
b7f1f77f82 hack to fix crash when creating a DC for a widgetless window
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6105 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-17 08:47:12 +00:00
Vadim Zeitlin
81ef7f0818 warning in GetItemFromPoint with mingw32 fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6104 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-17 08:04:28 +00:00
Robin Dunn
99ab9f3bf9 More fixes for the OGL wrapper and some other updates.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6103 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-17 04:52:42 +00:00
Guillermo Rodriguez Garcia
5e9ff6adaa Optimized drawing code in OnMouse() for freehand drawing.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6102 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-17 03:02:14 +00:00
Guillermo Rodriguez Garcia
102f951d7f added a few comments and remove $(COPYSEP)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6101 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-16 23:46:07 +00:00
Guillermo Rodriguez Garcia
eb018fd7d0 added myself for spanish translation :-)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6100 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-16 23:38:06 +00:00
Václav Slavík
c0fba4d1be fixed background colour handling in wxTreeCtrl
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6099 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-16 23:23:19 +00:00
David Webster
178f951f78 Start of actual filling in of wxFrame.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6098 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-16 21:51:58 +00:00
David Webster
ea51d98d65 Start of actual filling in of wxFrame. Makefile now supports tiff
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6097 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-16 21:51:22 +00:00
Julian Smart
d0b223a148 DrawLine normalized; wxStaticBitmap fixed for Dialog Editor
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6096 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-16 21:44:35 +00:00
Václav Slavík
2aa59ef436 documented Set/GetVendorName
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6095 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-16 21:41:22 +00:00
Vadim Zeitlin
283b7808d8 added support for readonly cells and 3d border drawing
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6094 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-16 21:10:45 +00:00
Robin Dunn
fb0de762f3 Eats EVT_CHAR events for WXK_ESCAPE, WXK_TAB, and WXK_RETURN since
they are handled in EVT_KEY_DOWN.  It also gets rid of the annoying
bell on MSW for the return key.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6093 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-16 20:54:27 +00:00
Ron Lee
e4c4c1c697 added files / made changes to enable building Debian releases from cvs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6092 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-16 20:47:08 +00:00
Robin Dunn
b7fff980e7 disable edit control before insert/delete row/col
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6091 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-16 20:42:43 +00:00
Guilhem Lavaux
d73dd2b2fc * Video with XANIM is working on Multimedia Board (I must improve the window
sizing, ...): it shows me movies.
* Fixed a major bug in sndcpcm: we must divide by 2 the length of the
  sound block because we work in 16 bits mode
* Support for Video in wxMultimediaBoard
* Other fixes


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6090 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-16 20:20:11 +00:00
Vadim Zeitlin
3da93aae50 the in-place control uses the attr for colours/font info too
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6089 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-16 20:18:53 +00:00
Vadim Zeitlin
4ed0aceb92 missing event.Skip() added (it was impossible to use mouse without it...)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6088 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-16 20:10:31 +00:00
Vadim Zeitlin
e97320d40d compilation fix for the generic version
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6087 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-16 20:07:51 +00:00
Vadim Zeitlin
4de422dcd5 removed test wxYield
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6086 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-16 19:22:11 +00:00
Vadim Zeitlin
d1c0b4f97e deTABified
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6085 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-16 19:15:13 +00:00
Vadim Zeitlin
0e10e17b86 translators for Hungarian and Russian added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6084 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-16 19:06:13 +00:00
Robin Dunn
4e5b5abbfd Insert row/col now uses the current position to determine where to insert.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6083 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-16 17:52:27 +00:00
Robin Dunn
9b4aede26d Added getters/setters for cell and grid-default editors
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6082 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-16 17:51:33 +00:00
David Webster
615a9936a4 OS/2 support added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6081 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-16 17:12:56 +00:00
Stefan Neis
4d60017aa5 Added UpdateAttrRows/Cols to change the row/column info in attributes as
needed when Deleting/Inserting rows/columns.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6080 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-16 16:08:16 +00:00
Julian Smart
c3cb82e122 Corrected my bug...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6079 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-16 14:55:56 +00:00
David Webster
1dabb13fb4 Add Plot to library
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6078 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-16 13:46:54 +00:00
Sylvain Bougnoux
0158f58424 Fixed stupidity
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6077 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-16 13:38:50 +00:00
Sylvain Bougnoux
fd7cf53286 Fixed wxGetLocalTimesMillis using HAVE_GETTIMEOFDAY\nPlease fix the others...\nThen remove val*=wxGetLocalTime()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6076 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-16 13:05:55 +00:00
Julian Smart
2fa7c206f6 Various VC++ 1.5 and other corrections
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6075 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-16 11:53:16 +00:00
Julian Smart
9e5c7daa4a Corrected LINKAGEMODE OS/2 thingy
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6074 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-16 09:59:53 +00:00
Sylvain Bougnoux
fbbba98df4 Add Shivar's patch for using iostream
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6073 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-16 09:32:34 +00:00
Robin Dunn
2fc9954937 more updates
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6072 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-16 07:34:49 +00:00
David Webster
94fbea122f OS/2 updates, basically linkage mode settings on static procs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6071 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-16 06:26:12 +00:00
David Webster
319445fe63 Final cleanup
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6070 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-16 06:23:57 +00:00
Robin Dunn
0ad07724bf incremented version number
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6069 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-16 06:14:22 +00:00
Robin Dunn
3832c9464b incremented version number
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6068 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-16 06:08:18 +00:00
Robin Dunn
714d23b44b Some minor updates and fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6067 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-16 05:57:16 +00:00
Vadim Zeitlin
2e002aa906 empty rc file for the sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6066 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 23:58:16 +00:00
Vadim Zeitlin
5888ef1e7d 1. dnd demo in treetest
2. compilation fix in drawing (for VC++)
3. refresh bug fixed in regtest, dnd/copying keys seems to work


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6065 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 23:57:33 +00:00
Vadim Zeitlin
5af3f0efd5 bug fix in wxRegKey::CopyValue()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6064 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 23:54:25 +00:00
Václav Slavík
91fc2bdc33 background color set to wxSYS_COLOUR_LISTBOX
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6063 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 22:19:10 +00:00
Václav Slavík
ac8ae254b4 background color set to wxSYS_COLOUR_LISTBOX
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6062 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 22:13:50 +00:00
Václav Slavík
019a60d625 added wxSYS_COLOUR_LISTBOX
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6061 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 22:10:08 +00:00
Václav Slavík
9c0f7642cc removed duplicate defines of wxSYS_ constants
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6060 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 22:09:42 +00:00
Václav Slavík
74f551959f added wxSYS_COLOUR_LISTBOX ; check to prevent wxSYS_COLOUR_HIGHLIGHT and HIGHLIGHT_TEXT being same
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6059 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 22:08:27 +00:00
Václav Slavík
165b6ee097 fixed radiobox layouting: asks GTK for best size, does not compute it from string&font anymore (fixes GNU Step theme problem)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6058 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 22:07:58 +00:00
Václav Slavík
418d9d6275 fixed typo bug in my last commit that caused image size (-1,-1)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6057 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 22:07:51 +00:00
Sylvain Bougnoux
ff835f5006 Update entering/leaving
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6056 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 20:21:30 +00:00
David Webster
dd8d32232d Generic path instead of hardcoded
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6055 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 19:56:21 +00:00
Robin Dunn
be83e8f193 Fixed precedence order problem for IsShiftDown and IsCtrlDown. (It
was using the toggle bit instead of the is-down-now bit because of
the order of evaluation of the operators.)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6054 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 19:48:19 +00:00
David Webster
71b59b447f A few more minor fixes for OS/2
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6053 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 19:44:04 +00:00
Julian Smart
a784652571 Typo corrected
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6052 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 19:26:20 +00:00
Guilhem Lavaux
5bee458a0f * Added IsPaused() to wxSoundFileStream
* Play/Pause/Resume should work in wxMMBoard


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6051 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 18:49:25 +00:00
Robert Roebling
bce1406bff list ctrl and tree ctrl didn't like the new focus code,
mem clean uop crash fixed.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6050 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 18:38:19 +00:00
Robin Dunn
f87ac92e02 fix for goofed up grid borders when scrolling/refreshing
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6049 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 18:33:16 +00:00
Guillermo Rodriguez Garcia
dfde8cd357 Readded fix to adjust size of rectangles with transparent outline
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6048 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 18:06:56 +00:00
Robert Roebling
fb65642cd4 wxGTK now ignores widget style when using the pixmap theme.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6047 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 18:01:16 +00:00
Julian Smart
a20a10fe1d Added comment makeg95.env
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6046 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 17:32:14 +00:00
Robert Roebling
7741c4e1f5 Minor wxYield() change.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6045 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 16:38:01 +00:00
Vadim Zeitlin
afa6a1a1d9 text bg is transparent now, but the icons are still not
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6044 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 16:28:54 +00:00
Robert Roebling
a796957ae0 Forgot to add this one.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6043 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 15:56:43 +00:00
Robert Roebling
3d3428c4e6 plot docs.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6042 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 15:56:09 +00:00
David Webster
df529b49a4 more xpm fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6041 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 15:43:51 +00:00
David Webster
4b41f6bc00 more xpm fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6040 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 15:31:34 +00:00
Guillermo Rodriguez Garcia
c1d139da69 added tests for filled rects
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6039 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 15:21:59 +00:00
Guillermo Rodriguez Garcia
29ff35bc63 ...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6038 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 15:17:31 +00:00
Vadim Zeitlin
1171c29741 demo of wxYield() bug
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6037 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 14:48:06 +00:00
Vadim Zeitlin
409c4ffddd fixed bug in handling value names with escaped chars
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6036 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 14:08:37 +00:00
Robert Roebling
cc977e5fde Various distrib related changes.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6035 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 12:56:16 +00:00
Vadim Zeitlin
310df81bd8 typo fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6034 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 12:53:23 +00:00
Vadim Zeitlin
ff2d113e01 added wxUSE_PLOT
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6033 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 12:36:33 +00:00
Michael Bedward
7b21891e54 Fixed typo with TV_HITTESTINFO
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6032 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 11:50:18 +00:00
Robert Roebling
19141178ec Readded plot event constants.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6031 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 11:49:06 +00:00
Julian Smart
a19762cf3d Removed old Ming95 makefiles
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6030 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 11:25:18 +00:00
Vadim Zeitlin
49878561f0 more translators
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6029 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 10:21:22 +00:00
Vadim Zeitlin
9b33fe0222 added wxUSE_PLOT
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6028 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 10:06:32 +00:00
Bart A.M. Jourquin
695237bccd SCROLLWIN instead of SCROLL again
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6027 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 09:55:29 +00:00
Vadim Zeitlin
7ead72f2ff oops... another incorrectly resolved cvs conflict
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6026 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 09:53:53 +00:00
Vadim Zeitlin
9e91a33c46 conflicts markers removed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6025 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 09:50:19 +00:00
Vadim Zeitlin
6148d1e6e9 fix for drawing bitmap buttons under Win95 (untested)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6024 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 09:49:16 +00:00
Robert Roebling
530a7383f2 Many plot window gooddies.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6023 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 09:37:39 +00:00
Ron Lee
cb60902e04 fixed test for _vsnprintf
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6022 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 09:26:41 +00:00
Bart A.M. Jourquin
ddb22eb4b5 wxEVT_SCROLL_THUMBRELEASE instead of wxEVT_SCROLLWIN_THUMBRELEASE
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6021 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 09:22:20 +00:00
Robin Dunn
fb2957900c Some cleanup.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6020 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 07:08:42 +00:00
David Webster
ea258ad348 Updates to make VA 3.0 compile again, particularly xpm
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6019 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 05:49:02 +00:00
David Webster
f1d626b203 minimal makefile for VA 3.0
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6018 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 05:00:28 +00:00
Vadim Zeitlin
23f681ec48 1. implemented wxRegKey::Copy() and CopyValue()
2. regtest sample doesn't crash any more
3. wxLogGui uses msg box for only 1 message
4. "const wxEventType" => "enum"
5. wxEVT_COMMAND_TREE_END_DRAG introduced - see sample for example
6. fixed several non fatal bugs in wxRegKey
7. many changes in regtest sample, not tested yet


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6017 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-15 00:05:36 +00:00
Guillermo Rodriguez Garcia
0bddb3cc6f just some comments
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6016 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-14 21:45:06 +00:00
Robin Dunn
75ecbe4594 1. Initialized m_displayed to TRUE to solve a cell highlight problem
for some systems.  If this causes no problems then this flag can be
removed.

2. Took out the edit timer so now a second click in the current cell
will activate the edit control, even if it is several seconds later.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6015 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-14 21:35:42 +00:00
Stefan Neis
dce4122902 Fixed SetCurrentCell.
Fixed CalcCellsExposed.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6014 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-14 19:27:40 +00:00
Vadim Zeitlin
d24ebec28b list of official wxWin translators
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6013 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-14 18:54:18 +00:00
Vadim Zeitlin
c42404a58e fixes for compilation with the old mingw32, wxUSE_NORLANDER_HEADERS is always
defined (as 0 or 1)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6012 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-14 18:21:21 +00:00
Guilhem Lavaux
55196c5464 Added a bigger wxMMedia2 demonstration: wxMultimediaBoard: it is a sort
of light clone of the Windows Media Player.
Early development, but it plays WAV/AIFF files and should work on Windows
as soon as I build the makefiles.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6011 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-14 18:12:37 +00:00
Guilhem Lavaux
a31c84f389 * Various fixes
* Introduced FinishPreparation() in wxSoundFileStream as a conclusion
  to PrepareToPlay()


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6010 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-14 18:09:24 +00:00
Vadim Zeitlin
2133c25075 USE_DYNLIB_CLASS set to 1 by default
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6009 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-14 15:32:40 +00:00
Vadim Zeitlin
32de7d24a5 fix for id of CHAR_HOOK events
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6008 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-14 15:06:40 +00:00
Mark Johnson
f1a31d8891 dbtree.cpp de/dbbrowse.mo de/dbbrowse.po de/mo.cmd
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6007 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-14 14:58:54 +00:00
Mark Johnson
d1a643a467 dbtree.cpp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6006 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-14 11:14:48 +00:00
Robin Dunn
2c9a89e002 wxGridCellEditor plugged in and operational for strings.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6005 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-14 11:05:35 +00:00
Mark Johnson
897d36c241 browsedb.cpp dbbrowse.cpp dbgrid.cpp dbtree.cpp doc.cpp
de/dbbrowse.mo de/dbbrowse.po


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6004 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-14 11:05:14 +00:00
Mark Johnson
b54f1155cb browsedb.cpp dbtree.cpp dlguser.cpp dlguser.h pgmctrl.cpp
de/dbbrowse.mo de/dbbrowse.po


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6003 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-14 09:07:41 +00:00
Robin Dunn
07296f0b12 1. Fixed slow-click timer.
2. Fix for full cell background to be painted.  (One line on the edges
was showing through to the background.)

3. Added current cell highlight.  Currently it just draws a thick
border using the gridLineColour just inside the cell borders.

4. Make dragging a little less sensitive by ensuring that the mouse
drags at least 3 pixels before anything is done to the grid.

5. CaptureMouse while drag-selecting cells and fixed to make cells
visible if dragging outside window boundaries.  Still a problem here
though, it moves way to fast to see what's happening (at least on MSW.)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6002 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-14 08:53:06 +00:00
David Webster
0dfef5a812 Fix for VA 4.0
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6001 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-14 05:00:55 +00:00
David Webster
70054dc94d Minor updates
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6000 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-14 04:58:59 +00:00
Guillermo Rodriguez Garcia
ef57d8662f Still with the same 'read after close' thing...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5999 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-13 23:49:23 +00:00
Stefan Neis
025562fee3 Shift edit control (since we shifted cells in last version!)
Only draw valid help lines in resizing.
First try to enable EditCtrl on slow clicking: Doesn't work yet.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5998 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-13 19:43:54 +00:00
Guillermo Rodriguez Garcia
5330a86957 Solved a 'bug' in GSocket_Select (a bug in the user side, I'd say)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5997 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-13 19:04:55 +00:00
Mark Johnson
c9a586dbe4 pgmtext.mo pgmtext.po
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5996 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-13 18:33:43 +00:00
Mark Johnson
a1c5f7a357 dbbrowse.cpp dbgrid.cpp dlguser.cpp pgmctrl.cpp de/help.mo
de/help.po
 	de/dbbrowse.mo de/dbbrowse.po


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5995 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-13 18:31:05 +00:00
Stefan Neis
dcfe4c3d71 Added enabling/disabling of cell edit control.
Moved grid lines and cells by one pixel.
Call SelectBlock in SetCurrentCell (possibly not, what we want?)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5994 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-13 16:58:43 +00:00
Julian Smart
1265b12ac9 Bitmap name changes (also done by RR, oops)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5993 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-13 16:28:19 +00:00
Robert Roebling
e60908ca90 Applied colour reduction and changes to use
Windows standard palette to plot BMPs.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5992 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-13 15:08:34 +00:00
Robert Roebling
0f820c97ca Reverted Vadims change for the size of filled
rects, the are the same now on GTK and Win95.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5991 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-13 14:50:47 +00:00
Robert Roebling
cacc9daee9 Corrected BMP names for plot window.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5990 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-13 14:49:40 +00:00
Robert Roebling
af3cc6adf9 Added mingw32 makefile for plot demo.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5989 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-13 14:48:20 +00:00
Robin Dunn
26b9cf270e Some updates and fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5988 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-13 06:35:39 +00:00
Robin Dunn
854862f58d Some updates and fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5987 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-13 06:01:58 +00:00
Robin Dunn
f97c9b5bf2 1. Grid cell defaults are now handled by an internal
wxGridCellAttr object

2. wxGridCellRenderer::Draw updated to expect an attr object and
use it instead of going back to the grid for everything

3. The selection colours are now initialized from wxSystemSettings,
and are configurable.

4. Now either CreateGrid() or SetTable() can be called to initialize
the grid.  Added a test for using a non-default table.

5. Reduced flicker even more byt using empty EVT_ERASE_BACKGROUND handlers.

6. The beginings of wxGridCellEditor are in there but not activated
yet. (This is the next step.)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5986 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-13 05:38:03 +00:00
Robin Dunn
2796cce3f1 1. Grid cell defaults are now handled by an internal wxGridCellAttr
object.

2. wxGridCellRenderer::Draw updated to expect an attr object and use
it instead of going back to the grid for everything

3. The selection colours are now initialized from wxSystemSettings,
and are configurable.

4. Now either CreateGrid() or SetTable() can be called to initialize
the grid.  Added a test for using a non-default table.

5. Reduced flicker even more byt using empty EVT_ERASE_BACKGROUND
handlers.

6. The beginings of wxGridCellEditor are in there but not activated
yet. (This is the next step.)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5985 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-13 05:37:37 +00:00
Robin Dunn
164b735b71 Fixed thread state problem in wxTreeCtrl.GetBoundingBox
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5984 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-13 00:29:38 +00:00
Julian Smart
2b4313be05 BC++ doesn't like periods in resource names
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5983 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-12 19:10:14 +00:00
Vadim Zeitlin
2daa0ce9a4 mouse event flags have MSW-compatible values for click/release events
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5982 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-12 14:57:21 +00:00
Mark Johnson
c92b0f9abd browsedb.cpp browsedb.h dbbrowse.cpp dbbrowse.h dbbrowse.rc
dbgrid.cpp dbgrid.h dbtree.cpp dbtree.h dlguser.cpp dlguser.h
 	doc.cpp doc.h pgmctrl.cpp pgmctrl.h


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5981 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-12 14:11:17 +00:00
Guilhem Lavaux
ef366f3523 * Updated README
* Recoded converters (in a cleaner way)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5980 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-12 12:11:23 +00:00
Julian Smart
9bb3479c68 Distrib file updates; test for bitmap presence in controls.cpp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5979 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-12 10:44:03 +00:00
Guillermo Rodriguez Garcia
b5c91ac6b3 Partially rewrote rotation code due to a potential alignment problem
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5978 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-11 23:11:40 +00:00
Julian Smart
7dd7a90614 Uncommented listctrl.tex
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5977 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-11 22:36:29 +00:00
Julian Smart
f97445f4aa Doc bug fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5976 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-11 22:36:05 +00:00
Vadim Zeitlin
758cbedf84 added attr assignment for rows/columns
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5975 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-11 21:14:58 +00:00
Vadim Zeitlin
0a97676587 added an extremely simple cell attr cache (yet it catches 80% of acccesses)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5974 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-11 20:38:04 +00:00
Guillermo Rodriguez Garcia
a2e661f9ce Another oops.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5973 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-11 20:09:02 +00:00
Julian Smart
ecf527c06b Manual fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5972 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-11 19:42:46 +00:00
Vadim Zeitlin
ab79958a7f added wxGridCellRenderer
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5971 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-11 19:40:56 +00:00
Vadim Zeitlin
2e9a678817 fixed setting more than one attr for a cell
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5970 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-11 18:18:18 +00:00
Stefan Neis
3ace2e6d5c Updated to include recent fixes to configure.in
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5969 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-11 18:01:56 +00:00
Robert Roebling
a5a0dd06b6 Made HelpGen compile here.
Documented wxPlotWindow.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5968 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-11 18:00:42 +00:00
Guillermo Rodriguez Garcia
b59102d53f Oops.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5967 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-11 17:57:15 +00:00
Guillermo Rodriguez Garcia
33e3914780 Modified for new THUMBRELEASE event
Optimized game engine a bit more


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5966 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-11 17:56:39 +00:00
Guillermo Rodriguez Garcia
7d56fb8fcd Added wxEVT_SCROLL[WIN]_THUMBRELEASE
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5965 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-11 17:55:28 +00:00
Vadim Zeitlin
181bfffdc8 removed debugging messages I just added by default
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5964 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-11 17:47:18 +00:00
Vadim Zeitlin
e2b42eebeb added ChangeCursorMode() method, rewrote the col/row resizing code to capture/release mouse properly
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5963 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-11 17:43:42 +00:00
Julian Smart
c3b177ae63 Some BC++ 5.4 fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5962 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-11 13:29:43 +00:00
Robert Roebling
80a58c9968 Added BMP files for wxPlotWindow,
Replaced wxWindow with wxNotebookPage in wxNotebook.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5961 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-11 12:28:21 +00:00
Václav Slavík
37a1f3f69b fixed bug in scaling images
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5960 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-11 12:08:23 +00:00
Michael Bedward
6d004f675d Added facility to resize rows and cols by dragging grid lines.
Fixed bug where row col resize events were sent twice.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5959 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-11 04:09:20 +00:00
Vadim Zeitlin
4aff28fc9b 1. exchanged binary ROPs wxSET/wxCLEAR meaning for wxMSW to match wxGTK
2. bug with multiline messages in wxLogGui fixed
3. wxLogGui visual enhancements (for MSW, don't know how it looks elsewhere)
4. fixed 2 nice (i.e. BIG) memory leaks in wxImage::Rotate()
5. modified the text sample to show the mouse events too
6. documented strange behaviour of LEAVE_WINDOW mouse event under MSW


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5958 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-11 02:41:07 +00:00
Robert Roebling
1d81a219db Fixed Vadims fix.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5957 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-10 19:31:55 +00:00
Robert Roebling
279ababf7b Whole lotta stuff for wxPlotWindow,
repaired image sample.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5956 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-10 18:43:33 +00:00
David Webster
bbc3f89a82 Added an OS/2 section to the sql defines
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5955 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-10 18:32:08 +00:00
Vadim Zeitlin
7b848b0db2 1. fixed bug with the index of the last column in EVT_COL_CLICK being shifted
by 1 (always)
2. added a menu item to toggle single/multiple selection to the sample


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5954 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-10 18:12:44 +00:00
Mark Johnson
f75fc92e11 dbgrid.cpp dbtree.cpp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5953 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-10 16:53:59 +00:00
Julian Smart
5ce70b006d Added a few makefiles
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5952 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-10 15:42:35 +00:00
Mark Johnson
e8c6aabeaa dbbrowse.rc dbgrid.cpp dbtree.cpp dbtree.h help.de/icons.htm
help.de/problems.htm help.std/icons.htm help.std/problems.htm
 	bitmaps/view.ico bitmaps/view.xpm help.png/view.png


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5951 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-10 15:36:10 +00:00
Guillermo Rodriguez Garcia
ad30de59f6 Added support for transparency in rotation code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5950 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-10 13:27:07 +00:00
Guillermo Rodriguez Garcia
b217783903 Added code to test the transparency stuff for image rotation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5949 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-10 13:26:30 +00:00
Bart A.M. Jourquin
cb5df486e8 #include textfile.h out of the WX_PRECOMP section (bcc)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5948 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-10 08:36:51 +00:00
Guillermo Rodriguez Garcia
d624fd67f8 Added comments explaining my recent changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5947 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-10 07:28:43 +00:00
Guillermo Rodriguez Garcia
8fcae2d6ed ROP 0x00AA0029 used for transparent area in DrawBitmap and Blit
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5946 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-10 06:54:50 +00:00
Guillermo Rodriguez Garcia
105521d118 Minor updates
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5945 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-10 05:01:21 +00:00
Robin Dunn
047473c90a moved Clear() outside of if (textured)...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5944 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-10 05:00:06 +00:00
Robin Dunn
1edc9f4576 added option for drawing a textured background to test masks on a
non-solid background.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5943 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-10 04:56:16 +00:00
Michael Bedward
2433bb2ed1 Added wxTextFile functions to make multi-line text formatting portable.
Fixed cell background colour problem.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5942 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-10 03:50:51 +00:00
Michael Bedward
bd3c6758b5 Reverted changes to grid line positioning that caused many problems
with refreshing and edit control placement.

Added calls to wxFAIL_MSG.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5941 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-10 02:39:05 +00:00
Guillermo Rodriguez Garcia
04e1eb03b0 - wxSocket no loner automatically Closes() the socket when it receives a
LOST event.

- Elusive bug found and fixed when:
a) there was still data to be read in the input buffer, but
b) the socket had already been closed by the peer, so
c) there was a LOST event before the next INPUT event was generated.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5940 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-10 01:02:34 +00:00
David Webster
c67b773e19 Updates to make latest changes compile
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5939 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-09 22:58:41 +00:00
Guillermo Rodriguez Garcia
c0eba78b86 Stupid bug: using LastError() instead of Error()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5938 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-09 22:53:26 +00:00
Stefan Neis
ea0dbf30b3 Updated/Added build instructions for OS/2.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5937 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-09 21:50:15 +00:00
Guillermo Rodriguez Garcia
a9cf40974a Zooming buttons / menu options automatically disabled when needed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5936 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-09 20:52:12 +00:00
Robin Dunn
4ac99f4bbe fixed VC6 compilation error
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5935 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-09 20:51:09 +00:00
Robin Dunn
d14f4fec2d plugged memory leak
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5934 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-09 20:35:09 +00:00
Vadim Zeitlin
b99be8fb78 cell attributes added (doesn't quite work, work in progress, beware, don't use, &c &c)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5933 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-09 20:30:27 +00:00
Guillermo Rodriguez Garcia
7989fb3707 Added automatic connection of drawn points
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5932 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-09 20:22:57 +00:00
Vadim Zeitlin
633d67bb49 fixed fatal bug in wxStatusBar::SetFieldsCount(), added demo of it to the sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5931 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-09 18:23:37 +00:00
Vadim Zeitlin
26dfedc4fc some Motif compilation fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5930 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-09 17:53:42 +00:00
Vadim Zeitlin
06b466c74f more HP-UX compilation warnings fixed (187th try)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5929 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-09 17:51:16 +00:00
Vadim Zeitlin
61b1a1af1b and ITEM_COLLAPSED/ING too
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5928 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-09 15:36:30 +00:00
Vadim Zeitlin
9711961cb9 added EVT_TREE_ITEM_ACTIVATED
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5927 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-09 15:34:47 +00:00
Stefan Neis
c1b2e2b6a8 Fix refreshs for wxGTK.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5926 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-09 14:29:25 +00:00
Guillermo Rodriguez Garcia
5e2e843f00 let's see it it works now...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5925 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-09 08:54:56 +00:00
Michael Bedward
27fa32469f Changed grid line positioning slightly to line up the cells with the labels.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5924 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-09 08:18:52 +00:00
Michael Bedward
18f9565d19 Fixed problem where corner label was displayed when either row or col label size had been set to zero prior to first display.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5923 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-09 08:09:19 +00:00
Michael Bedward
7807d81c73 Simplified sizing code. Sub-windows are now sized explicitly in wxGrid::CalcWindowSizes().
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5922 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-09 07:17:12 +00:00
Michael Bedward
c3e4873f84 Partially reverted last changes because of problems under wxMotif
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5921 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-09 05:12:01 +00:00
Michael Bedward
4634a5d6d7 Initializing more variables in wxGrid::Create()
Minor fixes for crashes under wxMotif when setting attributes before
the grid has been first painted.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5920 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-09 05:04:21 +00:00
Michael Bedward
b0d6ff2f7f Added more 3d rendering to row and col labels and removed sunken border style from the grid cell window so that labels and cells line up better.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5919 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-09 03:49:52 +00:00
Michael Bedward
c6a51dcd05 A few optimizations to Refresh() calls for the grid cell area window
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5918 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-09 03:03:52 +00:00
Michael Bedward
2e8cd9776a Implemented row and col label size functions.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5917 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-09 02:15:05 +00:00
Stefan Neis
4370c5b2de More fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5916 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-09 00:31:10 +00:00
Stefan Neis
b137db1402 Fixed typo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5915 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-08 23:48:32 +00:00
Václav Slavík
c3a1c7d272 fixed incorrect parsing of http://domain.com:portnumber/
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5914 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-08 23:42:06 +00:00
Robin Dunn
21d734041a Fix in parse headers so it wouldn't always store an empty string
for each header value.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5913 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-08 21:31:29 +00:00
Guillermo Rodriguez Garcia
e0a4029251 Life! version 2
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5912 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-08 20:04:48 +00:00
Julian Smart
bf4d9b2b9b ShowFullScreen (MSW) doc; projgen updates
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5911 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-08 19:25:48 +00:00
Julian Smart
c86423f922 Minor mods if any
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5910 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-08 19:22:40 +00:00
Julian Smart
b487a08f91 Added ShowFullScreen call (MSW only)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5909 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-08 19:19:47 +00:00
Julian Smart
9f334beabb VC++ project file updates; minor sashwindow/splitterwindow cursor mods
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5908 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-08 19:18:43 +00:00
Julian Smart
3e0b743f1d Misc. fixes for obscure compilers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5907 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-08 19:17:00 +00:00
Julian Smart
a2327a9f80 Added ShowFullScreen
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5906 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-08 19:14:50 +00:00
Vadim Zeitlin
72174350ae don't use ROPs for drawing the text for wxMSW compatibility
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5905 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-08 19:06:54 +00:00
Guillermo Rodriguez Garcia
c0043a5066 Changed the order in which events are checked, so that LOST events are
ignored until there are no more events pending. This is because you can
have data waiting to be read, for example, even when the peer has already
closed the connection. This affects _Wait() and OnRequest().


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5904 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-08 18:31:07 +00:00
Vadim Zeitlin
cd6d6d5b9f added checks for Xm/Xpm headers/libs in CFLAGS/LDFLAGS
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5903 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-08 17:44:50 +00:00
Vadim Zeitlin
51a9fabaad cache the result of socklen_t check
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5902 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-08 17:16:31 +00:00
Vadim Zeitlin
92da8bde1b HP-UX compilation errors
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5901 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-08 16:28:55 +00:00
Bart A.M. Jourquin
ad2522ad3f add SQL_CATALOG and SQL_LOG filename variablesas extern
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5900 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-08 11:06:53 +00:00
Bart A.M. Jourquin
9453a61bd8 add SQL_CATALOG and SQL_LOG filename variables
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5899 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-08 11:06:07 +00:00
Michael Bedward
b93a2fe65a Fixed problem with label resize cursor not resetting
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5898 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-08 04:33:03 +00:00
Guillermo Rodriguez Garcia
fa1993cce5 M_PI is not ANSI
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5897 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-08 02:09:54 +00:00
Vadim Zeitlin
91b4c08d6f 1. wxWizard appears in the centre of the screen by default
2. the selected brush isn't damaged any more by DrawBitmap()
3. corrected confusion between current and bg brush in DrawBitmap()
4. added wxGetColourFromUser() (to match wxGetTextFromUser() &c)
5. mem leak/crash in wxListCtrl on mode change fixed
6. wxListCtrl::Set{Fore|Back}groundColour() work as expected now


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5896 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-08 01:08:51 +00:00
Vadim Zeitlin
11f26ea0e2 1. more test code for drawing with ROPs/masks/bg brushes in drawing
2. wxListCtrl colour setting tests added


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5895 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-08 01:07:48 +00:00
Guillermo Rodriguez Garcia
2edc119be3 Fixed transparency problem when masked area was not black
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5894 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-07 23:26:29 +00:00
Sylvain Bougnoux
bd1b0b3ed1 Add ctor with shared GLCanvas ( to be gtk compliant)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5893 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-07 20:47:05 +00:00
Vadim Zeitlin
ec90f5e53a fix for missing AC_SUBST(SAMPLES_SUBDIRS)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5892 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-07 17:33:23 +00:00
Vadim Zeitlin
b089607b63 many fixed for configure for Win32 - cross-compiling should work now
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5891 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-07 17:28:48 +00:00
Vadim Zeitlin
a2a0d40dac wxLogFatalError() should abort now
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5890 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-07 16:53:47 +00:00
Vadim Zeitlin
6932a32c2b trying to fix memory leak in wxListCtrl (attributes not deleted)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5889 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-07 16:51:39 +00:00
Vadim Zeitlin
f5ac656c5a 1. modified Makefile to copy the .bmp
2. added "change angle" to the menu, abort (and not crash) if bitmap not found


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5888 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-07 16:37:59 +00:00
Vadim Zeitlin
963863adad wxListCtrl::SortItems() clarifications, more samples docs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5887 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-07 15:48:53 +00:00
Julian Smart
b81d8cfc81 Copied XPM files to new names to avoid conflict when compilign with VC++ project files
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5886 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-07 12:50:46 +00:00
Stefan Neis
be46e4a680 *** empty log message ***
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5885 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-07 11:15:53 +00:00
Harco de Hilster
d17f05afeb Some fixes (&->\&, _->\_) to remove latex complaints.
Actually the whole point of this excercise was to try to make a nice pdf file
with contents tree and thumbnail pages using pdflatex, but it keeps depleting
tex's resources :-(


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5884 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-07 10:14:56 +00:00
Bart A.M. Jourquin
96820af7cb add definition for FAR for mingwin 2.95
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5883 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-07 10:08:09 +00:00
Bart A.M. Jourquin
57c1c6cb9b add casts + type to untyped const for GCC2.95
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5882 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-07 10:07:00 +00:00
Michael Bedward
790cc4177a Fixes for problem where selection fails to start on dragging mouse in
grid cell window.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5881 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-07 05:39:28 +00:00
Michael Bedward
9496deb586 Fixed bug in wxGrid::DrawAllGridLines that was causing crashes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5880 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-07 03:36:01 +00:00
Julian Smart
69d16e3ef8 Small changes for VC++ 4 compilation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5879 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-06 21:25:27 +00:00
Robert Roebling
95bf655c50 Small modifications to listtest.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5878 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-06 20:36:00 +00:00
Robert Roebling
227c63bac9 Reenabled deleteallitems events, marked
with RR.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5877 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-06 20:35:32 +00:00
Stefan Neis
cb309039b6 Minor fix in screen update code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5876 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-06 19:51:59 +00:00
Julian Smart
457e6c54a2 Some doc corrections; Watcom C++ corrections; VC++ 4 corrections
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5875 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-06 19:11:10 +00:00
Robert Roebling
46132182f0 compilation fixes.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5874 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-06 17:13:14 +00:00
Julian Smart
6f434e5041 Changed static_cast syntax not recogised by all compilers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5873 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-06 15:05:46 +00:00
Julian Smart
7a632f1056 Added rotation to wxImage
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5872 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-06 14:51:36 +00:00
Robert Roebling
12c1b46a2f Tried to prevent scrollbars from scrolling as
per MSW, didn't work.
  Added DeleteAllItems event and test to listctrl.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5871 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-06 13:51:01 +00:00
Julian Smart
9b1801c19c long -> wxCoord
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5870 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-06 12:12:25 +00:00
Robert Roebling
2a23d36334 Scrolling fixes.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5869 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-06 12:11:19 +00:00
Julian Smart
790ad94f70 Some BC++ 4.5 and other compile fixes; changed FAR definition to WXFAR
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5868 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-06 11:48:14 +00:00
Ron Lee
0bd62129f6 patched DoSetClippingRegionAsRegion to update clipping state vars
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5867 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-06 09:06:54 +00:00
Stefan Neis
70c7a608b4 Optimized Refresh Area in various functions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5866 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-06 01:58:45 +00:00
Vadim Zeitlin
81278df2b1 some minor changes in controls/image, timings added to listtest
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5865 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-06 01:30:21 +00:00
Stefan Neis
3ccf6cd7ea long -> wxCoord
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5864 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-06 00:21:43 +00:00
Vadim Zeitlin
412e4edfb1 tried to fix compilation for mingw32 and wxGTK/Motif in the same time
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5863 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-06 00:03:26 +00:00
Julian Smart
cc56206fcd SetStatusFields type in implementation now matches header
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5862 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-05 23:07:43 +00:00
Julian Smart
66e3334451 Ok -> OK; status bar typo/cast
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5861 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-05 20:03:40 +00:00
Guillermo Rodriguez Garcia
af07f1749c Some compilation fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5860 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-05 18:18:28 +00:00
Guillermo Rodriguez Garcia
96d9e4df78 Reverted a change which breaks compilation for win32 - not sure on how to fix this :-?
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5859 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-05 18:16:47 +00:00
Guillermo Rodriguez Garcia
608eeb0f24 Missing includes - please test without precompiled headers before committing
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5858 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-05 18:15:17 +00:00
Stefan Neis
796df70a76 Added different strategy for updating grid lines.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5857 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-05 18:04:13 +00:00
Robert Roebling
8febdd3905 Fixed status bar probs,
Compilation fixes.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5856 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-05 17:56:26 +00:00
Julian Smart
658fb8e6c5 VC++ changes + makeproj additions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5855 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-05 16:09:10 +00:00
Stefan Neis
d331afb7c8 Include Header file of base class!
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5854 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-05 15:56:59 +00:00
Stefan Neis
8a9a9d58d9 Fixed typo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5853 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-05 14:27:37 +00:00
George Tasker
7a5214a863 Fixed a typo in a comment
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5852 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-05 14:13:41 +00:00
Julian Smart
b922ef5a1b Corrected initial m_filterIndex value (was 1)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5851 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-05 11:16:14 +00:00
Robert Roebling
473d087e56 wxWindow no longer emits any scroll events after
a programmatic change to its scrollbars.
  Reverted sense of SHIFT and CONTROL in wxListCtrl.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5850 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-05 10:33:57 +00:00
Vadim Zeitlin
2531c7e393 docs for wxTimer change
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5849 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-05 02:07:38 +00:00
Vadim Zeitlin
ed79198695 1. wxTimer change - now generates EVT_TIMER()
2. wxStatusBar reorganisation


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5848 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-05 01:57:38 +00:00
Vadim Zeitlin
85401ffe5c cosemtic fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5847 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-05 01:55:54 +00:00
Michael Bedward
f603012fbb Space now move active cell right if grid is not editable
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5846 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-05 01:06:47 +00:00
Michael Bedward
8fb66724c6 Removed ^M chars again
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5845 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-05 01:03:52 +00:00
Michael Bedward
238c4e1798 Removed erroneous EVT_SCROLLWIN
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5844 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-05 00:26:11 +00:00
Stefan Neis
6f837e5cc0 Added #ifdef HAVE_SCHED_YIELD
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5843 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-04 23:41:25 +00:00
Vadim Zeitlin
b63f97ea94 readding back
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5842 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-04 20:27:31 +00:00
Vadim Zeitlin
2286341c8d new sample: statbar
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5841 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-04 20:27:10 +00:00
Vadim Zeitlin
14e40b5aac updated to reflect the current situation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5840 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-04 19:27:18 +00:00
Vadim Zeitlin
7c968cee84 another new version of wxStringTokenizer (with tests and docs)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5839 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-04 18:31:26 +00:00
Julian Smart
a42b93aaad Minor doc typos removed; compilation improved for VC++ 4.x
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5838 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-04 17:08:11 +00:00
Robert Roebling
d2fdd8d2af Minor GTK fixes for wxGrid.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5837 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-04 17:01:47 +00:00
Vadim Zeitlin
815a62d283 fixed resize line drawing
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5836 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-04 15:17:15 +00:00
Vadim Zeitlin
f0102d2a6d fixed refresh problem due to rounding errors
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5835 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-04 14:57:09 +00:00
Robert Roebling
71fe5c01eb ROP changes.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5834 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-04 14:16:17 +00:00
Vadim Zeitlin
8712c6e799 fixed AdvanceSelection() wrapping
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5833 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-04 13:49:12 +00:00
Michael Bedward
58dd5b3b3e Many bug fixes for display code:
- clicking outside cell area no longer causes crashes
- clicking beyond labels is now ignored
- better cell selection code
- old grid sample now works with this grid
- newlines can be entered in to cell edit control


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5832 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-04 11:17:01 +00:00
Stefan Neis
da6af900f1 Added drag-shrinking
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5831 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-04 08:41:34 +00:00
Vadim Zeitlin
2cce705aad fixed bug in handling quoted characters in value names
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5830 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-03 17:37:53 +00:00
Stefan Neis
c3baf426f8 Added drag-shrinking.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5829 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-03 15:14:13 +00:00
George Tasker
d62e92203d Replaced C++ comment with C comment
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5828 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-03 13:56:12 +00:00
Vadim Zeitlin
60ff3b9976 re-checking in files in Unix mode
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5827 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-03 13:30:28 +00:00
Bart A.M. Jourquin
8f0b51916e remove c++ comment in header
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5826 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-03 13:17:32 +00:00
Bart A.M. Jourquin
5d8bc5d35d fix include files path
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5825 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-03 13:07:42 +00:00
Vadim Zeitlin
170cbe33dc added WM_SYSCHAR processing
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5824 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-03 12:35:58 +00:00
Vadim Zeitlin
8ae6ce07de fixed bug with propagating wxWS_EX_VALIDATE_RECURSIVELY
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5823 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-03 12:20:34 +00:00
Michael Bedward
b27f2615c7 Used old name SelectCell instead of new name SetCurrentCell
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5822 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-03 07:18:02 +00:00
Michael Bedward
dfaf42d2e8 Added missing SetGridCursor function
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5821 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-03 07:11:12 +00:00
Michael Bedward
f445b8537b Updated demo program to work with revised grid code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5820 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-03 06:07:07 +00:00
Michael Bedward
1f1ce28841 Removed cell highlighting temporarily. Now wxGrid::EnableEditing(bool)
sets the cell edit control to be editable or read-only.

Fixed row sizing problem where text was clipped in the cell edit control.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5819 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-03 06:03:03 +00:00
Michael Bedward
2d66e025ef Major redesign of grid classes:
- wxGrid now derives from wxScrolledWindow
- Row labels, col labels, corner labels and grid cell area
  implemented as separate classes

The new design fixes the display problems (bad flicker when
scrolling) and simplifies the internal handling of grid cell
coordinates, the edit control etc.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5818 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-03 04:43:45 +00:00
Robin Dunn
fe366bc940 more change documentation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5817 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-02 22:43:22 +00:00
Robin Dunn
9e57c2a032 more change documentation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5816 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-02 22:38:13 +00:00
Václav Slavík
47c13eb766 added wxUSE_DEBUG_NEW_ALWAYS to --enable-mem_tracing (quite useless otherwise)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5815 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-02 21:32:15 +00:00
Václav Slavík
d13b68d233 fixed bug that caused assertion failure when printing HTML with images
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5814 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-02 21:18:31 +00:00
Václav Slavík
cf471cab82 fixed memory leaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5813 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-02 21:18:02 +00:00
Václav Slavík
c7fb814ac3 fixed DeleteContents inconsistency: didn't free memory if DeleteContents called before inserting data (and creating wxList)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5812 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-02 21:17:40 +00:00
Václav Slavík
66806a0bf0 fixing memory leaks & mem tracing false alerts
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5811 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-02 21:17:25 +00:00
Robert Roebling
2d52841d08 Clearified ROP code in wxDC (MSW and GTK).
Removed CaptureMouse() non-sense again.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5810 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-02 20:36:55 +00:00
Guillermo Rodriguez Garcia
a3a1ceae81 Fixed bug in DoDrawRotatedText: it wasn't deleting the font when done
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5809 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-02 19:48:01 +00:00
Vadim Zeitlin
8771a3239e docs can be built again (thanks lacheck!)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5808 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-02 19:30:09 +00:00
Vadim Zeitlin
7eb4e9cc0f added CentreOnScreen(), updated the docs to clear this mess a bit
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5807 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-02 18:48:41 +00:00
Vadim Zeitlin
3fcdd07b5d 1. don't compile IODBC sources for MSW
2. check for gettimeofday/ftime in configure (even though we have localtime)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5806 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-02 18:00:30 +00:00
Robert Roebling
68df5777c7 Tried to fix corrupted display of wxTextCtrl,
Corrected wxFileDialog's multiple file option.
  Corrected event mask for CaptureMouse(),
  Small change to "best visual" code.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5805 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-02 17:59:12 +00:00
Vadim Zeitlin
224ff7a50d don't show the same message twice when wxLog called from another thread
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5804 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-02 17:50:56 +00:00
Vadim Zeitlin
7c66a49332 oops, typo in recently committed files
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5803 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-02 17:11:36 +00:00
Vadim Zeitlin
6c68273f97 another assert added to check incorrect use of ctor
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5802 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-02 17:06:50 +00:00
Vadim Zeitlin
7e99ad8621 made error message when test for GTK+ fails more detailed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5801 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-02 16:56:06 +00:00
Sylvain Bougnoux
8242fb3b6f Add warning if wxStopWatch is up to second resolution
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5800 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-02 16:37:56 +00:00
Karsten Ballüder
84fba50b0c FreeBSD fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5799 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-02 16:09:54 +00:00
Václav Slavík
06bd2b5753 added Linux-only /proc/net/route check, IsOnline proceeds check always, not only if timer is not running, changed order of tests (/proc/net, ifconfig, connect to well-known host, ping)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5798 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-02 15:10:15 +00:00
Robin Dunn
990416e0bd minor fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5797 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-02 06:37:06 +00:00
Robin Dunn
3e02f5ed14 wxPython doc updates
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5796 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-02 04:46:41 +00:00
Vadim Zeitlin
4004f41e3c 1. wxStaticBitmap now uses mask even for bitmaps (and not only icons)
2. we now catch WM_SYSKEYDOWN/UP events as well as normal ones


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5795 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-02 00:52:06 +00:00
Stefan Neis
e00a018306 Added rules using motif.t gtk.t os2.t
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5794 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-02 00:08:20 +00:00
Stefan Neis
aa5df84fab Added auto-generated files.lst
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5793 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-01 23:47:11 +00:00
Stefan Neis
e48fa619a1 added os2.t
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5792 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-01 23:43:02 +00:00
Robin Dunn
e02c03a42e some fixes and code regeneration
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5791 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-01 21:36:20 +00:00
Robin Dunn
0c3d4bfdcf workaround font data bug
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5790 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-01 20:29:11 +00:00
Robin Dunn
a4bde64fd2 set version number
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5789 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-01 19:35:14 +00:00
Guillermo Rodriguez Garcia
f4e11bc941 Updated for new XPMlib files
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5788 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-01 18:14:03 +00:00
Guillermo Rodriguez Garcia
9b97ee33d7 Updated for new XPM files
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5787 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-01 18:13:20 +00:00
Guillermo Rodriguez Garcia
bfef20bf7d Added a test for saving XPMs with 'automatic' mask
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5786 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-01 18:12:29 +00:00
Robert Roebling
3d2b9c202d Added test for no-change in crollwin.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5785 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-01 18:12:20 +00:00
Guillermo Rodriguez Garcia
07dc73b114 This file was a copy of data.c and is not needed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5784 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-01 18:11:48 +00:00
Guillermo Rodriguez Garcia
9853e3b7d4 Fixed XPM transparency issue for both loading and saving
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5783 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-01 18:10:36 +00:00
Guillermo Rodriguez Garcia
e6ed776fb2 Updated lib to 3.4g
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5782 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-01 18:10:04 +00:00
Robert Roebling
103aab2664 Various corrections to makefiles, RPMs etc.
Corrected overoptimised window style and colour code.
  More best visual changes.
  Minor typos in docs.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5781 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-01 16:37:28 +00:00
Bart A.M. Jourquin
eb17eaba37 splitter in bin format
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5780 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-01 16:05:08 +00:00
Bart A.M. Jourquin
7325fb80ae *** empty log message ***
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5779 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-01 16:03:48 +00:00
Bart A.M. Jourquin
9329312b60 *** empty log message ***
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5778 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-01 15:54:47 +00:00
Bart A.M. Jourquin
c29658ea7d *** empty log message ***
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5777 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-01 15:54:16 +00:00
Julian Smart
df61c00971 Set/GetWindowMenu added to MDI parent frame under MSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5776 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-01 15:48:44 +00:00
Bart A.M. Jourquin
dc8174d2a9 icons fix for unix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5775 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-01 14:52:25 +00:00
Bart A.M. Jourquin
c45a4560f8 Add system fonts
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5774 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-01 09:16:04 +00:00
Bart A.M. Jourquin
b8365facc3 fix icons in dbtree.cpp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5773 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-01 09:05:34 +00:00
Vadim Zeitlin
5b615ed89b trying to make wxYield() more threads friendly
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5772 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-01 01:46:05 +00:00
Vadim Zeitlin
0bafad0cf4 1. some fixes for the problems reported by BoundsChecker
2. filled rectangles without outline are one pixel taller/wider


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5771 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-01 01:22:00 +00:00
David Webster
70862fa81b VA 4.0 fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5770 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-31 21:28:20 +00:00
Robin Dunn
8f06a01712 Minor additions to make working with binary buffers easier.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5769 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-31 21:22:44 +00:00
Robin Dunn
eec92d76f8 Some minor updates, fixes, etc.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5768 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-31 21:07:04 +00:00
Robin Dunn
9e46ac75de new tests
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5767 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-31 21:01:00 +00:00
Vadim Zeitlin
bbf8fc5391 1. bug in wxString::find_first_of() fixed
2. new wxStringTokenizer class and the docs for it


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5766 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-31 20:46:49 +00:00
Vadim Zeitlin
54744d3ab7 compilation for Win32 using configure works again
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5765 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-31 19:16:28 +00:00
Vadim Zeitlin
f83b9a7780 added wxBase.dsp to the list of files
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5764 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-31 18:42:49 +00:00
Vadim Zeitlin
53faea4316 new wxStringTokenizer
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5763 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-31 18:38:12 +00:00
Vadim Zeitlin
48fe83743a makefiles changes (@top_srcdir@ adjusted)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5762 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-31 18:31:18 +00:00
Vadim Zeitlin
2224580a41 1. configre/makefiles changes
a) wxBase compilation/installation/dist works, added wxBase.spec
 b) list of files is include by Makefile.in, not embedded into it
 c) configure runs "subconfigures" for samples/demos/utils
2. wxTokenizer class from Gregory Pietsch


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5761 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-31 18:26:16 +00:00
Robert Roebling
8480b297e7 Using the best visual is now an option.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5760 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-31 17:37:37 +00:00
Karsten Ballüder
13e3b45a89 Added the "guessed" icon path for Debian/Corel Linux with KDE
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5759 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-31 17:31:51 +00:00
Vadim Zeitlin
f855d4cbf5 wxWS_EX_VALIDATE_RECURSIVELY set by default if parent has it
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5758 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-31 16:25:09 +00:00
Karsten Ballüder
b9fa850da1 gtk-config now checks for gthread
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5757 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-31 16:08:09 +00:00
Karsten Ballüder
4bdad4464e FreeBSD library naming fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5756 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-31 16:02:31 +00:00
George Tasker
1e92909e9a Replaced tabs and cleaned up indentations.
Replaced all the char arrays I could with wxStrings.  Should noticably reduce memory used by classes.
Fixed "for (int i=0...)" occurances


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5755 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-31 15:44:54 +00:00
George Tasker
95ca6a20b5 Removed tabs and cleaned up indentations.
Added SQL_LOG_FILENAME and SQL_CATALOG_FILENAME constants to remove embedded text filenames


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5754 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-31 15:41:28 +00:00
Bart A.M. Jourquin
8a89af527d wxString fix (c_str()) in doc.cpp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5753 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-31 15:08:03 +00:00
Bart A.M. Jourquin
b3630c4fb4 add busycursors and remove fonts
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5752 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-31 15:02:05 +00:00
Bart A.M. Jourquin
13b59a33b4 suppres some warnings, suppress assert failure for fonts
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5751 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-31 14:36:36 +00:00
Bart A.M. Jourquin
ed6e827e23 Handle Cancel button in userdlg
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5750 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-31 14:22:30 +00:00
David Webster
5d33ed2c6b VA 4.0 fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5749 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-31 14:16:05 +00:00
Bart A.M. Jourquin
c09d434d55 Userdlg uses constraints (better for wxMotif). Also added Id for cvs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5748 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-31 13:20:36 +00:00
George Tasker
3fa344e531 Fixed file names to be the 8.3 name style
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5747 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-31 11:43:42 +00:00
Bart A.M. Jourquin
b5ce269b14 re-indent sources
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5746 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-31 10:43:24 +00:00
Bart A.M. Jourquin
0c8c86a6b0 fix Makefile.in
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5745 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-31 09:51:00 +00:00
Bart A.M. Jourquin
e60a4e0706 add makefile.b32
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5744 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-31 09:30:14 +00:00
George Tasker
8122471f4f Added dbbrowse demo to the list of demos
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5743 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-30 18:29:40 +00:00
George Tasker
a7060aacab Fixed target name to dbbrowse rather than dbrrowser
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5742 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-30 18:28:26 +00:00
George Tasker
de804346e4 Added the dbbrowse demo to the demo builds
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5741 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-30 18:27:06 +00:00
Julian Smart
56b79cb98d Some but not all compile fixes for typetest (VC++ 1.5); added datetime.cpp
to 16-bit compile list; edited isql.h for 16-bit (but not right since doesn't
link)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5740 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-30 15:29:45 +00:00
Julian Smart
f6081a0462 Cured memory leak report in wxDateTime; wxGLCanvas corrections
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5739 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-30 13:43:37 +00:00
Vadim Zeitlin
4c45f240f6 added modeless dlg test to dialogs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5738 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-30 01:33:02 +00:00
Vadim Zeitlin
b6c588e1a6 wxDialog change (Show() completely rewritten, modal dialogs handling changed)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5737 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-30 01:31:09 +00:00
Vadim Zeitlin
55c56a6d80 I think it's needed...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5736 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-29 22:19:48 +00:00
Guillermo Rodriguez Garcia
5ace021300 Fixed for old gnuwin32
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5735 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-29 20:27:20 +00:00
Robert Roebling
16b52fa1b7 Disabled ODBC code by default,
Move isql.h and isqlext.h to /include/wx


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5734 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-29 17:52:53 +00:00
Robert Roebling
d4aa3a4b86 Line drawing correction.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5733 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-29 16:50:15 +00:00
Robert Roebling
107a178768 New line tests.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5732 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-29 14:36:21 +00:00
Vadim Zeitlin
1b6452dfc4 1. small changes to wxProgressDialog to make it more user-friendly
2. attempt to correct the disappearing focus problem


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5731 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-29 02:38:19 +00:00
Vadim Zeitlin
3fd99dfceb VC++ project for wxBase/Win32
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5730 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-29 02:35:28 +00:00
Vadim Zeitlin
b9de131510 1. thread sample now uses wxProgressDialog for more "realism"
2. added a filled rect with outline to the drawing sample and
   changed DrawLine() to show how MSW draws them


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5729 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-29 02:34:46 +00:00
Václav Slavík
70aedad68f fixed memory leak (m_PagesHash not deleted)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5728 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-29 01:13:12 +00:00
Václav Slavík
34153050fe switched back to old use of DrawBitmap for transparent bitmaps
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5727 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-29 01:13:03 +00:00
Václav Slavík
72fc5caf06 bugfix: added wxWindowBase::OnMiddleClick declaration
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5726 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-29 01:12:55 +00:00
Václav Slavík
9922de0b73 LGPL comments
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5725 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-29 01:12:45 +00:00
Václav Slavík
55746b4c58 wxHTML changelog added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5724 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-29 01:12:40 +00:00
Václav Slavík
4acd108caf changed meaning of Ctrl-End to be symetrical with Ctrl-Home
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5723 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-29 01:12:26 +00:00
David Webster
67b81440f0 VA 4.0 fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5722 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-28 23:37:54 +00:00
Vadim Zeitlin
faab619a85 more files to ignore (build dirs names, tags files)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5721 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-28 20:58:32 +00:00
Vadim Zeitlin
7d0bb74d2b compilation fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5720 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-28 20:56:32 +00:00
Vadim Zeitlin
7923c64946 test for log dialog with only 1 msg
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5719 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-28 20:56:19 +00:00
Vadim Zeitlin
6dc6fda694 wxBase compilation fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5718 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-28 20:54:50 +00:00
Vadim Zeitlin
a02dc3e3ff added version info hidden dialog
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5717 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-28 20:54:04 +00:00
Vadim Zeitlin
1845dd9923 small compilation fix for !wxUSE_SOCKETS
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5716 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-28 20:53:14 +00:00
George Tasker
b5ffecfc98 First version of the DbBrowser demo program
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5715 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-28 15:25:32 +00:00
George Tasker
0bd55cfa2c Attempting to allow WIN16 compilation of the db/dbtable classes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5714 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-27 22:47:49 +00:00
Robert Roebling
d76fe38b29 Copied isql.h and isqlext.h to /include/wx/unix and make
it get installed.
  New code for "best_visual" under SGI and Sun.
  Typos in PostScrip code: HelvO and CourO.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5713 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-27 19:50:46 +00:00
Vadim Zeitlin
d71fa6fb2e wxString::find() now works again (was completely broken)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5712 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-27 16:47:57 +00:00
Bart A.M. Jourquin
c56dadd8ed IODBC fix in GetDataSource
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5711 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-27 13:10:54 +00:00
George Tasker
579d7d1316 Fixed the GetDataSource() function so the DsDesc that is returned is the full description
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5710 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-27 11:44:09 +00:00
Bart A.M. Jourquin
b2f60e03cc Using P.Getchar(i) instead of p[i]
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5709 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-27 08:54:44 +00:00
Stefan Csomor
e98eb0f278 new upload / perhaps prev version was corrupted
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5708 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-27 07:59:14 +00:00
Ove Kaaven
8ca97ad03c Added a couple of wxT()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5707 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-27 03:25:23 +00:00
Václav Slavík
7517f8f540 added helpview to makefile
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5706 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-27 00:03:56 +00:00
Václav Slavík
3592c01e44 compilation fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5705 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-27 00:03:50 +00:00
Václav Slavík
03a6a579ae compilation fix for MSVC
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5704 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-27 00:03:43 +00:00
Václav Slavík
5b315dd000 minor visual enhancement of help browser
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5703 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-27 00:03:38 +00:00
Václav Slavík
50a1f26154 documented noRefresh parameter of SetScrollbars
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5702 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-27 00:03:32 +00:00
Václav Slavík
21f95b5254 fixed incorrect parsing of URLs like www.kde.org (should be understood as www.kde.org/)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5701 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-27 00:03:25 +00:00
Václav Slavík
6ecb30a36f made unzip.c accept / and \ in filenames as equal
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5700 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-27 00:03:16 +00:00
Václav Slavík
5be0cf6503 implemented better paths handling: dir1/../dir2/file is replaced by dir2/file
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5699 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-27 00:02:55 +00:00
Václav Slavík
721ab90538 inline functions with if moved to .cpp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5698 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-27 00:02:44 +00:00
Václav Slavík
fc7dfaf8ee some scrolling&refreshing fixed ; removed wxHtmlWindow::OnKeyDown
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5697 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-27 00:02:25 +00:00
Václav Slavík
69626ba928 removed wxHtmlWindow::OnKeyDown
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5696 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-27 00:02:17 +00:00
Václav Slavík
c5d22514ae yet another help browser visual enhancement
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5695 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-27 00:02:10 +00:00
Ron Lee
56dade3c4d test for disabled scroll directions in kbd handler
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5694 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-26 23:43:23 +00:00
David Webster
7818b39874 Missing datetime and the db classes!!
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5693 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-26 23:07:22 +00:00
David Webster
46745d9394 Copmplete .icc that includes all libs that need be linked
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5692 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-26 23:06:53 +00:00
Stefan Neis
c2517b27a8 LINKAGEMODE is defined in defs.h. No need to have the same #ifdef again -
- at least as far as I can see/test.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5691 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-26 22:44:44 +00:00
Stefan Neis
1a787c5dc8 Changed order of #ifdefs to get native version on OS/2, even if
dlopen-wrapper is available.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5689 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-26 22:35:48 +00:00
David Webster
49e6314f6e New OS2 icon file
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5688 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-26 21:33:31 +00:00
David Webster
34d65dd2ae New OS2 resource file
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5687 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-26 21:23:51 +00:00
David Webster
22224dec5b New Visualage stuff and remove OS/2 stuff in the .rc file
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5686 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-26 21:23:28 +00:00
David Webster
66b6b04535 Visualage C++ V4.0 duplicate symbol fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5685 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-26 21:07:57 +00:00
Robert Roebling
ff7c6c9c36 Corrected TIFF,
more drawing tests.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5684 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-26 19:26:02 +00:00
Vadim Zeitlin
cf27ef009f compilation of wxBase works again (PATH_IFS wasn't defined for it!)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5683 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-26 18:28:16 +00:00
Stefan Neis
4c0ed91137 Found PROGRAM_EXT variable and now want to use it for OS/2, too.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5682 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-26 18:21:45 +00:00
Vadim Zeitlin
44141a18c3 these aren't being used any more
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5681 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-26 18:14:05 +00:00
Vadim Zeitlin
438e3558ad more backwards compatible kbd handling in wxScrolledWindow
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5680 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-26 16:42:45 +00:00
Vadim Zeitlin
50af7fa9f2 'Details' button is now disabled if no details
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5679 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-26 14:31:42 +00:00
Vadim Zeitlin
92fa3a1314 quick and dirty fix for the division by 0 crash in OnKeyDown()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5678 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-26 14:20:53 +00:00
Vadim Zeitlin
d5536adedf wxDC::Blit() ignores useMask if there is no mask instead of giving an assert failure
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5677 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-26 14:08:11 +00:00
Vadim Zeitlin
4f527e7158 compilation fix for Win16
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5676 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-26 13:45:00 +00:00
Vadim Zeitlin
531dfa446c compilation fix for compilers without PCH
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5675 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-26 13:41:59 +00:00
Guillermo Rodriguez Garcia
25ba2b89d7 URL test and some comments added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5674 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-26 01:54:14 +00:00
Václav Slavík
625e60c9d2 wxHtmlHelpFrame enhancements
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5673 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-26 00:50:43 +00:00
Václav Slavík
5656c6ef36 added wxHtmlWindow::GetOpenedAnchor
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5672 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-26 00:50:29 +00:00
Václav Slavík
fbc899085c wxACCEL_NONE -> wxACCEL_NORMAL
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5671 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-26 00:50:16 +00:00
Václav Slavík
f9286bf5e6 changed demo data a bit
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5670 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-26 00:50:11 +00:00
Václav Slavík
096824d758 sets frame title even for pages without <title> tag
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5669 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-26 00:50:05 +00:00
Václav Slavík
5fbc988f58 added wxHF_OPENFILES demo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5668 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-26 00:49:58 +00:00
Václav Slavík
29e6059738 some fixes in names of cached helpbooks (does not contain # or : anymore)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5667 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-26 00:49:52 +00:00
Václav Slavík
ecacdf8fc5 added new wxHF_ flags
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5666 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-26 00:49:46 +00:00
Václav Slavík
bd00574fd3 added more navigation controls to wxHtmlHelpFrame
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5665 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-26 00:49:40 +00:00
Václav Slavík
0646614dad added more navigation controls to html help frame
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5664 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-26 00:49:30 +00:00
Vadim Zeitlin
d1022fd6ba assert in GetNextItem() fixed (yes, now it is)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5663 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-26 00:19:16 +00:00
Vadim Zeitlin
13771c0847 assert in GetNextItem() fixed (?)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5662 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-26 00:17:21 +00:00
Vadim Zeitlin
568708e29f extended (wxMask test) and reorganized the drawing sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5661 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-26 00:02:15 +00:00
Vadim Zeitlin
a58a12e9b7 1. fixed (?) blitting bitmaps with mask
2. fixed wxWindowBase compilation (oops)
3. fixed kbd handling in wxScrolledWindow under MSW


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5660 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-26 00:01:27 +00:00
Vadim Zeitlin
d80cd92ae2 1. kbd interface for wxScrolledWindow
2. wxWindow::Set/GetExtraStyle()
3. wxWS_EX_VALIDATE_RECURSIVELY added and implemented
4. docs updated to reflect (2) an (3)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5659 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-25 19:59:41 +00:00
Ron Lee
d24905b5e4 fixed _T typo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5658 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-25 18:49:24 +00:00
Vadim Zeitlin
9376d86ede __GNUWIN32_OLD__ is defined if __GNUC__ is and NORLANDER_HEADERS is not
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5657 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-25 18:23:20 +00:00
Vadim Zeitlin
8e21d9ad05 documented GetNextItem() behaviour precisely
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5656 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-25 16:57:19 +00:00
Vadim Zeitlin
4786aabdbd added DrawRectangle() test
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5655 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-25 16:33:06 +00:00
Vadim Zeitlin
19695fbd61 fixed GetNextItem(item = -1)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5654 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-25 16:26:17 +00:00
George Tasker
e70e8f4cf3 Fixed code that did not work with Postgres
Removed all tabs, and replaced with spaces accordingly


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5653 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-25 16:18:40 +00:00
Vadim Zeitlin
176513eb42 more patches for BC++ from Ricky Gonzales
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5652 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-25 15:51:26 +00:00
Vadim Zeitlin
4a539480fb missing Init() added to wxMenu(wxCallback) ctors
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5651 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-25 15:35:55 +00:00
Julian Smart
eaeb6a3c37 Added DEVNAMES to wxPrintDialog to remember printer name; fixed wxDC::Clear
to not assert for printer DCs


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5650 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-25 13:35:44 +00:00
Bart A.M. Jourquin
8ad6ad991c add CASTWNDPROC to call to CallWindowProc for bcc
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5649 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-25 08:31:26 +00:00
Guillermo Rodriguez Garcia
31fd9b6bab Image docs updates
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5648 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-25 00:33:42 +00:00
David Webster
2a6b16e36b Added method for mimietype implementation.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5647 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-24 22:50:28 +00:00
David Webster
006713a260 Fix for VisualAge; Init can't be before it is called in VA.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5646 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-24 22:48:07 +00:00
Robert Roebling
11e654da9c Added datetime.inl to filelist.txt
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5645 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-24 22:15:43 +00:00
Julian Smart
ae77fce66c Added WS_VSCROLL and WSHSCROLL styles again
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5644 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-24 21:53:19 +00:00
Guillermo Rodriguez Garcia
e5a2291ac7 Updated some bits in socket docs.
Documented socket samples
Moved wxInitAllImageHandlers from 'file functions' (?) to 'misc functions'


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5643 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-24 20:46:54 +00:00
Vadim Zeitlin
3c1a88d8b8 several mingw32 compilation fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5642 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-24 20:19:39 +00:00
Vadim Zeitlin
c857185ce0 value of wxTE_PASSWORD changed to be different from wxCANCEL
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5641 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-24 20:19:07 +00:00
Vadim Zeitlin
d2f5093319 implementation of wxGetPasswordFromUser
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5640 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-24 20:18:03 +00:00
Vadim Zeitlin
a294c6d53e added wxGetPasswordFromUser(), dialogs sample shows it, documented it
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5639 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-24 18:26:54 +00:00
Vadim Zeitlin
88e243b29f warnings/linking fixes for wxMotif
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5638 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-24 17:53:44 +00:00
Vadim Zeitlin
069d0f27ef 2 warnings from Solaris build log fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5637 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-24 17:04:44 +00:00
Vadim Zeitlin
b97fa7cfd1 modifications to show non monochrome masks in action
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5636 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-24 16:46:40 +00:00
Vadim Zeitlin
c3a4297caf excluded geometry.cpp from build by using #if wxUSE_GEOMETRY which is never
defined to be 1 (so far)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5635 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-24 16:22:11 +00:00
Vadim Zeitlin
de2d2cdc86 patches for wxSTIPPLE_MASK_OPAQUE from Klass Holwerda
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5634 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-24 15:58:33 +00:00
Vadim Zeitlin
bf3dab485a some fixes from the SGI build log
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5633 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-24 15:47:21 +00:00
Václav Slavík
b19d5e569e fixed false error report with helpfiles without index
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5632 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-24 15:38:42 +00:00
Václav Slavík
446f8f2aad documented wxACCEL_ALT
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5631 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-24 15:38:34 +00:00
Vadim Zeitlin
b24e8265ed patches for XPM/TIFF compilation with BC++ from Ricky Gonzales
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5630 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-24 15:37:24 +00:00
Vadim Zeitlin
af7c105256 refresh after sort - patch from Ricky Gonzales
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5629 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-24 15:36:17 +00:00
Jouk Jansen
f49676ee8c Committing in .
Update VMS makefiles

 Modified Files:
 	wxWindows/src/common/descrip.mms
 	wxWindows/src/generic/descrip.mms
 	wxWindows/src/unix/descrip.mms
 ----------------------------------------------------------------------


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5628 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-01-24 13:58:36 +00:00
5465 changed files with 3935 additions and 1302802 deletions

View File

@@ -1,35 +0,0 @@
system.list
bin
.gdb_history
Test
config.cache
configarg.cache
config.status
system.list
linux.system.cache
wx-config
config.log
linux-gnu.system.cache
*.dsp
*.dsw
*.plg
*.opt
*.aps
*.ncb
*.pro
*.opt
*.d
*.swp
*.swo
Release
Debug
ReleaseDLL
DebugDLL
robert
stamp-h.in
Makefile
configure
setup.h
stamp-h
libtool
aclocal.m4

View File

@@ -1,242 +0,0 @@
------------------------------------------------------------------------
How to build the sources from CVS
------------------------------------------------------------------------
I) Windows using plain makefiles
----------------------------------------
a) If using Microsoft Visual C++ 5.0 or 6.0
Ensure that the command-line compiler and tools (including
nmake) are installed and ready to run. Depending on your
installation there may be a batch file (named something like
VCVARS32.BAT) that needs to be run to set correct environment
varaibles and PATH entries.
Continue with item c) below.
b) If using the GNU MinGW32 or GNU CygWin32 compilers
You'll need the compiler itself which is available from
http://www.cygwin.com
When using MingW32 you'll need GNU make which is a part
of the CygWin32 toolchain and is also available as a stand
alone port without the infamous Cygwin.dll from
http://agnes.dida.physik.uni-essen.de/~janjaap/mingw32
The makefile has small problems with Cygwin<69>s tools
so it is recommended not to use these (but MingGW32
and its make.exe).
-> Set your path so that it includes the directory
where your compiler and tools reside
b-2) Using Mingw32 with gcc-2.95 and Anders Norlander's
Win32 headers
Using the newer gcc-2.95/Noralander header combination
will allow you to compile more of the MSW code, such
as OLE and Drag-n-Drop.
Instructions are similar to those for Regular Mingw32 except
->Get the compiler from
ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/gcc-2.95/
->patch the gcc headers with info in wxWin\Mingw32-gcc295.patches.
PLEASE APPLY THESE PATCHES BY HAND! There are apparently a few
different versions of the headers floating around.
->Edit wx/src/makeg95.env and set the MINGW32 variable at the top of
the file to either 1 (you have Mingw32) or 0 (you have Cygwin32).
If using MINGW32, also set the MINGW32VERSION variable
appropriately.
c) Build instructions
-> Assumming that you installed the wxWindows sources
into c:\wxWin
-> Copy c:\wxWin\include\wx\msw\setup0.h
to c:\wxWin\include\wx\msw\setup.h
-> Edit c:\wxWin\include\wx\msw\setup.h so that
most features are enabled (i.e. defined to 1) with
#define wxUSE_ODBC 0
#define wxUSE_SOCKETS 0
#define wxUSE_HTML 1
#define wxUSE_THREADS 1
#define wxUSE_FS_INET 0
#define wxUSE_FS_ZIP 1
#define wxUSE_BUSYINFO 1
#define wxUSE_DYNLIB_CLASS 1
#define wxUSE_ZIPSTREAM 1
#define wxUSE_LIBJPEG 1
#define wxUSE_LIBPNG 1
and iostreams ares disabled with
#define wxUSE_STD_IOSTREAM 0
note: ODBC and SOCKETS can be 1 for gcc-2.95
-> type: cd c:\wxWin\src\msw
-> type: make -f makefile.g95 (if using GNU tools)
or type: make -f makefile.vc (if using MS VC++)
II) Unix ports
--------------
Building wxGTK or wxMotif completely without configure
won't ever work, but there is now a new makefile system
that works without libtool and automake, using only
configure to create what is needed.
In order to create configure, you need to have the
GNU autoconf package (version 2.13 or 2.14) installed
on your system and type run "autoconf" in the base
directory (or run the autogen.sh script in the same
directory, which just calls autoconf).
Set WXWIN environment variable to the base directory such
as ~/wxWindows (this is actually not really needed).
-> type: export WXWIN=~/wxWindows
-> type: md mybuild
-> type: cd mybuild
-> type: ../configure --with-motif
or type: ../configure --with-gtk
-> type: make
-> type: su <type root password>
-> type: make install
-> type: ldconfig
-> type: exit
Call configure with --disable-shared to create a static
library. Calling "make uninstall" will remove the installed
library and "make dist" will create a distribution (not
yet complete).
III) Windows using configure
----------------------------------------
Take a look at Unix->Windows cross compiling. With minor
modifications, this should work in Windows if you've got the cygnus
utilities (bash, GNU make, etc) and either mingw32 or cygwin32 installed.
See http://www.cygnus.com for these programs, or go straight to their
ftp server at ftp://sourceware.cygnus.com/pub/cygwin/.
Of course, you can also build the library using plain makefiles (see
section I).
V) MacOS
----------------------------------------
VI) OS/2
----------------------------------------
VII) Unix->Windows cross-compiling using configure
--------------------------------------------------
First you'll need a cross-compiler; linux glibc binaries of mingw32 and
cygwin32 (both based on egcs) can be found at
ftp://ftp.objsw.com/pub/crossgcc/linux-x-win32. Otherwise you can
compile one yourself. Check the relevant FAQs.
[ A Note about cygwin32 and mingw32: the main difference is that cygwin32
binaries are always linked against cygwin.dll. This dll encapsulates most
standard Unix C extensions, which is very handy if you're porting unix
software to windows. However, wxMSW doesn't need this, so mingw32 is
preferable if you write portable C(++). ]
You might want to build both Unix and Windows binaries in the same source
tree; to do this make subdirs for each e.g. unix and win32. If you've
already build wxWindows in the main dir, do a 'make distclean' there,
otherwise configure will get confused. (In any case, read the section 'Unix
using configure' and make sure you're able to build a native wxWindows
library; cross-compiling errors can be pretty obscure and you'll want to be
sure that your configure setup is basically sound.)
To cross compile the windows library, do
-> cd win32
(or whatever you called it)
Now run configure. There are two ways to do this
-> ../configure --host=i586-mingw32 --build=i586-linux --with-mingw \
--enable-dnd=no --without-odbc
where --build= should read whatever platform you're building on. Configure
will notice that build and host platforms differ, and automatically prepend
i586-mingw32- to gcc, ar, ld, etc (make sure they're in the PATH!).
The other way to run configure is by specifying the names of the binaries
yourself:
-> CC=i586-mingw32-gcc CXX=i586-mingw32-g++ RANLIB=i586-mingw32-ranlib \
DLLTOOL=i586-mingw32-dlltool LD=i586-mingw32-ld NM=i586-mingw32-nm \
../configure --host=i586-mingw32 --with-mingw --enable-dnd=no
(all assuming you're using mingw32)
Drag'n'drop is disabled because mingw32 lacks (AFAIK) OLE headers.
[ Update: some new mingw32 versions now have a new set of windows header
files, which apparently can handle ole. Untested at the moment ]
ODBC files don't compile as of 13.10.99 - may be this will be fixed by the
moment you're reading these lines.
Configure will conclude that shared libraries are out of the question and
opt for a static one. I haven't looked into DLL creation yet.
Type
-> make
and wait, wait, wait. Don't leave the room, because the minute you do there
will be a compile error :-)
NB: you risk to get quite a few warnings about "ANSI C++ forbids implicit
conversion from 'void *'" in all places where va_arg macro is used. This
is due to a bug in (some versions of) mingw32 headers which may be
corrected by editing the file
${install_prefix}/lib/gcc-lib/i586-mingw32/egcs-2.91.57/include/stdarg.h
(instead of egcs-2.91.57 you may have something different), searching for
the lines
/* Define __gnuc_va_list. */
#ifndef __GNUC_VA_LIST
#define __GNUC_VA_LIST
#if defined(__svr4__) || defined(_AIX) || defined(_M_UNIX) || defined(__NetBSD__)
typedef char *__gnuc_va_list;
#else
typedef void *__gnuc_va_list;
#endif
#endif
and adding "|| defined(_WIN32)" to the list of platforms on which
__gnuc_va_list is char *.
If this is successful, you end up with a libwx_msw.a in win32/lib. Now try
building the minimal sample:
-> cd samples/minimal
-> make
and run it with wine, for example (or copy to a Windows box)
-> wine minimal.exe
If all is well, do an install; from win32
-> make install
Native and cross-compiled installations can co-exist peacefully
(as long as their widget sets differ), except for wx-config. You might
want to rename the cross-compiled one to i586-mingw32-wx-config, or something.
Cross-compiling TODO:
---------------------
- resource compiling must be done manually for now (should/can we link the
default wx resources into libwx_msw.a?) [ No we can't; the linker won't
link it in... you have to supply an object file ]
- dynamic libraries
- static executables are HUGE -- there must be room for improvement.

File diff suppressed because it is too large Load Diff

View File

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

View File

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

951
config.guess vendored
View File

@@ -1,951 +0,0 @@
#! /bin/sh
# Attempt to guess a canonical system name.
# Copyright (C) 1992, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Written by Per Bothner <bothner@cygnus.com>.
# The master version of this file is at the FSF in /home/gd/gnu/lib.
#
# This script attempts to guess a canonical system name similar to
# config.sub. If it succeeds, it prints the system name on stdout, and
# exits with 0. Otherwise, it exits with 1.
#
# The plan is that this can be called by configure scripts if you
# don't specify an explicit system type (host/target name).
#
# Only a few systems have been added to this list; please add others
# (but try to keep the structure clean).
#
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
# (ghazi@noc.rutgers.edu 8/24/94.)
if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
PATH=$PATH:/.attbin ; export PATH
fi
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
trap 'rm -f dummy.c dummy.o dummy; exit 1' 1 2 15
# Note: order is significant - the case branches are not exclusive.
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
alpha:OSF1:*:*)
if test $UNAME_RELEASE = "V4.0"; then
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
fi
# A Vn.n version is a released version.
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
cat <<EOF >dummy.s
.globl main
.ent main
main:
.frame \$30,0,\$26,0
.prologue 0
.long 0x47e03d80 # implver $0
lda \$2,259
.long 0x47e20c21 # amask $2,$1
srl \$1,8,\$2
sll \$2,2,\$2
sll \$0,3,\$0
addl \$1,\$0,\$0
addl \$2,\$0,\$0
ret \$31,(\$26),1
.end main
EOF
${CC-cc} dummy.s -o dummy 2>/dev/null
if test "$?" = 0 ; then
./dummy
case "$?" in
7)
UNAME_MACHINE="alpha"
;;
15)
UNAME_MACHINE="alphaev5"
;;
14)
UNAME_MACHINE="alphaev56"
;;
10)
UNAME_MACHINE="alphapca56"
;;
16)
UNAME_MACHINE="alphaev6"
;;
esac
fi
rm -f dummy.s dummy
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr [[A-Z]] [[a-z]]`
exit 0 ;;
21064:Windows_NT:50:3)
echo alpha-dec-winnt3.5
exit 0 ;;
Amiga*:UNIX_System_V:4.0:*)
echo m68k-cbm-sysv4
exit 0;;
amiga:NetBSD:*:*)
echo m68k-cbm-netbsd${UNAME_RELEASE}
exit 0 ;;
amiga:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
*:[Aa]miga[Oo][Ss]:*:*)
echo ${UNAME_MACHINE}-unknown-amigaos
exit 0 ;;
arc64:OpenBSD:*:*)
echo mips64el-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
arc:OpenBSD:*:*)
echo mipsel-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
hkmips:OpenBSD:*:*)
echo mips-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
pmax:OpenBSD:*:*)
echo mipsel-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
sgi:OpenBSD:*:*)
echo mips-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
wgrisc:OpenBSD:*:*)
echo mipsel-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
echo arm-acorn-riscix${UNAME_RELEASE}
exit 0;;
arm32:NetBSD:*:*)
echo arm-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
exit 0 ;;
SR2?01:HI-UX/MPP:*:*)
echo hppa1.1-hitachi-hiuxmpp
exit 0;;
Pyramid*:OSx*:*:*|MIS*:OSx*:*:*|MIS*:SMP_DC-OSx*:*:*)
# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
if test "`(/bin/universe) 2>/dev/null`" = att ; then
echo pyramid-pyramid-sysv3
else
echo pyramid-pyramid-bsd
fi
exit 0 ;;
NILE:*:*:dcosx)
echo pyramid-pyramid-svr4
exit 0 ;;
sun4H:SunOS:5.*:*)
echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit 0 ;;
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit 0 ;;
i86pc:SunOS:5.*:*)
echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit 0 ;;
sun4*:SunOS:6*:*)
# According to config.sub, this is the proper way to canonicalize
# SunOS6. Hard to guess exactly what SunOS6 will be like, but
# it's likely to be more like Solaris than SunOS4.
echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit 0 ;;
sun4*:SunOS:*:*)
case "`/usr/bin/arch -k`" in
Series*|S4*)
UNAME_RELEASE=`uname -v`
;;
esac
# Japanese Language versions have a version number like `4.1.3-JL'.
echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
exit 0 ;;
sun3*:SunOS:*:*)
echo m68k-sun-sunos${UNAME_RELEASE}
exit 0 ;;
sun*:*:4.2BSD:*)
UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
case "`/bin/arch`" in
sun3)
echo m68k-sun-sunos${UNAME_RELEASE}
;;
sun4)
echo sparc-sun-sunos${UNAME_RELEASE}
;;
esac
exit 0 ;;
aushp:SunOS:*:*)
echo sparc-auspex-sunos${UNAME_RELEASE}
exit 0 ;;
atari*:NetBSD:*:*)
echo m68k-atari-netbsd${UNAME_RELEASE}
exit 0 ;;
atari*:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
sun3*:NetBSD:*:*)
echo m68k-sun-netbsd${UNAME_RELEASE}
exit 0 ;;
sun3*:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
mac68k:NetBSD:*:*)
echo m68k-apple-netbsd${UNAME_RELEASE}
exit 0 ;;
mac68k:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
mvme68k:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
mvme88k:OpenBSD:*:*)
echo m88k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
powerpc:machten:*:*)
echo powerpc-apple-machten${UNAME_RELEASE}
exit 0 ;;
macppc:NetBSD:*:*)
echo powerpc-apple-netbsd${UNAME_RELEASE}
exit 0 ;;
RISC*:Mach:*:*)
echo mips-dec-mach_bsd4.3
exit 0 ;;
RISC*:ULTRIX:*:*)
echo mips-dec-ultrix${UNAME_RELEASE}
exit 0 ;;
VAX*:ULTRIX*:*:*)
echo vax-dec-ultrix${UNAME_RELEASE}
exit 0 ;;
2020:CLIX:*:*)
echo clipper-intergraph-clix${UNAME_RELEASE}
exit 0 ;;
mips:*:*:UMIPS | mips:*:*:RISCos)
sed 's/^ //' << EOF >dummy.c
int main (argc, argv) int argc; char **argv; {
#if defined (host_mips) && defined (MIPSEB)
#if defined (SYSTYPE_SYSV)
printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
#endif
#if defined (SYSTYPE_SVR4)
printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
#endif
#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
#endif
#endif
exit (-1);
}
EOF
${CC-cc} dummy.c -o dummy \
&& ./dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
&& rm dummy.c dummy && exit 0
rm -f dummy.c dummy
echo mips-mips-riscos${UNAME_RELEASE}
exit 0 ;;
Night_Hawk:Power_UNIX:*:*)
echo powerpc-harris-powerunix
exit 0 ;;
m88k:CX/UX:7*:*)
echo m88k-harris-cxux7
exit 0 ;;
m88k:*:4*:R4*)
echo m88k-motorola-sysv4
exit 0 ;;
m88k:*:3*:R3*)
echo m88k-motorola-sysv3
exit 0 ;;
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88110 ] ; then
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \
-o ${TARGET_BINARY_INTERFACE}x = x ] ; then
echo m88k-dg-dgux${UNAME_RELEASE}
else
echo m88k-dg-dguxbcs${UNAME_RELEASE}
fi
else echo i586-dg-dgux${UNAME_RELEASE}
fi
exit 0 ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
echo m88k-dolphin-sysv3
exit 0 ;;
M88*:*:R3*:*)
# Delta 88k system running SVR3
echo m88k-motorola-sysv3
exit 0 ;;
XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
echo m88k-tektronix-sysv3
exit 0 ;;
Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
echo m68k-tektronix-bsd
exit 0 ;;
*:IRIX*:*:*)
echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
exit 0 ;;
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
i?86:AIX:*:*)
echo i386-ibm-aix
exit 0 ;;
*:AIX:2:3)
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
sed 's/^ //' << EOF >dummy.c
#include <sys/systemcfg.h>
main()
{
if (!__power_pc())
exit(1);
puts("powerpc-ibm-aix3.2.5");
exit(0);
}
EOF
${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0
rm -f dummy.c dummy
echo rs6000-ibm-aix3.2.5
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
echo rs6000-ibm-aix3.2.4
else
echo rs6000-ibm-aix3.2
fi
exit 0 ;;
*:AIX:*:4)
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'`
if /usr/sbin/lsattr -EHl ${IBM_CPU_ID} | grep POWER >/dev/null 2>&1; then
IBM_ARCH=rs6000
else
IBM_ARCH=powerpc
fi
if [ -x /usr/bin/oslevel ] ; then
IBM_REV=`/usr/bin/oslevel`
else
IBM_REV=4.${UNAME_RELEASE}
fi
echo ${IBM_ARCH}-ibm-aix${IBM_REV}
exit 0 ;;
*:AIX:*:*)
echo rs6000-ibm-aix
exit 0 ;;
ibmrt:4.4BSD:*|romp-ibm:BSD:*)
echo romp-ibm-bsd4.4
exit 0 ;;
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC NetBSD and
echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
exit 0 ;; # report: romp-ibm BSD 4.3
*:BOSX:*:*)
echo rs6000-bull-bosx
exit 0 ;;
DPX/2?00:B.O.S.:*:*)
echo m68k-bull-sysv3
exit 0 ;;
9000/[34]??:4.3bsd:1.*:*)
echo m68k-hp-bsd
exit 0 ;;
hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
echo m68k-hp-bsd4.4
exit 0 ;;
9000/[34678]??:HP-UX:*:*)
case "${UNAME_MACHINE}" in
9000/31? ) HP_ARCH=m68000 ;;
9000/[34]?? ) HP_ARCH=m68k ;;
9000/6?? | 9000/7?? | 9000/80[24] | 9000/8?[13679] | 9000/892 )
sed 's/^ //' << EOF >dummy.c
#include <stdlib.h>
#include <unistd.h>
int main ()
{
#if defined(_SC_KERNEL_BITS)
long bits = sysconf(_SC_KERNEL_BITS);
#endif
long cpu = sysconf (_SC_CPU_VERSION);
switch (cpu)
{
case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
case CPU_PA_RISC2_0:
#if defined(_SC_KERNEL_BITS)
switch (bits)
{
case 64: puts ("hppa2.0w"); break;
case 32: puts ("hppa2.0n"); break;
default: puts ("hppa2.0"); break;
} break;
#else /* !defined(_SC_KERNEL_BITS) */
puts ("hppa2.0"); break;
#endif
default: puts ("hppa1.0"); break;
}
exit (0);
}
EOF
(${CC-cc} dummy.c -o dummy 2>/dev/null ) && HP_ARCH=`./dummy`
rm -f dummy.c dummy
esac
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
echo ${HP_ARCH}-hp-hpux${HPUX_REV}
exit 0 ;;
3050*:HI-UX:*:*)
sed 's/^ //' << EOF >dummy.c
#include <unistd.h>
int
main ()
{
long cpu = sysconf (_SC_CPU_VERSION);
/* The order matters, because CPU_IS_HP_MC68K erroneously returns
true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
results, however. */
if (CPU_IS_PA_RISC (cpu))
{
switch (cpu)
{
case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
default: puts ("hppa-hitachi-hiuxwe2"); break;
}
}
else if (CPU_IS_HP_MC68K (cpu))
puts ("m68k-hitachi-hiuxwe2");
else puts ("unknown-hitachi-hiuxwe2");
exit (0);
}
EOF
${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0
rm -f dummy.c dummy
echo unknown-hitachi-hiuxwe2
exit 0 ;;
9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
echo hppa1.1-hp-bsd
exit 0 ;;
9000/8??:4.3bsd:*:*)
echo hppa1.0-hp-bsd
exit 0 ;;
hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
echo hppa1.1-hp-osf
exit 0 ;;
hp8??:OSF1:*:*)
echo hppa1.0-hp-osf
exit 0 ;;
i?86:OSF1:*:*)
if [ -x /usr/sbin/sysversion ] ; then
echo ${UNAME_MACHINE}-unknown-osf1mk
else
echo ${UNAME_MACHINE}-unknown-osf1
fi
exit 0 ;;
parisc*:Lites*:*:*)
echo hppa1.1-hp-lites
exit 0 ;;
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
echo c1-convex-bsd
exit 0 ;;
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
exit 0 ;;
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
echo c34-convex-bsd
exit 0 ;;
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
echo c38-convex-bsd
exit 0 ;;
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
echo c4-convex-bsd
exit 0 ;;
CRAY*X-MP:*:*:*)
echo xmp-cray-unicos
exit 0 ;;
CRAY*Y-MP:*:*:*)
echo ymp-cray-unicos${UNAME_RELEASE}
exit 0 ;;
CRAY*[A-Z]90:*:*:*)
echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
exit 0 ;;
CRAY*TS:*:*:*)
echo t90-cray-unicos${UNAME_RELEASE}
exit 0 ;;
CRAY-2:*:*:*)
echo cray2-cray-unicos
exit 0 ;;
F300:UNIX_System_V:*:*)
FUJITSU_SYS=`uname -p | tr [A-Z] [a-z] | sed -e 's/\///'`
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit 0 ;;
F301:UNIX_System_V:*:*)
echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'`
exit 0 ;;
hp3[0-9][05]:NetBSD:*:*)
echo m68k-hp-netbsd${UNAME_RELEASE}
exit 0 ;;
hp300:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
sparc*:BSD/OS:*:*)
echo sparc-unknown-bsdi${UNAME_RELEASE}
exit 0 ;;
i?86:BSD/386:*:* | *:BSD/OS:*:*)
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
exit 0 ;;
*:FreeBSD:*:*)
echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
exit 0 ;;
*:NetBSD:*:*)
echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
exit 0 ;;
*:OpenBSD:*:*)
echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
exit 0 ;;
i*:CYGWIN*:*)
echo ${UNAME_MACHINE}-pc-cygwin32
exit 0 ;;
i*:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
exit 0 ;;
p*:CYGWIN*:*)
echo powerpcle-unknown-cygwin32
exit 0 ;;
prep*:SunOS:5.*:*)
echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit 0 ;;
*:GNU:*:*)
echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
exit 0 ;;
*:Linux:*:*)
# uname on the ARM produces all sorts of strangeness, and we need to
# filter it out.
case "$UNAME_MACHINE" in
arm* | sa110*) UNAME_MACHINE="arm" ;;
esac
# The BFD linker knows what the default object file format is, so
# first see if it will tell us.
ld_help_string=`ld --help 2>&1`
ld_supported_emulations=`echo $ld_help_string \
| sed -ne '/supported emulations:/!d
s/[ ][ ]*/ /g
s/.*supported emulations: *//
s/ .*//
p'`
case "$ld_supported_emulations" in
i?86linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" ; exit 0 ;;
i?86coff) echo "${UNAME_MACHINE}-pc-linux-gnucoff" ; exit 0 ;;
sparclinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
armlinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
m68klinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
elf32ppc) echo "powerpc-unknown-linux-gnu" ; exit 0 ;;
esac
if test "${UNAME_MACHINE}" = "alpha" ; then
sed 's/^ //' <<EOF >dummy.s
.globl main
.ent main
main:
.frame \$30,0,\$26,0
.prologue 0
.long 0x47e03d80 # implver $0
lda \$2,259
.long 0x47e20c21 # amask $2,$1
srl \$1,8,\$2
sll \$2,2,\$2
sll \$0,3,\$0
addl \$1,\$0,\$0
addl \$2,\$0,\$0
ret \$31,(\$26),1
.end main
EOF
LIBC=""
${CC-cc} dummy.s -o dummy 2>/dev/null
if test "$?" = 0 ; then
./dummy
case "$?" in
7)
UNAME_MACHINE="alpha"
;;
15)
UNAME_MACHINE="alphaev5"
;;
14)
UNAME_MACHINE="alphaev56"
;;
10)
UNAME_MACHINE="alphapca56"
;;
16)
UNAME_MACHINE="alphaev6"
;;
esac
objdump --private-headers dummy | \
grep ld.so.1 > /dev/null
if test "$?" = 0 ; then
LIBC="libc1"
fi
fi
rm -f dummy.s dummy
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0
elif test "${UNAME_MACHINE}" = "mips" ; then
cat >dummy.c <<EOF
main(argc, argv)
int argc;
char *argv[];
{
#ifdef __MIPSEB__
printf ("%s-unknown-linux-gnu\n", argv[1]);
#endif
#ifdef __MIPSEL__
printf ("%sel-unknown-linux-gnu\n", argv[1]);
#endif
return 0;
}
EOF
${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0
rm -f dummy.c dummy
else
# Either a pre-BFD a.out linker (linux-gnuoldld)
# or one that does not give us useful --help.
# GCC wants to distinguish between linux-gnuoldld and linux-gnuaout.
# If ld does not provide *any* "supported emulations:"
# that means it is gnuoldld.
echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations:"
test $? != 0 && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0
case "${UNAME_MACHINE}" in
i?86)
VENDOR=pc;
;;
*)
VENDOR=unknown;
;;
esac
# Determine whether the default compiler is a.out or elf
cat >dummy.c <<EOF
#include <features.h>
main(argc, argv)
int argc;
char *argv[];
{
#ifdef __ELF__
# ifdef __GLIBC__
# if __GLIBC__ >= 2
printf ("%s-${VENDOR}-linux-gnu\n", argv[1]);
# else
printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
# endif
# else
printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
# endif
#else
printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]);
#endif
return 0;
}
EOF
${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0
rm -f dummy.c dummy
fi ;;
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions
# are messed up and put the nodename in both sysname and nodename.
i?86:DYNIX/ptx:4*:*)
echo i386-sequent-sysv4
exit 0 ;;
i?86:UNIX_SV:4.2MP:2.*)
# Unixware is an offshoot of SVR4, but it has its own version
# number series starting with 2...
# I am not positive that other SVR4 systems won't match this,
# I just have to hope. -- rms.
# Use sysv4.2uw... so that sysv4* matches it.
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
exit 0 ;;
i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*)
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE}
else
echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
fi
exit 0 ;;
i?86:*:3.2:*)
if test -f /usr/options/cb.name; then
UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
elif /bin/uname -X 2>/dev/null >/dev/null ; then
UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
(/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
(/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
&& UNAME_MACHINE=i586
echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
else
echo ${UNAME_MACHINE}-pc-sysv32
fi
exit 0 ;;
i?86:UnixWare:*:*)
if /bin/uname -X 2>/dev/null >/dev/null ; then
(/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
&& UNAME_MACHINE=i586
fi
echo ${UNAME_MACHINE}-unixware-${UNAME_RELEASE}-${UNAME_VERSION}
exit 0 ;;
pc:*:*:*)
# uname -m prints for DJGPP always 'pc', but it prints nothing about
# the processor, so we play safe by assuming i386.
echo i386-pc-msdosdjgpp
exit 0 ;;
Intel:Mach:3*:*)
echo i386-pc-mach3
exit 0 ;;
paragon:*:*:*)
echo i860-intel-osf1
exit 0 ;;
i860:*:4.*:*) # i860-SVR4
if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
else # Add other i860-SVR4 vendors below as they are discovered.
echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
fi
exit 0 ;;
mini*:CTIX:SYS*5:*)
# "miniframe"
echo m68010-convergent-sysv
exit 0 ;;
M68*:*:R3V[567]*:*)
test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0)
OS_REL=''
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& echo i486-ncr-sysv4.3${OS_REL} && exit 0
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
&& echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& echo i486-ncr-sysv4 && exit 0 ;;
m68*:LynxOS:2.*:*)
echo m68k-unknown-lynxos${UNAME_RELEASE}
exit 0 ;;
mc68030:UNIX_System_V:4.*:*)
echo m68k-atari-sysv4
exit 0 ;;
i?86:LynxOS:2.*:*)
echo i386-unknown-lynxos${UNAME_RELEASE}
exit 0 ;;
TSUNAMI:LynxOS:2.*:*)
echo sparc-unknown-lynxos${UNAME_RELEASE}
exit 0 ;;
rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*)
echo rs6000-unknown-lynxos${UNAME_RELEASE}
exit 0 ;;
SM[BE]S:UNIX_SV:*:*)
echo mips-dde-sysv${UNAME_RELEASE}
exit 0 ;;
RM*:SINIX-*:*:*)
echo mips-sni-sysv4
exit 0 ;;
*:SINIX-*:*:*)
if uname -p 2>/dev/null >/dev/null ; then
UNAME_MACHINE=`(uname -p) 2>/dev/null`
echo ${UNAME_MACHINE}-sni-sysv4
else
echo ns32k-sni-sysv
fi
exit 0 ;;
PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
# says <Richard.M.Bartel@ccMail.Census.GOV>
echo i586-unisys-sysv4
exit 0 ;;
*:UNIX_System_V:4*:FTX*)
# From Gerald Hewes <hewes@openmarket.com>.
# How about differentiating between stratus architectures? -djm
echo hppa1.1-stratus-sysv4
exit 0 ;;
*:*:*:FTX*)
# From seanf@swdc.stratus.com.
echo i860-stratus-sysv4
exit 0 ;;
mc68*:A/UX:*:*)
echo m68k-apple-aux${UNAME_RELEASE}
exit 0 ;;
news*:NEWS-OS:*:6*)
echo mips-sony-newsos6
exit 0 ;;
R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R4000:UNIX_SV:*:*)
if [ -d /usr/nec ]; then
echo mips-nec-sysv${UNAME_RELEASE}
else
echo mips-unknown-sysv${UNAME_RELEASE}
fi
exit 0 ;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
echo powerpc-be-beos
exit 0 ;;
BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
echo powerpc-apple-beos
exit 0 ;;
BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
echo i586-pc-beos
exit 0 ;;
esac
#echo '(No uname command or uname output not recognized.)' 1>&2
#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
cat >dummy.c <<EOF
#ifdef _SEQUENT_
# include <sys/types.h>
# include <sys/utsname.h>
#endif
main ()
{
#if defined (sony)
#if defined (MIPSEB)
/* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
I don't know.... */
printf ("mips-sony-bsd\n"); exit (0);
#else
#include <sys/param.h>
printf ("m68k-sony-newsos%s\n",
#ifdef NEWSOS4
"4"
#else
""
#endif
); exit (0);
#endif
#endif
#if defined (__arm) && defined (__acorn) && defined (__unix)
printf ("arm-acorn-riscix"); exit (0);
#endif
#if defined (hp300) && !defined (hpux)
printf ("m68k-hp-bsd\n"); exit (0);
#endif
#if defined (NeXT)
#if !defined (__ARCHITECTURE__)
#define __ARCHITECTURE__ "m68k"
#endif
int version;
version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
exit (0);
#endif
#if defined (MULTIMAX) || defined (n16)
#if defined (UMAXV)
printf ("ns32k-encore-sysv\n"); exit (0);
#else
#if defined (CMU)
printf ("ns32k-encore-mach\n"); exit (0);
#else
printf ("ns32k-encore-bsd\n"); exit (0);
#endif
#endif
#endif
#if defined (__386BSD__)
printf ("i386-pc-bsd\n"); exit (0);
#endif
#if defined (sequent)
#if defined (i386)
printf ("i386-sequent-dynix\n"); exit (0);
#endif
#if defined (ns32000)
printf ("ns32k-sequent-dynix\n"); exit (0);
#endif
#endif
#if defined (_SEQUENT_)
struct utsname un;
uname(&un);
if (strncmp(un.version, "V2", 2) == 0) {
printf ("i386-sequent-ptx2\n"); exit (0);
}
if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
printf ("i386-sequent-ptx1\n"); exit (0);
}
printf ("i386-sequent-ptx\n"); exit (0);
#endif
#if defined (vax)
#if !defined (ultrix)
printf ("vax-dec-bsd\n"); exit (0);
#else
printf ("vax-dec-ultrix\n"); exit (0);
#endif
#endif
#if defined (alliant) && defined (i860)
printf ("i860-alliant-bsd\n"); exit (0);
#endif
exit (1);
}
EOF
${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy && rm dummy.c dummy && exit 0
rm -f dummy.c dummy
# Apollos put the system type in the environment.
test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
# Convex versions that predate uname can use getsysinfo(1)
if [ -x /usr/convex/getsysinfo ]
then
case `getsysinfo -f cpu_type` in
c1*)
echo c1-convex-bsd
exit 0 ;;
c2*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
exit 0 ;;
c34*)
echo c34-convex-bsd
exit 0 ;;
c38*)
echo c38-convex-bsd
exit 0 ;;
c4*)
echo c4-convex-bsd
exit 0 ;;
esac
fi
#echo '(Unable to guess system type)' 1>&2
exit 1

955
config.sub vendored
View File

@@ -1,955 +0,0 @@
#! /bin/sh
# Configuration validation subroutine script, version 1.1.
# Copyright (C) 1991, 92-97, 1998 Free Software Foundation, Inc.
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
# can handle that machine. It does not imply ALL GNU software can.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Configuration subroutine to validate and canonicalize a configuration type.
# Supply the specified configuration type as an argument.
# If it is invalid, we print an error message on stderr and exit with code 1.
# Otherwise, we print the canonical config type on stdout and succeed.
# This file is supposed to be the same for all GNU packages
# and recognize all the CPU types, system types and aliases
# that are meaningful with *any* GNU software.
# Each package is responsible for reporting which valid configurations
# it does not support. The user should be able to distinguish
# a failure to support a valid configuration from a meaningless
# configuration.
# The goal of this file is to map all the various variations of a given
# machine specification into a single specification in the form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
# or in some cases, the newer four-part form:
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
# It is wrong to echo any other type of specification.
if [ x$1 = x ]
then
echo Configuration name missing. 1>&2
echo "Usage: $0 CPU-MFR-OPSYS" 1>&2
echo "or $0 ALIAS" 1>&2
echo where ALIAS is a recognized configuration type. 1>&2
exit 1
fi
# First pass through any local machine types.
case $1 in
*local*)
echo $1
exit 0
;;
*)
;;
esac
# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
# Here we must recognize all the valid KERNEL-OS combinations.
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
linux-gnu*)
os=-$maybe_os
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
;;
*)
basic_machine=`echo $1 | sed 's/-[^-]*$//'`
if [ $basic_machine != $1 ]
then os=`echo $1 | sed 's/.*-/-/'`
else os=; fi
;;
esac
### Let's recognize common machines as not being operating systems so
### that things like config.sub decstation-3100 work. We also
### recognize some manufacturers as not being operating systems, so we
### can provide default operating systems below.
case $os in
-sun*os*)
# Prevent following clause from handling this invalid input.
;;
-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-apple)
os=
basic_machine=$1
;;
-hiux*)
os=-hiuxwe2
;;
-sco5)
os=sco3.2v5
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-sco4)
os=-sco3.2v4
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-sco3.2.[4-9]*)
os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-sco3.2v[4-9]*)
# Don't forget version if it is 3.2v4 or newer.
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-sco*)
os=-sco3.2v2
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-isc)
os=-isc2.2
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-clix*)
basic_machine=clipper-intergraph
;;
-isc*)
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-lynx*)
os=-lynxos
;;
-ptx*)
basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
;;
-windowsnt*)
os=`echo $os | sed -e 's/windowsnt/winnt/'`
;;
-psos*)
os=-psos
;;
esac
# Decode aliases for certain CPU-COMPANY combinations.
case $basic_machine in
# Recognize the basic CPU types without company name.
# Some are omitted here because they have special meanings below.
tahoe | i860 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \
| arme[lb] | pyramid | mn10200 | mn10300 | tron | a29k \
| 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 | hppa2.0 \
| alpha | alphaev5 | alphaev56 | we32k | ns16k | clipper \
| i370 | sh | powerpc | powerpcle | 1750a | dsp16xx | pdp11 \
| mips64 | mipsel | mips64el | mips64orion | mips64orionel \
| mipstx39 | mipstx39el \
| sparc | sparclet | sparclite | sparc64 | v850)
basic_machine=$basic_machine-unknown
;;
# We use `pc' rather than `unknown'
# because (1) that's what they normally are, and
# (2) the word "unknown" tends to confuse beginning users.
i[34567]86)
basic_machine=$basic_machine-pc
;;
# Object if more than one company name word.
*-*-*)
echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
exit 1
;;
# Recognize the basic CPU types with company name.
vax-* | tahoe-* | i[34567]86-* | i860-* | m32r-* | m68k-* | m68000-* \
| m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \
| mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
| power-* | none-* | 580-* | cray2-* | h8300-* | i960-* \
| xmp-* | ymp-* | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* \
| alpha-* | alphaev5-* | alphaev56-* | we32k-* | cydra-* \
| ns16k-* | pn-* | np1-* | xps100-* | clipper-* | orion-* \
| sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \
| sparc64-* | mips64-* | mipsel-* \
| mips64el-* | mips64orion-* | mips64orionel-* \
| mipstx39-* | mipstx39el-* \
| f301-*)
;;
# Recognize the various machine names and aliases which stand
# for a CPU type and a company and sometimes even an OS.
3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
basic_machine=m68000-att
;;
3b*)
basic_machine=we32k-att
;;
alliant | fx80)
basic_machine=fx80-alliant
;;
altos | altos3068)
basic_machine=m68k-altos
;;
am29k)
basic_machine=a29k-none
os=-bsd
;;
amdahl)
basic_machine=580-amdahl
os=-sysv
;;
amiga | amiga-*)
basic_machine=m68k-cbm
;;
amigaos | amigados)
basic_machine=m68k-cbm
os=-amigaos
;;
amigaunix | amix)
basic_machine=m68k-cbm
os=-sysv4
;;
apollo68)
basic_machine=m68k-apollo
os=-sysv
;;
aux)
basic_machine=m68k-apple
os=-aux
;;
balance)
basic_machine=ns32k-sequent
os=-dynix
;;
convex-c1)
basic_machine=c1-convex
os=-bsd
;;
convex-c2)
basic_machine=c2-convex
os=-bsd
;;
convex-c32)
basic_machine=c32-convex
os=-bsd
;;
convex-c34)
basic_machine=c34-convex
os=-bsd
;;
convex-c38)
basic_machine=c38-convex
os=-bsd
;;
cray | ymp)
basic_machine=ymp-cray
os=-unicos
;;
cray2)
basic_machine=cray2-cray
os=-unicos
;;
[ctj]90-cray)
basic_machine=c90-cray
os=-unicos
;;
crds | unos)
basic_machine=m68k-crds
;;
da30 | da30-*)
basic_machine=m68k-da30
;;
decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
basic_machine=mips-dec
;;
delta | 3300 | motorola-3300 | motorola-delta \
| 3300-motorola | delta-motorola)
basic_machine=m68k-motorola
;;
delta88)
basic_machine=m88k-motorola
os=-sysv3
;;
dpx20 | dpx20-*)
basic_machine=rs6000-bull
os=-bosx
;;
dpx2* | dpx2*-bull)
basic_machine=m68k-bull
os=-sysv3
;;
ebmon29k)
basic_machine=a29k-amd
os=-ebmon
;;
elxsi)
basic_machine=elxsi-elxsi
os=-bsd
;;
encore | umax | mmax)
basic_machine=ns32k-encore
;;
fx2800)
basic_machine=i860-alliant
;;
genix)
basic_machine=ns32k-ns
;;
gmicro)
basic_machine=tron-gmicro
os=-sysv
;;
h3050r* | hiux*)
basic_machine=hppa1.1-hitachi
os=-hiuxwe2
;;
h8300hms)
basic_machine=h8300-hitachi
os=-hms
;;
harris)
basic_machine=m88k-harris
os=-sysv3
;;
hp300-*)
basic_machine=m68k-hp
;;
hp300bsd)
basic_machine=m68k-hp
os=-bsd
;;
hp300hpux)
basic_machine=m68k-hp
os=-hpux
;;
hp9k2[0-9][0-9] | hp9k31[0-9])
basic_machine=m68000-hp
;;
hp9k3[2-9][0-9])
basic_machine=m68k-hp
;;
hp9k7[0-9][0-9] | hp7[0-9][0-9] | hp9k8[0-9]7 | hp8[0-9]7)
basic_machine=hppa1.1-hp
;;
hp9k8[0-9][0-9] | hp8[0-9][0-9])
basic_machine=hppa1.0-hp
;;
hppa-next)
os=-nextstep3
;;
i370-ibm* | ibm*)
basic_machine=i370-ibm
os=-mvs
;;
# I'm not sure what "Sysv32" means. Should this be sysv3.2?
i[34567]86v32)
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-sysv32
;;
i[34567]86v4*)
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-sysv4
;;
i[34567]86v)
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-sysv
;;
i[34567]86sol2)
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-solaris2
;;
iris | iris4d)
basic_machine=mips-sgi
case $os in
-irix*)
;;
*)
os=-irix4
;;
esac
;;
isi68 | isi)
basic_machine=m68k-isi
os=-sysv
;;
m88k-omron*)
basic_machine=m88k-omron
;;
magnum | m3230)
basic_machine=mips-mips
os=-sysv
;;
merlin)
basic_machine=ns32k-utek
os=-sysv
;;
miniframe)
basic_machine=m68000-convergent
;;
mipsel*-linux*)
basic_machine=mipsel-unknown
os=-linux-gnu
;;
mips*-linux*)
basic_machine=mips-unknown
os=-linux-gnu
;;
mips3*-*)
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
;;
mips3*)
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
;;
ncr3000)
basic_machine=i486-ncr
os=-sysv4
;;
news | news700 | news800 | news900)
basic_machine=m68k-sony
os=-newsos
;;
news1000)
basic_machine=m68030-sony
os=-newsos
;;
news-3600 | risc-news)
basic_machine=mips-sony
os=-newsos
;;
next | m*-next )
basic_machine=m68k-next
case $os in
-nextstep* )
;;
-ns2*)
os=-nextstep2
;;
*)
os=-nextstep3
;;
esac
;;
nh3000)
basic_machine=m68k-harris
os=-cxux
;;
nh[45]000)
basic_machine=m88k-harris
os=-cxux
;;
nindy960)
basic_machine=i960-intel
os=-nindy
;;
np1)
basic_machine=np1-gould
;;
pa-hitachi)
basic_machine=hppa1.1-hitachi
os=-hiuxwe2
;;
paragon)
basic_machine=i860-intel
os=-osf
;;
pbd)
basic_machine=sparc-tti
;;
pbb)
basic_machine=m68k-tti
;;
pc532 | pc532-*)
basic_machine=ns32k-pc532
;;
pentium | p5 | k5 | nexen)
basic_machine=i586-pc
;;
pentiumpro | p6 | k6 | 6x86)
basic_machine=i686-pc
;;
pentiumii | pentium2)
basic_machine=i786-pc
;;
pentium-* | p5-* | k5-* | nexen-*)
basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
pentiumpro-* | p6-* | k6-* | 6x86-*)
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
pentiumii-* | pentium2-*)
basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
pn)
basic_machine=pn-gould
;;
power) basic_machine=rs6000-ibm
;;
ppc) basic_machine=powerpc-unknown
;;
ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ppcle | powerpclittle | ppc-le | powerpc-little)
basic_machine=powerpcle-unknown
;;
ppcle-* | powerpclittle-*)
basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ps2)
basic_machine=i386-ibm
;;
rm[46]00)
basic_machine=mips-siemens
;;
rtpc | rtpc-*)
basic_machine=romp-ibm
;;
sequent)
basic_machine=i386-sequent
;;
sh)
basic_machine=sh-hitachi
os=-hms
;;
sps7)
basic_machine=m68k-bull
os=-sysv2
;;
spur)
basic_machine=spur-unknown
;;
sun2)
basic_machine=m68000-sun
;;
sun2os3)
basic_machine=m68000-sun
os=-sunos3
;;
sun2os4)
basic_machine=m68000-sun
os=-sunos4
;;
sun3os3)
basic_machine=m68k-sun
os=-sunos3
;;
sun3os4)
basic_machine=m68k-sun
os=-sunos4
;;
sun4os3)
basic_machine=sparc-sun
os=-sunos3
;;
sun4os4)
basic_machine=sparc-sun
os=-sunos4
;;
sun4sol2)
basic_machine=sparc-sun
os=-solaris2
;;
sun3 | sun3-*)
basic_machine=m68k-sun
;;
sun4)
basic_machine=sparc-sun
;;
sun386 | sun386i | roadrunner)
basic_machine=i386-sun
;;
symmetry)
basic_machine=i386-sequent
os=-dynix
;;
tx39)
basic_machine=mipstx39-unknown
;;
tx39el)
basic_machine=mipstx39el-unknown
;;
tower | tower-32)
basic_machine=m68k-ncr
;;
udi29k)
basic_machine=a29k-amd
os=-udi
;;
ultra3)
basic_machine=a29k-nyu
os=-sym1
;;
vaxv)
basic_machine=vax-dec
os=-sysv
;;
vms)
basic_machine=vax-dec
os=-vms
;;
vpp*|vx|vx-*)
basic_machine=f301-fujitsu
;;
vxworks960)
basic_machine=i960-wrs
os=-vxworks
;;
vxworks68)
basic_machine=m68k-wrs
os=-vxworks
;;
vxworks29k)
basic_machine=a29k-wrs
os=-vxworks
;;
xmp)
basic_machine=xmp-cray
os=-unicos
;;
xps | xps100)
basic_machine=xps100-honeywell
;;
none)
basic_machine=none-none
os=-none
;;
# Here we handle the default manufacturer of certain CPU types. It is in
# some cases the only manufacturer, in others, it is the most popular.
mips)
if [ x$os = x-linux-gnu ]; then
basic_machine=mips-unknown
else
basic_machine=mips-mips
fi
;;
romp)
basic_machine=romp-ibm
;;
rs6000)
basic_machine=rs6000-ibm
;;
vax)
basic_machine=vax-dec
;;
pdp11)
basic_machine=pdp11-dec
;;
we32k)
basic_machine=we32k-att
;;
sparc)
basic_machine=sparc-sun
;;
cydra)
basic_machine=cydra-cydrome
;;
orion)
basic_machine=orion-highlevel
;;
orion105)
basic_machine=clipper-highlevel
;;
*)
echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
exit 1
;;
esac
# Here we canonicalize certain aliases for manufacturers.
case $basic_machine in
*-digital*)
basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
;;
*-commodore*)
basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
;;
*)
;;
esac
# Decode manufacturer-specific aliases for certain operating systems.
if [ x"$os" != x"" ]
then
case $os in
# First match some system type aliases
# that might get confused with valid system types.
# -solaris* is a basic system type, with this one exception.
-solaris1 | -solaris1.*)
os=`echo $os | sed -e 's|solaris1|sunos4|'`
;;
-solaris)
os=-solaris2
;;
-svr4*)
os=-sysv4
;;
-unixware*)
os=-sysv4.2uw
;;
-gnu/linux*)
os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
;;
# First accept the basic system types.
# The portable systems comes first.
# Each alternative MUST END IN A *, to match a version number.
# -sysv* is not here because it comes later, after sysvr4.
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
| -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
| -aos* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
| -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
| -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -cygwin32* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
| -mingw32* | -linux-gnu* | -uxpv* | -beos*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-linux*)
os=`echo $os | sed -e 's|linux|linux-gnu|'`
;;
-sunos5*)
os=`echo $os | sed -e 's|sunos5|solaris2|'`
;;
-sunos6*)
os=`echo $os | sed -e 's|sunos6|solaris3|'`
;;
-osfrose*)
os=-osfrose
;;
-osf*)
os=-osf
;;
-utek*)
os=-bsd
;;
-dynix*)
os=-bsd
;;
-acis*)
os=-aos
;;
-ctix* | -uts*)
os=-sysv
;;
-ns2 )
os=-nextstep2
;;
# Preserve the version number of sinix5.
-sinix5.*)
os=`echo $os | sed -e 's|sinix|sysv|'`
;;
-sinix*)
os=-sysv4
;;
-triton*)
os=-sysv3
;;
-oss*)
os=-sysv3
;;
-svr4)
os=-sysv4
;;
-svr3)
os=-sysv3
;;
-sysvr4)
os=-sysv4
;;
# This must come after -sysvr4.
-sysv*)
;;
-xenix)
os=-xenix
;;
-none)
;;
*)
# Get rid of the `-' at the beginning of $os.
os=`echo $os | sed 's/[^-]*-//'`
echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
exit 1
;;
esac
else
# Here we handle the default operating systems that come with various machines.
# The value should be what the vendor currently ships out the door with their
# machine or put another way, the most popular os provided with the machine.
# Note that if you're going to try to match "-MANUFACTURER" here (say,
# "-sun"), then you have to tell the case statement up towards the top
# that MANUFACTURER isn't an operating system. Otherwise, code above
# will signal an error saying that MANUFACTURER isn't an operating
# system, and we'll never get to this point.
case $basic_machine in
*-acorn)
os=-riscix1.2
;;
arm*-semi)
os=-aout
;;
pdp11-*)
os=-none
;;
*-dec | vax-*)
os=-ultrix4.2
;;
m68*-apollo)
os=-domain
;;
i386-sun)
os=-sunos4.0.2
;;
m68000-sun)
os=-sunos3
# This also exists in the configure program, but was not the
# default.
# os=-sunos4
;;
*-tti) # must be before sparc entry or we get the wrong os.
os=-sysv3
;;
sparc-* | *-sun)
os=-sunos4.1.1
;;
*-be)
os=-beos
;;
*-ibm)
os=-aix
;;
*-hp)
os=-hpux
;;
*-hitachi)
os=-hiux
;;
i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
os=-sysv
;;
*-cbm)
os=-amigaos
;;
*-dg)
os=-dgux
;;
*-dolphin)
os=-sysv3
;;
m68k-ccur)
os=-rtu
;;
m88k-omron*)
os=-luna
;;
*-next )
os=-nextstep
;;
*-sequent)
os=-ptx
;;
*-crds)
os=-unos
;;
*-ns)
os=-genix
;;
i370-*)
os=-mvs
;;
*-next)
os=-nextstep3
;;
*-gould)
os=-sysv
;;
*-highlevel)
os=-bsd
;;
*-encore)
os=-bsd
;;
*-sgi)
os=-irix
;;
*-siemens)
os=-sysv4
;;
*-masscomp)
os=-rtu
;;
f301-fujitsu)
os=-uxpv
;;
*)
os=-none
;;
esac
fi
# Here we handle the case where we know the os, and the CPU type, but not the
# manufacturer. We pick the logical manufacturer.
vendor=unknown
case $basic_machine in
*-unknown)
case $os in
-riscix*)
vendor=acorn
;;
-sunos*)
vendor=sun
;;
-aix*)
vendor=ibm
;;
-hpux*)
vendor=hp
;;
-hiux*)
vendor=hitachi
;;
-unos*)
vendor=crds
;;
-dgux*)
vendor=dg
;;
-luna*)
vendor=omron
;;
-genix*)
vendor=ns
;;
-mvs*)
vendor=ibm
;;
-ptx*)
vendor=sequent
;;
-vxsim* | -vxworks*)
vendor=wrs
;;
-aux*)
vendor=apple
;;
esac
basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
;;
esac
echo $basic_machine$os

1998
configure vendored

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,11 +0,0 @@
#
# Makefile : Builds wxWindows demos for Unix.
#
DEMOS_SUBDIRS=bombs forty fractal life poem
all:
@for d in $(DEMOS_SUBDIRS); do (cd $$d && make); done
clean:
@for d in $(DEMOS_SUBDIRS); do (cd $$d && make clean); done

View File

View File

@@ -1,21 +0,0 @@
#
# File: Makefile.in
# Author: Julian Smart
# Created: 1998
# Updated:
# Copyright: (c) 1998 Julian Smart
#
# "%W% %G%"
#
# Makefile for bombs example (UNIX).
top_srcdir = @top_srcdir@
top_builddir = ../..
program_dir = demos/bombs
PROGRAM=bombs
OBJECTS = bombs.o bombs1.o game.o
include ../../src/makeprog.env

Binary file not shown.

Before

Width:  |  Height:  |  Size: 654 B

View File

@@ -1,252 +0,0 @@
///////////////////////////////////////////////////////////////////////////////
// Name: bombs.cpp
// Purpose: Bombs game
// Author: P. Foggia 1996
// Modified by:
// Created: 1996
// RCS-ID: $Id$
// Copyright: (c) 1996 P. Foggia
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation
#endif
#include "wx/wxprec.h"
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif //precompiled headers
#include "bombs.h"
#include <time.h>
#include <stdlib.h>
#if defined(__WXGTK__) || defined(__WXMOTIF__)
#include "bombs.xpm"
#endif
IMPLEMENT_APP(AppClass)
// Called to initialize the program
bool AppClass::OnInit()
{
srand((unsigned)time(NULL));
// Initialize all the top-level window members to NULL.
BombsFrame = NULL;
level=IDM_EASY;
BombsFrame =
new BombsFrameClass(NULL, "wxBombs", wxPoint(155, 165), wxSize(300, 300), wxMINIMIZE_BOX | wxSYSTEM_MENU | wxCAPTION);
int xmax=BombsFrame->BombsCanvas->field_width*BombsFrame->BombsCanvas->x_cell*X_UNIT;
int ymax=BombsFrame->BombsCanvas->field_height*BombsFrame->BombsCanvas->y_cell*Y_UNIT;
BombsFrame->SetClientSize(xmax, ymax);
return TRUE;
}
BEGIN_EVENT_TABLE(BombsFrameClass, wxFrame)
EVT_MENU(IDM_EASY, BombsFrameClass::OnEasy)
EVT_MENU(IDM_MEDIUM, BombsFrameClass::OnMedium)
EVT_MENU(IDM_DIFFICULT, BombsFrameClass::OnDifficult)
EVT_MENU(IDM_EXIT, BombsFrameClass::OnExit)
EVT_MENU(IDM_ABOUT, BombsFrameClass::OnAbout)
EVT_MENU(IDM_RESTART, BombsFrameClass::OnRestart)
EVT_CLOSE(BombsFrameClass::OnCloseWindow)
END_EVENT_TABLE()
BombsFrameClass::BombsFrameClass(wxFrame *parent, const wxString& title, const wxPoint& pos, const wxSize& size, long style):
wxFrame(parent, -1, title, pos, size, style)
{
// Initialize child subwindow members.
BombsCanvas = NULL;
SetIcon(wxICON(bombs));
CreateStatusBar();
// Create a menu bar for the frame
wxMenuBar *menuBar1 = new wxMenuBar;
wxMenu *menu1 = new wxMenu;
menu1->Append(IDM_EXIT, "E&xit"); // , "Quit the program");
menu1->AppendSeparator();
menu1->Append(IDM_ABOUT, "&About..."); // , "Infos on wxBombs");
menuBar1->Append(menu1, "&File");
wxMenu *menu2 = new wxMenu;
menu2->Append(IDM_RESTART, "&Restart"); // , "Clear the play field");
menu2->AppendSeparator();
menu2->Append(IDM_EASY, "&Easy", wxEmptyString, TRUE); // "10x10 play field", TRUE);
menu2->Append(IDM_MEDIUM, "&Medium", wxEmptyString, TRUE); // "15x15 play field", TRUE);
menu2->Append(IDM_DIFFICULT, "&Difficult", wxEmptyString, TRUE); // "25x20 play field", TRUE);
menuBar1->Append(menu2, "&Game");
SetMenuBar(menuBar1);
menuBar=menuBar1;
menuBar->Check(wxGetApp().level, TRUE);
// Create child subwindows.
BombsCanvas = new BombsCanvasClass(this);
// Ensure the subwindows get resized o.k.
// OnSize(width, height);
// Centre frame on the screen.
Centre(wxBOTH);
// Show the frame.
Show(TRUE);
}
BombsFrameClass::~BombsFrameClass(void)
{
}
void BombsFrameClass::OnCloseWindow(wxCloseEvent& event)
{
this->Destroy();
}
void BombsFrameClass::OnExit(wxCommandEvent& event)
{
this->Destroy();
}
void BombsFrameClass::OnRestart(wxCommandEvent& event)
{
BombsCanvas->UpdateFieldSize();
int xmax=BombsCanvas->field_width*BombsCanvas->x_cell*X_UNIT;
int ymax=BombsCanvas->field_height*BombsCanvas->y_cell*Y_UNIT;
wxGetApp().BombsFrame->SetClientSize(xmax, ymax);
}
void BombsFrameClass::OnAbout(wxCommandEvent& event)
{
wxMessageBox("wxBombs (c) 1996 by P. Foggia\n<foggia@amalfi.dis.unina.it>", "About wxBombs");
}
void BombsFrameClass::OnEasy(wxCommandEvent& event)
{
menuBar->Check(wxGetApp().level, FALSE);
wxGetApp().level=IDM_EASY;
menuBar->Check(wxGetApp().level, TRUE);
}
void BombsFrameClass::OnMedium(wxCommandEvent& event)
{
menuBar->Check(wxGetApp().level, FALSE);
wxGetApp().level=IDM_MEDIUM;
menuBar->Check(wxGetApp().level, TRUE);
}
void BombsFrameClass::OnDifficult(wxCommandEvent& event)
{
menuBar->Check(wxGetApp().level, FALSE);
wxGetApp().level=IDM_DIFFICULT;
menuBar->Check(wxGetApp().level, TRUE);
}
BEGIN_EVENT_TABLE(BombsCanvasClass, wxWindow)
EVT_PAINT(BombsCanvasClass::OnPaint)
EVT_MOUSE_EVENTS(BombsCanvasClass::OnEvent)
END_EVENT_TABLE()
BombsCanvasClass::BombsCanvasClass(wxFrame *parent, const wxPoint& pos, const wxSize& size, long style):
wxWindow(parent, -1, pos, size, style)
{
int sx, sy;
wxClientDC dc(this);
wxFont font= BOMBS_FONT;
dc.SetFont(font);
long chw, chh;
char buf[]="M";
dc.GetTextExtent(buf, &chw, &chh);
dc.SetFont(wxNullFont);
dc.SetMapMode(wxMM_METRIC);
int xcm = dc.LogicalToDeviceX(10.0);
int ycm = dc.LogicalToDeviceY(10.0);
// To have a square cell, there must be :
// sx*ycm == sy*xcm
if (chw*ycm < chh*xcm)
{ sy=chh;
sx=chh*xcm/ycm;
}
else
{ sx=chw;
sy=chw*ycm/xcm;
}
x_cell = (sx+3+X_UNIT)/X_UNIT;
y_cell = (sy+3+Y_UNIT)/Y_UNIT;
dc.SetMapMode(wxMM_TEXT);
bmp=NULL;
UpdateFieldSize();
}
BombsCanvasClass::~BombsCanvasClass(void)
{
if (bmp)
delete bmp;
}
// Called when canvas needs to be repainted.
void BombsCanvasClass::OnPaint(wxPaintEvent& event)
{
wxPaintDC dc(this);
// Insert your drawing code here.
if (!bmp)
{ bmp=new wxBitmap(field_width*x_cell*X_UNIT+1,
field_height*y_cell*Y_UNIT+1);
if (bmp)
{ wxMemoryDC memDC;
memDC.SelectObject(* bmp);
DrawField(&memDC, 0, 0, field_width-1, field_height-1);
memDC.SelectObject(wxNullBitmap);
}
}
if (bmp)
{ wxMemoryDC memDC;
memDC.SelectObject(* bmp);
dc.Blit(0, 0, field_width*x_cell*X_UNIT+1,
field_height*y_cell*Y_UNIT+1,
&memDC, 0, 0, wxCOPY);
memDC.SelectObject(wxNullBitmap);
}
else
DrawField(& dc, 0, 0, field_width-1, field_height-1);
}
// Updates the field size depending on wxGetApp().level and
// redraws the canvas
void BombsCanvasClass::UpdateFieldSize()
{ field_width=20;
field_height=20;
switch(wxGetApp().level)
{ case IDM_EASY:
field_width=10;
field_height=10;
break;
case IDM_MEDIUM:
field_width=15;
field_height=15;
break;
case IDM_DIFFICULT:
field_width=25;
field_height=20;
break;
}
wxGetApp().Game.Init(field_width, field_height);
if (bmp)
delete bmp;
bmp=NULL;
wxWindow::Refresh();
}

View File

@@ -1,14 +0,0 @@
; bombs
; Generated by wxBuilder
;
NAME bombsapp
DESCRIPTION 'A wxWindows application'
;
EXETYPE WINDOWS
STUB 'WINSTUB.EXE'
;
CODE PRELOAD MOVEABLE DISCARDABLE
DATA PRELOAD MOVEABLE MULTIPLE
;
HEAPSIZE 1024
STACKSIZE 8192

View File

@@ -1,119 +0,0 @@
///////////////////////////////////////////////////////////////////////////////
// Name: bombs.h
// Purpose: Bombs game
// Author: P. Foggia 1996
// Modified by:
// Created: 1996
// RCS-ID: $Id$
// Copyright: (c) 1996 P. Foggia
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#ifndef _INC_BOMBS_H
#define _INC_BOMBS_H
#include "game.h"
/*
* Forward declarations of all top-level window classes.
*/
class BombsFrameClass;
class AboutFrameClass;
/*
* Class representing the entire Application
*/
class AppClass: public wxApp
{
public:
BombsFrameClass *BombsFrame;
int level;
BombsGame Game;
bool OnInit();
};
DECLARE_APP(AppClass)
class BombsCanvasClass;
class BombsFrameClass: public wxFrame
{
private:
protected:
public:
// Subwindows for reference within the program.
BombsCanvasClass *BombsCanvas;
wxMenuBar *menuBar;
// Constructor and destructor
BombsFrameClass(wxFrame *parent, const wxString& title, const wxPoint& pos, const wxSize& size, long style);
~BombsFrameClass(void);
void OnCloseWindow(wxCloseEvent& event);
void OnExit(wxCommandEvent& event);
void OnRestart(wxCommandEvent& event);
void OnAbout(wxCommandEvent& event);
void OnEasy(wxCommandEvent& event);
void OnMedium(wxCommandEvent& event);
void OnDifficult(wxCommandEvent& event);
DECLARE_EVENT_TABLE()
};
/* Menu identifiers
*/
// File
#define BOMBSFRAMECLASS_FILE 1
// E&xit
#define IDM_EXIT 2
// About...
#define IDM_ABOUT 3
// Game
#define BOMBSFRAMECLASS_GAME 4
// &Restart
#define IDM_RESTART 5
// &Easy
#define IDM_EASY 6
// &Medium
#define IDM_MEDIUM 7
// &Difficult
#define IDM_DIFFICULT 8
class BombsCanvasClass: public wxWindow
{
private:
protected:
public:
int field_width, field_height;
int x_cell, y_cell;
wxBitmap *bmp;
// Constructor and destructor
BombsCanvasClass(wxFrame *parent, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0);
~BombsCanvasClass(void);
void OnPaint(wxPaintEvent& event);
void DrawField(wxDC *, int xc1, int yc1, int xc2, int yc2);
void Refresh(int xc1, int yc1, int xc2, int yc2);
void OnEvent(wxMouseEvent& event);
void UpdateFieldSize();
DECLARE_EVENT_TABLE()
};
/* Menu identifiers
*/
/* The following sizes should probably be redefined */
/* dimensions of a scroll unit, in pixels */
#define X_UNIT 4
#define Y_UNIT 4
/* the dimensions of a cell, in scroll units are in
* BombsCanvasClass::x_cell and y_cell
*/
#define BOMBS_FONT wxFont(14, wxROMAN, wxNORMAL, wxNORMAL)
#endif /* mutual exclusion */

Binary file not shown.

Before

Width:  |  Height:  |  Size: 766 B

View File

@@ -1,3 +0,0 @@
bombs ICON "bombs.ico"
#include "wx/msw/wx.rc"

View File

@@ -1,44 +0,0 @@
/* XPM */
static char *bombs_xpm[] = {
/* columns rows colors chars-per-pixel */
"32 32 6 1",
" c Black",
". c Blue",
"X c #00bf00",
"o c Red",
"O c Yellow",
"+ c Gray100",
/* pixels */
" ",
" oooooo +++++++++++++++++++++++ ",
" oooooo +++++++++++++++++++++++ ",
" oooooo +++++++++++++++++++++++ ",
" oooooo +++++++++++++++++++++++ ",
" oooooo +++++++++++++++++++++++ ",
" oooooo +++++++++++++++++++++++ ",
" oooooo +++++++++++++++++++++++ ",
" ",
" ++++++ ++++++++++++++++++ .... ",
" ++++++ ++++++++++++++++++ .... ",
" ++++++ ++++++++++++++++++ .... ",
" ++++++ ++++++++++++++++++ .... ",
" ++++++ ++++++++++++++++++ .... ",
" ++++++ ++++++++++++++++++ ",
" ++++++ ++++++++++++++++++ ++++ ",
" ++++++ ++++++++++++++++++ ++++ ",
" ++++++ ++++++++++++++++++ ++++ ",
" ++++++ ++++++++++++++++++ ++++ ",
" ++++++ ++++++++++++++++++ ++++ ",
" ++++++ ++++++++++++++++++ ++++ ",
" ++++++ ++++++++++++++++++ ++++ ",
" ++++++ ++++++++++++++++++ ++++ ",
" ++++++ ++++++++++++++++++ ++++ ",
" ++++++ ++++ ",
" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
" "
};

View File

@@ -1,204 +0,0 @@
///////////////////////////////////////////////////////////////////////////////
// Name: bombs1.cpp
// Purpose: Bombs game
// Author: P. Foggia 1996
// Modified by:
// Created: 1996
// RCS-ID: $Id$
// Copyright: (c) 1996 P. Foggia
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
/*
* implementation of the methods DrawField and OnEvent of the
* class BombsCanvas
*/
#ifdef __GNUG__
#pragma implementation
#endif
#include "wx/wxprec.h"
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif //precompiled headers
#include "bombs.h"
/*-------- BombCanvasClass::DrawField(dc, xc1, yc1, xc2, yc2) -------*/
/* Draws the field on the device context dc */
/* xc1,yc1 etc. are the (inclusive) limits of the area to be drawn, */
/* expressed in cells. */
/*---------------------------------------------------------------------*/
void BombsCanvasClass::DrawField(wxDC *dc, int xc1, int yc1, int xc2, int yc2)
{ int x,y,xmax,ymax;
char buf[2];
long chw, chh;
wxColour *wxBlack = wxTheColourDatabase->FindColour("BLACK");
wxColour *wxWhite = wxTheColourDatabase->FindColour("WHITE");
wxColour *wxRed = wxTheColourDatabase->FindColour("RED");
wxColour *wxBlue = wxTheColourDatabase->FindColour("BLUE");
wxColour *wxGrey = wxTheColourDatabase->FindColour("LIGHT GREY");
wxColour *wxGreen = wxTheColourDatabase->FindColour("GREEN");
wxPen *blackPen = wxThePenList->FindOrCreatePen(*wxBlack, 1, wxSOLID);
wxPen *redPen = wxThePenList->FindOrCreatePen(*wxRed, 1, wxSOLID);
wxPen *bluePen = wxThePenList->FindOrCreatePen(*wxBlue, 1, wxSOLID);
wxBrush *whiteBrush = wxTheBrushList->FindOrCreateBrush(*wxWhite, wxSOLID);
wxBrush *greyBrush = wxTheBrushList->FindOrCreateBrush(*wxGrey, wxSOLID);
wxBrush *redBrush = wxTheBrushList->FindOrCreateBrush(*wxRed, wxSOLID);
xmax=field_width*x_cell*X_UNIT;
ymax=field_height*y_cell*Y_UNIT;
dc->SetPen(* blackPen);
for(x=xc1; x<=xc2; x++)
dc->DrawLine(x*x_cell*X_UNIT, 0, x*x_cell*X_UNIT, ymax);
for(y=xc1; y<=yc2; y++)
dc->DrawLine(0, y*y_cell*Y_UNIT, xmax, y*y_cell*Y_UNIT);
wxFont font= BOMBS_FONT;
dc->SetFont(font);
buf[1]='\0';
for(x=xc1; x<=xc2; x++)
for(y=yc1; y<=yc2; y++)
{ if (wxGetApp().Game.IsMarked(x,y))
{ dc->SetPen(* blackPen);
dc->SetBrush(* greyBrush);
dc->DrawRectangle( x*x_cell*X_UNIT, y*y_cell*Y_UNIT,
x_cell*X_UNIT+1, y_cell*Y_UNIT+1);
*buf='M';
if (!wxGetApp().Game.IsHidden(x,y) && wxGetApp().Game.IsBomb(x,y))
dc->SetTextForeground(*wxBlue);
else
dc->SetTextForeground(*wxRed);
dc->SetTextBackground(*wxGrey);
dc->GetTextExtent(buf, &chw, &chh);
dc->DrawText( buf,
x*x_cell*X_UNIT + (x_cell*X_UNIT-chw)/2,
y*y_cell*Y_UNIT + (y_cell*Y_UNIT-chh)/2
);
if (!wxGetApp().Game.IsHidden(x,y) && wxGetApp().Game.IsBomb(x,y))
{ dc->SetPen(*redPen);
dc->DrawLine(x*x_cell*X_UNIT, y*y_cell*Y_UNIT,
(x+1)*x_cell*X_UNIT, (y+1)*y_cell*Y_UNIT);
dc->DrawLine(x*x_cell*X_UNIT, (y+1)*y_cell*Y_UNIT,
(x+1)*x_cell*X_UNIT, y*y_cell*Y_UNIT);
}
}
else if (wxGetApp().Game.IsHidden(x,y))
{ dc->SetPen(*blackPen);
dc->SetBrush(*greyBrush);
dc->DrawRectangle( x*x_cell*X_UNIT, y*y_cell*Y_UNIT,
x_cell*X_UNIT+1, y_cell*Y_UNIT+1);
}
else if (wxGetApp().Game.IsBomb(x,y))
{ dc->SetPen(* blackPen);
dc->SetBrush(* redBrush);
dc->DrawRectangle( x*x_cell*X_UNIT, y*y_cell*Y_UNIT,
x_cell*X_UNIT+1, y_cell*Y_UNIT+1);
*buf='B';
dc->SetTextForeground(* wxBlack);
dc->SetTextBackground(* wxRed);
dc->GetTextExtent(buf, &chw, &chh);
dc->DrawText( buf,
x*x_cell*X_UNIT + (x_cell*X_UNIT-chw)/2,
y*y_cell*Y_UNIT + (y_cell*Y_UNIT-chh)/2
);
if (wxGetApp().Game.IsExploded(x,y))
{ dc->SetPen(* bluePen);
dc->DrawLine(x*x_cell*X_UNIT, y*y_cell*Y_UNIT,
(x+1)*x_cell*X_UNIT, (y+1)*y_cell*Y_UNIT);
dc->DrawLine(x*x_cell*X_UNIT, (y+1)*y_cell*Y_UNIT,
(x+1)*x_cell*X_UNIT, y*y_cell*Y_UNIT);
}
}
else // Display a digit
{ dc->SetPen(* blackPen);
dc->SetBrush(* whiteBrush);
dc->DrawRectangle( x*x_cell*X_UNIT, y*y_cell*Y_UNIT,
x_cell*X_UNIT+1, y_cell*Y_UNIT+1);
*buf = (wxGetApp().Game.Get(x,y) & BG_MASK) + '0';
dc->GetTextExtent(buf, &chw, &chh);
switch(*buf)
{ case '0': dc->SetTextForeground(* wxGreen); break;
case '1': dc->SetTextForeground(* wxBlue); break;
default: dc->SetTextForeground(* wxBlack); break;
}
dc->SetTextBackground(* wxWhite);
dc->DrawText( buf,
x*x_cell*X_UNIT + (x_cell*X_UNIT-chw)/2,
y*y_cell*Y_UNIT + (y_cell*Y_UNIT-chh)/2
);
}
}
dc->SetFont(wxNullFont);
if (wxGetApp().BombsFrame)
{ char buf[80];
sprintf(buf, "%d bombs %d remaining cells",
wxGetApp().Game.GetBombs(), wxGetApp().Game.GetRemainingCells());
wxGetApp().BombsFrame->SetStatusText(buf, 0);
}
}
/*-------- BombCanvasClass::Refresh(xc1, yc1, xc2, yc2) -------------*/
/* Refreshes the field image */
/* xc1,yc1 etc. are the (inclusive) limits of the area to be drawn, */
/* expressed in cells. */
/*---------------------------------------------------------------------*/
void BombsCanvasClass::Refresh(int xc1, int yc1, int xc2, int yc2)
{
wxClientDC dc(this);
DrawField(& dc, xc1, yc1, xc2, yc2);
if (bmp)
{ wxMemoryDC memDC;
memDC.SelectObject(* bmp);
DrawField(&memDC, xc1, yc1, xc2, yc2);
memDC.SelectObject(wxNullBitmap);
}
}
// Called when the canvas receives a mouse event.
void BombsCanvasClass::OnEvent(wxMouseEvent& event)
{
wxCoord fx, fy;
event.GetPosition(&fx, &fy);
int x = fx/(x_cell*X_UNIT);
int y = fy/(y_cell*Y_UNIT);
if (x<field_width && y<field_height)
{ if ( (event.RightDown() || (event.LeftDown() && event.ShiftDown()))
&& (wxGetApp().Game.IsHidden(x,y)
|| wxGetApp().Game.GetRemainingCells()==0))
{ wxGetApp().Game.Mark(x,y);
Refresh(x, y, x, y);
return;
}
else if (event.LeftDown() && wxGetApp().Game.IsHidden(x,y)
&& !wxGetApp().Game.IsMarked(x,y))
{ wxGetApp().Game.Unhide(x,y);
Refresh(x, y, x, y);
if (wxGetApp().Game.IsBomb(x,y) || wxGetApp().Game.GetRemainingCells()==0)
{ wxBell();
if (!wxGetApp().Game.IsBomb(x,y))
{ wxMessageBox("Nice! You found all the bombs!", "wxWin Bombs",
wxOK|wxCENTRE, wxGetApp().BombsFrame);
}
else // x,y is a bomb
{ wxGetApp().Game.Explode(x, y);
}
for(x=0; x<field_width; x++)
for(y=0; y<field_height; y++)
wxGetApp().Game.Unhide(x,y);
Refresh(0, 0, field_width-1, field_height-1);
}
return;
}
}
}

View File

@@ -1,32 +0,0 @@
#*****************************************************************************
# *
# Make file for VMS *
# Author : J.Jansen (joukj@hrem.stm.tudelft.nl) *
# Date : 10 November 1999 *
# *
#*****************************************************************************
.first
define wx [--.include.wx]
.ifdef __WXMOTIF__
CXX_DEFINE = /define=(__WXMOTIF__=1)
.else
CXX_DEFINE =
.endif
.suffixes : .cpp
.cpp.obj :
cxx $(CXXFLAGS)$(CXX_DEFINE) $(MMS$TARGET_NAME).cpp
all :
$(MMS)$(MMSQUALIFIERS) game.exe
game.exe : game.obj bombs1.obj bombs.obj
.ifdef __WXMOTIF__
cxxlink game,bombs1,bombs,[--.lib]vms/opt
.endif
game.obj : game.cpp
bombs1.obj : bombs1.cpp
bombs.obj : bombs.cpp

View File

@@ -1,105 +0,0 @@
///////////////////////////////////////////////////////////////////////////////
// Name: bombs1.cpp
// Purpose: Implementation of the class BombsGame
// Author: P. Foggia 1996
// Modified by:
// Created: 1996
// RCS-ID: $Id$
// Copyright: (c) 1996 P. Foggia
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation
#endif
#include "wx/wxprec.h"
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif //precompiled headers
#include "game.h"
#include <stdlib.h>
#include <limits.h>
#define PROB 0.2
#ifndef RAND_MAX
#define RAND_MAX INT_MAX
#endif
/*-------------------- BombsGame::~BombsGame() ---------------------*/
/*--------------------------------------------------------------------*/
BombsGame::~BombsGame()
{ if (field)
free(field);
}
/*------------------ int BombsGame::Init(width,height) -------------------*/
/* Initialize the play field. Returns 0 on failure */
/*--------------------------------------------------------------------------*/
int BombsGame::Init(int aWidth, int aHeight)
{ int x, y;
int xx, yy;
if (field)
free(field);
field=(short *)malloc(aWidth*aHeight*sizeof(short));
if (!field)
{ width=height=0;
return 0;
}
width=aWidth;
height=aHeight;
for(x=0; x<width; x++)
for(y=0; y<height; y++)
{ field[x+y*width] = ((float)rand()/RAND_MAX <PROB)?
BG_HIDDEN | BG_BOMB :
BG_HIDDEN;
}
bombs=0;
for(x=0; x<width; x++)
for(y=0; y<height; y++)
if (field[x+y*width] & BG_BOMB)
{ bombs++;
for(xx=x-1; xx<=x+1; xx++)
if (xx>=0 && xx<width)
for(yy=y-1; yy<=y+1; yy++)
if (yy>=0 && yy<height && (yy!=y || xx!=x))
field[xx+yy*width]++;
}
normal_cells=height*width-bombs;
return 1;
}
/*---------------------- BombsGame::Mark(x,y) -------------------------*/
/* Marks/unmarks a cell */
/*-----------------------------------------------------------------------*/
void BombsGame::Mark(int x, int y)
{
field[x+y*width] ^= BG_MARKED;
}
/*------------------- BombsGame::Unhide(x,y) ------------------------*/
/* Unhides a cell */
/*---------------------------------------------------------------------*/
void BombsGame::Unhide(int x, int y)
{ if (!IsHidden(x,y))
return;
field[x+y*width] &= ~BG_HIDDEN;
if (!IsBomb(x,y))
normal_cells--;
}
/*------------------- BombsGame::Explode(x,y) ------------------------*/
/* Makes a cell exploded */
/*----------------------------------------------------------------------*/
void BombsGame::Explode(int x, int y)
{
field[x+y*width] |= BG_EXPLODED;
}

View File

@@ -1,42 +0,0 @@
//---------------------------------------------------------------
// game.h
// Definition of the class BombsGame, containing the data for a
// playfield
//---------------------------------------------------------------
#ifndef GAME_H
#define GAME_H
#define BG_HIDDEN 0x100
#define BG_BOMB 0x200
#define BG_MARKED 0x400
#define BG_EXPLODED 0x800
#define BG_MASK 0x0FF
#include <stddef.h>
class BombsGame
{ protected:
int width,height;
short *field;
int bombs,normal_cells;
public:
BombsGame() { width=height=0; field=NULL; };
~BombsGame();
int Init(int width, int height);
int GetWidth() { return width; };
int GetHeight() { return height; };
int Get(int x, int y) { return field[x+y*width]; };
void Mark(int x, int y);
void Unhide(int x, int y);
void Explode(int x, int y);
int IsHidden(int x, int y) { return Get(x,y) & BG_HIDDEN; };
int IsMarked(int x, int y) { return Get(x,y) & BG_MARKED; };
int IsBomb(int x, int y) { return Get(x,y) & BG_BOMB; };
int IsExploded(int x, int y) { return Get(x,y) & BG_EXPLODED; };
int GetBombs() { return bombs; };
int GetRemainingCells() { return normal_cells; };
};
#endif /* def GAME_H */

View File

@@ -1,16 +0,0 @@
#
# File: makefile.b32
# Author: Julian Smart
# Created: 1999
# Updated:
# Copyright:
#
# Makefile : Builds sample for 32-bit BC++
WXDIR = $(WXWIN)
TARGET=bombs
OBJECTS = $(TARGET).obj bombs1.obj game.obj
!include $(WXDIR)\src\makeprog.b32

View File

@@ -1,19 +0,0 @@
#
# File: makefile.bcc
# Author: Julian Smart
# Created: 1998
# Updated:
#
# Builds a BC++ 16-bit sample
!if "$(WXWIN)" == ""
!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx
!endif
WXDIR = $(WXWIN)
TARGET=bombs
OBJECTS=$(TARGET).obj bombs1.obj game.obj
!include $(WXDIR)\src\makeprog.bcc

View File

@@ -1,17 +0,0 @@
#
# File: makefile.dos
# Author: Julian Smart
# Created: 1998
# Updated:
#
# Makefile : Builds 16-bit sample, VC++ 1.5
# Use FINAL=1 argument to nmake to build final version with no debugging
# info
WXDIR = $(WXWIN)
TARGET=bombs
OBJECTS = $(TARGET).obj bombs1.obj game.obj
!include $(WXDIR)\src\makeprog.msc

View File

@@ -1,16 +0,0 @@
#
# File: makefile.g95
# Author: Julian Smart
# Created: 1999
# Updated:
# Copyright: (c) Julian Smart, 1999
#
# Makefile for wxWindows sample (Cygwin/Mingw32).
WXDIR = ../..
TARGET=bombs
OBJECTS = $(TARGET).o bombs1.o game.o
include $(WXDIR)/src/makeprog.g95

View File

@@ -1,35 +0,0 @@
#
# File: Makefile for samples
# Author: Robert Roebling
# Created: 1999
# Updated:
# Copyright: (c) 1998 Robert Roebling
#
# This makefile requires a Unix version of wxWindows
# to be installed on your system. This is most often
# done typing "make install" when using the complete
# sources of wxWindows or by installing the two
# RPM packages wxGTK.XXX.rpm and wxGTK-devel.XXX.rpm
# under Linux.
#
CC = gcc
PROGRAM = bombs
OBJECTS = $(PROGRAM).o game.o bombs1.o
# implementation
.SUFFIXES: .o .cpp
.cpp.o :
$(CC) -c `wx-config --cflags` -o $@ $<
all: $(PROGRAM)
$(PROGRAM): $(OBJECTS)
$(CC) -o $(PROGRAM) $(OBJECTS) `wx-config --libs`
clean:
rm -f *.o $(PROGRAM)

View File

@@ -1,18 +0,0 @@
#
# File: makefile.vc
# Author: Julian Smart
# Created: 1999
# Updated:
# Copyright: (c) Julian Smart
#
# Makefile : Builds sample (VC++, WIN32)
# Use FINAL=1 argument to nmake to build final version with no debug info.
# Set WXDIR for your system
WXDIR = $(WXWIN)
PROGRAM=bombs
OBJECTS = $(PROGRAM).obj bombs1.obj game.obj
!include $(WXDIR)\src\makeprog.vc

View File

@@ -1,15 +0,0 @@
#
# Makefile for WATCOM
#
# Created by Julian Smart, January 1999
#
#
WXDIR = $(%WXWIN)
PROGRAM = bombs
OBJECTS = $(PROGRAM).obj bombs1.obj game.obj
!include $(WXDIR)\src\makeprog.wat

View File

@@ -1,78 +0,0 @@
wxWin Bombs
by Pasquale Foggia
1. The aim of the program
wxWin Bombs is the wxWin implementation of the minesweeper game you find
under MSWindows 3.1+. Later the rules of the game will be explained for
the lucky ones of you that have never used Windows.
2. Installation
If you are reading this file, I suppose you have succesfully unpacked the
files in a directory of your hard disk :-). You should already have
installed wxWin on your system.
Now you have to modify makefile.bcc
(if a Windows user) or makefile.unx (if you use a real OS) setting the
proper values for the directories. Finally, you have to run:
make -f makefile.bcc
for Windows (nmake if you use a MicroSoft compiler), or:
make -f makefile.unx xview
for Unix+xview and
make -f makefile.unx motif
for Unix+motif
If you are lucky, you will find the bombs executable, ready to be run.
3. Test
Bombs has been tested under the following platforms:
PC + MSWindos 3.1 + wxWin 1.60 + Borland C 3.1
Sun SPARCstation 20 + SunOS + xview + wxWin 1.63 + gcc 2.3.3
and all seems to work fine.
4. The author
This program has been developed by Pasquale Foggia, a PhD student
in Computer Engineering at the "Federico II" University of Naples, Italy.
You can contacting him using the following address:
foggia@amalfi.dis.unina.it
5. Disclaimer
This program is freeware. You can do everything you want with it, including
copying and modifying, without the need of a permission from the author.
On the other hand, this program is provided AS IS, with NO KIND OF WARRANTY.
The author will be in NO CASE responsible for damages directly or indirectly
caused by this program. Use it AT YOUR OWN RISK, or don't use it at all.
6. The rules of the game
Your aim is to discover all the bombs in a mined field. If you click with
the left mouse button on a cell containing a bomb, your game ends.
Otherwise, the number of bombs in the 8 neighbour cells will be displayed.
When you have clicked all the cells without a bomb, you win.
You can also use the right button (or left button+shift) to mark a cell
you think hides a bomb, in order to not click it accidentally.
7. Concluding remarks
I hope someone of you will enjoy this program. However, I enjoyed writing
it (thanks to Julian Smart and all the other wxWin developers).
In the near future I plan to implement under wxWin the great 'empire'
(is there someone that still remember it?), IMHO one of the most addictive
strategy games. If someone is interested, please contact me by e-mail.
I beg you pardon for my approximative english.
Pasquale Foggia
foggia@amalfi.dis.unina.it
------
A note from Julian Smart: Many thanks to Pasquale for the contribution.
I've taken the liberty of making a few changes.
1) I've made the status line have a single field so that you
can see the 'cells remaining' message properly.
2) I've changed the title from "wxWin Bombs" (which, as a statement,
is an unfortunate reflection of the reality of earlier versions of
wxWindows :-)) to wxBombs.
3) Added SetClientData to resize the window on Restart; eliminated
scrollbars; made the frame unresizeable.
4) Added makefile.dos for VC++ 1.x, makefile.wat for Watcom C++.

View File

@@ -1 +0,0 @@

View File

@@ -1,21 +0,0 @@
#
# File: Makefile.in
# Author: Julian Smart
# Created: 1998
# Updated:
# Copyright: (c) 1998 Julian Smart
#
# "%W% %G%"
#
# Makefile for forty example (UNIX).
top_srcdir = @top_srcdir@
top_builddir = ../..
program_dir = demos/forty
PROGRAM=forty
OBJECTS=$(PROGRAM).o canvas.o card.o game.o pile.o playerdg.o scoredg.o scorefil.o
include ../../src/makeprog.env

View File

@@ -1,253 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: canvas.cpp
// Purpose: Forty Thieves patience game
// Author: Chris Breeze
// Modified by:
// Created: 21/07/97
// RCS-ID: $Id$
// Copyright: (c) 1993-1998 Chris Breeze
// Licence: wxWindows licence
//---------------------------------------------------------------------------
// Last modified: 22nd July 1998 - ported to wxWindows 2.0
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation
#pragma interface
#endif
// For compilers that support precompilation, includes "wx/wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif
#include "forty.h"
#include "card.h"
#include "game.h"
#include "scorefil.h"
#include "playerdg.h"
#include "canvas.h"
BEGIN_EVENT_TABLE(FortyCanvas, wxScrolledWindow)
EVT_MOUSE_EVENTS(FortyCanvas::OnMouseEvent)
END_EVENT_TABLE()
FortyCanvas::FortyCanvas(wxWindow* parent, int x, int y, int w, int h) :
wxScrolledWindow(parent, -1, wxPoint(x, y), wxSize(w, h)),
m_helpingHand(TRUE),
m_rightBtnUndo(TRUE),
m_playerDialog(0),
m_leftBtnDown(FALSE)
{
#ifdef __WXGTK__
m_font = wxTheFontList->FindOrCreateFont(12, wxROMAN, wxNORMAL, wxNORMAL);
#else
m_font = wxTheFontList->FindOrCreateFont(10, wxSWISS, wxNORMAL, wxNORMAL);
#endif
SetBackgroundColour(FortyApp::BackgroundColour());
m_handCursor = new wxCursor(wxCURSOR_HAND);
m_arrowCursor = new wxCursor(wxCURSOR_ARROW);
wxString name = wxTheApp->GetAppName();
if (name.Length() <= 0) name = "forty";
m_scoreFile = new ScoreFile(name);
m_game = new Game(0, 0, 0);
m_game->Deal();
}
FortyCanvas::~FortyCanvas()
{
UpdateScores();
delete m_game;
delete m_scoreFile;
}
/*
Write the current player's score back to the score file
*/
void FortyCanvas::UpdateScores()
{
if (m_player.Length() > 0 && m_scoreFile && m_game)
{
m_scoreFile->WritePlayersScore(
m_player,
m_game->GetNumWins(),
m_game->GetNumGames(),
m_game->GetScore()
);
}
}
void FortyCanvas::OnDraw(wxDC& dc)
{
dc.SetFont(* m_font);
m_game->Redraw(dc);
// if player name not set (and selection dialog is not displayed)
// then ask the player for their name
if (m_player.Length() == 0 && !m_playerDialog)
{
m_playerDialog = new PlayerSelectionDialog(this, m_scoreFile);
m_playerDialog->ShowModal();
m_player = m_playerDialog->GetPlayersName();
if (m_player.Length() > 0)
{
// user entered a name - lookup their score
int wins, games, score;
m_scoreFile->ReadPlayersScore(m_player, wins, games, score);
m_game->NewPlayer(wins, games, score);
m_game->DisplayScore(dc);
m_playerDialog->Destroy();
m_playerDialog = 0;
Refresh();
}
else
{
// user cancelled the dialog - exit the app
((wxFrame*)GetParent())->Close(TRUE);
}
}
}
/*
Called when the main frame is closed
*/
bool FortyCanvas::OnCloseCanvas()
{
if (m_game->InPlay() &&
wxMessageBox("Are you sure you want to\nabandon the current game?",
"Warning", wxYES_NO | wxICON_QUESTION) == wxNO)
{
return FALSE;
}
return TRUE;
}
void FortyCanvas::OnMouseEvent(wxMouseEvent& event)
{
int mouseX = (int)event.GetX();
int mouseY = (int)event.GetY();
wxClientDC dc(this);
PrepareDC(dc);
dc.SetFont(* m_font);
if (event.LeftDClick())
{
if (m_leftBtnDown)
{
m_leftBtnDown = FALSE;
ReleaseMouse();
m_game->LButtonUp(dc, mouseX, mouseY);
}
m_game->LButtonDblClk(dc, mouseX, mouseY);
}
else if (event.LeftDown())
{
if (!m_leftBtnDown)
{
m_leftBtnDown = TRUE;
CaptureMouse();
m_game->LButtonDown(dc, mouseX, mouseY);
}
}
else if (event.LeftUp())
{
if (m_leftBtnDown)
{
m_leftBtnDown = FALSE;
ReleaseMouse();
m_game->LButtonUp(dc, mouseX, mouseY);
}
}
else if (event.RightDown() && !event.LeftIsDown())
{
// only allow right button undo if m_rightBtnUndo is TRUE
if (m_rightBtnUndo)
{
if (event.ControlDown() || event.ShiftDown())
{
m_game->Redo(dc);
}
else
{
m_game->Undo(dc);
}
}
}
else if (event.Dragging())
{
m_game->MouseMove(dc, mouseX, mouseY);
}
if (!event.LeftIsDown())
{
SetCursorStyle(mouseX, mouseY);
}
}
void FortyCanvas::SetCursorStyle(int x, int y)
{
if (m_game->HaveYouWon())
{
if (wxMessageBox("Do you wish to play again?",
"Well Done, You have won!", wxYES_NO | wxICON_QUESTION) == wxYES)
{
m_game->Deal();
wxClientDC dc(this);
PrepareDC(dc);
dc.SetFont(* m_font);
m_game->Redraw(dc);
}
else
{
// user cancelled the dialog - exit the app
((wxFrame*)GetParent())->Close(TRUE);
}
}
// Only set cursor to a hand if 'helping hand' is enabled and
// the card under the cursor can go somewhere
if (m_game->CanYouGo(x, y) && m_helpingHand)
{
SetCursor(* m_handCursor);
}
else
{
SetCursor(* m_arrowCursor);
}
}
void FortyCanvas::NewGame()
{
m_game->Deal();
Refresh();
}
void FortyCanvas::Undo()
{
wxClientDC dc(this);
PrepareDC(dc);
dc.SetFont(* m_font);
m_game->Undo(dc);
}
void FortyCanvas::Redo()
{
wxClientDC dc(this);
PrepareDC(dc);
dc.SetFont(* m_font);
m_game->Redo(dc);
}

View File

@@ -1,56 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: canvas.h
// Purpose: Forty Thieves patience game
// Author: Chris Breeze
// Modified by:
// Created: 21/07/97
// RCS-ID: $Id$
// Copyright: (c) 1993-1998 Chris Breeze
// Licence: wxWindows licence
//---------------------------------------------------------------------------
// Last modified: 22nd July 1998 - ported to wxWindows 2.0
/////////////////////////////////////////////////////////////////////////////
#ifndef _CANVAS_H_
#define _CANVAS_H_
class Card;
class Game;
class ScoreFile;
class PlayerSelectionDialog;
class FortyCanvas: public wxScrolledWindow
{
public:
FortyCanvas(wxWindow* parent, int x, int y, int w, int h);
virtual ~FortyCanvas();
virtual void OnDraw(wxDC& dc);
bool OnCloseCanvas();
void OnMouseEvent(wxMouseEvent& event);
void SetCursorStyle(int x, int y);
void NewGame();
void Undo();
void Redo();
ScoreFile* GetScoreFile() const { return m_scoreFile; }
void UpdateScores();
void EnableHelpingHand(bool enable) { m_helpingHand = enable; }
void EnableRightButtonUndo(bool enable) { m_rightBtnUndo = enable; }
DECLARE_EVENT_TABLE()
private:
wxFont* m_font;
Game* m_game;
ScoreFile* m_scoreFile;
wxCursor* m_arrowCursor;
wxCursor* m_handCursor;
bool m_helpingHand;
bool m_rightBtnUndo;
wxString m_player;
PlayerSelectionDialog* m_playerDialog;
bool m_leftBtnDown;
};
#endif

View File

@@ -1,358 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: card.cpp
// Purpose: Forty Thieves patience game
// Author: Chris Breeze
// Modified by:
// Created: 21/07/97
// RCS-ID: $Id$
// Copyright: (c) 1993-1998 Chris Breeze
// Licence: wxWindows licence
//---------------------------------------------------------------------------
// Last modified: 22nd July 1998 - ported to wxWindows 2.0
/////////////////////////////////////////////////////////////////////////////
//+-------------------------------------------------------------+
//| Description
//| A class for drawing playing cards.
//| Currently assumes that the card symbols have been
//| loaded into hbmap_symbols and the pictures for the
//| Jack, Queen and King have been loaded into
//| hbmap_pictures.
//+-------------------------------------------------------------+
#ifdef __GNUG__
#pragma implementation
#pragma interface
#endif
// For compilers that support precompilation, includes "wx/wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "forty.h"
#include "card.h"
#if defined(__WXGTK__) || defined(__WXMOTIF__) || defined(__WXMAC__)
#include "pictures.xpm"
#include "symbols.xbm"
#endif
wxBitmap* Card::m_pictureBmap = 0;
wxBitmap* Card::m_symbolBmap = 0;
//+-------------------------------------------------------------+
//| Card::Card() |
//+-------------------------------------------------------------+
//| Description: |
//| Constructor for a playing card. |
//| Checks that the value is in the range 1..52 and then |
//| initialises the suit, colour, pipValue and wayUp. |
//+-------------------------------------------------------------+
Card::Card(int value, WayUp way_up) :
m_wayUp(way_up)
{
if (!m_symbolBmap)
{
#ifdef __WXMSW__
m_symbolBmap = new wxBitmap("CardSymbols", wxBITMAP_TYPE_BMP_RESOURCE);
#else
m_symbolBmap = new wxBitmap(Symbols_bits, Symbols_width, Symbols_height);
#endif
if (!m_symbolBmap->Ok())
{
::wxMessageBox("Failed to load bitmap CardSymbols", "Error");
}
}
if (!m_pictureBmap)
{
#ifdef __WXMSW__
m_pictureBmap = new wxBitmap("CardPictures", wxBITMAP_TYPE_BMP_RESOURCE);
#else
m_pictureBmap = new wxBitmap(Pictures);
#endif
if (!m_pictureBmap->Ok())
{
::wxMessageBox("Failed to load bitmap CardPictures", "Error");
}
}
if (value >= 1 && value <= PackSize)
{
switch ((value - 1) / 13)
{
case 0:
m_suit = clubs;
m_colour = black;
break;
case 1:
m_suit = diamonds;
m_colour = red;
break;
case 2:
m_suit = hearts;
m_colour = red;
break;
case 3:
m_suit = spades;
m_colour = black;
break;
}
m_pipValue = 1 + (value - 1) % 13;
m_status = TRUE;
}
else
{
m_status = FALSE;
}
} // Card::Card()
//+-------------------------------------------------------------+
//| Card::~Card() |
//+-------------------------------------------------------------+
//| Description: |
//| Destructor - nothing to do at present. |
//+-------------------------------------------------------------+
Card::~Card()
{
}
//+-------------------------------------------------------------+
//| Card::Erase() |
//+-------------------------------------------------------------+
//| Description: |
//| Erase the card at (x, y) by drawing a rectangle in the |
//| background colour. |
//+-------------------------------------------------------------+
void Card::Erase(wxDC& dc, int x, int y)
{
wxPen* pen = wxThePenList->FindOrCreatePen(
FortyApp::BackgroundColour(),
1,
wxSOLID
);
dc.SetPen(* pen);
dc.SetBrush(FortyApp::BackgroundBrush());
dc.DrawRectangle(x, y, CardWidth, CardHeight);
} // Card::Erase()
//+-------------------------------------------------------------+
//| Card::Draw() |
//+-------------------------------------------------------------+
//| Description: |
//| Draw the card at (x, y). |
//| If the card is facedown draw the back of the card. |
//| If the card is faceup draw the front of the card. |
//| Cards are not held in bitmaps, instead they are drawn |
//| from their constituent parts when required. |
//| hbmap_symbols contains large and small suit symbols and |
//| pip values. These are copied to the appropriate part of |
//| the card. Picture cards use the pictures defined in |
//| hbmap_pictures. Note that only one picture is defined |
//| for the Jack, Queen and King, unlike a real pack where |
//| each suit is different. |
//| |
//| WARNING: |
//| The locations of these symbols is 'hard-wired' into the |
//| code. Editing the bitmaps or the numbers below will |
//| result in the wrong symbols being displayed. |
//+-------------------------------------------------------------+
void Card::Draw(wxDC& dc, int x, int y)
{
wxBrush backgroundBrush( dc.GetBackground() );
dc.SetBrush(* wxWHITE_BRUSH);
dc.SetPen(* wxBLACK_PEN);
dc.DrawRoundedRectangle(x, y, CardWidth, CardHeight, 4);
if (m_wayUp == facedown)
{
dc.SetBackground(* wxRED_BRUSH);
dc.SetBackgroundMode(wxSOLID);
wxBrush* brush = wxTheBrushList->FindOrCreateBrush(
"BLACK", wxCROSSDIAG_HATCH
);
dc.SetBrush(* brush);
dc.DrawRoundedRectangle(
x + 4, y + 4,
CardWidth - 8, CardHeight - 8,
2
);
}
else
{
wxMemoryDC memoryDC;
memoryDC.SelectObject(* m_symbolBmap);
// dc.SetBackgroundMode(wxTRANSPARENT);
dc.SetTextBackground(*wxWHITE);
switch (m_suit)
{
case spades:
case clubs:
dc.SetTextForeground(*wxBLACK);
break;
case diamonds:
case hearts:
dc.SetTextForeground(*wxRED);
break;
}
// Draw the value
dc.Blit(x + 3, y + 3, 6, 7,
&memoryDC, 6 * (m_pipValue - 1), 36, wxCOPY);
dc.Blit(x + CardWidth - 9, y + CardHeight - 11, 6, 7,
&memoryDC, 6 * (m_pipValue - 1), 43, wxCOPY);
// Draw the pips
dc.Blit(x + 11, y + 3, 7, 7,
&memoryDC, 7 * m_suit, 0, wxCOPY);
dc.Blit(x + CardWidth - 17, y + CardHeight - 11, 7, 7,
&memoryDC, 7 * m_suit, 7, wxCOPY);
switch (m_pipValue)
{
case 1:
dc.Blit(x - 5 + CardWidth / 2, y - 5 + CardHeight / 2, 11, 11,
&memoryDC, 11 * m_suit, 14, wxCOPY);
break;
case 3:
dc.Blit(x - 5 + CardWidth / 2, y - 5 + CardHeight / 2, 11, 11,
&memoryDC, 11 * m_suit, 14, wxCOPY);
case 2:
dc.Blit(x - 5 + CardWidth / 2,
y - 5 + CardHeight / 4, 11, 11,
&memoryDC, 11 * m_suit, 14, wxCOPY);
dc.Blit(x - 5 + CardWidth / 2,
y - 5 + 3 * CardHeight / 4, 11, 11,
&memoryDC, 11 * m_suit, 25, wxCOPY);
break;
case 5:
dc.Blit(x - 5 + CardWidth / 2, y - 5 + CardHeight / 2, 11, 11,
&memoryDC, 11 * m_suit, 14, wxCOPY);
case 4:
dc.Blit(x - 5 + CardWidth / 4,
y - 5 + CardHeight / 4, 11, 11,
&memoryDC, 11 * m_suit, 14, wxCOPY);
dc.Blit(x - 5 + CardWidth / 4,
y - 5 + 3 * CardHeight / 4, 11, 11,
&memoryDC, 11 * m_suit, 25, wxCOPY);
dc.Blit(x - 5 + 3 * CardWidth / 4,
y - 5 + CardHeight / 4, 11, 11,
&memoryDC, 11 * m_suit, 14, wxCOPY);
dc.Blit(x - 5 + 3 * CardWidth / 4,
y - 5 + 3 * CardHeight / 4, 11, 11,
&memoryDC, 11 * m_suit, 25, wxCOPY);
break;
case 8:
dc.Blit(x - 5 + 5 * CardWidth / 10,
y - 5 + 5 * CardHeight / 8, 11, 11,
&memoryDC, 11 * m_suit, 25, wxCOPY);
case 7:
dc.Blit(x - 5 + 5 * CardWidth / 10,
y - 5 + 3 * CardHeight / 8, 11, 11,
&memoryDC, 11 * m_suit, 14, wxCOPY);
case 6:
dc.Blit(x - 5 + CardWidth / 4,
y - 5 + CardHeight / 4, 11, 11,
&memoryDC, 11 * m_suit, 14, wxCOPY);
dc.Blit(x - 5 + CardWidth / 4,
y - 5 + CardHeight / 2, 11, 11,
&memoryDC, 11 * m_suit, 14, wxCOPY);
dc.Blit(x - 5 + CardWidth / 4,
y - 5 + 3 * CardHeight / 4, 11, 11,
&memoryDC, 11 * m_suit, 25, wxCOPY);
dc.Blit(x - 5 + 3 * CardWidth / 4,
y - 5 + CardHeight / 4, 11, 11,
&memoryDC, 11 * m_suit, 14, wxCOPY);
dc.Blit(x - 5 + 3 * CardWidth / 4,
y - 5 + CardHeight / 2, 11, 11,
&memoryDC, 11 * m_suit, 14, wxCOPY);
dc.Blit(x - 5 + 3 * CardWidth / 4,
y - 5 + 3 * CardHeight / 4, 11, 11,
&memoryDC, 11 * m_suit, 25, wxCOPY);
break;
case 10:
dc.Blit(x - 5 + CardWidth / 2,
y - 5 + 2 * CardHeight / 3, 11, 11,
&memoryDC, 11 * m_suit, 25, wxCOPY);
case 9:
dc.Blit(x - 5 + CardWidth / 4,
y - 6 + CardHeight / 4, 11, 11,
&memoryDC, 11 * m_suit, 14, wxCOPY);
dc.Blit(x - 5 + CardWidth / 4,
y - 6 + 5 * CardHeight / 12, 11, 11,
&memoryDC, 11 * m_suit, 14, wxCOPY);
dc.Blit(x - 5 + CardWidth / 4,
y - 5 + 7 * CardHeight / 12, 11, 11,
&memoryDC, 11 * m_suit, 25, wxCOPY);
dc.Blit(x - 5 + CardWidth / 4,
y - 5 + 3 * CardHeight / 4, 11, 11,
&memoryDC, 11 * m_suit, 25, wxCOPY);
dc.Blit(x - 5 + 3 * CardWidth / 4,
y - 6 + CardHeight / 4, 11, 11,
&memoryDC, 11 * m_suit, 14, wxCOPY);
dc.Blit(x - 5 + 3 * CardWidth / 4,
y - 6 + 5 * CardHeight / 12, 11, 11,
&memoryDC, 11 * m_suit, 14, wxCOPY);
dc.Blit(x - 5 + 3 * CardWidth / 4,
y - 5 + 7 * CardHeight / 12, 11, 11,
&memoryDC, 11 * m_suit, 25, wxCOPY);
dc.Blit(x - 5 + 3 * CardWidth / 4,
y - 5 + 3 * CardHeight / 4, 11, 11,
&memoryDC, 11 * m_suit, 25, wxCOPY);
dc.Blit(x - 5 + CardWidth / 2,
y - 5 + CardHeight / 3, 11, 11,
&memoryDC, 11 * m_suit, 14, wxCOPY);
break;
case 11:
case 12:
case 13:
memoryDC.SelectObject(* m_pictureBmap);
dc.Blit(x + 5, y - 5 + CardHeight / 4, 40, 45,
&memoryDC, 40 * (m_pipValue - 11), 0, wxCOPY);
memoryDC.SelectObject(* m_symbolBmap);
dc.Blit(x + 32, y - 3 + CardHeight / 4, 11, 11,
&memoryDC, 11 * m_suit, 14, wxCOPY);
dc.Blit(x + 7, y + 27 + CardHeight / 4, 11, 11,
&memoryDC, 11 * m_suit, 25, wxCOPY);
break;
}
}
dc.SetBackground( backgroundBrush );
} // Card:Draw()
//+-------------------------------------------------------------+
//| Card::DrawNullCard() |
//+-------------------------------------------------------------+
//| Description: |
//| Draws the outline of a card at (x, y). |
//| Used to draw place holders for empty piles of cards. |
//+-------------------------------------------------------------+
void Card::DrawNullCard(wxDC& dc, int x, int y)
{
wxPen* pen = wxThePenList->FindOrCreatePen(FortyApp::TextColour(), 1, wxSOLID);
dc.SetBrush(FortyApp::BackgroundBrush());
dc.SetPen(*pen);
dc.DrawRoundedRectangle(x, y, CardWidth, CardHeight, 4);
} // Card::DrawNullCard()

View File

@@ -1,65 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: card.h
// Purpose: Forty Thieves patience game
// Author: Chris Breeze
// Modified by:
// Created: 21/07/97
// RCS-ID: $Id$
// Copyright: (c) 1993-1998 Chris Breeze
// Licence: wxWindows licence
//---------------------------------------------------------------------------
// Last modified: 22nd July 1998 - ported to wxWindows 2.0
/////////////////////////////////////////////////////////////////////////////
//+-------------------------------------------------------------+
//| Description: |
//| A class for drawing playing cards. |
//| InitCards() must be called before using the Card class, |
//| otherwise the card bitmaps will not be loaded. |
//| CloseCards() must be called before terminating the |
//| program so that the bitmaps are deleted and the memory |
//| given back to Windows. |
//+-------------------------------------------------------------+
#ifndef _CARD_H_
#define _CARD_H_
// Constants
const int PackSize = 52;
const int CardWidth = 50;
const int CardHeight = 70;
// Data types
enum Suit { clubs = 0, diamonds = 1, hearts = 2, spades = 3 };
enum SuitColour { red = 0, black = 1 };
enum WayUp { faceup, facedown };
//--------------------------------//
// A class defining a single card //
//--------------------------------//
class Card {
public:
Card(int value, WayUp way_up = facedown);
virtual ~Card();
void Draw(wxDC& pDC, int x, int y);
static void DrawNullCard(wxDC& pDC, int x, int y); // Draw card place-holder
void Erase(wxDC& pDC, int x, int y);
void TurnCard(WayUp way_up = faceup) { m_wayUp = way_up; }
WayUp GetWayUp() const { return m_wayUp; }
int GetPipValue() const { return m_pipValue; }
Suit GetSuit() const { return m_suit; }
SuitColour GetColour() const { return m_colour; }
private:
Suit m_suit;
int m_pipValue; // in the range 1 (Ace) to 13 (King)
SuitColour m_colour; // red or black
bool m_status;
WayUp m_wayUp;
static wxBitmap* m_symbolBmap;
static wxBitmap* m_pictureBmap;
};
#endif // _CARD_H_

Binary file not shown.

Before

Width:  |  Height:  |  Size: 766 B

View File

@@ -1,271 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: forty.cpp
// Purpose: Forty Thieves patience game
// Author: Chris Breeze
// Modified by:
// Created: 21/07/97
// RCS-ID: $Id$
// Copyright: (c) 1993-1998 Chris Breeze
// Licence: wxWindows licence
//---------------------------------------------------------------------------
// Last modified: 22nd July 1998 - ported to wxWindows 2.0
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation
#pragma interface
#endif
// For compilers that support precompilation, includes "wx/wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif
#include "canvas.h"
#include "forty.h"
#include "scoredg.h"
#ifdef wx_x
#include "cards.xbm"
#endif
class FortyFrame: public wxFrame
{
public:
FortyFrame(wxFrame* frame, char* title, int x, int y, int w, int h);
virtual ~FortyFrame();
void OnCloseWindow(wxCloseEvent& event);
// Menu callbacks
void NewGame(wxCommandEvent& event);
void Exit(wxCommandEvent& event);
void About(wxCommandEvent& event);
void Undo(wxCommandEvent& event);
void Redo(wxCommandEvent& event);
void Scores(wxCommandEvent& event);
void ToggleRightButtonUndo(wxCommandEvent& event);
void ToggleHelpingHand(wxCommandEvent& event);
DECLARE_EVENT_TABLE()
private:
enum MenuCommands { NEW_GAME = 10, SCORES, EXIT,
UNDO, REDO,
RIGHT_BUTTON_UNDO, HELPING_HAND,
ABOUT };
wxMenuBar* m_menuBar;
FortyCanvas* m_canvas;
};
BEGIN_EVENT_TABLE(FortyFrame, wxFrame)
EVT_MENU(NEW_GAME, FortyFrame::NewGame)
EVT_MENU(EXIT, FortyFrame::Exit)
EVT_MENU(ABOUT, FortyFrame::About)
EVT_MENU(UNDO, FortyFrame::Undo)
EVT_MENU(REDO, FortyFrame::Redo)
EVT_MENU(SCORES, FortyFrame::Scores)
EVT_MENU(RIGHT_BUTTON_UNDO, FortyFrame::ToggleRightButtonUndo)
EVT_MENU(HELPING_HAND, FortyFrame::ToggleHelpingHand)
EVT_CLOSE(FortyFrame::OnCloseWindow)
END_EVENT_TABLE()
// Create a new application object
IMPLEMENT_APP (FortyApp)
wxColour* FortyApp::m_backgroundColour = 0;
wxColour* FortyApp::m_textColour = 0;
wxBrush* FortyApp::m_backgroundBrush = 0;
bool FortyApp::OnInit()
{
FortyFrame* frame = new FortyFrame(
0,
"Forty Thieves",
-1, -1, 668, 510
);
// Show the frame
frame->Show(TRUE);
return TRUE;
}
const wxColour& FortyApp::BackgroundColour()
{
if (!m_backgroundColour)
{
m_backgroundColour = new wxColour(0, 128, 0);
}
return *m_backgroundColour;
}
const wxBrush& FortyApp::BackgroundBrush()
{
if (!m_backgroundBrush)
{
m_backgroundBrush = new wxBrush(BackgroundColour(), wxSOLID);
}
return *m_backgroundBrush;
}
const wxColour& FortyApp::TextColour()
{
if (!m_textColour)
{
m_textColour = new wxColour("BLACK");
}
return *m_textColour;
}
// My frame constructor
FortyFrame::FortyFrame(wxFrame* frame, char* title, int x, int y, int w, int h):
wxFrame(frame, -1, title, wxPoint(x, y), wxSize(w, h))
{
#ifdef __WXMAC__
// we need this in order to allow the about menu relocation, since ABOUT is not the default id of the about menu
wxApp::s_macAboutMenuItemId = ABOUT ;
#endif
// set the icon
#ifdef __WXMSW__
SetIcon(wxIcon("CardsIcon"));
#else
#ifdef GTK_TBD
SetIcon(wxIcon(Cards_bits, Cards_width, Cards_height));
#endif
#endif
// Make a menu bar
wxMenu* gameMenu = new wxMenu;
gameMenu->Append(NEW_GAME, "&New", "Start a new game");
gameMenu->Append(SCORES, "&Scores...", "Displays scores");
gameMenu->Append(EXIT, "E&xit", "Exits Forty Thieves");
wxMenu* editMenu = new wxMenu;
editMenu->Append(UNDO, "&Undo", "Undo the last move");
editMenu->Append(REDO, "&Redo", "Redo a move that has been undone");
wxMenu* optionsMenu = new wxMenu;
optionsMenu->Append(RIGHT_BUTTON_UNDO,
"&Right button undo",
"Enables/disables right mouse button undo and redo",
TRUE
);
optionsMenu->Append(HELPING_HAND,
"&Helping hand",
"Enables/disables hand cursor when a card can be moved",
TRUE
);
optionsMenu->Check(HELPING_HAND, TRUE);
optionsMenu->Check(RIGHT_BUTTON_UNDO, TRUE);
wxMenu* helpMenu = new wxMenu;
helpMenu->Append(ABOUT, "&About", "Displays program version information");
m_menuBar = new wxMenuBar;
m_menuBar->Append(gameMenu, "&Game");
m_menuBar->Append(editMenu, "&Edit");
m_menuBar->Append(optionsMenu, "&Options");
m_menuBar->Append(helpMenu, "&Help");
SetMenuBar(m_menuBar);
m_canvas = new FortyCanvas(this, 0, 0, 400, 400);
wxLayoutConstraints* constr = new wxLayoutConstraints;
constr->left.SameAs(this, wxLeft);
constr->top.SameAs(this, wxTop);
constr->right.SameAs(this, wxRight);
constr->height.SameAs(this, wxHeight);
m_canvas->SetConstraints(constr);
CreateStatusBar();
}
FortyFrame::~FortyFrame()
{
}
void FortyFrame::OnCloseWindow(wxCloseEvent& event)
{
if (m_canvas->OnCloseCanvas() )
{
this->Destroy();
}
else
event.Veto();
}
void
FortyFrame::NewGame(wxCommandEvent&)
{
m_canvas->NewGame();
}
void
FortyFrame::Exit(wxCommandEvent&)
{
#ifdef __WXGTK__
// wxGTK doesn't call OnClose() so we do it here
// if (OnClose())
#endif
Close(TRUE);
}
void
FortyFrame::About(wxCommandEvent&)
{
wxMessageBox(
"Forty Thieves\n\n"
"A freeware program using the wxWindows\n"
"portable C++ GUI toolkit.\n"
"http://web.ukonline.co.uk/julian.smart/wxwin\n"
"http://www.freiburg.linux.de/~wxxt\n\n"
"Author: Chris Breeze (c) 1992-1998\n"
"email: chris.breeze@iname.com",
"About Forty Thieves",
wxOK, this
);
}
void
FortyFrame::Undo(wxCommandEvent&)
{
m_canvas->Undo();
}
void
FortyFrame::Redo(wxCommandEvent&)
{
m_canvas->Redo();
}
void
FortyFrame::Scores(wxCommandEvent&)
{
m_canvas->UpdateScores();
ScoreDialog scores(this, m_canvas->GetScoreFile());
scores.Display();
}
void
FortyFrame::ToggleRightButtonUndo(wxCommandEvent& event)
{
bool checked = m_menuBar->IsChecked(event.GetId());
m_canvas->EnableRightButtonUndo(checked);
}
void
FortyFrame::ToggleHelpingHand(wxCommandEvent& event)
{
bool checked = m_menuBar->IsChecked(event.GetId());
m_canvas->EnableHelpingHand(checked);
}

View File

@@ -1,8 +0,0 @@
NAME Forty
DESCRIPTION 'Forty Thieves'
EXETYPE WINDOWS
STUB 'WINSTUB.EXE'
CODE PRELOAD MOVEABLE DISCARDABLE
DATA PRELOAD MOVEABLE MULTIPLE
HEAPSIZE 4048
STACKSIZE 16000

View File

@@ -1,31 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: forty.h
// Purpose: Forty Thieves patience game
// Author: Chris Breeze
// Modified by:
// Created: 21/07/97
// RCS-ID: $Id$
// Copyright: (c) 1993-1998 Chris Breeze
// Licence: wxWindows licence
//---------------------------------------------------------------------------
// Last modified: 22nd July 1998 - ported to wxWindows 2.0
/////////////////////////////////////////////////////////////////////////////
#ifndef _FORTY_H_
#define _FORTY_H_
class FortyApp: public wxApp
{
public:
bool OnInit();
static const wxColour& BackgroundColour();
static const wxColour& TextColour();
static const wxBrush& BackgroundBrush();
private:
static wxColour* m_backgroundColour;
static wxColour* m_textColour;
static wxBrush* m_backgroundBrush;
};
#endif

View File

@@ -1,6 +0,0 @@
#include "wx/msw/wx.rc"
CardsIcon ICON "cards.ico"
CardPictures BITMAP "pictures.bmp"
CardSymbols BITMAP "symbols.bmp"

View File

@@ -1,946 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: game.cpp
// Purpose: Forty Thieves patience game
// Author: Chris Breeze
// Modified by:
// Created: 21/07/97
// RCS-ID: $Id$
// Copyright: (c) 1993-1998 Chris Breeze
// Licence: wxWindows licence
//---------------------------------------------------------------------------
// Last modified: 22nd July 1998 - ported to wxWindows 2.0
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation
#pragma interface
#endif
// For compilers that support precompilation, includes "wx/wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <string.h>
#include "forty.h"
#include "game.h"
Game::Game(int wins, int games, int score) :
m_inPlay(FALSE),
m_moveIndex(0),
m_redoIndex(0),
m_bmap(0),
m_bmapCard(0)
{
int i;
m_pack = new Pack(2, 2 + 4 * (CardHeight + 2));
srand(time(0));
for (i = 0; i < 5; i++) m_pack->Shuffle();
m_discard = new Discard(2, 2 + 5 * (CardHeight + 2));
for (i = 0; i < 8; i++)
{
m_foundations[i] = new Foundation(2 + (i / 4) * (CardWidth + 2),
2 + (i % 4) * (CardHeight + 2));
}
for (i = 0; i < 10; i++)
{
m_bases[i] = new Base(8 + (i + 2) * (CardWidth + 2), 2);
}
Deal();
m_srcPile = 0;
m_liftedCard = 0;
// copy the input parameters for future reference
m_numWins = wins;
m_numGames = games;
m_totalScore = score;
m_currentScore = 0;
}
// Make sure we delete all objects created by the game object
Game::~Game()
{
int i;
delete m_pack;
delete m_discard;
for (i = 0; i < 8; i++)
{
delete m_foundations[i];
}
for (i = 0; i < 10; i++)
{
delete m_bases[i];
}
delete m_bmap;
delete m_bmapCard;
}
/*
Set the score for a new player.
NB: call Deal() first if the new player is to start
a new game
*/
void Game::NewPlayer(int wins, int games, int score)
{
m_numWins = wins;
m_numGames = games;
m_totalScore = score;
m_currentScore = 0;
}
// Undo the last move
void Game::Undo(wxDC& dc)
{
if (m_moveIndex > 0)
{
m_moveIndex--;
Card* card = m_moves[m_moveIndex].dest->RemoveTopCard(dc);
m_moves[m_moveIndex].src->AddCard(dc, card);
DisplayScore(dc);
}
}
// Redo the last move
void Game::Redo(wxDC& dc)
{
if (m_moveIndex < m_redoIndex)
{
Card* card = m_moves[m_moveIndex].src->RemoveTopCard(dc);
if (m_moves[m_moveIndex].src == m_pack)
{
m_pack->Redraw(dc);
card->TurnCard(faceup);
}
m_moves[m_moveIndex].dest->AddCard(dc, card);
DisplayScore(dc);
m_moveIndex++;
}
}
void Game::DoMove(wxDC& dc, Pile* src, Pile* dest)
{
if (m_moveIndex < MaxMoves)
{
if (src == dest)
{
wxMessageBox("Game::DoMove() src == dest", "Debug message",
wxOK | wxICON_EXCLAMATION);
}
m_moves[m_moveIndex].src = src;
m_moves[m_moveIndex].dest = dest;
m_moveIndex++;
// when we do a move any moves in redo buffer are discarded
m_redoIndex = m_moveIndex;
}
else
{
wxMessageBox("Game::DoMove() Undo buffer full", "Debug message",
wxOK | wxICON_EXCLAMATION);
}
if (!m_inPlay)
{
m_inPlay = TRUE;
m_numGames++;
}
DisplayScore(dc);
}
void Game::DisplayScore(wxDC& dc)
{
wxColour bgColour = FortyApp::BackgroundColour();
wxPen* pen = wxThePenList->FindOrCreatePen(bgColour, 1, wxSOLID);
dc.SetTextBackground(bgColour);
dc.SetTextForeground(FortyApp::TextColour());
dc.SetBrush(FortyApp::BackgroundBrush());
dc.SetPen(* pen);
// count the number of cards in foundations
m_currentScore = 0;
for (int i = 0; i < 8; i++)
{
m_currentScore += m_foundations[i]->GetNumCards();
}
int x, y;
m_pack->GetTopCardPos(x, y);
x += 12 * CardWidth - 105;
int w, h;
{
long width, height;
dc.GetTextExtent("Average score:m_x", &width, &height);
w = width;
h = height;
}
dc.DrawRectangle(x + w, y, 20, 4 * h);
char str[80];
sprintf(str, "%d", m_currentScore);
dc.DrawText("Score:", x, y);
dc.DrawText(str, x + w, y);
y += h;
sprintf(str, "%d", m_numGames);
dc.DrawText("Games played:", x, y);
dc.DrawText(str, x + w, y);
y += h;
sprintf(str, "%d", m_numWins);
dc.DrawText("Games won:", x, y);
dc.DrawText(str, x + w, y);
y += h;
int average = 0;
if (m_numGames > 0)
{
average = (2 * (m_currentScore + m_totalScore) + m_numGames ) / (2 * m_numGames);
}
sprintf(str, "%d", average);
dc.DrawText("Average score:", x, y);
dc.DrawText(str, x + w, y);
}
// Shuffle the m_pack and deal the cards
void Game::Deal()
{
int i, j;
Card* card;
// Reset all the piles, the undo buffer and shuffle the m_pack
m_moveIndex = 0;
m_pack->ResetPile();
for (i = 0; i < 5; i++)
{
m_pack->Shuffle();
}
m_discard->ResetPile();
for (i = 0; i < 10; i++)
{
m_bases[i]->ResetPile();
}
for (i = 0; i < 8; i++)
{
m_foundations[i]->ResetPile();
}
// Deal the initial 40 cards onto the bases
for (i = 0; i < 10; i++)
{
for (j = 1; j <= 4; j++)
{
card = m_pack->RemoveTopCard();
card->TurnCard(faceup);
m_bases[i]->AddCard(card);
}
}
if (m_inPlay)
{
// player has started the game and then redealt
// and so we must add the score for this game to the total score
m_totalScore += m_currentScore;
}
m_currentScore = 0;
m_inPlay = FALSE;
}
// Redraw the m_pack, discard pile, the bases and the foundations
void Game::Redraw(wxDC& dc)
{
int i;
m_pack->Redraw(dc);
m_discard->Redraw(dc);
for (i = 0; i < 8; i++)
{
m_foundations[i]->Redraw(dc);
}
for (i = 0; i < 10; i++)
{
m_bases[i]->Redraw(dc);
}
DisplayScore(dc);
if (m_bmap == 0)
{
m_bmap = new wxBitmap(CardWidth, CardHeight);
m_bmapCard = new wxBitmap(CardWidth, CardHeight);
// Initialise the card bitmap to the background colour
wxMemoryDC memoryDC;
memoryDC.SelectObject(*m_bmapCard);
memoryDC.SetPen( *wxTRANSPARENT_PEN );
memoryDC.SetBrush(FortyApp::BackgroundBrush());
memoryDC.DrawRectangle(0, 0, CardWidth, CardHeight);
memoryDC.SelectObject(*m_bmap);
memoryDC.DrawRectangle(0, 0, CardWidth, CardHeight);
memoryDC.SelectObject(wxNullBitmap);
}
}
// Test to see if the point (x, y) is over the top card of one of the piles
// Returns pointer to the pile, or 0 if (x, y) is not over a pile
// or the pile is empty
Pile* Game::WhichPile(int x, int y)
{
if (m_pack->GetCard(x, y) &&
m_pack->GetCard(x, y) == m_pack->GetTopCard())
{
return m_pack;
}
if (m_discard->GetCard(x, y) &&
m_discard->GetCard(x, y) == m_discard->GetTopCard())
{
return m_discard;
}
int i;
for (i = 0; i < 8; i++)
{
if (m_foundations[i]->GetCard(x, y) &&
m_foundations[i]->GetCard(x, y) == m_foundations[i]->GetTopCard())
{
return m_foundations[i];
}
}
for (i = 0; i < 10; i++)
{
if (m_bases[i]->GetCard(x, y) &&
m_bases[i]->GetCard(x, y) == m_bases[i]->GetTopCard())
{
return m_bases[i];
}
}
return 0;
}
// Left button is pressed - if cursor is over the m_pack then deal a card
// otherwise if it is over a card pick it up ready to be dragged - see MouseMove()
bool Game::LButtonDown(wxDC& dc, int x, int y)
{
m_srcPile = WhichPile(x, y);
if (m_srcPile == m_pack)
{
Card* card = m_pack->RemoveTopCard();
if (card)
{
m_pack->Redraw(dc);
card->TurnCard(faceup);
m_discard->AddCard(dc, card);
DoMove(dc, m_pack, m_discard);
}
m_srcPile = 0;
}
else if (m_srcPile)
{
m_srcPile->GetTopCardPos(m_xPos, m_yPos);
m_xOffset = m_xPos - x;
m_yOffset = m_yPos - y;
// Copy the area under the card
// Initialise the card bitmap to the background colour
{
wxMemoryDC memoryDC;
memoryDC.SelectObject(*m_bmap);
m_liftedCard = m_srcPile->RemoveTopCard(memoryDC, m_xPos, m_yPos);
}
// Draw the card in card bitmap ready for blitting onto
// the screen
{
wxMemoryDC memoryDC;
memoryDC.SelectObject(*m_bmapCard);
m_liftedCard->Draw(memoryDC, 0, 0);
}
}
return m_srcPile != 0;
}
// Called when the left button is double clicked
// If a card is under the pointer and it can move elsewhere then move it.
// Move onto a foundation as first choice, a populated base as second and
// an empty base as third choice.
// NB Cards in the m_pack cannot be moved in this way - they aren't in play
// yet
void Game::LButtonDblClk(wxDC& dc, int x, int y)
{
Pile* pile = WhichPile(x, y);
if (!pile) return;
// Double click on m_pack is the same as left button down
if (pile == m_pack)
{
LButtonDown(dc, x, y);
}
else
{
Card* card = pile->GetTopCard();
if (card)
{
int i;
// if the card is an ace then try to place it next
// to an ace of the same suit
if (card->GetPipValue() == 1)
{
for(i = 0; i < 4; i++)
{
Card* m_topCard = m_foundations[i]->GetTopCard();
if ( m_topCard )
{
if (m_topCard->GetSuit() == card->GetSuit() &&
m_foundations[i + 4] != pile &&
m_foundations[i + 4]->GetTopCard() == 0)
{
pile->RemoveTopCard(dc);
m_foundations[i + 4]->AddCard(dc, card);
DoMove(dc, pile, m_foundations[i + 4]);
return;
}
}
}
}
// try to place the card on a foundation
for(i = 0; i < 8; i++)
{
if (m_foundations[i]->AcceptCard(card) && m_foundations[i] != pile)
{
pile->RemoveTopCard(dc);
m_foundations[i]->AddCard(dc, card);
DoMove(dc, pile, m_foundations[i]);
return;
}
}
// try to place the card on a populated base
for(i = 0; i < 10; i++)
{
if (m_bases[i]->AcceptCard(card) &&
m_bases[i] != pile &&
m_bases[i]->GetTopCard())
{
pile->RemoveTopCard(dc);
m_bases[i]->AddCard(dc, card);
DoMove(dc, pile, m_bases[i]);
return;
}
}
// try to place the card on any base
for(i = 0; i < 10; i++)
{
if (m_bases[i]->AcceptCard(card) && m_bases[i] != pile)
{
pile->RemoveTopCard(dc);
m_bases[i]->AddCard(dc, card);
DoMove(dc, pile, m_bases[i]);
return;
}
}
}
}
}
// Test to see whether the game has been won:
// i.e. m_pack, discard and bases are empty
bool Game::HaveYouWon()
{
if (m_pack->GetTopCard()) return FALSE;
if (m_discard->GetTopCard()) return FALSE;
for(int i = 0; i < 10; i++)
{
if (m_bases[i]->GetTopCard()) return FALSE;
}
m_numWins++;
m_totalScore += m_currentScore;
m_currentScore = 0;
return TRUE;
}
// See whether the card under the cursor can be moved somewhere else
// Returns TRUE if it can be moved, FALSE otherwise
bool Game::CanYouGo(int x, int y)
{
Pile* pile = WhichPile(x, y);
if (pile && pile != m_pack)
{
Card* card = pile->GetTopCard();
if (card)
{
int i;
for(i = 0; i < 8; i++)
{
if (m_foundations[i]->AcceptCard(card) && m_foundations[i] != pile)
{
return TRUE;
}
}
for(i = 0; i < 10; i++)
{
if (m_bases[i]->GetTopCard() &&
m_bases[i]->AcceptCard(card) &&
m_bases[i] != pile)
{
return TRUE;
}
}
}
}
return FALSE;
}
// Called when the left button is released after dragging a card
// Scan the piles to see if this card overlaps a pile and can be added
// to the pile. If the card overlaps more than one pile on which it can be placed
// then put it on the nearest pile.
void Game::LButtonUp(wxDC& dc, int x, int y)
{
if (m_srcPile)
{
// work out the position of the dragged card
x += m_xOffset;
y += m_yOffset;
Pile* nearestPile = 0;
int distance = (CardHeight + CardWidth) * (CardHeight + CardWidth);
// find the nearest pile which will accept the card
int i;
for (i = 0; i < 8; i++)
{
if (DropCard(x, y, m_foundations[i], m_liftedCard))
{
if (m_foundations[i]->CalcDistance(x, y) < distance)
{
nearestPile = m_foundations[i];
distance = nearestPile->CalcDistance(x, y);
}
}
}
for (i = 0; i < 10; i++)
{
if (DropCard(x, y, m_bases[i], m_liftedCard))
{
if (m_bases[i]->CalcDistance(x, y) < distance)
{
nearestPile = m_bases[i];
distance = nearestPile->CalcDistance(x, y);
}
}
}
// Restore the area under the card
wxMemoryDC memoryDC;
memoryDC.SelectObject(*m_bmap);
dc.Blit(m_xPos, m_yPos, CardWidth, CardHeight,
&memoryDC, 0, 0, wxCOPY);
// Draw the card in its new position
if (nearestPile)
{
// Add to new pile
nearestPile->AddCard(dc, m_liftedCard);
if (nearestPile != m_srcPile)
{
DoMove(dc, m_srcPile, nearestPile);
}
}
else
{
// Return card to src pile
m_srcPile->AddCard(dc, m_liftedCard);
}
m_srcPile = 0;
m_liftedCard = 0;
}
}
bool Game::DropCard(int x, int y, Pile* pile, Card* card)
{
bool retval = FALSE;
if (pile->Overlap(x, y))
{
if (pile->AcceptCard(card))
{
retval = TRUE;
}
}
return retval;
}
void Game::MouseMove(wxDC& dc, int mx, int my)
{
if (m_liftedCard)
{
wxMemoryDC memoryDC;
memoryDC.SelectObject(*m_bmap);
int dx = mx + m_xOffset - m_xPos;
int dy = my + m_yOffset - m_yPos;
if (abs(dx) >= CardWidth || abs(dy) >= CardHeight)
{
// Restore the area under the card
dc.Blit(m_xPos, m_yPos, CardWidth, CardHeight,
&memoryDC, 0, 0, wxCOPY);
// Copy the area under the card in the new position
memoryDC.Blit(0, 0, CardWidth, CardHeight,
&dc, m_xPos + dx, m_yPos + dy, wxCOPY);
}
else if (dx >= 0)
{
// dx >= 0
dc.Blit(m_xPos, m_yPos, dx, CardHeight, &memoryDC, 0, 0, wxCOPY);
if (dy >= 0)
{
// dy >= 0
dc.Blit(m_xPos + dx, m_yPos, CardWidth - dx, dy, &memoryDC, dx, 0, wxCOPY);
memoryDC.Blit(0, 0, CardWidth - dx, CardHeight - dy,
&memoryDC, dx, dy, wxCOPY);
memoryDC.Blit(0, CardHeight - dy, CardWidth - dx, dy,
&dc, m_xPos + dx, m_yPos + CardHeight, wxCOPY);
}
else
{
// dy < 0
dc.Blit(m_xPos + dx, m_yPos + dy + CardHeight, CardWidth - dx, -dy,
&memoryDC, dx, CardHeight + dy, wxCOPY);
memoryDC.Blit(0, -dy, CardWidth - dx, CardHeight + dy,
&memoryDC, dx, 0, wxCOPY);
memoryDC.Blit(0, 0, CardWidth - dx, -dy,
&dc, m_xPos + dx, m_yPos + dy, wxCOPY);
}
memoryDC.Blit(CardWidth - dx, 0, dx, CardHeight,
&dc, m_xPos + CardWidth, m_yPos + dy, wxCOPY);
}
else
{
// dx < 0
dc.Blit(m_xPos + CardWidth + dx, m_yPos, -dx, CardHeight,
&memoryDC, CardWidth + dx, 0, wxCOPY);
if (dy >= 0)
{
dc.Blit(m_xPos, m_yPos, CardWidth + dx, dy, &memoryDC, 0, 0, wxCOPY);
memoryDC.Blit(-dx, 0, CardWidth + dx, CardHeight - dy,
&memoryDC, 0, dy, wxCOPY);
memoryDC.Blit(-dx, CardHeight - dy, CardWidth + dx, dy,
&dc, m_xPos, m_yPos + CardHeight, wxCOPY);
}
else
{
// dy < 0
dc.Blit(m_xPos, m_yPos + CardHeight + dy, CardWidth + dx, -dy,
&memoryDC, 0, CardHeight + dy, wxCOPY);
memoryDC.Blit(-dx, -dy, CardWidth + dx, CardHeight + dy,
&memoryDC, 0, 0, wxCOPY);
memoryDC.Blit(-dx, 0, CardWidth + dx, -dy,
&dc, m_xPos, m_yPos + dy, wxCOPY);
}
memoryDC.Blit(0, 0, -dx, CardHeight,
&dc, m_xPos + dx, m_yPos + dy, wxCOPY);
}
m_xPos += dx;
m_yPos += dy;
// draw the card in its new position
memoryDC.SelectObject(*m_bmapCard);
dc.Blit(m_xPos, m_yPos, CardWidth, CardHeight,
&memoryDC, 0, 0, wxCOPY);
}
}
//----------------------------------------------//
// The Pack class: holds the two decks of cards //
//----------------------------------------------//
Pack::Pack(int x, int y) : Pile(x, y, 0, 0)
{
for (m_topCard = 0; m_topCard < NumCards; m_topCard++)
{
m_cards[m_topCard] = new Card(1 + m_topCard / 2, facedown);
}
m_topCard = NumCards - 1;
}
void Pack::Shuffle()
{
Card* temp[NumCards];
int i;
// Don't try to shuffle an empty m_pack!
if (m_topCard < 0) return;
// Copy the cards into a temporary array. Start by clearing
// the array and then copy the card into a random position.
// If the position is occupied then find the next lower position.
for (i = 0; i <= m_topCard; i++)
{
temp[i] = 0;
}
for (i = 0; i <= m_topCard; i++)
{
int pos = rand() % (m_topCard + 1);
while (temp[pos])
{
pos--;
if (pos < 0) pos = m_topCard;
}
m_cards[i]->TurnCard(facedown);
temp[pos] = m_cards[i];
m_cards[i] = 0;
}
// Copy each card back into the m_pack in a random
// position. If position is occupied then find nearest
// unoccupied position after the random position.
for (i = 0; i <= m_topCard; i++)
{
int pos = rand() % (m_topCard + 1);
while (m_cards[pos])
{
pos++;
if (pos > m_topCard) pos = 0;
}
m_cards[pos] = temp[i];
}
}
void Pack::Redraw(wxDC& dc)
{
Pile::Redraw(dc);
char str[10];
sprintf(str, "%d ", m_topCard + 1);
dc.SetBackgroundMode( wxSOLID );
dc.SetTextBackground(FortyApp::BackgroundColour());
dc.SetTextForeground(FortyApp::TextColour());
dc.DrawText(str, m_x + CardWidth + 5, m_y + CardHeight / 2);
}
void Pack::AddCard(Card* card)
{
if (card == m_cards[m_topCard + 1])
{
m_topCard++;
}
else
{
wxMessageBox("Pack::AddCard() Undo error", "Forty Thieves: Warning",
wxOK | wxICON_EXCLAMATION);
}
card->TurnCard(facedown);
}
Pack::~Pack()
{
for (m_topCard = 0; m_topCard < NumCards; m_topCard++)
{
delete m_cards[m_topCard];
}
};
//------------------------------------------------------//
// The Base class: holds the initial pile of four cards //
//------------------------------------------------------//
Base::Base(int x, int y) : Pile(x, y, 0, 12)
{
m_topCard = -1;
}
bool Base::AcceptCard(Card* card)
{
bool retval = FALSE;
if (m_topCard >= 0)
{
if (m_cards[m_topCard]->GetSuit() == card->GetSuit() &&
m_cards[m_topCard]->GetPipValue() - 1 == card->GetPipValue())
{
retval = TRUE;
}
}
else
{
// pile is empty - ACCEPT
retval = TRUE;
}
return retval;
}
Base::~Base()
{
// nothing special at the moment
};
//----------------------------------------------------------------//
// The Foundation class: holds the cards built up from the ace... //
//----------------------------------------------------------------//
Foundation::Foundation(int x, int y) : Pile(x, y, 0, 0)
{
m_topCard = -1;
}
bool Foundation::AcceptCard(Card* card)
{
bool retval = FALSE;
if (m_topCard >= 0)
{
if (m_cards[m_topCard]->GetSuit() == card->GetSuit() &&
m_cards[m_topCard]->GetPipValue() + 1 == card->GetPipValue())
{
retval = TRUE;
}
}
else if (card->GetPipValue() == 1)
{
// It's an ace and the pile is empty - ACCEPT
retval = TRUE;
}
return retval;
}
Foundation::~Foundation()
{
// nothing special at the moment
};
//----------------------------------------------------//
// The Discard class: holds cards dealt from the m_pack //
//----------------------------------------------------//
Discard::Discard(int x, int y) : Pile(x, y, 19, 0)
{
m_topCard = -1;
}
void Discard::Redraw(wxDC& dc)
{
if (m_topCard >= 0)
{
if (m_dx == 0 && m_dy == 0)
{
m_cards[m_topCard]->Draw(dc, m_x, m_y);
}
else
{
int x = m_x;
int y = m_y;
for (int i = 0; i <= m_topCard; i++)
{
m_cards[i]->Draw(dc, x, y);
x += m_dx;
y += m_dy;
if (i == 31)
{
x = m_x;
y = m_y + CardHeight / 3;
}
}
}
}
else
{
Card::DrawNullCard(dc, m_x, m_y);
}
}
void Discard::GetTopCardPos(int& x, int& y)
{
if (m_topCard < 0)
{
x = m_x;
y = m_y;
}
else if (m_topCard > 31)
{
x = m_x + m_dx * (m_topCard - 32);
y = m_y + CardHeight / 3;
}
else
{
x = m_x + m_dx * m_topCard;
y = m_y;
}
}
Card* Discard::RemoveTopCard(wxDC& dc, int m_xOffset, int m_yOffset)
{
Card* card;
if (m_topCard <= 31)
{
card = Pile::RemoveTopCard(dc, m_xOffset, m_yOffset);
}
else
{
int topX, topY, x, y;
GetTopCardPos(topX, topY);
card = Pile::RemoveTopCard();
card->Erase(dc, topX - m_xOffset, topY - m_yOffset);
GetTopCardPos(x, y);
dc.SetClippingRegion(topX - m_xOffset, topY - m_yOffset,
CardWidth, CardHeight);
for (int i = m_topCard - 31; i <= m_topCard - 31 + CardWidth / m_dx; i++)
{
m_cards[i]->Draw(dc, m_x - m_xOffset + i * m_dx, m_y - m_yOffset);
}
if (m_topCard > 31)
{
m_cards[m_topCard]->Draw(dc, topX - m_xOffset - m_dx, topY - m_yOffset);
}
dc.DestroyClippingRegion();
}
return card;
}
Discard::~Discard()
{
// nothing special at the moment
};

View File

@@ -1,135 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: game.h
// Purpose: Forty Thieves patience game
// Author: Chris Breeze
// Modified by:
// Created: 21/07/97
// RCS-ID: $Id$
// Copyright: (c) 1993-1998 Chris Breeze
// Licence: wxWindows licence
//---------------------------------------------------------------------------
// Last modified: 22nd July 1998 - ported to wxWindows 2.0
/////////////////////////////////////////////////////////////////////////////
#ifndef _GAME_H_
#define _GAME_H_
#include "card.h"
#include "pile.h"
const int MaxMoves = 800;
//---------------------------------------//
// A class which holds the pack of cards //
//---------------------------------------//
class Pack : public Pile {
public:
Pack(int x, int y);
~Pack();
void Redraw(wxDC& dc);
void ResetPile() { m_topCard = NumCards - 1; }
void Shuffle();
void AddCard(Card* card); // Add card
void AddCard(wxDC& dc, Card* card) { AddCard(card); Redraw(dc); }
};
//----------------------------------------------------------//
// A class which holds a base i.e. the initial 10 x 4 cards //
//----------------------------------------------------------//
class Base : public Pile {
public:
Base(int x, int y);
~Base();
bool AcceptCard(Card* card);
};
//----------------------------------------------------//
// A class which holds a foundation i.e. Ace, 2, 3... //
//----------------------------------------------------//
class Foundation : public Pile {
public:
Foundation(int x, int y);
~Foundation();
bool AcceptCard(Card* card);
};
//--------------------------------------//
// A class which holds the discard pile //
//--------------------------------------//
class Discard : public Pile {
public:
Discard(int x, int y);
~Discard();
void Redraw(wxDC& dc);
void GetTopCardPos(int& x, int& y);
Card* RemoveTopCard(wxDC& dc, int m_xOffset, int m_yOffset);
};
class Game {
public:
Game(int wins, int games, int score);
virtual ~Game();
void NewPlayer(int wins, int games, int score);
void Deal(); // Shuffle and deal a new game
bool CanYouGo(int x, int y); // can card under (x,y) go somewhere?
bool HaveYouWon(); // have you won the game?
void Undo(wxDC& dc); // Undo the last go
void Redo(wxDC& dc); // Redo the last go
void Redraw(wxDC& dc);
void DisplayScore(wxDC& dc);
bool LButtonDown(wxDC& dc, int mx, int my); //
void LButtonUp(wxDC& dc, int mx, int my);
void LButtonDblClk(wxDC& dc, int mx, int my);
void MouseMove(wxDC& dc, int mx, int my);
int GetNumWins() const { return m_numWins; }
int GetNumGames() const { return m_numGames; }
int GetScore() const { return m_currentScore + m_totalScore; }
bool InPlay() const { return m_inPlay; }
private:
bool DropCard(int x, int y, Pile* pile, Card* card);
// can the card at (x, y) be dropped on the pile?
Pile* WhichPile(int x, int y); // which pile is (x, y) over?
void DoMove(wxDC& dc, Pile* src, Pile* dest);
bool m_inPlay; // flag indicating that the game has started
// undo buffer
struct {
Pile* src;
Pile* dest;
} m_moves[MaxMoves];
int m_moveIndex; // current position in undo/redo buffer
int m_redoIndex; // max move index available for redo
// the various piles of cards
Pack* m_pack;
Discard* m_discard;
Base* m_bases[10];
Foundation* m_foundations[8];
// variables to do with dragging cards
Pile* m_srcPile;
Card* m_liftedCard;
int m_xPos, m_yPos; // current coords of card being dragged
int m_xOffset, m_yOffset; // card/mouse offset when dragging a card
wxBitmap* m_bmap;
wxBitmap* m_bmapCard;
// variables to do with scoring
int m_numGames;
int m_numWins;
int m_totalScore;
int m_currentScore;
};
#endif // _GAME_H_

Binary file not shown.

View File

@@ -1,16 +0,0 @@
#
# File: makefile.b32
# Author: Julian Smart
# Created: 1999
# Updated:
# Copyright:
#
# Makefile : Builds sample for 32-bit BC++
WXDIR = $(WXWIN)
TARGET=forty
OBJECTS = $(TARGET).obj canvas.obj card.obj game.obj pile.obj playerdg.obj scoredg.obj scorefil.obj
!include $(WXDIR)\src\makeprog.b32

View File

@@ -1,19 +0,0 @@
#
# File: makefile.bcc
# Author: Julian Smart
# Created: 1998
# Updated:
#
# Builds a BC++ 16-bit sample
!if "$(WXWIN)" == ""
!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx
!endif
WXDIR = $(WXWIN)
TARGET=forty
OBJECTS=$(TARGET).obj canvas.obj card.obj game.obj pile.obj playerdg.obj scoredg.obj scorefil.obj
!include $(WXDIR)\src\makeprog.bcc

View File

@@ -1,17 +0,0 @@
#
# File: makefile.dos
# Author: Julian Smart
# Created: 1998
# Updated:
#
# Makefile : Builds 16-bit sample, VC++ 1.5
# Use FINAL=1 argument to nmake to build final version with no debugging
# info
WXDIR = $(WXWIN)
TARGET=forty
OBJECTS = $(TARGET).obj canvas.obj card.obj game.obj pile.obj playerdg.obj scoredg.obj scorefil.obj
!include $(WXDIR)\src\makeprog.msc

View File

@@ -1,16 +0,0 @@
#
# File: makefile.g95
# Author: Julian Smart
# Created: 1999
# Updated:
# Copyright: (c) Julian Smart, 1999
#
# Makefile for wxWindows sample (Cygwin/Mingw32).
WXDIR = ../..
TARGET=forty
OBJECTS = $(TARGET).o canvas.o card.o game.o pile.o playerdg.o scoredg.o scorefil.o
include $(WXDIR)/src/makeprog.g95

View File

@@ -1,35 +0,0 @@
#
# File: Makefile for samples
# Author: Robert Roebling
# Created: 1999
# Updated:
# Copyright: (c) 1998 Robert Roebling
#
# This makefile requires a Unix version of wxWindows
# to be installed on your system. This is most often
# done typing "make install" when using the complete
# sources of wxWindows or by installing the two
# RPM packages wxGTK.XXX.rpm and wxGTK-devel.XXX.rpm
# under Linux.
#
CC = g++
PROGRAM = forty
OBJECTS = $(PROGRAM).o canvas.o card.o game.o pile.o playerdg.o scoredg.o scorefil.o
# implementation
.SUFFIXES: .o .cpp
.cpp.o :
$(CC) -c `wx-config --cflags` -o $@ $<
all: $(PROGRAM)
$(PROGRAM): $(OBJECTS)
$(CC) -o $(PROGRAM) $(OBJECTS) `wx-config --libs`
clean:
rm -f *.o $(PROGRAM)

View File

@@ -1,18 +0,0 @@
#
# File: makefile.vc
# Author: Julian Smart
# Created: 1999
# Updated:
# Copyright: (c) Julian Smart
#
# Makefile : Builds sample (VC++, WIN32)
# Use FINAL=1 argument to nmake to build final version with no debug info.
# Set WXDIR for your system
WXDIR = $(WXWIN)
PROGRAM=forty
OBJECTS = $(PROGRAM).obj card.obj canvas.obj game.obj pile.obj playerdg.obj scoredg.obj scorefil.obj
!include $(WXDIR)\src\makeprog.vc

View File

@@ -1,15 +0,0 @@
#
# Makefile for WATCOM
#
# Created by Julian Smart, January 1999
#
#
WXDIR = $(%WXWIN)
PROGRAM = forty
OBJECTS = $(PROGRAM).obj canvas.obj card.obj game.obj pile.obj playerdg.obj scoredg.obj scorefil.obj
!include $(WXDIR)\src\makeprog.wat

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -1,60 +0,0 @@
/* XPM */
static char *Pictures[] = {
/* width height num_colors chars_per_pixel */
" 120 45 8 1",
/* colors */
". c #000000",
"# c #c0c0c0",
"a c #808080",
"b c #ff0000",
"c c #ffff00",
"d c #0000ff",
"e c #00ffff",
"f c #ffffff",
/* pixels */
"........................................................................................................................",
".fff.fffffff.bb.bb.bb.b.fffffffffffffff..fffffffffff..f..bbc.cc..ffffffffffffff..fff.ffffff.bbccccbcccccbb.ffffffffffff.",
".ff.c.fffffff.bbbbbbbb.ffffffffffffffff..fff.ffffff..f.ff.bbc..c.ffffffffffffff..ff.a.ffffff.bbccbbbcccbb.fffffffffffff.",
".f.cbc.fffffff........fffffffffffffffff..ff.b.fffff.f.ffff.bb..c..fffffffffffff..f.#af.ffffff.bbbbbbbbbb.ffffffffffffff.",
".f.cbc.ffffff.fff.c.c.fffffffffffffffff..ff.b.fffff..f.ff.f.bbc.c.fffffffffffff..f.#af.ffffff............ffffffffffffff.",
".ff.c.fffffff.f..f.c.c.ffffffffffffffff..fff.ffffff.f..ff..f.bb..ffffffffffffff..f.#af.ffffff.a..f.fff.f.ffffffffffffff.",
".f.cbc.ffffff.f.ff.c.c.ffffffffffffffff..ff.c.fffff.fff.ffff..b.fffffffffffffff..f.#af.ffffff.a.f..fff..f.fffffffffffff.",
".f.cbc.fffff.fffff.c.c.ffffffffffffffff..ff.c.fffff.fff.ffff....fffffffffffffff..f.#af.ffffff.a.ffff.ffff.fffffffffffff.",
".ff.c.fffff.ffffff.c.c.ffffffffffffffff..ff.c.fffff.fff..fff.b..fffffffffffffff..f.#af.ffffff.a.fffff.fff.fffffffffffff.",
".f.cbc.ffff..###ff.c.c.ffffffffffffffff..ff.c.fffff.ffffffff..b.fffffffffffffff..f.#af.ffffff.a.ffff..fff.fffffffffffff.",
".f.cbc.ffffff...ff.c.c.ffffffffffffffff..fff.ffffff.ffbbbbff.f...ffffffffffffff..f.#af.fff..f.a..ffffffff.fffffffffffff.",
".ff....ffffff.ffff.c.c.ffffffffffffffff..ff....fffff.ffffff.f.f...fffffffffffff..f.#af.fff....a...f....f..fffffffffffff.",
".f.ffff.fffff.fffff.c.c.fffffffffffffff..f.ffff.ffff..ffff.f.f.f..fffffffffffff..f.#af.ffff.aaa.a..f.f.f...ffffffffffff.",
".f....ff.f.................ffffffffffff..f....ff.f.................ffffffffffff..f.#af.fff...................ffffffffff.",
".ff.fff....eddddddddddddddd.....fffffff..f.fffff...ffffffffff.cdbb......fffffff..f.#af.....c.cc..bbbbbb..c......fffffff.",
".ff....bbbd.dbcbbbbbbbbbcbdedbbb....fff..f....f.bc.fdddddddf.cdbb.d..f.....ffff..f.#af..cbbcc.cc..bbbb..c......b....fff.",
"...bbbb...deedbbcbbcbbcbbbd.dbb.bbbb.....f.fff.fbbc.fffffff.cdbb.d..f..dd.c..ff..........cbbcc.cc......c.....bbbdfff....",
".bb....c.ccdeedbbbcccbbbbdedbb.bbb..cc...ff...c.fbbc.fdddf.cdbb.d..f..dd.cccd.f...ffff...dcbbcc.cc....cc...ddbbbdfddddf.",
"...cc.c....bd.dbcbbcbbcbbd.db.bb..cbc.b..ff.dccc.bbc.ffff.cdbb.dd..ff...cdcdfd.........f.dcbbacc.cccccc..fdcbdbbdffddff.",
"..c....bbbbbdeddddddddddddedbb..cccc.bb..f..fdcdc.bbc.ff.cdbb.dddd..ff.cccdffdc...ffff.f.dcbbcacc.c...c.fdccccdbdffddff.",
"...bb.bb....bbbbbbbbbbbbbbbb..ccbbc.bb....ffdfdccc.bbc..cdbb..........cccdfdfbc........f.dcbbccacc.ccb.fdddbdbdbddffffd.",
".bbb.b..ccc.d.d.d.d.dd.d.d.d.cccbb.bb.b..cbdfffdccc.fdfdfdfdfdfdfdfd.cccdfffbbc...ffff.f.dcbbacca.bcdcc.caddddcddff..ff.",
".bb.bb.ccbcd.d.d.d.ff.d.d.d.dcbcc.bb.bb..cbbddddcdc.dbdbdbdbdbdbdbdb.cdcddddbbc.........ddcddaacc.cdddc.ccaddcdd........",
".b.bb.bbccc.d.d.d.dd.d.d.d.d.ccc.bb.bbb..cbbfffdccc.fdfdfdfdfdfdfdfd.cccdfffdbc..ff..ffddcddddaac.ccdcb.accbbcd.f.ffff..",
"..bb.cbbcc..bbbbbbbbbbbbbbbb....b..bb....cbfdfdccc..........bbdc..cbb.cccdfdff...dffffddcdbdbddaac.bcc.ccacbbcd.f.......",
".bb.cccc..bbdeddddddddddddedbbbbb....c...cdffdccc.ff..dddd.bbdc.ff.cbb.cdcdff.f..ffddffdbdccccdfa.c...c.ccabbcd.f.ffff..",
".b.cbc..bb.bd.dbbcbbcbbcbd.db....c.cc.....dfdcdc...ff..dd.bbdc.ffff.cbb.cccd.ff..ffddffdbbdbcdff..cccccc.ccbbcd.f.......",
"..cc..bbb.bbdedbbbbcccbbbdeedcc.c....bb..f.dccc.dd..f..d.bbdc.fdddf.cbbf.c...ff..fddddfdbbbddf...cc....cc.cbbcd...ffff..",
"....bbbb.bbd.dbbbcbbcbbcbbdeed...bbbb....ff..c.dd..f..d.bbdc.fffffff.cbbf.fff.f.....fffdbbb......c......cc.cbbc.........",
".fff....bbbdedbcbbbbbbbbbcbd.dbbb....ff..ffff.....f..d.bbdc.fdddddddf.cb.f....f..fff....bb......c..bbbb..cc.cbbc..fa#.f.",
".fffffff.....ddddddddddddddde....fff.ff..fffffff......bbdc.ffffffffff...fffff.f..fffffff.......c..bbbbbb..cc......fa#.f.",
".ffffffffffff.................f.ff....f..ffffffffffff.................f.ff....f..ffffffffff...................fff.fa#.f.",
".fffffffffffffff.c.c.fffff.fffff.ffff.f..fffffffffffff..f.f.f.ffff..ffff.ffff.f..ffffffffffff...f.f.f..a.aaa.ffff.fa#.f.",
".ffffffffffffffff.c.c.ffff.ffffff....ff..fffffffffffff...f.f.ffffff.fffff....ff..fffffffffffff..f....f...a....fff.fa#.f.",
".ffffffffffffffff.c.c.ff...ffffff.cbc.f..ffffffffffffff...f.ffbbbbff.ffffff.fff..fffffffffffff.ffffffff..a.f..fff.fa#.f.",
".ffffffffffffffff.c.c.ff###..ffff.cbc.f..fffffffffffffff.b..ffffffff.fffff.c.ff..fffffffffffff.fff..ffff.a.ffffff.fa#.f.",
".ffffffffffffffff.c.c.ffffff.fffff.c.ff..fffffffffffffff..b.fff..fff.fffff.c.ff..fffffffffffff.fff.fffff.a.ffffff.fa#.f.",
".ffffffffffffffff.c.c.fffff.fffff.cbc.f..fffffffffffffff....ffff.fff.fffff.c.ff..fffffffffffff.ffff.ffff.a.ffffff.fa#.f.",
".ffffffffffffffff.c.c.ff.f.ffffff.cbc.f..fffffffffffffff.b..ffff.fff.fffff.c.ff..fffffffffffff.f..fff..f.a.ffffff.fa#.f.",
".ffffffffffffffff.c.c.f..f.fffffff.c.ff..ffffffffffffff..bb.f..ff..f.ffffff.fff..ffffffffffffff.f.fff.ff.a.ffffff.fa#.f.",
".fffffffffffffffff.c.c.fff.ffffff.cbc.f..fffffffffffff.c.cbb.f.ff.f..fffff.b.ff..ffffffffffffff............ffffff.fa#.f.",
".fffffffffffffffff........fffffff.cbc.f..fffffffffffff..c..bb.ffff.f.fffff.b.ff..ffffffffffffff.bbbbbbbbbb.ffffff.fa#.f.",
".ffffffffffffffff.bbbbbbbb.fffffff.c.ff..ffffffffffffff.c..cbb.ff.f..ffffff.fff..fffffffffffff.bbcccbbbccbb.ffffff.a.ff.",
".fffffffffffffff.b.bb.bb.bb.fffffff.fff..ffffffffffffff..cc.cbb..f..fffffffffff..ffffffffffff.bbcccccbccccbb.ffffff.fff.",
"........................................................................................................................"
};

View File

@@ -1,305 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: pile.cpp
// Purpose: Forty Thieves patience game
// Author: Chris Breeze
// Modified by:
// Created: 21/07/97
// RCS-ID: $Id$
// Copyright: (c) 1993-1998 Chris Breeze
// Licence: wxWindows licence
//---------------------------------------------------------------------------
// Last modified: 22nd July 1998 - ported to wxWindows 2.0
/////////////////////////////////////////////////////////////////////////////
//+-------------------------------------------------------------+
//| Description: |
//| The base class for holding piles of playing cards. |
//+-------------------------------------------------------------+
#ifdef __GNUG__
#pragma implementation
#pragma interface
#endif
// For compilers that support precompilation, includes "wx/wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif
#ifdef __GNUG__
#pragma implementation
#endif
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <string.h>
#include "card.h"
#include "pile.h"
#include "wx/app.h"
//+-------------------------------------------------------------+
//| Pile::Pile() |
//+-------------------------------------------------------------+
//| Description: |
//| Initialise the pile to be empty of cards. |
//+-------------------------------------------------------------+
Pile::Pile(int x, int y, int dx, int dy)
{
m_x = x;
m_y = y;
m_dx = dx;
m_dy = dy;
for (m_topCard = 0; m_topCard < NumCards; m_topCard++)
{
m_cards[m_topCard] = 0;
}
m_topCard = -1; // i.e. empty
}
//+-------------------------------------------------------------+
//| Pile::Redraw() |
//+-------------------------------------------------------------+
//| Description: |
//| Redraw the pile on the screen. If the pile is empty |
//| just draw a NULL card as a place holder for the pile. |
//| Otherwise draw the pile from the bottom up, starting |
//| at the origin of the pile, shifting each subsequent |
//| card by the pile's x and y offsets. |
//+-------------------------------------------------------------+
void Pile::Redraw(wxDC& dc )
{
wxWindow *frame = wxTheApp->GetTopWindow();
wxWindow *canvas = (wxWindow *) NULL;
if (frame)
{
wxNode *node = frame->GetChildren().First();
if (node) canvas = (wxWindow*)node->Data();
}
if (m_topCard >= 0)
{
if (m_dx == 0 && m_dy == 0)
{
if ((canvas) && (canvas->IsExposed(m_x,m_y,60,200)))
m_cards[m_topCard]->Draw(dc, m_x, m_y);
}
else
{
int x = m_x;
int y = m_y;
for (int i = 0; i <= m_topCard; i++)
{
if ((canvas) && (canvas->IsExposed(x,y,60,200)))
m_cards[i]->Draw(dc, x, y);
x += m_dx;
y += m_dy;
}
}
}
else
{
if ((canvas) && (canvas->IsExposed(m_x,m_y,60,200)))
Card::DrawNullCard(dc, m_x, m_y);
}
}
//+-------------------------------------------------------------+
//| Pile::GetTopCard() |
//+-------------------------------------------------------------+
//| Description: |
//| Return a pointer to the top card in the pile or NULL |
//| if the pile is empty. |
//| NB: Gets a copy of the card without removing it from the |
//| pile. |
//+-------------------------------------------------------------+
Card* Pile::GetTopCard()
{
Card* card = 0;
if (m_topCard >= 0)
{
card = m_cards[m_topCard];
}
return card;
}
//+-------------------------------------------------------------+
//| Pile::RemoveTopCard() |
//+-------------------------------------------------------------+
//| Description: |
//| If the pile is not empty, remove the top card from the |
//| pile and return the pointer to the removed card. |
//| If the pile is empty return a NULL pointer. |
//+-------------------------------------------------------------+
Card* Pile::RemoveTopCard()
{
Card* card = 0;
if (m_topCard >= 0)
{
card = m_cards[m_topCard--];
}
return card;
}
//+-------------------------------------------------------------+
//| Pile::RemoveTopCard() |
//+-------------------------------------------------------------+
//| Description: |
//| As RemoveTopCard() but also redraw the top of the pile |
//| after the card has been removed. |
//| NB: the offset allows for the redrawn area to be in a |
//| bitmap ready for 'dragging' cards acrosss the screen. |
//+-------------------------------------------------------------+
Card* Pile::RemoveTopCard(wxDC& dc, int xOffset, int yOffset)
{
int topX, topY, x, y;
GetTopCardPos(topX, topY);
Card* card = RemoveTopCard();
if (card)
{
card->Erase(dc, topX - xOffset, topY - yOffset);
GetTopCardPos(x, y);
if (m_topCard < 0)
{
Card::DrawNullCard(dc, x - xOffset, y - yOffset);
}
else
{
m_cards[m_topCard]->Draw(dc, x - xOffset, y - yOffset);
}
}
return card;
}
void Pile::GetTopCardPos(int& x, int& y)
{
if (m_topCard < 0)
{
x = m_x;
y = m_y;
}
else
{
x = m_x + m_dx * m_topCard;
y = m_y + m_dy * m_topCard;
}
}
void Pile::AddCard(Card* card)
{
if (m_topCard < -1) m_topCard = -1;
m_cards[++m_topCard] = card;
}
void Pile::AddCard(wxDC& dc, Card* card)
{
AddCard(card);
int x, y;
GetTopCardPos(x, y);
card->Draw(dc, x, y);
}
// Can the card leave this pile.
// If it is a member of the pile then the answer is yes.
// Derived classes may override this behaviour to incorporate
// the rules of the game
bool Pile::CanCardLeave(Card* card)
{
for (int i = 0; i <= m_topCard; i++)
{
if (card == m_cards[i]) return TRUE;
}
return FALSE;
}
// Calculate how far x, y is from top card in the pile
// Returns the square of the distance
int Pile::CalcDistance(int x, int y)
{
int cx, cy;
GetTopCardPos(cx, cy);
return ((cx - x) * (cx - x) + (cy - y) * (cy - y));
}
// Return the card at x, y. Check the top card first, then
// work down the pile. If a card is found then return a pointer
// to the card, otherwise return NULL
Card* Pile::GetCard(int x, int y)
{
int cardX;
int cardY;
GetTopCardPos(cardX, cardY);
for (int i = m_topCard; i >= 0; i--)
{
if (x >= cardX && x <= cardX + CardWidth &&
y >= cardY && y <= cardY + CardHeight)
{
return m_cards[i];
}
cardX -= m_dx;
cardY -= m_dy;
}
return 0;
}
// Return the position of the given card. If it is not a member of this pile
// return the origin of the pile.
void Pile::GetCardPos(Card* card, int& x, int& y)
{
x = m_x;
y = m_y;
for (int i = 0; i <= m_topCard; i++)
{
if (card == m_cards[i])
{
return;
}
x += m_dx;
y += m_dy;
}
// card not found in pile, return origin of pile
x = m_x;
y = m_y;
}
bool Pile::Overlap(int x, int y)
{
int cardX;
int cardY;
GetTopCardPos(cardX, cardY);
if (x >= cardX - CardWidth && x <= cardX + CardWidth &&
y >= cardY - CardHeight && y <= cardY + CardHeight)
{
return TRUE;
}
return FALSE;
}
Pile::~Pile()
{
// nothing special at the moment
}

View File

@@ -1,80 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: pile.h
// Purpose: Forty Thieves patience game
// Author: Chris Breeze
// Modified by:
// Created: 21/07/97
// RCS-ID: $Id$
// Copyright: (c) 1993-1998 Chris Breeze
// Licence: wxWindows licence
//---------------------------------------------------------------------------
// Last modified: 22nd July 1998 - ported to wxWindows 2.0
/////////////////////////////////////////////////////////////////////////////
//+-------------------------------------------------------------+
//| Description: |
//| The base class for holding piles of playing cards. |
//| This is the basic building block for card games. A pile |
//| has a position on the screen and an offset for each |
//| card placed on it e.g. a pack has no offset, but the |
//| discard pile may be fanned out across the screen. |
//| |
//| The pile knows how to draw itself, though this may be |
//| overridden if the default layout needs to be changed. |
//| One or more cards can be removed from the top of a pile, |
//| and single cards can be added to the top of a pile. |
//| Functions are provided which redraw the screen when |
//| cards are added or removed. |
//| |
//| Cards know which way up they are and how to draw |
//| themselves. Piles are lists of cards. Piles know which |
//| cards they contain and where they are to be drawn. |
//+-------------------------------------------------------------+
#ifndef _PILE_H_
#define _PILE_H_
#include "card.h"
const int NumCards = 2 * PackSize;
//----------------------------------------------------------------//
// A class defining a pile of cards with a position on the screen //
//----------------------------------------------------------------//
class Pile {
public:
Pile(int x, int y, int dx = 0, int dy = 0);
virtual ~Pile();
// General functions
virtual void ResetPile() { m_topCard = -1; }
virtual void Redraw(wxDC& pDC);
// Card query functions
virtual Card* GetCard(int x, int y); // Get pointer to card at x, y
Card* GetTopCard(); // Get pointer to top card
virtual void GetCardPos(Card* card, int& x, int& y);
// Get position of a card
virtual void GetTopCardPos(int& x, int& y);
// Get position of the top card
int GetNumCards() { return m_topCard + 1; } // Number of cards in pile
bool Overlap(int x, int y); // does card at x,y overlap the pile?
int CalcDistance(int x, int y); // calculates the square of the distance
// of a card at (x,y) from the top of the pile
// Functions removing one or more cards from the top of a pile
virtual bool CanCardLeave(Card* card);
Card* RemoveTopCard();
virtual Card* RemoveTopCard(wxDC& pDC, int xOffset = 0, int yOffset = 0);
// Functions to add a card to the top of a pile
virtual bool AcceptCard(Card*) { return FALSE; }
virtual void AddCard(Card* card); // Add card to top of pile
virtual void AddCard(wxDC& pDC, Card* card); // Add card + redraw it
protected:
int m_x, m_y; // Position of the pile on the screen
int m_dx, m_dy; // Offset when drawing the pile
Card* m_cards[NumCards]; // Array of cards in this pile
int m_topCard; // Array index of the top card
};
#endif // _PILE_H_

View File

@@ -1,190 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: playerdg.cpp
// Purpose: Forty Thieves patience game
// Author: Chris Breeze
// Modified by:
// Created: 21/07/97
// RCS-ID: $Id$
// Copyright: (c) 1993-1998 Chris Breeze
// Licence: wxWindows licence
//---------------------------------------------------------------------------
// Last modified: 22nd July 1998 - ported to wxWindows 2.0
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation
#pragma interface
#endif
// For compilers that support precompilation, includes "wx/wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif
#include "scorefil.h"
#include "playerdg.h"
const int ID_LISTBOX = 101;
BEGIN_EVENT_TABLE(PlayerSelectionDialog, wxDialog)
EVT_SIZE(PlayerSelectionDialog::OnSize)
EVT_BUTTON(wxID_OK, PlayerSelectionDialog::ButtonCallback)
EVT_BUTTON(wxID_CANCEL, PlayerSelectionDialog::ButtonCallback)
EVT_LISTBOX(ID_LISTBOX, PlayerSelectionDialog::SelectCallback)
EVT_CLOSE(PlayerSelectionDialog::OnCloseWindow)
END_EVENT_TABLE()
PlayerSelectionDialog::PlayerSelectionDialog(
wxWindow* parent,
ScoreFile* file
) :
wxDialog(parent, -1, "Player Selection",
wxDefaultPosition, wxSize(320, 200),
wxDIALOG_MODAL | wxDEFAULT_DIALOG_STYLE),
m_scoreFile(file)
{
// enable constraints
SetAutoLayout (TRUE);
wxStaticText* msg = new wxStaticText(this, -1, "Please select a name from the list");
wxListBox* list = new wxListBox(
this, ID_LISTBOX,
wxDefaultPosition, wxDefaultSize,
0, 0,
wxLB_SINGLE
);
wxArrayString players;
m_scoreFile->GetPlayerList(players);
for (unsigned int i = 0; i < players.Count(); i++)
{
list->Append(players[i]);
}
m_textField = new wxTextCtrl(this, -1, "", wxDefaultPosition, wxDefaultSize, 0);
m_OK = new wxButton(this, wxID_OK, "OK");
m_cancel = new wxButton(this, wxID_CANCEL, "Cancel");
wxLayoutConstraints* layout;
// Constrain the msg at the top of the window
layout = new wxLayoutConstraints;
layout->left.SameAs (this, wxLeft, 10);
layout->top.SameAs (this, wxTop, 10);
layout->height.AsIs();
layout->width.AsIs();
msg->SetConstraints(layout);
// Constrain the OK button
layout = new wxLayoutConstraints;
layout->left.SameAs (this, wxLeft, 10);
layout->bottom.SameAs (this, wxBottom, 10);
layout->height.AsIs();
layout->width.AsIs();
m_OK->SetConstraints(layout);
// Constrain the OK button
layout = new wxLayoutConstraints;
layout->left.RightOf (m_OK, 10);
layout->bottom.SameAs (this, wxBottom, 10);
layout->height.AsIs();
layout->width.AsIs();
m_cancel->SetConstraints(layout);
// Constrain the Name text entry field
layout = new wxLayoutConstraints;
layout->left.SameAs (this, wxLeft, 10);
layout->right.SameAs (this, wxRight, 10);
layout->bottom.SameAs (m_OK, wxTop, 10);
layout->height.AsIs();
m_textField->SetConstraints(layout);
// Constrain the list of players
layout = new wxLayoutConstraints;
layout->left.SameAs (this, wxLeft, 10);
layout->right.SameAs (this, wxRight, 10);
layout->top.Below (msg, 10);
layout->bottom.SameAs (m_textField, wxTop, 10);
list->SetConstraints(layout);
wxString prevPlayer = m_scoreFile->GetPreviousPlayer();
if (prevPlayer.Length() > 0)
{
list->SetStringSelection(prevPlayer);
m_textField->SetValue(prevPlayer);
}
Layout();
CentreOnParent();
}
PlayerSelectionDialog::~PlayerSelectionDialog()
{
}
void PlayerSelectionDialog::OnSize(wxSizeEvent& WXUNUSED(event))
{
Layout();
}
const wxString& PlayerSelectionDialog::GetPlayersName()
{
/*
m_player = "";
Show(TRUE);
*/
return m_player;
}
void PlayerSelectionDialog::OnCloseWindow(wxCloseEvent& event)
{
m_player = "";
EndModal(wxID_CANCEL);
}
void PlayerSelectionDialog::SelectCallback(wxCommandEvent& event)
{
if (event.GetEventType() == wxEVT_COMMAND_LISTBOX_SELECTED)
{
// if (event.IsSelection())
m_textField->SetValue(event.GetString());
}
}
void PlayerSelectionDialog::ButtonCallback(wxCommandEvent& event)
{
if (event.GetId() == wxID_OK)
{
wxString name = m_textField->GetValue();
if (!name.IsNull() && name.Length() > 0)
{
if (name.Contains('@'))
{
wxMessageBox("Names should not contain the '@' character", "Forty Thieves");
}
else
{
m_player = name;
EndModal(wxID_OK);
}
}
else
{
wxMessageBox("Please enter your name", "Forty Thieves");
}
}
else
{
m_player = "";
EndModal(wxID_CANCEL);
}
}

View File

@@ -1,41 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: playerdg.h
// Purpose: Forty Thieves patience game
// Author: Chris Breeze
// Modified by:
// Created: 21/07/97
// RCS-ID: $Id$
// Copyright: (c) 1993-1998 Chris Breeze
// Licence: wxWindows licence
//---------------------------------------------------------------------------
// Last modified: 22nd July 1998 - ported to wxWindows 2.0
/////////////////////////////////////////////////////////////////////////////
#ifndef _PLAYERDG_H_
#define _PLAYERDG_H_
class PlayerSelectionDialog : public wxDialog
{
public:
PlayerSelectionDialog(wxWindow* parent, ScoreFile* file);
virtual ~PlayerSelectionDialog();
const wxString& GetPlayersName();
void ButtonCallback(wxCommandEvent& event);
void SelectCallback(wxCommandEvent& event);
void OnSize(wxSizeEvent& event);
DECLARE_EVENT_TABLE()
protected:
friend void SelectCallback(wxListBox&, wxCommandEvent&);
void OnCloseWindow(wxCloseEvent& event);
private:
ScoreFile* m_scoreFile;
wxString m_player;
wxButton* m_OK;
wxButton* m_cancel;
wxTextCtrl* m_textField;
};
#endif

View File

@@ -1,86 +0,0 @@
Forty Thieves is a patience game played with two full packs of
cards. At the start of the game forty cards are dealt on the
eight 'bases' along the top of the window. The object of the
game is to place all the cards onto the eight 'foundations'. The
foundations are built starting with the ace and adding cards of
the same suit up to the king. Cards are dealt from the pack and
placed on the discard pile. Cards may be moved from the discard
pile or one of the bases to a base or a foundation. Only one
card can be moved at a time. Cards can only be placed on a base
if the top card of the base is of the same suit and is one
higher in pip value or the base is empty e.g. the eight of
spades can only be placed on top of the nine of spades.
When the mouse cursor is over a card which can be moved it
changes to the 'hand' cursor. The card can then be moved by
double clicking the left button.
The mouse cursor also changes to a hand when a card is dragged
by placing the cursor over the card and holding down the left
button. This feature can be enabled and disabled by selecting
the 'Helping hand' option from the Edit menu.
The 'foundations' are the eight piles of cards down the left
side of the window. When the game starts these piles are empty.
The object of the game is to place all the cards on the
foundations. An ace can be placed on any empty foundation. Other
cards can only be placed on a foundation if the top card is of
the same suit and is one lower in pip value e.g. the three of
clubs can be placed on the four of clubs.
The 'bases' are the ten piles of cards along the top of the
window. At the start of the game four cards are dealt face up on
each of the bases. A card can be added to a base if the base is
empty or if the top card is of the same suit and is one higher
in pip value e.g. the queen of hearts can be placed on the king
of hearts The top card of a base can be moved onto another base
or a foundation.
Cards can be only moved one at a time. The top card of the pack
can be dealt onto discard pile by placing the mouse cursor over
the pack and pressing the left button. The number of cards
remaining is displayed to the right of the pack.
Cards can be moved from the discard pile or the bases either by
'double-clicking' or by dragging. If the left button is
double-clicked when the mouse cursor is over a card and it can
move to another pile, it will do so. This is a quick way of
moving cards when their destination is unambiguous.
A card can be dragged by placing the mouse cursor over the card
and holding down the left button. The card will follow the mouse
cursor until the left button is released. If the card is over a
pile on which it can be placed it will be added to that pile,
otherwise it will be returned to the pile from which it was
dragged.
One point is scored for every card that is placed on a
foundation. Since there are two packs of 52 cards the maximum
score is 104. A record is kept of the number of games played,
the number of games won, the current score and the average
score. This information is displayed at bottom right of the
window and is stored on disk between games. A game is deemed to
have started if the cards have been dealt and any card has been
moved. If the game is abandoned before it is finished (i.e. by
starting a new game or closing window) it counts as a lost game.
New players can be added by selecting the 'Player' option from
the Game menu. A summary of players' scores can be displayed by
selecting the 'Scores...' option from the Game menu.
All moves are recorded and can be undone. To undo a move select
the undo menu item from the Edit menu. A quicker way of undoing
is to press the right mouse button (it doesn't matter where the
mouse cursor is). Right button undo can be enabled and disabled
by selecting the 'Right button undo' option from the Edit menu.
Pressing the right mouse button with the control key pressed
re-does a previously undone move.
An empty base or two is very useful as it gives the opportunity
to unscramble other bases. Try not to build onto kings which
obscure valuable cards as it will be difficult to get to them
later. The undo facility is very useful for going back and using
'hindsight'.
Don't be put off if you can't win every game. I reckon winning 1
in 10 is pretty good (winning 1 in 3 is excellent).

View File

@@ -1,192 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: scoredg.cpp
// Purpose: Forty Thieves patience game
// Author: Chris Breeze
// Modified by:
// Created: 21/07/97
// RCS-ID: $Id$
// Copyright: (c) 1993-1998 Chris Breeze
// Licence: wxWindows licence
//---------------------------------------------------------------------------
// Last modified: 22nd July 1998 - ported to wxWindows 2.0
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation
#pragma interface
#endif
// For compilers that support precompilation, includes "wx/wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif
#if wxUSE_IOSTREAMH
#if defined(__WXMSW__) && !defined(__GNUWIN32__) && !defined(__MWERKS__)
#include <strstrea.h>
#else
#include <strstream.h>
#endif
#else
#include <strstream>
using namespace std;
#endif
#include "scorefil.h"
#include "scoredg.h"
class ScoreCanvas : public wxScrolledWindow
{
public:
ScoreCanvas(wxWindow* parent, ScoreFile* scoreFile);
virtual ~ScoreCanvas();
void OnDraw(wxDC& dc);
private:
wxFont* m_font;
wxString m_text;
};
ScoreCanvas::ScoreCanvas(wxWindow* parent, ScoreFile* scoreFile) :
wxScrolledWindow(parent)
{
#ifdef __WXGTK__
m_font = wxTheFontList->FindOrCreateFont(12, wxROMAN, wxNORMAL, wxNORMAL);
#else
m_font = wxTheFontList->FindOrCreateFont(10, wxSWISS, wxNORMAL, wxNORMAL);
#endif
wxArrayString players;
scoreFile->GetPlayerList( players);
ostrstream os;
os << "Player\tWins\tGames\tScore\n";
for (unsigned int i = 0; i < players.Count(); i++)
{
int wins, games, score;
scoreFile->ReadPlayersScore(players[i], wins, games, score);
int average = 0;
if (games > 0)
{
average = (2 * score + games) / (2 * games);
}
os << players[i] << '\t'
<< wins << '\t'
<< games << '\t'
<< average << '\n';
}
os << '\0';
char* str = os.str();
m_text = str;
delete str;
}
ScoreCanvas::~ScoreCanvas()
{
}
void ScoreCanvas::OnDraw(wxDC& dc)
{
dc.SetFont(* m_font);
const char* str = m_text;
unsigned int tab = 0;
unsigned int tabstops[] = { 5, 100, 150, 200 };
// get the line spacing for the current font
int lineSpacing;
{
long w, h;
dc.GetTextExtent("Testing", &w, &h);
lineSpacing = (int)h;
}
int y = 0;
while (*str)
{
char text[256];
char* dest = text;
while (*str && *str >= ' ') *dest++ = *str++;
*dest = '\0';
dc.DrawText(text, tabstops[tab], y);
if (*str == '\t')
{
if (tab < sizeof(tabstops) / sizeof(tabstops[0]) - 1)
{
tab++;
}
}
else if (*str == '\n')
{
tab = 0;
y += lineSpacing;
}
if (*str) str++;
}
}
BEGIN_EVENT_TABLE(ScoreDialog, wxDialog)
EVT_CLOSE(ScoreDialog::OnCloseWindow)
END_EVENT_TABLE()
ScoreDialog::ScoreDialog(
wxWindow* parent,
ScoreFile* file
) :
wxDialog(parent, -1, "Scores",
wxDefaultPosition, wxSize(310, 200),
wxDIALOG_MODAL | wxDEFAULT_DIALOG_STYLE),
m_scoreFile(file)
{
// enable constraints
SetAutoLayout (TRUE);
ScoreCanvas* list = new ScoreCanvas(this, m_scoreFile);
m_OK = new wxButton(this, wxID_OK, "OK");
wxLayoutConstraints* layout;
// Constrain the OK button
layout = new wxLayoutConstraints;
layout->left.SameAs (this, wxLeft, 10);
layout->bottom.SameAs (this, wxBottom, 10);
layout->height.AsIs();
layout->width.AsIs();
m_OK->SetConstraints(layout);
// Constrain the list of players
layout = new wxLayoutConstraints;
layout->left.SameAs (this, wxLeft, 10);
layout->right.SameAs (this, wxRight, 10);
layout->top.SameAs (this, wxTop, 10);
layout->bottom.SameAs (m_OK, wxTop, 10);
list->SetConstraints(layout);
Layout();
}
ScoreDialog::~ScoreDialog()
{
}
void ScoreDialog::Display()
{
Show(TRUE);
}
void ScoreDialog::OnCloseWindow(wxCloseEvent& event)
{
EndModal(wxID_OK);
}

View File

@@ -1,34 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: scoredg.h
// Purpose: Forty Thieves patience game
// Author: Chris Breeze
// Modified by:
// Created: 21/07/97
// RCS-ID: $Id$
// Copyright: (c) 1993-1998 Chris Breeze
// Licence: wxWindows licence
//---------------------------------------------------------------------------
// Last modified: 22nd July 1998 - ported to wxWindows 2.0
/////////////////////////////////////////////////////////////////////////////
#ifndef _SCOREDG_H_
#define _SCOREDG_H_
class ScoreDialog : public wxDialog
{
public:
ScoreDialog(wxWindow* parent, ScoreFile* file);
virtual ~ScoreDialog();
void Display();
protected:
void OnCloseWindow(wxCloseEvent& event);
private:
ScoreFile* m_scoreFile;
wxButton* m_OK;
DECLARE_EVENT_TABLE()
};
#endif

View File

@@ -1,183 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: scorefil.cpp
// Purpose: Forty Thieves patience game
// Author: Chris Breeze
// Modified by:
// Created: 21/07/97
// RCS-ID: $Id$
// Copyright: (c) 1993-1998 Chris Breeze
// Licence: wxWindows licence
//---------------------------------------------------------------------------
// Last modified: 14th May 1998 - ported to wxWindows 2.0
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation
#pragma interface
#endif
// For compilers that support precompilation, includes "wx/wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif
#ifdef __WXGTK__
#include <unistd.h>
#include <sys/stat.h>
#include <fcntl.h>
#endif
#include "wx/textfile.h"
#include "wx/config.h"
#include "wx/fileconf.h"
#include "scorefil.h"
ScoreFile::ScoreFile(const char* appName)
{
#if 0
wxString filename;
m_configFilename << "/usr/local/share/" << appName << ".scores";
if (access(m_configFilename, F_OK) == 0)
{
if (access(m_configFilename, R_OK | W_OK) != 0)
{
// file is not r/w - use local file instead
m_configFilename = wxFileConfig::GetLocalFileName(appName);
}
}
else
{
int fd = creat(m_configFilename, 0666);
if (fd < 0)
{
// failed to create file - use local file instead
m_configFilename = wxFileConfig::GetLocalFileName(appName);
}
else
{
// ensure created file has rw-rw-rw permissions
close(fd);
}
}
#endif
m_config = new wxConfig(appName, "wxWindows", appName, "", wxCONFIG_USE_LOCAL_FILE); // only local
}
ScoreFile::~ScoreFile()
{
delete m_config;
#ifdef __WXGTK__
// ensure score file has rw-rw-rw permissions
// (wxFileConfig sets them to rw-------)
chmod(m_configFilename, 0666);
#endif
}
void ScoreFile::GetPlayerList( wxArrayString &list )
{
m_config->SetPath("/Players");
int length = m_config->GetNumberOfGroups();
if (length <= 0) return;
wxString player;
long index, i = 0;
if (m_config->GetFirstGroup(player, index))
{
list.Add( player );
i++;
while (m_config->GetNextGroup(player, index))
{
list.Add( player );
i++;
}
}
}
// Calculate an encrypted check number to prevent tampering with
// score file
long ScoreFile::CalcCheck(const char* name, int p1, int p2, int p3)
{
long check = 0;
while (*name)
{
check = (check << 1) ^ (long)*name++;
check = ((check >> 23) ^ check) & 0xFFFFFF;
}
check = (check << 1) ^ (long)p1;
check = ((check >> 23) ^ check) & 0xFFFFFF;
check = (check << 1) ^ (long)p2;
check = ((check >> 23) ^ check) & 0xFFFFFF;
check = (check << 1) ^ (long)p3;
check = ((check >> 23) ^ check) & 0xFFFFFF;
return check;
}
wxString ScoreFile::GetPreviousPlayer() const
{
wxString result;
m_config->SetPath("/General");
m_config->Read("LastPlayer", &result);
return result;
}
void ScoreFile::ReadPlayersScore(
const char* player,
int& wins,
int& games,
int& score)
{
long check = 0;
long myWins = 0, myGames = 0, myScore = 0;
games = wins = score = 0;
m_config->SetPath("/Players");
m_config->SetPath(player);
if (m_config->Read("Score", &myScore, 0L) &&
m_config->Read("Games", &myGames, 0L) &&
m_config->Read("Wins", &myWins, 0L) &&
m_config->Read("Check", &check, 0L))
{
if (check != CalcCheck(player, myGames, myWins, myScore))
{
wxMessageBox("Score file corrupted", "Warning",
wxOK | wxICON_EXCLAMATION);
}
else
{
games = myGames;
wins = myWins;
score = myScore;
}
}
WritePlayersScore(player, wins, games, score);
}
void ScoreFile::WritePlayersScore(const char* player, int wins, int games, int score)
{
if (player)
{
m_config->SetPath("/General");
m_config->Write("LastPlayer", wxString(player)); // Without wxString tmp, thinks it's bool in VC++
m_config->SetPath("/Players");
m_config->SetPath(player);
m_config->Write("Score", (long)score);
m_config->Write("Games", (long)games);
m_config->Write("Wins", (long)wins);
m_config->Write("Check", CalcCheck(player, games, wins, score));
}
}

View File

@@ -1,37 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: scorefil.h
// Purpose: Forty Thieves patience game
// Author: Chris Breeze
// Modified by:
// Created: 21/07/97
// RCS-ID: $Id$
// Copyright: (c) 1993-1998 Chris Breeze
// Licence: wxWindows licence
//---------------------------------------------------------------------------
// Last modified: 22nd July 1998 - ported to wxWindows 2.0
/////////////////////////////////////////////////////////////////////////////
#ifndef _SCOREFILE_H_
#define _SCOREFILE_H_
#include <wx/config.h>
class wxConfig;
class ScoreFile {
public:
ScoreFile(const char* appName);
virtual ~ScoreFile();
void GetPlayerList( wxArrayString &list );
wxString GetPreviousPlayer() const;
void ReadPlayersScore(const char* player, int& wins, int& games, int &score);
void WritePlayersScore(const char* player, int wins, int games, int score);
private:
long CalcCheck(const char* name, int p1, int p2, int p3);
wxString m_configFilename;
wxConfig* m_config;
};
#endif

Binary file not shown.

Before

Width:  |  Height:  |  Size: 662 B

View File

@@ -1,37 +0,0 @@
#define Symbols_width 79
#define Symbols_height 50
static char Symbols_bits[] = {
0x08,0x84,0x0d,0x01,0x00,0x00,0x00,0x00,0x00,0x80,0x1c,0xce,0x9f,0x03,0x00,
0x00,0x00,0x00,0x00,0x80,0x2a,0xdf,0xdf,0x07,0x00,0x00,0x00,0x00,0x00,0x80,
0xff,0xff,0xff,0x0f,0x00,0x00,0x00,0x00,0x00,0x80,0x2a,0x9f,0xcf,0x07,0x00,
0x00,0x00,0x00,0x00,0x80,0x08,0x0e,0x07,0x01,0x00,0x00,0x00,0x00,0x00,0x80,
0x1c,0x04,0x82,0x03,0x00,0x00,0x00,0x00,0x00,0x80,0x1c,0x04,0x82,0x03,0x00,
0x00,0x00,0x00,0x00,0x80,0x08,0x0e,0x07,0x01,0x00,0x00,0x00,0x00,0x00,0x80,
0x2a,0x9f,0xcf,0x07,0x00,0x00,0x00,0x00,0x00,0x80,0xff,0xff,0xff,0x0f,0x00,
0x00,0x00,0x00,0x00,0x80,0x2a,0xdf,0xdf,0x07,0x00,0x00,0x00,0x00,0x00,0x80,
0x1c,0xce,0x9f,0x03,0x00,0x00,0x00,0x00,0x00,0x80,0x08,0x84,0x0d,0x01,0x00,
0x00,0x00,0x00,0x00,0x80,0x70,0x00,0x01,0x63,0x40,0x00,0x00,0x00,0x00,0x80,
0xf8,0x80,0x83,0xf7,0xe0,0x00,0x00,0x00,0x00,0x80,0xf8,0x80,0xc3,0xff,0xf1,
0x01,0x00,0x00,0x00,0x80,0x70,0xc0,0xc7,0xff,0xf9,0x03,0x00,0x00,0x00,0x80,
0x26,0xe3,0xcf,0xff,0xfd,0x07,0x00,0x00,0x00,0x80,0xaf,0xf7,0xdf,0xff,0xff,
0x0f,0x00,0x00,0x00,0x80,0xff,0xe7,0x8f,0xff,0xfe,0x0f,0x00,0x00,0x00,0x80,
0xaf,0xc7,0x07,0x7f,0x5e,0x0f,0x00,0x00,0x00,0x80,0x26,0x83,0x03,0x3e,0x4c,
0x06,0x00,0x00,0x00,0x80,0x70,0x80,0x03,0x1c,0xe0,0x00,0x00,0x00,0x00,0x80,
0xfc,0x01,0x01,0x08,0xf8,0x03,0x00,0x00,0x00,0x80,0xfc,0x01,0x01,0x08,0xf8,
0x03,0x00,0x00,0x00,0x80,0x70,0x80,0x03,0x1c,0xe0,0x00,0x00,0x00,0x00,0x80,
0x26,0x83,0x03,0x3e,0x4c,0x06,0x00,0x00,0x00,0x80,0xaf,0xc7,0x07,0x7f,0x5e,
0x0f,0x00,0x00,0x00,0x80,0xff,0xe7,0x8f,0xff,0xfe,0x0f,0x00,0x00,0x00,0x80,
0xaf,0xf7,0xdf,0xff,0xff,0x0f,0x00,0x00,0x00,0x80,0x26,0xe3,0xcf,0xff,0xfd,
0x07,0x00,0x00,0x00,0x80,0x70,0xc0,0xc7,0xff,0xf9,0x03,0x00,0x00,0x00,0x80,
0xf8,0x80,0xc3,0xff,0xf1,0x01,0x00,0x00,0x00,0x80,0xf8,0x80,0x83,0xf7,0xe0,
0x00,0x00,0x00,0x00,0x80,0x70,0x00,0x01,0x63,0x40,0x00,0x00,0x00,0x00,0x80,
0x0c,0xe7,0x43,0x3e,0xe7,0x73,0x5c,0xe6,0x73,0xa2,0x92,0x08,0x61,0x82,0x00,
0x8a,0x62,0x09,0x89,0x92,0x21,0x88,0x50,0x9e,0x00,0x89,0x62,0x09,0x89,0x8a,
0x21,0xc6,0x49,0xa0,0x87,0x70,0x7c,0x09,0x89,0x86,0x3f,0x01,0xfa,0xa0,0x88,
0x88,0x60,0x09,0xa9,0x8a,0xa1,0x20,0x42,0xa2,0x88,0x88,0x50,0x29,0x49,0x92,
0xa1,0xcf,0x41,0x1c,0x87,0x70,0x48,0xc6,0xb0,0xa2,0xa1,0xcf,0x11,0x1c,0x87,
0x70,0x88,0x89,0x69,0xa2,0x21,0x28,0x12,0xa2,0x88,0x88,0x44,0x4a,0x92,0xa4,
0x3f,0x24,0xf8,0x82,0x88,0x88,0x42,0x4a,0xa8,0xa8,0x21,0xc3,0x91,0x82,0x8f,
0x70,0x5e,0x4a,0x88,0xb0,0xa1,0x80,0x50,0x3c,0x48,0x88,0x62,0x4a,0x88,0xa8,
0x92,0x48,0x30,0x20,0x28,0x88,0x62,0x4a,0x88,0xa4,0x0c,0xe7,0x13,0x3e,0xe7,
0x73,0x9c,0xe9,0x73,0xa2};

View File

@@ -1,60 +0,0 @@
/* XPM */
static char *symbols[] = {
/* width height num_colors chars_per_pixel */
" 79 50 3 1",
/* colors */
". c #ffffff",
"* c #ff0000",
"# c #000000",
/* pixels */
"...#......*....**.**....#......................................................",
"..###....***..*******..###.....................................................",
".#.#.#..*****.*******.#####....................................................",
"#######**************#######...................................................",
".#.#.#..*****..*****..#####....................................................",
"...#.....***....***.....#......................................................",
"..###.....*......*.....###.....................................................",
"..###.....*......*.....###.....................................................",
"...#.....***....***.....#......................................................",
".#.#.#..*****..*****..#####....................................................",
"#######**************#######...................................................",
".#.#.#..*****.*******.#####....................................................",
"..###....***..*******..###.....................................................",
"...#......*....**.**....#......................................................",
"....###.........*.......**...**.......#........................................",
"...#####.......***.....****.****.....###.......................................",
"...#####.......***....***********...#####......................................",
"....###.......*****...***********..#######.....................................",
".##..#..##...*******..***********.#########....................................",
"####.#.####.*********.***********###########...................................",
"###########..*******...*********.###########...................................",
"####.#.####...*****.....*******..####.#.####...................................",
".##..#..##.....***.......*****....##..#..##....................................",
"....###........***........***........###.......................................",
"..#######.......*..........*.......#######.....................................",
"..#######.......*..........*.......#######.....................................",
"....###........***........***........###.......................................",
".##..#..##.....***.......*****....##..#..##....................................",
"####.#.####...*****.....*******..####.#.####...................................",
"###########..*******...*********.###########...................................",
"####.#.####.*********.***********###########...................................",
".##..#..##...*******..***********.#########....................................",
"....###.......*****...***********..#######.....................................",
"...#####.......***....***********...#####......................................",
"...#####.......***.....****.****.....###.......................................",
"....###.........*.......**...**.......#........................................",
"..##....###..#####....#..#####..###..#####..###...###.#..##..#####..###..#...#.",
".#..#..#...#....#....##..#.....#.........#.#...#.#...##.#..#....#..#...#.#..#..",
"#....#.....#...#....#.#..####..#........#..#...#.#...##.#..#....#..#...#.#.#...",
"#....#...##...###..#..#......#.####....#....###...#####.#..#....#..#...#.##....",
"######..#........#.#####.....#.#...#...#...#...#.....##.#..#....#..#.#.#.#.#...",
"#....#.#.....#...#....#..#...#.#...#...#...#...#....#.#.#..#.#..#..#..#..#..#..",
"#....#.#####..###.....#...###...###....#....###....#..#..##...##....##.#.#...#.",
"#....#.#####..###...#.....###...###....#....###....#...##..#...##..#.##..#...#.",
"#....#.....#.#...#..#....#...#.#...#...#...#...#..#...#..#.#..#..#..#..#..#..#.",
"######....#..#.....#####.#.....#...#...#...#...#.#....#..#.#..#....#.#.#...#.#.",
"#....#..##....###...#..#.#.....#####...#....###..####.#..#.#..#....#...#....##.",
"#....#.#.......#....#.#...####.....#..#....#...#.#...##..#.#..#....#...#...#.#.",
".#..#..#...#..#.....##.......#.....#.#.....#...#.#...##..#.#..#....#...#..#..#.",
"..##....###..#####..#....#####..###..#####..###...###..##..#.#####..###..#...#."
};

View File

@@ -1 +0,0 @@

View File

@@ -1,21 +0,0 @@
#
# File: Makefile.in
# Author: Julian Smart
# Created: 1998
# Updated:
# Copyright: (c) 1998 Julian Smart
#
# "%W% %G%"
#
# Makefile for fractal example (UNIX).
top_srcdir = @top_srcdir@
top_builddir = ../..
program_dir = demos/fractal
PROGRAM=fractal
OBJECTS=$(PROGRAM).o
include ../../src/makeprog.env

View File

@@ -1,251 +0,0 @@
///////////////////////////////////////////////////////////////////////////////
// Name: fractal.cpp
// Purpose: demo of wxConfig and related classes
// Author: Andrew Davison
// Modified by:
// Created: 05.04.94
// RCS-ID: $Id$
// Copyright: (c) 1994 Andrew Davison
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
/*
Date: Tue, 5 Apr 1994 12:01:18 +1000
From: Andrew Davison <andrewd@au.com.sfe>
To: wxwin-users@ed.aiai
Subject: Fractal mountains
Hi,
This is a quick port of a fractal mountain generator originally
done for MS-Windows. On a Sun the colours look a little washed
out and there is not as much snow or high mountains (maybe the
random number generators fault). The viewing plane is not
quite right as the original code used SetViewportOrg() which there
doesn't seem to be an equivalent of under wxWindows, and my quick
hack doesn't fix.
*/
#ifdef __GNUG__
#pragma implementation
#pragma interface
#endif
#include "wx/wxprec.h"
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif //precompiled headers
#include <stdlib.h>
#include <math.h>
#include <time.h>
#define Random(x) (rand() % x)
#define Randomize() (srand((unsigned int)time(NULL)))
static int detail = 9; // CHANGE THIS... 7,8,9 etc
static bool running = FALSE;
static wxMenuBar *menuBar = NULL;
// Define a new application type
class MyApp: public wxApp
{ public:
bool OnInit();
};
IMPLEMENT_APP(MyApp)
// Define a new frame type
class MyFrame: public wxFrame
{
public:
MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size);
void OnCloseWindow(wxCloseEvent& event);
void OnExit(wxCommandEvent& event);
DECLARE_EVENT_TABLE()
};
// Define a new canvas which can receive some events
class MyCanvas: public wxWindow
{
public:
MyCanvas(wxFrame *frame);
void Draw(wxDC& dc);
private:
void OnPaint(wxPaintEvent& event);
void Fractal(wxDC& dc, int X1, int Y1, int X2, int Y2, int Z1, int Z2, int Z3, int Z4, int Iteration, double Std, double Ratio);
wxPen SnowPen, MtnPen, GreenPen;
wxBrush WaterBrush;
int Sealevel;
DECLARE_EVENT_TABLE()
};
// `Main program' equivalent, creating windows and returning main app frame
bool MyApp::OnInit()
{
// Create the main frame window
MyFrame *frame = new MyFrame(NULL, "Fractal Mountains for wxWindows", wxPoint(-1, -1), wxSize(640, 480));
// Make a menubar
wxMenu *file_menu = new wxMenu;
file_menu->Append(wxID_EXIT, "E&xit");
menuBar = new wxMenuBar;
menuBar->Append(file_menu, "&File");
frame->SetMenuBar(menuBar);
int width, height;
frame->GetClientSize(&width, &height);
(void) new MyCanvas(frame);
// Show the frame
frame->Show(TRUE);
return TRUE;
}
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_CLOSE(MyFrame::OnCloseWindow)
EVT_MENU(wxID_EXIT, MyFrame::OnExit)
END_EVENT_TABLE()
// My frame constructor
MyFrame::MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size):
wxFrame(frame, -1, title, pos, size)
{
}
// Intercept menu commands
void MyFrame::OnExit(wxCommandEvent& event)
{
this->Destroy();
}
void MyFrame::OnCloseWindow(wxCloseEvent& event)
{
static bool destroyed = FALSE;
if (destroyed)
return;
this->Destroy();
destroyed = TRUE;
}
BEGIN_EVENT_TABLE(MyCanvas, wxWindow)
EVT_PAINT(MyCanvas::OnPaint)
END_EVENT_TABLE()
// Define a constructor for my canvas
MyCanvas::MyCanvas(wxFrame *frame):
wxWindow(frame, -1)
{
wxColour wxCol1(255,255,255);
SnowPen = wxPen(wxCol1, 2, wxSOLID);
wxColour wxCol2(128,0,0);
MtnPen = wxPen(wxCol2, 1, wxSOLID);
wxColour wxCol3(0,128,0);
GreenPen = wxPen(wxCol3, 1, wxSOLID);
wxColour wxCol4(0,0,128);
WaterBrush = wxBrush(wxCol4, wxSOLID);
}
void MyCanvas::OnPaint(wxPaintEvent& event)
{
wxPaintDC dc(this);
Draw(dc);
}
void MyCanvas::Draw(wxDC& dc)
{
if (running) return;
running = TRUE;
menuBar->EnableTop(0, FALSE);
Randomize();
int Left, Top, Right, Bottom;
GetClientSize(&Right, &Bottom);
Right *= 3; Right /= 4;
Bottom *= 3; Bottom /= 4;
Left = 0;
Top = Bottom/8;
wxPoint Water[4];
Water[0].x = Left; Water[0].y = Top;
Water[1].x = Right; Water[1].y = Top;
Water[2].x = Right+Bottom/2; Water[2].y = Bottom;
Water[3].x = Bottom/2; Water[3].y = Bottom;
dc.SetBrush(WaterBrush);
dc.DrawPolygon(4, Water);
double H = 0.75;
double Scale = Bottom;
double Ratio = 1.0 / pow(2.0, H);
double Std = Scale * Ratio;
Sealevel = Random(18) - 8;
Fractal(dc, Left, Top, Right, Bottom, 0, 0, 0, 0, detail, Std, Ratio);
menuBar->EnableTop(0, TRUE);
running = FALSE;
}
void MyCanvas::Fractal(wxDC& dc, int X1, int Y1, int X2, int Y2, int Z1, int Z2, int Z3, int Z4, int Iteration, double Std, double Ratio)
{
int Xmid = (X1 + X2) / 2;
int Ymid = (Y1 + Y2) / 2;
int Z23 = (Z2 + Z3) / 2;
int Z41 = (Z4 + Z1) / 2;
int Newz = (int)((Z1 + Z2 + Z3 + Z4) / 4 + (double)(Random(17) - 8) / 8.0 * Std);
if (--Iteration)
{
int Z12 = (Z1 + Z2) / 2;
int Z34 = (Z3 + Z4) / 2;
double Stdmid = Std * Ratio;
Fractal(dc, Xmid, Y1, X2, Ymid, Z12, Z2, Z23, Newz, Iteration, Stdmid, Ratio);
Fractal(dc, X1, Y1, Xmid, Ymid, Z1, Z12, Newz, Z41, Iteration, Stdmid, Ratio);
Fractal(dc, Xmid, Ymid, X2, Y2, Newz, Z23, Z3, Z34, Iteration, Stdmid, Ratio);
Fractal(dc, X1, Ymid, Xmid, Y2, Z41, Newz, Z34, Z4, Iteration, Stdmid, Ratio);
}
else
{
if (Newz <= Sealevel)
{
wxPoint P[4];
P[0].x = Y1 / 2 + X1; P[0].y = Y1 + Z1;
P[1].x = Y1 / 2 + X2; P[1].y = Y1 + Z2;
P[2].x = Y2 / 2 + X2; P[2].y = Y2 + Z3;
P[3].x = Y2 / 2 + X1; P[3].y = Y2 + Z4;
dc.SetPen(* wxBLACK_PEN);
dc.SetBrush(* wxBLACK_BRUSH);
dc.DrawPolygon(4, P);
if (Z1 >= -(60+Random(25)))
dc.SetPen(GreenPen);
else if (Z1 >= -(100+Random(25)))
dc.SetPen(MtnPen);
else
dc.SetPen(SnowPen);
dc.DrawLine(Ymid/2+X2, Ymid+Z23, Ymid/2+X1, Ymid+Z41);
}
}
}

View File

@@ -1,9 +0,0 @@
NAME Fractal
DESCRIPTION 'Fractal'
EXETYPE WINDOWS
STUB 'WINSTUB.EXE'
CODE PRELOAD MOVEABLE DISCARDABLE
DATA PRELOAD MOVEABLE MULTIPLE
HEAPSIZE 1024
STACKSIZE 16192

View File

@@ -1,4 +0,0 @@
wxSTD_FRAME ICON "mondrian.ico"
#include "wx/msw/wx.rc"

View File

@@ -1,16 +0,0 @@
#
# File: makefile.b32
# Author: Julian Smart
# Created: 1999
# Updated:
# Copyright:
#
# Makefile : Builds sample for 32-bit BC++
WXDIR = $(WXWIN)
TARGET=fractal
OBJECTS = $(TARGET).obj
!include $(WXDIR)\src\makeprog.b32

View File

@@ -1,19 +0,0 @@
#
# File: makefile.bcc
# Author: Julian Smart
# Created: 1998
# Updated:
#
# Builds a BC++ 16-bit sample
!if "$(WXWIN)" == ""
!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx
!endif
WXDIR = $(WXWIN)
TARGET=fractal
OBJECTS=$(TARGET).obj
!include $(WXDIR)\src\makeprog.bcc

View File

@@ -1,17 +0,0 @@
#
# File: makefile.dos
# Author: Julian Smart
# Created: 1998
# Updated:
#
# Makefile : Builds 16-bit sample, VC++ 1.5
# Use FINAL=1 argument to nmake to build final version with no debugging
# info
WXDIR = $(WXWIN)
TARGET=fractal
OBJECTS=$(TARGET).obj
!include $(WXDIR)\src\makeprog.msc

View File

@@ -1,16 +0,0 @@
#
# File: makefile.g95
# Author: Julian Smart
# Created: 1999
# Updated:
# Copyright: (c) Julian Smart, 1999
#
# Makefile for wxWindows sample (Cygwin/Mingw32).
WXDIR = ../..
TARGET=fractal
OBJECTS = $(TARGET).o
include $(WXDIR)/src/makeprog.g95

View File

@@ -1,35 +0,0 @@
#
# File: Makefile for samples
# Author: Robert Roebling
# Created: 1999
# Updated:
# Copyright: (c) 1998 Robert Roebling
#
# This makefile requires a Unix version of wxWindows
# to be installed on your system. This is most often
# done typing "make install" when using the complete
# sources of wxWindows or by installing the two
# RPM packages wxGTK.XXX.rpm and wxGTK-devel.XXX.rpm
# under Linux.
#
CC = gcc
PROGRAM = fractal
OBJECTS = $(PROGRAM).o
# implementation
.SUFFIXES: .o .cpp
.cpp.o :
$(CC) -c `wx-config --cflags` -o $@ $<
all: $(PROGRAM)
$(PROGRAM): $(OBJECTS)
$(CC) -o $(PROGRAM) $(OBJECTS) `wx-config --libs`
clean:
rm -f *.o $(PROGRAM)

View File

@@ -1,18 +0,0 @@
#
# File: makefile.vc
# Author: Julian Smart
# Created: 1999
# Updated:
# Copyright: (c) Julian Smart
#
# Makefile : Builds sample (VC++, WIN32)
# Use FINAL=1 argument to nmake to build final version with no debug info.
# Set WXDIR for your system
WXDIR = $(WXWIN)
PROGRAM=fractal
OBJECTS = $(PROGRAM).obj
!include $(WXDIR)\src\makeprog.vc

View File

@@ -1,15 +0,0 @@
#
# Makefile for WATCOM
#
# Created by Julian Smart, January 1999
#
#
WXDIR = $(%WXWIN)
PROGRAM = fractal
OBJECTS = $(PROGRAM).obj
!include $(WXDIR)\src\makeprog.wat

Binary file not shown.

Before

Width:  |  Height:  |  Size: 766 B

View File

@@ -1,22 +0,0 @@
#
# File: makefile.unx
# Author: Julian Smart
# Created: 1998
# Updated:
# Copyright: (c) 1998 Julian Smart
#
# "%W% %G%"
#
# Makefile for toolbar example (UNIX).
top_srcdir = @top_srcdir@
top_builddir = ../..
program_dir = demos/life
PROGRAM=life
OBJECTS=$(PROGRAM).o dialogs.o game.o
include ../../src/makeprog.env

Binary file not shown.

Before

Width:  |  Height:  |  Size: 246 B

View File

@@ -1,24 +0,0 @@
/* XPM */
static char *play_xpm[] = {
/* columns rows colors chars-per-pixel */
"16 16 2 1",
" c None",
". c Black",
/* pixels */
" ",
" ",
" ",
" . ",
" ... ",
" ..... ",
" ....... ",
" ......... ",
" ....... ",
" ..... ",
" ... ",
" . ",
" ",
" ",
" ",
" "
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 822 B

View File

@@ -1,24 +0,0 @@
/* XPM */
static char *reset_xpm[] = {
/* columns rows colors chars-per-pixel */
"16 16 2 1",
" c None",
". c Black",
/* pixels */
" ",
" ",
" ",
" .. .. ",
" ... ... ",
" ... ... ",
" ...... ",
" .... ",
" .... ",
" ...... ",
" ... ... ",
" ... ... ",
" .. .. ",
" ",
" ",
" "
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 246 B

View File

@@ -1,24 +0,0 @@
/* XPM */
static char *stop_xpm[] = {
/* columns rows colors chars-per-pixel */
"16 16 2 1",
" c None",
". c Black",
/* pixels */
" ",
" ",
" ",
" ........ ",
" ........ ",
" ........ ",
" ........ ",
" ........ ",
" ........ ",
" ........ ",
" ........ ",
" ........ ",
" ",
" ",
" ",
" "
};

View File

@@ -1,212 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: dialogs.cpp
// Purpose: Life! dialogs
// Author: Guillermo Rodriguez Garcia, <guille@iies.es>
// Modified by:
// Created: Jan/2000
// RCS-ID: $Id$
// Copyright: (c) 2000, Guillermo Rodriguez Garcia
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// ==========================================================================
// declarations
// ==========================================================================
// --------------------------------------------------------------------------
// headers
// --------------------------------------------------------------------------
#ifdef __GNUG__
#pragma implementation "dialogs.h"
#endif
// for compilers that support precompilation, includes "wx/wx.h"
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
// for all others, include the necessary headers
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif
#include "wx/statline.h"
#include "wx/spinctrl.h"
#include "dialogs.h"
#include "life.h"
#include "game.h"
// --------------------------------------------------------------------------
// constants
// --------------------------------------------------------------------------
// IDs for the controls and the menu commands
enum
{
// listbox in samples dialog
ID_LISTBOX = 2001
};
// sample configurations
#include "samples.inc"
// --------------------------------------------------------------------------
// event tables and other macros for wxWindows
// --------------------------------------------------------------------------
// Event tables
BEGIN_EVENT_TABLE(LifeNewGameDialog, wxDialog)
EVT_BUTTON (wxID_OK, LifeNewGameDialog::OnOK)
END_EVENT_TABLE()
BEGIN_EVENT_TABLE(LifeSamplesDialog, wxDialog)
EVT_LISTBOX (ID_LISTBOX, LifeSamplesDialog::OnListBox)
END_EVENT_TABLE()
// ==========================================================================
// implementation
// ==========================================================================
// --------------------------------------------------------------------------
// LifeNewGameDialog
// --------------------------------------------------------------------------
LifeNewGameDialog::LifeNewGameDialog(wxWindow *parent, int *w, int *h)
: wxDialog(parent, -1,
_("New game"),
wxDefaultPosition,
wxDefaultSize,
wxDEFAULT_DIALOG_STYLE | wxDIALOG_MODAL)
{
m_w = w;
m_h = h;
// spin ctrls
m_spinctrlw = new wxSpinCtrl( this, -1 );
m_spinctrlw->SetValue(*m_w);
m_spinctrlw->SetRange(LIFE_MIN, LIFE_MAX);
m_spinctrlh = new wxSpinCtrl( this, -1 );
m_spinctrlh->SetValue(*m_h);
m_spinctrlh->SetRange(LIFE_MIN, LIFE_MAX);
// component layout
wxBoxSizer *inputsizer1 = new wxBoxSizer( wxHORIZONTAL );
inputsizer1->Add( new wxStaticText(this, -1, _("Width")), 1, wxCENTRE | wxLEFT, 20);
inputsizer1->Add( m_spinctrlw, 2, wxCENTRE | wxLEFT | wxRIGHT, 20 );
wxBoxSizer *inputsizer2 = new wxBoxSizer( wxHORIZONTAL );
inputsizer2->Add( new wxStaticText(this, -1, _("Height")), 1, wxCENTRE | wxLEFT, 20);
inputsizer2->Add( m_spinctrlh, 2, wxCENTRE | wxLEFT | wxRIGHT, 20 );
wxBoxSizer *topsizer = new wxBoxSizer( wxVERTICAL );
topsizer->Add( CreateTextSizer(_("Enter board dimensions")), 0, wxALL, 10 );
topsizer->Add( new wxStaticLine(this, -1), 0, wxGROW | wxLEFT | wxRIGHT | wxBOTTOM, 10);
topsizer->Add( inputsizer1, 1, wxGROW | wxLEFT | wxRIGHT, 5 );
topsizer->Add( inputsizer2, 1, wxGROW | wxLEFT | wxRIGHT, 5 );
topsizer->Add( new wxStaticLine(this, -1), 0, wxGROW | wxLEFT | wxRIGHT | wxTOP, 10);
topsizer->Add( CreateButtonSizer(wxOK | wxCANCEL), 0, wxCENTRE | wxALL, 10);
// activate
SetSizer(topsizer);
SetAutoLayout(TRUE);
topsizer->SetSizeHints(this);
topsizer->Fit(this);
Centre(wxBOTH);
}
void LifeNewGameDialog::OnOK(wxCommandEvent& WXUNUSED(event))
{
*m_w = m_spinctrlw->GetValue();
*m_h = m_spinctrlh->GetValue();
EndModal(wxID_OK);
}
// --------------------------------------------------------------------------
// LifeSamplesDialog
// --------------------------------------------------------------------------
LifeSamplesDialog::LifeSamplesDialog(wxWindow *parent)
: wxDialog(parent, -1,
_("Sample games"),
wxDefaultPosition,
wxDefaultSize,
wxDEFAULT_DIALOG_STYLE | wxDIALOG_MODAL)
{
m_value = 0;
// create and populate the list of available samples
m_list = new wxListBox( this, ID_LISTBOX,
wxDefaultPosition,
wxDefaultSize,
0, NULL,
wxLB_SINGLE | wxLB_NEEDED_SB | wxLB_HSCROLL );
for (unsigned i = 0; i < (sizeof(g_shapes) / sizeof(LifeShape)); i++)
m_list->Append(g_shapes[i].m_name);
// descriptions
wxStaticBox *statbox = new wxStaticBox( this, -1, _("Description"));
m_life = new Life( 16, 16 );
m_life->SetShape(g_shapes[0]);
m_canvas = new LifeCanvas( this, m_life, FALSE );
m_text = new wxTextCtrl( this, -1,
g_shapes[0].m_desc,
wxDefaultPosition,
wxSize(300, 60),
wxTE_MULTILINE | wxTE_READONLY);
// layout components
wxStaticBoxSizer *sizer1 = new wxStaticBoxSizer( statbox, wxVERTICAL );
sizer1->Add( m_canvas, 2, wxGROW | wxCENTRE | wxALL, 5);
sizer1->Add( m_text, 1, wxGROW | wxCENTRE | wxALL, 5 );
wxBoxSizer *sizer2 = new wxBoxSizer( wxHORIZONTAL );
sizer2->Add( m_list, 0, wxGROW | wxCENTRE | wxALL, 5 );
sizer2->Add( sizer1, 1, wxGROW | wxCENTRE | wxALL, 5 );
wxBoxSizer *sizer3 = new wxBoxSizer( wxVERTICAL );
sizer3->Add( CreateTextSizer(_("Select one configuration")), 0, wxALL, 10 );
sizer3->Add( new wxStaticLine(this, -1), 0, wxGROW | wxLEFT | wxRIGHT, 10 );
sizer3->Add( sizer2, 1, wxGROW | wxCENTRE | wxALL, 5 );
sizer3->Add( new wxStaticLine(this, -1), 0, wxGROW | wxLEFT | wxRIGHT, 10 );
sizer3->Add( CreateButtonSizer(wxOK | wxCANCEL), 0, wxCENTRE | wxALL, 10 );
// activate
SetSizer(sizer3);
SetAutoLayout(TRUE);
sizer3->SetSizeHints(this);
sizer3->Fit(this);
Centre(wxBOTH);
}
LifeSamplesDialog::~LifeSamplesDialog()
{
m_canvas->Destroy();
delete m_life;
}
int LifeSamplesDialog::GetValue()
{
return m_value;
}
void LifeSamplesDialog::OnListBox(wxCommandEvent& event)
{
if (event.GetSelection() != -1)
{
m_value = m_list->GetSelection();
m_text->SetValue(g_shapes[ event.GetSelection() ].m_desc);
m_life->SetShape(g_shapes[ event.GetSelection() ]);
m_canvas->DrawEverything(TRUE); // force redraw everything
m_canvas->Refresh(FALSE); // do not erase background
}
}

View File

@@ -1,92 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: dialogs.h
// Purpose: Life! dialogs
// Author: Guillermo Rodriguez Garcia, <guille@iies.es>
// Modified by:
// Created: Jan/2000
// RCS-ID: $Id$
// Copyright: (c) 2000, Guillermo Rodriguez Garcia
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _LIFE_DIALOGS_H_
#define _LIFE_DIALOGS_H_
#ifdef __GNUG__
#pragma interface "dialogs.h"
#endif
// for compilers that support precompilation, includes "wx/wx.h"
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
// for all others, include the necessary headers
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif
#include "wx/spinctrl.h"
#include "life.h"
#include "game.h"
// sample configurations
extern LifeShape g_shapes[];
// --------------------------------------------------------------------------
// LifeNewGameDialog
// --------------------------------------------------------------------------
class LifeNewGameDialog : public wxDialog
{
public:
// ctor
LifeNewGameDialog(wxWindow *parent, int *w, int *h);
// event handlers
void OnOK(wxCommandEvent& event);
private:
// any class wishing to process wxWindows events must use this macro
DECLARE_EVENT_TABLE();
int *m_w;
int *m_h;
wxSpinCtrl *m_spinctrlw;
wxSpinCtrl *m_spinctrlh;
};
// --------------------------------------------------------------------------
// LifeSamplesDialog
// --------------------------------------------------------------------------
class LifeSamplesDialog : public wxDialog
{
public:
// ctor and dtor
LifeSamplesDialog(wxWindow *parent);
~LifeSamplesDialog();
// members
int GetValue();
// event handlers
void OnListBox(wxCommandEvent &event);
private:
// any class wishing to process wxWindows events must use this macro
DECLARE_EVENT_TABLE();
int m_value;
wxListBox *m_list;
wxTextCtrl *m_text;
LifeCanvas *m_canvas;
Life *m_life;
};
#endif // _LIFE_DIALOGS_H_

View File

@@ -1,226 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: game.cpp
// Purpose: Life! game logic
// Author: Guillermo Rodriguez Garcia, <guille@iies.es>
// Modified by:
// Created: Jan/2000
// RCS-ID: $Id$
// Copyright: (c) 2000, Guillermo Rodriguez Garcia
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// ==========================================================================
// declarations
// ==========================================================================
// --------------------------------------------------------------------------
// headers
// --------------------------------------------------------------------------
#ifdef __GNUG__
#pragma implementation "game.h"
#endif
// for compilers that support precompilation, includes "wx/wx.h"
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
// for all others, include the necessary headers
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif
#include "game.h"
// ==========================================================================
// implementation
// ==========================================================================
// --------------------------------------------------------------------------
// Life
// --------------------------------------------------------------------------
/* Format of the cell: (32 bit integer)
*
* 0yyyyyyy yyyyyy0x xxxxxxxxx xxx000ff
*
* y = y coordinate (13 bits)
* x = x coordinate (13 bits)
* f = flags (2 bits)
*
* OK, there is a reason for this, I promise :-). But I won't explain
* it now; it will be more clear when I implement the optimized life
* algorithm for large universes.
*/
Life::Life(int width, int height)
{
m_wrap = TRUE;
Create(width, height);
}
Life::~Life()
{
Destroy();
}
void Life::Create(int width, int height)
{
wxASSERT(width > 0 && height > 0 && m_cells.IsEmpty());
m_width = width;
m_height = height;
// preallocate memory to speed up initialization
m_cells.Alloc(m_width * m_height);
m_changed.Alloc(1000);
// add all cells
for (int j = 0; j < m_height; j++)
for (int i = 0; i < m_width; i++)
m_cells.Add( MakeCell(i, j, FALSE) );
}
void Life::Destroy()
{
m_cells.Clear();
m_changed.Clear();
}
void Life::Clear()
{
// set all cells in the array to dead
for (int j = 0; j < m_height; j++)
for (int i = 0; i < m_width; i++)
m_cells[j * m_width + i] &= ~CELL_ALIVE;
}
Cell Life::MakeCell(int i, int j, bool alive) const
{
return (Cell)((j << 18) | (i << 5) | (alive? CELL_ALIVE : CELL_DEAD));
}
bool Life::IsAlive(int i, int j) const
{
wxASSERT(i >= 0 && j >= 0 && i < m_width && j < m_height);
return (m_cells[j * m_width + i] & CELL_ALIVE);
}
bool Life::IsAlive(Cell c) const { return (c & CELL_ALIVE); };
int Life::GetX(Cell c) const { return (c >> 5) & 0x1fff; };
int Life::GetY(Cell c) const { return (c >> 18); };
Cell Life::SetCell(int i, int j, bool alive)
{
wxASSERT(i >= 0 && j >= 0 && i < m_width && j < m_height);
Cell c = MakeCell(i, j, alive);
m_cells[j * m_width + i] = c;
return c;
}
void Life::SetShape(LifeShape& shape)
{
wxASSERT((m_width >= shape.m_width) && (m_height >= shape.m_height));
int i0 = (m_width - shape.m_width) / 2;
int j0 = (m_height - shape.m_height) / 2;
char *p = shape.m_data;
Clear();
for (int j = j0; j < j0 + shape.m_height; j++)
for (int i = i0; i < i0 + shape.m_width; i++)
SetCell(i, j, *(p++) == '*');
}
bool Life::NextTic()
{
int i, j;
m_changed.Empty();
/* 1st pass. Find and mark deaths and births for this generation.
*
* Rules:
* An organism with <= 1 neighbors will die due to isolation.
* An organism with >= 4 neighbors will die due to starvation.
* New organisms are born in cells with exactly 3 neighbors.
*/
for (j = 0; j < m_height; j++)
for (i = 0; i < m_width; i++)
{
int neighbors = GetNeighbors(i, j);
bool alive = IsAlive(i, j);
/* Set CELL_MARK if this cell must change, clear it
* otherwise. We cannot toggle the CELL_ALIVE bit yet
* because all deaths and births are simultaneous (it
* would affect neighbouring cells).
*/
if ((!alive && neighbors == 3) ||
(alive && (neighbors <= 1 || neighbors >= 4)))
{
m_cells[j * m_width + i] |= CELL_MARK;
m_changed.Add( MakeCell(i, j, !alive) );
}
else
m_cells[j * m_width + i] &= ~CELL_MARK;
}
/* 2nd pass. Stabilize.
*/
for (j = 0; j < m_height; j++)
for (i = 0; i < m_width; i++)
{
/* Toggle CELL_ALIVE for those cells marked in the
* previous pass. Do not clear the CELL_MARK bit yet;
* it is useful to know which cells have changed and
* thus must be updated in the screen.
*/
if (m_cells[j * m_width + i] & CELL_MARK)
m_cells[j * m_width + i] ^= CELL_ALIVE;
}
return (!m_changed.IsEmpty());
}
int Life::GetNeighbors(int x, int y) const
{
wxASSERT(x >= 0 && y >= 0 && x < m_width && y < m_height);
int neighbors = 0;
int i0 = (x)? (x - 1) : 0;
int j0 = (y)? (y - 1) : 0;
int i1 = (x < (m_width - 1))? (x + 1) : (m_width - 1);
int j1 = (y < (m_height - 1))? (y + 1) : (m_height - 1);
if (m_wrap && ( !x || !y || x == (m_width - 1) || y == (m_height - 1)))
{
// this is an outer cell and wraparound is on
for (int j = y - 1; j <= y + 1; j++)
for (int i = x - 1; i <= x + 1; i++)
if (IsAlive( ((i < 0)? (i + m_width ) : (i % m_width)),
((j < 0)? (j + m_height) : (j % m_height)) ))
neighbors++;
}
else
{
// this is an inner cell, or wraparound is off
for (int j = j0; j <= j1; j++)
for (int i = i0; i <= i1; i++)
if (IsAlive(i, j))
neighbors++;
}
// do not count ourselves
if (IsAlive(x, y)) neighbors--;
return neighbors;
}

View File

@@ -1,129 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: game.h
// Purpose: Life! game logic
// Author: Guillermo Rodriguez Garcia, <guille@iies.es>
// Modified by:
// Created: Jan/2000
// RCS-ID: $Id$
// Copyright: (c) 2000, Guillermo Rodriguez Garcia
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _LIFE_GAME_H_
#define _LIFE_GAME_H_
#ifdef __GNUG__
#pragma interface "game.h"
#endif
// for compilers that support precompilation, includes "wx/wx.h"
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
// for all others, include the necessary headers
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif
// --------------------------------------------------------------------------
// constants
// --------------------------------------------------------------------------
// minimum and maximum table size, in each dimension
#define LIFE_MIN 20
#define LIFE_MAX 200
// --------------------------------------------------------------------------
// Cell and CellArray;
// --------------------------------------------------------------------------
typedef long Cell;
typedef wxArrayLong CellArray;
// --------------------------------------------------------------------------
// LifeShape
// --------------------------------------------------------------------------
class LifeShape
{
public:
LifeShape::LifeShape(wxString name,
wxString desc,
int width, int height, char *data,
int fieldWidth = 20, int fieldHeight = 20,
bool wrap = TRUE)
{
m_name = name;
m_desc = desc;
m_width = width;
m_height = height;
m_data = data;
m_fieldWidth = fieldWidth;
m_fieldHeight = fieldHeight;
m_wrap = wrap;
}
wxString m_name;
wxString m_desc;
int m_width;
int m_height;
char *m_data;
int m_fieldWidth;
int m_fieldHeight;
bool m_wrap;
};
// --------------------------------------------------------------------------
// Life
// --------------------------------------------------------------------------
class Life
{
public:
// ctor and dtor
Life(int width, int height);
~Life();
void Create(int width, int height);
void Destroy();
// game field
inline int GetWidth() const { return m_width; };
inline int GetHeight() const { return m_height; };
inline void SetBorderWrap(bool on) { m_wrap = on; };
// cells
bool IsAlive(int i, int j) const;
bool IsAlive(Cell c) const;
int GetX(Cell c) const;
int GetY(Cell c) const;
const CellArray* GetCells() const { return &m_cells; };
const CellArray* GetChangedCells() const { return &m_changed; };
// game logic
void Clear();
Cell SetCell(int i, int j, bool alive = TRUE);
void SetShape(LifeShape &shape);
bool NextTic();
private:
int GetNeighbors(int i, int j) const;
inline Cell MakeCell(int i, int j, bool alive) const;
enum CellFlags
{
CELL_DEAD = 0x0000, // is dead
CELL_ALIVE = 0x0001, // is alive
CELL_MARK = 0x0002, // will change / has changed
};
int m_width;
int m_height;
CellArray m_cells;
CellArray m_changed;
bool m_wrap;
};
#endif // _LIFE_GAME_H_

View File

@@ -1,630 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: life.cpp
// Purpose: The game of life, created by J. H. Conway
// Author: Guillermo Rodriguez Garcia, <guille@iies.es>
// Modified by:
// Created: Jan/2000
// RCS-ID: $Id$
// Copyright: (c) 2000, Guillermo Rodriguez Garcia
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// ==========================================================================
// declarations
// ==========================================================================
// --------------------------------------------------------------------------
// headers
// --------------------------------------------------------------------------
#ifdef __GNUG__
#pragma implementation "life.h"
#endif
// for compilers that support precompilation, includes "wx/wx.h"
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
// for all others, include the necessary headers
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif
#include "wx/statline.h"
#include "life.h"
#include "game.h"
#include "dialogs.h"
// --------------------------------------------------------------------------
// resources
// --------------------------------------------------------------------------
#if defined(__WXGTK__) || defined(__WXMOTIF__)
// the application icon
#include "mondrian.xpm"
// bitmap buttons for the toolbar
#include "bitmaps/reset.xpm"
#include "bitmaps/play.xpm"
#include "bitmaps/stop.xpm"
#endif
// --------------------------------------------------------------------------
// constants
// --------------------------------------------------------------------------
// IDs for the controls and the menu commands
enum
{
// menu items and toolbar buttons
ID_NEWGAME = 1001,
ID_SAMPLES,
ID_ABOUT,
ID_EXIT,
ID_CLEAR,
ID_START,
ID_STEP,
ID_STOP,
ID_WRAP,
// speed selection slider
ID_SLIDER
};
// --------------------------------------------------------------------------
// event tables and other macros for wxWindows
// --------------------------------------------------------------------------
// Event tables
BEGIN_EVENT_TABLE(LifeFrame, wxFrame)
EVT_MENU (ID_NEWGAME, LifeFrame::OnNewGame)
EVT_MENU (ID_SAMPLES, LifeFrame::OnSamples)
EVT_MENU (ID_ABOUT, LifeFrame::OnMenu)
EVT_MENU (ID_EXIT, LifeFrame::OnMenu)
EVT_MENU (ID_CLEAR, LifeFrame::OnMenu)
EVT_MENU (ID_START, LifeFrame::OnMenu)
EVT_MENU (ID_STEP, LifeFrame::OnMenu)
EVT_MENU (ID_STOP, LifeFrame::OnMenu)
EVT_MENU (ID_WRAP, LifeFrame::OnMenu)
EVT_COMMAND_SCROLL (ID_SLIDER, LifeFrame::OnSlider)
END_EVENT_TABLE()
BEGIN_EVENT_TABLE(LifeCanvas, wxScrolledWindow)
EVT_PAINT ( LifeCanvas::OnPaint)
EVT_SIZE ( LifeCanvas::OnSize)
EVT_MOUSE_EVENTS ( LifeCanvas::OnMouse)
END_EVENT_TABLE()
// Create a new application object
IMPLEMENT_APP(LifeApp)
// ==========================================================================
// implementation
// ==========================================================================
// some shortcuts
#define ADD_TOOL(a, b, c, d) \
toolBar->AddTool(a, b, wxNullBitmap, FALSE, -1, -1, (wxObject *)0, c, d)
#define GET_FRAME() \
((LifeFrame *) wxGetApp().GetTopWindow())
// --------------------------------------------------------------------------
// LifeApp
// --------------------------------------------------------------------------
// `Main program' equivalent: the program execution "starts" here
bool LifeApp::OnInit()
{
// create the main application window
LifeFrame *frame = new LifeFrame();
// show it and tell the application that it's our main window
frame->Show(TRUE);
SetTopWindow(frame);
// enter the main message loop and run the app
return TRUE;
}
// --------------------------------------------------------------------------
// LifeFrame
// --------------------------------------------------------------------------
// frame constructor
LifeFrame::LifeFrame() : wxFrame((wxFrame *)0, -1, _("Life!"), wxPoint(50, 50))
{
// frame icon
SetIcon(wxICON(mondrian));
// menu bar
wxMenu *menuFile = new wxMenu("", wxMENU_TEAROFF);
wxMenu *menuGame = new wxMenu("", wxMENU_TEAROFF);
menuFile->Append(ID_NEWGAME, _("New game..."), _("Start a new game"));
menuFile->Append(ID_SAMPLES, _("Sample game..."), _("Select a sample configuration"));
menuFile->AppendSeparator();
menuFile->Append(ID_ABOUT, _("&About...\tCtrl-A"), _("Show about dialog"));
menuFile->AppendSeparator();
menuFile->Append(ID_EXIT, _("E&xit\tAlt-X"), _("Quit this program"));
menuGame->Append(ID_CLEAR, _("&Clear\tCtrl-C"), _("Clear game field"));
menuGame->Append(ID_START, _("&Start\tCtrl-S"), _("Start"));
menuGame->Append(ID_STEP, _("&Next\tCtrl-N"), _("Single step"));
menuGame->Append(ID_STOP, _("S&top\tCtrl-T"), _("Stop"));
menuGame->Enable(ID_STOP, FALSE);
menuGame->AppendSeparator();
menuGame->Append(ID_WRAP, _("&Wraparound\tCtrl-W"), _("Wrap around borders"), TRUE);
menuGame->Check (ID_WRAP, TRUE);
wxMenuBar *menuBar = new wxMenuBar();
menuBar->Append(menuFile, _("&File"));
menuBar->Append(menuGame, _("&Game"));
SetMenuBar(menuBar);
// tool bar
wxBitmap tbBitmaps[3];
tbBitmaps[0] = wxBITMAP(reset);
tbBitmaps[1] = wxBITMAP(play);
tbBitmaps[2] = wxBITMAP(stop);
wxToolBar *toolBar = CreateToolBar();
toolBar->SetMargins(5, 5);
toolBar->SetToolBitmapSize(wxSize(16, 16));
ADD_TOOL(ID_CLEAR, tbBitmaps[0], _("Clear"), _("Clear game board"));
ADD_TOOL(ID_START, tbBitmaps[1], _("Start"), _("Start"));
ADD_TOOL(ID_STOP , tbBitmaps[2], _("Stop"), _("Stop"));
toolBar->EnableTool(ID_STOP, FALSE);
toolBar->Realize();
// status bar
CreateStatusBar(2);
SetStatusText(_("Welcome to Life!"));
// game
wxPanel *panel = new wxPanel(this, -1);
m_life = new Life(20, 20);
m_canvas = new LifeCanvas(panel, m_life);
m_timer = new LifeTimer();
m_interval = 500;
m_tics = 0;
m_text = new wxStaticText(panel, -1, "");
UpdateInfoText();
// slider
wxSlider *slider = new wxSlider(panel, ID_SLIDER,
5, 1, 10,
wxDefaultPosition,
wxSize(200, -1),
wxSL_HORIZONTAL | wxSL_AUTOTICKS);
// component layout
wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL);
sizer->Add(new wxStaticLine(panel, -1), 0, wxGROW | wxCENTRE);
sizer->Add(m_canvas, 1, wxGROW | wxCENTRE | wxALL, 5);
sizer->Add(new wxStaticLine(panel, -1), 0, wxGROW | wxCENTRE);
sizer->Add(m_text, 0, wxCENTRE | wxTOP, 5);
sizer->Add(slider, 0, wxCENTRE | wxALL, 5);
panel->SetSizer(sizer);
panel->SetAutoLayout(TRUE);
sizer->Fit(this);
sizer->SetSizeHints(this);
}
LifeFrame::~LifeFrame()
{
delete m_timer;
delete m_life;
}
void LifeFrame::UpdateInfoText()
{
wxString msg;
msg.Printf(_("Generation: %u, Interval: %u ms"), m_tics, m_interval);
m_text->SetLabel(msg);
}
// event handlers
void LifeFrame::OnMenu(wxCommandEvent& event)
{
switch (event.GetId())
{
case ID_START : OnStart(); break;
case ID_STEP : OnTimer(); break;
case ID_STOP : OnStop(); break;
case ID_WRAP :
{
bool checked = GetMenuBar()->GetMenu(1)->IsChecked(ID_WRAP);
m_life->SetBorderWrap(checked);
break;
}
case ID_CLEAR :
{
OnStop();
m_life->Clear();
m_canvas->DrawEverything(TRUE);
m_canvas->Refresh(FALSE);
m_tics = 0;
UpdateInfoText();
break;
}
case ID_ABOUT :
{
wxMessageBox(
_("This is the about dialog of the Life! sample.\n"
"(c) 2000 Guillermo Rodriguez Garcia"),
_("About Life!"),
wxOK | wxICON_INFORMATION,
this);
break;
}
case ID_EXIT :
{
// TRUE is to force the frame to close
Close(TRUE);
break;
}
}
}
void LifeFrame::OnNewGame(wxCommandEvent& WXUNUSED(event))
{
int w = m_life->GetWidth();
int h = m_life->GetHeight();
// stop if it was running
OnStop();
// dialog box
LifeNewGameDialog dialog(this, &w, &h);
// new game?
if (dialog.ShowModal() == wxID_OK)
{
// check dimensions
if (w >= LIFE_MIN && w <= LIFE_MAX &&
h >= LIFE_MIN && h <= LIFE_MAX)
{
// resize game field
m_life->Destroy();
m_life->Create(w, h);
// tell the canvas
m_canvas->Reset();
m_canvas->Refresh();
m_tics = 0;
UpdateInfoText();
}
else
{
wxString msg;
msg.Printf(_("Both dimensions must be within %u and %u.\n"),
LIFE_MIN, LIFE_MAX);
wxMessageBox(msg, _("Error!"), wxOK | wxICON_EXCLAMATION, this);
}
}
}
void LifeFrame::OnSamples(wxCommandEvent& WXUNUSED(event))
{
// stop if it was running
OnStop();
// dialog box
LifeSamplesDialog dialog(this);
// new game?
if (dialog.ShowModal() == wxID_OK)
{
int result = dialog.GetValue();
if (result == -1)
return;
int gw = g_shapes[result].m_fieldWidth;
int gh = g_shapes[result].m_fieldHeight;
int wrap = g_shapes[result].m_wrap;
// set wraparound (don't ask the user)
m_life->SetBorderWrap(wrap);
GetMenuBar()->GetMenu(1)->Check(ID_WRAP, wrap);
// need to resize the game field?
if (gw > m_life->GetWidth() || gh > m_life->GetHeight())
{
wxString s;
s.Printf(_("Your game field is too small for this configuration.\n"
"It is recommended to resize it to %u x %u. Proceed?\n"),
gw, gh);
if (wxMessageBox(s, _("Question"), wxYES_NO | wxICON_QUESTION, this) == wxYES)
{
m_life->Destroy();
m_life->Create(gw, gh);
}
}
// put the shape
m_life->SetShape(g_shapes[result]);
// tell the canvas about the change
m_canvas->Reset();
m_canvas->Refresh();
m_tics = 0;
UpdateInfoText();
}
}
void LifeFrame::OnStart()
{
if (!m_running)
{
GetToolBar()->EnableTool(ID_START, FALSE);
GetToolBar()->EnableTool(ID_STOP, TRUE);
GetMenuBar()->GetMenu(1)->Enable(ID_START, FALSE);
GetMenuBar()->GetMenu(1)->Enable(ID_STEP, FALSE);
GetMenuBar()->GetMenu(1)->Enable(ID_STOP, TRUE);
m_timer->Start(m_interval);
m_running = TRUE;
}
}
void LifeFrame::OnStop()
{
if (m_running)
{
GetToolBar()->EnableTool(ID_START, TRUE);
GetToolBar()->EnableTool(ID_STOP, FALSE);
GetMenuBar()->GetMenu(1)->Enable(ID_START, TRUE);
GetMenuBar()->GetMenu(1)->Enable(ID_STEP, TRUE);
GetMenuBar()->GetMenu(1)->Enable(ID_STOP, FALSE);
m_timer->Stop();
m_running = FALSE;
}
}
void LifeFrame::OnTimer()
{
if (m_life->NextTic())
m_tics++;
else
OnStop();
UpdateInfoText();
m_canvas->DrawEverything();
m_canvas->Refresh(FALSE);
}
void LifeFrame::OnSlider(wxScrollEvent& event)
{
m_interval = event.GetPosition() * 100;
// restart timer if running, to set the new interval
if (m_running)
{
m_timer->Stop();
m_timer->Start(m_interval);
}
UpdateInfoText();
}
// --------------------------------------------------------------------------
// LifeTimer
// --------------------------------------------------------------------------
void LifeTimer::Notify()
{
GET_FRAME()->OnTimer();
};
// --------------------------------------------------------------------------
// LifeCanvas
// --------------------------------------------------------------------------
// canvas constructor
LifeCanvas::LifeCanvas(wxWindow *parent, Life *life, bool interactive)
: wxScrolledWindow(parent, -1, wxPoint(0, 0), wxSize(100, 100))
{
m_life = life;
m_interactive = interactive;
m_cellsize = 8;
m_bmp = NULL;
Reset();
}
LifeCanvas::~LifeCanvas()
{
delete m_bmp;
}
void LifeCanvas::Reset()
{
if (m_bmp)
delete m_bmp;
m_status = MOUSE_NOACTION;
m_width = CellToCoord(m_life->GetWidth()) + 1;
m_height = CellToCoord(m_life->GetHeight()) + 1;
m_bmp = new wxBitmap(m_width, m_height);
wxCoord w = GetClientSize().GetX();
wxCoord h = GetClientSize().GetY();
m_xoffset = (w > m_width)? ((w - m_width) / 2) : 0;
m_yoffset = (h > m_height)? ((h - m_height) / 2) : 0;
// redraw everything
DrawEverything(TRUE);
SetScrollbars(10, 10, (m_width + 9) / 10, (m_height + 9) / 10);
}
void LifeCanvas::DrawEverything(bool force)
{
wxMemoryDC dc;
dc.SelectObject(*m_bmp);
dc.BeginDrawing();
// draw cells
const CellArray *cells =
force? m_life->GetCells() : m_life->GetChangedCells();
for (unsigned i = 0; i < cells->GetCount(); i++)
DrawCell(cells->Item(i), dc);
// bounding rectangle (always drawn - better than clipping region)
dc.SetPen(*wxBLACK_PEN);
dc.SetBrush(*wxTRANSPARENT_BRUSH);
dc.DrawRectangle(0, 0, m_width, m_height);
dc.EndDrawing();
dc.SelectObject(wxNullBitmap);
}
void LifeCanvas::DrawCell(Cell c)
{
wxMemoryDC dc;
dc.SelectObject(*m_bmp);
dc.BeginDrawing();
dc.SetClippingRegion(1, 1, m_width - 2, m_height - 2);
DrawCell(c, dc);
dc.EndDrawing();
dc.SelectObject(wxNullBitmap);
}
void LifeCanvas::DrawCell(Cell c, wxDC &dc)
{
if (m_life->IsAlive(c))
{
dc.SetPen(*wxBLACK_PEN);
dc.SetBrush(*wxBLACK_BRUSH);
dc.DrawRectangle(CellToCoord( m_life->GetX(c) ),
CellToCoord( m_life->GetY(c) ),
m_cellsize,
m_cellsize);
}
else
{
dc.SetPen(*wxLIGHT_GREY_PEN);
dc.SetBrush(*wxTRANSPARENT_BRUSH);
dc.DrawRectangle(CellToCoord( m_life->GetX(c) ),
CellToCoord( m_life->GetY(c) ),
m_cellsize,
m_cellsize);
dc.SetPen(*wxWHITE_PEN);
dc.SetBrush(*wxWHITE_BRUSH);
dc.DrawRectangle(CellToCoord( m_life->GetX(c) ) + 1,
CellToCoord( m_life->GetY(c) ) + 1,
m_cellsize - 1,
m_cellsize - 1);
}
}
// event handlers
void LifeCanvas::OnPaint(wxPaintEvent& event)
{
wxPaintDC dc(this);
wxMemoryDC memdc;
wxRegionIterator upd(GetUpdateRegion());
wxCoord x, y, w, h, xx, yy;
dc.BeginDrawing();
memdc.SelectObject(*m_bmp);
while(upd)
{
x = upd.GetX();
y = upd.GetY();
w = upd.GetW();
h = upd.GetH();
CalcUnscrolledPosition(x, y, &xx, &yy);
dc.Blit(x, y, w, h, &memdc, xx - m_xoffset, yy - m_yoffset);
upd++;
}
memdc.SelectObject(wxNullBitmap);
dc.EndDrawing();
}
void LifeCanvas::OnMouse(wxMouseEvent& event)
{
if (!m_interactive)
return;
int x, y, xx, yy, i, j;
// which cell are we pointing at?
x = event.GetX();
y = event.GetY();
CalcUnscrolledPosition(x, y, &xx, &yy);
i = CoordToCell( xx - m_xoffset );
j = CoordToCell( yy - m_yoffset );
// adjust x, y to point to the upper left corner of the cell
CalcScrolledPosition( CellToCoord(i) + m_xoffset,
CellToCoord(j) + m_yoffset,
&x, &y );
// set cursor shape and statusbar text
if (i < 0 || i >= m_life->GetWidth() ||
j < 0 || j >= m_life->GetHeight())
{
GET_FRAME()->SetStatusText(wxEmptyString, 1);
SetCursor(*wxSTANDARD_CURSOR);
}
else
{
wxString msg;
msg.Printf(_("Cell: (%u, %u)"), i, j);
GET_FRAME()->SetStatusText(msg, 1);
SetCursor(*wxCROSS_CURSOR);
}
// button pressed?
if (!event.LeftIsDown())
{
m_status = MOUSE_NOACTION;
}
else if (i >= 0 && i < m_life->GetWidth() &&
j >= 0 && j < m_life->GetHeight())
{
bool alive = m_life->IsAlive(i, j);
// if just pressed, update status
if (m_status == MOUSE_NOACTION)
m_status = (alive? MOUSE_ERASING : MOUSE_DRAWING);
// toggle cell and refresh if needed
if (((m_status == MOUSE_ERASING) && alive) ||
((m_status == MOUSE_DRAWING) && !alive))
{
wxRect rect(x, y, m_cellsize + 1, m_cellsize + 1);
DrawCell( m_life->SetCell(i, j, !alive) );
Refresh(FALSE, &rect);
}
}
}
void LifeCanvas::OnSize(wxSizeEvent& event)
{
wxCoord w = event.GetSize().GetX();
wxCoord h = event.GetSize().GetY();
m_xoffset = (w > m_width)? ((w - m_width) / 2) : 0;
m_yoffset = (h > m_height)? ((h - m_height) / 2) : 0;
// allow default processing
event.Skip();
}

View File

@@ -1,7 +0,0 @@
NAME Life
DESCRIPTION 'Life! wxWindows application'
EXETYPE WINDOWS
CODE PRELOAD MOVEABLE DISCARDABLE
DATA PRELOAD MOVEABLE MULTIPLE
HEAPSIZE 4048
STACKSIZE 16000

View File

@@ -1,136 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: life.h
// Purpose: The game of life, created by J. H. Conway
// Author: Guillermo Rodriguez Garcia, <guille@iies.es>
// Modified by:
// Created: Jan/2000
// RCS-ID: $Id$
// Copyright: (c) 2000, Guillermo Rodriguez Garcia
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _LIFE_APP_H_
#define _LIFE_APP_H_
#ifdef __GNUG__
#pragma interface "life.h"
#endif
// for compilers that support precompilation, includes "wx/wx.h"
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
// for all others, include the necessary headers
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif
#include "game.h"
// --------------------------------------------------------------------------
// LifeCanvas
// --------------------------------------------------------------------------
class LifeCanvas : public wxScrolledWindow
{
public:
// ctor and dtor
LifeCanvas(wxWindow* parent, Life* life, bool interactive = TRUE);
~LifeCanvas();
// member functions
void Reset();
void DrawEverything(bool force = FALSE);
void DrawCell(Cell c);
void DrawCell(Cell c, wxDC &dc);
inline int CellToCoord(int i) const { return (i * m_cellsize); };
inline int CoordToCell(int x) const { return ((x >= 0)? (x / m_cellsize) : -1); };
// event handlers
void OnPaint(wxPaintEvent& event);
void OnMouse(wxMouseEvent& event);
void OnSize(wxSizeEvent& event);
private:
// any class wishing to process wxWindows events must use this macro
DECLARE_EVENT_TABLE()
enum MouseStatus
{
MOUSE_NOACTION,
MOUSE_DRAWING,
MOUSE_ERASING
};
Life *m_life;
wxBitmap *m_bmp;
int m_height;
int m_width;
int m_cellsize;
wxCoord m_xoffset;
wxCoord m_yoffset;
MouseStatus m_status;
bool m_interactive;
};
// --------------------------------------------------------------------------
// LifeTimer
// --------------------------------------------------------------------------
// Life timer
class LifeTimer : public wxTimer
{
public:
void Notify();
};
// --------------------------------------------------------------------------
// LifeFrame
// --------------------------------------------------------------------------
class LifeFrame : public wxFrame
{
public:
// ctor and dtor
LifeFrame();
~LifeFrame();
// member functions
void UpdateInfoText();
// event handlers
void OnMenu(wxCommandEvent& event);
void OnNewGame(wxCommandEvent& event);
void OnSamples(wxCommandEvent& event);
void OnStart();
void OnStop();
void OnTimer();
void OnSlider(wxScrollEvent& event);
private:
// any class wishing to process wxWindows events must use this macro
DECLARE_EVENT_TABLE()
Life *m_life;
LifeTimer *m_timer;
LifeCanvas *m_canvas;
wxStaticText *m_text;
bool m_running;
long m_interval;
long m_tics;
};
// --------------------------------------------------------------------------
// LifeApp
// --------------------------------------------------------------------------
class LifeApp : public wxApp
{
public:
virtual bool OnInit();
};
#endif // _LIFE_APP_H_

View File

@@ -1,6 +0,0 @@
mondrian ICON "mondrian.ico"
#include "wx/msw/wx.rc"
reset BITMAP "bitmaps/reset.bmp"
play BITMAP "bitmaps/play.bmp"
stop BITMAP "bitmaps/stop.bmp"

View File

@@ -1,16 +0,0 @@
#
# File: makefile.b32
# Author: Julian Smart
# Created: 1999
# Updated:
# Copyright:
#
# Makefile : Builds sample for 32-bit BC++
WXDIR = $(WXWIN)
TARGET=life
OBJECTS = $(TARGET).obj dialogs.obj game.obj
!include $(WXDIR)\src\makeprog.b32

View File

@@ -1,19 +0,0 @@
#
# File: makefile.bcc
# Author: Julian Smart
# Created: 1998
# Updated:
#
# Builds a BC++ 16-bit sample
!if "$(WXWIN)" == ""
!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx
!endif
WXDIR = $(WXWIN)
TARGET=life
OBJECTS=$(TARGET).obj dialogs.obj game.obj
!include $(WXDIR)\src\makeprog.bcc

View File

@@ -1,17 +0,0 @@
#
# File: makefile.dos
# Author: Julian Smart
# Created: 1998
# Updated:
#
# Makefile : Builds 16-bit sample, VC++ 1.5
# Use FINAL=1 argument to nmake to build final version with no debugging
# info
WXDIR = $(WXWIN)
TARGET=life
OBJECTS = $(TARGET).obj dialogs.obj game.obj
!include $(WXDIR)\src\makeprog.msc

View File

@@ -1,16 +0,0 @@
#
# File: makefile.g95
# Author: Julian Smart
# Created: 1999
# Updated:
# Copyright: (c) Julian Smart, 1999
#
# Makefile for wxWindows sample (Cygwin/Mingw32).
WXDIR = ../..
TARGET=life
OBJECTS = $(TARGET).o dialogs.o game.o
include $(WXDIR)/src/makeprog.g95

View File

@@ -1,35 +0,0 @@
#
# File: Makefile for samples
# Author: Robert Roebling
# Created: 1999
# Updated:
# Copyright: (c) 1998 Robert Roebling
#
# This makefile requires a Unix version of wxWindows
# to be installed on your system. This is most often
# done typing "make install" when using the complete
# sources of wxWindows or by installing the two
# RPM packages wxGTK.XXX.rpm and wxGTK-devel.XXX.rpm
# under Linux.
#
CC = gcc
PROGRAM = life
OBJECTS = $(PROGRAM).o dialogs.o game.o
# implementation
.SUFFIXES: .o .cpp
.cpp.o :
$(CC) -c `wx-config --cflags` -o $@ $<
all: $(PROGRAM)
$(PROGRAM): $(OBJECTS)
$(CC) -o $(PROGRAM) $(OBJECTS) `wx-config --libs`
clean:
rm -f *.o $(PROGRAM)

View File

@@ -1,18 +0,0 @@
#
# File: makefile.vc
# Author: Julian Smart
# Created: 1999
# Updated:
# Copyright: (c) Julian Smart
#
# Makefile : Builds sample (VC++, WIN32)
# Use FINAL=1 argument to nmake to build final version with no debug info.
# Set WXDIR for your system
WXDIR = $(WXWIN)
PROGRAM=life
OBJECTS = $(PROGRAM).obj dialogs.obj game.obj
!include $(WXDIR)\src\makeprog.vc

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