Compare commits

..

1814 Commits

Author SHA1 Message Date
Bryan Petty
04e089170a This commit was manufactured by cvs2svn to create tag 'Py_0_9_1'.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/tags/Py_0_9_1@20447 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-05-03 13:12:21 +00:00
Patrick K. O'Brien
8c090824f2 Tagged version.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20446 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-05-03 13:12:21 +00:00
Patrick K. O'Brien
5748250fd4 Get the real path.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20445 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-05-03 12:59:25 +00:00
Julian Smart
e0754b1233 APplied patch [ 731719 ] Owner draw font leak/overuse
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20444 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-05-03 11:58:18 +00:00
Patrick K. O'Brien
10fc146318 Updated documentation.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20441 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-05-03 02:35:46 +00:00
Patrick K. O'Brien
643280d7bf Converted to reStructuredText.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20440 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-05-03 02:30:22 +00:00
Vadim Zeitlin
2c439fe7b6 compilation fix when WXUNUSED(arg) == arg
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20426 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-05-01 22:53:59 +00:00
Vadim Zeitlin
fb04fd266a better handling of transparent colour in wxImage conversion (patch 726208)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20422 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-05-01 20:12:36 +00:00
Vadim Zeitlin
859a5e3406 stddef.h required for IRIX compilation (patch 721388)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20419 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-05-01 19:47:16 +00:00
Vadim Zeitlin
8497a90d5c set the index for BEGIN_DRAG events (patch 726308)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20418 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-05-01 19:38:42 +00:00
Robin Dunn
bba6d4f731 typo fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20415 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-05-01 17:55:15 +00:00
Robin Dunn
d7116a786d Round up the virtual size to be a multiple of the scroll rate
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20414 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-05-01 17:54:05 +00:00
Julian Smart
ef1694d6f0 Typo fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20405 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-05-01 14:19:39 +00:00
Julian Smart
3ef4ba7fca Removed backslash in example
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20404 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-05-01 13:40:12 +00:00
Václav Slavík
a9c1f709af fixed Norwegian Bokmal code to conform to new ISO 639-2
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20400 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-30 22:48:01 +00:00
Roman Rolinsky
12f07f17cf 0.1.1-2
-------

Bugs with currentEncoding and frame testing fixed.

Some required parameters are set to default if missing.

Unsupported classes are tolerated, with warning message.

wxScrolledWindow added (to 'control' pulldown menu, not yet to the
tool palette).

Multi-line editing for labels and some values (wxTextCtrl,
wxHtmlWindow).


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20396 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-30 15:20:33 +00:00
Patrick K. O'Brien
fea1441f62 For Python 2.1 compatibility, replaced iteritems() with items().
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20395 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-30 14:19:17 +00:00
Vadim Zeitlin
92f7a00667 fixed configure for autoconf 2.5x (patch from Olly Betts)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20394 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-30 13:31:09 +00:00
Julian Smart
8612f8167b Allow for +/- in the E part
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20392 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-30 12:41:14 +00:00
Julian Smart
98f8dcdab6 Allow 'e' or 'E' in numeric text.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20391 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-30 09:43:03 +00:00
Robin Dunn
b35d468f66 SWIGged updates for wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20389 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-30 01:22:05 +00:00
Robin Dunn
45e2c6f716 SWIGged updates for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20388 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-30 01:15:45 +00:00
Robin Dunn
0a5f534430 SWIGged updates for wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20387 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-30 01:13:31 +00:00
Robin Dunn
6fad3ddb82 Used glob to simplify some file lists
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20386 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-30 00:57:15 +00:00
Robin Dunn
c9cc9d67bc Typo fix, and a bit more info
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20385 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-30 00:56:41 +00:00
Robin Dunn
791ed2d3d1 When the __class__ of a dead object is replaced with _wxPyDeadObject
the __del__ of the original class is now called first.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20384 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-30 00:55:17 +00:00
Robin Dunn
a16bcfcef2 Shaped window support for wxMac, plus a wxSTAY_ON_TOP fix from Egon
<e_lub@yahoo.com>   wxMac requires knowledge before Create that SetShape
will be called so I also added the wxFRAME_SHAPED style flag.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20383 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-30 00:39:15 +00:00
Robin Dunn
e2a07240ee SF Patch #728691, dangling pointer fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20374 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-28 18:44:27 +00:00
Patrick K. O'Brien
ba82f67d6d Better sys.path handling, other minor tweaks.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20373 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-28 17:43:08 +00:00
Patrick K. O'Brien
ef48bdb011 Commented out print statement.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20372 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-28 17:11:49 +00:00
Patrick K. O'Brien
c5ae760f0c Removed old code.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20371 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-28 17:05:52 +00:00
Patrick K. O'Brien
93701e2a00 Removed addition of current dir to sys.path.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20370 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-28 16:10:40 +00:00
Julian Smart
0e66b22778 Doc suggestions applied
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20367 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-28 10:37:08 +00:00
Julian Smart
146dd475ae Fixed [ 728819 ] memory leak in ipcbase.cpp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20366 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-28 10:33:05 +00:00
Vadim Zeitlin
bf0793e2bb *really* fixed searching in sorted arrays
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20361 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-27 21:24:36 +00:00
Robert Roebling
e9e466c134 timer no longer returns IsRunning() after a
one shot timer has fired.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20360 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-27 21:18:17 +00:00
Patrick K. O'Brien
b80ff307a1 Moved to docs directory; some files renamed.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20358 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-27 14:13:54 +00:00
Patrick K. O'Brien
e71a8700c4 New documentation directory.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20357 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-27 14:02:14 +00:00
Stefan Csomor
3728b81a27 backpatch for activate error
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20355 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-26 20:32:05 +00:00
Stefan Csomor
146afc4d24 moving rollover check, was causing hangs upon termination in case ->top was 0
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20354 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-26 20:26:13 +00:00
Vadim Zeitlin
e275abbd9b fixed bug recently introduced in wxSortedArray::Index()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20343 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-25 11:50:56 +00:00
Robert Roebling
4115304e1f Another try to fix the enter/leave freeze while in capture.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20331 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-24 17:39:45 +00:00
Robin Dunn
85aa152733 Restore signal handlers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20325 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-23 21:31:41 +00:00
Robin Dunn
2402819570 Added wxPrintMode enum
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20324 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-23 21:29:57 +00:00
Robin Dunn
78e7a73d4f Changed validator parameter name
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20323 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-23 21:29:36 +00:00
Robin Dunn
ffac66d530 Added some new test cases
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20322 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-23 21:26:15 +00:00
Robin Dunn
5dc5e70e20 Added masked edit controls (wxPython.lib.maskededit) by Jeff Childers
and Will Sadkin.  Updated wxTimeCtrl to use MaskedEdit.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20321 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-23 21:25:23 +00:00
Robin Dunn
376b7bd99e wxCHECK for valid menu in DoPopupMenu (SF Bug# 722230)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20320 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-23 21:11:32 +00:00
Robin Dunn
2695ce5a87 Prevent a Gtk-CRITICAL message when Remove()ing a menu from a menubar
that has submenus.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20319 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-23 21:08:42 +00:00
Robin Dunn
173b026f6c Fix setting the scrollbar positions (SF Bug #721159)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20318 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-23 21:04:26 +00:00
Robert Roebling
0f20644152 Typo in mouse event code.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20315 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-23 06:37:05 +00:00
Ron Lee
004612c018 updated for 2.4.0.8 release.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20308 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-19 23:14:58 +00:00
Patrick K. O'Brien
b7726792a9 Remove autocomplete list size restriction.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20307 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-19 22:18:03 +00:00
Robin Dunn
5712d9371c SWIGged update for wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20306 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-19 22:10:32 +00:00
Patrick K. O'Brien
af48798d9c Changed title.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20305 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-19 22:09:49 +00:00
Robin Dunn
448363cd84 SWIGged updates for wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20304 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-19 22:07:13 +00:00
Patrick K. O'Brien
63ad6bbb1b Added panel with sizer to reduce flicker and allow other controls on
the panel later.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20303 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-19 21:57:18 +00:00
Robin Dunn
6f8b147bf6 SWIGged updats for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20302 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-19 20:30:56 +00:00
Robin Dunn
a58fefdcbb Updated Scintilla to 1.52
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20301 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-19 20:20:45 +00:00
Robin Dunn
94095266a7 Updated Scintilla to 1.52
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20295 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-19 19:56:54 +00:00
Patrick K. O'Brien
66765a238d Better scripting support.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20288 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-19 19:19:29 +00:00
Patrick K. O'Brien
a0dc39c565 Updates.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20276 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-19 01:06:32 +00:00
Robin Dunn
8cd6b6b985 Fixed INOUT parameter.
Removed wrappers for wxMenu::Attach/Detach since they are really only
for internal use and I didn't need them afterall to work around a bug that I
thought I was fighting with...


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20275 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-18 21:33:55 +00:00
Robin Dunn
96de476467 Moved wx/examples to samples
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20274 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-18 21:17:46 +00:00
Robin Dunn
e8e8026ec7 Added AnalogClock class to library
Added NewNamespace sample to the demo
Other demo tweaks


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20273 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-18 21:10:28 +00:00
Patrick K. O'Brien
0776fe07e4 Removed shebangs to facilitate Debian packaging.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20272 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-18 19:30:36 +00:00
Vadim Zeitlin
09c5557e7a removed (duplicated) wxArrayPages
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20271 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-18 18:48:45 +00:00
Chris Elliott
e216a18080 fix typo in makefile
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20270 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-18 16:28:59 +00:00
Vadim Zeitlin
e5503d67f9 removed wxCHOICEDLG_DIALOG_STYLE, use only wxCHOICEDLG_STYLE
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20269 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-18 10:48:35 +00:00
Vadim Zeitlin
62acf6c87c make choice dialog resizeable by default
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20268 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-17 22:23:49 +00:00
Patrick K. O'Brien
f474f6a241 Fix refresh problem on Win98.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20267 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-17 21:42:54 +00:00
Robin Dunn
4a1a1d848d Ensure that submenus are also added to the system when their parent
menu is used in a wxMenuBar::Repalce call.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20262 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-17 20:06:17 +00:00
Patrick K. O'Brien
99a5137c2d Fix line endings for Win and Mac.
Separate compile and exec steps for better error handling.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20259 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-17 19:46:46 +00:00
Patrick K. O'Brien
6b0fd7830e Buffer display name on notebook tab hack fest. This should be
refactored and made a method of buffer, perhaps
buffer.getDisplayName().


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20257 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-17 18:48:35 +00:00
David Webster
1176373c57 Fix this buggy makefile
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20256 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-17 17:38:33 +00:00
David Webster
c506b569a9 Catch up Os/2 to the state of the branch
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20255 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-17 17:24:45 +00:00
David Webster
6a6e183c12 for true and false
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20254 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-17 17:23:03 +00:00
Václav Slavík
f1ebf6088a fixed memory leak
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20243 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-16 22:33:54 +00:00
Robin Dunn
cf83df6d61 Backported the controls on a toolbar fix for wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20242 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-16 21:05:53 +00:00
Patrick K. O'Brien
08efbf69b1 One shell for each editor; good for testing namespace issues.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20241 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-16 17:25:44 +00:00
Patrick K. O'Brien
c678a73f7e Set focus to the shell.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20240 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-16 17:23:39 +00:00
Robin Dunn
ce60b8194a Some NewId() --> wxNewId() changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20239 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-16 15:05:19 +00:00
Julian Smart
a593039f68 Fixed memory leak when setting new wxMask for wxBitmap
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20236 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-16 09:54:23 +00:00
Robin Dunn
464242f3d1 SWIGged updates for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20233 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-16 06:10:10 +00:00
Robin Dunn
141e492284 Added wxMenu Attach/Detach helpers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20232 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-16 06:09:47 +00:00
Robin Dunn
8b52d1be62 Start actually returns bool
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20231 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-16 06:08:59 +00:00
Robin Dunn
1e89000cc8 Add more info about Scintilla changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20230 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-16 06:07:55 +00:00
Robin Dunn
ce589e8291 Updated the Makefile.in and setup.py with all the new dirs for the wx
and py packages.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20229 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-16 06:06:27 +00:00
Patrick K. O'Brien
5cc33b058c Moved to editwindow.py.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20228 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-15 22:10:27 +00:00
Patrick K. O'Brien
64386c666c Major restructuring to get a better foundation.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20227 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-15 22:03:03 +00:00
David Elliott
9d5aa5d876 When saving the editable state, use the real state (m_editable)
Same change as 1.53 -> 1.54


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20219 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-14 18:51:54 +00:00
Julian Smart
fad7abc046 Test for result of searching for wxID_CANCEL button
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20207 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-13 22:56:09 +00:00
Julian Smart
824d857df1 Set wxPendingEvents to NULL after deletion
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20206 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-13 22:54:32 +00:00
Václav Slavík
a24ce8f811 backported wxFileName::MakeAbsolute
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20201 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-13 17:09:37 +00:00
Václav Slavík
919d1806cc removed outdated docs (fixes bug #698139)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20174 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-12 22:29:04 +00:00
Václav Slavík
89b6b3cccb applied patch to fix tooltips charset
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20171 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-12 18:40:48 +00:00
Robin Dunn
d00fe0d422 Fixed wxMac's wxTextCtrl::SetSelection so that (-1,-1) will select the
entire value like other ports do.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20145 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-11 22:38:56 +00:00
Vadim Zeitlin
7a7fb211dc return wxKILL_OK in krc instead of leaving it unchanged
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20144 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-11 22:32:44 +00:00
Vadim Zeitlin
fd4b068652 fixed bug with searching in sorted arrays
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20143 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-11 22:05:24 +00:00
Vadim Zeitlin
ae8b9dcc4a allow vetoing wxEVT_COMMAND_LIST_COL_BEGIN_DRAG (backported from HEAD)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20142 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-11 19:08:41 +00:00
Stefan Csomor
5c80bed5e7 cleanup and classic fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20141 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-11 17:45:06 +00:00
Robin Dunn
1b3864922c Added a sample to the demo specifically for PopupMenus
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20140 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-11 17:12:07 +00:00
Robin Dunn
62e3042f36 Backported fix allowing for wxMac popup menus to have submenus
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20139 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-11 17:10:57 +00:00
Robin Dunn
efe8d3eb34 Test a submenu on the popup menu
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20138 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-11 15:20:49 +00:00
Patrick K. O'Brien
5d054a19fd Fix column count.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20132 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-10 23:12:04 +00:00
Václav Slavík
83e991d00e don't use deprecated macros
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20131 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-10 23:01:42 +00:00
Robin Dunn
d268268837 SWIGged updates for wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20130 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-10 21:58:06 +00:00
Robin Dunn
d8ac6a6267 SWIGged updates for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20129 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-10 21:58:03 +00:00
Robin Dunn
d6b4de54b5 SWIGged updates for wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20128 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-10 21:57:22 +00:00
Robin Dunn
ba8161f46b Added __nonzero__ method to more classes that have a Ok or IsOk
method.  This allows code like "if obj: ..." to be the same as
"if obj.IsOk(): ..."


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20125 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-10 19:45:27 +00:00
Robin Dunn
59f89e9738 No need to have the old PyCrust in the new namespace
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20124 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-10 19:42:58 +00:00
Robin Dunn
88cd49f777 Added __nonzero__ method to more classes that have a Ok or IsOk
method.  This allows code like "if obj: ..." to be the same as
"if obj.Ok: ..."


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20123 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-10 19:38:11 +00:00
Robin Dunn
d2d844fa99 Test code for removing a submenu
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20122 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-10 19:35:39 +00:00
Robin Dunn
9b945ca87a SF patch [ 718899 ] wxGrid - output parameters
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20120 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-10 15:49:00 +00:00
Vadim Zeitlin
4140358663 add missing symbols to wxBase
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20119 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-10 13:15:22 +00:00
Roman Rolinsky
22b3452638 - changed encoding selection, removed -i option
- replace command


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20117 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-10 09:31:39 +00:00
Gilles Depeyrot
8ed35e7493 if we are not in the main thread, output the assert directly and trap since
dialogs cannot be displayed


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20116 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-10 06:13:48 +00:00
Robin Dunn
ea841e4340 SWIGged updates for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20113 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-09 19:44:44 +00:00
Robin Dunn
ed23e4b31b SWIGged updates for wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20112 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-09 19:43:17 +00:00
Robin Dunn
5d5c8aa70e Regenerated the default script batch files
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20111 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-09 19:43:05 +00:00
Robin Dunn
9e52ade763 Demo tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20110 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-09 19:41:48 +00:00
Robin Dunn
62107846d2 SWIGged updates for wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20109 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-09 19:40:08 +00:00
Robin Dunn
2321b3c778 Added __nonzero__ method to wxTreeItemId.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20108 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-09 19:28:38 +00:00
Robin Dunn
6416289540 Updated demo for new Py packages, and updated the html-ized version of stc.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20107 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-09 19:14:15 +00:00
Robin Dunn
8245592fde wxHtmlWindow::LoadFile is now available, added wxNotebookPage helper class
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20106 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-09 19:13:07 +00:00
Robin Dunn
c2a79c3e1c Removed the old tests that I havn't looked at or used for years
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20105 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-09 18:54:43 +00:00
Robin Dunn
5f933e58ef Patrick O'Brien's PyCrust package has been renamed to Py and now
includes several new tools.  As part of the change the location of the
pacakge has changed as well, it is now accessible as "from wxPython
import py" (or "from wx import py" using the new namespace.)  There
are still some transition moudules in the wxPython.lib.PyCrust mackage
that will issue a warning and then import what is needed from the new
package.  These will be removed in a future release.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20104 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-09 17:44:53 +00:00
Robin Dunn
81c9a1a8e7 Use a different window style to help ensure there are no window
decorations added


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20100 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-09 16:26:35 +00:00
Robin Dunn
4f10f2e0e1 SWIGged updates for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20099 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-09 16:24:53 +00:00
Robin Dunn
ab829dd986 Some updates for wxHtml classes, and other tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20098 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-09 16:23:30 +00:00
Robin Dunn
f50d205d88 Updated version number
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20097 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-09 16:04:18 +00:00
Václav Slavík
e19e065d15 forgot to add LoadFile
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20096 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-09 16:02:31 +00:00
Robin Dunn
e231bca2ab More wxSTC tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20092 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-09 01:37:05 +00:00
Robin Dunn
fce40eebe3 MOre wxSTC tweaks and a buffer overflow fix too.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20091 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-09 01:06:42 +00:00
Robin Dunn
058eaf8285 Fix VC6 compile errors
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20090 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-09 00:02:28 +00:00
Robin Dunn
09aceb98d9 Demo tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20089 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-08 22:58:03 +00:00
Robin Dunn
9e94c29759 CHanged IconWidth from a constant to a function
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20088 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-08 22:56:31 +00:00
Robin Dunn
e5088d14a2 Updated wxSTC to Scintilla 1.51
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20087 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-08 22:41:31 +00:00
Václav Slavík
a0bcb6934e backported GTK2 default font fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20078 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-08 22:28:30 +00:00
Robin Dunn
b28d567bb0 Turn off all border styles for the inner window
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20077 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-08 22:24:14 +00:00
Václav Slavík
c44ad973b9 partially backported wxHTML SetFonts improvements
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20070 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-07 22:19:19 +00:00
Václav Slavík
3d20fa7032 XRC fixes for <object_ref> and relative file names
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20068 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-07 22:16:27 +00:00
Václav Slavík
dc5003c6f3 backported wxFileConfig fix for Unicode mode: always use utf-8
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20066 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-07 22:14:15 +00:00
Václav Slavík
0da58ad502 backported correct CDATA and <script> handling
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20065 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-07 22:11:53 +00:00
Václav Slavík
9d308583a4 more backported chnages
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20064 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-07 22:10:44 +00:00
Václav Slavík
9a345c9277 backported toolbar handler improvements
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20063 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-07 22:09:21 +00:00
David Elliott
9487b29313 Fix from HEAD 1.87 -> 1.88
After delete wxPendingEventsLocker;  wxPendingEventsLocker = NULL; so that
the wxEvent code doesn't try to use it while cleaning up.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20061 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-07 18:08:58 +00:00
Vadim Zeitlin
f8faaa532a fix bug with not accepting write-only formats in d&d (backported from head)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20041 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-06 19:43:26 +00:00
Julian Smart
094cb15ba0 It turns out there was a change to mimetype.h (addition of
parameters) so must revert the previous backport.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20039 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-06 19:09:15 +00:00
Julian Smart
e5490e6eb8 Add support for GTK2 label mnemonics
Backported from head


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20036 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-06 17:55:52 +00:00
Julian Smart
91c04f6445 Improved X11 ShowFullScreen
Backported from head


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20034 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-06 17:43:12 +00:00
Julian Smart
b5bc85ca42 Backported fix: use GNOME2's /usr/share/pixmaps/document-icons in wxMimeTypesManager
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20033 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-06 17:20:10 +00:00
Julian Smart
680011889d Fixes for compilation with OpenWatcom
Backport from head: most were already applied


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20032 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-06 17:17:05 +00:00
Julian Smart
af21489292 Backported wxrc fixes from head
1) fixed compilation of wxBitmap, wxIcon toplevel nodes
2) fixed wxrc when using -o dirname/filename


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20031 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-06 17:09:23 +00:00
Julian Smart
2d50f4b5f2 Applied [ 703260 ] wxFontEncoding Problem
Backported from trunk


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20030 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-06 16:53:16 +00:00
Julian Smart
466a7a71c7 Implement wxExecute with proper callback on Mac OS X
Backported from head


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20029 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-06 16:47:48 +00:00
Julian Smart
5b7fd7d337 Implemented wxTextCtrl::Remove/Replace() for GTK2
Backport from head


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20028 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-06 16:38:28 +00:00
Julian Smart
0cf2523391 Applied patch [ 705441 ] Radio button consecutive groups bug
Backported from head


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20027 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-06 16:33:52 +00:00
Julian Smart
2b3986f719 Alt-letter didn't switch focus to a spin ctrl following static control
with "&letter" accel
Backport from head for
http://sf.net/tracker/index.php?func=detail&aid=672974&group_id=9863&atid=109863


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20026 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-06 16:28:12 +00:00
Julian Smart
846173c976 Fix for bug whereby owner-drawn buttons didn't draw multiline labels correctly
Backported from head


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20025 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-06 16:23:09 +00:00
Julian Smart
a5243c0dbe Accept '\r' as delimiter when parsing dates (bug #684617)
Backported from head


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20023 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-06 15:39:39 +00:00
Julian Smart
bf9728b3d7 Fixed memory leak in generic wxFileDialog
Backported from head


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20022 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-06 15:36:12 +00:00
Julian Smart
3fd1786b81 Fixed memory leak in wxMimeTypesManager
backport from head


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20021 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-06 15:30:54 +00:00
Julian Smart
2c7015513f Applied [ 668155 ] Refresh problem when msgbox is shown (wxUniversal)
Backport with modification from CVS head


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20020 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-06 15:19:53 +00:00
Julian Smart
0733b715d6 Fix for wxProgressDialog::Update() signature
backported from head


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20019 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-06 15:15:37 +00:00
Julian Smart
c9cdb51104 Fixes for wxLocale::Init and Borland C++
Backported from head


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20017 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-06 15:08:12 +00:00
Julian Smart
9e1c4c0ab4 Use ES_DISABLENOSCROLL to work around the vertical scrollbar bug in
wxTE_RICH2 text control
Backport from head


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20016 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-06 15:03:08 +00:00
Julian Smart
091adf6727 wxCondition doc update from head
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20015 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-06 14:52:13 +00:00
Julian Smart
410b0c776d wxFrame::Maximize(FALSE) would maximize the window if
called before showing it
Backport from head


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20014 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-06 14:45:30 +00:00
Julian Smart
b0b5189e03 wxStopWatch::Start() didn't resume it contrary to the docs
Backport from head


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20013 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-06 14:41:57 +00:00
Julian Smart
3b4b3d8550 Fix for deleting entries at root level in wxFileConfig
backported from head


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20012 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-06 14:38:19 +00:00
Julian Smart
e05c4ff66a Backported [ 622089 ] wxTR_EDIT_LABELS vs wxTR_MULTIPLE style
Fix for wxTreeCtrl label editing in wxTR_MULTIPLE mode


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20011 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-06 14:31:20 +00:00
Julian Smart
87d05605b5 wxCaret::SetSize correction for showing caret
Backported from head


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20010 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-06 14:26:29 +00:00
Julian Smart
bc9406afe6 Fx for sending event from wxCheckListBox::Check().
Backported from head.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20009 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-06 14:20:49 +00:00
Julian Smart
9856829d76 Fix for explicit keyword detection (VC++)
backported from head


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20008 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-06 14:06:36 +00:00
Julian Smart
eddd296499 Don't use stipples in DoDrawText (backported from CVS head)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20007 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-06 12:28:14 +00:00
Julian Smart
bed2d80c90 Set orientation for scrollbar events (backported from CVS head)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20006 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-06 12:23:01 +00:00
Julian Smart
09007b50a0 Fixed assert (and crash in debug) in wxFileConfigGroup::DeleteSubgroupByName
Backported from CVS head


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20005 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-06 12:19:23 +00:00
Julian Smart
98a67aa507 Backported SetScrollbars bug fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20004 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-06 12:03:09 +00:00
Julian Smart
6c11eb5b41 Backported fix: wxMSW::wxStaticText::GetBestSize() was wrong by '&' width
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20002 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-06 11:35:32 +00:00
Julian Smart
f7732c4385 Fix for getting all frames from GIF animation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19989 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-05 18:59:50 +00:00
Julian Smart
5a242608b5 Reverted previous patch
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19988 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-05 13:11:25 +00:00
Julian Smart
756284f00a Applied patch [ 715449 ] Fix MSW cursor errors
(already implicit in CVS trunk)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19986 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-05 10:51:54 +00:00
Julian Smart
0bab18a8e0 Added a const for CW compilation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19985 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-05 10:38:18 +00:00
Julian Smart
9279e47404 Applied patch [ 705301 ] Don't send event for wxSplitter::Unsplit
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19984 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-05 10:34:59 +00:00
Robin Dunn
031febef4f Handle checkable items the right way in all cases
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19977 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-04 22:21:38 +00:00
Robin Dunn
ffa0f3dd9b Added a new "wx" package that will dynamically import from the
wxPython package and rename wxFooBar --> FooBar.  That means that
people imports without "import *" and can use names like wx.Frame
instead of wx.wxFrame.  This is phase 1 of a full transition to the
new namespace.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19976 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-04 17:59:07 +00:00
Robin Dunn
915f4a09b5 Added a new "wx" package that will dynamically import from the
wxPython package and rename wxFooBar --> FooBar.  That means that
people imports without "import *" and can use names like wx.Frame
instead of wx.wxFrame.  This is phase 1 of a full transition to the
new namespace.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19975 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-04 17:51:27 +00:00
Robin Dunn
d38b3b9620 Made an eopty stub of SetSelection for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19974 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-04 17:34:41 +00:00
Roger Gammans
09e6ff8c42 * rename maxOnOverflow parameter to CoordToRowOrCol() to clipToMinMax
* ensure CoordToRowOrCol() range is  0 -> nMax if clipOnMinMax is set
                                and -1 -> nMax if clipOnMinMax is not set

 * check on uses of YToRow() / XToCol() and replace with
   calls internalYToRow() / internalXToCol() removing any external
   overflow handling where appropriate.

* Add tests for overflow to prevent sending 'off grid' label events,
   would be indistinguishable from CornerLabel events.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19971 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-03 21:08:43 +00:00
Robin Dunn
8ac35652ba Correction to my new menu code: handle submenus on menubar menus
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19970 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-03 21:01:52 +00:00
Robin Dunn
0cc89f950e Fix menu event propogation to be consistent across platforms, and with
the docs.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19968 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-03 18:40:46 +00:00
Robin Dunn
073233381b Fixed menu event propogation to be consistent across platforms, and
with the docs.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19967 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-03 18:39:20 +00:00
Julian Smart
b6f6e5a77e Applied patch [ 706329 ] [wxMac] Fixes wxGetLocalTimeMillis
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19963 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-03 13:01:59 +00:00
Julian Smart
4db672bd7c Applied patch [ 708377 ] Make NET (smapi.cpp) UNICODE compatible
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19961 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-03 10:42:56 +00:00
Julian Smart
54a6eb4dee Applied patch [ 713459 ] wxUniv/GTK compilation fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19960 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-03 10:29:07 +00:00
Julian Smart
d8134e0bec Unicode-enabled the STC sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19958 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-03 09:09:06 +00:00
Robin Dunn
24d3bad8d6 SWIGged updates for wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19957 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-03 02:49:09 +00:00
Robin Dunn
592778bad6 SWIGged updates for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19956 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-03 02:48:59 +00:00
Robin Dunn
9f8ef6c168 SWIGged updates for wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19955 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-03 02:48:43 +00:00
Robin Dunn
9339eb0fe4 fixed typo in parameter name
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19954 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-03 02:27:54 +00:00
Robin Dunn
11acaf87d7 Added SetSelection
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19953 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-03 02:27:33 +00:00
Robin Dunn
a0973ce40c Added a comment
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19952 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-03 02:27:03 +00:00
Robin Dunn
3bd7099bb4 removed special case for wxMac, not needed any more
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19951 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-03 02:21:19 +00:00
Julian Smart
f17ce86047 Applied patch [ 705212 ] wxTextCtrl::SetSelection() for wxGTK2
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19939 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-02 17:55:42 +00:00
Julian Smart
8686744068 Applied [ 703017 ] TreeCtrl sample build fails when using generic control
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19937 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-02 14:40:35 +00:00
Julian Smart
3dbebf5144 Applied patch [ 700313 ] Allow wxUSE_OWNER_DRAWN = 0
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19936 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-02 14:26:58 +00:00
Julian Smart
125372dd45 Applied [ 700293 ] FL Unicode patches
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19933 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-02 14:14:13 +00:00
Julian Smart
46be20d9be Applied patch [ 694561 ] FL Release build DLL include path
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19931 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-02 11:15:10 +00:00
Julian Smart
84406ac8be Fixed version convention for VC++ project files
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19927 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-02 08:07:24 +00:00
Robin Dunn
58ccbbc7b7 Made the version number information more robust and uh, informative.
Also added asserts to check that the major.minor versions of wxPython
and wxWindows match.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19926 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-02 01:49:07 +00:00
Robin Dunn
d842ec8482 Demo tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19925 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-02 01:47:11 +00:00
Robin Dunn
509b8f9b5f Added missing method
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19924 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-02 01:46:56 +00:00
Robin Dunn
4d2a9c1a5f cleanup
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19923 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-02 01:46:44 +00:00
Julian Smart
e63aab5adf Version changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19920 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-01 16:49:41 +00:00
Robin Dunn
e44b4b86f1 SWIGged updates for wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19917 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-01 05:15:09 +00:00
Robin Dunn
9d05742271 SWIGged updates for wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19916 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-01 01:51:26 +00:00
Robin Dunn
c47e337d22 Forgot to add this image...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19915 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-01 01:50:41 +00:00
Robin Dunn
66a1929a95 Updated ShapedWindow demo, don't try to start out without the shape.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19914 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-01 01:40:21 +00:00
Robin Dunn
8756135df1 README tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19913 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-01 01:39:39 +00:00
Robin Dunn
f6f41ac61a SWIGged code updates for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19912 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-01 01:38:07 +00:00
Robin Dunn
c21b5bcd98 Changed wxSWIG to not generate Python code using apply, (since it will
be deprecated in the future) wxSWIG will use spam(*args, **kw) syntax
instead.  Also changed the generated __repr__ methods to be a bit more
informative.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19911 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-01 01:36:08 +00:00
Václav Slavík
9137f764b6 XRC's unknown widget container handles removal of the widget now (backported)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19910 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-31 22:03:28 +00:00
Mattia Barbon
deae97bfa5 Applied patch [ 702254 ] Life: Fix to page scrolling
from Hugh Gibson (backport).


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19880 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-30 19:15:24 +00:00
Robin Dunn
ebad4a640c Fixed compile warning
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19877 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-30 06:22:12 +00:00
Robin Dunn
2469ff1643 Allow label edits
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19876 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-30 06:21:50 +00:00
Robin Dunn
70f8442083 Added ShapedWindow sample to the wxPython demo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19875 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-30 06:20:45 +00:00
Robin Dunn
17d270987a Added wxTLW::SetShape and implementations for wxGTK, wxMSW and an
empty stub for wxMac.
Added some generic helpers and a new ctor to wxRegion.
Added samples/shaped.
(Backport to 2.4 from 2.5)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19874 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-29 19:25:07 +00:00
Robin Dunn
28b9bd356d Forgot to remove the "virtual" for binary compatibility...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19873 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-29 19:17:46 +00:00
Robin Dunn
8c879ff9c5 Added wxTLW::SetShape and implementations for wxGTK, wxMSW and an
empty stub for wxMac.
Added some generic helpers and a new ctor to wxRegion.
Added samples/shaped.
(Backport to 2.4 from 2.5)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19872 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-29 19:03:04 +00:00
Bryan Petty
9f5fc44733 This commit was manufactured by cvs2svn to create branch
'WX_2_4_BRANCH'.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19871 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-29 19:03:04 +00:00
Václav Slavík
2721bd7e21 fixed bug #708570: Request 'silver' be allowed as a XPM value
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19861 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-29 10:19:32 +00:00
Chris Elliott
1ed0735c53 fix build for watcom
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19834 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-27 13:35:30 +00:00
Chris Elliott
23200777d1 fix build for watcom
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19833 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-27 13:23:04 +00:00
Chris Elliott
19778f31bd fix build for watcom
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19831 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-27 12:25:20 +00:00
Chris Elliott
38643da5dc fix lib build for watcom
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19830 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-27 12:12:49 +00:00
Chris Elliott
c7999962a3 fix for new watcom
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19821 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-26 20:44:28 +00:00
Julian Smart
9eb210eadb Fix for splittree under wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19810 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-26 14:17:00 +00:00
Chris Elliott
bcbdee05d3 modify makefile for watcom
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19803 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-25 21:26:02 +00:00
Chris Elliott
068dd44056 modify makefile for watcom
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19802 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-25 21:17:41 +00:00
Julian Smart
607422284d Use virtual functions to help splittree work
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19800 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-25 18:49:34 +00:00
Robin Dunn
5022eecae0 demo tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19792 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-25 04:10:08 +00:00
Robin Dunn
5e0033c406 Doc-string updates
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19782 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-24 22:46:38 +00:00
Julian Smart
58a44689c3 Applied patch [ 705663 ] Fix capture mouse bug in wxGrid
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19777 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-24 21:00:11 +00:00
Vadim Zeitlin
82e3ab8724 print dialogs ignore user paper settings in non C locale (patch 696835)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19771 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-24 20:31:24 +00:00
Robin Dunn
9e6fc6c899 Added wxScrolledPanel from Wil Sadkin
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19768 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-24 19:48:42 +00:00
Vadim Zeitlin
8c95ef116d Unicode compilation fix (bug 694826)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19766 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-24 19:34:30 +00:00
Robin Dunn
4cc1012b97 Turn the dbg logger into a Logger class
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19762 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-24 19:23:49 +00:00
Julian Smart
0bbcffb2f5 Fix by Milan Babuskov <albis@eunet.yu> in MovePageUp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19754 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-24 17:21:57 +00:00
Chris Elliott
cec20f68b2 fix reference to obsolete b32univ file
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19739 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-23 20:26:05 +00:00
Robin Dunn
a882b4926b Some fixes for Will's debug logger
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19715 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-22 19:34:23 +00:00
Václav Slavík
b836e27d04 XRCID lookup now handles standard IDs correctly (backported to 2.4)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19704 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-22 13:48:52 +00:00
Václav Slavík
ca81525a72 fixed MSLU link
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19685 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-21 23:14:26 +00:00
Robin Dunn
885e38e0c4 OSX build tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19682 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-21 22:37:32 +00:00
Robin Dunn
ec5a3c3d14 If not building standalone then PYTHONHOME shoudl not be set.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19681 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-21 22:37:09 +00:00
Robin Dunn
0290bdd203 Little bug fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19680 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-21 22:35:49 +00:00
Robin Dunn
901384b2fc SWIGged updates for wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19675 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-21 19:21:15 +00:00
Robin Dunn
c01309bf55 Updated build scripts for wxPythonOSX
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19674 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-21 19:17:31 +00:00
Robin Dunn
9ca5ec8bfc SWIGged updates for wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19673 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-21 19:16:14 +00:00
Robin Dunn
68efcd79bc SWIGged updates for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19672 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-21 18:58:03 +00:00
Robin Dunn
8e10035b0a Instead of always logging C++ assertions, added wxPYAPP_ASSERT_LOG
flag to turn it on.  In most cases turning it into an exception (the
default behavior) is enough.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19671 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-21 18:57:05 +00:00
Robin Dunn
854b358232 Version number update
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19670 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-21 18:54:43 +00:00
Robin Dunn
b8b2cdd3ea Use the right address for the tips
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19669 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-21 18:53:07 +00:00
Chris Elliott
a548432b31 fix memory leak as Dimitri suggested
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19657 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-21 10:01:01 +00:00
Roman Rolinsky
86536988d6 added default dialog styles
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19656 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-21 07:45:05 +00:00
Robin Dunn
159f1012bc Removed more distrib stuff that is no longer used
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19653 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-21 04:06:08 +00:00
Robin Dunn
fe6531fc30 Removed Mac build scripts and such that are no longer used.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19652 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-21 03:40:37 +00:00
Robin Dunn
47c902be43 Tweaks to MacPython build scripts and such
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19651 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-21 03:36:14 +00:00
Robin Dunn
78e5c4e9b5 Updated bundlebuilder to version in Python 2.3a2 + my --libs patch
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19650 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-21 03:31:14 +00:00
Roman Rolinsky
3416be29f9 true/false -> True/False
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19646 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-21 00:31:59 +00:00
Roman Rolinsky
b22eeb9e6d added True and False consts if not present
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19645 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-21 00:25:28 +00:00
Roman Rolinsky
63c691437e fixes for wxMSW, more efficient code for enabling/disabling groups
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19644 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-21 00:24:37 +00:00
Roman Rolinsky
844b310037 added fix for readme window dimensions (wrong text extent returned)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19643 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-21 00:23:31 +00:00
Robin Dunn
bfe54e52da Updated PyCrust to version 0.9
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19642 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-20 23:14:32 +00:00
Robin Dunn
4764327b40 Better cleanup of the copy of CVS tree
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19641 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-20 23:02:00 +00:00
Roman Rolinsky
301007ffa5 changed dontpanic message a little
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19640 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-20 20:32:42 +00:00
Roman Rolinsky
8187d73595 simplified font settings
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19638 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-20 20:24:17 +00:00
Roman Rolinsky
ba12c0a766 new tree icons
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19637 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-20 20:05:26 +00:00
Roman Rolinsky
7c834ad6d6 New images for tools
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19636 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-20 20:04:21 +00:00
Roman Rolinsky
c9569d2308 - tools panel
- menu IDs separated from PullDownMenu in ID_NEW class

- some icons changed

- button size for panel is calculated dinamically

- some menu command rearranged, static bitmap added

- status bar shows ctrl and shift state

- refresh bug (double-refreshing) fixed

- after tree selection changes, focus is set to tree control


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19635 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-20 20:01:51 +00:00
Roman Rolinsky
fe84bd4bdc Tools panel class
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19634 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-20 19:58:26 +00:00
Robin Dunn
a568802deb Just copy (and cleanup) from workspace instead of doing an export from CVS
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19632 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-20 00:38:05 +00:00
Robin Dunn
544f6e1665 Tool for simple debug messages, or can integrate with wxLog
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19631 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-20 00:37:19 +00:00
Robin Dunn
7ef8b21728 true/false --> True/False conversions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19630 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-20 00:36:06 +00:00
Robin Dunn
1356efc2eb copyright year
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19629 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-19 23:07:26 +00:00
Robin Dunn
ef68facf71 SWIGged updates for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19628 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-19 22:55:58 +00:00
Robin Dunn
c97cc71ff0 SWIGged updates for wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19627 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-19 22:55:25 +00:00
Robin Dunn
aa786eb505 SWIGged updates for wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19626 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-19 22:54:34 +00:00
Robin Dunn
4932ae4a15 Ensure some data files get installed.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19625 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-19 22:48:41 +00:00
Robin Dunn
96e5c58555 Version number
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19624 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-19 22:20:01 +00:00
Robin Dunn
83609d6f72 Fixed a interpreter lock problem in the __eq__ and __ne__ methods in wxSize and etc.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19623 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-19 22:09:59 +00:00
Julian Smart
bb722da782 Cast this to wxWindow* for passing to destroyEvent
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19622 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-19 21:56:56 +00:00
Robin Dunn
37b68131d0 SWIGged updates for wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19616 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-19 05:05:21 +00:00
Robin Dunn
9b07c5a436 SWIGged updates for wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19615 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-19 04:15:57 +00:00
Robin Dunn
d0acfee780 SWIGged updates for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19614 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-19 03:47:14 +00:00
Robin Dunn
375c124f0d Gave up on generating a warning upon the use of the old true/false or
TRUE/FALSE values.

Fixed the typemap that converts strings to wxColours to also accept
unicode.

Typo fixed


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19613 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-19 03:45:44 +00:00
Robin Dunn
80977b9444 Demo tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19612 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-19 03:42:34 +00:00
Robin Dunn
d4507593e1 Updated build instructions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19611 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-19 03:36:04 +00:00
Robin Dunn
50c09563d0 Fixed problem where the wrong class name could sometimes be used for OOR
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19610 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-19 03:28:36 +00:00
Robin Dunn
003d61a3e6 Backported recent wxGenericTreeCtrl fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19609 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-19 01:02:45 +00:00
Václav Slavík
bd3b579a5a fix wxrc-generated c++ code to work in Unicode mode (patch #704064)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19586 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-16 20:27:15 +00:00
Robert Roebling
3d6c0694f6 Text attributes for GTK2.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19585 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-16 13:47:47 +00:00
Robert Roebling
1c411e3d43 Better scrolling to cursor.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19584 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-16 13:28:56 +00:00
Chris Elliott
004d7d7445 fix build for borland 5.0
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19576 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-14 10:47:51 +00:00
Robin Dunn
bee5ccc4aa Prevent crash in case nothing is selected
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19573 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-12 19:48:45 +00:00
Roman Rolinsky
6fc391d57d small change
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19572 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-12 11:12:07 +00:00
Roman Rolinsky
ea85794973 added xmlFlags in wxXmlResource() call
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19571 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-12 11:11:54 +00:00
Roman Rolinsky
71ae0a1095 added xmlFlags and -i option to turn off wxXRC_USE_LOCALE
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19570 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-12 11:10:06 +00:00
Robin Dunn
ee6beb764e Fix how the return value of OnInit is checked, also DECREF the
PyObjects used there.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19568 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-12 08:52:43 +00:00
Robin Dunn
1b8fa9023e Be sure to remove files from the new pycrust dirs when uninstalling
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19567 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-12 06:06:10 +00:00
Robin Dunn
867509e0e2 Add command to make only the SRPM
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19566 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-12 06:04:07 +00:00
Robin Dunn
facb711c38 Forgot to mention the new PyCrust version
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19565 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-12 06:03:07 +00:00
Stefan Csomor
7263a166db corrected background selection for mac and added appearance savvy disclosure triangles
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19563 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-11 22:05:58 +00:00
Robin Dunn
45a9c81318 Version number
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19562 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-11 21:54:41 +00:00
Robin Dunn
d30eb33cc5 SWIGged updates for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19561 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-11 21:41:18 +00:00
Robin Dunn
186e869e81 SWIGged updates for wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19560 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-11 21:39:47 +00:00
Robin Dunn
4b994df96f SWIGged updates for wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19559 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-11 21:37:08 +00:00
Stefan Csomor
c1e39ae9b3 moved fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19558 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-11 20:00:58 +00:00
Robin Dunn
79815f2675 Updated to 0.9b of PyCrust
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19556 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-11 19:48:29 +00:00
Robin Dunn
9920902f18 Patch from Will Sadkin for dealing with emoty values
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19555 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-11 19:45:41 +00:00
Robin Dunn
a0c711c0d2 Make _DeprecatedNonBool a little more friendly
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19554 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-11 19:45:01 +00:00
Robin Dunn
00b7e47d1b demo tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19553 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-11 19:43:44 +00:00
Robin Dunn
a9dbe85be2 demo tweak for better testing
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19552 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-11 19:42:33 +00:00
Robin Dunn
843ab900d9 Updated to 0.9b of PyCrust
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19551 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-11 19:41:55 +00:00
Robin Dunn
733e6b6d19 Updated pycolourchooser
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19550 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-11 02:00:55 +00:00
Robin Dunn
6049fb0a7d Typos fixed, more true/false --> True/False changes, etc
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19549 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-11 01:13:20 +00:00
Robin Dunn
829be437b1 version number
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19548 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-11 01:09:11 +00:00
Robin Dunn
de0aa99a70 The statusbar should start with one field, not zero
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19547 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-11 00:01:03 +00:00
Robin Dunn
84998713ea more informative error messages
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19546 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-10 23:58:30 +00:00
Robin Dunn
364faf634e If zero time is specified, don't try to sleep when using a timer.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19545 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-10 23:38:17 +00:00
Robin Dunn
8774540e37 Don't clear the HWND until after the UnsubclassWin so the old WndProc
will be restored.  Otherwise we get messages after the wxTextCtrl has
been destroyed.  (backport)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19544 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-10 23:33:47 +00:00
Gilles Depeyrot
ef5d4fc7e0 do not compile c++ files which should only be included
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19536 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-10 20:00:31 +00:00
Vadim Zeitlin
f79cf03477 fixed a serious bug in Shrink()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19535 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-10 18:11:15 +00:00
Stefan Csomor
720d270f0e border corrections for Aqua
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19531 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-09 17:58:56 +00:00
Robin Dunn
1c24ca6cdb Updated build instructions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19527 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-07 21:14:15 +00:00
Robin Dunn
7cf9a3037f Updated various readme's
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19522 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-06 22:08:30 +00:00
Robin Dunn
034891ed2b Adding pycwrap script which will launch another wxPython app adding a PyCrust window
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19518 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-06 19:14:11 +00:00
Robin Dunn
2714ef2ab0 removing so it can be re-added with the execute bit set
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19517 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-06 19:09:51 +00:00
Robin Dunn
d45aa93b61 Build/distrib things
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19516 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-06 19:04:58 +00:00
Robin Dunn
5505bde35b SWIGged updates for wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19508 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-06 00:21:44 +00:00
Robin Dunn
2c25b1aa80 SWIGged updates for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19507 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-05 23:53:17 +00:00
Robin Dunn
9ce0bb1007 SWIGged updates for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19506 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-05 23:45:56 +00:00
Robin Dunn
51f129fb20 update change log
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19505 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-05 23:19:11 +00:00
Robin Dunn
0539ad924a demo tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19504 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-05 23:17:44 +00:00
Robin Dunn
14f4cf769e the generic listctrl has EditLabel now too.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19503 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-05 23:13:30 +00:00
Robin Dunn
2725571fda Build/distrib things for the new pycwrap too and the new PyCrust
pacakge dir.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19502 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-05 23:05:42 +00:00
Robin Dunn
27e5b95c62 Build/distrib things for the new pycwrap too and the new PyCrust
pacakge dir.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19501 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-05 23:04:42 +00:00
Robin Dunn
c85cc2d5ef Updated to version 0.9a of PyCrust
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19497 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-05 20:24:18 +00:00
Robin Dunn
f972a14420 Use the .mo files from the tarball instead of recreating them
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19492 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-05 04:26:13 +00:00
Robin Dunn
5c4d09a233 SWIGged updates for wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19491 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-05 04:25:39 +00:00
Robin Dunn
680419f53f SWIGged updates for wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19490 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-05 04:24:04 +00:00
Robin Dunn
c9631d614b SWIGged updates for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19489 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-05 04:10:47 +00:00
Robin Dunn
0a7bbcd9b6 Updated change log
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19488 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-05 04:09:19 +00:00
Robin Dunn
92fea4048b Deprecated NewId and RegisterId
Added missing Disable method


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19487 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-05 04:08:08 +00:00
Robin Dunn
ba8a84c9d1 demo tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19486 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-05 04:06:40 +00:00
Robin Dunn
f8604a7be7 demo tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19485 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-05 01:46:52 +00:00
Robin Dunn
d0873f2b11 Fix typemap for wxGridCellCoordArray
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19483 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-04 21:21:36 +00:00
Stefan Csomor
d659a731e3 warning fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19482 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-04 13:37:51 +00:00
Stefan Csomor
26e8b4d3af cursor adaptions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19481 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-04 12:19:12 +00:00
Stefan Csomor
7777a461c3 reordering in destructor, cursor adaptions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19480 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-04 12:18:31 +00:00
Stefan Csomor
71658b2fde reorder necessary for classic
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19479 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-04 12:16:51 +00:00
Stefan Csomor
90ef1bfc7b usleep fix & cursor adaptions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19478 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-04 12:15:24 +00:00
Stefan Csomor
d9297fb37e cursors from xpm and d&d cursor support
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19477 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-04 12:11:58 +00:00
Stefan Csomor
34624546c2 new cursors
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19476 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-04 12:11:29 +00:00
Stefan Csomor
7d0b9dea9b overflow fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19475 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-04 12:09:01 +00:00
Stefan Csomor
3c969e8f7a shrinking functions added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19474 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-04 12:06:05 +00:00
Stefan Csomor
5872b92e95 cursor support for xpm and d&d integration
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19473 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-04 12:04:55 +00:00
Stefan Csomor
bd3f6acd4d added averaging shrinking function
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19472 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-04 12:03:50 +00:00
Stefan Csomor
f0f3dbd75e copy arrow cursor for mac added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19471 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-04 12:02:30 +00:00
Robin Dunn
bf2e21452d SWIGged updates for wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19470 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-04 05:50:52 +00:00
Robin Dunn
89505f6a9c SWIGged updates for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19469 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-04 05:49:11 +00:00
Robin Dunn
238ab89099 SWIGged updates for wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19468 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-04 05:33:01 +00:00
Robin Dunn
f7c3abb0a2 Backported fixes for updating the splash screen and busy info windows
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19467 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-04 05:14:50 +00:00
Robin Dunn
f34f2e9aef Fixed compilation error
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19466 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-04 05:13:41 +00:00
Robin Dunn
3a6c8ddf30 Tweaked how the __del__ methods are generated again, call the delete
function inside a try..except just in case


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19465 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-04 05:12:11 +00:00
Robin Dunn
30280ee3df Updated MacPython build scripts for 2.3a2
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19464 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-04 04:51:10 +00:00
Robin Dunn
492b18a5a4 Added missing deselect methods
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19463 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-04 04:43:58 +00:00
Robin Dunn
77c36d3df9 Install the .mo files under the wxPython package directory for MSW
since there is no standard place for them like on other platforms.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19462 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-04 03:33:12 +00:00
Vadim Zeitlin
98cbc5c60b fixed spurious assert in FindControl() (backported from trunk)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19447 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-03 00:01:51 +00:00
Robert Roebling
bcba0550bd Fixed wxBusuCursor.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19430 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-02 21:33:08 +00:00
Robert Roebling
194e741cea Added hint at default conversion in Unicode mode. It is
enough if I got burned by it.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19429 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-02 21:31:58 +00:00
Stefan Csomor
437a9c0ad3 OSX fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19417 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-02 13:56:56 +00:00
Roman Rolinsky
4f24cfc0ae new version
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19416 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-02 13:31:44 +00:00
Roman Rolinsky
740a6ab3e1 *** empty log message ***
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19415 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-02 13:31:24 +00:00
Roman Rolinsky
3c582354e9 ParamUnit class
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19414 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-02 13:31:05 +00:00
Roman Rolinsky
850e2779fb defaults for unset required parameters, ParamUnit for border and {v,h}gap
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19413 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-02 13:30:13 +00:00
Robert Roebling
f11270d478 Do dialog's default action (mostly "OK") if
ENTER was hit in a combobox and the
    TEXT_ENTER event was not handled. MSW
    seems to be doing something similar.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19412 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-02 11:07:45 +00:00
Václav Slavík
5b6f98d439 removed deprecated calls from wxImage example (bug #688438)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19411 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-02 11:01:09 +00:00
Stefan Csomor
4f727d46b3 applied fix to MkDir for mac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19409 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-01 21:17:34 +00:00
Václav Slavík
d0300a62a7 fixed incorrectly backported patch
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19407 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-01 20:29:30 +00:00
Václav Slavík
2e2675087c backported: fixed wxScrollBar creation when default size was used
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19406 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-01 20:12:12 +00:00
Robert Roebling
a7d8906428 Typo for compilation.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19398 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-01 09:12:43 +00:00
Robin Dunn
d3c5a8b1aa Do proper delete
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19386 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-28 18:33:12 +00:00
Robin Dunn
ed0d1c7fcf Use the right constants
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19384 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-28 15:35:35 +00:00
Robert Roebling
e7f94796de Hah!
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19383 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-28 09:21:54 +00:00
Robin Dunn
cdc34da45b SWIGged updates for wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19380 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-28 00:59:08 +00:00
Robin Dunn
6a9423b5df SWIGged updates for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19379 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-28 00:29:40 +00:00
Robin Dunn
568e0fb6cc avoid notebook tabs on the bottom on the Mac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19378 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-28 00:26:53 +00:00
Robert Roebling
9a5bffb8ab Next take at combobox.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19377 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-28 00:23:09 +00:00
Robin Dunn
8d30ee37ba added some .cvsignore's
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19376 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-28 00:20:20 +00:00
Robin Dunn
b85fd46650 Made the ctor signature match the standard...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19375 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-28 00:18:00 +00:00
Robin Dunn
44c2734d93 Some tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19374 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-28 00:16:52 +00:00
Robin Dunn
c74807054b Refactored, enhanced and added capabilites for the DrawXXXList
functions, inspired by code from Chris Barker.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19373 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-28 00:15:29 +00:00
Robin Dunn
616538882e Patch from David Falkinder to help building a STC dll.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19372 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-27 21:10:20 +00:00
Robert Roebling
209da8588e Ideally, this would fix a crash.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19371 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-27 20:47:06 +00:00
Robert Roebling
76a10f2598 Attempt to scroll text view after adding
text. It almost works.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19370 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-27 20:25:38 +00:00
Robert Roebling
ab7def879f Next take at combobox.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19369 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-27 20:24:16 +00:00
Robin Dunn
c0a6a6df9e SWIGged updates for wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19368 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-27 20:16:12 +00:00
Robin Dunn
f2c424c93f Added static accessors for wxPython for some of the s_mac* members of
wxApp on Mac.  They are no-ops for the other platforms.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19367 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-27 20:14:46 +00:00
Vadim Zeitlin
9aa03e7493 fix bug with timezone calculations when WX_GMTOFF_IN_TM si true
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19365 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-27 13:01:29 +00:00
Chris Elliott
788a1cbacb update adding watcom makefiles
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19359 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-27 10:45:11 +00:00
Chris Elliott
f728abae13 update adding watcom makefiles
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19358 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-27 10:38:06 +00:00
Chris Elliott
6d9fd10c04 update adding watcom makefiles
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19357 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-27 10:32:15 +00:00
Stefan Csomor
421ef4c99b SetValue fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19355 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-27 10:24:56 +00:00
Robin Dunn
8258ba4fc1 SWIGged updates for wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19348 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-26 20:48:05 +00:00
Robin Dunn
473419f996 SWIGged updates for wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19347 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-26 20:48:03 +00:00
Robert Roebling
daa249f2b9 Docs update for combobox.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19346 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-26 20:31:52 +00:00
Robert Roebling
5c1926da55 More update to wxComboBox
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19345 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-26 20:27:46 +00:00
Robin Dunn
29b763ef35 Updated change notes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19344 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-26 19:40:25 +00:00
Robin Dunn
23ea56928a SWIGged updates for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19343 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-26 19:38:23 +00:00
Václav Slavík
49d884109c fixed wxSYSTEM_MENU on Unix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19340 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-26 19:28:23 +00:00
Václav Slavík
4cccdfae2e fix patch #693600
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19336 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-26 19:21:02 +00:00
Robin Dunn
64dfb023eb Switched to using True/False in the wxPython lib and demo instead of
true/false or TRUE/FALSE to prepare for the new boolean type and
constants being added to Python.  Added code to wx.py to test for the
existence of the new constants and to create suitable values if not
present.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19335 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-26 18:38:37 +00:00
Chris Elliott
a57fa3cc36 update for watcom makefiles
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19334 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-26 17:04:57 +00:00
Chris Elliott
92b0b005bd update for watcom makefiles
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19333 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-26 16:55:52 +00:00
Chris Elliott
6f8f404d14 update for new watcom makefiles
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19332 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-26 10:58:34 +00:00
Chris Elliott
bbdcb4462a fix for open watcom
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19331 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-26 10:20:52 +00:00
Chris Elliott
2fd1eea0fd fix for open watcom
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19330 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-26 10:10:18 +00:00
Robin Dunn
ae260fd6c5 Ensure that the TOOLDIR exists
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19329 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-26 05:49:40 +00:00
Robin Dunn
774426473a SWIGged updates for wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19328 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-26 05:36:57 +00:00
Robin Dunn
ac49dfe39a Use shortened DLL version number for wxPython
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19327 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-26 05:28:03 +00:00
Robin Dunn
ac878b40d5 Use version.mak on the 2.4 branch too
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19326 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-26 05:26:20 +00:00
Bryan Petty
c1d0d47326 This commit was manufactured by cvs2svn to create branch
'WX_2_4_BRANCH'.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19325 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-26 05:26:20 +00:00
Robin Dunn
3a0ea6aadd SWIGged updates for wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19324 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-26 05:14:01 +00:00
Robin Dunn
ee4ae17a72 Don't use --inplace any longer.
Move the building of the .mo files to the tarfile rather than the RPM
Add the wxrc tool to the RPM.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19323 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-26 05:02:21 +00:00
Robin Dunn
4c1916e923 wxCursor(const wxImage&) doesn't exist on Mac, workaround for wxpython
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19322 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-26 04:55:38 +00:00
Robin Dunn
df4b33919c SWIGged updates for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19321 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-26 04:24:28 +00:00
Robin Dunn
42ac4a136f These hacks shouldn't be needed any longer with the new way that the
__del__ methods are generated.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19320 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-26 04:13:04 +00:00
Robin Dunn
2bd1f49272 Make sure some class names get put into the wx namespace when non-core
modules are imported


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19319 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-26 04:01:07 +00:00
Robin Dunn
6d92b8c675 Give the second form of BeginDrag a better name
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19318 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-26 03:59:33 +00:00
Robin Dunn
25f8fb989c Provide both forms of wxLocale::Init to wxPython
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19317 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-26 03:56:38 +00:00
Robin Dunn
22b115a7ff Changed how the dynamic event tables (used for all Python wx classes,
C++ wx classes typically use static event tables) are searched such
that they behave from a Python perspective more like the static tables
in C++.  Namely that if there are identical event bindings in a base
Python class and a derived Python class that the one in the derived
class will be found first and that if Skip is called that the one in
the base class will still be found instead of skipping directly to the
static stable in the C++ class.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19316 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-25 21:31:18 +00:00
Chris Elliott
26ed67330e fix for open watcom
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19310 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-25 13:17:04 +00:00
Vadim Zeitlin
4eb299c93a use jast major.minor, not major.minor.micro, in the DLL names
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19304 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-24 00:48:00 +00:00
Vadim Zeitlin
11e4d606da added wxVersion.pm here as apparently cvs doesn't allow adding the file added on the trunk on a branch as well
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19303 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-24 00:47:40 +00:00
Vadim Zeitlin
710db296ec regenerated with correct DLL version info
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19302 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-24 00:46:39 +00:00
Mattia Barbon
3ba30b3a43 Allow creating a mono wxMemoryDC under wxMotif. (backport)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19294 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-23 19:28:57 +00:00
Mattia Barbon
dd9f745fde Allow setting default file name in wxMotif wxFileDialog. (backport)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19293 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-23 19:27:02 +00:00
Robin Dunn
16efc98226 The manifest file needs to be for python.exe and pythonw.exe, not the
core extension dll.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19284 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-22 01:10:40 +00:00
Robin Dunn
1465ed5e05 Added icons the the wxTreeCtrl demo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19283 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-22 01:08:12 +00:00
Robin Dunn
19627eeb7c Changed how the __del__ mehtods are generated. They now save a
reference to the actual delete function instead of just the module.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19282 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-21 22:53:32 +00:00
Robin Dunn
ce635ce794 Added option to only do the prepatory steps, but not build anything
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19281 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-21 22:06:10 +00:00
Robin Dunn
ced9b1048c New distutils from Python 2.3a2
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19280 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-21 21:45:58 +00:00
Julian Smart
ab60f861e4 Applied FL patch from Stefan Kowski
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19279 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-21 21:38:11 +00:00
Robin Dunn
6c8a9c7208 Only send two EVT_BUTTON events when double clicking a button, not three
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19277 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-21 20:27:56 +00:00
Robin Dunn
5b6ec72d86 Mac and GTK can take three icons in the wxDropSource now.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19275 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-20 22:19:06 +00:00
Robin Dunn
54e0d4ab33 __del__ is no longer needed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19274 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-20 19:34:44 +00:00
Robin Dunn
8f14f1266a Added a wxBitmap.SetMaskColour convenience method.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19273 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-20 19:33:17 +00:00
Robin Dunn
5e7604bc22 Added missing Init method (renamed to InitLang) to wxLocale wrapper.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19272 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-20 19:32:33 +00:00
Robin Dunn
371efb285b Fixed GetFirstSelected helper method, the parameter is ignored
(copy-paste error) so I made it optional so old code wont break.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19271 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-20 19:30:45 +00:00
Robin Dunn
3a0b9a4453 Fix for Bug #689958, an endless loop in printout.py
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19270 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-20 19:27:56 +00:00
Robin Dunn
335ac56efb Added EVT_WINDOW_CREATE_ID and EVT_WINDOW_DESTROY_ID so these events
can be associated with a specivif window ID.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19269 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-20 19:26:40 +00:00
Robin Dunn
3b2012561d demo tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19268 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-20 19:18:42 +00:00
Robin Dunn
6ceec818b2 Fixed return type in the wrapper to match the actual
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19267 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-20 19:16:31 +00:00
Gilles Depeyrot
565cb6ad50 Moved ffile inclusion
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19260 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-19 19:50:44 +00:00
Václav Slavík
98e5d72dd5 fixed Traditional Chinese mapping
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19259 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-19 19:31:34 +00:00
Václav Slavík
654992af19 fixed Traditional Chinese mapping
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19258 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-19 19:25:47 +00:00
Robin Dunn
d1af2c3470 Send the wxWindowDestroyEvent for all ports (binary compatible backport)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19252 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-19 03:07:41 +00:00
Julian Smart
2d364cbfae Fixed typo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19247 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-18 12:51:31 +00:00
Robert Roebling
cd58502e05 Applied John's patch to make wxComboBox
behave more like its MSW version.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19246 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-18 09:50:18 +00:00
Julian Smart
1161316c67 Applied patch [ 686843 ] File Dialog Wildcard Bug
A bug was introduced in generic/src/filedlgg.cpp
between versions 2.2.9 and 2.4 that causes incomplete
file extensions to be appended to filenames not having
extensions after a user changes the wildcard index in
the filedialog. This patch reverts back to the correct
code.

Bob Downey


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19240 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-18 09:27:23 +00:00
Julian Smart
07c8746bad Applied patch [ 681262 ] Add EVT_MENU_OPEN support for GTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19239 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-18 09:08:58 +00:00
Julian Smart
4c33f8dc50 Must use WS_CHILD style in wxTabCtrl
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19237 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-18 08:52:58 +00:00
Robin Dunn
581b33ff45 Add OOR support for wxApp objects too.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19236 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-18 00:25:01 +00:00
Gilles Depeyrot
e6881a71e5 fix wxDateTime offset for Apple Developer Tools (SourceForge bug # 614010)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19232 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-16 18:24:57 +00:00
Stefan Csomor
e55bc9a4ff Files from a Drop were only added but the fileslist never cleared
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19226 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-15 08:38:04 +00:00
Robin Dunn
38353dcfac SWIGged updates for wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19220 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-14 20:15:02 +00:00
Robin Dunn
31c9ca379c SWIGged updates for wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19219 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-14 20:13:38 +00:00
Robin Dunn
5e21d41f51 SWIGged updates for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19218 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-14 19:36:50 +00:00
Robin Dunn
405c7870da Added some missing methods to wxRect wrappers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19217 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-14 19:29:48 +00:00
Robin Dunn
7d940904da Added wxImage.SetDatabuffer method
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19216 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-14 19:25:27 +00:00
Robin Dunn
0c8d205343 Added ability to make a wxCursor from a wxImage
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19215 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-14 19:23:37 +00:00
Robin Dunn
2ff24ec7ed various demo tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19214 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-14 19:08:57 +00:00
Robin Dunn
aa0cd0a6e4 version number change
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19213 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-14 19:08:00 +00:00
Stefan Neis
de274a5cbb Insure consistent definition of wxAppInitializerFunction for wxBase/MSW.
(previously, you could end up with different ones depending on include
         order, now platform.h is always (implicitly) included first, so
         __WXMSW__ is guaranteed to be defined even in wxBase/MSW builds.)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19212 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-14 17:25:45 +00:00
Vadim Zeitlin
cd8b84f98e backported Unicode compilation fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19211 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-13 21:31:54 +00:00
Julian Smart
c950107aa8 DOc fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19209 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-13 18:28:36 +00:00
Robert Roebling
13166ef936 Implemented enumerating fixed font. It's a compromise...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19208 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-13 16:45:52 +00:00
Vadim Zeitlin
e7a96246fa marked dbkeyg.h as a wxBase file (fixes 685857)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19205 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-13 11:17:57 +00:00
Roman Rolinsky
515c91da66 fixed problem with pasting wxMenu in wxMenuBar and others
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19204 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-13 11:07:59 +00:00
Vadim Zeitlin
c5ee986890 fixed bug in SetToolClientData() docs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19192 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-11 22:57:07 +00:00
Mattia Barbon
601501d0d0 Backported Motif wxFileDialog wildcard corrections.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19189 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-11 21:24:02 +00:00
Mattia Barbon
03a1817871 Fix client data handling: delete client data for all items when a
wxChoice is deleted, delete client data for an item when that item is
deleted (backported).


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19187 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-11 21:14:17 +00:00
Robin Dunn
201ebeaa96 Change to a derived dialog class
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19185 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-11 19:24:46 +00:00
Robin Dunn
7a51b801c9 Added wxContextButton for non-MSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19184 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-11 19:12:18 +00:00
Robin Dunn
b62b320a40 Show calling SetExtraStyle before the dialog is created, also show
more context sensitive help.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19183 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-11 19:06:22 +00:00
Robert Roebling
82161eb375 Typo.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19180 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-11 11:45:31 +00:00
Robert Roebling
adb5f43a58 Lots of Pango etc up-ports from HEAD.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19179 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-11 11:35:15 +00:00
Robin Dunn
7cc3aa347b A more complete fix for the wxGauge95 --> wxGauge rtti inconsistency
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19177 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-11 00:01:10 +00:00
Robin Dunn
db7e947f1b workaround for an extra EVT_TEXT on wxGTK when selected text is
replaced causing an exception


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19149 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-07 17:52:36 +00:00
Robin Dunn
ee9e836596 SWIGged updates for wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19146 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-07 01:00:09 +00:00
Robin Dunn
a490d0f89c Updated bundlebuilder from Python CVS and added ability to specify
libs to be added to the bundle.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19145 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-07 00:58:59 +00:00
Robin Dunn
16b5e0e8e1 demo tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19144 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-07 00:56:50 +00:00
Robin Dunn
a4c2ca659e Applied patch from Will Sadkin
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19143 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-06 23:57:38 +00:00
Robin Dunn
4a960821a5 Removed ctl3d32 lib from the link.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19142 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-06 22:50:25 +00:00
Robin Dunn
63332eca01 Added search capability
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19141 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-06 18:51:18 +00:00
Robin Dunn
6e7b4ded7c Typo fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19140 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-06 18:44:31 +00:00
Robin Dunn
20f5eb5e7c SWIGged updates for wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19139 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-06 18:43:59 +00:00
Robin Dunn
471e73eb08 more Python 2.3 build support
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19138 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-06 18:39:12 +00:00
Robin Dunn
ce41e186c1 SWIGged updates for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19137 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-06 18:37:47 +00:00
Robin Dunn
17eb2d7376 Fixed wxSizer.Insert wrapper to not try to use the first param as the
window.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19136 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-06 18:36:38 +00:00
Robin Dunn
7c0f7a55ff Added SetItemSpacing
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19135 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-06 18:30:23 +00:00
Robin Dunn
a1c41ce60b SWIGged updates for wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19134 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-06 18:28:03 +00:00
Robin Dunn
95b00f921e SWIGged updates for wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19133 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-06 18:26:17 +00:00
Robin Dunn
43f1aa9f29 demo tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19132 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-06 18:23:08 +00:00
Robin Dunn
7327a6b237 *** empty log message ***
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19131 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-06 18:21:55 +00:00
Robin Dunn
08056b1a7e Check the image height when calulating the line height. This allows
larger than normal images to be used.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19129 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-06 02:18:51 +00:00
Robin Dunn
6d7e7d60b5 Scintilla uses a -1 index to unselect, we need to catch that.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19126 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-05 23:30:36 +00:00
Roman Rolinsky
064431c525 *** empty log message ***
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19124 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-05 09:57:37 +00:00
Roman Rolinsky
2fa1b7c69e mac platform-specific checks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19123 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-05 09:54:45 +00:00
Roman Rolinsky
8fd104a045 Fix for README.txt in help menu
Mac platform-specdific checks


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19122 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-05 09:53:40 +00:00
Mattia Barbon
e534bea08c Do not redeclare a struct (w32api 2.2 will have it).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19116 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-04 21:37:58 +00:00
Mattia Barbon
0afdca9e67 Regenerated configure.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19115 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-04 21:29:41 +00:00
Mattia Barbon
f8227642cf Regenerate makefile.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19111 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-04 14:24:30 +00:00
Mattia Barbon
76f27d0177 Allow building in unicode mode with just "make -f makefile.g95 UNICODE=1"
without requiring setup.h modifications (backport).


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19110 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-04 14:22:50 +00:00
Mattia Barbon
f31e566dca Some small updates to build instructions. Most of the changes are simply
corrections to Cygwin/MinGW capitalisation/names.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19109 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-04 14:19:25 +00:00
Mattia Barbon
b977811c6d Backported MinGW makefiles improvements from Greg Chicares.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19108 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-04 14:15:23 +00:00
Julian Smart
a082f710b0 2nd step
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19107 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-04 10:36:31 +00:00
Julian Smart
c6bb9af766 First step in eol fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19106 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-04 10:35:44 +00:00
Julian Smart
8abad03e29 1st step
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19105 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-04 10:31:21 +00:00
Julian Smart
6e293047a4 First step in fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19104 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-04 10:28:56 +00:00
Julian Smart
8ec7e66529 Fixed .dsw file
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19103 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-04 10:24:39 +00:00
Julian Smart
a54e8d7638 Now commit actual file with correct line endings
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19102 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-04 10:18:48 +00:00
Julian Smart
6414974cf5 Fooling CVS into thinking there's been a change
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19101 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-04 10:16:04 +00:00
Mattia Barbon
b36feae3ff Fix a typo.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19090 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-03 20:56:02 +00:00
Roman Rolinsky
0e13f07324 BSD license
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19088 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-03 10:01:25 +00:00
Stefan Neis
b3012816c0 Some OS/2 specific improvements.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19082 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-02 20:25:00 +00:00
Stefan Neis
69cddbaab2 backported configure test for WX_STATVFS_T.
(Adding some braces as newer autoconf version love them, IIRC).


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19081 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-02 19:56:39 +00:00
Stefan Csomor
b7c2485e31 set interpretation of ampersand shortcuts to false as default
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19079 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-02 17:11:52 +00:00
Stefan Csomor
26dd1a0095 optimizing sleep values
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19077 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-02 15:28:29 +00:00
Julian Smart
022d639781 Applied patch [ 678788 ] Dialog command event propagation problem
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19074 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-02 15:07:57 +00:00
Julian Smart
7b647d199f Applied patch [ 675376 ] Improves wxStaticBoxSizer
(uses GetCharHeight() instead of guessing).


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19072 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-02 14:58:56 +00:00
Stefan Csomor
2cdd43432e native picture clipboard support improved
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19064 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-02 13:22:00 +00:00
Stefan Csomor
531a2584c6 pict setter added for clipboard support
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19063 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-02 13:18:21 +00:00
Stefan Csomor
080fc15766 factoring out common carbon/non-carbon clipboard support code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19062 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-02 13:17:08 +00:00
Chris Elliott
a5ec1be3ba fix for bcc5.5 on XP
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19053 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-01 21:10:13 +00:00
Stefan Csomor
1b979ef235 corrected rectangle for refresh
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19048 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-01 17:38:41 +00:00
Gilles Depeyrot
d2e47a817f Only call use uppercase letter if control, alt, or shift is held down,
otherwise lower case accelerators won't work.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19047 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-01 13:45:49 +00:00
Robin Dunn
aa0db7fda2 More tweaks for the MacPython distribution
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19046 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-01 00:59:34 +00:00
Robin Dunn
15e9b46e14 Mad tabs consistent
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19045 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-01 00:57:36 +00:00
Robin Dunn
d954628eed Added RootVolumeOnly support
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19044 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-01 00:54:24 +00:00
Vadim Zeitlin
83c627bba3 compilation fix for HP-UX CC
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19042 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-31 22:56:49 +00:00
Stefan Csomor
2dc4e0b986 Show corrected
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19040 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-31 16:48:42 +00:00
Stefan Csomor
ae156f4e78 was still containing binary data
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19039 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-31 16:29:16 +00:00
Stefan Csomor
908e3601e8 was committed using macbin, corrected
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19038 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-31 16:04:25 +00:00
Stefan Csomor
04d53786f0 backported fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19037 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-31 16:01:38 +00:00
Stefan Csomor
89fb932dc8 using SelectWindow for Raise Implementation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19036 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-31 15:52:24 +00:00
Václav Slavík
4446474c49 don't indent text body
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19029 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-30 23:10:23 +00:00
Roman Rolinsky
5b4532b24b fixed a problem with default selection
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19027 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-30 18:44:28 +00:00
Roman Rolinsky
5b8c58c590 changed to .txt
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19026 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-30 18:37:39 +00:00
Roman Rolinsky
dd92c92cc4 xxxParamBitmap, support for wxArtProvider bitmaps
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19025 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-30 18:16:03 +00:00
Roman Rolinsky
0b02859ebf fixed a small file selection problem
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19024 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-30 10:36:18 +00:00
Roman Rolinsky
5db1613aae changed toggle to bool type for xxxTool
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19023 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-30 10:21:32 +00:00
Robin Dunn
3563e7bce7 1. If EVT_LIST_DELETE_ALL_ITEMS was not handled then the
post-processing code to prevent LVN_DELETEITEM messages was not
   getting executed.  Changed it so the post processing always
   happens.

2. It's possible with some versions of comctl32 that garbage values
   can be passed in nmLV->lParam so don't try to get the internal item
   data pointer from it.  This should close bug# 659939


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19022 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-30 02:27:55 +00:00
Václav Slavík
5b0cb302bc added MSLU reference to wxUSE_UNICODE
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19018 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-29 23:45:49 +00:00
Robin Dunn
095038b75b SWIGged updates for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19000 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-29 03:25:35 +00:00
Robin Dunn
e05d0c18a6 Preload file if given on command line
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18999 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-29 03:25:03 +00:00
Robin Dunn
b29612a525 Typo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18998 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-29 03:24:25 +00:00
Robin Dunn
615e5a0c13 Ensure object is a window before calling AddWindow, etc.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18997 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-29 03:23:56 +00:00
Robin Dunn
f1a360a475 Load class into wx namespace when the module is imported.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18996 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-29 03:22:29 +00:00
Robin Dunn
d72e16bf3c Make wxColour, wxPoint, wxSize, and etc. picklable.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18995 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-29 03:20:50 +00:00
Robin Dunn
7e56135a5a Don't use string module
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18994 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-29 03:19:23 +00:00
Robin Dunn
9d9015cbdb Fixes to dependencies, and doesn't lose the wxgtk*-config script any longer
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18993 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-29 03:18:04 +00:00
Robin Dunn
75bb03e61e Demo Tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18992 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-29 02:54:27 +00:00
Robin Dunn
9382b1c75b Use the existing pythonw as a template, rather than a hard coded one.
Other fixes for when making the dist


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18991 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-29 02:53:26 +00:00
Robin Dunn
2d5b1ffde7 Added more tools for building distributions, and new scripts for the
wxPythonOSX dist.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18990 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-29 02:50:29 +00:00
Robin Dunn
e47e2832b8 The validator is already set in CreateBase, doing it twice causes
problems for wxPython


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18989 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-29 02:43:35 +00:00
Ron Lee
64d6b78b91 fix broken doc build.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18966 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-28 03:49:05 +00:00
Ron Lee
1ff3083509 typo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18965 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-28 02:52:20 +00:00
Ron Lee
f3ef27eaba Added wxPy/distutils to the source package and try again for 2.4.0.3
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18964 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-28 02:10:42 +00:00
Julian Smart
34fb706af5 Corrected printing docs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18961 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-27 11:27:43 +00:00
Vadim Zeitlin
d480230471 the string 'Goto...' should be translated (patch 674569)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18957 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-27 01:04:57 +00:00
Julian Smart
bd66e90287 Fixed problem where kill focus event was sent to control
getting the focus.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18946 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-26 19:02:59 +00:00
Václav Slavík
9afed9b15c compilation fixes (bug #672413)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18945 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-26 16:22:28 +00:00
Vadim Zeitlin
818d7d0e0f fixed a typo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18913 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-25 01:09:57 +00:00
Vadim Zeitlin
582d404c55 moved GetRed() in its correct place in alphabetical order
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18912 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-25 01:09:42 +00:00
Robin Dunn
6374a2f397 Added new tools and scripts for building a Python distribution
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18910 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-25 00:42:59 +00:00
Julian Smart
9dc76efa99 Applied patch [ 673055 ] Text rendering in wxGTK 2.4.0 and GTK2 fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18906 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-24 12:36:04 +00:00
Julian Smart
9e691dd614 Applied [ 671333 ] wxPrinterDC::DoBlit() 24 bit fix (2.4)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18905 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-24 12:31:41 +00:00
Julian Smart
9370c6ba12 Applied patch [ 667149 ] wxFileHistory: Only adds a menu separator when necessary
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18902 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-24 12:19:39 +00:00
Ron Lee
edf3c8adcd Add missing wxPy lib to Makefile.in
Add missing quantize.h to filelist.txt
Update config.sub


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18896 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-24 09:26:28 +00:00
Mattia Barbon
cfa31db743 Work around a compiler bug: with (at least) GCC 2.95.3-5 under Cygwin,
the destructor for the global s_fileInfo is called twice (!). This does
hot happen if a function returning a reference to a static variable is
used. (backport)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18892 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-23 20:53:40 +00:00
Mattia Barbon
18f5df1f04 Fix Cygwin + makefile.g95 + wxUSE_PROLOGIO=0. (backport)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18891 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-23 20:51:23 +00:00
Mattia Barbon
f6b4e6c9a7 Clearly indicate that DialogEd requires wxr to compile. (backport)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18889 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-23 20:32:24 +00:00
Mattia Barbon
6db8abb44c Patch [669503] Patch to CW7 wxMSW project file (backport).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18887 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-23 20:29:00 +00:00
Mattia Barbon
b71970b1e7 Patch [669508] Define Win32 symbols for CW in platform.h )backport).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18886 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-23 20:25:18 +00:00
Václav Slavík
b57383f867 removed wxEncodingConverter from docs where wxMBConv should be mentioned instead (backported to 2.4)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18885 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-23 19:50:34 +00:00
Robin Dunn
f7530f9459 Final (hopefully) version of the DeleteAllItems fix for 2.4
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18881 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-23 05:55:04 +00:00
Robin Dunn
238027e84e Updated version number
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18877 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-22 21:31:56 +00:00
Robin Dunn
38414871f8 Added wxPyColourChooser by Michael Gilfix.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18876 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-22 21:26:48 +00:00
Robin Dunn
32da2feced Added wxPyColourChooser by Michael Gilfix.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18875 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-22 21:14:49 +00:00
Robin Dunn
4742e89355 Backported the "attempt to fix crash in DeleteAllItems()" fix from the
trunk, and added a guard against fetching item data while in the
process of deleting the item's data.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18873 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-22 18:58:12 +00:00
Robin Dunn
361c4fd211 Regenerated from vc.t
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18872 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-22 18:26:49 +00:00
Robin Dunn
89e7b419b8 Fixed some missing TABs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18871 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-22 18:25:05 +00:00
Robin Dunn
dcea3abb2d Added wxIntCtrl from Will Sadkin
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18870 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-22 18:16:02 +00:00
Robin Dunn
dc7543e6e3 Updated wxTimeCtrl witha patch from Will Sadkin
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18869 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-22 18:14:19 +00:00
Robin Dunn
ffa5c6a998 ignore build dirs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18868 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-22 18:11:06 +00:00
Václav Slavík
cf2adb6217 patch 672127: Adds required check for wxUSE_WXHTML_HELP to chkconf.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18855 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-21 23:28:07 +00:00
Robin Dunn
c652c9484d Explicitly refresh when enable is called so the display will update.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18854 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-21 23:14:59 +00:00
Robin Dunn
0ad25b6293 Comment out debug message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18853 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-21 22:43:40 +00:00
Robin Dunn
0d851d75c5 Serious cleanup of setup.py and removed hacks in my_distutils.py that
were working around deficenceis in Distutils.  Temporarily added a
copy of the distutils package from Python 2.3a1 here, when they
encorporate a patch of mine and create a new standlone distutils
package then it can be removed.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18852 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-21 22:14:37 +00:00
Julian Smart
00a0b58ebb Updated wxBitmap overview
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18848 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-21 08:58:30 +00:00
Robin Dunn
92e9e17800 SWIGged updates for wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18847 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-21 06:11:41 +00:00
Robin Dunn
508fff4ae5 Ensure properly built before installing
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18846 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-21 06:05:26 +00:00
Robin Dunn
f9c32e7a63 Test native static text by default.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18845 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-21 05:54:22 +00:00
Robin Dunn
f3e9a788e8 SWIGged updates for wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18844 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-21 05:35:07 +00:00
Robin Dunn
2dd1c99c45 Avoid assertion about mask from color bitmap
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18843 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-21 04:24:49 +00:00
Robin Dunn
62aa2088fd SWIGged update for generic
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18842 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-21 02:07:40 +00:00
Robin Dunn
f096b09e6d SWIGged update for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18841 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-21 02:06:06 +00:00
Robin Dunn
955bee323f Apparently Python requires Python.h to be included before std lib
headers.  It's never been a problem either way until Python 2.3a1...


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18840 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-21 01:58:46 +00:00
Robin Dunn
d827d4acf0 Typemaps for wxCoord, switch to using it.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18839 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-21 00:59:20 +00:00
Robin Dunn
76bad85642 More Python2 migrations, patch from KA.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18838 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-21 00:04:37 +00:00
Robin Dunn
f86c833fe0 More Python2 migrations, patch from KA.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18837 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-20 23:41:15 +00:00
Václav Slavík
2fa5f840d5 fixed MGL libraries detection code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18836 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-20 23:23:57 +00:00
Ron Lee
0ee0d1c04f big rules cleanup for empty dirs and wrongly installed files.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18833 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-20 13:56:02 +00:00
Václav Slavík
616dfc166c compilation fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18831 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-19 23:32:04 +00:00
Chris Elliott
a195843d96 commit missing .rc file
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18830 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-19 21:35:06 +00:00
Mattia Barbon
3523682dea Patch [665886]: Fix smapi.cpp to support new for loop scoping. (backport)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18820 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-19 10:03:16 +00:00
Ron Lee
b330463c67 changed one Debugging features section to Logging features.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18817 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-19 08:23:46 +00:00
Chris Elliott
d77fd28881 fix for Borland 500-530 for listctrl
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18812 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-18 14:41:53 +00:00
Vadim Zeitlin
0706d7cf53 fixed resource leak in MemoryHDC (closes bug 670016)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18806 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-18 01:51:05 +00:00
Robin Dunn
4e51e03f4f Fix SurfaceImpl::MeasureWidths on OS X to do whole string measurments
rather than a running total of indiviual widths.  This is to get
around "fractional pixel" widths when using AA.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18796 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-17 23:10:00 +00:00
Robin Dunn
ec73fc1643 wxMac (and maybe others?) get PAGEUP/PAGEDOWN instead of NEXT/PRIOR
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18795 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-17 22:52:50 +00:00
Stefan Csomor
796fbddc3b added horizontal scrollbars to listboxes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18785 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-17 10:35:09 +00:00
Stefan Csomor
762f58ab21 preferences menu implementation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18767 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-16 07:04:04 +00:00
Robin Dunn
ec96a73450 SWIGged updates for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18761 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-16 04:13:50 +00:00
Robin Dunn
38b17a7ffd Updated sample from Boa
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18760 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-16 04:13:25 +00:00
Robin Dunn
170531ee4b Work around a bug (I think) in the Python API PyUnicode_AsWideChar
when the length of the unicode object is zero.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18759 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-16 03:30:18 +00:00
Robin Dunn
f83ca04634 Removed TABs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18755 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-15 23:07:21 +00:00
Robin Dunn
57cb8e4e82 Usability fixes for the demo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18749 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-15 20:46:53 +00:00
Robin Dunn
86d56a0fc3 SWIGged updates for wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18741 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-15 01:53:18 +00:00
Robin Dunn
a895d61d5c SWIGged updates for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18738 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-15 00:26:14 +00:00
Robin Dunn
5c07db1928 More string module migrations
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18737 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-15 00:23:35 +00:00
Robin Dunn
56d3350d72 Fixed typemaps for wxArrayInt
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18733 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-14 21:27:56 +00:00
Robin Dunn
39e44445a6 Added missing IsChecked method
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18732 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-14 21:27:24 +00:00
Robin Dunn
73043256f9 Removed the stxview sample. The StructuredText package it depends on
is not compatible with current Pythons, and the development of it has
fragmented into various implementations...


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18731 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-14 21:23:47 +00:00
Julian Smart
491b7d54a4 Fixed refresh bug by refreshing whole window on (de)activation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18730 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-14 21:12:34 +00:00
Mattia Barbon
317d85019d #define HAVE_W32API_H for Cygwin/GCC 3.x, too. (backport)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18725 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-14 18:30:15 +00:00
Vadim Zeitlin
782d2f5d12 fixed incorrect cast in wxRegKey:GetName()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18722 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-14 09:02:38 +00:00
Robin Dunn
94484e61d4 String methods migration for build scripts. (Patch from KA)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18719 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-14 06:55:22 +00:00
Robin Dunn
b7dbf2d867 Migrated demo code to not import string module. (Patch from Kevin Altis)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18718 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-14 06:43:27 +00:00
Mattia Barbon
d4118cc7b1 Fix Cygwin/makefiles compilation (backport from trunk).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18710 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-13 18:25:26 +00:00
Roman Rolinsky
5228a0a58d Added short doc-string
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18709 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-13 12:30:42 +00:00
Roman Rolinsky
73fda6b066 using global variable to pass htmlText
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18708 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-13 12:11:26 +00:00
Mattia Barbon
a98477bd0b Backported Unicode compilation fixes for demos and exec sample.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18693 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-12 20:48:13 +00:00
Mattia Barbon
c25bc243eb Fix PCH problems with some versions of CodeWarrior. (backport)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18686 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-11 20:56:40 +00:00
Robin Dunn
849be528fe Don't print when imported
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18657 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-10 04:22:11 +00:00
Robin Dunn
64a948febc Version number change, and other little tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18656 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-10 01:00:29 +00:00
Robin Dunn
3e3e9290c7 SWIGged updates for wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18655 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-10 00:49:35 +00:00
Robin Dunn
e591a85a40 SWIGged updates for wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18654 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-10 00:47:36 +00:00
Robin Dunn
358f4baccc Accidentally left wrong fix in the code on last commit...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18653 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-10 00:16:10 +00:00
Robin Dunn
0c79540c63 SWIGged updates for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18652 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-10 00:09:07 +00:00
Robin Dunn
b496757eae Use locale specific sort comparissons
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18651 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-10 00:06:55 +00:00
Robin Dunn
026525162c Fix various __eq__ and __ne__ operators to also allow comparisons to None.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18650 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-10 00:04:55 +00:00
Robin Dunn
d45ca1a3fd wxPythonOSX build tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18649 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-09 23:42:10 +00:00
Robin Dunn
97d2a1b925 Workaround a mismatch between the wxRTTI class name and the wxPython
class name.  (I should check for others...)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18648 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-09 23:39:50 +00:00
Gilles Depeyrot
1049d39836 library installation base name and wxMac resources file base name
must be identical in order for the resource file to be found


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18647 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-09 20:57:31 +00:00
Václav Slavík
593f309670 fixed ANSI/Unicode incompatibility of the cache (bug 663396)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18645 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-08 19:44:53 +00:00
Ron Lee
4198a06d0b Now one less...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18642 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-08 10:30:44 +00:00
Ron Lee
162d01ab37 Gah! Too many version numbers still not automated. :(
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18641 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-08 10:22:44 +00:00
Julian Smart
70b11c4fbe Applied patch to fix DSPs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18639 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-08 10:02:25 +00:00
Ron Lee
a76b692c36 If this continues, I'm bouncing all email until the debs are uploaded..
11th hour decision on libglu-dev, it's official it seems, so add it to
build deps.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18637 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-08 09:27:48 +00:00
Julian Smart
70bfcd7c2c Elminated streams from scoredlg.cpp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18635 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-08 09:13:02 +00:00
Ron Lee
405b381007 Actually create the menu control file for wxPy menu items.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18634 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-08 08:58:07 +00:00
Julian Smart
82d82b61a5 _Not_ an unstable development release...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18633 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-08 08:53:05 +00:00
Ron Lee
cbfcce261d Conflict with prior versions of wxPy, they can't coexist like the C++
libs can.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18632 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-08 07:16:59 +00:00
Ron Lee
2687753081 Final note about making the gcc3.2 transition clean by a hair.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18631 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-08 06:41:22 +00:00
Mattia Barbon
fa21e82965 Left/right arrows were swapped.
Fix wxSP_WRAP handling.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18629 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-07 21:41:28 +00:00
Julian Smart
6649d1f319 Corrected some typos
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18628 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-07 21:19:13 +00:00
Robin Dunn
ef03028539 Removed testing print statement
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18626 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-07 20:00:45 +00:00
Robin Dunn
ba74ca2dcc The demo framework can now notify the individual samples before it
switches to another, in case they need to shut down something or free
resources, etc.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18625 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-07 19:59:45 +00:00
Julian Smart
3fc4d88ac7 Added more emails
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18623 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-07 16:55:11 +00:00
Julian Smart
71276fddc8 Updated publicity.txt, tweaked announce.txt
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18617 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-07 12:16:28 +00:00
Robin Dunn
1ae9592c47 Various little tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18615 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-07 04:39:33 +00:00
Robin Dunn
7ef2287cb6 Patch from Robb, among other things removes the unconditional event.Skip()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18614 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-07 04:38:34 +00:00
Robin Dunn
564d204d9f Some fixes and cleanups
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18610 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-06 22:39:57 +00:00
David Webster
f6eae83ac3 OS/2 updates
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18609 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-06 22:04:57 +00:00
Julian Smart
f9815d36c3 Make it build in Unicode mode again
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18605 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-06 21:12:15 +00:00
Stefan Csomor
aa9d49e1b8 removed m_meta from all targets, corrected .shlba for all targets
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18598 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-06 15:39:09 +00:00
Julian Smart
ccdcca678f Backported fix for scrollbar refresh from trunk
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18591 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-05 20:47:46 +00:00
Julian Smart
bfca29edaa Applied [ 651649 ] Scrollbar not updated without resizing
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18590 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-05 20:27:25 +00:00
Vadim Zeitlin
27c37449b5 compilation warning in release build
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18589 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-05 19:55:03 +00:00
Vadim Zeitlin
a25184b7a7 added version.rc to the project file
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18588 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-05 19:53:26 +00:00
Julian Smart
616415f904 Extra tweak
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18585 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-05 11:50:44 +00:00
Julian Smart
6e206a04b6 Tweaks to announcement
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18584 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-05 11:32:35 +00:00
Julian Smart
65526477ba Updated manual date
wxTimeSpan doc correction


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18581 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-04 21:20:12 +00:00
Julian Smart
4add7c0b34 Use nicer (swiss) font for default
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18580 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-04 20:53:28 +00:00
Stefan Neis
932567700e Update for respinning 2.4.0.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18578 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-04 15:37:50 +00:00
Julian Smart
2040148fdd Added script to help make RPMs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18576 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-04 13:13:19 +00:00
Julian Smart
5a69cbab1f Changed date to January 2003
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18575 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-04 12:17:02 +00:00
Julian Smart
d9c0f1d7b7 Indicated in the source and on initialisation that this is an obsolete sample.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18574 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-04 11:04:39 +00:00
Robin Dunn
d525e47c9a SWIGged updates for wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18572 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-04 07:40:15 +00:00
Robin Dunn
5f21a9528b SWIGged updates for wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18571 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-04 07:36:19 +00:00
Robin Dunn
0989a5ccde SWIGged updates for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18570 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-04 07:35:32 +00:00
Robin Dunn
567a33a273 Added Kevin's function wrappers for the common dialogs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18569 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-04 07:10:19 +00:00
Robin Dunn
3b4cc84765 Minor build tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18568 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-04 04:19:46 +00:00
Robin Dunn
5c38b2916b Allow to create a wxFont directly from a NativeFontInfo string
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18567 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-04 04:17:57 +00:00
Robin Dunn
3af61dfc11 Various demo updates
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18566 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-04 04:16:51 +00:00
Robin Dunn
c2b281c55b Make the Paint DC before checking if we don't need to paint
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18565 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-04 04:16:21 +00:00
Robin Dunn
30b1489968 PyCrust 0.8.1
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18564 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-04 04:14:49 +00:00
Robin Dunn
03038a1f5b Fix to avoid an assert. It's a bad idea to add 2 to the font weight
if it's already bold.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18562 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-04 03:54:17 +00:00
Robin Dunn
f9c79f9dd7 Ensure that the wxNativeFontInfo internal data is copied when the
wxFontRefData is.  This solves a wxGTK2 problem where the
PangoFontDescription pointer is copied by the default assignment
operator, in a binary compatible way .


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18561 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-04 03:51:13 +00:00
Vadim Zeitlin
dde162ff42 added polish translations from Janusz Piwowarski
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18560 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-04 01:54:57 +00:00
Bryan Petty
118261a503 This commit was manufactured by cvs2svn to create branch
'WX_2_4_BRANCH'.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18559 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-04 01:54:57 +00:00
Ron Lee
d0745bc223 missed one.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18556 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-04 00:11:26 +00:00
Ron Lee
0ca587ef40 No point having helpviewer in the menu if it needs a cl argument :-)
Recommend python-xml for xrced.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18554 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-03 23:44:36 +00:00
Ron Lee
c619684a9f Add manpage(s) for wxPy scripts.
Update wx-config manpage.
Feed WXCONFIG to setup.py install too, to keep it from barfing at us.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18552 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-03 22:44:18 +00:00
Robin Dunn
58bfd03bef Disable putting selected text in the Primary Selection, since wxGTK is
currenlty clearing the Clipboard when you do this.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18550 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-03 19:03:01 +00:00
Robin Dunn
00c4f94c27 Added helpviewer to list of scripts
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18549 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-03 18:58:25 +00:00
Julian Smart
1af2cfd4d8 Added dialup.cpp to filelist.txt and wxUniv.dsp
Added opengl32.lib glu32.lib to OpenGL samples VC++ project files


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18547 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-03 18:35:47 +00:00
Julian Smart
86ef8240b9 Added missing wx/frame.h inclusion
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18545 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-03 15:24:56 +00:00
Julian Smart
344743eaa5 Clean up memory if have to exit early
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18544 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-03 14:59:07 +00:00
Julian Smart
2dbc17690f Added a note about 'make install'
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18543 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-03 14:08:53 +00:00
Julian Smart
381ec34571 Only enable tooltips on WIN32
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18542 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-03 13:40:43 +00:00
Julian Smart
1daa4e5b71 port = -> port +=
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18541 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-03 12:56:31 +00:00
Julian Smart
36dd289df0 wxUSE_TOOLTIPs => 1
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18540 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-03 12:53:33 +00:00
Stefan Csomor
ffdbb93689 made static box only a frame region in all calculations (otherwise the background would not be redrawn in all situations)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18539 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-03 12:29:16 +00:00
Stefan Csomor
7e6c1c34b3 fixed the positioning of the choice subcontrol (resulted in redraw errors clipping off 2 pixels on the right)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18538 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-03 12:22:11 +00:00
Julian Smart
ca827deb02 Applied patch [ 652336 ] Add tooltip support to wxUniv on Windows
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18537 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-03 12:14:59 +00:00
Julian Smart
0f5edc6dbf Applied wxUniv toolbar fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18536 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-03 12:09:52 +00:00
Julian Smart
d1ab3c23cc Added glcanvas.cpp, tooltip.cpp, taskbar.cpp, wave.cpp to wxUniv/MSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18535 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-03 12:01:01 +00:00
Ron Lee
3dbec2dc52 typo fix.
disable generation of gtk-univ, we'll replace it with x11-univ later.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18534 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-03 10:22:20 +00:00
Ron Lee
29ffee2cd2 Update standards version.
Remove superfluous wxPy clean rule.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18532 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-03 07:23:49 +00:00
Robin Dunn
89a48d9401 SWIGged updates for wxMac (for unicode API changes)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18530 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-02 23:59:36 +00:00
Robin Dunn
928691d735 SWIGged sources for wxMSW (for unicode API changes)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18528 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-02 23:58:34 +00:00
Robin Dunn
d617f86238 SWIGged sources for wxGTK (for unicode API changes)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18521 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-02 22:51:50 +00:00
Robin Dunn
250c383f08 SWIGged sources for wxGTK (for unicode API changes)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18519 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-02 22:31:44 +00:00
Robin Dunn
b5ae0a9a3b Fixes to allow compilation in Unicode mode on wxGTK2. Python's
internal Unicode representation may or may not match wchar_t.
Previously I was using the optimized APIs that assumed they were the
same, but they aren't on Linux so this checkin switches to the more
general Python APIs.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18518 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-02 22:24:44 +00:00
Robin Dunn
952a4831ee Nicer implementation for autoselecting which wx-config to use.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18517 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-02 22:15:04 +00:00
Stefan Csomor
94e9962182 easier angle conversion wx-mac , corrected elliptic arc which sometimes filled in the wrong direction, fixed rotated text under osx (OSX ignored hanging baseline attribute)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18504 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-02 16:30:53 +00:00
Stefan Csomor
321267f659 no_wrap implementation added, corrected rectangles, so that horizontal scrollbar does not have a gap at the left
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18503 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-02 13:43:03 +00:00
Stefan Csomor
21f442c3e5 corrected generation of all event members (client data) and implemented DoGetBestSize
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18502 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-02 09:37:52 +00:00
Robin Dunn
cda461a616 Additional change for wxGTK2 that I forgot to check in yesterday
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18501 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-02 06:10:21 +00:00
Vadim Zeitlin
4c50ccaa92 fixed wxMutexLocker ctor signature (patch 660549)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18500 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-02 01:00:17 +00:00
Vadim Zeitlin
9ae87f7be3 typo fix (closes bug 654197)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18496 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-01 23:39:07 +00:00
Robin Dunn
19a31e1aec Changed wxLOG_Max to be a smaller (but still large) value
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18492 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-01 22:50:02 +00:00
Robin Dunn
b60c0b7030 This shouldn't have been checked in...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18487 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-01 19:09:47 +00:00
Gilles Depeyrot
c3674db226 backported change to not test for zlib under Mac
added wxWindows version compatibility information to configuration summary


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18486 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-01 18:23:15 +00:00
Mattia Barbon
56fcc081a5 Allow building Win32 DLL with wxGlCanvas using MinGW + configure.
(backported from trunk)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18481 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-01 13:14:31 +00:00
Ron Lee
fab6654943 Fix some lintian warnings.
Close tr.po bug at next upload.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18480 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-01 11:36:00 +00:00
Robin Dunn
e0f9dd5156 SWIGgeed updates for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18479 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-01 05:20:11 +00:00
Robin Dunn
490c977984 Changes for some wxNativeFontInfo methods
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18478 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-01 05:19:16 +00:00
Robin Dunn
4e60199541 wxPython changes for Get/SetLogLevel
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18477 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-01 05:18:17 +00:00
Robin Dunn
1077f448d5 Demo tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18476 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-01 05:17:22 +00:00
Robin Dunn
27d9601235 Added wxLog::Get/SetLogLevel
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18474 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-01 05:04:52 +00:00
Robin Dunn
2a54504cb6 Changes to allow wxPython to be built on *nix with wxWindows ports
besides wxGTK.  wxGTK2 (ANSI) currently works, others will be coming


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18473 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-01 04:58:44 +00:00
Robin Dunn
20cb8d638d OGL demo tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18472 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-31 22:12:36 +00:00
Robin Dunn
83ab6406d6 Some typos and such
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18471 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-31 22:09:18 +00:00
Robin Dunn
133a84d281 Use GetItemParent dorectly instead of renaming the now deprecated GetParent
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18470 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-31 22:08:41 +00:00
Vadim Zeitlin
137cd39ec5 use upper case in the charset to prevent the problems with toupper() in Turkish locale
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18469 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-31 14:22:39 +00:00
Robin Dunn
00608d228d Fixed a fatal bug that sometimes happens when wxPython objects are
destroyed while Python is cleaning itself up at exit.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18468 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-30 22:21:06 +00:00
Robin Dunn
557ef33173 Added an wxample of wxDividedShape to the demo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18467 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-30 22:19:40 +00:00
Robin Dunn
b836e27a15 Fixed problem of FormatText causing both the formatted and unformatted
text to be displayed


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18466 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-30 22:17:37 +00:00
Gilles Depeyrot
70be044335 SourceForge patch #654210 to fix naming/numbering shared libs under OS X
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18465 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-30 21:20:59 +00:00
Julian Smart
7e2955b75c Corrected accidental pointer arithmetic in DoClientToScreen and vice versa
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18463 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-30 20:08:40 +00:00
Václav Slavík
a6ba320faf fixed encoding handling in ANSI mode
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18462 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-30 18:55:33 +00:00
Vadim Zeitlin
91f46fbadc fixed buffer overrun when reading CCITT group 4 compressed TIFF files (patch 646603)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18459 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-30 01:09:16 +00:00
Vadim Zeitlin
9b1b2084b0 compilation warning fixes (patch 651719)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18458 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-30 01:00:49 +00:00
Stefan Neis
fd4fea4228 wxUsleep is supposed to sleep _milli_seconds, not _micro_seconds.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18457 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-29 22:04:24 +00:00
Stefan Neis
ee53c6ba0f Added missing include for non-precopiled headers.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18456 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-29 21:42:34 +00:00
Julian Smart
593ec30ad0 Tweaked the wording slightly for VC++ 5 compilation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18453 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-29 18:46:16 +00:00
Ron Lee
f2c9f0a505 Oops, don't cut and paste between ports, and do test compile both states
of a macro guard...


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18451 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-29 15:42:10 +00:00
Ron Lee
ad99843335 Added wxTreeCtrl::GetItemParent to deprecate GetParent.
Moved GetParent into WX_COMPAT_2_2 and exposed base GetParent in
that case too.

Replaced all lib/sample uses of wxTC::GetParent with GetItemParent.

Updated docs to suit.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18448 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-29 07:48:21 +00:00
Ron Lee
5cc29dd12d Typo fix.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18447 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-29 05:52:26 +00:00
Vadim Zeitlin
84efc067be fixed wxALL_FILES definition in Unicode build
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18446 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-29 01:38:49 +00:00
Julian Smart
35c8abd8b9 Use path separator, not "/"
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18445 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-28 22:58:12 +00:00
Julian Smart
6418db84dc Updated release scripts
No change to toolbar and scrlwing.cpp


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18441 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-28 18:37:06 +00:00
Julian Smart
cd84d4a071 Fixed compilation by removing stream inclusion
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18440 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-28 18:36:25 +00:00
Mattia Barbon
9348cc035a Re-committed Swedish translation. Merging a CRLF-terminated file
with a LF-terminated one makes msgmerge misbehave.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18439 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-27 22:34:43 +00:00
Mattia Barbon
d9efe8b65d Updated Svedish translation from Jonas Rydberg.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18437 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-27 22:17:38 +00:00
Robin Dunn
dd7555cd31 Fix for potential divide by zero error
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18433 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-27 21:16:16 +00:00
Mattia Barbon
30aa1a88c3 wxPerl notes for DocView.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18431 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-27 18:25:29 +00:00
Julian Smart
c309b8651f Applied patch [ 657501 ] SpinButton wraps 1 too much
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18430 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-27 15:21:34 +00:00
Julian Smart
638082f272 Applied patch [ 658174 ] Adds wxT() and char->wxChar conversion
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18429 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-27 15:15:29 +00:00
Julian Smart
4fbdc56aa7 Applied patch [ 658505 ] Updates documentation for wxTimeSpan
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18428 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-27 15:12:38 +00:00
Julian Smart
453a359a9e Applied patch [ 657515 ] Widgets sample notebook out of range
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18427 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-27 15:02:48 +00:00
Julian Smart
96ba157d97 Applied patch [ 658786 ] Removes unresolved symbols from strconv (wxUniv/MSW)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18426 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-27 14:59:35 +00:00
Julian Smart
d5f8e9457b Applied patch [ 657969 ] Removes #if wxUSE_VALIDATORS code
for wxOS2


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18425 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-27 14:52:14 +00:00
Julian Smart
ea541b7362 Added a necessary pixel to height if wxTB_NODIVIDER is specified
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18424 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-27 14:40:52 +00:00
Julian Smart
61de8ba064 Fixed bug [ 657949 ] Segmentation fault in ~wxFileHistory
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18423 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-27 14:25:59 +00:00
Julian Smart
64725871e0 Improved my fix to SetScrollbars, using wxMax & GetClientSize
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18421 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-27 14:04:10 +00:00
Robin Dunn
79649b31d6 added imports for missing items
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18420 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-27 03:57:40 +00:00
Robin Dunn
1cd902a094 Use WXDLLEXPORT_DATA for wx*NameStr's
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18417 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-26 19:11:04 +00:00
Vadim Zeitlin
ea836c51a2 changed the version to 2.4.0
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18413 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-24 11:26:09 +00:00
Robin Dunn
f497f4616b SWIGged updates for wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18411 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-24 00:50:05 +00:00
Robin Dunn
e9e2172042 Installer fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18410 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-24 00:48:11 +00:00
Robin Dunn
caf5371ff9 SWIGged updates for wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18409 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-24 00:45:42 +00:00
Robin Dunn
64818c920a Don't stop if already stopped
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18408 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-24 00:12:48 +00:00
Robin Dunn
1bb650e720 If zero-size there's nothing to draw...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18407 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-24 00:10:33 +00:00
Robin Dunn
642d2b8fa1 wxPython updates for 2.3.4.2 --> 2.4.0
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18406 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-24 00:06:15 +00:00
Julian Smart
239502350a Don't pass zero width or height to SetVirtualSize or layout is
messed up.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18405 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-23 23:42:13 +00:00
Ron Lee
cb3bed8054 Close de.po typo bug on upload.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18403 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-23 21:25:11 +00:00
Ron Lee
60f719d8fa Typo fix.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18401 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-23 21:15:30 +00:00
Julian Smart
cb0c6f3187 Added *.ani to image sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18398 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-23 11:17:28 +00:00
Julian Smart
5d051320d7 FL event patch from Hans
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18394 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-22 12:19:15 +00:00
Julian Smart
5ab37bdbb2 Applied patch [ 657445 ] Contrib FL lib doesn't build with wxUniv
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18392 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-22 11:03:31 +00:00
Julian Smart
adbec32f1a November -> December
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18391 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-22 10:54:12 +00:00
Vadim Zeitlin
bd37ea5198 copy headers under wx/msw/gnuwin32 in make install
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18390 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-22 01:22:40 +00:00
Václav Slavík
859d23845b fixed 2 encoding handling bugs in XRC/wxrcedit (backported to 2.4)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18385 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-21 13:35:49 +00:00
Václav Slavík
b591964667 backported small part of wxrcedit improvements patch into 2.4.0 -- correctly setting encoding and version on newly created files
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18383 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-21 13:34:09 +00:00
Robin Dunn
19ca811a88 notes for 2.3.4.2
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18381 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-21 01:46:00 +00:00
Václav Slavík
559d67b977 WX_XMLRES_CURRENT_VERSION_STRING wasn't Unicode safe
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18380 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-21 00:21:23 +00:00
Robin Dunn
4549842ab6 Refresh after changing the label or the font.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18378 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-20 21:59:22 +00:00
Robin Dunn
d9c9481f26 EventManager and Throbber updates
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18377 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-20 20:43:35 +00:00
Robin Dunn
159d1933fe PyCrust 0.8.1
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18376 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-20 19:43:03 +00:00
Robin Dunn
79301257f8 Allow SetCaretWidth(0)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18375 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-20 19:11:32 +00:00
Robin Dunn
2be337cfc7 Fix for Python 2.1 compatibility
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18374 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-20 16:09:11 +00:00
Stefan Csomor
74f9e8e3d9 menu string of choice control allows for all characters now
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18373 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-20 15:39:30 +00:00
Stefan Csomor
a48820e9f4 corrected setting invoking windows for wxMenus added after AttachMenuBar has been issued already. removal of Apple Help Menu Items occurs now also when the new menubar has no help menu itself
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18372 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-20 14:16:16 +00:00
Stefan Csomor
8979386806 added m_invokingWindow to wxMenuBar on wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18371 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-20 14:09:39 +00:00
Julian Smart
6967f8b779 Do -> Redo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18370 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-20 11:15:05 +00:00
Julian Smart
417093fe28 Cleaned up SetMenuStrings, factoring out redo and undo label accessors at the same time
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18369 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-20 10:15:06 +00:00
Robin Dunn
a973354bf6 fixed a path problem
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18368 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-20 06:34:25 +00:00
Robin Dunn
18cb97fb87 The viewdocs script can now find additional .zip books automatically.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18367 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-20 06:24:14 +00:00
Robin Dunn
eb6db0e4b8 Changed docs tarball to unpack to the same directory as the demo
tarball like it used to.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18366 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-20 03:47:59 +00:00
Robin Dunn
650164d34c Updated version number
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18365 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-20 03:46:23 +00:00
Robin Dunn
f129aba820 SWIGged updates for wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18364 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-20 03:34:49 +00:00
Robin Dunn
070ebc8f41 Updated version number
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18363 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-20 03:14:41 +00:00
Robin Dunn
940c78efaa SWIGged updates for wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18362 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-20 03:12:39 +00:00
Robin Dunn
cf57a49688 Updated version number
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18361 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-20 02:46:51 +00:00
Vadim Zeitlin
f9ec86744d test for system libz and libpng versions and not just for their existence (backported from the trunk)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18358 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-19 23:46:44 +00:00
Václav Slavík
79ebf0e9df removed translations where not needed (backported to 2.4)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18357 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-19 23:43:33 +00:00
Robin Dunn
119d4544ed Fis the wxOGL demo to show the new size of objects
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18356 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-19 23:18:08 +00:00
Julian Smart
2478f42a4c Fixed a problem with borders being set wrong sometimes on wxMSW, XP, VC++ 7
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18355 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-19 23:13:53 +00:00
Václav Slavík
9e55933fbf we don't really have to use variable instead of constant...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18354 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-19 22:15:45 +00:00
Robin Dunn
0e666140b3 Fixed missing import
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18353 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-19 22:10:41 +00:00
Julian Smart
17cd498d12 Don't build IPC version of HelpView on Mac Classic
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18352 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-19 20:02:27 +00:00
Robin Dunn
46c14bac9d Some more distrib scripts fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18351 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-19 18:54:22 +00:00
Robin Dunn
d195381766 Work around HasCapture() == true when mouse button is down on the
window's scrollbar


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18350 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-19 18:27:21 +00:00
Václav Slavík
b65e4260a7 make sure XPM handler is added at most once
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18349 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-19 12:24:47 +00:00
Julian Smart
eca005a814 Added missing fldefs.h to makefile
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18347 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-19 12:17:11 +00:00
Julian Smart
27827232cd Make the table border fix for all ports.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18345 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-19 10:20:41 +00:00
Julian Smart
4e06001fcb New OS2 specific files
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18344 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-19 10:03:57 +00:00
Mattia Barbon
c9dd6cb722 Fix wxSingleChoiceDialog under wxMotif.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18343 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-19 09:56:03 +00:00
Julian Smart
e68127f05b Fix border for wxGTK too
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18342 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-19 09:54:47 +00:00
Ron Lee
5312a4b81d No 2.4 prerelease for debian now it seems. :(
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18340 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-19 09:06:05 +00:00
Julian Smart
f1574c2f42 Fixed the cell border again (on wxMSW)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18338 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-19 07:44:30 +00:00
Ron Lee
38d1a89a2c Packaging updates for 2.3.4.1
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18337 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-19 07:38:02 +00:00
Václav Slavík
f9b549e095 simpler fix for rendering bug fixed in previous revision
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18336 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-18 23:32:23 +00:00
Václav Slavík
d62badf629 simpler fix for rendering bug fixed in previous revision
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18335 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-18 23:32:22 +00:00
Julian Smart
a81d920c91 Applied wxMenu::Remove patch
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18334 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-18 21:25:09 +00:00
Stefan Neis
10284f5ae6 Added some explanation about os2-specific.zip in wxAll distribution.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18332 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-18 19:14:02 +00:00
Julian Smart
6defe40555 Script mods
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18330 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-18 18:21:13 +00:00
Julian Smart
f086dd84c4 Fixed cell visibility test that was causing refresh glitches
in tables (since these were large enough cells to break the
original test)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18329 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-18 18:17:40 +00:00
Robin Dunn
045b46ea28 Some distrib tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18328 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-18 17:57:26 +00:00
Václav Slavík
36b5a8204e disable version-script on Solaris, it doesn't work
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18327 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-18 13:54:10 +00:00
Julian Smart
fcdafae8d3 Fixed cell paint background refresh bug
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18326 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-18 12:53:49 +00:00
Julian Smart
7ad7d8fe2c Added $(EXTRADLLFLAGS) to CFLAGS
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18325 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-18 08:33:27 +00:00
Robin Dunn
2ce91bf170 SWIGged updates for wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18323 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-18 06:48:23 +00:00
Robin Dunn
3cffacf8fc SWIGged updates for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18322 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-18 06:48:19 +00:00
Robin Dunn
da3ee1979a SWIGged updates for wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18321 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-18 06:28:23 +00:00
Robin Dunn
751d1f5b77 Fixes for Python 2.1 compatibility
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18320 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-18 06:25:03 +00:00
Robin Dunn
fbd3b09c78 Unicode fixes for wxPython
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18318 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-18 06:15:40 +00:00
Robin Dunn
fb7eaf0d7b More unicode fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18317 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-18 06:13:00 +00:00
Robin Dunn
3ce9929378 Unicode compilation fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18316 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-18 04:23:55 +00:00
Robin Dunn
a7ddd72ef9 Unicode compliation fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18315 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-18 04:15:50 +00:00
Vadim Zeitlin
21c9fbe5ee reset virtual root to NULL in DeleteAllItems()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18314 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-17 23:22:38 +00:00
Julian Smart
45fb821840 Fixed [ 652512 ] wxPaintDC::FindInCache bug
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18313 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-17 23:21:17 +00:00
Julian Smart
09a2fd9ce2 Applied patch [ 654877 ] Missing == != methods in wxRect2DInt
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18312 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-17 23:02:24 +00:00
Julian Smart
aca021757f Partially applied [ 632321 ] XRC object_ref fix
1. Fix object_ref so it at least works, with this I mean
XRC was not even handling the little sample in
tn0014.txt correct.

Hans Van Leemputten (hansvl)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18311 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-17 22:52:48 +00:00
Julian Smart
7f65647a0b Added wxUniv project file for dialogs
Fixed filelist.txt bug
Backported wxFileDialog fixes for wxUniv/MSW
wxFileSystem doc fixes
VC++ internal compiler error fix for statbar.cpp


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18310 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-17 22:31:37 +00:00
Bryan Petty
812919f6af This commit was manufactured by cvs2svn to create branch
'WX_2_4_BRANCH'.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18309 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-17 22:31:37 +00:00
Robin Dunn
31d10eb085 Updates to readmes, etc.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18306 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-17 22:14:23 +00:00
Robin Dunn
3d9d488655 Added missing #if wxUSE_WAVE
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18305 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-17 21:26:21 +00:00
Robin Dunn
1eab83f91a Fixed possibility of releasing mouse if the window no longer had it captured
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18304 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-17 20:57:55 +00:00
Vadim Zeitlin
342e11c27b unicode compilation fix for wxBase
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18302 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-17 19:49:48 +00:00
Robin Dunn
462c9d9cc2 Added the images for the throbber demo, updated image encoding script,
and regenerated python image files.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18301 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-17 19:40:06 +00:00
Robin Dunn
6b93408e4f More demo tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18300 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-17 18:20:43 +00:00
Robin Dunn
8291c05432 Don't allow demos that are known to still crash on OS X to be run.
Fix filebrowsebutton overlap.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18299 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-17 18:10:15 +00:00
Julian Smart
18b56e7057 Committed Stefan's temporary fix for crashing in Mac Classic.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18298 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-17 17:25:33 +00:00
Chris Elliott
99d2852f8c update borland makefile
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18297 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-17 12:17:57 +00:00
Julian Smart
9798a2f0ac Further improvements to MFC sample.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18295 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-17 11:18:09 +00:00
Julian Smart
5f7a7263c3 MFC sample now works properly; WinMain not defined in wxMSW
if wxUSE_MFC is defined.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18294 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-17 10:52:10 +00:00
Chris Elliott
71ea40203d add (missing) borland makefile
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18293 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-17 10:41:44 +00:00
Chris Elliott
5aaa9f10e4 update borland makefile
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18292 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-17 10:39:36 +00:00
Chris Elliott
cf3ea57675 bugs in mfc sample; partial fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18291 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-17 10:25:46 +00:00
Robin Dunn
fe80017b0b SWIGged updates for wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18290 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-17 02:27:37 +00:00
Robin Dunn
daddf28343 SWIGged updates for wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18289 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-17 02:22:40 +00:00
Robin Dunn
36483fa725 Bug fix to show only one tip dialog...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18288 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-17 01:54:18 +00:00
Robin Dunn
c23c3a0ac3 Unicode compilation fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18287 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-17 01:36:47 +00:00
Robin Dunn
110629ecfb Added demo for EventManager
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18286 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-17 00:52:15 +00:00
Robin Dunn
840eac6e39 Updated version number, some other last minute tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18285 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-17 00:04:07 +00:00
Robin Dunn
621ac7b903 fixed copy/paste error
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18283 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-16 23:08:31 +00:00
Robin Dunn
2bdd804134 Undid last change since I forgot to move my sticky tag first
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18282 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-16 22:53:13 +00:00
Robin Dunn
86c426f201 Enable EVT_WINDOW_DESTROY (on a private branch since Robert is not
around to ask why it was disabled.)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18281 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-16 22:47:07 +00:00
Robin Dunn
23d6e3a4be Misc wxSTC fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18280 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-16 22:35:12 +00:00
Robin Dunn
06de870e3f Give wxSafeYield an onlyIfNeeded parameter
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18279 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-16 22:05:35 +00:00
Robin Dunn
c77f57b50a More PyCrust updates
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18277 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-16 21:21:30 +00:00
Robin Dunn
df011ca6e2 Fixed typo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18276 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-16 21:14:04 +00:00
Robin Dunn
3376ead7b5 Setup the environment for testing
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18274 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-16 21:11:04 +00:00
Robin Dunn
736333bf45 Cleanup
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18273 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-16 21:03:53 +00:00
Robin Dunn
a5c0a4ca9c Added Robb's email address
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18272 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-16 21:03:39 +00:00
Robin Dunn
8a243ef08e Script to build wxPythonDocs tarball
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18271 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-16 21:02:00 +00:00
Robin Dunn
7ae404f97a removed makedocs.bat, will do in bash instead
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18270 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-16 20:56:41 +00:00
Mattia Barbon
667e69a3c6 Last samples/Unicode fixes.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18269 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-16 20:25:28 +00:00
David Webster
bbeb9cc4e8 final pre-release OS/2 updates.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18268 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-16 19:32:13 +00:00
David Webster
63c1d521d4 final pre-release OS/2 updates.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18267 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-16 18:34:27 +00:00
Robin Dunn
63e0edead7 Updated PyCrust
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18266 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-16 18:19:42 +00:00
David Webster
3cc4d9a7c3 ctl3d32.lib no longer relevant
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18265 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-16 16:58:43 +00:00
Stefan Csomor
7ade29f1f8 makefile for mac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18264 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-16 14:32:49 +00:00
Chris Elliott
721e57e874 fix bug with FINAL in borland makefile
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18263 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-16 12:54:45 +00:00
Julian Smart
a4b19428bb Fixed missing checkbox alignment
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18262 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-16 12:34:06 +00:00
Julian Smart
11b2a58e92 Updated change log
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18261 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-16 11:11:01 +00:00
Julian Smart
b99b7c9272 Applied patch [ 651713 ] changes to convertrc
David J. Cooke (davidjcooke)

amendments to convertrc: add support for
CONTROL... syntax for static, edit, combobox,
buttons, but NOT scrollbar; add support for
embedded quotes in stringtable; other minor changes


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18260 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-16 11:03:05 +00:00
Julian Smart
56ad7f8d5f Applied [ 652962 ] wxProgressDialog::Show(FALSE) bug
This fixes the problem where the application windows
were not being enabled prior to the progress dialog
being hidden in the situation where wxPD_AUTO_HIDE
was not used or was used but the end count was never
reached. This causes random applications to be
activated and brought to the front on Windows.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18259 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-16 10:57:48 +00:00
Julian Smart
821a27d77d Applied part of patch [ 652965 ] Enables toolbar simple in wxUniv
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18258 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-16 10:50:49 +00:00
Julian Smart
0d75432b09 Applied patch [ 652894 ] Checklistbox doesn't need owner draw
Updated wxUniv readme about setup[0].h


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18257 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-16 10:45:09 +00:00
Julian Smart
693d703b42 Copy wxUniv setup0.h to setup.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18256 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-16 10:36:17 +00:00
Julian Smart
c625623299 Removed redundant setup.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18254 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-16 10:26:25 +00:00
Julian Smart
e815a4feaf Backported wxHTML fixes
Applied patch [ 654023 ] Enables HtmlHelp (native)

Also fixed the bad event table in helpfrm.cpp.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18253 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-16 10:23:20 +00:00
Julian Smart
4febf1174f Applied [ 654253 ] wxGTK: fix to wxGetMousePosition()
wxGetMousePosition() returns -999, -999 when the mouse
pointer is not over a GTK window. This is apparently
because it uses the current window as a handle to get
to the X display. This is not necessary, however;
GDK_DISPLAY() can be used. With
this patch wxGetMousePosition() works regardless of
where on the screen the mouse is.

Jay Berkenbilt (jay_berkenbilt) modified by JACS


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18250 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-16 09:44:35 +00:00
Václav Slavík
9704351e8e backported wxFileSystem fixes to 2.4 branch
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18249 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-16 00:20:33 +00:00
Václav Slavík
44aca7b8ad backported wxFileSystem changes to 2.4
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18248 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-16 00:10:27 +00:00
Mattia Barbon
e2bc35e0b3 Fixed all remaining samples/Unicode compilation errors.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18241 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-15 17:25:36 +00:00
Mattia Barbon
424fc76cad More samples/Unicode fixes.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18239 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-15 10:23:11 +00:00
Václav Slavík
cfeff0e610 backported Czech translation to 2.4
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18238 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-15 00:33:29 +00:00
Gilles Depeyrot
c5c470e6ec fix FindMenu broken by implementation of double ampersands in menu and menu
item titles (finding "&File" was no longer working)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18237 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-14 21:44:48 +00:00
Václav Slavík
4780bb00a5 fixed typo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18233 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-14 21:16:27 +00:00
Mattia Barbon
540afe043f More samples/Unicode fixes.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18231 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-14 18:20:07 +00:00
Mattia Barbon
bb240b5157 Fixed compilation of some more samples in Unicode mode.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18229 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-14 14:23:10 +00:00
Mattia Barbon
74fbdb9e3b Fixed missing reference to wxTreeCtrlnameStr when linking treectrl sample
by adding #include "wx/treectrl.h" to data.cpp.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18228 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-14 14:16:14 +00:00
Julian Smart
3fe5213e43 Added missing SetOrientation accessor
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18225 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-14 09:29:02 +00:00
Robin Dunn
0b07750580 Fixed the spelling of Robb's name [me bad!]
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18224 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-14 00:50:19 +00:00
Robin Dunn
1c3c514dfa Added wxPython.lib.multisash by Gerrit van Dyk which is a nice
implementation of allowing the user to split a window any number of
times either horizontally or vertically, and to close the split off
windows when desired.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18223 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-14 00:42:48 +00:00
Robin Dunn
2466a3a892 Added wxPython.lib.gridmovers by Gerrit van Dyk which facilitates the
dragging of columns and/or rows in a wxGrid.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18217 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-13 23:35:43 +00:00
Robin Dunn
26e3a24354 Added wxPython.lib.popupctl by Gerrit van Dyk which is a combobox-like
gizmo for poping up arbitrary controls.  It is currently using
wxDialog because of some issues with wxPopupWindow...


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18216 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-13 22:57:55 +00:00
Robin Dunn
2a29de09fc Added comment about derivation problem.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18215 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-13 22:04:22 +00:00
Robin Dunn
13b14ee5ad Added wxPython.lib.evtmgr by Rob Schecter, which is an easier, more
"Pythonic" and more OO method of registering handlers for wxWindows
events using the Publish/Subscribe pattern.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18214 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-13 22:01:38 +00:00
Mattia Barbon
522b6f2994 Make some of the samples compile in Unicode mode.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18213 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-13 21:38:55 +00:00
Mattia Barbon
02525259a1 Unicode compilation fix.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18212 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-13 21:36:19 +00:00
Mattia Barbon
642246664c Add WXDLLEXPORT to friend declaration for GCC 3.2.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18211 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-13 21:35:15 +00:00
Mattia Barbon
2cdf28e928 Updated .po files.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18208 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-13 21:19:17 +00:00
Julian Smart
918392e70f Committing old changes (sorry, can't remember what)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18205 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-12 22:02:36 +00:00
Stefan Csomor
7079cf814e turned combobox off for wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18204 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-12 16:09:55 +00:00
Chris Elliott
30becbd63d fix for cygwin WXDLLEXPORT bug
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18202 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-12 11:57:31 +00:00
Robin Dunn
823ef93f89 Fixes for the helpviewer and regenerated batch files
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18201 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-12 07:04:43 +00:00
Robin Dunn
b32d67f03d Added HelpViewer tool
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18200 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-12 06:40:20 +00:00
Robin Dunn
57327441a0 Renamed some helpers to avoid "GNU C++ internal naming strategy" warnings
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18199 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-12 06:29:23 +00:00
Robin Dunn
245f9233fc Throbber fixes, other tweaks to the demo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18198 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-12 06:14:56 +00:00
Robin Dunn
a8e8c0adf2 Win32 installer first prompts to uninstall old version
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18197 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-12 04:59:17 +00:00
Robin Dunn
3e87f7c085 SWIGged updates for wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18196 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-12 03:56:58 +00:00
Julian Smart
f8a1c24cca Applied patch [ 651287 ] adds missing wxTreeCtrl::GetEditControl
Peter Stieber


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18195 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-11 17:51:07 +00:00
Vadim Zeitlin
9c2a975b3c changed the version to 2.4.0
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18194 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-11 15:16:06 +00:00
Robin Dunn
6c85e4ea6c SWIGged updates for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18191 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-10 22:45:08 +00:00
Robin Dunn
ef84703240 Added a version save isinsnace function
Added wxPoint2DDouble


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18190 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-10 22:37:10 +00:00
Robin Dunn
9b126063b3 Changed version number, added some experimental stuff (which isn't
currently active) for canvas, wxArt2D, etc.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18189 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-10 22:08:05 +00:00
Robin Dunn
92bcb27d52 Cleanup
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18188 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-10 22:06:54 +00:00
Robin Dunn
19d9393211 img2py can now output a "catalog" of the images in the .py file, also
added header comments to the files.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18187 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-10 22:06:33 +00:00
Robin Dunn
02160d547f Demo enhancement from Will Sadkin
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18186 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-10 22:04:51 +00:00
Robin Dunn
523c689abb Added Throbber class from Cliff Wells
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18185 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-10 22:03:35 +00:00
Robin Dunn
516a7db375 Make the RPM builder and .spec a little simpler
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18184 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-10 22:01:24 +00:00
Julian Smart
1f6665c4a7 FromString should not fail on wxMac if facename empty.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18177 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-10 16:10:02 +00:00
Chris Elliott
d0041c5d85 fix bug with WXDLLEXPORT
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18173 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-10 09:35:41 +00:00
Julian Smart
ac0ab0af7c Backported some helpview fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18168 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-09 18:37:20 +00:00
Vadim Zeitlin
9c3ae8f70d backported nicer icon (without extra pixels which become garbage when scaled down to 16*16) from the trunk
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18164 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-09 16:45:37 +00:00
Chris Elliott
611024d19f fix bug with treectrl sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18157 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-09 15:13:53 +00:00
Julian Smart
c338913066 Added horse3.ani
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18156 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-09 15:10:14 +00:00
Julian Smart
d985da38ab Removed redundant m_server init
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18155 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-09 14:45:36 +00:00
Julian Smart
5fc426be1c Reverted the _n__ fix for now.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18153 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-09 14:35:09 +00:00
Julian Smart
28e1cf0c92 The wxMAKE_UNIQUE_ASSERT_NAME fix for VC++ does not work for MetroWerks CW.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18152 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-09 14:20:06 +00:00
Roman Rolinsky
9edfe06a3c source moved to tree.py
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18151 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-09 11:27:18 +00:00
Julian Smart
d1207a5142 Applied patch [ 632115 ] Fixed internationalization on tooltips
wxMac's wxTooltip assumed that text was always PC encoded,
and always converted the string using
wxMacMakeMacStringFromPC(). This worked fine for English
characters, but multi-byte encoded languages such as Japanese
(SJIS) because garbled. I've added a check for
"wxApp::s_macDefaultEncodingIsPC" before performing the
conversion similar to other controls.

Nilesh Agarwalla


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18150 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-09 11:22:43 +00:00
Roman Rolinsky
e2c61e5080 *** empty log message ***
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18149 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-09 11:20:48 +00:00
Julian Smart
5a8bec2332 Applied patch [ 649284 ] Fix wxODBC to work with MySQL 2.x
The current sample/db fails to build indexes with
MyODBC v2.50.39

This is due to two problems:

(1) wxDb::ModifyColumn() created a SQL statement that
was not correctly formed for MySQL. This problem
caused wxDbTable::CreateIndex() to fail to set the
columns that are going to indexes to be NOT NULL. I
fixed this by added a special case for MySQL.

(2) When creating an Index on a VARCHAR column,
MySQL requires a key length to be specified.
wxDbTable::CreateIndex() current does not do this. I
fixed this problem by adding code to do this.

The attached patch file patches dbtable.cpp and db.cpp
on the 2.5 branch.

gor Mikolic-Torreira


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18145 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-09 10:50:14 +00:00
Julian Smart
e95a9bf0fd Applied patch [ 649590 ] fixes bug 611264: wxFileDialog entry
In bug 611264 I reported that typing a filename into a
multiple selection file dialog failed. The file
returned was "..".

I discovered that this was because the previous
directory folder came up automatically selected when
the dialog was created. Then, I discovered a related
bug. If any file or folder was selected, then that was
the file which was returned regardless of what was
typed in.

To fix the problem I added an EVT_TEXT handler which
deselects everything that is selected when the user
types. The handler does not deselect anything unless
the user actually types something.

This patch implements the fix.

John Skiff


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18144 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-09 10:44:13 +00:00
Julian Smart
c7c772d6f2 Applied patch [ 650078 ] Add better checking to wxComboBox
This patch adds extra checks, checks to see and report
if the provided item index is valid.

An other thing:
- IMHO wxComboBox::GetSelection() was wrong, I
corrected this (now it behaves the same as wxMSW,
don't know about wxGTK and others...).

Hans Van Leemputten (hansvl)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18142 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-09 10:26:21 +00:00
Julian Smart
a7cc2111b8 Applied patch [ 648042 ] Erase background error
When erasing the background with a transparent
background the logical origin of the provided DC is (re)
set, but not restored to the old value. Restoring the old
value is needed because the DC is/can be shared with
the real draw code...

This patch solves problems like mentioned in bug report
#635217 and problems like controls (like radio controls
etc) that disappear when moving the mouse over them or
clicking on them...

Hans Van Leemputten


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18141 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-09 10:20:44 +00:00
Julian Smart
f540de4447 Applied patch [ 642172 ] Fix menu accelerators in ownerdrw
Fixed bug when updating menu text to inform the
ownerdrw code of the new menu accelerator attached to
the menu item.
Improved the layout of the owenerdrw menu ownerdrw to
correctly account for menu accelerators, submenu
arrows etc.

Scott Pleiter

(Note from JACS: I've also changed the sample to show the Quit item
correctly aligned; it needs to have the font set before wxWin knows
it's an ownerdrawn item.)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18140 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-09 10:15:00 +00:00
Roman Rolinsky
bca584ff5e *** empty log message ***
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18139 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-09 09:49:05 +00:00
Roman Rolinsky
343ecf673b changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18138 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-09 09:48:01 +00:00
Roman Rolinsky
4acfbf894d Changes from global variables to 'g' object defined in globals.py
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18137 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-09 09:46:58 +00:00
Julian Smart
ee950b94e2 Applied patch [ 642162 ] restore wxWizard wxEVT_WIZARD_FINISHED
Restore the wxWizard wxEVT_WIZARD_FINISHED
event, which was sent when the FINISHED button was
pressed and the wizard was finished. When the
wxWizard is modal this event is not needed. However,
when the wizard is non-modal this is the only way to
determine that the wizard has finished.

Scott Pleiter


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18136 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-09 09:46:16 +00:00
Roman Rolinsky
e5c923ce11 Undo/Redo support classes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18135 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-09 09:45:57 +00:00
Roman Rolinsky
d1c6feb36f Undo/Redo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18134 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-09 09:45:12 +00:00
Roman Rolinsky
d596568d78 Separated XML_Tree to tree.py, Panel and friends to panel.py
added Undo/Redo commands

added 'container' submenu

other fixes


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18133 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-09 09:44:30 +00:00
Roman Rolinsky
f22fe04411 SawFish customization for better focus handling
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18132 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-09 09:42:36 +00:00
Roman Rolinsky
4efd2698e9 Global variables collected
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18131 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-09 09:41:42 +00:00
Roman Rolinsky
1fc853e5e7 Separated xrced.py in 3 files
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18130 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-09 09:41:04 +00:00
Roman Rolinsky
d150c524ed Undo/Redo images
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18129 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-09 09:38:30 +00:00
Julian Smart
114bf539c7 Applied patch [ 642157 ] [MSW] HMENU resource leak from wxMenuBar
Latest CVS - When a wxMenuBar is detached
from a frame and deleted the HMENU resource leaks.
This patch fixes the leak.

Scott Pleiter


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18128 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-09 09:29:00 +00:00
Julian Smart
0f4008d545 Applied patch [ 638561 ] Allow SetFont(wxNullFont) in wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18125 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-09 09:14:39 +00:00
Julian Smart
8cec24b7b4 Applied patch [ 637982 ] wxComboBox needs margin
wxComboBox doesn't have a margin between the text and
the dropdown button when the default size is used.
Since wxTextctrl currently returns a rather long minmal
size, this error is only visible if a long text (around
20 chars) is used. This patch introduces a margin
(analog wxSpinctrl).

Otto Wyss


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18121 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-08 22:07:09 +00:00
Václav Slavík
ad9b9a0f7b Fixed EVT_TREE_SEL_CHANGED and _CHANGING under MSLU (patch 631815) (backported from the trunk)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18109 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-08 13:23:46 +00:00
Václav Slavík
c89124b7c0 XRC assigns ID to wxStaticBox created by including wxStaticBoxSizer (did what patch 632470 was supposed to do) (backported from the trunk)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18107 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-08 13:22:17 +00:00
Václav Slavík
348ffb021f Unicode compilation fixes for treectrl sample (backported to 2.4)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18105 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-08 13:21:49 +00:00
Stefan Neis
7d4d26e6f0 Added information on how to circumvent make's problems with auto-generated
.d files.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18095 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-07 15:21:40 +00:00
Julian Smart
0850f7534a Correction to path/URL code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18092 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-07 09:18:44 +00:00
Vadim Zeitlin
454bf1cbe0 added semicolons after HASH_MAP (backported from trunk)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18091 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-07 02:30:36 +00:00
Vadim Zeitlin
a80f274b76 removed trailing semicolons at the end of HASH_MAP macros (backported from trunk)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18089 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-07 01:33:37 +00:00
Vadim Zeitlin
4aabda8557 fixed 3 infinite loops (backported from the trunk)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18081 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-06 23:57:27 +00:00
Julian Smart
af2a45e596 Applied fix for VC++ 7 which treats __LINE__ slightly differently, apparently.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18073 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-06 22:49:58 +00:00
Vadim Zeitlin
9cb97b123e compilation fix for wxUSE_INTL == 0 (backported from trunk)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18072 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-06 21:26:06 +00:00
Julian Smart
51bc5688a0 Removed apparently erroneous manipulation of filename/URL
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18066 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-06 20:12:48 +00:00
Stefan Neis
67c7e6f7b8 Changed GSocket_Select to use unix code for wxBase, previous code wasn't
detecting loss of connection.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18063 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-06 16:57:30 +00:00
Stefan Neis
49f54610cc Updated to more OS/2 friendly version.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18062 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-06 16:54:11 +00:00
Julian Smart
6f163e3d7b Added note about opening .dsp files in VC++ .NET
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18061 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-06 14:16:27 +00:00
Stefan Csomor
c8a85f4c87 print session additions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18056 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-05 15:13:12 +00:00
Julian Smart
cf8bac5170 Further version changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18055 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-05 12:14:53 +00:00
Julian Smart
ea2093eb26 Changed version to 2.4.0
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18053 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-05 11:55:25 +00:00
Julian Smart
2fcfadb4f5 Clean up CVS dirs and other rubbish
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18048 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-05 10:14:03 +00:00
Julian Smart
855a407f92 Test for stream validity in wxImage::GetImageCount()
Use horse3.ani in image sample.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18047 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-05 10:10:04 +00:00
Vadim Zeitlin
3801f213a8 allow TABbing into multiline text controls even if they're not editable (backported from the trunk)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18045 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-05 01:07:33 +00:00
Vadim Zeitlin
027f7d8921 compilation fix after recent patch (backported from trunk)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18043 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-04 23:18:16 +00:00
Vadim Zeitlin
03bef50de5 refresh the dir label when changing directory (bug 630091)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18038 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-04 12:17:24 +00:00
Vadim Zeitlin
0c9b6a3c59 fixed CVS repository path
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18037 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-04 12:15:06 +00:00
Gilles Depeyrot
1a0b595dcd - implemented handling of double ampersands '&' in wxGTK menu item texts in
order to allow embedding an ampersand character in the menu item text
- documented use of double ampersands for menu item texts


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18036 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-03 21:19:23 +00:00
Roger Gammans
a81052ed96 * Change wxDbLogExtendedErrorMsg() prototype to allow building
as a DLL on with mingw32


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18035 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-03 19:00:49 +00:00
Stefan Csomor
ed46dceab3 always reusing the session from printdata, that way print to pdf etc is preserved
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18034 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-03 14:54:41 +00:00
Stefan Csomor
fdb1afcd50 fixing internal m_isOk status
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18033 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-03 14:51:51 +00:00
Stefan Csomor
143de0ca83 adding the print session to the print data
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18032 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-03 14:39:32 +00:00
Julian Smart
27e208b84d Attempt to clarify the wxMac install doc
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18031 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-03 14:25:22 +00:00
Julian Smart
21905d7265 Fixed a bug in virtual filesystem by converting to
native filename when necessary.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18030 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-03 13:55:44 +00:00
Julian Smart
26d08cc602 Added references to wxTreeItemId::IsOk
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18029 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-03 13:33:39 +00:00
Robin Dunn
c606ab69eb Compilation fix (gcc 3.2)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18028 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-02 22:44:23 +00:00
Vadim Zeitlin
d056288d67 Unicode compilation fixes for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18027 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-02 21:23:13 +00:00
Roman Rolinsky
8f92c81ebd basePath fix: must be directory name
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18026 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-02 20:06:21 +00:00
Vadim Zeitlin
8f6df1fa78 test that wxUSE_RESOURCES == 1
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18025 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-02 19:53:20 +00:00
Vadim Zeitlin
4d384f006c use GetSize() instead of hardcoded 10248768 -- but then it doesn't really matter as the code still doesn't work
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18024 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-02 19:51:33 +00:00
Václav Slavík
7d0946bee1 fix object_ref lookup in case when object_ref node didn't specify class
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18023 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-02 18:15:12 +00:00
Vadim Zeitlin
4c0c84886b added Find(T *), replaced wxObject with T
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18022 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-02 17:15:36 +00:00
Vadim Zeitlin
6d76da42e1 tried to make docs about pseudo-templaet wxNode more clear
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18021 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-02 17:05:58 +00:00
David Webster
e29c3411d3 OS/2 bug fixed.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18020 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-02 14:11:38 +00:00
David Webster
9905679b18 no message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18019 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-02 14:08:35 +00:00
Julian Smart
5b6a40fb0e Moved wxUSE_CMDLINE_PARSER to more sensible place
Added it to wxMac's setup0.h
Removed semicolon from HASHMAP decl


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18018 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-02 11:42:23 +00:00
Vadim Zeitlin
3f3ccd46c6 fixed a typo I accidentally introduced in my last commit
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18017 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-01 23:51:02 +00:00
Vadim Zeitlin
054cab527c typo in wxWCharBuffer definition fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18016 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-30 22:22:25 +00:00
Vadim Zeitlin
ebf126595a removed (ugly) workarounds unneeded any more because of 1.23.2.3 change in wx/buffer.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18015 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-30 22:19:24 +00:00
Vadim Zeitlin
748b03e9c0 1. reverted previous (1.23.2.1) change -- copy ctor and operator=() now
take const arguments again
2. added operator=(char *)
3. both wxCharBuffer and wxWCharBuffer are now created from the same macro


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18014 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-30 22:18:34 +00:00
Vadim Zeitlin
934a9da8db make install should now install *.cur/*.ico/*.bmp files under Win32
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18013 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-30 21:36:27 +00:00
Václav Slavík
bdac73ce95 install MGL header w/ wxMGL
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18012 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-30 19:25:39 +00:00
Václav Slavík
ce25ec0551 fixed mgl.t to not include parser.o
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18011 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-30 19:22:48 +00:00
Václav Slavík
12c2f18f3b make it possible to use shared version of MGL with wxMGL
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18010 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-30 19:15:08 +00:00
Václav Slavík
8444bc2a0f added wxMGL spec file
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18009 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-30 19:14:09 +00:00
Václav Slavík
a5716ecb20 added 'make dist' for wxMGL
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18008 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-30 19:13:25 +00:00
Vadim Zeitlin
3605c20da2 wx/msw/gccpriv.h is used by wxBase too
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18007 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-30 13:40:42 +00:00
Václav Slavík
6b0558e07d better translatable message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18006 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-30 13:20:29 +00:00
Julian Smart
08ed73f47b Removed __SALFORDC__ lines which apparently mess up with __SALFORDC__
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18005 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-30 10:51:34 +00:00
Vadim Zeitlin
ea54a476a4 Dutch translations update from Dimitri
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18004 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-30 00:49:41 +00:00
Václav Slavík
5c3290a9de use traditional Chinese for zh_TW on Windows
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18003 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-29 23:43:20 +00:00
Julian Smart
de9e98335d Must insert WM_QUIT back into the message queue if eaten
by wxYieldForCommandsOnly. Cures the taskbar sample GPF.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18002 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-29 17:40:38 +00:00
Chris Elliott
d10de62799 remove false assert
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18001 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-29 16:44:55 +00:00
Stefan Neis
bd747ce4af Moved OS/2 specific library check to a different location:
- after "Checks for programs", so newer autoconf version will be happy.
        - still before "Check for headers" as this is necessary!


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18000 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-29 12:19:46 +00:00
Vadim Zeitlin
1ae0c8d334 use libjpeg and libz in tests for libtiff or they fail (patch 644149)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17999 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-28 21:52:14 +00:00
Vadim Zeitlin
82f9014293 fixed loss of client data in wxChoice::SetString()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17998 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-28 21:27:30 +00:00
Mattia Barbon
7a884e16cb Fix MinGW GCC 3.2/Unicode compilation.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17997 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-28 18:18:10 +00:00
Mattia Barbon
f27187f468 Applied patch from Ian Brown. Fixes coredump under Solaris.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17996 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-28 18:13:00 +00:00
Vadim Zeitlin
fd5630b45c fixed wrong usage example in wxLogChain section
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17991 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-28 13:28:33 +00:00
Vadim Zeitlin
efb5bca6cc added files needed for building using configure (e.g. with cygwin) to wxBase distribution
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17990 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-28 13:12:00 +00:00
Julian Smart
b7f3131ac8 Copy helpview XPMs
char -> wxChar in glcanvas


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17989 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-28 11:27:33 +00:00
Julian Smart
ece34aec85 Rewrote script to allow selection of individual platforms
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17988 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-28 11:15:35 +00:00
Julian Smart
7daa1f1866 Added missing files
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17987 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-28 11:14:15 +00:00
Chris Elliott
3548d6186b add WXLIBBASE variable to make.env
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17986 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-27 14:08:32 +00:00
Julian Smart
9264d711e6 Include version-script.in in distributions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17985 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-27 14:01:42 +00:00
Julian Smart
c1ecde9821 Corrected typo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17984 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-27 11:38:08 +00:00
Julian Smart
ce78ea2a46 Fixed some dist things:
Added missing sample Makefile.in's
Added helpview, emulator
Maybe it's a better idea not to recursively
copy the dialoged tree, CVS directories and all!


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17983 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-27 10:25:57 +00:00
David Webster
88ecce35e8 Weekly updates.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17982 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-27 05:50:21 +00:00
Robin Dunn
ba75150d36 Typo fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17981 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-27 03:12:24 +00:00
Robin Dunn
6427c15c98 Demo tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17980 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-27 02:37:52 +00:00
Robin Dunn
c4f0ba3f89 SWIGged updates for wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17979 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-27 02:29:28 +00:00
Robin Dunn
3e69c7670f Don't cache NULL attr objects
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17978 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-27 02:27:14 +00:00
Robin Dunn
d5c363173a Corrected a couple problems in wxStreamBuffer that show up when
reading from a wxMemoryStream


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17977 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-27 02:00:23 +00:00
Robin Dunn
fddf5d878a Changes so xrced always looks in the module's location for extra files.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17976 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-26 22:30:02 +00:00
Václav Slavík
dfd2ef2854 version-script.in was missing in make dist
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17975 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-26 22:17:49 +00:00
Chris Elliott
679215afbf fix bug with building contrib libraries for gcc 3.2 (2.95 stillOK)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17974 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-26 16:44:24 +00:00
Stefan Csomor
34b75f4706 added UPP for OTNotifier (needed for carbon)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17973 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-25 21:08:46 +00:00
Gilles Depeyrot
d0c22ffa5b added XML file typing
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17972 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-25 20:58:28 +00:00
Ron Lee
0ce85b3d22 added -ffunction-sections for broken hppa linker.
bumped debian version for release.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17971 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-25 13:08:22 +00:00
Ron Lee
463318d6e8 update config.guess, adds support for mips (released on Debian)
and a couple of other new platforms.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17970 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-25 12:12:56 +00:00
Julian Smart
719d607331 Use rpmbuild, not rpm
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17969 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-25 09:52:36 +00:00
Julian Smart
5f053923e2 Corrected redirection typo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17968 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-25 08:50:50 +00:00
Vadim Zeitlin
866a1da2da define (empty) ~wxDataObject everywhere: apparently it's needed for AIX and not only Darwin
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17967 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-25 01:51:04 +00:00
Julian Smart
14ee3dc323 Corrected some .dsp,.dsw filenames
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17966 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-24 21:31:35 +00:00
Stefan Csomor
305f6124d4 m_meta was removed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17965 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-24 18:37:28 +00:00
Julian Smart
e425da62de Updated the OS2-specific configury
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17964 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-24 17:29:16 +00:00
Stefan Csomor
6c4a74f67e added code for always getting back the real font name even though only a family was given.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17963 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-24 17:05:52 +00:00
Stefan Csomor
4d9bcf27a8 switched drawing algorithm, since apparently DrawThemeTextBox has some problems not squeezing the text under certain OS versions. also added the OS Truncating algorithm which does add ellipsis (...) when the text does not fit
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17962 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-24 17:03:35 +00:00
Stefan Neis
50c7b3cd58 Added work-arounds for current problems with OS/2's PM port.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17961 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-24 16:13:02 +00:00
Stefan Neis
21b132347d Compilation fix for EMX.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17960 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-24 16:09:42 +00:00
Julian Smart
17ffbcef2e Fixed some wxNotebook refresh problems on wxUniv/WIN32
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17959 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-24 11:52:33 +00:00
Julian Smart
f9829ca9f6 Updated date on readme
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17958 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-24 10:52:50 +00:00
Julian Smart
a6d9a74902 Corrected label typo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17957 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-23 20:50:25 +00:00
Václav Slavík
20e2e78607 use wxConvLibc for argv[] again
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17956 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-23 20:47:21 +00:00
Julian Smart
00bb90a5ef Added a Refresh() to SetSelection() so programmatic tab changing works
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17955 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-23 20:12:45 +00:00
Stefan Neis
57350623b6 Added yet another include for EMX.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17954 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-23 18:36:54 +00:00
Vadim Zeitlin
2b46f72b18 updated french translation from Stephane Junique
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17953 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-23 15:43:49 +00:00
Stefan Csomor
1502cb12e1 changes for supporting more menu shortcuts
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17952 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-23 08:02:50 +00:00
Robin Dunn
c77f5e912d SWIGged updates for wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17951 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-23 05:36:39 +00:00
Julian Smart
35c9aadc34 wxTabEvent and tab styles now in keeping with wxNotebook, for future
reference.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17950 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-23 00:00:21 +00:00
Julian Smart
dbad89ddf6 wxTabEvent should derive from wxNotifyEvent, not wxCommandEvent
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17949 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-22 23:06:23 +00:00
Vadim Zeitlin
23c618498b don't return wxDefaultSize from GetBestSize() under any circumstances (reverted part of 1.123.2.2 change)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17948 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-22 22:51:57 +00:00
Robin Dunn
8a69a46a6c demo tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17947 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-22 22:32:36 +00:00
Robin Dunn
e3ecd8d90b Ran autoconf on the configure.in that was recently checked in
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17946 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-22 22:30:07 +00:00
Robin Dunn
05dce81b01 Added new wxTreeCtrl methods
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17945 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-22 22:27:46 +00:00
Robin Dunn
790072cb11 SWIGged updates foe wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17944 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-22 22:25:28 +00:00
Vadim Zeitlin
adf499e8bd fixed SetBestSize() by restoring its old behaviour (undid 1.94.2.1 change and added comments about why the actual code is right)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17943 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-22 21:37:10 +00:00
Robin Dunn
04328e6e30 Fixed a typo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17942 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-22 21:33:21 +00:00
Robin Dunn
43989cd7fd Added some missing wxSTC_CMD_* #defines, also changed a bit how stc.h
is generated so all the wxSTC_CMD_*'s are grouped together.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17941 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-22 20:49:48 +00:00
Robin Dunn
5e119f2478 Whitespace-only changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17940 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-22 19:06:12 +00:00
Robin Dunn
8f968c7be2 SWIGged updates for wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17938 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-22 18:52:13 +00:00
Robin Dunn
06c2fab604 Add libstdc++ for building on Jaguar
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17937 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-22 18:47:37 +00:00
Julian Smart
aa9bb779bb Added missing wxTreeCtrl accessors.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17936 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-22 16:49:51 +00:00
Vadim Zeitlin
a5801aa78e use #include "wx/sizer.h" instead of <wx/sizer.h>
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17935 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-22 12:18:25 +00:00
Vadim Zeitlin
97d5c8bff8 added missing combobox ctor param doc
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17934 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-22 11:54:38 +00:00
Julian Smart
619659372c Fixed a Latex error but giving up with others
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17933 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-22 08:59:23 +00:00
Julian Smart
e22cbf697e A script to suppress some common Lacheck warnings
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17932 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-22 08:49:58 +00:00
Gilles Depeyrot
bdc68939fb remove OnSize handler which is in fact not needed now that width caching is
based on caching the client width changes


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17931 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-22 07:13:39 +00:00
Robert Roebling
93f1e6d330 Reimplemented wxMatchWild() which should fix the
problems it had under Unicode and the fact that
   it behaved differently on different platforms.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17930 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-21 21:49:20 +00:00
Gilles Depeyrot
9814147718 recompute width cache if client width has changed to take into account the fact
that derived OnSize is run before cache has been cleared in own OnSize


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17929 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-21 21:30:28 +00:00
Vadim Zeitlin
af68a70285 described --enable-debug and not only debug_info/flag
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17928 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-21 17:19:38 +00:00
Julian Smart
437753d80c Border removed, other sillinesses fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17927 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-21 17:01:15 +00:00
Jouk Jansen
6fb932d8cc Committing in .
OpenVMS compile support update

 Modified Files:
  Tag: WX_2_4_BRANCH
 	wxWindows/src/html/descrip.mms
 ----------------------------------------------------------------------


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17926 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-21 14:59:39 +00:00
Robert Roebling
d992c3caa5 This should add Unicode mode to the list of
compile modes after running configure.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17925 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-20 20:52:26 +00:00
Julian Smart
769caa0789 Fixed libsrc_dir variable
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17924 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-20 19:44:16 +00:00
Robert Roebling
ae361aca86 GTK2 fix.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17923 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-20 17:45:14 +00:00
Julian Smart
d01e3d8d9e Fixed ALL CAPS text bug in wxX11
Removed compiler warning in text sample


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17922 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-20 15:14:02 +00:00
Julian Smart
49cbccdd3f Removed silly comment
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17921 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-20 08:29:46 +00:00
Robin Dunn
8ca8f1340c Fixed compilation error
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17920 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-20 01:12:36 +00:00
Václav Slavík
50297bd752 this is ugly as hell, but what
else can I do to make following cases different:
a) wxSetlocale returns
b) wxSetlocale returns NULL
?


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17919 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-19 23:19:30 +00:00
Robert Roebling
9b9a7d8baa Tried another fix for my wxTextCtrl crash. Stefan's
attempt had no effect and I didn't see any side
    effects of my change either.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17918 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-19 22:41:07 +00:00
Robert Roebling
52b79074ce Actually destroy the toolbar tool controls when
destryoing the toolbar as we otherwise leave
    ghosts around.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17917 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-19 21:56:10 +00:00
Stefan Csomor
24affeb7e1 guarded frame setting when window is deleted
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17916 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-19 21:35:09 +00:00
Robin Dunn
dd8838213d little demo tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17915 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-19 18:55:39 +00:00
Robin Dunn
67167e345d Added space and tab to key names recognised for accelerators
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17914 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-19 18:54:46 +00:00
Julian Smart
26227372e3 option -> proportion
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17913 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-19 18:23:28 +00:00
Chris Elliott
045d7116f4 small clarification to doc for get next sibling
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17912 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-19 13:03:27 +00:00
Chris Elliott
be5827b6e7 small amendment to doc
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17911 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-19 12:56:06 +00:00
Chris Elliott
7a3ea24b51 missing source file added to makefiles
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17910 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-19 10:18:31 +00:00
Robin Dunn
b9f92f36bc SWIGged updates for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17909 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-19 09:22:56 +00:00
Robin Dunn
b181a4bfb1 SWIGged updates for wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17908 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-19 02:47:43 +00:00
Robin Dunn
f455ea7dc9 Typo fixed and other tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17907 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-19 02:44:14 +00:00
Robin Dunn
5c704db5e1 More wxUSE_PROLOGIO==0 changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17906 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-19 02:43:41 +00:00
Robin Dunn
28f350310d Change wxPython's version numbers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17905 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-19 02:41:30 +00:00
Robin Dunn
3aeb16e92d Changes needed to allow wxPython's OGL to compile when wxUSE_PROLOGIO==0
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17904 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-19 02:40:02 +00:00
Robin Dunn
9dd12fa0af Changes needed to allow OGL to compile when wxUSE_PROLOGIO==0
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17903 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-19 02:13:32 +00:00
Václav Slavík
73a0aac054 Fixed subtle memory allocation bug. Mysterious crashes in glibc may go away now.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17902 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-18 23:12:11 +00:00
Václav Slavík
bae090fcff fixed thread-safe versions of wxMB2WC and wxWC2MB
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17901 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-18 23:05:15 +00:00
Václav Slavík
72856fe8cd fix xrcdemo makefile
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17900 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-18 23:02:33 +00:00
Julian Smart
1b420e0e7c Check whether m_toolCapture is NULL before using it
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17899 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-18 22:39:58 +00:00
Václav Slavík
afb297caee use gtk2 as toolkit name instead of gtk if built against GTK+ 2.0
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17898 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-18 18:08:03 +00:00
Chris Elliott
2e64c8e7bc update sample to test for const char * cast to int in imagbmp.cpp bug
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17897 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-18 16:07:14 +00:00
Chris Elliott
3edae636f9 fix const char * cast to int in imagbmp.cpp bug
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17896 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-18 16:04:19 +00:00
Julian Smart
185bb8af9a Helpview mods
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17895 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-18 14:46:49 +00:00
Julian Smart
39560cbe68 Added Eric Dowty's wxRemoteHtmlController class and test app,
with mods to helpview for full control


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17894 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-18 14:43:32 +00:00
Václav Slavík
01e3574ea2 ugly 'fix' for wxHtmlHelpFrame's misbehviour under wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17893 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-17 23:23:11 +00:00
Mattia Barbon
486ed00cfe Currently just setting wxUSE_PROLOGIO=0 in include/wx/msw/setup0.h
causes a link failure (when compiling a DLL) because the wxr parser
references compiled-out subroutines.
  This patch fixes that. It is "correct" based on the fact that Win32
compilers can cope with C++ comments in C sources, hence #including
setup.h works.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17892 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-17 20:22:03 +00:00
Julian Smart
151ed6057f No change
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17891 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-17 19:20:08 +00:00
Stefan Csomor
f67135ca25 added missing include for Apple Dev Tools
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17890 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-17 19:01:41 +00:00
Julian Smart
5bac9640f9 No change
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17889 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-17 18:00:13 +00:00
Vadim Zeitlin
3d8ac780e2 don't crash when auto sizing empty grid
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17888 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-17 14:30:24 +00:00
Vadim Zeitlin
51196589e2 added a detailed comment about wxUSE_GLCANVAS
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17887 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-17 13:22:29 +00:00
Vadim Zeitlin
0ed7a79cbc updated after removing PrologIO &c (patch 639519)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17886 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-17 13:15:11 +00:00
Vadim Zeitlin
4e790786bb reset m_textCtrl after finishing editing a label (part of patch 639394)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17885 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-17 13:08:24 +00:00
Vadim Zeitlin
5654877f78 fixed setting client data in Set() (closes patch 637749)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17884 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-17 13:00:48 +00:00
Mattia Barbon
a1e086943a Use descriptive name instead of a string constant.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17883 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-17 10:08:08 +00:00
Mattia Barbon
1169ba95f0 In some Cygwin versions (mine, for example...) wchar.h requires
sys/types.h.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17882 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-17 10:06:08 +00:00
Stefan Csomor
1354418055 menu handling added (gtk-way)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17881 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-17 00:11:13 +00:00
Stefan Csomor
414ea21e24 menu handling added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17880 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-17 00:03:23 +00:00
Stefan Csomor
a5235cf098 copied DoGetBestSize from gtk
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17879 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-16 21:47:22 +00:00
Robin Dunn
16587f5357 SWIGged updates for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17878 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-16 01:54:11 +00:00
Robin Dunn
9a13e426cc Add missing libdir for libGLU.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17877 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-16 01:53:20 +00:00
Robin Dunn
f38c82258a Turn off the DISABLE_STYLE_IF_BROKEN_THEME flag to test using style
settings with pixmap themes again.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17876 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-16 01:31:44 +00:00
Julian Smart
530bdadcbe Typo corrected
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17875 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-15 19:06:51 +00:00
Julian Smart
1ec8142197 Some fixes by Paul A. Thiessen
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17874 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-14 20:54:22 +00:00
Julian Smart
24e0bc7209 Fixed broken .dsp files
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17873 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-14 20:49:21 +00:00
Stefan Csomor
88b41be334 added missing generic files
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17872 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-14 20:19:30 +00:00
Robert Roebling
b595f70996 Typo in font dialog.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17871 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-14 17:45:40 +00:00
David Webster
a4b1f32cdf Add Generic MDI Frames as Native
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17870 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-14 16:08:44 +00:00
Gilles Depeyrot
30165730d8 corrected wxStatFs definition for HPUX
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17869 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-14 13:51:57 +00:00
Gilles Depeyrot
ff103774e6 use local variable since shl_findsym modifies the handle argument
to indicate where the symbol was found


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17868 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-14 13:48:32 +00:00
Julian Smart
f76db005a8 Archive top-level directories renamed, except for wxAll and docs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17867 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-14 12:24:24 +00:00
Julian Smart
4d31c9cfff Corrected frame icon, added version and date
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17866 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-14 10:33:40 +00:00
Gilles Depeyrot
1dab51b3ac updated according to latest changes to file list
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17865 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-13 21:43:04 +00:00
Stefan Csomor
1cc446e91b added settcmn.cpp and removed first slash from prefix file in order to keep it upwards compatible with CW8
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17864 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-13 20:10:32 +00:00
Julian Smart
58e14084c2 Corrected ftp site typo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17863 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-13 16:40:28 +00:00
Julian Smart
dcbcbc4065 Applied [ 625315 ] More const functions in geometry.h
Functions in geometry.h should be const if they don't
change member variables.

John Labenski


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17862 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-13 16:05:36 +00:00
Roman Rolinsky
cafe0fd75e Added fix for unicode build (no convertion needed)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17861 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-13 14:32:35 +00:00
Julian Smart
915438c6ea Fixed tilde problem by using \verb
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17860 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-13 13:36:28 +00:00
Ron Lee
53c2cc7d4b added missing include (Debian bug #168887)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17859 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-13 08:32:19 +00:00
Robin Dunn
3fdbab8395 SWIGged updates for wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17858 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-13 05:09:16 +00:00
Robin Dunn
753c7aa54a New methods to match CVS changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17857 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-13 05:07:51 +00:00
Robin Dunn
fb873a1847 No real changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17856 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-13 05:05:34 +00:00
Robin Dunn
f6238d1f84 Demo tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17855 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-13 05:04:46 +00:00
Robin Dunn
26b756a164 Unicode fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17854 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-13 04:52:53 +00:00
Vadim Zeitlin
38ad0cc850 fixed VC++ warning (in release only)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17853 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-13 01:12:55 +00:00
Vadim Zeitlin
6eaddc4352 use native filedlg implementation for wxUniv for now
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17852 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-13 00:12:24 +00:00
Vadim Zeitlin
74d6a72f02 fixed link for wxUSE_WCHAR_T == 0
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17851 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-13 00:11:06 +00:00
Václav Slavík
21b2e8833c Unicode fix for wxEditableListBox
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17850 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-12 23:28:35 +00:00
Václav Slavík
2877ca7efe fixed bold font setting in wxGenericTreeCtrl to account for font face and encoding
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17849 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-12 23:27:54 +00:00
Václav Slavík
a228573797 wxGTK was confused about swiss, roman, serif and sans serif fonts, fixed now
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17848 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-12 23:26:13 +00:00
Robert Roebling
f31cebc32c Make sans serif default font for X11.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17847 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-12 19:04:20 +00:00
Robert Roebling
1fe3ac8f61 Add contrib dir to make win-dist (zip-archive).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17846 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-12 18:28:53 +00:00
Robert Roebling
20951f66bf Fixed sockets under X11.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17845 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-12 18:19:01 +00:00
Vadim Zeitlin
6011930cb0 renamed setup.h to setup0.h for consistency with the other ports
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17844 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-11 23:04:51 +00:00
Vadim Zeitlin
a68010a153 added a few missing functions (Abort, FileExits, GetFileSize)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17843 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-11 22:54:20 +00:00
Vadim Zeitlin
e3e500d8c2 VC++ compilation warnings fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17842 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-11 22:51:12 +00:00
Václav Slavík
959880045d fixed stupid code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17841 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-11 21:47:08 +00:00
Václav Slavík
704899c217 Unicode fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17840 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-11 21:46:16 +00:00
Vadim Zeitlin
0dcaf1ea0e removed inexisting default arg in Create() too
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17839 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-11 21:11:32 +00:00
Vadim Zeitlin
bd126f0e8f use ISO8859-1 instead of UTF-8 in non Unicode build
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17838 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-11 20:40:30 +00:00
Vadim Zeitlin
9e0bac7652 removed inexisting default arg in ctor
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17837 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-11 20:32:21 +00:00
Gilles Depeyrot
0415aa8563 updated project files according to latest changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17836 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-11 19:41:01 +00:00
Robert Roebling
ed15d90624 Compile fix for Unicode.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17835 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-11 19:07:23 +00:00
Julian Smart
b4b8452ecd Version changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17834 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-11 17:15:30 +00:00
Julian Smart
fd89740e89 Corrected typo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17833 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-11 13:27:08 +00:00
Vadim Zeitlin
28c4610ed5 select the newly added page
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17832 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-11 13:16:15 +00:00
Julian Smart
2b331055b9 Fixed [ 625792 ] Installation not set WXWIN as documented
(changed docs)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17831 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-11 10:00:35 +00:00
Julian Smart
368e6e1002 Fixed bug [ 635990 ] wxFindWindowAtPointer - mousepos not set
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17830 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-11 09:55:19 +00:00
Julian Smart
9a7f62c35e Some wxX11 fixes for non-Unicode mode
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17829 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-11 09:48:37 +00:00
Julian Smart
45a52767bd Applied frame.cpp part of [ 606958 ] Mac Menubar proposal
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17828 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-11 09:07:58 +00:00
Julian Smart
888eaa3d8c Applied patch [ 631639 ] Print should be generic
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17827 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-11 08:57:55 +00:00
Julian Smart
e583ba068d Applied patch [ 633415 ] New setup.h for wxUniversal
A setup.h on the lines of the MSW setup.h, by Otto Wyss


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17826 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-11 08:49:00 +00:00
Julian Smart
c97945a001 Fixed PDF RTF problem; changed date
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17825 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-11 08:39:03 +00:00
Julian Smart
7b3e550c25 Applied patch [ 631715 ] Dragimage should be generic
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17824 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-11 08:35:48 +00:00
Ron Lee
63459a582a updates for scrolling/sizing methods.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17823 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-11 07:49:42 +00:00
Ron Lee
1917819470 Some code just *really* likes to be typo'd I guess.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17822 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-11 05:29:18 +00:00
Václav Slavík
4581a29d2d more wxHTML Unicode fixes (removed wxPrivate_ReadString), wxSearchEngine-->wxHtmlSearchEngine
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17821 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-11 00:15:57 +00:00
Václav Slavík
987b309827 fixed wxSYS_DEFAULT_GUI_FONT (I wonder how could it work for anybody before...)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17820 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-11 00:03:19 +00:00
Václav Slavík
4a9150f9c8 honor facename and weitght with Pango
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17819 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-11 00:02:40 +00:00
Václav Slavík
9cb9c214f6 more wxHTML Unicode fixes (removed wxPrivate_ReadString), wxSearchEngine-->wxHtmlSearchEngine
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17818 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-11 00:01:23 +00:00
Václav Slavík
5a96f6be9c moved wxHtmlFilterHTML to public header, so that it can be used elsewhere
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17817 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-10 23:58:51 +00:00
Vadim Zeitlin
bc86e2c68f corrected the links
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17816 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-10 21:42:06 +00:00
Mattia Barbon
6df6345a73 MinGW has tchar.h, but it does not include wchar.h as wxchar.h expects,
hence we include it explicitly.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17815 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-10 21:07:42 +00:00
Mattia Barbon
eb8a028c10 Checks for wxUSE_WX_RESOURCES and wxUSE_PROLOGIO.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17814 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-10 20:57:46 +00:00
Mattia Barbon
3769cf4948 Don't add checkbox characters ("[ ] ") twice.
Remove now unused function.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17813 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-10 18:26:04 +00:00
Julian Smart
4aaf7903fb Updated version
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17812 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-10 15:55:19 +00:00
Julian Smart
7716ac56a5 Changed version numbers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17811 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-10 15:48:56 +00:00
Václav Slavík
cd83a3c3db _really_ fixed internat.cpp crash (?) instead of commenting the code out and hapilly forgetting about it
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17810 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-10 15:01:56 +00:00
Julian Smart
5267017927 Brian Bommarito
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17809 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-10 14:49:47 +00:00
Julian Smart
7d9c68a4de Updated version number
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17808 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-10 14:47:29 +00:00
Robert Roebling
6b362ffce5 Typo.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17807 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-10 14:32:56 +00:00
Robert Roebling
1ecc9552dc Updated German translation.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17806 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-10 14:09:13 +00:00
Julian Smart
911bdf159b Updated version number
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17805 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-10 13:20:13 +00:00
Julian Smart
4f5ceafdcb MS HTML Help file now generated using wx.css, and
standard HTML help generated as before.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17804 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-10 11:09:49 +00:00
Julian Smart
cffd3ee7c4 Added new .ini file for use with styles for better CHM look
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17803 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-10 10:59:53 +00:00
Robert Roebling
e593d8f008 Documented the new ways to set the scrolling area
in a wxScrolledWindow.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17802 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-10 10:45:08 +00:00
Robert Roebling
f2e9222d6e Further corrections to GTK's scrolling widget.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17801 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-10 10:25:02 +00:00
Ron Lee
b7b023c234 SetScrollbars needs to actually SetVirtualSize too, now that setting
the hints doesn't automatically do it.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17800 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-10 09:37:23 +00:00
Robin Dunn
bb499f2fb6 SWIGged update for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17799 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-10 00:59:00 +00:00
Vadim Zeitlin
6d979490a5 if the page changed due to pressing Ctrl-TAB was vetoed, the current tab was still changed (although the current page stayed the same!)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17798 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-10 00:56:40 +00:00
Robin Dunn
ee29e26938 On wxGTK the Primary Selection is now set when something is selected
in wxSTC, and the middle mouse button will paste from the
PrimarySelection.  Regular Cut/Copy/Paste explicitly uses the normal
clipboard selection.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17797 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-10 00:53:30 +00:00
Vadim Zeitlin
58072c4313 setting one radio button to TRUE should reset all the others in the same group to FALSE
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17795 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-10 00:47:11 +00:00
Václav Slavík
bff010281d Uncommented code that was commented out by mistake
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17794 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-10 00:05:39 +00:00
Václav Slavík
a574cf21c5 Unicode fixes to xrcdemo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17793 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-09 23:18:16 +00:00
Václav Slavík
1dc2721af8 removed wxXmlResource::GetFirstRoot for reasons explained at wx-dev
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17792 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-09 23:18:02 +00:00
Vadim Zeitlin
bf1e895f19 fixes for compilation with WXWIN_COMPATIBILITY_2_2 == 0 and gcc warning fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17791 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-09 23:13:08 +00:00
Robin Dunn
c7c0e05cf0 Also set listType for the notification
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17790 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-09 21:49:08 +00:00
Robert Roebling
a14f68f247 Made XPM writing code Unicode safe.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17788 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-09 21:43:23 +00:00
Robin Dunn
759c8b5299 The generic buttons can create their own disabled bitmap if needed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17787 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-09 21:37:31 +00:00
Mattia Barbon
b867e68cef Align wx version in configure with version in wx/version.h.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17786 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-09 21:01:09 +00:00
Robert Roebling
5ce5f94ea2 Compile fixes.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17785 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-09 20:21:21 +00:00
Václav Slavík
e2c7efa04b added wxHtmlParser::StopParsing
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17784 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-09 19:30:02 +00:00
Václav Slavík
fabe27dcb5 added wxHtmlParser::StopParsing and use it in ExtractCharsetInformation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17783 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-09 19:29:00 +00:00
Robert Roebling
a84d0043c6 Compile fix for GTK.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17782 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-09 19:27:01 +00:00
Robert Roebling
d76fec130d Added anti-aliasing and printing in Unicode to wxX11.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17781 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-09 17:35:40 +00:00
Robert Roebling
f17fb6a086 Fix client dc for rename of pango_x.cpp.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17780 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-09 15:49:46 +00:00
Robert Roebling
01598df990 Fourth try to add pang_x.cpp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17779 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-09 15:48:44 +00:00
Robert Roebling
3049550ceb Added support for Unicode rendering through Pango to wxX11.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17778 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-09 15:20:42 +00:00
Robert Roebling
bbd230a11d Unicode compile fixes.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17777 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-09 13:51:26 +00:00
Ron Lee
9064852f8e Added a examples of virtual size use for setting scrollbars
both 'manually' and via sizer layout to scroll sample.
Tweaked it for various 2.4 idioms that have arisen since
it was written.

Replaced GenericScrolledWin's DoSetVirtualSize, it really is
needed for everything to work for both the user and lib.
Don't call it from default scrolledwindow OnSize handlers
unless AutoLayout is enabled though, and use the larger of
best and client size.  Hopefully this will fix any earlier
troubles this caused with M.

Purged (many) stray tabs &co from sizer.cpp

Changed DoGetBestSize to return wxDefaultSize when no useful
best size can be determined.  If GetBestSize is intended to
return the minimum undistorted size a window can take, we
must be able to discriminate between valid and 'best guess'
sizes, else the best guess windows can only grow.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17776 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-09 13:29:26 +00:00
Robert Roebling
8b1632ebe7 UNicode compile fix.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17775 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-09 10:53:27 +00:00
Václav Slavík
0cc3981cd9 Unicode fixes to wxHTML
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17774 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-09 01:04:10 +00:00
Václav Slavík
ca351a69c3 Unicode compilation fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17773 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-09 01:03:03 +00:00
Václav Slavík
410cab65fd <meta> tag handler no longer used by wxHTML
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17772 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-09 00:51:19 +00:00
Václav Slavík
9b0668e1a2 convertion --> conversion
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17771 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-09 00:48:46 +00:00
Václav Slavík
7962c237dd Unicode fixes for OLE files (I don't know if I used correct conversion objects!)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17770 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-09 00:32:30 +00:00
Václav Slavík
f3654dd181 <meta> handler no longer used by wxHTML
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17769 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-09 00:31:28 +00:00
Václav Slavík
6fb39fe84b Unicode compilation fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17768 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-09 00:26:54 +00:00
Václav Slavík
867be82e3a <meta> tag handler no longer needed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17767 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-09 00:23:46 +00:00
Václav Slavík
36435f9c0f compilation fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17766 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-09 00:18:55 +00:00
Václav Slavík
2dfc97eea1 another approach to Unicodification of wxHTML handlers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17765 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-09 00:07:36 +00:00
Robin Dunn
85f726f26a Fixed name clash in wxIEHtmlWin, other minor tweaks.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17764 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-08 22:33:39 +00:00
Vadim Zeitlin
b8a141538a Hungarian translation update from Janos
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17763 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-08 16:51:30 +00:00
Vadim Zeitlin
5f88717aa8 fixed typo: _() was used instead of _T()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17762 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-08 11:12:26 +00:00
Václav Slavík
2301d67573 compilation fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17761 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-07 23:26:17 +00:00
Václav Slavík
a9e11379a1 fix ANSI build
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17760 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-07 23:26:05 +00:00
Václav Slavík
128995861e added MSDN-like stylesheet for wxWindows documentation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17759 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-07 23:25:58 +00:00
Václav Slavík
1d6704b6a9 no real changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17758 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-07 23:24:42 +00:00
Vadim Zeitlin
3a582e90c0 cleaned up (well, removed) the mess in wxComboBox::SetValue()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17757 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-07 21:19:26 +00:00
Vadim Zeitlin
f385722728 made SameAs() and operator==() const, added operator!=() and docs for it
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17756 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-07 13:16:29 +00:00
Vadim Zeitlin
d480da3f17 fixed/expanded InsertItems() and Set() docs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17754 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-07 12:35:24 +00:00
Vadim Zeitlin
5df61649d9 added wxListView docs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17753 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-07 12:32:30 +00:00
Václav Slavík
d399635e06 Unicode compilation fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17752 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-07 12:04:36 +00:00
Václav Slavík
b6241cc22d compilation fix and replaced wxFAIL_MSG with wxLogError (this is runtime error)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17751 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-07 12:03:29 +00:00
Vadim Zeitlin
55f8e9befc added a note about deleting the menus
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17750 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-07 11:59:51 +00:00
Ron Lee
aff6c6037d Added GetAdjustedBestSize which returns the largest of
BestSize and any user specified Min size hints.

Put it to use with wxADJUST_MINSIZE, which now has a chance
of working;  a) if the item gets smaller, and b) with controls
(like wxButton) for whom BestSize and the user MinSize share
only the most tenuous relationship.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17749 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-07 08:04:19 +00:00
Gilles Depeyrot
664785bce9 updated PB project (added missing headers, updated build script, ...)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17748 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-06 22:31:09 +00:00
Gilles Depeyrot
1c8be62219 added wxUSE_PROLOGIO and changed default value of wxUSE_WX_RESOURCES
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17747 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-06 21:49:36 +00:00
Gilles Depeyrot
344ec96065 Only compile parser.o if PROLOGIO/RESOURCES are enabled.
Removed it from *.t for platforms where configure would add it.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17746 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-06 21:45:42 +00:00
Vadim Zeitlin
080b9373ff corrected wxDEFAULT_DIALOG_STYLE desc
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17745 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-06 15:24:16 +00:00
Vadim Zeitlin
53630547cf fixed GTK2-only bug in SetLogicalFunction()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17744 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-06 15:20:47 +00:00
Chris Elliott
20ea7ff9d7 fix bug in nmake -f makefile.vc in widgets sample, where cannot delete old objects
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17743 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-06 15:02:31 +00:00
Ron Lee
80cf014b43 Surely it was not intended for SetBestSize to ignore a fully specified
size if passed one.    In any case, this method seems removable to me,
anyone care to confirm or deny that?


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17742 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-06 14:21:51 +00:00
Václav Slavík
052a4b0f2f wxTextFile defaults to iso-8859-1, not wxConvLibc
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17741 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-06 13:12:53 +00:00
Václav Slavík
1aa3e8d8f6 added wxConvISO8859_1
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17740 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-06 13:12:42 +00:00
Václav Slavík
4383c2b97a added wxXmlResource::SetFlags as per wxWorkshop team's request
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17739 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-06 11:10:59 +00:00
Robert Roebling
385112a8b3 Fixed wxMemoryStream to make it work without
any associated stream.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17738 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-06 10:46:30 +00:00
Robert Roebling
0fce57ac76 Unicode copmile fix.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17737 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-06 10:45:44 +00:00
Robert Roebling
0e808f5d5a Updated internat sample for Unicode, correction.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17736 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-06 10:44:23 +00:00
Robin Dunn
7ed43ac2e8 SWIGged update for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17735 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-06 04:23:54 +00:00
Robin Dunn
8c3de19796 Fix to allow wxShapeRegion to display text, from George Seally
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17734 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-05 23:08:31 +00:00
Robin Dunn
8f5c320767 wxSizer.Show, IsShown, etc.
Wrappers for and use new wxInputStream methods
Other tweaks, fixes, etc. to go along with recent CVS changes.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17733 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-05 23:03:34 +00:00
Julian Smart
9ac8b5637a Added 32x32 versions of wxWindows icon and a .ico containing
16x16 and 32x32 versions


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17732 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-05 17:41:23 +00:00
Julian Smart
d7f50f5f27 Added a 16x16 wxWindows blocks icon
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17731 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-05 15:09:09 +00:00
Julian Smart
cb702cedd1 Use wxFileNameFromPath, not FileNameFromPath
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17730 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-05 14:53:23 +00:00
Vadim Zeitlin
2383b3b5f2 added missing winundef.h include after windows.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17729 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-05 14:40:26 +00:00
Julian Smart
ceecd70a6b Added further accelerators, though Up/Down/Left/Right are still
not working for some reason.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17728 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-05 13:42:23 +00:00
Vadim Zeitlin
8f05d8f9d5 don't fall back to GTK 1.x if --with-gtk2 was specified; don't try to build in Unicode when using GTK 1.x
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17727 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-05 13:36:49 +00:00
Ron Lee
6fb2eb9c0c #include missing menu header
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17726 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-05 11:29:44 +00:00
Ron Lee
d06d0bc30a Only compile parser.o if PROLOGIO/RESOURCES are enabled.
Removed it from *.t for platforms where configure would add it,
it should possibly be removed from more, and this probably
breaks the msw project files somehow too, but I'm not sure where
to fix that.

There were some other changes apparent in the diff...  seemingly
a result of earlier changes to tmake templates -- I'm committing
them too, on the pretence that they are either right, or we've a
problem in the tmake stuff to fix.  Nothing has broken for me yet..


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17725 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-05 10:03:08 +00:00
Jouk Jansen
d6c9911e4d Committing in .
One OpenVMS define to make linking possible.

 Modified Files:
  Tag: WX_2_4_BRANCH
 	wxWindows/src/motif/utils.cpp
 ----------------------------------------------------------------------


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17724 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-05 09:11:27 +00:00
Vadim Zeitlin
70e8d9f69c fix for compilation with wxUSE_WCHAR_T==0 (bug 615084)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17723 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-05 01:22:25 +00:00
Vadim Zeitlin
b905c12598 attemps to fix compilation after applying the last patch
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17722 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-05 00:57:38 +00:00
Vadim Zeitlin
bab7e01267 wxUpdateUIEvent derives from wxCommandEvent, not wxEvent
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17721 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-05 00:46:27 +00:00
Vadim Zeitlin
6886d3e782 generate EVT_CONTEXT_MENU under GTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17720 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-05 00:45:11 +00:00
Vadim Zeitlin
8edcec6652 removed LVN_HOTTRACK case completely -- why comment it out if we don't ever need it at all?
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17719 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-04 23:26:54 +00:00
Vadim Zeitlin
611c1e0e6f added #if wxUSE_PROLOGIO test
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17718 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-04 23:22:44 +00:00
Vadim Zeitlin
35891ce060 added wxUSE_PROLOGIO
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17717 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-04 23:16:49 +00:00
Vadim Zeitlin
b9a9ef0453 undid the last commit -- do use wxUSE_PROLOGIO guard
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17716 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-04 23:11:23 +00:00
Vadim Zeitlin
8bbb50ba61 fix bug in key handling code: toupper() shouldn't be applied to the values outside of the ASCII range (patch 631236)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17715 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-04 23:05:00 +00:00
Vadim Zeitlin
5b47d4f175 set APPVER to 4.0 if WIN95==1: fixes bug 629884
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17714 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-04 23:01:13 +00:00
Vadim Zeitlin
21cb83e8c9 replaced buffer copy and strcmp() with strncmp() (patch 632155)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17713 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-04 22:48:27 +00:00
Vadim Zeitlin
01f12b1adf fixed __BORLANDC__ misspelling (patch 632095)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17712 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-04 22:46:28 +00:00
Vadim Zeitlin
7ec0705909 some harmless compilation warning fixes (patch 631520)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17711 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-04 22:42:57 +00:00
Vadim Zeitlin
964a710a54 fixed headers included for wxUniv (patch 630713)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17710 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-04 22:41:56 +00:00
Vadim Zeitlin
9f9cebfb6c conversion to/from DOS date/time (patch 627575)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17709 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-04 22:38:15 +00:00
Vadim Zeitlin
66cf613e7b show column width in the column event handlers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17708 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-04 22:25:55 +00:00
Vadim Zeitlin
6df55f5e46 set the column width in wxListEvent itself too
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17707 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-04 22:24:13 +00:00
Julian Smart
f5acd489cb wxMSW: Added context menu for rich edit control, as per standard EDIT control
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17706 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-04 21:49:57 +00:00
Vadim Zeitlin
d3f6d73cf8 added IsModified() test
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17705 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-04 21:46:59 +00:00
Vadim Zeitlin
aa4ebcb98d fixes to wxPipeInputStream
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17704 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-04 21:33:28 +00:00
Robert Roebling
f4c049b60e Small correction for wxButton mouse events under GTK 2.0.
Minor doc updates.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17703 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-04 20:13:23 +00:00
Vadim Zeitlin
94bccc31db compilation fixes in WXWIN_COMPATIBILITY_2_2==0 mode
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17702 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-04 19:31:59 +00:00
Vadim Zeitlin
c79c41ca66 don't give env var expansion warning under Windows
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17701 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-04 19:09:27 +00:00
Vadim Zeitlin
fa1837fe14 replaced global semaphore in gtk_notebook_page_change_callback() with a per-object one
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17700 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-04 19:06:04 +00:00
Vadim Zeitlin
93f4047227 removed TABs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17699 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-04 18:52:18 +00:00
Vadim Zeitlin
ae5dcdf0e6 work around for cygwin broken wchar.h: include extern C ourselves
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17698 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-04 17:47:18 +00:00
Vadim Zeitlin
fe164e5138 removed unneeded #include wchar.h (it should only be done from wxchar.h which has workaround for cygwin bug in wchar.h)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17697 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-04 17:40:13 +00:00
Vadim Zeitlin
05ae76ec1d added Update() and RefreshRect()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17696 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-04 17:25:51 +00:00
Vadim Zeitlin
85e5952bfe use wxSTREAM_NO_ERROR instead of deprecated wxSTREAM_NOERROR (fixes compilation without WXWIN_COMPATIBILITY_2_2
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17695 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-04 17:16:04 +00:00
Vadim Zeitlin
405fff1bad replaced IsAvailable() with CanRead() in wxPipeStream
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17694 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-04 00:40:59 +00:00
Vadim Zeitlin
5a86eeac8c added wxInputStream::CanRead() and assorted other stream changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17693 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-04 00:39:44 +00:00
Václav Slavík
aaa7e220f7 *** empty log message ***
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17692 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-03 23:58:38 +00:00
Vadim Zeitlin
282eb70450 suppressed VC++ warning
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17691 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-03 21:37:51 +00:00
Robert Roebling
3f5a4243c9 Correct cursor thing in wxSplitterWindow (which manifested
itself only in GTK 2.0)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17690 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-03 21:37:05 +00:00
Vadim Zeitlin
9b9fb7c234 added Unix makefile
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17689 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-03 21:17:59 +00:00
Vadim Zeitlin
6186e29350 fix app exit code: it is returned by OnExit(), not OnRun()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17688 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-03 21:11:11 +00:00
Vadim Zeitlin
caaff22c06 replaced type unsafe wxHash with hash_map<>
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17687 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-03 21:03:02 +00:00
Vadim Zeitlin
e1e57f73b3 added wxPoll() implementation (based on patch 626861)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17686 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-03 20:58:52 +00:00
Vadim Zeitlin
e0724c9d18 added configure test for poll()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17685 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-03 20:56:21 +00:00
Robert Roebling
892a61dd37 Added more uniode compile fixes.
Made prologio and resources optional.
  Added native GTK 2.0 size grip to status bar.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17684 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-03 19:09:08 +00:00
Václav Slavík
af4efc1d0c Turkish translation update (I checked it into poEdit by mistake and didn't realize it was wxWindows catalog)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17683 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-03 17:19:28 +00:00
Václav Slavík
d402f19c82 make sure wxDefaultArtProvider is linked-in
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17682 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-03 17:19:10 +00:00
Robert Roebling
5f79bebb29 More wxT() macros.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17681 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-03 16:19:32 +00:00
Robert Roebling
fc6f3208b2 Some more Unicode fixes. What does wxTextStream do with
a char in Unicode mode?


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17680 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-03 15:48:13 +00:00
Robert Roebling
c60cc91708 Bunch of compile fixes for wxX11 in Unicode.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17679 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-03 13:48:04 +00:00
Robert Roebling
0f7730c502 Added wxString::FromAscii() for char
Used it in protocol.cpp which probably assumes ASCII anyway.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17678 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-03 13:07:41 +00:00
Robert Roebling
638104abce Unicodification.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17677 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-03 12:36:09 +00:00
Robert Roebling
e4c937788a Added first tests for wxX11 for Unicode.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17676 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-03 12:19:26 +00:00
Vadim Zeitlin
a7c3dae3a1 fixed bug in wxToolTip::SetTip() which didn't do anything before
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17675 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-03 09:52:51 +00:00
Stefan Csomor
56e770d6b7 added export attribute for classes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17674 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-03 09:32:52 +00:00
Stefan Csomor
0c59640539 adjusted to other platforms
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17673 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-03 09:21:07 +00:00
Stefan Csomor
ebfb098877 corrected class export
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17672 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-03 09:18:16 +00:00
Vadim Zeitlin
e92b5a2c94 removed duplicates from encoding names/descriptions arrays
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17671 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-03 00:25:51 +00:00
Vadim Zeitlin
e3a3ef96f1 removed default conv argument in wxString(const char *) ctor in Unicode build
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17670 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-03 00:01:52 +00:00
Václav Slavík
0c3f3a52e4 added support for versioned symbols on Linux
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17668 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-02 19:05:43 +00:00
Václav Slavík
cac85ffa8b applied patch #630001 (fixes \ escapement)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17667 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-02 12:26:02 +00:00
Stefan Csomor
bc4103a66e constrain tooltip rectangle to window (access to screen is very expensive under OSX)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17666 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-01 18:36:41 +00:00
Stefan Csomor
160c7ecbad added BI_RLE4 implementation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17665 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-11-01 12:56:48 +00:00
Vadim Zeitlin
d29e4f03d9 restored the old values of the wxFontEncoding enum elements and also made Chinese/Japanese encodings synonyms for the MS ones, not the new values
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17664 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-31 20:43:48 +00:00
Robert Roebling
b598e25cad Blind Compile fix for GTK 2.0 non-Unicode mode.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17663 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-31 19:49:11 +00:00
Stefan Csomor
ef807ad05c added support for file types popup upon save, an Get/SetFilterIndex
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17662 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-31 14:04:44 +00:00
Stefan Csomor
75ff83b629 refresh only upon resize not on move only
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17661 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-31 08:48:44 +00:00
Robert Roebling
9f98d38391 Enable Unicode input methods via GTK's and XIM
under GTK 2.0.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17660 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-30 19:56:03 +00:00
Robert Roebling
cf24909108 Compile fix after latest cleanup.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17659 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-30 18:01:24 +00:00
Robert Roebling
1599228964 Mixed up KOI and Chinese. (Wrong order in lists).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17658 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-29 22:40:45 +00:00
Robert Roebling
54b25889d2 Replaced lots of ANSI/ASCII strings with their
Unicode equivalents, i.e. I put wxT() arounf
    them in lots of places.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17657 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-29 21:48:06 +00:00
Vadim Zeitlin
0ab495989d no changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17656 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-29 20:42:34 +00:00
Vadim Zeitlin
0bfca7f379 added LED sample (patch 622939)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17655 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-29 14:41:38 +00:00
Ron Lee
d87f50a85e typo fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17654 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-29 04:46:38 +00:00
Vadim Zeitlin
94d07a6abd removed erroneous spaces from an example code snippet (bug 624580)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17653 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-29 00:40:11 +00:00
Vadim Zeitlin
fc9d18d36f clarify where should WXWIN point to (bug 621118)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17652 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-29 00:36:45 +00:00
Vadim Zeitlin
a926f0f996 fix for setting m_winLastFocused correctly in some situations (see bug 622297)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17651 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-29 00:34:15 +00:00
Vadim Zeitlin
a824bcf272 corrected misleading comment for WXWIN_COMPATINILITY_2_2 (closes 625817)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17650 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-29 00:31:48 +00:00
Vadim Zeitlin
5dc4c9e92d let Ctrl-C work even in a readonly text control
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17649 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-29 00:28:33 +00:00
Vadim Zeitlin
824b2f9451 dy parameter in ScrollList() is the number of pixels, not lines (closes bug 628778)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17648 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-29 00:14:38 +00:00
Vadim Zeitlin
6e76ef7230 compilation fix for !wxUSE_CHOICE (patch 629092)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17647 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-29 00:06:11 +00:00
Vadim Zeitlin
dab0267b99 enable wxProgressDialog for wxUniv, it should work
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17646 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-29 00:04:28 +00:00
Vadim Zeitlin
0c3eefe809 fix for wxUniv compilation (patch 630082)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17645 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-29 00:02:07 +00:00
David Webster
1351c353d3 Weekly updates
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17644 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-28 23:24:17 +00:00
Vadim Zeitlin
5f60853843 documented DeleteChildren
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17643 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-28 20:20:35 +00:00
Vadim Zeitlin
d8c159fbfd don't crash if IsVisible() is called for the hidden virtual root
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17642 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-28 20:17:53 +00:00
Vadim Zeitlin
3095762276 don't overrun 80 char buffer boundaries in HandleTooltipNotify()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17641 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-28 20:03:50 +00:00
Vadim Zeitlin
186af62077 support for tooltips longer than 80 characters
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17640 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-28 19:42:57 +00:00
Chris Elliott
8f3c90b718 mdi GetActiveChild patch
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17639 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-28 15:23:31 +00:00
Chris Elliott
f371aaacb4 documents CreateButtonSizer
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17638 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-28 14:14:27 +00:00
Robert Roebling
51148dfb8e Moved AA information to the right place.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17637 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-28 01:51:46 +00:00
Robert Roebling
d089223aa3 Lots of minor GTK2 updates.
Added wxFont SetNoAntiAliasing which cannot cause
    problems with existing apps since it doesn't
    changing the current style flags.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17636 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-28 00:21:00 +00:00
Chris Elliott
87c6ba105c makeuniv.b32 has escaped a previous purge
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17635 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-27 16:29:21 +00:00
Vadim Zeitlin
a35b6da53a draw the sashes without wxSP_3DSASH flag nicer
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17634 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-26 21:25:45 +00:00
Vadim Zeitlin
110904ad7e fixed wxConfig::Read() return value (bug introduced by the last commit)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17633 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-26 21:11:47 +00:00
Vadim Zeitlin
a068a1ce8d clarified the return value of MB2WC/WC2MB
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17632 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-26 20:18:46 +00:00
Vadim Zeitlin
ed0fb5f1dc fixed bug which prevented the env vars in wxConfig values from being expanded
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17631 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-25 21:10:38 +00:00
Vadim Zeitlin
f1c2a09edf compilation fix for wxUniv (patch 628810)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17630 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-25 20:15:12 +00:00
Ron Lee
1f7d25a152 Don't install duplicate image handlers.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17629 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-25 12:26:48 +00:00
Vadim Zeitlin
4d2912d600 fix for conversion buffer size problems
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17628 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-25 00:15:05 +00:00
Robert Roebling
f481b72d90 Added GB2312, BIG5, EUC-JP and Shift-JIS encodings to
known encodings so that message catalogs written in
    these encodings can be loaded. I did't find the code
    where I can specify that GB2312 is actually the same
    as the Windows code page.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17627 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-24 23:15:36 +00:00
Vadim Zeitlin
7fb7ed97e9 bumped up version to 2.3.4
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17626 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-24 23:05:55 +00:00
Václav Slavík
b4bcb03448 reverted 'doesn't compile, let's remove it' fix for mingw32 compilation problem -- works now with a definition in missing.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17625 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-24 19:42:42 +00:00
Stefan Csomor
6e2e9a9abd changed wxDisplaySize to return the entire size
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17624 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-24 19:13:47 +00:00
Vadim Zeitlin
42b2b3947f trying to keep the list of changes as brief as possible
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17623 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-24 16:16:32 +00:00
Vadim Zeitlin
ef5941b3d8 added SetToWeek() test
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17622 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-24 16:13:40 +00:00
Vadim Zeitlin
936284fe41 fixed several bugs in wxDateTime week number calculations which required passing WeekFlags argument to more functions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17621 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-24 16:11:02 +00:00
Václav Slavík
47cfa2bd4c Mingw compilation fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17620 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-24 16:10:00 +00:00
Julian Smart
a693d65e54 MinGW fix for XP fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17619 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-24 11:35:21 +00:00
Julian Smart
9a713b1149 Applied patch [ 623736 ] Build and use FL as DLL
This patch allows FL to be build as a DLL with the VC
project files, I was only able to at chief it with the VC
projects because the make file for building libs doesn't
have any rule to build DLLs (at least I didn't see how to
do it).

However the FL demo applications can be build using FL
in DLL form with MSVC project files and VC make files
(as mentioned before the FL DLL it self can only be build
using VC projects).

This patch includes 2 files; 1 to change current FL files
to work in DLL form and 1 extra include file that needs to
be added in the FL include directory.

Small note: if you want to use FL as a DLL you need to
use wxWin as a DLL.

Thanks,
Hans.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17618 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-24 11:21:47 +00:00
Julian Smart
0ea0ed4778 Applied patch [ 619424 ] texutils.cpp patch for !wxUSE_IOSTEAMH
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17617 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-24 11:06:18 +00:00
Julian Smart
ce72acc2c6 Added note about wxSizer::Show and wxListCtrl crash fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17616 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-24 11:04:17 +00:00
Julian Smart
ed9cd416f1 Applied patch [ 614042 ] Add wxSizer::Hide() & Show()
By Carl Godkin
Also documented wxSizer::Show.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17615 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-24 11:01:47 +00:00
Robin Dunn
2beacbf5e9 Applied patch from Niki Spahiev
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17614 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-23 20:43:50 +00:00
Robert Roebling
f8300041bd Lots of small changes to prevent glibc from crashing
when converting ansi strings to unicode. After
   this, you can use and display east asian locales
   in wxGTK, which looks sorta funny...


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17613 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-23 17:32:15 +00:00
Julian Smart
8dcb2ef2ee Added FINAL=$(FINAL) to some BC++ makefile targets to
make the sublibraries compile properly


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17612 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-23 12:51:37 +00:00
Vadim Zeitlin
d5f0a2b396 implemented GetTimes() for the directories
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17611 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-22 22:16:49 +00:00
Julian Smart
829fe079bc Patch [ 626532 ] Fix default item/tab traversal problem
This patch fixes a problem that occurs when you have a
panel containing controls inside a dialog/frame with a
default item (i.e. default button). Currently,
<Return/Enter> is processed incorreclty as a <tab>
even if there is a default item in a parent. This patch
causes a window not to handle the VK_RETURN key if
it is not a top level window and doesn't have a default
item of it's own.

Derry Bryson


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17610 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-22 21:38:25 +00:00
Julian Smart
6a9f0d173e Applied patch [ 626545 ] Correct num bytes allocated for bitmap
This corrects the calculation of the number of bytes to
allocate for the bitmap in wxPrinterDC::DoDrawBitmap
(). It was allocating more memory than necessary.

By Derry Bryson


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17609 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-22 21:34:22 +00:00
Vadim Zeitlin
8f40c2b250 updated Indonesian translations
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17608 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-22 18:21:49 +00:00
Stefan Csomor
8dfed6e742 changed notebook icon code to only trigger under 10.2 and later (it is not working/buggy under 10.1.X)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17607 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-22 15:41:00 +00:00
Stefan Csomor
97138ef264 added system version getter
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17606 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-22 15:38:17 +00:00
Jouk Jansen
7f42651bb1 Committing in .
OpenVMS specific changes:
   setup.h_vms : updated configuration for OpenVMS
   threadspsx.cpp : the type long on OpenVMS is 32 bits. therefor some
                    casts are changed to long long, for OpenVMS only.

 Modified Files:
  Tag: WX_2_4_BRANCH
 	wxWindows/setup.h_vms wxWindows/src/unix/threadpsx.cpp
 ----------------------------------------------------------------------


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17605 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-22 07:11:32 +00:00
Robin Dunn
6a8dabe2ae SWIGged updates for wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17604 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-22 06:20:16 +00:00
Robin Dunn
5de6e36941 SWIGged update for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17603 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-22 05:07:14 +00:00
Vadim Zeitlin
8b26aa07de a hack to fix multiple problems with showing modal dialogs from OnIdle()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-22 00:30:26 +00:00
Robin Dunn
e771b7e4ac Allow WM_SYSKEYDOWN to still be processed by MSWDefWindowProc, even if
it was handled by an event handler.  This allows the magic Windows
keys (such as Alt-space for the system menu, Alt or F10 to activate
the menu bar, Alt-F4 to send WM_CLOSE, etc.) to still work properly.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17601 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-21 22:19:07 +00:00
Robin Dunn
3fe4f9bf40 Document major user visible changes
Build and such for recent CVS updates


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17600 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-21 21:31:06 +00:00
Robin Dunn
f63cfda54f Changed how the images are encoding in images.py, and have also
checked in the images themselves.
Also changed how it detects if the platform is wxGTK.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17599 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-21 21:29:26 +00:00
Robin Dunn
36060e25b0 SWIGged code updates for wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17598 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-21 21:13:36 +00:00
Robin Dunn
dccca5634f Fixed wxSWIG so that it won't convert None to NULL for parameters that
are C++ references, it still does for pointer parameters.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17597 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-21 21:10:11 +00:00
Robin Dunn
699c00400a Added GetSelectedCells, GetSelectionBlockTopLeft,
GetSelectionBlockBottomRight, GetSelectedRows, GetSelectedCols nethods
to wxGrid.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17596 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-21 21:08:16 +00:00
Robin Dunn
2b3a3838ee Added Python == and != operators for some basic classes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17595 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-21 21:04:49 +00:00
Robin Dunn
f0a3fd5400 Added wxRealPoint::operator!= for consistency
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17594 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-21 20:08:59 +00:00
Julian Smart
1553df7c3e Removed tabs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17593 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-21 13:34:44 +00:00
Julian Smart
4b2452426b Two fixes for wxListCtrl under XP.
1) Do not use lParam for LVN_HOTTRACK since this doesn't
have valid data.
2) Check for item validity in HDN_GETDISPINFOW notification and
return TRUE to stop further processing of this strange message.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17592 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-21 12:41:52 +00:00
Chris Elliott
8a8578cebb fix for sourceforge bug report 625765
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17591 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-21 08:57:48 +00:00
Václav Slavík
4a5fc54878 more compilation fixes (tex2rtf now builds again)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17590 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-20 22:17:49 +00:00
Vadim Zeitlin
8677ac53d2 show something in the summary when --enable-debug was explicitly given too
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17589 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-20 21:45:40 +00:00
Robert Roebling
08314c6f4f Added header filename to pragma.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17588 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-20 18:21:36 +00:00
Vadim Zeitlin
ccee086514 fixed (?) file format
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17587 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-20 14:45:28 +00:00
Václav Slavík
2f4ed3b275 fixed syntax errors in documentation (once again...)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17586 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-20 13:47:12 +00:00
Václav Slavík
9891e5609d use iso-8859-1 as default encoding
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17585 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-20 13:46:51 +00:00
Václav Slavík
601a6d1cc5 compilation fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17584 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-20 13:46:38 +00:00
Václav Slavík
5896402ea4 compilation fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17583 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-20 13:46:23 +00:00
Václav Slavík
d1274ec7b9 don't use <font face> if not requested
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17582 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-20 13:45:40 +00:00
Robert Roebling
7fcfab5e21 Use UTF8 for writing file configuation data in
Unicode mode. I assume that the registry
    also will use Unicode in Unicode mode.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17581 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-20 12:45:51 +00:00
Robert Roebling
09cb4267da Corrected GetCharWidth() and GetCharHeight()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17580 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-20 11:20:32 +00:00
Robert Roebling
cd12eca16a New code for char and key events under GTK 2.0. This
uses the built-in input method which is required
    even for getting European characters. Key down
    events probably don't work anymore. It is still
    impossible to receive Unicode characters due to
    the limitations of wxKeyEvent.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17579 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-20 10:15:31 +00:00
Robert Roebling
ba97061f8e Corrected GetTextExtent() although I dont reall
know what was wrong.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17578 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-20 10:12:48 +00:00
Robert Roebling
d51bad0347 Don't use libc for converting the command line
params to Unicode as it will crash.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17577 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-20 10:10:56 +00:00
Vadim Zeitlin
3a6fb21d40 implemented missing wxNativeFontInfo methods
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17576 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-19 21:23:18 +00:00
Vadim Zeitlin
9e99b53208 added wxRB_SINGLE style as temp workaround for MSW native radiobutton bug
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17575 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-19 13:24:09 +00:00
Václav Slavík
02b0f5f67e added wxScrolledWindow to XRC
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17574 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-18 20:54:12 +00:00
Stefan Csomor
00a71a011f added toggle support (and some corrections ;-)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17573 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-18 19:47:34 +00:00
Stefan Csomor
30438673e3 notebook images support
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17572 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-18 17:22:44 +00:00
Gilles Depeyrot
f95c44324e corrected Mac OS X related configuration check (removed spurious if)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17571 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-18 16:26:11 +00:00
Stefan Csomor
6302278380 added proper accessor for getting region boundaries
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17570 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-18 08:48:07 +00:00
Stefan Csomor
5a751e2699 key handler does not interfere with menuevent keystrokes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17569 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-18 07:16:49 +00:00
Stefan Csomor
92340b2ae8 bracketed fstream include
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17568 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-18 06:48:35 +00:00
Robin Dunn
7c630a2d4f SWIGged updates for wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17567 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-18 06:24:40 +00:00
Robin Dunn
431aa4766e Use true reference counting with wxMemoryBuffer
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17566 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-18 05:11:08 +00:00
Václav Slavík
1adbd752e1 wxCheckBox and wxCheckList docs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17565 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-17 22:07:44 +00:00
Stefan Csomor
a4d52e98b7 turned off several branches for cursor setting idle code, I'll have to turn on some of them
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17564 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-17 20:40:21 +00:00
Stefan Csomor
a1bc5f4446 picture support on tabs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17563 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-17 20:38:38 +00:00
Stefan Csomor
e22babff50 changed code for better debugging
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17562 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-17 20:34:20 +00:00
Stefan Csomor
c033876ec0 pict generation code takes into account mask, getting rid of a memory leak
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17561 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-17 20:32:29 +00:00
Stefan Csomor
728d6d7d3a attempt to keep the number of control updates lower during idle times
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17560 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-17 20:30:44 +00:00
Vadim Zeitlin
5364b91a46 added Indonesian translation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17559 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-17 19:58:09 +00:00
Gilles Depeyrot
f420fdcfe2 Under Mac OS X, when building non bundle applications, resources are bundled
both with shared library and applications since the carb resource *must* be
included in the application in order for it to be recognized as a Carbon
application


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17558 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-17 19:20:40 +00:00
Roman Rolinsky
90fa618ee0 Notes about 0.0.8-1.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17557 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-17 18:49:29 +00:00
Roman Rolinsky
18ede604de Using MyDocument objects for writing XML (myxml module).
Added new controls.

Panel.OnCut code is merged with Panel.OnDelete to Panel.OnCutDelete.

Encoding support (beta).

Moved "del conf" line from App class to main function - for some weird
reason it doesn't work in App.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17556 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-17 18:41:53 +00:00
Roman Rolinsky
2667e31153 Updated control parameters for wxDialog, wxGauge, wxSpinButton.
Implemented wxSpinCtrl, wxGenericDirCtrl, wxUnknown.

Added encoding support and new classes xxxEncoding, xxxMainNode (represents Document
object).

etc.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17555 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-17 18:37:55 +00:00
Robin Dunn
171c9b26e3 wxFAIL used wxFalse in its message like '"wxFalse" failed' which
doesn't make much sense...  So I changed the token passed to wxASSERT
to "wxAssertFailure" to try and make it a little better.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17554 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-17 18:37:51 +00:00
Roman Rolinsky
8ab3e5a672 Customised XML writing - include encoding header attribute
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17553 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-17 18:33:41 +00:00
Robin Dunn
049d5d2cca Fix a couple asserts so they won't deref NULL pointers if that's what
was passed in.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17552 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-17 18:23:50 +00:00
Vadim Zeitlin
7c603b9907 added include wx/defs.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17551 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-17 18:02:55 +00:00
Vadim Zeitlin
6af4efb2f9 fixes for gcc 3.x -Wshadow warnings
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17550 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-17 16:43:43 +00:00
Vadim Zeitlin
5b7745fa47 gcc 3.x -Wshadow warning fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17549 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-17 16:38:49 +00:00
Vadim Zeitlin
01a88a5b8b compilation fix (missing header)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17548 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-17 16:32:27 +00:00
Vadim Zeitlin
635f9b534e added wxLongLongSuffix and wxLongLongFmtSpec for CW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17547 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-17 16:30:36 +00:00
Robin Dunn
1553a6f2f2 SWIGged updates for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17546 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-16 23:24:51 +00:00
Robin Dunn
d73361fed5 Various changes to reflect current CVS.
Added a separate wxRadioButton demo.
Various tweaks.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17545 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-16 22:51:31 +00:00
Robin Dunn
a5b317c973 Reverted last change. The page size must be set when it is added in
case the notebook has already been sized by the time the new page is
added.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17544 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-16 22:48:18 +00:00
Robin Dunn
d3a5c14ab4 FileExists --> wxFileExists
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17543 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-16 22:46:42 +00:00
Vadim Zeitlin
9df4bbf74c Mac compilation warning fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17542 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-16 22:43:09 +00:00
Václav Slavík
acc4028ecd fix binary incompatiblities in wxHtmlHelpController's cached data bytestream
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17541 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-15 22:46:25 +00:00
Stefan Csomor
e3dbaff33f wxNO_FULL_REPAINT_ON_RESIZE implementation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17540 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-15 16:16:21 +00:00
Julian Smart
91ae025ee2 Fixed wxUSE_THREADS typo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17539 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-15 16:02:54 +00:00
Julian Smart
6f45003cae Fixed SString.h for gcc 2.96
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17538 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-15 15:39:35 +00:00
Stefan Csomor
cab1dfd13b added wxBitmap::ConvertToImage code for native icons and pictures
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17537 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-15 15:03:20 +00:00
Stefan Csomor
665bb65698 line ending commands under condition of PC endings (added also to WriteText)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17536 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-15 15:01:09 +00:00
David Webster
74587a6b43 More duplicate symbol fixes for VisualAge builds.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17535 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-15 14:15:17 +00:00
David Webster
32b26030fe More dll updates
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17534 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-15 14:12:23 +00:00
Vadim Zeitlin
714e26a551 fixed gauge overflow
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17533 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-15 13:55:06 +00:00
Vadim Zeitlin
a61aefe37f don't divide by 0 in SetValue/Range(); minor code cleanup
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17532 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-15 13:25:41 +00:00
Václav Slavík
349ac76e9a given an assert when trying to do something stupid
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17531 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-14 22:40:40 +00:00
Václav Slavík
4f3f29fe0a documented wxXmlResourceHandler::IsOfClass
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17530 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-14 22:31:50 +00:00
David Webster
bb4f30c0d8 Weekly OS/2 updates
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17529 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-14 21:31:38 +00:00
David Webster
047c8f9bd7 Fixups for duplicate symbols errors under VisualAge C++ for OS/2.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17528 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-14 20:44:36 +00:00
David Webster
fd9ac68eb7 VISUALAGE OS/2 fixups needed for new Png lib.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17527 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-14 20:42:24 +00:00
David Webster
a6e369b062 Getting rid of ctl3d32.lib for command-line builds (not used anymore per Julian).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17526 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-14 19:39:58 +00:00
Stefan Csomor
f9c7ec45b8 added kHighLevelEvent to the group of events that don't need correction of modifiers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17525 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-14 18:35:06 +00:00
Vadim Zeitlin
64b2a65697 added HasSelection() (forgot to commit yesterday)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17524 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-14 17:25:17 +00:00
Vadim Zeitlin
252b2c1c34 Only set WXUSINGDLL=0 when not set (patch 620174)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17523 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-14 12:48:08 +00:00
Vadim Zeitlin
800e14138e call Layout() from Show(TRUE) to ensure that all dialogs are correctly laid out initially
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17522 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-13 22:37:51 +00:00
Robert Roebling
a46cc43fed Combox gets its own SetFocus()
wxDialog() set the focus to itself when shown. This will
    the propagate to some control in the dialog. I am not
    sure if this will override preceding user's call to
    SetFocus() in one of the child windows.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17521 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-13 21:03:47 +00:00
Robert Roebling
944b29b835 Give wxComboBox an extra SetFocus() method.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17520 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-13 21:01:15 +00:00
Vadim Zeitlin
82898ed9df added more tests for SetValue/WriteText
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17519 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-13 19:27:20 +00:00
Vadim Zeitlin
9007386bc8 each of SetValue(), WriteText() and AppendText() now generates exactly one EVT_TEXT() event for all kinds of controls (plain EDIT, rich, rich version 2)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17518 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-13 19:24:00 +00:00
Vadim Zeitlin
e924448838 more typos in #ifs fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17517 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-13 19:13:55 +00:00
Vadim Zeitlin
b0b7a18d2d handle files with .cc extension properly (patch 622687)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17516 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-13 19:08:33 +00:00
Vadim Zeitlin
a45376e42f typos in #ifs fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17515 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-13 18:37:44 +00:00
Robert Roebling
daa820fd8b Enable direct access to XML data in XRC.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17514 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-13 16:19:15 +00:00
Robert Roebling
fbf9b66e03 Shouldn't the fontmapper recognize 8859 as iso-8859?
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17513 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-13 14:00:03 +00:00
Robert Roebling
441534fce3 Forgot to convert a string in colour name lookup.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17512 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-13 13:22:12 +00:00
Vadim Zeitlin
e328b2a64d fix for cygwin warnings (modified patch 622146)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17511 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-13 12:17:42 +00:00
Vadim Zeitlin
69b0c112e7 fix for spelling error (patch 621869) and use _() instead of _T() for the user visible strings
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17510 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-13 12:07:59 +00:00
Vadim Zeitlin
06cdbdacb2 clarifications of ENDSCROLL event docs (patch 622424)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17509 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-13 12:05:57 +00:00
Robert Roebling
366f5f1fd0 Commited wheel mouse event patch for GTK.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17508 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-13 11:13:19 +00:00
Vadim Zeitlin
86181cbde1 added wxLL and wxLongLongFmtSpec macros; documented them; added a test in the sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17507 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-13 11:02:48 +00:00
Robert Roebling
775462816e Another compiler fix for GCC 3.2 Another compiler fix for GCC 3.2..
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17506 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-13 11:02:38 +00:00
Vadim Zeitlin
b1210f9b69 fix VC++ warnings (which could be errors for the other compilers) with returning wx(W)CharBuffer
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17505 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-13 10:06:58 +00:00
Vadim Zeitlin
37a911e683 another compilation fix: Unix2DosFilename -> wxUnix2DosFilename
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17504 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-13 09:50:36 +00:00
Robert Roebling
3b6b0309b1 Compile fix for GCC 3.2. Don't know why.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17503 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-13 08:17:48 +00:00
Robert Roebling
56089cb7e4 Compile fix.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17502 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-13 08:02:41 +00:00
Vadim Zeitlin
16ca2afc73 only define Foo equivalents for wxFoo file functions if WXWIN_COMPATIBILITY_2
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17501 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-12 22:19:26 +00:00
Václav Slavík
9fd7ddfcc5 some more XRC docs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17500 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-11 22:24:47 +00:00
Václav Slavík
68a8e04526 more whitespaces as style deliminers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17499 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-11 22:23:58 +00:00
Václav Slavík
2bdb21c40b updated MGL installation instructions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17498 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-11 22:23:12 +00:00
Václav Slavík
b5cee9c500 don't add files to resources twice
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17497 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-11 22:22:16 +00:00
Václav Slavík
edb22d6af1 added wxHtmlContainerCell::GetBackgroundColour (needed for e.g. widgets rendering)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17496 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-11 22:22:06 +00:00
Vadim Zeitlin
da266dd05c added non const accessors to wx(W)CharBuffer; minor changes to wxMemoryBuffer; made copy ctor and assignment operator argument non const
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17492 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-11 15:26:43 +00:00
Chris Elliott
1e4d96486a make mdi.cpp resize for wxUniv/ Borland as well as wx11/gcc
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17490 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-11 09:09:39 +00:00
Chris Elliott
54946ca676 wxUniversal now in makefile.b32 - use make -f makefile.b32 WXUSINGUNIV=1
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17489 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-11 08:54:09 +00:00
Chris Elliott
2b6484e38e wxUniversal now in makefile.b32 - use make -f makefile.b32 WXUSINGUNIV=1
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17488 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-11 08:38:11 +00:00
Chris Elliott
eb2aa24703 fix for wxUniversal and BCC
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17487 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-11 08:24:41 +00:00
Robin Dunn
3d9d1df8d1 No real change, just added some whitespace for readability and testing
the new syncmail code


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17486 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-10 20:06:13 +00:00
Robin Dunn
e1c77fa8f1 Add some test code, and testing if CVS is allowing commits again.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17485 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-10 17:51:13 +00:00
Vadim Zeitlin
d329818b2a added/documented wxWizard::HasNext/PrevPage()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17484 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-08 20:37:56 +00:00
Julian Smart
bd5dd71130 Added IPC server capability to helpview, if you compile
with hvUSE_IPC
Added client demo using raw IPC classes (not yet using
a kind of help controller, as we eventually should)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17483 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-08 15:27:13 +00:00
Robin Dunn
aa4497caf2 SWIGged updates for wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17482 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-08 03:41:51 +00:00
Vadim Zeitlin
c7195026a0 no changes, finally
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17481 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-07 23:11:41 +00:00
Vadim Zeitlin
6bc69f3752 handle the errors in MB2WC/WC2MB gracefully in wxString ctors
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17480 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-07 23:11:27 +00:00
Vadim Zeitlin
c9bd8aeb25 fixed the use of size_t parameters in UTF8 tests
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17479 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-07 23:10:57 +00:00
Robin Dunn
ac153e89cc Don't do the OnAssert overloading if not __WXDEBUG__
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17478 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-07 22:34:03 +00:00
Vadim Zeitlin
86f964c3dd more UTF8 tests
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17477 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-07 22:33:25 +00:00
Vadim Zeitlin
c280423d85 slightly cleaned up the sample code -- but it (still) really needs a rewrite
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17476 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-07 22:17:16 +00:00
Vadim Zeitlin
e03cdae726 wxTimer::Start() only works from the main thread: mention it in the docs and add an assert in the code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17475 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-07 22:16:36 +00:00
Mattia Barbon
51b30d5943 Fix wxHashMap::clear
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17474 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-07 20:37:21 +00:00
Robin Dunn
65da7c0105 wxXmlSubclassFactory for wxPython
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17473 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-07 20:08:19 +00:00
Julian Smart
762b5367f7 Removed comment about using its own storage - wxTextValidator doesn't.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17472 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-07 07:28:26 +00:00
Václav Slavík
62ac23612f slowly documenting XRC...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17471 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-06 22:32:54 +00:00
Mattia Barbon
621b9ba223 Add some missing headers for non-PCH compilers.
Add a missing IMPLEMENT_DYNAMIC_CLASS (I still wonder how could it
work without it).


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17470 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-06 20:46:28 +00:00
Mattia Barbon
82e547d3d6 A couple more s/friend class wxFoo/friend class WXDLLEXPORT wxFoo/ for
MinGW GCC 3.2.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17469 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-06 20:44:41 +00:00
Vadim Zeitlin
3a9dd8d618 added default value of id param in ctor
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17468 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-06 19:45:51 +00:00
Vadim Zeitlin
26f10d1c2b added a section about wxTextCtrl indices
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17467 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-06 19:44:33 +00:00
Vadim Zeitlin
cea0b70615 generate TEXT_ENTER event when Enter is pressed in a combobox
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17466 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-05 23:29:40 +00:00
Vadim Zeitlin
8f41f92614 create the controls inside a panel
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17465 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-05 22:26:44 +00:00
Vadim Zeitlin
4fe82ce139 kbd traversal code now knows that DLGC_WANTALLKEYS implies DLGC_WANTTAB/ARROWS; this fixes the problem with editing a list/tree ctrl item in place -- you could TAB out of it before
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17464 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-05 22:24:12 +00:00
Vadim Zeitlin
51dbcf35ff call SetFocus() in WM_LBUTTONDOWN handler for the wxWindows controls (not standard ones)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17463 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-05 21:33:01 +00:00
Vadim Zeitlin
0debb1231a mention wxNB_MULTILINE
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17462 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-05 20:41:26 +00:00
Vadim Zeitlin
bbce9725f5 woodoo workaround for the bug 616803: crash when showing a dialog with notebook with wxNB_MULTILINE style
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17461 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-05 20:37:07 +00:00
Vadim Zeitlin
8ce31375f2 fixed wxfileDialog::SetPath() (which didn't do anything before)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17460 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-05 20:20:57 +00:00
Vadim Zeitlin
d4ffadcd7c reverted the last change -- what was it for?
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17459 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-05 11:45:42 +00:00
Robert Roebling
372b0e766c Applied patch to fix colour probs under wxGTK.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17458 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-04 20:48:16 +00:00
Robert Roebling
c6de9c117b Added work-around/fix for redraw bug in idle handler.
I now send internal idle calls whereas normal idle
   events still get block by the recursion block.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17457 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-04 20:10:14 +00:00
Gilles Depeyrot
af0cf516b0 added SIZEOF_INT to Project Builder prefix header
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17456 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-04 18:45:11 +00:00
Vadim Zeitlin
c20c9f8034 made the configure summary message a bit more pretty
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17455 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-04 16:47:26 +00:00
David Webster
e722a0b9d9 Need to set the m_isShown flag properly during a call to ::Show.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17454 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-04 13:53:38 +00:00
Julian Smart
8c92ffaa71 Removed references to wxBuffer from wxSlider, and
ensured that the slider doesn't use a potentially
uninitialised buffer.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17453 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-04 10:28:06 +00:00
Ron Lee
6bd20f9d73 fixed long lost typo uncovered by Gilles output summary. Is it ever bad
to add more of these things :-)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17451 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-04 05:24:14 +00:00
Robin Dunn
7a0afd5cfe Turn off the test case for normal use
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17450 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-04 02:11:56 +00:00
Robin Dunn
7fbab51529 SWIGged updates for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17449 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-04 02:00:19 +00:00
Robin Dunn
dad0803d48 Removed Command() but left an alias
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17448 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-04 00:44:55 +00:00
Robin Dunn
3f7406ab30 it helps if you actually return the return value!
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17447 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-04 00:42:03 +00:00
Robin Dunn
9312e5d6db wxASSERT and others are converted to Python Exceptions.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17446 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-04 00:40:31 +00:00
Gilles Depeyrot
1d4874621e added a configure summary trailer to report on main configuration options
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17445 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-03 20:46:45 +00:00
Robin Dunn
7d1ab59731 Avoid assert when the position to be removed is beyond the end of the
list and just return FALSE as documented


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17444 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-03 19:50:39 +00:00
Vadim Zeitlin
3512d53ddd added a WXWIN_COMPATIBILITY_2_2 test around deprecated Command() method
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17443 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-02 23:33:01 +00:00
Vadim Zeitlin
a275e42188 delete the hidden TLW parent window from a module to ensure that it is done even if OnInit() returns FALSE; also create it without using wxTLW itself which actually simplifies the code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17442 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-02 23:32:23 +00:00
Julian Smart
1681cdd7f1 Regenerated configure for -lm patch
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17441 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-02 14:16:32 +00:00
Julian Smart
690df84c1c Applied patch [ 617303 ] add -lm only when it's needed
(will commit configure shortly)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17440 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-02 14:09:28 +00:00
Julian Smart
8eca8095e4 Applied patch [ 617262 ] ListCtrl ResetVisibleLinesRange missing
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17439 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-02 14:03:43 +00:00
Julian Smart
db2995da83 Applied patch [ 616406 ] wxGenericDirCtrl: virtual methods
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17438 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-02 13:57:29 +00:00
Julian Smart
f93107bcae Applied patch [ 615769 ] generic wxListCtrl enhancements
implemented a couple of things missing from the generic
wxListCtrl class which make it more similar to the
Windows port

1) implemented wxLIST_FORMAT_RIGHT and wxLIST_FORMAT_CENTER

2) added an ellipsis (...) to the end of the string and
shortened the string to fit inside the allowed width

3) left a margin of 8 pixels between columns so that
the text is not shoved right together

Note this is my first patch to wxWindows. I did read
the patch howto and I think I got it right but please
feel free to bother me about any discrepancies. In
addition, I am not sure if the way I implemented the
new routine to handle the formatting is adequate
performance wise but it doesn't seem to slow things
down too badly on my machine... :-) In addition, if
this routine is accepted, it could also be used for the
header data as well -- thoughts?

Anthony Tuininga


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17437 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-02 13:54:09 +00:00
Julian Smart
ace9a61933 Applied patch [ 615993 ] CW7 project file patch for v2.4
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17436 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-02 13:49:07 +00:00
Julian Smart
97ea5edb3d Applied [ 612802 ] wxSplitterWindow::Unsplit() in wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17435 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-02 13:46:58 +00:00
Julian Smart
d0fd5a294d Applied [ 611204 ] Fixes wxSlider thumb grabbing area
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17434 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-02 13:44:21 +00:00
Julian Smart
af2e6a4295 Applied patch [ 613113 ] "GDI Object" leak in wxOwnerDraw
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17433 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-02 13:42:23 +00:00
Julian Smart
6397b59b65 Applied patch [ 609516 ] AutoSize does not remove scrollbars
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17432 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-02 13:38:50 +00:00
Julian Smart
fe3f379193 Applied [ 609518 ] wxImage: const comp. operators
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17431 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-02 13:35:52 +00:00
Julian Smart
44b283fef0 Applied patch [ 609361 ] wxDocument::UpdateAllViews()
The sending view won't be updated now.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17430 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-02 13:33:36 +00:00
Julian Smart
5aedd93815 Applied patch [ 613433 ] Makes wxFN::Get/SetTimes work w/ Cygwin
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17429 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-02 13:31:18 +00:00
Julian Smart
742e672095 Applied patch [ 613877 ] Fixes word ordering
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17428 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-02 13:27:46 +00:00
Julian Smart
fc0322d338 Applied patch [ 617438 ] ListCtrl-Sample crashing on sort
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17427 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-02 13:26:18 +00:00
Julian Smart
dd0d47090a Applied patch [ 610076 ] wxX11&wxGtk fail with --disable-compat22
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17426 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-02 13:24:33 +00:00
Julian Smart
fdfc424e32 Reordered font setting since on wxX11 a mem DC is not valid
until the bitmap is selected into it.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17425 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-02 08:11:27 +00:00
Julian Smart
4d1c976da4 Made compilable with --disable-compat22
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17424 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-02 07:54:15 +00:00
Robin Dunn
9d43a2054e SWIGged updates for wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17423 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-02 00:27:21 +00:00
Robin Dunn
970a937c34 Added wxHtmlFilter
Also some minor tweaks and additions


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17422 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-02 00:24:38 +00:00
Robin Dunn
8d5e66bc14 Fixes so this sample can be used with wx DLL
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17421 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-02 00:16:49 +00:00
Robin Dunn
ce500334d8 Added STCDLLEXPORT so wxSTC could be built and used as a DLL.
Fixed DoAddChar handling in unicode mode to translate the char to UTF8
if needed.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17420 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-02 00:15:07 +00:00
Vadim Zeitlin
f50b6e1d9b fixed more bugs in SetDirectory/Path/Filename() and centralized m_static update code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17418 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-01 18:43:23 +00:00
Ron Lee
292cc8c93e The menubar dynamic sizing patch broke any app which adds an empty
menubar and populates it later.  Since this is (or at least was)
a valid way to use wxMenuBar before that, we need to recalculate
the size whenever it might change.  (We probably need to do it
anyway for this to be completely useful).   This patch isn't the
cleanest or most efficient way to do that, but it's a minimal
change on a new feature that at least restores compatibility.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17417 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-01 15:13:44 +00:00
Robert Roebling
5aee9bc480 Put StringMatch() into #if win_comp_2
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17416 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-01 10:30:22 +00:00
Robert Roebling
4ffb82ac32 No leading space in toolbars for GTK 2.0 since they
are drawn as lines.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17415 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-10-01 09:24:37 +00:00
Robert Roebling
58b5a13da5 Very incomplete Unicode support for wxTextStream.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17414 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-30 20:48:44 +00:00
Robert Roebling
b1b937339c GTK 2.0 is VERY picky about the realize/map/set_parent order.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17413 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-30 19:30:52 +00:00
Robin Dunn
0fcac944f3 Typo fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17412 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-30 17:37:23 +00:00
Robin Dunn
03cd51b0b6 wxFileTypeInfo interface changes and a missing method in wxDateTime
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17411 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-30 17:36:07 +00:00
Robin Dunn
63a8541c13 More wxTimeCtrl patches from Will Sadkin
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17410 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-30 17:33:15 +00:00
Robert Roebling
4a32c38f67 Enable wxMatchWild() for Unicode (under GTK) /
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17409 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-30 16:57:17 +00:00
Robert Roebling
5d0c8a9857 Use glib for wxMatchWild() under Unicode.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17408 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-30 16:56:13 +00:00
Robert Roebling
9ca0f57c31 Updated PNG to latest releases. I don't really know
if this fixes the "incompatoble lib version" bug,
   and I actually didn't find any such comment.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17407 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-30 13:23:54 +00:00
Robert Roebling
7fc06f31e1 Removed hack from wxListCtrl that was required
as long as wxGTK sent an incorrect sequence
   of mouse events for dclicks.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17406 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-30 13:20:25 +00:00
Robert Roebling
0edfce279c Determin menu bar height dynamically.
Minor sample changes.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17405 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-30 10:40:52 +00:00
Robert Roebling
5c3e4ed256 Filter out surplus mouse down event when
a double click event is in the queue.
   This is how MSW does it.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17404 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-30 10:27:34 +00:00
Julian Smart
5ea82140ee Added some more accelerator possibilities, such as Ctrl+Enter, Ctrl+Home
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17403 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-28 20:06:45 +00:00
Ron Lee
4c77c8865a Disallow the possibility of a dangling 'else'.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17402 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-28 07:01:33 +00:00
Stefan Neis
2a9e9415fa Reordered checks to avoid mis-detection of OS/2 v. 4.* as System V Unix.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17401 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-27 22:34:45 +00:00
Stefan Neis
45dae01189 Added warnings about to apparently common traps in the build process.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17400 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-27 21:56:57 +00:00
Stefan Neis
f21f85abdb Fix for WXPM compilation using EMX/gcc.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17399 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-27 21:40:37 +00:00
Stefan Neis
192bb0de73 Fixed includes for EMX/gcc.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17398 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-27 20:59:10 +00:00
Stefan Neis
e8d2bf7311 All of miniframe class is in the header file on OS/2.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17397 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-27 20:44:24 +00:00
Stefan Neis
ff9d0a5c41 Use generic MDI under OS/2.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17396 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-27 20:37:39 +00:00
Stefan Neis
5559999404 Use generic mdi on OS/2.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17395 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-27 20:31:50 +00:00
Julian Smart
9e8c78dbf8 Put back OSTYPE, commented out. I don't really mind if
it's removed again, if people feel strongly that
it's confusing. But it might be helpful to someone.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17394 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-27 18:55:32 +00:00
Chris Elliott
ca93de9778 fix bug with #define FindText
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17393 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-27 13:58:23 +00:00
Ron Lee
ebfa00d564 Don't mix up the contrib and main static libs now they all
have the same prefix.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17390 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-27 01:16:30 +00:00
Ron Lee
492b704acd fixed for new contrib files names, bumped the changelog hopeful to
tag and release 2.3.3.2-debs from this commit.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17389 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-27 00:56:19 +00:00
Václav Slavík
fc253b5bd3 fixes for DJGPP-based MSDOS port
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17388 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-26 22:26:28 +00:00
Stefan Csomor
335f8251c4 dynamic allocation of file type arrays etc...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17385 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-26 08:53:28 +00:00
Stefan Csomor
52000d0bbb corrected checks for metrowerks to proper number
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17384 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-26 08:52:09 +00:00
Václav Slavík
e9db9d29b8 fixed restoration of iconized wxHtmlHelpFrame
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17383 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-25 19:40:43 +00:00
Julian Smart
fcbe4b8952 Avoid including reparent.h in Nano-X mode.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17382 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-25 19:28:28 +00:00
Mattia Barbon
56b8d9a67c Partially reverted previous change: it breaks building from DOS prompt.
cp still uses forward slashes.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17381 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-25 19:09:42 +00:00
Vadim Zeitlin
66eb448aa2 really fixed handling 32 bit scrollbar positions while dragging the thumb (thanks to Jonathan Marsden)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17380 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-25 17:53:47 +00:00
Vadim Zeitlin
1f6b7faabc fixed a bug with Printf()ing a string into itself
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17379 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-25 17:03:26 +00:00
Julian Smart
10acf8094e G95 makefiles:
_Always_ use forward slashes when using copy.
Added OSTYPE to makef95.env to fool makefiles into
thinking that MSYS is being used, even when it is,
but only from DOS.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17378 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-25 11:20:21 +00:00
Václav Slavík
3d940df52b fixed memory leak in wxMimeTypesManager
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17377 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-25 11:12:06 +00:00
Václav Slavík
48acff7892 fixed memory leak in wxColour
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17376 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-25 11:10:51 +00:00
Václav Slavík
3ce501311b implemented subclass factories for XRC
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17375 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-25 11:10:39 +00:00
Václav Slavík
5e3012152c fixed previewing in wxrcedit
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17374 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-25 11:10:18 +00:00
Robin Dunn
7174c830f7 Tweaks to wxTimeCtrl for wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17373 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-24 19:55:19 +00:00
Robin Dunn
74f4b82837 Update XRCed to 0.0.7-5
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17372 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-24 18:34:21 +00:00
Robin Dunn
4b6cc55fd6 version number update
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17371 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-24 18:15:16 +00:00
Robin Dunn
33ed3832af Some tweaks for wxTimeCtrl for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17370 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-24 18:09:21 +00:00
Robin Dunn
28825fa22a wxTimeCtrl updates from Will Sadkin
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17369 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-24 17:57:49 +00:00
Robin Dunn
b5177a3fe4 Removed duplicate
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17368 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-24 14:48:55 +00:00
Julian Smart
6d49dd8f05 Made the version conflict error message a bit more helpful
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17367 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-24 13:40:18 +00:00
Julian Smart
938bafd72a Set integers to 0, not NULL to remove warning.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17366 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-24 09:29:31 +00:00
Robin Dunn
d0c7b7d2b7 If being asked to Add or Insert zero items just do nothing and return
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17365 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-24 00:35:08 +00:00
Robin Dunn
d9a149b1cc Show some new grid features
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17364 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-23 21:54:10 +00:00
Robin Dunn
22d9535cee Playing with dialog styles
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17363 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-23 21:38:59 +00:00
Robin Dunn
e9b885213e Test case for matching GetInsertionPoint and etc. with actual text positions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17362 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-23 21:38:37 +00:00
Robin Dunn
17a6d5c37b Incremented version number
Some distrib tweaks


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17361 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-23 21:37:48 +00:00
Julian Smart
76a3435748 No change on griddemo
Added lwn to publicity doc


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17360 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-23 21:18:45 +00:00
Robin Dunn
f3cfdd41c8 Don't install wxWindows until the %install step, use --inplace to
facilitate this.

Change the name of the -devel package since it doesn't care about the
python version like the main pacakges do.

Instead of using directory names and wildcards in the %files section
generate an explicit file list with an %attr on each line.  This is
because the %defattr was not completly working for some reason.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17359 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-23 20:31:24 +00:00
Robin Dunn
1df7d9c158 Added a --inplace flag to wx-config which will assume that it is
executing from the build directory and will then output -I and -L
flags to use the build directory copies of things.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17358 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-23 20:28:10 +00:00
Vadim Zeitlin
6f793e7d30 simply added a wxLogTrace for debugging
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17357 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-23 15:26:27 +00:00
Vadim Zeitlin
4a39ae8916 fixed the bug which resulted in the focus being stolen from the panel child even if it had been explicitly set to it
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17356 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-23 15:25:55 +00:00
Vadim Zeitlin
ecc4fd1e37 SetFilterIndex() is not only for MSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17355 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-23 14:56:22 +00:00
Vadim Zeitlin
a26c4b2ee7 fixed SetFilterIndex() which was broken by the recent changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17354 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-23 14:55:55 +00:00
Vadim Zeitlin
07b3c46cb6 added wxFileDialog::SetfilterIndex() test
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17353 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-23 14:54:50 +00:00
Chris Elliott
27579129e9 just made maxpath a bit shorter
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17352 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-23 12:15:48 +00:00
Julian Smart
d7561efabf DeleteRows 1st arg is not number of rows
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17351 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-23 09:27:10 +00:00
Vadim Zeitlin
04ffef0afc don't try to process LVN_ITEMCHANGED events with iItem == -1 (this is always the case for virtual list controls and results in error messages)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17350 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-22 22:12:46 +00:00
Vadim Zeitlin
61c2fbda5b fix after renaming wxListBox::CreateItem() to CreateLboxItem()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17349 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-22 21:45:17 +00:00
Vadim Zeitlin
34a8dbd28e renamed wxListBox::CreateItem() to CreateLboxItem() to aviod conflict with wxWindow method
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17348 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-22 21:02:00 +00:00
Vadim Zeitlin
c1094350b3 made wxFont::GetResourceHandle() const as well
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17347 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-22 20:58:43 +00:00
Vadim Zeitlin
44314d0d50 removed (unimplemented) wxBitmapCheckBox (fixes another part of bug 612658)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17346 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-22 20:56:25 +00:00
Julian Smart
d4aeebb808 Added wxX11 distribution script
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17345 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-22 19:07:03 +00:00
Václav Slavík
0357e1513d sanitized library names in contrib hierarchy
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17344 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-22 15:08:16 +00:00
Vadim Zeitlin
4bfedab037 added missing _T()s; deTABified
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17340 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-22 14:53:45 +00:00
Julian Smart
556469d8ba Fixed bug [ 413614 ] native wxDragImage w/o mask is broken
by adding ILC_MASK even when there's no mask.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17339 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-22 14:32:23 +00:00
Julian Smart
91bbbdf8a6 Fixed bug [ 495532 ] wxFileDialog limits multiple file load
"The wxMAXPATH constant prevents the loading of
multiple file names in a multiple selection dialog
when selecting a large number of files.

The number of selected files can easily exceed the
memory allocated to store the selected file names and
paths."

I'm increasing the buffer size to 65536 which should be adequate
for most purposes. There's apparently no way to work around the
fixed buffer size. -- JACS


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17338 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-22 11:36:52 +00:00
Mattia Barbon
7242785858 Fixed wxRadioBox for Lesstif when compiled to emulate Motif 1.2
(as in Debian 3.0).


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17337 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-22 08:46:08 +00:00
Vadim Zeitlin
833adb3bb1 made GetResourceHandle() const everywhere, not just in wxBrush (fixes first part of the bug 612658)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17336 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-21 23:01:25 +00:00
Vadim Zeitlin
e2531c0c29 removed mdig.cpp (??) from msw/files.lst as well
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17335 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-21 21:59:53 +00:00
Mattia Barbon
490317bb9f Before this change wxComboBox was unconditionally white, which looked
very ugly. Now the textcontrol and popup background are unconditionally
white, while the rest has parent's background color. I think it
looks better now...


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17334 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-21 20:53:58 +00:00
Stefan Csomor
4df9aff134 added new command ids
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17333 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-21 20:52:34 +00:00
Stefan Csomor
8ffb0bb9f0 added forcing for bitmap types
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17332 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-21 20:51:00 +00:00
Stefan Csomor
7143fe6b26 switched menu handling to command ids
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17331 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-21 20:49:35 +00:00
Vadim Zeitlin
c6ec726bd8 fixed some warnings about assigning literal strings to char *
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17330 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-21 20:42:40 +00:00
Vadim Zeitlin
ad2e39c11d made ProvideBackground() const
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17329 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-21 20:38:05 +00:00
Vadim Zeitlin
a34d639546 really override IsCanvasWindow() in wxPanel (this wasn't the case because of a missing const before)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17328 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-21 20:32:53 +00:00
Vadim Zeitlin
1b3947754a fix warning about hiding virtual Select()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17327 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-21 20:31:32 +00:00
Vadim Zeitlin
f637c8e680 compilation fix: removed trailing comma in enum
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17326 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-21 20:27:57 +00:00
Vadim Zeitlin
9551c623db removed C++ comment
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17325 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-21 20:25:56 +00:00
Julian Smart
59a6c6e6c9 Added Makefile.in for Windows samples, so we can build
them using MinGW


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17324 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-21 17:20:52 +00:00
Stefan Csomor
9ad7df7d60 corrected var overflow under classic
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17323 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-21 16:26:05 +00:00
Stefan Csomor
c175803628 corrected typos
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17322 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-21 16:21:15 +00:00
Mattia Barbon
64e8d107f0 Applied Motif patches from Ian Brown
[ 609894 ] motif staticbox improvement
[ 611042 ] fix for motif crash

Everything looks fine with Lesstif from Debian 3.0 (emulated
Motif version is 1.2).


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17321 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-21 16:20:49 +00:00
Mattia Barbon
93add80831 GCC 3.2 is really picky about friends & dllexport.
Now wxWindows compiles (again) as DLL with MinGW GCC 3.2


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17320 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-21 16:16:57 +00:00
Julian Smart
b2162f4c83 Fixed bug [ 597643 ] SashWindow-borders cause sticky arrow
Needed an OnSetCursor as per splitter window, for MSW only.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17319 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-21 14:16:24 +00:00
Václav Slavík
69c18e92a0 fixed stupid bug in my previous check in
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17318 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-21 13:53:53 +00:00
Ron Lee
63b53115ce Ok, so the patch looks huge, but it's really not that scary.
Most of it is just reformatting to our coding standard to
make debugging possible in the first place.  The (finally)
significant change is in DeleteSubGroup where we now check
correctly for deleting the last group from the root.
Prior to this it was impossible without a crash or worse.
Since it was such a pig to track down, I've left the LogTrace
code in place for now too.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17317 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-21 12:20:47 +00:00
Vadim Zeitlin
f14f5c6740 don't set Alt/Ctrl modifiers for the AltGr char events
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17316 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-21 11:44:49 +00:00
Vadim Zeitlin
3f4d464b9b fixed operator++() for wxRegioIterator in wxGTK too
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17315 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-21 10:38:36 +00:00
Stefan Neis
b8595cfb2a Fixed bug introduced in v 1.8 by changed parameter list of SelectBlock, but
mostly hidden by default values of new parameters.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17314 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-21 01:49:20 +00:00
Stefan Neis
d2121dd382 Fixed yet another part of the typo fixed in 1.232.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17313 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-21 00:26:08 +00:00
Stefan Neis
e19f4ed3fa Added some sanity checks for empty grids.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17312 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-21 00:07:20 +00:00
Stefan Neis
07cbd27aaa Fix in wxArrayString::Grow to also handle situation where array is not yet
full but the nIncrement is greater than the space left.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17311 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-21 00:01:26 +00:00
Vadim Zeitlin
6d9a4c4d6f 1. fixed bug in wxRegion::Combine() which was modifying all shared regions,
not just the given one
2. added wxRegionIterator copy ctor and assignment operator
3. fixed wxRegionIterator::operators++() to do what they say
4. generic code cleanup


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17310 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-20 23:36:23 +00:00
Vadim Zeitlin
b254accad1 base class must have virtual dtors and wxMBConv is no exception
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17309 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-20 23:01:58 +00:00
Vadim Zeitlin
302adc47d6 use _tcsdup() for compilers with TCHAR support
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17308 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-20 23:00:32 +00:00
Vadim Zeitlin
93fe555876 no changes, really
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17307 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-20 23:00:08 +00:00
Robin Dunn
9441da1902 Fix in <array>::Grow for when the array is not yet full but the
nIncrement is greater than the space left.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17306 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-20 21:39:59 +00:00
Robin Dunn
fa0e662ad9 typo fix for the branch too
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17305 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-20 21:38:57 +00:00
Robert Roebling
2bcf7f2fed Added ugly hack for pda's message and
other common dialogs.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17304 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-20 21:07:22 +00:00
Robert Roebling
7e9dfde99b Fix typo.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17303 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-20 21:06:47 +00:00
Stefan Csomor
65653bad15 switched hide and show calls to using transition window calls, this supports animation and sound support
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17302 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-20 19:16:56 +00:00
Stefan Csomor
a14865055c changed resize code to reflect minimum and maximum sizes already when dragging the size rectangle
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17301 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-20 19:15:16 +00:00
Robin Dunn
63684edb71 Fixed some of the cleanup commands
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17300 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-20 17:33:03 +00:00
Vadim Zeitlin
a19f8994da apparently MipsPRO compiler needs -KPIC and not -fPIC for the shared libraries creation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17298 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-20 13:28:33 +00:00
Vadim Zeitlin
fda7f3a124 compilation fix: missing forward decl for wxTextCtrl
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17297 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-20 12:57:31 +00:00
Vadim Zeitlin
fe25fb0c68 (blind) fixes for building shared libraries under AIX with gcc
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17296 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-20 12:53:45 +00:00
Julian Smart
536d412453 Applied fix for [ 439207 ] Monochrome PNG images come up black
Joel Tesler (jtesler)

A monochrome black and white PNG image comes up all
black. This is referring to a single bit greyscale
pixmap, not a one bit palette pxiamp.

The easiest way to reproduce is to grab
http://www.schaik.com/pngsuite/basn0g01.png and go
into the image sample, and replace horse.png with
this file.

The following patch appears to fix the problem.
However, I do not know what other side effects it
might have.

--- imagpng.cpp~ Fri Jul 6 14:53:33 2001
+++ imagpng.cpp Fri Jul 6 15:17:06 2001
@@ -140,6 +140,8 @@

if (color_type == PNG_COLOR_TYPE_PALETTE)
png_set_expand( png_ptr );
+ if (bit_depth < 8)
+ png_set_expand( png_ptr );

png_set_strip_16( png_ptr );
png_set_packing( png_ptr );


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17295 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-20 08:53:30 +00:00
Julian Smart
4849c8132b Fixed [ 548055 ] Bug in wxToolBarSimple::Realize()
Cédric RICARD

There is an inversion in wxToolBarSimple::Realize():

The current code is :
if ( GetWindowStyleFlag() & wxTB_HORIZONTAL )
m_maxWidth += maxToolWidth;
else
m_maxHeight += maxToolHeight;

I think it should be :
if ( GetWindowStyleFlag() & wxTB_HORIZONTAL )
m_maxHeight += maxToolHeight;
else
m_maxWidth += maxToolWidth;


Just take an example to see the bug, and have a look
to the rest of the function :

If you create an horizontal tool bar with only 3
tools of 16 pixels length each, when you reach this
code, m_maxWidth is equal to 3*16 pixels. So it have
the good width. You needn't to add other 16 pixels.
But m_maxHeight is equal to 0 ! So you have to take
care of the line you have just created...

This is very logical. In an horizontal tool bar,
m_maxWidth is increased after each new tool. But
m_maxHeight is only increased when an entire line is
finished, or when the last tool is added to take care
of the last line.

And at last, I think you should add a :

SetSize(m_maxWidth, m_maxHeight);

after the previous code. Just try the ToolBar sample
code. It only works if I do that...




git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17294 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-20 08:21:00 +00:00
Ron Lee
ddbbd35e11 update python version dependency.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17293 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-20 01:37:43 +00:00
Vadim Zeitlin
326330ac79 don't crash when recreating notebook under wxGTK (bug 571853)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17292 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-20 00:11:49 +00:00
Ron Lee
69cb65e162 bumped version to 2.3.3.1
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17291 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-19 23:31:22 +00:00
Ron Lee
63d063a1db Persist without manpages, the cure is worse than the affliction.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17290 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-19 23:25:30 +00:00
Václav Slavík
c0d4a6b3c1 fix for filenames extraction for wxBitmapButton
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17289 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-19 22:39:25 +00:00
Vadim Zeitlin
2304dc6eaa mention that multiple selection events are not sent to the virtual list controls
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17288 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-19 21:49:16 +00:00
Vadim Zeitlin
ead7e5c1bf force controls with wxTE_RICH2 style to scroll to the end in AppendText() (fixes bug 564526)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17287 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-19 20:40:50 +00:00
Robert Roebling
db74b98be8 Added work around for compilation prob in
utilscmns. The whole mess should be
    removed.
  Not sure what I changed in fontmap.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17286 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-19 20:28:57 +00:00
Robert Roebling
663e452b5e Implement screen size testing (wxSystemSettings) under X11.
Add a hack for the incorrect XDrawLine() call in Xipaq.
  Minor fixes.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17285 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-19 20:26:11 +00:00
Robert Roebling
2c08b4c50e Actually implement setting_screen size since
we are writing code for it.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17284 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-19 20:24:29 +00:00
Robert Roebling
73c6d13263 CreateButtonSizer in wxDialog will craete
a PDA size adapted button sizer now.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17283 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-19 20:23:08 +00:00
Robert Roebling
a44c9d41d7 Adapt wxFileDialog and wxMessageDialog for PDAs.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17282 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-19 20:22:13 +00:00
Robert Roebling
5ec87fd62f Use renderer for wxListCtrl's header in wxUniversal.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17281 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-19 20:21:33 +00:00
Vadim Zeitlin
72d490511c use full 32 bit range when dragging a scrollbar (fixes bug 414986)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17280 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-19 20:07:13 +00:00
Mattia Barbon
8f37ed893c Fix wxListEvent::GetLabel
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17279 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-19 20:06:20 +00:00
Vadim Zeitlin
1cb08da2e2 define ZEXPORT as empty if the system zlib.h doesn't define it (fixes bug 583681)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17278 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-19 19:46:57 +00:00
Vadim Zeitlin
51e247cc98 don't allow TABbing away from the list control while the label is being edited (fixes bug 555749)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17277 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-19 19:42:45 +00:00
Julian Smart
8f5617e6ff Use System DDE topic for wxExecute if no topic found
Try Execute first, then Request


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17276 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-19 18:23:34 +00:00
Vadim Zeitlin
91916eeab9 more checks to avoid asserts (wxID_PRINT tool might not exist); added _T() around strings
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17275 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-19 11:54:18 +00:00
Vadim Zeitlin
164d6a95e6 remove the old buttons in Realize() before inserting the new ones in text only mode too
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17274 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-19 11:53:21 +00:00
Vadim Zeitlin
20b7206cb2 removed unused MSWWindowProc() (so that nobody is tempted to put it back)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17273 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-19 11:16:14 +00:00
Robin Dunn
79aa7172fb More tweaks for wxTimeCtrl
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17270 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-19 06:10:53 +00:00
Robin Dunn
197daf705d Fixed default size of wxTimeCtrl
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17269 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-19 05:52:24 +00:00
Robin Dunn
6056c203bd Added missing !
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17268 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-19 05:31:00 +00:00
Robin Dunn
460ad82472 Added wxTimeCtrl from Will Sadkin.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17267 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-19 05:13:00 +00:00
Robin Dunn
4547ef2757 SWIGged updates for wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17266 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-19 04:27:57 +00:00
Ron Lee
76d321e2d1 oops, add the section extentions.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17265 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-19 01:41:30 +00:00
Ron Lee
d36d6728e1 link undocumented man page to undocumented binaries.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17264 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-19 00:33:08 +00:00
Václav Slavík
3ec9ba300d added wxID_CLOSE_ALL to XRC (SF patch)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17263 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-18 23:03:13 +00:00
Robin Dunn
0459ba31a6 Updated build instructions and etc.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17262 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-18 22:45:04 +00:00
Robin Dunn
e6c9b3243c Set wxPython version number
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17261 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-18 21:35:55 +00:00
Robin Dunn
2d2fb2f198 SWIGged update for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17260 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-18 20:44:35 +00:00
Robin Dunn
88becfa938 SWIGged update for wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17259 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-18 20:40:50 +00:00
Robin Dunn
8de8e59e06 Added wxMenuBar::IsEnabledTop
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17258 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-18 20:39:41 +00:00
Robin Dunn
5fb99fe76f Allow the developer to choose if SetUseBestVisual is called
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17257 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-18 20:39:08 +00:00
Robin Dunn
1176111c0d A patch for wxListCtrlAutoWidthMixin from anthony@computronix.com
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17256 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-18 20:35:36 +00:00
Robin Dunn
02b2d73690 Removed #! from scripts that no longer need to be directly executable
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17255 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-18 20:30:25 +00:00
Mattia Barbon
c3f482c546 Fix wxListEvent::GetData
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17254 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-18 19:57:53 +00:00
Robin Dunn
39b68c98df Last checkin was a mistake, undo some debugging code...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17253 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-18 18:48:19 +00:00
Robin Dunn
702fe1fccf Delete the selection before inserting text in WriteText. Also, fix
bug in repositioning of the caret after the insertion.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17252 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-18 18:47:39 +00:00
Robin Dunn
8c2d31e9f3 Delete the selection before inserting text in WriteText. Also, fix
bug in repositioning of the caret after the insertion.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17251 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-18 18:38:10 +00:00
Robin Dunn
22589ec364 WriteText test case
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17250 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-18 17:48:54 +00:00
Robin Dunn
ad28a8de8b SetSelection(-1, -1) now selects the entire string as on wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17249 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-18 17:15:40 +00:00
Vadim Zeitlin
639cee3157 define OF() if not defined in the system headers, should help when using the system zlib version
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17248 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-18 15:39:28 +00:00
Vadim Zeitlin
32742e5755 corrected outdated Unicode information
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17247 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-18 14:48:56 +00:00
Vadim Zeitlin
2a32fcda98 include afxwin.h #if wxUSE_MFC to get windows.h in this case as well; minor formatting fixes and one char -> wxChar change
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17246 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-18 14:09:15 +00:00
Vadim Zeitlin
66eea1c2c4 added a note that the tech note is obsolete for wxWin 2.3+
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17245 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-18 12:59:23 +00:00
Vadim Zeitlin
fa4e86eee7 added console makefile for Borland
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17243 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-17 23:24:39 +00:00
Ron Lee
5a52b2251a Put wxBase files.lst back into debian-dist.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17242 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-17 21:30:37 +00:00
Václav Slavík
69e9c9b2de added wxMAX/MINIMIZE_BOX to wxDialog XRC handler
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17241 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-17 19:14:38 +00:00
David Webster
9edd8e7d41 OS/2 changes made in main trunk that didn't make it in time for the branch
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17240 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-17 18:49:35 +00:00
David Webster
363f292868 OS/2 change to generic mdi didn't quite make it in time for the branching.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17239 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-17 15:39:45 +00:00
David Webster
465b35f3ca GetTitle needs to be a const method.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17238 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-17 15:31:18 +00:00
Vadim Zeitlin
5a23b3de1d mention OpenBSD and /usr/include fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17237 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-17 15:29:55 +00:00
Vadim Zeitlin
27c6aa1349 always look in /usr/include for headers but never add it to CPPFLAGS; same for /usr/lib
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17236 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-17 15:20:44 +00:00
Vadim Zeitlin
c4c97ccbd6 reremoved /usr/include from SEARCH_INCLUDE
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17235 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-17 15:20:08 +00:00
Stefan Csomor
bf99a7849d made MacSetupCursor virtual in order to allow wxTextCtrl to use MLTE native cursor handling
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17234 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-17 14:27:56 +00:00
Vadim Zeitlin
77d95b6731 exclude -I/usr/local/include from cppflags only when using gcc
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17233 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-17 14:10:04 +00:00
Vadim Zeitlin
438a907d06 added AC_SUBST(GCC)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17232 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-17 14:08:44 +00:00
Vadim Zeitlin
802c95f5b7 more printf() format warnings fixed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17231 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-17 13:41:49 +00:00
David Webster
8a5750ee11 Latest TODO file. Not to be confused with files.lst, the configure file.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17230 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-17 12:48:21 +00:00
Vadim Zeitlin
1c911c5ef2 added __OPENBSD__ which was defined in configure but missing here before
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17229 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-17 12:30:28 +00:00
Vadim Zeitlin
adad970da3 define __{OPEN/NET}BSD__ + __BSD__ for Open/NetBSD, dont define __FREEBSD__ for them
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17228 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-17 12:29:24 +00:00
Vadim Zeitlin
b299c11105 test for __BSD__, not only __FREEBSD__ in ping(1) options determination code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17227 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-17 12:28:09 +00:00
Vadim Zeitlin
f0e2ef329d workaround for bug in OpenBSD headers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17226 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-17 12:24:33 +00:00
Vadim Zeitlin
d55a4efc0f don't use the bitmaps in toolbars with wxTB_NOICONS style
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17225 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-17 10:40:23 +00:00
Chris Elliott
ae6db164e2 borland make update for wxbase
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17224 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-17 07:49:59 +00:00
Chris Elliott
2a44fbe1a4 borland makefile for console sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17223 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-17 07:38:26 +00:00
Robin Dunn
5c649b815c Fix for wxPyInputStream, m_lastRead was getting incremented twice.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17222 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-17 01:44:24 +00:00
Robin Dunn
965079dde9 Provide implementation for GetTopItem
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17221 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-17 01:05:56 +00:00
Robin Dunn
00924b9de2 Avoid an assert in wxComboBox when setting default values that don't
exist in the list of choices.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17220 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-17 00:46:37 +00:00
Robin Dunn
e3bd1146c7 Some last minue wxPython changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17219 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-17 00:27:21 +00:00
Vadim Zeitlin
d2da899a2e updated/fixed for 2.3.3 release
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17213 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-15 23:51:34 +00:00
Vadim Zeitlin
ddb8d0503e console apps need shell32.lib now too (because of wxVolume)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17212 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-15 23:51:00 +00:00
Vadim Zeitlin
0f48627c76 link to wxbase233.dll, not 232; and also link to shell32.lib
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17211 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-15 23:50:31 +00:00
Vadim Zeitlin
b883a5da0c unicode compilation fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17210 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-15 23:50:03 +00:00
Vadim Zeitlin
73f6b0b14e Fit() is called FitToPage() in reality
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17209 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-15 23:49:38 +00:00
Vadim Zeitlin
514d2dbb87 compile the C files using C compiler, not C++ one, otherwise the sample doesn't link
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17208 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-15 20:16:46 +00:00
Bryan Petty
e138d10b74 This commit was manufactured by cvs2svn to create branch
'WX_2_4_BRANCH'.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17207 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-09-15 20:16:46 +00:00
138 changed files with 24330 additions and 16127 deletions

View File

@@ -1,83 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: xh_html.cpp
// Purpose: XRC resource for wxHtmlWindow
// Author: Bob Mitchell
// Created: 2000/03/21
// RCS-ID: $Id$
// Copyright: (c) 2000 Bob Mitchell and Verant Interactive
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation "xh_html.h"
#endif
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#include "wx/xrc/xh_html.h"
#if wxUSE_HTML
#include "wx/html/htmlwin.h"
#include "wx/filesys.h"
wxHtmlWindowXmlHandler::wxHtmlWindowXmlHandler()
: wxXmlResourceHandler()
{
XRC_ADD_STYLE(wxHW_SCROLLBAR_NEVER);
XRC_ADD_STYLE(wxHW_SCROLLBAR_AUTO);
AddWindowStyles();
}
wxObject *wxHtmlWindowXmlHandler::DoCreateResource()
{
XRC_MAKE_INSTANCE(control, wxHtmlWindow)
control->Create(m_parentAsWindow,
GetID(),
GetPosition(), GetSize(),
GetStyle(wxT("style"), wxHW_SCROLLBAR_AUTO),
GetName());
if (HasParam(wxT("borders")))
{
control->SetBorders(GetDimension(wxT("borders")));
}
if (HasParam(wxT("url")))
{
wxString url = GetParamValue(wxT("url"));
wxFileSystem& fsys = GetCurFileSystem();
wxFSFile *f = fsys.OpenFile(url);
if (f)
{
control->LoadPage(f->GetLocation());
delete f;
}
else
control->LoadPage(url);
}
else if (HasParam(wxT("htmlcode")))
{
control->SetPage(GetText(wxT("htmlcode")));
}
SetupWindow(control);
return control;
}
bool wxHtmlWindowXmlHandler::CanHandle(wxXmlNode *node)
{
return IsOfClass(node, wxT("wxHtmlWindow"));
}
#endif // wxUSE_HTML

View File

@@ -1,262 +0,0 @@
%
% automatically generated by HelpGen from
% htmlcell.tex at 21/Mar/99 22:45:23
%
\section{\class{wxHtmlCell}}\label{wxhtmlcell}
Internal data structure. It represents fragments of parsed HTML
page, the so-called {\bf cell} - a word, picture, table, horizontal line and so on.
It is used by \helpref{wxHtmlWindow}{wxhtmlwindow} and
\helpref{wxHtmlWinParser}{wxhtmlwinparser} to represent HTML page in memory.
You can divide cells into two groups : {\it visible} cells with non-zero width and
height and {\it helper} cells (usually with zero width and height) that
perform special actions such as color or font change.
\wxheading{Derived from}
\helpref{wxObject}{wxobject}
\wxheading{Include files}
<wx/html/htmlcell.h>
\wxheading{See Also}
\helpref{Cells Overview}{cells},
\helpref{wxHtmlContainerCell}{wxhtmlcontainercell}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxHtmlCell::wxHtmlCell}\label{wxhtmlcellwxhtmlcell}
\func{}{wxHtmlCell}{\void}
Constructor.
\membersection{wxHtmlCell::AdjustPagebreak}\label{wxhtmlcelladjustpagebreak}
\func{virtual bool}{AdjustPagebreak}{\param{int * }{pagebreak}}
This method is used to adjust pagebreak position. The parameter is
variable that contains y-coordinate of page break (= horizontal line that
should not be crossed by words, images etc.). If this cell cannot be divided
into two pieces (each one on another page) then it moves the pagebreak
few pixels up.
Returns true if pagebreak was modified, false otherwise
Usage:
\begin{verbatim}
while (container->AdjustPagebreak(&p)) {}
\end{verbatim}
\membersection{wxHtmlCell::Draw}\label{wxhtmlcelldraw}
\func{virtual void}{Draw}{\param{wxDC\& }{dc}, \param{int }{x}, \param{int }{y}, \param{int }{view\_y1}, \param{int }{view\_y2}}
Renders the cell.
\wxheading{Parameters}
\docparam{dc}{Device context to which the cell is to be drawn}
\docparam{x,y}{Coordinates of parent's upper left corner (origin). You must
add this to m\_PosX,m\_PosY when passing coordinates to dc's methods
Example : {\tt dc -> DrawText("hello", x + m\_PosX, y + m\_PosY)}}
\docparam{view\_y1}{y-coord of the first line visible in window. This is
used to optimize rendering speed}
\docparam{view\_y2}{y-coord of the last line visible in window. This is
used to optimize rendering speed}
\membersection{wxHtmlCell::DrawInvisible}\label{wxhtmlcelldrawinvisible}
\func{virtual void}{DrawInvisible}{\param{wxDC\& }{dc}, \param{int }{x}, \param{int }{y}}
This method is called instead of \helpref{Draw}{wxhtmlcelldraw} when the
cell is certainly out of the screen (and thus invisible). This is not
nonsense - some tags (like \helpref{wxHtmlColourCell}{wxhtmlcolourcell}
or font setter) must be drawn even if they are invisible!
\wxheading{Parameters}
\docparam{dc}{Device context to which the cell is to be drawn}
\docparam{x,y}{Coordinates of parent's upper left corner. You must
add this to m\_PosX,m\_PosY when passing coordinates to dc's methods
Example : {\tt dc -> DrawText("hello", x + m\_PosX, y + m\_PosY)}}
\membersection{wxHtmlCell::Find}\label{wxhtmlcellfind}
\func{virtual const wxHtmlCell*}{Find}{\param{int }{condition}, \param{const void* }{param}}
Returns pointer to itself if this cell matches condition (or if any of the cells
following in the list matches), NULL otherwise.
(In other words if you call top-level container's Find it will
return pointer to the first cell that matches the condition)
It is recommended way how to obtain pointer to particular cell or
to cell of some type (e.g. wxHtmlAnchorCell reacts on
wxHTML\_COND\_ISANCHOR condition)
\wxheading{Parameters}
\docparam{condition}{Unique integer identifier of condition}
\docparam{param}{Optional parameters}
\wxheading{Defined conditions}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf wxHTML\_COND\_ISANCHOR}}{Finds particular anchor.
{\it param} is pointer to wxString with name of the anchor.}
\twocolitem{{\bf wxHTML\_COND\_USER}}{User-defined conditions start
from this number.}
\end{twocollist}
\membersection{wxHtmlCell::GetDescent}\label{wxhtmlcellgetdescent}
\constfunc{int}{GetDescent}{\void}
Returns descent value of the cell (m\_Descent member).
\helponly{See explanation:
\image{}{descent.bmp}
}
\membersection{wxHtmlCell::GetHeight}\label{wxhtmlcellgetheight}
\constfunc{int}{GetHeight}{\void}
Returns height of the cell (m\_Height member).
\membersection{wxHtmlCell::GetId}\label{wxhtmlcellgetid}
\constfunc{virtual wxString}{GetId}{\void}
Returns unique cell identifier if there is any, empty string otherwise.
\membersection{wxHtmlCell::GetLink}\label{wxhtmlcellgetlink}
\constfunc{virtual wxHtmlLinkInfo*}{GetLink}{\param{int }{x = 0}, \param{int }{y = 0}}
Returns hypertext link if associated with this cell or NULL otherwise.
See \helpref{wxHtmlLinkInfo}{wxhtmllinkinfo}.
(Note: this makes sense only for visible tags).
\wxheading{Parameters}
\docparam{x,y}{Coordinates of position where the user pressed mouse button.
These coordinates are used e.g. by COLORMAP. Values are relative to the
upper left corner of THIS cell (i.e. from 0 to m\_Width or m\_Height)}
\membersection{wxHtmlCell::GetNext}\label{wxhtmlcellgetnext}
\constfunc{wxHtmlCell*}{GetNext}{\void}
Returns pointer to the next cell in list (see htmlcell.h if you're
interested in details).
\membersection{wxHtmlCell::GetParent}\label{wxhtmlcellgetparent}
\constfunc{wxHtmlContainerCell*}{GetParent}{\void}
Returns pointer to parent container.
\membersection{wxHtmlCell::GetPosX}\label{wxhtmlcellgetposx}
\constfunc{int}{GetPosX}{\void}
Returns X position within parent (the value is relative to parent's
upper left corner). The returned value is meaningful only if
parent's \helpref{Layout}{wxhtmlcelllayout} was called before!
\membersection{wxHtmlCell::GetPosY}\label{wxhtmlcellgetposy}
\constfunc{int}{GetPosY}{\void}
Returns Y position within parent (the value is relative to parent's
upper left corner). The returned value is meaningful only if
parent's \helpref{Layout}{wxhtmlcelllayout} was called before!
\membersection{wxHtmlCell::GetWidth}\label{wxhtmlcellgetwidth}
\constfunc{int}{GetWidth}{\void}
Returns width of the cell (m\_Width member).
\membersection{wxHtmlCell::Layout}\label{wxhtmlcelllayout}
\func{virtual void}{Layout}{\param{int }{w}}
This method performs two actions:
\begin{enumerate}\itemsep=0pt
\item adjusts the cell's width according to the fact that maximal possible width is {\it w}.
(this has sense when working with horizontal lines, tables etc.)
\item prepares layout (=fill-in m\_PosX, m\_PosY (and sometimes m\_Height) members)
based on actual width {\it w}
\end{enumerate}
It must be called before displaying cells structure because
m\_PosX and m\_PosY are undefined (or invalid)
before calling Layout.
\membersection{wxHtmlCell::OnMouseClick}\label{wxhtmlcellonmouseclick}
\func{virtual void}{OnMouseClick}{\param{wxWindow* }{parent}, \param{int}{x}, \param{int }{y}, \param{const wxMouseEvent\& }{event}}
This function is simple event handler. Each time the user clicks mouse button over a cell
within \helpref{wxHtmlWindow}{wxhtmlwindow} this method of that cell is called. Default behavior is
that it calls \helpref{wxHtmlWindow::LoadPage}{wxhtmlwindowloadpage}.
\wxheading{Note}
If you need more "advanced" event handling
you should use wxHtmlBinderCell instead.
\wxheading{Parameters}
\docparam{parent}{parent window (always wxHtmlWindow!)}
\docparam{x, y}{coordinates of mouse click (this is relative to cell's origin}
\docparam{left, middle, right}{boolean flags for mouse buttons. true if the left/middle/right
button is pressed, false otherwise}
\membersection{wxHtmlCell::SetId}\label{wxhtmlcellsetid}
\func{void}{SetId}{\param{const wxString\& }{id}}
Sets unique cell identifier. Default value is no identifier, i.e. empty string.
\membersection{wxHtmlCell::SetLink}\label{wxhtmlcellsetlink}
\func{void}{SetLink}{\param{const wxHtmlLinkInfo\& }{link}}
Sets the hypertext link associated with this cell. (Default value
is \helpref{wxHtmlLinkInfo}{wxhtmllinkinfo}("", "") (no link))
\membersection{wxHtmlCell::SetNext}\label{wxhtmlcellsetnext}
\func{void}{SetNext}{\param{wxHtmlCell }{*cell}}
Sets the next cell in the list. This shouldn't be called by user - it is
to be used only by \helpref{wxHtmlContainerCell::InsertCell}{wxhtmlcontainercellinsertcell}.
\membersection{wxHtmlCell::SetParent}\label{wxhtmlcellsetparent}
\func{void}{SetParent}{\param{wxHtmlContainerCell }{*p}}
Sets parent container of this cell. This is called from
\helpref{wxHtmlContainerCell::InsertCell}{wxhtmlcontainercellinsertcell}.
\membersection{wxHtmlCell::SetPos}\label{wxhtmlcellsetpos}
\func{void}{SetPos}{\param{int }{x}, \param{int }{y}}
Sets the cell's position within parent container.

View File

@@ -1,37 +0,0 @@
%
% automatically generated by HelpGen from
% htmlcolourcell.tex at 14/Mar/99 20:13:37
%
\section{\class{wxHtmlColourCell}}\label{wxhtmlcolourcell}
This cell changes the colour of either the background or the foreground.
\wxheading{Derived from}
\helpref{wxHtmlCell}{wxhtmlcell}
\wxheading{Include files}
<wx/html/htmlcell.h>
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxHtmlColourCell::wxHtmlColourCell}\label{wxhtmlcolourcellwxhtmlcolourcell}
\func{}{wxHtmlColourCell}{\param{wxColour }{clr}, \param{int }{flags = wxHTML\_CLR\_FOREGROUND}}
Constructor.
\wxheading{Parameters}
\docparam{clr}{The color}
\docparam{flags}{Can be one of following:
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf wxHTML\_CLR\_FOREGROUND}}{change color of text}
\twocolitem{{\bf wxHTML\_CLR\_BACKGROUND}}{change background color}
\end{twocollist}
}

View File

@@ -1,250 +0,0 @@
%
% automatically generated by HelpGen from
% htmlcontainercell.tex at 21/Mar/99 22:45:23
%
\section{\class{wxHtmlContainerCell}}\label{wxhtmlcontainercell}
The wxHtmlContainerCell class is an implementation of a cell that may
contain more cells in it. It is heavily used in the wxHTML layout algorithm.
\wxheading{Derived from}
\helpref{wxHtmlCell}{wxhtmlcell}
\wxheading{Include files}
<wx/html/htmlcell.h>
\wxheading{See Also}
\helpref{Cells Overview}{cells}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxHtmlContainerCell::wxHtmlContainerCell}\label{wxhtmlcontainercellwxhtmlcontainercell}
\func{}{wxHtmlContainerCell}{\param{wxHtmlContainerCell }{*parent}}
Constructor. {\it parent} is pointer to parent container or NULL.
\membersection{wxHtmlContainerCell::GetAlignHor}\label{wxhtmlcontainercellgetalignhor}
\constfunc{int}{GetAlignHor}{\void}
Returns container's horizontal alignment.
\membersection{wxHtmlContainerCell::GetAlignVer}\label{wxhtmlcontainercellgetalignver}
\constfunc{int}{GetAlignVer}{\void}
Returns container's vertical alignment.
\membersection{wxHtmlContainerCell::GetBackgroundColour}\label{wxhtmlcontainercellgetbackgroundcolour}
\func{wxColour}{GetBackgroundColour}{\void}
Returns the background colour of the container or {\tt wxNullColour} if no background
colour is set.
\membersection{wxHtmlContainerCell::GetFirstCell}\label{wxhtmlcontainercellgetfirstcell}
\func{wxHtmlCell*}{GetFirstCell}{\void}
Returns pointer to the first cell in the list.
You can then use wxHtmlCell's GetNext method to obtain pointer to the next
cell in list.
{\bf Note:} This shouldn't be used by the end user. If you need some way of
finding particular cell in the list, try \helpref{Find}{wxhtmlcellfind} method
instead.
\membersection{wxHtmlContainerCell::GetIndent}\label{wxhtmlcontainercellgetindent}
\constfunc{int}{GetIndent}{\param{int }{ind}}
Returns the indentation. {\it ind} is one of the {\bf wxHTML\_INDENT\_*} constants.
{\bf Note:} You must call \helpref{GetIndentUnits}{wxhtmlcontainercellgetindentunits}
with same {\it ind} parameter in order to correctly interpret the returned integer value.
It is NOT always in pixels!
\membersection{wxHtmlContainerCell::GetIndentUnits}\label{wxhtmlcontainercellgetindentunits}
\constfunc{int}{GetIndentUnits}{\param{int }{ind}}
Returns the units of indentation for {\it ind} where {\it ind} is one
of the {\bf wxHTML\_INDENT\_*} constants.
\membersection{wxHtmlContainerCell::InsertCell}\label{wxhtmlcontainercellinsertcell}
\func{void}{InsertCell}{\param{wxHtmlCell }{*cell}}
Inserts new cell into the container.
\membersection{wxHtmlContainerCell::SetAlign}\label{wxhtmlcontainercellsetalign}
\func{void}{SetAlign}{\param{const wxHtmlTag\& }{tag}}
Sets the container's alignment (both horizontal and vertical) according to
the values stored in {\it tag}. (Tags {\tt ALIGN} parameter is extracted.) In fact
it is only a front-end to \helpref{SetAlignHor}{wxhtmlcontainercellsetalignhor}
and \helpref{SetAlignVer}{wxhtmlcontainercellsetalignver}.
\membersection{wxHtmlContainerCell::SetAlignHor}\label{wxhtmlcontainercellsetalignhor}
\func{void}{SetAlignHor}{\param{int }{al}}
Sets the container's {\it horizontal alignment}. During \helpref{Layout}{wxhtmlcelllayout}
each line is aligned according to {\it al} value.
\wxheading{Parameters}
\docparam{al}{new horizontal alignment. May be one of these values:
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf wxHTML\_ALIGN\_LEFT}}{lines are left-aligned (default)}
\twocolitem{{\bf wxHTML\_ALIGN\_JUSTIFY}}{lines are justified}
\twocolitem{{\bf wxHTML\_ALIGN\_CENTER}}{lines are centered}
\twocolitem{{\bf wxHTML\_ALIGN\_RIGHT}}{lines are right-aligned}
\end{twocollist}
}
\membersection{wxHtmlContainerCell::SetAlignVer}\label{wxhtmlcontainercellsetalignver}
\func{void}{SetAlignVer}{\param{int }{al}}
Sets the container's {\it vertical alignment}. This is per-line alignment!
\wxheading{Parameters}
\docparam{al}{new vertical alignment. May be one of these values:
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf wxHTML\_ALIGN\_BOTTOM}}{cells are over the line (default)}
\twocolitem{{\bf wxHTML\_ALIGN\_CENTER}}{cells are centered on line}
\twocolitem{{\bf wxHTML\_ALIGN\_TOP}}{cells are under the line}
\end{twocollist}
\helponly{\image{}{alignv.bmp}}
}
\membersection{wxHtmlContainerCell::SetBackgroundColour}\label{wxhtmlcontainercellsetbackgroundcolour}
\func{void}{SetBackgroundColour}{\param{const wxColour\& }{clr}}
Sets the background colour for this container.
\membersection{wxHtmlContainerCell::SetBorder}\label{wxhtmlcontainercellsetborder}
\func{void}{SetBorder}{\param{const wxColour\& }{clr1}, \param{const wxColour\& }{clr2}}
Sets the border (frame) colours. A border is a rectangle around the container.
\wxheading{Parameters}
\docparam{clr1}{Colour of top and left lines}
\docparam{clr2}{Colour of bottom and right lines}
\membersection{wxHtmlContainerCell::SetIndent}\label{wxhtmlcontainercellsetindent}
\func{void}{SetIndent}{\param{int }{i}, \param{int }{what}, \param{int }{units = wxHTML\_UNITS\_PIXELS}}
Sets the indentation (free space between borders of container and subcells).
\wxheading{Parameters}
\docparam{i}{Indentation value.}
\docparam{what}{Determines which of the four borders we're setting. It is OR
combination of following constants:
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf wxHTML\_INDENT\_TOP}}{top border}
\twocolitem{{\bf wxHTML\_INDENT\_BOTTOM}}{bottom}
\twocolitem{{\bf wxHTML\_INDENT\_LEFT}}{left}
\twocolitem{{\bf wxHTML\_INDENT\_RIGHT}}{right}
\twocolitem{{\bf wxHTML\_INDENT\_HORIZONTAL}}{left and right}
\twocolitem{{\bf wxHTML\_INDENT\_VERTICAL}}{top and bottom}
\twocolitem{{\bf wxHTML\_INDENT\_ALL}}{all 4 borders}
\end{twocollist}
\helponly{\image{}{indent.bmp}}
}
\docparam{units}{Units of {\it i}. This parameter affects interpretation of {\it} value.
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf wxHTML\_UNITS\_PIXELS}}{{\it i} is number of pixels}
\twocolitem{{\bf wxHTML\_UNITS\_PERCENT}}{{\it i} is interpreted as percents of width
of parent container}
\end{twocollist}
}
\membersection{wxHtmlContainerCell::SetMinHeight}\label{wxhtmlcontainercellsetminheight}
\func{void}{SetMinHeight}{\param{int }{h}, \param{int }{align = wxHTML\_ALIGN\_TOP}}
Sets minimal height of the container.
When container's \helpref{Layout}{wxhtmlcelllayout} is called, m\_Height
is set depending on layout of subcells to the height of area covered
by layed-out subcells. Calling this method guarantees you that the height
of container is never smaller than {\it h} - even if the subcells cover
much smaller area.
\wxheading{Parameters}
\docparam{h}{The minimal height.}
\docparam{align}{If height of the container is lower than the minimum height, empty space must be inserted
somewhere in order to ensure minimal height. This parameter is one of {\bf wxHTML\_ALIGN\_TOP,
wxHTML\_ALIGN\_BOTTOM, wxHTML\_ALIGN\_CENTER}. It refers to the {\it contents}, not to the
empty place.}
\membersection{wxHtmlContainerCell::SetWidthFloat}\label{wxhtmlcontainercellsetwidthfloat}
\func{void}{SetWidthFloat}{\param{int }{w}, \param{int }{units}}
\func{void}{SetWidthFloat}{\param{const wxHtmlTag\& }{tag}, \param{double }{pixel\_scale = 1.0}}
Sets floating width adjustment.
The normal behaviour of container is that its width is the same as the width of
parent container (and thus you can have only one sub-container per line).
You can change this by setting FWA.
{\it pixel\_scale} is number of real pixels that equals to 1 HTML pixel.
\wxheading{Parameters}
\docparam{w}{Width of the container. If the value is negative it means
complement to full width of parent container (e.g.
{\tt SetWidthFloat(-50, wxHTML\_UNITS\_PIXELS)} sets the width
of container to parent's width minus 50 pixels. This is useful when
creating tables - you can call SetWidthFloat(50) and SetWidthFloat(-50))}
\docparam{units}{Units of {\it w} This parameter affects the interpretation of {\it} value.
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf wxHTML\_UNITS\_PIXELS}}{{\it w} is number of pixels}
\twocolitem{{\bf wxHTML\_UNITS\_PERCENT}}{{\it w} is interpreted as percents of width
of parent container}
\end{twocollist}
}
\docparam{tag}{In the second version of method, {\it w} and {\it units}
info is extracted from tag's {\tt WIDTH} parameter.}
\pythonnote{The second form of this method is named
SetWidthFloatFromTag in wxPython.}

View File

@@ -1,111 +0,0 @@
%
% automatically generated by HelpGen from
% htmprint.h at 17/Oct/99 12:48:02
%
\section{\class{wxHtmlDCRenderer}}\label{wxhtmldcrenderer}
This class can render HTML document into a specified area of a DC. You can use it
in your own printing code, although use of \helpref{wxHtmlEasyPrinting}{wxhtmleasyprinting}
or \helpref{wxHtmlPrintout}{wxhtmlprintout} is strongly recommended.
\wxheading{Derived from}
\helpref{wxObject}{wxobject}
\wxheading{Include files}
<wx/html/htmprint.h>
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxHtmlDCRenderer::wxHtmlDCRenderer}\label{wxhtmldcrendererwxhtmldcrenderer}
\func{}{wxHtmlDCRenderer}{\void}
Constructor.
\membersection{wxHtmlDCRenderer::SetDC}\label{wxhtmldcrenderersetdc}
\func{void}{SetDC}{\param{wxDC* }{dc}, \param{double }{pixel\_scale = 1.0}}
Assign DC instance to the renderer.
{\it pixel\_scale} can be used when rendering to high-resolution DCs (e.g. printer) to adjust size of pixel metrics.
(Many dimensions in HTML are given in pixels -- e.g. image sizes. 300x300 image would be only one
inch wide on typical printer. With pixel\_scale = 3.0 it would be 3 inches.)
\membersection{wxHtmlDCRenderer::SetFonts}\label{wxhtmldcrenderersetfonts}
\func{void}{SetFonts}{\param{wxString }{normal\_face}, \param{wxString }{fixed\_face}, \param{const int }{*sizes = NULL}}
Sets fonts. See \helpref{wxHtmlWindow::SetFonts}{wxhtmlwindowsetfonts} for
detailed description.
See also \helpref{SetSize}{wxhtmldcrenderersetsize}.
\membersection{wxHtmlDCRenderer::SetSize}\label{wxhtmldcrenderersetsize}
\func{void}{SetSize}{\param{int }{width}, \param{int }{height}}
Set size of output rectangle, in pixels. Note that you {\bf can't} change
width of the rectangle between calls to \helpref{Render}{wxhtmldcrendererrender}!
(You can freely change height.)
\membersection{wxHtmlDCRenderer::SetHtmlText}\label{wxhtmldcrenderersethtmltext}
\func{void}{SetHtmlText}{\param{const wxString\& }{html}, \param{const wxString\& }{basepath = wxEmptyString}, \param{bool }{isdir = true}}
Assign text to the renderer. \helpref{Render}{wxhtmldcrendererrender} then draws
the text onto DC.
\wxheading{Parameters}
\docparam{html}{HTML text. This is {\it not} a filename.}
\docparam{basepath}{base directory (html string would be stored there if it was in
file). It is used to determine path for loading images, for example.}
\docparam{isdir}{false if basepath is filename, true if it is directory name
(see \helpref{wxFileSystem}{wxfilesystem} for detailed explanation)}
\membersection{wxHtmlDCRenderer::Render}\label{wxhtmldcrendererrender}
\func{int}{Render}{\param{int }{x}, \param{int }{y}, \param{int }{from = 0}, \param{int }{dont\_render = false}}
Renders HTML text to the DC.
\wxheading{Parameters}
\docparam{x,y}{ position of upper-left corner of printing rectangle (see \helpref{SetSize}{wxhtmldcrenderersetsize})}
\docparam{from}{y-coordinate of the very first visible cell}
\docparam{dont\_render}{if true then this method only returns y coordinate of the next page
and does not output anything}
Returned value is y coordinate of first cell than didn't fit onto page.
Use this value as {\it from} in next call to Render in order to print multipages
document.
\wxheading{Caution!}
The Following three methods {\bf must} always be called before any call to Render (preferably
in this order):
\begin{itemize}\itemsep=0pt
\item \helpref{SetDC}{wxhtmldcrenderersetdc}
\item \helpref{SetSize}{wxhtmldcrenderersetsize}
\item \helpref{SetHtmlText}{wxhtmldcrenderersethtmltext}
\end{itemize}
{\bf Render() changes the DC's user scale and does NOT restore it.}
\membersection{wxHtmlDCRenderer::GetTotalHeight}\label{wxhtmldcrenderergettotalheight}
\func{int}{GetTotalHeight}{\void}
Returns the height of the HTML text. This is important if area height (see \helpref{SetSize}{wxhtmldcrenderersetsize})
is smaller that total height and thus the page cannot fit into it. In that case you're supposed to
call \helpref{Render}{wxhtmldcrendererrender} as long as its return value is smaller than GetTotalHeight's.

View File

@@ -1,164 +0,0 @@
%
% automatically generated by HelpGen from
% htmprint.h at 17/Oct/99 12:48:02
%
\section{\class{wxHtmlEasyPrinting}}\label{wxhtmleasyprinting}
This class provides very simple interface to printing
architecture. It allows you to print HTML documents using
only a few commands.
\wxheading{Note}
Do not create this class on the stack only. You should create an instance on app
startup and use this instance for all printing operations. The reason is that
this class stores various settings in it.
\wxheading{Derived from}
\helpref{wxObject}{wxobject}
\wxheading{Include files}
<wx/html/htmprint.h>
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxHtmlEasyPrinting::wxHtmlEasyPrinting}\label{wxhtmleasyprintingwxhtmleasyprinting}
\func{}{wxHtmlEasyPrinting}{\param{const wxString\& }{name = "Printing"}, \param{wxWindow* }{parentWindow = NULL}}
Constructor.
\wxheading{Parameters}
\docparam{name}{Name of the printing object. Used by preview frames and setup dialogs.}
\docparam{parentWindow}{pointer to the window that will own the preview frame and setup dialogs. May be NULL.}
\membersection{wxHtmlEasyPrinting::PreviewFile}\label{wxhtmleasyprintingpreviewfile}
\func{bool}{PreviewFile}{\param{const wxString\& }{htmlfile}}
Preview HTML file.
Returns false in case of error -- call
\helpref{wxPrinter::GetLastError}{wxprintergetlasterror} to get detailed
information about the kind of the error.
\membersection{wxHtmlEasyPrinting::PreviewText}\label{wxhtmleasyprintingpreviewtext}
\func{bool}{PreviewText}{\param{const wxString\& }{htmltext}, \param{const wxString\& }{basepath = wxEmptyString}}
Preview HTML text (not file!).
Returns false in case of error -- call
\helpref{wxPrinter::GetLastError}{wxprintergetlasterror} to get detailed
information about the kind of the error.
\wxheading{Parameters}
\docparam{htmltext}{HTML text.}
\docparam{basepath}{base directory (html string would be stored there if it was in
file). It is used to determine path for loading images, for example.}
\membersection{wxHtmlEasyPrinting::PrintFile}\label{wxhtmleasyprintingprintfile}
\func{bool}{PrintFile}{\param{const wxString\& }{htmlfile}}
Print HTML file.
Returns false in case of error -- call
\helpref{wxPrinter::GetLastError}{wxprintergetlasterror} to get detailed
information about the kind of the error.
\membersection{wxHtmlEasyPrinting::PrintText}\label{wxhtmleasyprintingprinttext}
\func{bool}{PrintText}{\param{const wxString\& }{htmltext}, \param{const wxString\& }{basepath = wxEmptyString}}
Print HTML text (not file!).
Returns false in case of error -- call
\helpref{wxPrinter::GetLastError}{wxprintergetlasterror} to get detailed
information about the kind of the error.
\wxheading{Parameters}
\docparam{htmltext}{HTML text.}
\docparam{basepath}{base directory (html string would be stored there if it was in
file). It is used to determine path for loading images, for example.}
\membersection{wxHtmlEasyPrinting::PrinterSetup}\label{wxhtmleasyprintingprintersetup}
\func{void}{PrinterSetup}{\void}
Display printer setup dialog and allows the user to modify settings.
\membersection{wxHtmlEasyPrinting::PageSetup}\label{wxhtmleasyprintingpagesetup}
\func{void}{PageSetup}{\void}
Display page setup dialog and allows the user to modify settings.
\membersection{wxHtmlEasyPrinting::SetFonts}\label{wxhtmleasyprintingsetfonts}
\func{void}{SetFonts}{\param{wxString }{normal\_face}, \param{wxString }{fixed\_face}, \param{const int }{*sizes = NULL}}
Sets fonts. See \helpref{wxHtmlWindow::SetFonts}{wxhtmlwindowsetfonts} for
detailed description.
\membersection{wxHtmlEasyPrinting::SetHeader}\label{wxhtmleasyprintingsetheader}
\func{void}{SetHeader}{\param{const wxString\& }{header}, \param{int }{pg = wxPAGE\_ALL}}
Set page header.
\wxheading{Parameters}
\docparam{header}{HTML text to be used as header. You can use macros in it:
\begin{itemize}\itemsep=0pt
\item @PAGENUM@ is replaced by page number
\item @PAGESCNT@ is replaced by total number of pages
\end{itemize}
}
\docparam{pg}{one of wxPAGE\_ODD, wxPAGE\_EVEN and wxPAGE\_ALL constants.}
\membersection{wxHtmlEasyPrinting::SetFooter}\label{wxhtmleasyprintingsetfooter}
\func{void}{SetFooter}{\param{const wxString\& }{footer}, \param{int }{pg = wxPAGE\_ALL}}
Set page footer.
\wxheading{Parameters}
\docparam{footer}{HTML text to be used as footer. You can use macros in it:
\begin{itemize}\itemsep=0pt
\item @PAGENUM@ is replaced by page number
\item @PAGESCNT@ is replaced by total number of pages
\end{itemize}
}
\docparam{pg}{one of wxPAGE\_ODD, wxPAGE\_EVEN and wxPAGE\_ALL constants.}
\membersection{wxHtmlEasyPrinting::GetPrintData}\label{wxhtmleasyprintinggetprintdata}
\func{wxPrintData*}{GetPrintData}{\void}
Returns pointer to \helpref{wxPrintData}{wxprintdata} instance used by this class. You can
set its parameters (via SetXXXX methods).
\membersection{wxHtmlEasyPrinting::GetPageSetupData}\label{wxhtmleasyprintinggetpagesetupdata}
\func{wxPageSetupDialogData*}{GetPageSetupData}{\void}
Returns a pointer to \helpref{wxPageSetupDialogData}{wxpagesetupdialogdata} instance used by
this class. You can set its parameters (via SetXXXX methods).

View File

@@ -1,63 +0,0 @@
%
% automatically generated by HelpGen from
% htmlfilter.tex at 29/Mar/99 18:35:09
%
\section{\class{wxHtmlFilter}}\label{wxhtmlfilter}
This class is an input filter for \helpref{wxHtmlWindow}{wxhtmlwindow}.
It allows you to read and display files of different file formats.
\wxheading{Derived from}
\helpref{wxObject}{wxobject}
\wxheading{Include files}
<wx/html/htmlfilt.h>
\wxheading{See Also}
\helpref{Overview}{filters}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxHtmlFilter::wxHtmlFilter}\label{wxhtmlfilterwxhtmlfilter}
\func{}{wxHtmlFilter}{\void}
Constructor.
\membersection{wxHtmlFilter::CanRead}\label{wxhtmlfiltercanread}
\func{bool}{CanRead}{\param{const wxFSFile\& }{file}}
Returns true if this filter is capable of reading file {\it file}.
Example:
\begin{verbatim}
bool MyFilter::CanRead(const wxFSFile& file)
{
return (file.GetMimeType() == "application/x-ugh");
}
\end{verbatim}
\membersection{wxHtmlFilter::ReadFile}\label{wxhtmlfilterreadfile}
\func{wxString}{ReadFile}{\param{const wxFSFile\& }{file}}
Reads the file and returns string with HTML document.
Example:
\begin{verbatim}
wxString MyImgFilter::ReadFile(const wxFSFile& file)
{
return "<html><body><img src=\"" +
file.GetLocation() +
"\"></body></html>";
}
\end{verbatim}

View File

@@ -1,221 +0,0 @@
%
% automatically generated by HelpGen from
% htmlhelp.h at 02/May/99 19:58:53
%
\section{\class{wxHtmlHelpController}}\label{wxhtmlhelpcontroller}
{\bf WARNING!} Although this class has an API compatible with other wxWindows
help controllers as documented by \helpref{wxHelpController}{wxhelpcontroller}, it
is recommended that you use the enhanced capabilities of wxHtmlHelpController's API.
This help controller provides an easy way of displaying HTML help in your
application (see {\it test} sample). The help system is based on {\bf books}
(see \helpref{AddBook}{wxhtmlhelpcontrolleraddbook}). A book is a logical
section of documentation (for example "User's Guide" or "Programmer's Guide" or
"C++ Reference" or "wxWindows Reference"). The help controller can handle as
many books as you want.
wxHTML uses Microsoft's HTML Help Workshop project files (.hhp, .hhk, .hhc) as its
native format. The file format is described \helpref{here}{helpformat}.
Have a look at docs/html/ directory where sample project files are stored.
You can use Tex2RTF to produce these files when generating HTML, if you set {\bf htmlWorkshopFiles} to {\bf true} in
your tex2rtf.ini file.
\wxheading{Note}
It is strongly recommended to use preprocessed {\bf .hhp.cached} version of
projects. It can be either created on-the-fly (see
\helpref{SetTempDir}{wxhtmlhelpcontrollersettempdir}) or you can use
{\bf hhp2cached} utility from {\it utils/hhp2cached} to create it and
distribute the cached version together with helpfiles. See {\it samples/html/help}
sample for demonstration of its use.
\wxheading{See also}
\helpref{Information about wxBestHelpController}{wxhelpcontroller}
\wxheading{Derived from}
wxHelpControllerBase
\wxheading{Include files}
<wx/html/helpctrl.h>
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxHtmlHelpController::wxHtmlHelpController}\label{wxhtmlhelpcontrollerwxhtmlhelpcontroller}
\func{}{wxHtmlHelpController}{\param{int }{style = wxHF\_DEFAULT\_STYLE}}
Constructor.
\wxheading{Parameters}
{\it style} is combination of these flags:
\begin{twocollist}\itemsep=0pt
\twocolitem{\windowstyle{wxHF\_TOOLBAR}}{Help frame has toolbar.}
\twocolitem{\windowstyle{wxHF\_FLAT\_TOOLBAR}}{Help frame has toolbar with flat buttons (aka coolbar).}
\twocolitem{\windowstyle{wxHF\_CONTENTS}}{Help frame has contents panel.}
\twocolitem{\windowstyle{wxHF\_INDEX}}{Help frame has index panel.}
\twocolitem{\windowstyle{wxHF\_SEARCH}}{Help frame has search panel.}
\twocolitem{\windowstyle{wxHF\_BOOKMARKS}}{Help frame has bookmarks controls.}
\twocolitem{\windowstyle{wxHF\_OPEN\_FILES}}{Allow user to open arbitrary HTML document.}
\twocolitem{\windowstyle{wxHF\_PRINT}}{Toolbar contains "print" button.}
\twocolitem{\windowstyle{wxHF\_MERGE\_BOOKS}}{Contents pane does not show
book nodes. All books are merged together and appear as single book to the
user.}
\twocolitem{\windowstyle{wxHF\_ICONS\_BOOK}}{All nodes in contents pane
have a book icon. This is how Microsoft's HTML help viewer behaves.}
\twocolitem{\windowstyle{wxHF\_ICONS\_FOLDER}}{Book nodes in contents pane have
a book icon, book's sections have a folder icon. This is the default.}
\twocolitem{\windowstyle{wxHF\_ICONS\_BOOK\_CHAPTER}}{Both book nodes and
nodes of top-level sections of a book (i.e. chapters) have a book icon,
all other sections (sections, subsections, ...) have a folder icon.}
\twocolitem{\windowstyle{wxHF\_DEFAULT\_STYLE}}{{\tt wxHF\_TOOLBAR | wxHF\_CONTENTS
| wxHF\_INDEX | wxHF\_SEARCH | wxHF\_BOOKMARKS | wxHF\_PRINT}}
\end{twocollist}
\membersection{wxHtmlHelpController::AddBook}\label{wxhtmlhelpcontrolleraddbook}
\func{bool}{AddBook}{\param{const wxFileName\& }{book\_file}, \param{bool }{show\_wait\_msg}}
\func{bool}{AddBook}{\param{const wxString\& }{book\_url}, \param{bool }{show\_wait\_msg}}
Adds book (\helpref{.hhp file}{helpformat} - HTML Help Workshop project file) into the list of loaded books.
This must be called at least once before displaying any help.
{\it book\_file} or {\it book\_url} may be either .hhp file or ZIP archive
that contains arbitrary number of .hhp files in
top-level directory. This ZIP archive must have .zip or .htb extension
(the latter stands for "HTML book"). In other words,
{\tt AddBook(wxFileName("help.zip"))}
is possible and, in fact, recommended way.
\wxheading{Parameters}
\docparam{show\_wait\_msg}{If true then a decoration-less window with progress message is displayed.}
\docparam{book\_file}{Help book filename. It is recommended to use this prototype
instead of the one taking URL, because it is less error-prone.}
\docparam{book\_url}{Help book URL (note that syntax of filename and URL is
different on most platforms)}
\wxheading{Note}
Don't forget to install wxFileSystem ZIP handler with
{\tt wxFileSystem::AddHandler(new wxZipFSHandler);} before calling this method
on a .zip or .htb file!
\membersection{wxHtmlHelpController::CreateHelpFrame}\label{wxhtmlhelpcontrollercreatehelpframe}
\func{virtual wxHtmlHelpFrame*}{CreateHelpFrame}{\param{wxHtmlHelpData * }{data}}
This protected virtual method may be overridden so that the controller
uses slightly different frame. See {\it samples/html/helpview} sample for
an example.
\membersection{wxHtmlHelpController::Display}\label{wxhtmlhelpcontrollerdisplay}
\func{void}{Display}{\param{const wxString\& }{x}}
Displays page {\it x}. This is THE important function - it is used to display
the help in application.
You can specify the page in many ways:
\begin{itemize}\itemsep=0pt
\item as direct filename of HTML document
\item as chapter name (from contents) or as a book name
\item as some word from index
\item even as any word (will be searched)
\end{itemize}
Looking for the page runs in these steps:
\begin{enumerate}\itemsep=0pt
\item try to locate file named x (if x is for example "doc/howto.htm")
\item try to open starting page of book named x
\item try to find x in contents (if x is for example "How To ...")
\item try to find x in index (if x is for example "How To ...")
\item switch to Search panel and start searching
\end{enumerate}
\func{void}{Display}{\param{const int }{id}}
This alternative form is used to search help contents by numeric IDs.
\pythonnote{The second form of this method is named DisplayId in
wxPython.}
\membersection{wxHtmlHelpController::DisplayContents}\label{wxhtmlhelpcontrollerdisplaycontents}
\func{void}{DisplayContents}{\void}
Displays help window and focuses contents panel.
\membersection{wxHtmlHelpController::DisplayIndex}\label{wxhtmlhelpcontrollerdisplayindex}
\func{void}{DisplayIndex}{\void}
Displays help window and focuses index panel.
\membersection{wxHtmlHelpController::KeywordSearch}\label{wxhtmlhelpcontrollerkeywordsearch}
\func{bool}{KeywordSearch}{\param{const wxString\& }{keyword}}
Displays help window, focuses search panel and starts searching.
Returns true if the keyword was found.
{\bf Important:} KeywordSearch searches only pages listed in .hhc file(s).
You should list all pages in the contents file.
\membersection{wxHtmlHelpController::ReadCustomization}\label{wxhtmlhelpcontrollerreadcustomization}
\func{void}{ReadCustomization}{\param{wxConfigBase* }{cfg}, \param{wxString }{path = wxEmptyString}}
Reads the controller's setting (position of window, etc.)
\membersection{wxHtmlHelpController::SetTempDir}\label{wxhtmlhelpcontrollersettempdir}
\func{void}{SetTempDir}{\param{const wxString\& }{path}}
Sets the path for storing temporary files - cached binary versions of index and contents files. These binary
forms are much faster to read. Default value is empty string (empty string means
that no cached data are stored). Note that these files are {\it not}
deleted when program exits.
Once created these cached files will be used in all subsequent executions
of your application. If cached files become older than corresponding .hhp
file (e.g. if you regenerate documentation) it will be refreshed.
\membersection{wxHtmlHelpController::SetTitleFormat}\label{wxhtmlhelpcontrollersettitleformat}
\func{void}{SetTitleFormat}{\param{const wxString\& }{format}}
Sets format of title of the frame. Must contain exactly one "\%s"
(for title of displayed HTML page).
\membersection{wxHtmlHelpController::UseConfig}\label{wxhtmlhelpcontrolleruseconfig}
\func{void}{UseConfig}{\param{wxConfigBase* }{config}, \param{const wxString\& }{rootpath = wxEmptyString}}
Associates {\it config} object with the controller.
If there is associated config object, wxHtmlHelpController automatically
reads and writes settings (including wxHtmlWindow's settings) when needed.
The only thing you must do is create wxConfig object and call UseConfig.
If you do not use {\it UseConfig}, wxHtmlHelpController will use
default wxConfig object if available (for details see
\helpref{wxConfigBase::Get}{wxconfigbaseget} and
\helpref{wxConfigBase::Set}{wxconfigbaseset}).
\membersection{wxHtmlHelpController::WriteCustomization}\label{wxhtmlhelpcontrollerwritecustomization}
\func{void}{WriteCustomization}{\param{wxConfigBase* }{cfg}, \param{wxString }{path = wxEmptyString}}
Stores controllers setting (position of window etc.)

View File

@@ -1,87 +0,0 @@
%
% automatically generated by HelpGen from
% helpdata.h at 24/Oct/99 18:03:10
%
\section{\class{wxHtmlHelpData}}\label{wxhtmlhelpdata}
This class is used by \helpref{wxHtmlHelpController}{wxhtmlhelpcontroller}
and \helpref{wxHtmlHelpFrame}{wxhtmlhelpframe} to access HTML help items.
It is internal class and should not be used directly - except for the case
you're writing your own HTML help controller.
\wxheading{Derived from}
\helpref{wxObject}{wxobject}
\wxheading{Include files}
<wx/html/helpdata.h>
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxHtmlHelpData::wxHtmlHelpData}\label{wxhtmlhelpdatawxhtmlhelpdata}
\func{}{wxHtmlHelpData}{\void}
Constructor.
\membersection{wxHtmlHelpData::AddBook}\label{wxhtmlhelpdataaddbook}
\func{bool}{AddBook}{\param{const wxString\& }{book\_url}}
Adds new book. {\it book} is URL (not filename!) of HTML help project (hhp)
or ZIP file that contains arbitrary number of .hhp projects (this zip
file can have either .zip or .htb extension, htb stands for "html book").
Returns success.
\membersection{wxHtmlHelpData::FindPageById}\label{wxhtmlhelpdatafindpagebyid}
\func{wxString}{FindPageById}{\param{int }{id}}
Returns page's URL based on integer ID stored in project.
\membersection{wxHtmlHelpData::FindPageByName}\label{wxhtmlhelpdatafindpagebyname}
\func{wxString}{FindPageByName}{\param{const wxString\& }{page}}
Returns page's URL based on its (file)name.
\membersection{wxHtmlHelpData::GetBookRecArray}\label{wxhtmlhelpdatagetbookrecarray}
\func{const wxHtmlBookRecArray\&}{GetBookRecArray}{\void}
Returns array with help books info.
\membersection{wxHtmlHelpData::GetContents}\label{wxhtmlhelpdatagetcontents}
\func{wxHtmlContentsItem*}{GetContents}{\void}
Returns contents lists pointer.
\membersection{wxHtmlHelpData::GetContentsCnt}\label{wxhtmlhelpdatagetcontentscnt}
\func{int}{GetContentsCnt}{\void}
Returns size of contents list.
\membersection{wxHtmlHelpData::GetIndex}\label{wxhtmlhelpdatagetindex}
\func{wxHtmlContentsItem*}{GetIndex}{\void}
Returns pointer to index items list.
\membersection{wxHtmlHelpData::GetIndexCnt}\label{wxhtmlhelpdatagetindexcnt}
\func{int}{GetIndexCnt}{\void}
Returns size of index list.
\membersection{wxHtmlHelpData::SetTempDir}\label{wxhtmlhelpdatasettempdir}
\func{void}{SetTempDir}{\param{const wxString\& }{path}}
Sets temporary directory where binary cached versions of MS HTML Workshop
files will be stored. (This is turned off by default and you can enable
this feature by setting non-empty temp dir.)

View File

@@ -1,170 +0,0 @@
%
% automatically generated by HelpGen from
% helpfrm.h at 24/Oct/99 18:03:10
%
\section{\class{wxHtmlHelpFrame}}\label{wxhtmlhelpframe}
This class is used by \helpref{wxHtmlHelpController}{wxhtmlhelpcontroller}
to display help.
It is an internal class and should not be used directly - except for the case
when you're writing your own HTML help controller.
\wxheading{Derived from}
\helpref{wxFrame}{wxframe}
\wxheading{Include files}
<wx/html/helpfrm.h>
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxHtmlHelpFrame::wxHtmlHelpFrame}\label{wxhtmlhelpframewxhtmlhelpframe}
\func{}{wxHtmlHelpFrame}{\param{wxHtmlHelpData* }{data = NULL}}
\func{}{wxHtmlHelpFrame}{\param{wxWindow* }{parent}, \param{int }{wxWindowID}, \param{const wxString\& }{title = wxEmptyString}, \param{int }{style = wxHF\_DEFAULT\_STYLE}, \param{wxHtmlHelpData* }{data = NULL}}
Constructor.
{\it style} is combination of these flags:
\begin{twocollist}\itemsep=0pt
\twocolitem{\windowstyle{wxHF\_TOOLBAR}}{Help frame has toolbar.}
\twocolitem{\windowstyle{wxHF\_FLAT\_TOOLBAR}}{Help frame has toolbar with flat buttons (aka coolbar).}
\twocolitem{\windowstyle{wxHF\_CONTENTS}}{Help frame has contents panel.}
\twocolitem{\windowstyle{wxHF\_INDEX}}{Help frame has index panel.}
\twocolitem{\windowstyle{wxHF\_SEARCH}}{Help frame has search panel.}
\twocolitem{\windowstyle{wxHF\_BOOKMARKS}}{Help frame has bookmarks controls.}
\twocolitem{\windowstyle{wxHF\_OPEN\_FILES}}{Allow user to open arbitrary HTML document.}
\twocolitem{\windowstyle{wxHF\_PRINT}}{Toolbar contains "print" button.}
\twocolitem{\windowstyle{wxHF\_MERGE\_BOOKS}}{Contents pane does not show
book nodes. All books are merged together and appear as single book to the
user.}
\twocolitem{\windowstyle{wxHF\_ICONS\_BOOK}}{All nodes in contents pane
have a book icon. This is how Microsoft's HTML help viewer behaves.}
\twocolitem{\windowstyle{wxHF\_ICONS\_FOLDER}}{Book nodes in contents pane have
a book icon, book's sections have a folder icon. This is the default.}
\twocolitem{\windowstyle{wxHF\_ICONS\_BOOK\_CHAPTER}}{Both book nodes and
nodes of top-level sections of a book (i.e. chapters) have a book icon,
all other sections (sections, subsections, ...) have a folder icon.}
\twocolitem{\windowstyle{wxHF\_DEFAULT\_STYLE}}{{\tt wxHF\_TOOLBAR | wxHF\_CONTENTS
| wxHF\_INDEX | wxHF\_SEARCH | wxHF\_BOOKMARKS | wxHF\_PRINT}}
\end{twocollist}
\membersection{wxHtmlHelpFrame::Create}\label{wxhtmlhelpframecreate}
\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{const wxString\& }{title = wxEmptyString}, \param{int }{style = wxHF\_DEFAULT\_STYLE}}
Creates the frame. See \helpref{the constructor}{wxhtmlhelpframewxhtmlhelpframe}
for parameters description.
\membersection{wxHtmlHelpFrame::CreateContents}\label{wxhtmlhelpframecreatecontents}
\func{void}{CreateContents}{\param{bool }{show\_progress = false}}
Creates contents panel. (May take some time.)
\membersection{wxHtmlHelpFrame::CreateIndex}\label{wxhtmlhelpframecreateindex}
\func{void}{CreateIndex}{\param{bool }{show\_progress = false}}
Creates index panel. (May take some time.)
\membersection{wxHtmlHelpFrame::CreateSearch}\label{wxhtmlhelpframecreatesearch}
\func{void}{CreateSearch}{\void}
Creates search panel.
\membersection{wxHtmlHelpFrame::Display}\label{wxhtmlhelpframedisplay}
\func{bool}{Display}{\param{const wxString\& }{x}}
\func{bool}{Display}{\param{const int }{id}}
Displays page x. If not found it will give the user the choice of
searching books.
Looking for the page runs in these steps:
\begin{enumerate}\itemsep=0pt
\item try to locate file named x (if x is for example "doc/howto.htm")
\item try to open starting page of book x
\item try to find x in contents (if x is for example "How To ...")
\item try to find x in index (if x is for example "How To ...")
\end{enumerate}
The second form takes numeric ID as the parameter.
(uses extension to MS format, <param name="ID" value=id>)
\pythonnote{The second form of this method is named DisplayId in
wxPython.}
\membersection{wxHtmlHelpFrame::DisplayContents}\label{wxhtmlhelpframedisplaycontents}
\func{bool}{DisplayContents}{\void}
Displays contents panel.
\membersection{wxHtmlHelpFrame::DisplayIndex}\label{wxhtmlhelpframedisplayindex}
\func{bool}{DisplayIndex}{\void}
Displays index panel.
\membersection{wxHtmlHelpFrame::GetData}\label{wxhtmlhelpframegetdata}
\func{wxHtmlHelpData*}{GetData}{\void}
Return wxHtmlHelpData object.
\membersection{wxHtmlHelpFrame::KeywordSearch}\label{wxhtmlhelpframekeywordsearch}
\func{bool}{KeywordSearch}{\param{const wxString\& }{keyword}}
Search for given keyword.
\membersection{wxHtmlHelpFrame::ReadCustomization}\label{wxhtmlhelpframereadcustomization}
\func{void}{ReadCustomization}{\param{wxConfigBase* }{cfg}, \param{const wxString\& }{path = wxEmptyString}}
Reads user's settings for this frame (see \helpref{wxHtmlHelpController::ReadCustomization}{wxhtmlhelpcontrollerreadcustomization})
\membersection{wxHtmlHelpFrame::RefreshLists}\label{wxhtmlhelpframerefreshlists}
\func{void}{RefreshLists}{\param{bool }{show\_progress = false}}
Refresh all panels. This is necessary if a new book was added.
\membersection{wxHtmlHelpFrame::SetTitleFormat}\label{wxhtmlhelpframesettitleformat}
\func{void}{SetTitleFormat}{\param{const wxString\& }{format}}
Sets the frame's title format. {\it format} must contain exactly one "\%s"
(it will be replaced by the page title).
\membersection{wxHtmlHelpFrame::UseConfig}\label{wxhtmlhelpframeuseconfig}
\func{void}{UseConfig}{\param{wxConfigBase* }{config}, \param{const wxString\& }{rootpath = wxEmptyString}}
Add books to search choice panel.
\membersection{wxHtmlHelpFrame::WriteCustomization}\label{wxhtmlhelpframewritecustomization}
\func{void}{WriteCustomization}{\param{wxConfigBase* }{cfg}, \param{const wxString\& }{path = wxEmptyString}}
Saves user's settings for this frame (see \helpref{wxHtmlHelpController::WriteCustomization}{wxhtmlhelpcontrollerwritecustomization}).
\membersection{wxHtmlHelpFrame::AddToolbarButtons}\label{wxhtmlhelpframeaddtoolbarbuttons}
\func{virtual void}{AddToolbarButtons}{\param{wxToolBar *}{toolBar}, \param{int }{style}}
You may override this virtual method to add more buttons into help frame's
toolbar. {\it toolBar} is a pointer to the toolbar and {\it style} is the style
flag as passed to Create method.
wxToolBar::Realize is called immediately after returning from this function.
See {\it samples/html/helpview} for an example.

View File

@@ -1,59 +0,0 @@
\section{\class{wxHtmlLinkInfo}}\label{wxhtmllinkinfo}
This class stores all necessary information about hypertext
links (as represented by {\tt <A>} tag in HTML documents). In
current implementation it stores URL and target frame name.
{\it Note that frames are not currently supported by wxHTML!}
\wxheading{Derived from}
\helpref{wxObject}{wxobject}
\wxheading{Include files}
<wx/html/htmlcell.h>
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxHtmlLinkInfo::wxHtmlLinkInfo}\label{wxhtmllinkinfowxhtmllinkinfo}
\func{}{wxHtmlLinkInfo}{\void}
Default ctor.
\func{}{wxHtmlLinkInfo}{\param{const wxString\& }{href}, \param{const wxString\& }{target = wxEmptyString}}
Construct hypertext link from HREF (aka URL) and TARGET (name of target
frame).
\membersection{wxHtmlLinkInfo::GetEvent}\label{wxhtmllinkinfogetevent}
\func{const wxMouseEvent *}{GetEvent}{\void}
Return pointer to event that generated OnLinkClicked event. Valid
only within \helpref{wxHtmlWindow::OnLinkClicked}{wxhtmlwindowonlinkclicked},
NULL otherwise.
\membersection{wxHtmlLinkInfo::GetHtmlCell}\label{wxhtmllinkinfogethtmlcell}
\func{const wxHtmlCell *}{GetHtmlCell}{\void}
Return pointer to the cell that was clicked. Valid
only within \helpref{wxHtmlWindow::OnLinkClicked}{wxhtmlwindowonlinkclicked},
NULL otherwise.
\membersection{wxHtmlLinkInfo::GetHref}\label{wxhtmllinkinfogethref}
\func{wxString}{GetHref}{\void}
Return {\it HREF} value of the {\tt <A>} tag.
\membersection{wxHtmlLinkInfo::GetTarget}\label{wxhtmllinkinfogettarget}
\func{wxString}{GetTarget}{\void}
Return {\it TARGET} value of the {\tt <A>} tag (this value
is used to specify in which frame should be the page pointed
by \helpref{Href}{wxhtmllinkinfogethref} opened).

View File

@@ -1,82 +0,0 @@
\subsection{Cells and Containers}\label{cells}
This article describes mechanism used by
\helpref{wxHtmlWinParser}{wxhtmlwinparser} and
\helpref{wxHtmlWindow}{wxhtmlwindow} to parse and display HTML documents.
\wxheading{Cells}
You can divide any text (or HTML) into small fragments. Let's call these
fragments {\bf cells}. Cell is for example one word, horizontal line, image
or any other part of document. Each cell has width and height (except special
"magic" cells with zero dimensions - e.g. colour changers or font changers).
See \helpref{wxHtmlCell}{wxhtmlcell}.
\wxheading{Containers}
Container is kind of cell that may contain sub-cells. Its size depends
on number and sizes of its sub-cells (and also depends on width of window).
See \helpref{wxHtmlContainerCell}{wxhtmlcontainercell},
\helpref{wxHtmlCell::Layout}{wxhtmlcelllayout}.
\begin{comment}
% Bitmap is corrupt!
This image shows you cells and containers:
\helponly{\image{}{contbox.bmp}}
\end{comment}
\wxheading{Using Containers in Tag Handler}
\helpref{wxHtmlWinParser}{wxhtmlwinparser} provides a user-friendly way
of managing containers. It is based on the idea of opening and closing containers.
Use \helpref{OpenContainer}{wxhtmlwinparseropencontainer} to open new
a container {\it within an already opened container}. This new container is a
{\it sub-container} of the old one. (If you want to create a new container with
the same depth level you can call {\tt CloseContainer(); OpenContainer();}.)
Use \helpref{CloseContainer}{wxhtmlwinparserclosecontainer} to close the
container. This doesn't create a new container with same depth level but
it returns "control" to the parent container.
\begin{comment}
% Bitmap corrupt!
See explanation:
\helponly{\image{}{cont.bmp}}
\end{comment}
It is clear there must be same number of calls to
OpenContainer as to CloseContainer...
\wxheading{Example}
This code creates a new paragraph (container at same depth level)
with "Hello, world!":
\begin{verbatim}
m_WParser -> CloseContainer();
c = m_WParser -> OpenContainer();
m_WParser -> AddWord("Hello, ");
m_WParser -> AddWord("world!");
m_WParser -> CloseContainer();
m_WParser -> OpenContainer();
\end{verbatim}
\begin{comment}
% Bitmap corrupt!
and here is image of the situation:
\helponly{\image{}{hello.bmp}}
\end{comment}
You can see that there was opened container before running the code. We closed
it, created our own container, then closed our container and opened
new container. The result was that we had {\it same depth level} after
executing. This is general rule that should be followed by tag handlers:
leave depth level of containers unmodified (in other words, number of
OpenContainer and CloseContainer calls should be same within \helpref{HandleTag}{wxhtmltaghandlerhandletag}'s body).

View File

@@ -1,10 +0,0 @@
\subsection{Input Filters}\label{filters}
The wxHTML library provides a mechanism for reading and displaying
files of many different file formats.
\helpref{wxHtmlWindow::LoadPage}{wxhtmlwindowloadpage} can load not
only HTML files but any known file. To make a file type known to wxHtmlWindow
you must create a \helpref{wxHtmlFilter}{wxhtmlfilter} filter and
register it using \helpref{wxHtmlWindow::AddFilter}{wxhtmlwindowaddfilter}.

View File

@@ -1,146 +0,0 @@
\subsection{Tag Handlers}\label{handlers}
The wxHTML library provides architecture of pluggable {\it tag handlers}.
Tag handler is class that understands particular HTML tag (or tags) and is
able to interpret it.
\helpref{wxHtmlWinParser}{wxhtmlwinparser} has static table of {\bf modules}.
Each module contains one or more tag handlers. Each time a new wxHtmlWinParser
object is constructed all modules are scanned and handlers are added
to wxHtmlParser's list of available handlers (note: wxHtmlParser's list
is non-static).
\wxheading{How it works}
Common tag handler's \helpref{HandleTag}{wxhtmltaghandlerhandletag} method
works in four steps:
\begin{enumerate}\itemsep=0pt
\item Save state of parent parser into local variables
\item Change parser state according to tag's params
\item Parse text between the tag and paired ending tag (if present)
\item Restore original parser state
\end{enumerate}
See \helpref{wxHtmlWinParser}{wxhtmlwinparser} for methods for modifying
parser's state. In general you can do things like opening/closing containers,
changing colors, fonts etc.
\wxheading{Providing own tag handlers}
You should create new .cpp file and place following lines into it:
\begin{verbatim}
#include <mod_templ.h>
#include <forcelink.h>
FORCE_LINK_ME(yourmodulefilenamewithoutcpp)
\end{verbatim}
Then you must define handlers and one module.
\wxheading{Tag handlers}
The handler is derived from \helpref{wxHtmlWinTagHandler}{wxhtmlwintaghandler}
(or directly from \helpref{wxHtmlTagHandler}{wxhtmltaghandler})
You can use set of macros to define the handler (see src/html/m\_*.cpp files
for details). Handler definition must start with {\bf TAG\_HANDLER\_BEGIN} macro
and end with {\bf TAG\_HANDLER\_END} macro. I strongly recommend to have a look
at {\it include/wxhtml/mod\_templ.h} file. Otherwise you won't understand
the structure of macros. See macros reference:
{\bf TAG\_HANDLER\_BEGIN}({\it name}, {\it tags})
Starts handler definition. {\it name} is handler identifier (in fact
part of class name), {\it tags} is string containing list of tags
supported by this handler (in uppercase). This macro derives new class from
wxHtmlWinTagHandler and implements it is
\helpref{GetSupportedTags}{wxhtmltaghandlergetsupportedtags} method.
Example: TAG\_HANDLER\_BEGIN(FONTS, "B,I,U,T")
{\bf TAG\_HANDLER\_VARS}
This macro starts block of variables definitions. (Variables are identical
to class attributes.) Example:
\begin{verbatim}
TAG_HANDLER_BEGIN(VARS_ONLY, "CRAZYTAG")
TAG_HANDLER_VARS
int my_int_var;
wxString something_else;
TAG_HANDLER_END(VARS_ONLY)
\end{verbatim}
This macro is used only in rare cases.
{\bf TAG\_HANDLER\_CONSTR}({\it name})
This macro supplies object constructor. {\it name} is same name as the one
from TAG\_HANDLER\_BEGIN macro. Body of constructor follow after
this macro (you must use { and } ). Example:
\begin{verbatim}
TAG_HANDLER_BEGIN(VARS2, "CRAZYTAG")
TAG_HANDLER_VARS
int my_int_var;
TAG_HANDLER_CONSTR(vars2)
{ // !!!!!!
my_int_var = 666;
} // !!!!!!
TAG_HANDLER_END(VARS2)
\end{verbatim}
Never used in wxHTML :-)
{\bf TAG\_HANDLER\_PROC}({\it varib})
This is very important macro. It defines \helpref{HandleTag}{wxhtmltaghandlerhandletag}
method. {\it varib} is name of parameter passed to the method, usually
{\it tag}. Body of method follows after this macro.
Note than you must use { and } ! Example:
\begin{verbatim}
TAG_HANDLER_BEGIN(TITLE, "TITLE")
TAG_HANDLER_PROC(tag)
{
printf("TITLE found...\n");
}
TAG_HANDLER_END(TITLE)
\end{verbatim}
{\bf TAG\_HANDLER\_END}({\it name})
Ends definition of tag handler {\it name}.
\wxheading{Tags Modules}
You can use set of 3 macros TAGS\_MODULE\_BEGIN, TAGS\_MODULE\_ADD and
TAGS\_MODULE\_END to inherit new module from
\helpref{wxHtmlTagsModule}{wxhtmltagsmodule} and to create instance of it.
See macros reference:
{\bf TAGS\_MODULE\_BEGIN}({\it modname})
Begins module definition. {\it modname} is part of class name and must
be unique.
{\bf TAGS\_MODULE\_ADD}({\it name})
Adds the handler to this module. {\it name} is the identifier from
TAG\_HANDLER\_BEGIN.
{\bf TAGS\_MODULE\_END}({\it modname})
Ends the definition of module.
{\bf Example:}
\begin{verbatim}
TAGS_MODULE_BEGIN(Examples)
TAGS_MODULE_ADD(VARS_ONLY)
TAGS_MODULE_ADD(VARS2)
TAGS_MODULE_ADD(TITLE)
TAGS_MODULE_END(Examples)
\end{verbatim}

View File

@@ -1,96 +0,0 @@
\subsection{Help Files Format}\label{helpformat}
wxHTML library uses a reduced version of MS HTML Workshop format.
Tex2RTF can produce these files when generating HTML, if you set {\bf htmlWorkshopFiles} to {\bf true} in
your tex2rtf.ini file.
(See \helpref{wxHtmlHelpController}{wxhtmlhelpcontroller} for help controller description.)
A {\bf book} consists of three files: header file, contents file and index file.
You can make a regular zip archive of these files, plus the HTML and any image files,
for wxHTML (or helpview) to read; and the .zip file can optionally be renamed to .htb.
\wxheading{Header file (.hhp)}
Header file must contain these lines (and may contain additional lines which are ignored) :
\begin{verbatim}
Contents file=<filename.hhc>
Index file=<filename.hhk>
Title=<title of your book>
Default topic=<default page to be displayed.htm>
\end{verbatim}
All filenames (including the Default topic) are relative to the
location of .hhp file.
{\bf Localization note:} In addition, .hhp file may contain line
\begin{verbatim}
Charset=<rfc_charset>
\end{verbatim}
which specifies what charset (e.g. "iso8859\_1") was used in contents
and index files. Please note that this line is incompatible with
MS HTML Help Workshop and it would either silently remove it or complain
with some error. See also
\helpref{Writing non-English applications}{nonenglishoverview}.
\wxheading{Contents file (.hhc)}
Contents file has HTML syntax and it can be parsed by regular HTML parser. It contains exactly one list
({\tt <ul>}....{\tt </ul>} statement):
\begin{verbatim}
<ul>
<li> <object type="text/sitemap">
<param name="Name" value="@topic name@">
<param name="ID" value=@numeric_id@>
<param name="Local" value="@filename.htm@">
</object>
<li> <object type="text/sitemap">
<param name="Name" value="@topic name@">
<param name="ID" value=@numeric_id@>
<param name="Local" value="@filename.htm@">
</object>
...
</ul>
\end{verbatim}
You can modify value attributes of param tags. {\it topic name} is name of chapter/topic as is displayed in
contents, {\it filename.htm} is HTML page name (relative to .hhp file) and {\it numeric\_id} is optional
- it is used only when you use \helpref{wxHtmlHelpController::Display(int)}{wxhtmlhelpcontrollerdisplay}
Items in the list may be nested - one {\tt <li>} statement may contain a {\tt <ul>} sub-statement:
\begin{verbatim}
<ul>
<li> <object type="text/sitemap">
<param name="Name" value="Top node">
<param name="Local" value="top.htm">
</object>
<ul>
<li> <object type="text/sitemap">
<param name="Name" value="subnode in topnode">
<param name="Local" value="subnode1.htm">
</object>
...
</ul>
<li> <object type="text/sitemap">
<param name="Name" value="Another Top">
<param name="Local" value="top2.htm">
</object>
...
</ul>
\end{verbatim}
\wxheading{Index file (.hhk)}
Index files have same format as contents file except that ID params are ignored and sublists are {\bf not}
allowed.

View File

@@ -1,82 +0,0 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Name: htmllbox.tex
%% Purpose: wxHtmlListBox documentation
%% Author: Vadim Zeitlin
%% Modified by:
%% Created: 01.06.03
%% RCS-ID: $Id$
%% Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwindows.org>
%% License: wxWindows license
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{\class{wxHtmlListBox}}\label{wxhtmllistbox}
wxHtmlListBox is an implementation of \helpref{wxVListBox}{wxvlistbox} which
shows HTML content in the listbox rows. This is still an abstract base class
and you will need to derive your own class from it (see htlbox sample for the
example) but you will only need to override a single
\helpref{OnGetItem()}{wxhtmllistboxongetitem} function.
\wxheading{Derived from}
\helpref{wxVListBox}{wxvlistbox}
\wxheading{Include files}
<wx/htmllbox.h>
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxHtmlListBox::wxHtmlListBox}\label{wxhtmllistboxwxhtmllistbox}
\func{}{wxHtmlListBox}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{size\_t }{countItems = 0}, \param{long }{style = 0}, \param{const wxString\& }{name = wxVListBoxNameStr}}
Normal constructor which calls \helpref{Create()}{wxhtmllistboxcreate}
internally.
\func{}{wxHtmlListBox}{\void}
Default constructor, you must call \helpref{Create()}{wxhtmllistboxcreate}
later.
\membersection{wxHtmlListBox::\destruct{wxHtmlListBox}}\label{wxhtmllistboxdtor}
\func{}{\destruct{wxHtmlListBox}}{\void}
Destructor cleans up whatever resources we use.
\membersection{wxHtmlListBox::Create}\label{wxhtmllistboxcreate}
\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{size\_t }{countItems = 0}, \param{long }{style = 0}, \param{const wxString\& }{name = wxVListBoxNameStr}}
Creates the control and optionally sets the initial number of items in it
(it may also be set or changed later with
\helpref{SetItemCount()}{wxvlistboxsetitemcount}).
There are no special styles defined for wxHtmlListBox, in particular the
wxListBox styles can not be used here.
Returns {\tt true} on success or {\tt false} if the control couldn't be created
\membersection{wxHtmlListBox::OnGetItem}\label{wxhtmllistboxongetitem}
\constfunc{wxString}{OnGetItem}{\param{size\_t }{n}}
This method must be implemented in the derived class and should return
the body (i.e. without {\tt <html>} nor {\tt <body>} tags) of the HTML fragment
for the given item.
\membersection{wxHtmlListBox::OnGetItemMarkup}\label{wxhtmllistboxongetitemmarkup}
\constfunc{wxString}{OnGetItemMarkup}{\param{size\_t }{n}}
This function may be overridden to decorate HTML returned by
\helpref{OnGetItem()}{wxhtmllistboxongetitem}.

View File

@@ -1,13 +0,0 @@
\subsection{HTML Printing}\label{printing}
The wxHTML library provides printing facilities with several levels of complexity.
The easiest way to print an HTML document is to use
\helpref{wxHtmlEasyPrinting class}{wxhtmleasyprinting}. It lets you print HTML documents with only one
command and you don't have to worry about deriving from the wxPrintout class at all. It is only a simple wrapper around the
\helpref{wxHtmlPrintout}{wxhtmlprintout}, normal wxWindows printout class.
And finally there is the low level class \helpref{wxHtmlDCRenderer}{wxhtmldcrenderer} which you can use to
render HTML into a rectangular area on any DC. It supports rendering into multiple rectangles with the same
width. (The most common use of this is placing one rectangle on each page or printing into two columns.)

View File

@@ -1,68 +0,0 @@
\subsection{wxHTML quick start}\label{wxhtmlquickstart}
\wxheading{Displaying HMTL}
First of all, you must include <wx/wxhtml.h>.
Class \helpref{wxHtmlWindow}{wxhtmlwindow} (derived from wxScrolledWindow)
is used to display HTML documents.
It has two important methods: \helpref{LoadPage}{wxhtmlwindowloadpage}
and \helpref{SetPage}{wxhtmlwindowsetpage}.
LoadPage loads and displays HTML file while SetPage displays directly the
passed {\bf string}. See the example:
\begin{verbatim}
mywin -> LoadPage("test.htm");
mywin -> SetPage("<html><body>"
"<h1>Error</h1>"
"Some error occurred :-H)"
"</body></hmtl>");
\end{verbatim}
I think the difference is quite clear.
\wxheading{Displaying Help}
See \helpref{wxHtmlHelpController}{wxhtmlhelpcontroller}.
\wxheading{Setting up wxHtmlWindow}
Because wxHtmlWindow is derived from wxScrolledWindow and not from
wxFrame, it doesn't have visible frame. But the user usually want to see
the title of HTML page displayed somewhere and frame's titlebar is
ideal place for it.
wxHtmlWindow provides 2 methods in order to handle this:
\helpref{SetRelatedFrame}{wxhtmlwindowsetrelatedframe} and
\helpref{SetRelatedStatusBar}{wxhtmlwindowsetrelatedstatusbar}.
See the example:
\begin{verbatim}
html = new wxHtmlWindow(this);
html -> SetRelatedFrame(this, "HTML : %%s");
html -> SetRelatedStatusBar(0);
\end{verbatim}
The first command associates html object with it is parent frame
(this points to wxFrame object there) and sets format of title.
Page title "Hello, world!" will be displayed as "HTML : Hello, world!"
in this example.
The second command sets which frame's status bar should be used to display
browser's messages (such as "Loading..." or "Done" or hypertext links).
\wxheading{Customizing wxHtmlWindow}
You can customize wxHtmlWindow by setting font size, font face and
borders (space between border of window and displayed HTML). Related functions:
\begin{itemize}\itemsep=0pt
\item \helpref{SetFonts}{wxhtmlwindowsetfonts}
\item \helpref{SetBorders}{wxhtmlwindowsetborders}
\item \helpref{ReadCustomization}{wxhtmlwindowreadcustomization}
\item \helpref{WriteCustomization}{wxhtmlwindowwritecustomization}
\end{itemize}
The last two functions are used to store user customization info wxConfig stuff
(for example in the registry under Windows, or in a dotfile under Unix).

View File

@@ -1,148 +0,0 @@
\subsection{Tags supported by wxHTML}\label{htmltagssupported}
wxHTML is not full implementation of HTML standard. Instead, it supports most common tags so that it
is possible to display {\it simple} HTML documents with it. (For example it works fine with pages created
in Netscape Composer or generated by tex2rtf).
Following tables list all tags known to wxHTML, together with supported parameters.
A tag has general form of {\tt <tagname param\_1 param\_2 ... param\_n>} where param\_i is
either {\tt paramname="paramvalue"} or {\tt paramname=paramvalue} - these two are equivalent. Unless stated
otherwise, wxHTML is case-insensitive.
\wxheading{Table of common parameter values}
We will use these substitutions in tags descriptions:
\begin{verbatim}
[alignment] CENTER
LEFT
RIGHT
JUSTIFY
[v_alignment] TOP
BOTTOM
CENTER
[color] HTML 4.0-compliant colour specification
[fontsize] -2
-1
+0
+1
+2
+3
+4
1
2
3
4
5
6
7
[pixels] integer value that represents dimension in pixels
[percent] i%
where i is integer
[url] an URL
[string] text string
[coords] c(1),c(2),c(3),...,c(n)
where c(i) is integer
\end{verbatim}
\wxheading{List of supported tags}
\begin{verbatim}
A NAME=[string]
HREF=[url]
TARGET=[target window spec]
ADDRESS
AREA SHAPE=POLY
SHAPE=CIRCLE
SHAPE=RECT
COORDS=[coords]
HREF=[url]
B
BIG
BLOCKQUOTE
BODY TEXT=[color]
LINK=[color]
BGCOLOR=[color]
BR ALIGN=[alignment]
CENTER
CITE
CODE
DD
DIV ALIGN=[alignment]
DL
DT
EM
FONT COLOR=[color]
SIZE=[fontsize]
FACE=[comma-separated list of facenames]
HR ALIGN=[alignment]
SIZE=[pixels]
WIDTH=[percent|pixels]
NOSHADE
H1
H2
H3
H4
H5
H6
I
IMG SRC=[url]
WIDTH=[pixels]
HEIGHT=[pixels]
ALIGN=TEXTTOP
ALIGN=CENTER
ALIGN=ABSCENTER
ALIGN=BOTTOM
USEMAP=[url]
KBD
LI
MAP NAME=[string]
META HTTP-EQUIV="Content-Type"
CONTENT=[string]
OL
P ALIGN=[alignment]
PRE
SAMP
SMALL
STRIKE
STRONG
TABLE ALIGN=[alignment]
WIDTH=[percent|pixels]
BORDER=[pixels]
VALIGN=[v_alignment]
BGCOLOR=[color]
CELLSPACING=[pixels]
CELLPADDING=[pixels]
TD ALIGN=[alignment]
VALIGN=[v_alignment]
BGCOLOR=[color]
WIDTH=[percent|pixels]
COLSPAN=[pixels]
ROWSPAN=[pixels]
TH ALIGN=[alignment]
VALIGN=[v_alignment]
BGCOLOR=[color]
WIDTH=[percent|pixels]
COLSPAN=[pixels]
ROWSPAN=[pixels]
TITLE
TR ALIGN=[alignment]
VALIGN=[v_alignment]
BGCOLOR=[color]
TT
U
UL
\end{verbatim}

View File

@@ -1,267 +0,0 @@
%
% automatically generated by HelpGen from
% htmlparser.tex at 14/Mar/99 20:13:37
%
\section{\class{wxHtmlParser}}\label{wxhtmlparser}
This class handles the {\bf generic} parsing of HTML document: it scans
the document and divide it into blocks of tags (where one block
consists of beginning and ending tag and of text between these
two tags).
It is independent from wxHtmlWindow and can be used as stand-alone parser
(Julian Smart's idea of speech-only HTML viewer or wget-like utility -
see InetGet sample for example).
It uses system of tag handlers to parse the HTML document. Tag handlers
are not statically shared by all instances but are created for each
wxHtmlParser instance. The reason is that the handler may contain
document-specific temporary data used during parsing (e.g. complicated
structures like tables).
Typically the user calls only the \helpref{Parse}{wxhtmlparserparse} method.
\wxheading{Derived from}
wxObject
\wxheading{Include files}
<wx/html/htmlpars.h>
\wxheading{See also}
\helpref{Cells Overview}{cells},
\helpref{Tag Handlers Overview}{handlers},
\helpref{wxHtmlTag}{wxhtmltag}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxHtmlParser::wxHtmlParser}\label{wxhtmlparserwxhtmlparser}
\func{}{wxHtmlParser}{\void}
Constructor.
\membersection{wxHtmlParser::AddTag}\label{wxhtmlparseraddtag}
\func{void}{AddTag}{\param{const wxHtmlTag\& }{tag}}
This may (and may not) be overwritten in derived class.
This method is called each time new tag is about to be added.
{\it tag} contains information about the tag. (See \helpref{wxHtmlTag}{wxhtmltag}
for details.)
Default (wxHtmlParser) behaviour is this:
First it finds a handler capable of handling this tag and then it calls
handler's HandleTag method.
\membersection{wxHtmlParser::AddTagHandler}\label{wxhtmlparseraddtaghandler}
\func{virtual void}{AddTagHandler}{\param{wxHtmlTagHandler }{*handler}}
Adds handler to the internal list (\& hash table) of handlers. This
method should not be called directly by user but rather by derived class'
constructor.
This adds the handler to this {\bf instance} of wxHtmlParser, not to
all objects of this class! (Static front-end to AddTagHandler is provided
by wxHtmlWinParser).
All handlers are deleted on object deletion.
\membersection{wxHtmlParser::AddText}\label{wxhtmlparseraddword}
\func{virtual void}{AddWord}{\param{const char* }{txt}}
Must be overwritten in derived class.
This method is called by \helpref{DoParsing}{wxhtmlparserdoparsing}
each time a part of text is parsed. {\it txt} is NOT only one word, it is
substring of input. It is not formatted or preprocessed (so white spaces are
unmodified).
\membersection{wxHtmlParser::DoParsing}\label{wxhtmlparserdoparsing}
\func{void}{DoParsing}{\param{int }{begin\_pos}, \param{int }{end\_pos}}
\func{void}{DoParsing}{\void}
Parses the m\_Source from begin\_pos to end\_pos-1.
(in noparams version it parses whole m\_Source)
\membersection{wxHtmlParser::DoneParser}\label{wxhtmlparserdoneparser}
\func{virtual void}{DoneParser}{\void}
This must be called after DoParsing().
\membersection{wxHtmlParser::GetFS}\label{wxhtmlparsergetfs}
\constfunc{wxFileSystem*}{GetFS}{\void}
Returns pointer to the file system. Because each tag handler has
reference to it is parent parser it can easily request the file by
calling
\begin{verbatim}
wxFSFile *f = m_Parser -> GetFS() -> OpenFile("image.jpg");
\end{verbatim}
\membersection{wxHtmlParser::GetProduct}\label{wxhtmlparsergetproduct}
\func{virtual wxObject*}{GetProduct}{\void}
Returns product of parsing. Returned value is result of parsing
of the document. The type of this result depends on internal
representation in derived parser (but it must be derived from wxObject!).
See wxHtmlWinParser for details.
\membersection{wxHtmlParser::GetSource}\label{wxhtmlparsergetsource}
\func{wxString*}{GetSource}{\void}
Returns pointer to the source being parsed.
\membersection{wxHtmlParser::InitParser}\label{wxhtmlparserinitparser}
\func{virtual void}{InitParser}{\param{const wxString\& }{source}}
Setups the parser for parsing the {\it source} string. (Should be overridden
in derived class)
\membersection{wxHtmlParser::OpenURL}\label{wxhtmlparseropenurl}
\func{virtual wxFSFile*}{OpenURL}{\param{wxHtmlURLType }{type}, \param{const wxString\& }{url}}
Opens given URL and returns {\tt wxFSFile} object that can be used to read data
from it. This method may return NULL in one of two cases: either the URL doesn't
point to any valid resource or the URL is blocked by overridden implementation
of {\it OpenURL} in derived class.
\wxheading{Parameters}
\docparam{type}{Indicates type of the resource. Is one of
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf wxHTML\_URL\_PAGE}}{Opening a HTML page.}
\twocolitem{{\bf wxHTML\_URL\_IMAGE}}{Opening an image.}
\twocolitem{{\bf wxHTML\_URL\_OTHER}}{Opening a resource that doesn't fall into
any other category.}
\end{twocollist}}
\docparam{url}{URL being opened.}
\wxheading{Notes}
Always use this method in tag handlers instead of {\tt GetFS()->OpenFile()}
because it can block the URL and is thus more secure.
Default behaviour is to call \helpref{wxHtmlWindow::OnOpeningURL}{wxhtmlwindowonopeningurl}
of the associated wxHtmlWindow object (which may decide to block the URL or
redirect it to another one),if there's any, and always open the URL if the
parser is not used with wxHtmlWindow.
Returned {\tt wxFSFile} object is not guaranteed to point to {\it url}, it might
have been redirected!
\membersection{wxHtmlParser::Parse}\label{wxhtmlparserparse}
\func{wxObject*}{Parse}{\param{const wxString\& }{source}}
Proceeds parsing of the document. This is end-user method. You can simply
call it when you need to obtain parsed output (which is parser-specific)
The method does these things:
\begin{enumerate}\itemsep=0pt
\item calls \helpref{InitParser(source)}{wxhtmlparserinitparser}
\item calls \helpref{DoParsing}{wxhtmlparserdoparsing}
\item calls \helpref{GetProduct}{wxhtmlparsergetproduct}
\item calls \helpref{DoneParser}{wxhtmlparserdoneparser}
\item returns value returned by GetProduct
\end{enumerate}
You shouldn't use InitParser, DoParsing, GetProduct or DoneParser directly.
\membersection{wxHtmlParser::PushTagHandler}\label{wxhtmlparserpushtaghandler}
\func{void}{PushTagHandler}{\param{wxHtmlTagHandler* }{handler}, \param{wxString }{tags}}
Forces the handler to handle additional tags
(not returned by \helpref{GetSupportedTags}{wxhtmltaghandlergetsupportedtags}).
The handler should already be added to this parser.
\wxheading{Parameters}
\docparam{handler}{the handler}
\docparam{tags}{List of tags (in same format as GetSupportedTags's return value). The parser
will redirect these tags to {\it handler} (until call to \helpref{PopTagHandler}{wxhtmlparserpoptaghandler}). }
\wxheading{Example}
Imagine you want to parse following pseudo-html structure:
\begin{verbatim}
<myitems>
<param name="one" value="1">
<param name="two" value="2">
</myitems>
<execute>
<param program="text.exe">
</execute>
\end{verbatim}
It is obvious that you cannot use only one tag handler for <param> tag.
Instead you must use context-sensitive handlers for <param> inside <myitems>
and <param> inside <execute>.
This is the preferred solution:
\begin{verbatim}
TAG_HANDLER_BEGIN(MYITEM, "MYITEMS")
TAG_HANDLER_PROC(tag)
{
// ...something...
m_Parser -> PushTagHandler(this, "PARAM");
ParseInner(tag);
m_Parser -> PopTagHandler();
// ...something...
}
TAG_HANDLER_END(MYITEM)
\end{verbatim}
\membersection{wxHtmlParser::PopTagHandler}\label{wxhtmlparserpoptaghandler}
\func{void}{PopTagHandler}{\void}
Restores parser's state before last call to
\helpref{PushTagHandler}{wxhtmlparserpushtaghandler}.
\membersection{wxHtmlParser::SetFS}\label{wxhtmlparsersetfs}
\func{void}{SetFS}{\param{wxFileSystem }{*fs}}
Sets the virtual file system that will be used to request additional
files. (For example {\tt <IMG>} tag handler requests wxFSFile with the
image data.)
\membersection{wxHtmlParser::StopParsing}\label{wxhtmlparserstopparsing}
\func{void}{StopParsing}{\void}
Call this function to interrupt parsing from a tag handler. No more tags
will be parsed afterward. This function may only be called from
\helpref{wxHtmlParser::Parse}{wxhtmlparserparse} or any function called
by it (i.e. from tag handlers).

View File

@@ -1,106 +0,0 @@
%
% automatically generated by HelpGen from
% htmprint.h at 17/Oct/99 12:48:02
%
\section{\class{wxHtmlPrintout}}\label{wxhtmlprintout}
This class serves as printout class for HTML documents.
\wxheading{Derived from}
\helpref{wxPrintout}{wxprintout}
\wxheading{Include files}
<wx/html/htmprint.h>
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxHtmlPrintout::wxHtmlPrintout}\label{wxhtmlprintoutwxhtmlprintout}
\func{}{wxHtmlPrintout}{\param{const wxString\& }{title = "Printout"}}
Constructor.
\membersection{wxHtmlPrintout::SetFonts}\label{wxhtmlprintoutsetfonts}
\func{void}{SetFonts}{\param{wxString }{normal\_face}, \param{wxString }{fixed\_face}, \param{const int }{*sizes = NULL}}
Sets fonts. See \helpref{wxHtmlWindow::SetFonts}{wxhtmlwindowsetfonts} for
detailed description.
\membersection{wxHtmlPrintout::SetFooter}\label{wxhtmlprintoutsetfooter}
\func{void}{SetFooter}{\param{const wxString\& }{footer}, \param{int }{pg = wxPAGE\_ALL}}
Sets page footer.
\wxheading{Parameters}
\docparam{footer}{HTML text to be used as footer. You can use macros in it:
\begin{itemize}
\item @PAGENUM@ is replaced by page number
\item @PAGESCNT@ is replaced by total number of pages
\end{itemize}
}
\docparam{pg}{one of wxPAGE\_ODD, wxPAGE\_EVEN and wxPAGE\_ALL constants.}
\membersection{wxHtmlPrintout::SetHeader}\label{wxhtmlprintoutsetheader}
\func{void}{SetHeader}{\param{const wxString\& }{header}, \param{int }{pg = wxPAGE\_ALL}}
Sets page header.
\wxheading{Parameters}
\docparam{header}{HTML text to be used as header. You can use macros in it:
\begin{itemize}
\item @PAGENUM@ is replaced by page number
\item @PAGESCNT@ is replaced by total number of pages
\end{itemize}
}
\docparam{pg}{one of wxPAGE\_ODD, wxPAGE\_EVEN and wxPAGE\_ALL constants.}
\membersection{wxHtmlPrintout::SetHtmlFile}\label{wxhtmlprintoutsethtmlfile}
\func{void}{SetHtmlFile}{\param{const wxString\& }{htmlfile}}
Prepare the class for printing this HTML {\bf file}. The file may be located on
any virtual file system or it may be normal file.
\membersection{wxHtmlPrintout::SetHtmlText}\label{wxhtmlprintoutsethtmltext}
\func{void}{SetHtmlText}{\param{const wxString\& }{html}, \param{const wxString\& }{basepath = wxEmptyString}, \param{bool }{isdir = true}}
Prepare the class for printing this HTML text.
\wxheading{Parameters}
\docparam{html}{HTML text. (NOT file!)}
\docparam{basepath}{base directory (html string would be stored there if it was in
file). It is used to determine path for loading images, for example.}
\docparam{isdir}{false if basepath is filename, true if it is directory name
(see \helpref{wxFileSystem}{wxfilesystem} for detailed explanation)}
\membersection{wxHtmlPrintout::SetMargins}\label{wxhtmlprintoutsetmargins}
\func{void}{SetMargins}{\param{float }{top = 25.2}, \param{float }{bottom = 25.2}, \param{float }{left = 25.2}, \param{float }{right = 25.2}, \param{float }{spaces = 5}}
Sets margins in millimeters. Defaults to 1 inch for margins and 0.5cm for space
between text and header and/or footer

View File

@@ -1,194 +0,0 @@
%
% automatically generated by HelpGen from
% htmltag.tex at 14/Mar/99 20:13:37
%
\section{\class{wxHtmlTag}}\label{wxhtmltag}
This class represents a single HTML tag.
It is used by \helpref{tag handlers}{handlers}.
\wxheading{Derived from}
wxObject
\wxheading{Include files}
<wx/html/htmltag.h>
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxHtmlTag::wxHtmlTag}\label{wxhtmltagwxhtmltag}
\func{}{wxHtmlTag}{\param{const wxString\& }{source}, \param{int }{pos}, \param{int }{end\_pos}, \param{wxHtmlTagsCache* }{cache}}
Constructor. You will probably never have to construct a wxHtmlTag object
yourself. Feel free to ignore the constructor parameters.
Have a look at src/html/htmlpars.cpp if you're interested in creating it.
\membersection{wxHtmlTag::GetAllParams}\label{wxhtmltaggetallparams}
\constfunc{const wxString\&}{GetAllParams}{\void}
Returns a string containing all parameters.
Example : tag contains {\tt <FONT SIZE=+2 COLOR="\#000000">}. Call to
tag.GetAllParams() would return {\tt SIZE=+2 COLOR="\#000000"}.
\membersection{wxHtmlTag::GetBeginPos}\label{wxhtmltaggetbeginpos}
\constfunc{int}{GetBeginPos}{\void}
Returns beginning position of the text {\it between} this tag and paired
ending tag.
See explanation (returned position is marked with `|'):
\begin{verbatim}
bla bla bla <MYTAG> bla bla internal text</MYTAG> bla bla
|
\end{verbatim}
\membersection{wxHtmlTag::GetEndPos1}\label{wxhtmltaggetendpos1}
\constfunc{int}{GetEndPos1}{\void}
Returns ending position of the text {\it between} this tag and paired
ending tag.
See explanation (returned position is marked with `|'):
\begin{verbatim}
bla bla bla <MYTAG> bla bla internal text</MYTAG> bla bla
|
\end{verbatim}
\membersection{wxHtmlTag::GetEndPos2}\label{wxhtmltaggetendpos2}
\constfunc{int}{GetEndPos2}{\void}
Returns ending position 2 of the text {\it between} this tag and paired
ending tag.
See explanation (returned position is marked with `|'):
\begin{verbatim}
bla bla bla <MYTAG> bla bla internal text</MYTAG> bla bla
|
\end{verbatim}
\membersection{wxHtmlTag::GetName}\label{wxhtmltaggetname}
\constfunc{wxString}{GetName}{\void}
Returns tag's name. The name is always in uppercase and it doesn't contain
'<' or '/' characters. (So the name of {\tt <FONT SIZE=+2>} tag is "FONT"
and name of {\tt </table>} is "TABLE")
\membersection{wxHtmlTag::GetParam}\label{wxhtmltaggetparam}
\constfunc{wxString}{GetParam}{\param{const wxString\& }{par}, \param{bool }{with\_commas = false}}
Returns the value of the parameter. You should check whether the
parameter exists or not (use \helpref{HasParam}{wxhtmltaghasparam}) first.
\wxheading{Parameters}
\docparam{par}{The parameter's name.}
\docparam{with\_commas}{true if you want to get commas as well. See example.}
\wxheading{Example}
\begin{verbatim}
...
/* you have wxHtmlTag variable tag which is equal to
HTML tag <FONT SIZE=+2 COLOR="#0000FF"> */
dummy = tag.GetParam("SIZE");
// dummy == "+2"
dummy = tag.GetParam("COLOR");
// dummy == "#0000FF"
dummy = tag.GetParam("COLOR", true);
// dummy == "\"#0000FF\"" -- see the difference!!
\end{verbatim}
\membersection{wxHtmlTag::GetParamAsColour}\label{wxhtmltaggetparamascolour}
\constfunc{bool}{GetParamAsColour}{\param{const wxString\& }{par}, \param{wxColour *}{clr}}
Interprets tag parameter {\it par} as colour specification and saves its value
into wxColour variable pointed by {\it clr}.
Returns true on success and false if {\it par} is not colour specification or
if the tag has no such parameter.
\membersection{wxHtmlTag::GetParamAsInt}\label{wxhtmltaggetparamasint}
\constfunc{bool}{GetParamAsInt}{\param{const wxString\& }{par}, \param{int *}{value}}
Interprets tag parameter {\it par} as an integer and saves its value
into int variable pointed by {\it value}.
Returns true on success and false if {\it par} is not an integer or
if the tag has no such parameter.
\membersection{wxHtmlTag::HasEnding}\label{wxhtmltaghasending}
\constfunc{bool}{HasEnding}{\void}
Returns true if this tag is paired with ending tag, false otherwise.
See the example of HTML document:
\begin{verbatim}
<html><body>
Hello<p>
How are you?
<p align=center>This is centered...</p>
Oops<br>Oooops!
</body></html>
\end{verbatim}
In this example tags HTML and BODY have ending tags, first P and BR
doesn't have ending tag while the second P has. The third P tag (which
is ending itself) of course doesn't have ending tag.
\membersection{wxHtmlTag::HasParam}\label{wxhtmltaghasparam}
\constfunc{bool}{HasParam}{\param{const wxString\& }{par}}
Returns true if the tag has a parameter of the given name.
Example : {\tt <FONT SIZE=+2 COLOR="\#FF00FF">} has two parameters named
"SIZE" and "COLOR".
\wxheading{Parameters}
\docparam{par}{the parameter you're looking for.}
\membersection{wxHtmlTag::IsEnding}\label{wxhtmltagisending}
\constfunc{bool}{IsEnding}{\void}
Returns true if this tag is ending one.
({\tt </FONT>} is ending tag, {\tt <FONT>} is not)
\membersection{wxHtmlTag::ScanParam}\label{wxhtmltagscanparam}
\constfunc{wxString}{ScanParam}{\param{const wxString\& }{par}, \param{const wxChar *}{format}, \param{void *}{value}}
This method scans the given parameter. Usage is exactly the same as sscanf's
usage except that you don't pass a string but a parameter name as the first
argument
and you can only retrieve one value (i.e. you can use only one "\%" element
in {\it format}).
\wxheading{Parameters}
\docparam{par}{The name of the tag you want to query}
\docparam{format}{scanf()-like format string.}
\docparam{value}{pointer to a variable to store the value in }

View File

@@ -1,91 +0,0 @@
%
% automatically generated by HelpGen from
% htmltaghandler.tex at 18/Mar/99 19:20:29
%
\section{\class{wxHtmlTagHandler}}\label{wxhtmltaghandler}
\wxheading{Derived from}
\helpref{wxObject}{wxobject}
\wxheading{Include files}
<wx/html/htmlpars.h>
\wxheading{See Also}
\helpref{Overview}{handlers},
\helpref{wxHtmlTag}{wxhtmltag}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxHtmlTagHandler::m\_Parser}\label{wxhtmltaghandlermparser}
{\bf wxHtmlParser* m\_Parser}
This attribute is used to access parent parser. It is protected so that
it can't be accessed by user but can be accessed from derived classes.
\membersection{wxHtmlTagHandler::wxHtmlTagHandler}\label{wxhtmltaghandlerwxhtmltaghandler}
\func{}{wxHtmlTagHandler}{\void}
Constructor.
\membersection{wxHtmlTagHandler::GetSupportedTags}\label{wxhtmltaghandlergetsupportedtags}
\func{virtual wxString}{GetSupportedTags}{\void}
Returns list of supported tags. The list is in uppercase and tags
are delimited by ','. Example : {\tt "I,B,FONT,P" }
\membersection{wxHtmlTagHandler::HandleTag}\label{wxhtmltaghandlerhandletag}
\func{virtual bool}{HandleTag}{\param{const wxHtmlTag\& }{tag}}
This is the core method of each handler. It is called each time
one of supported tags is detected. {\it tag} contains all necessary
info (see \helpref{wxHtmlTag}{wxhtmltag} for details).
\wxheading{Return value}
true if \helpref{ParseInner}{wxhtmltaghandlerparseinner} was called,
false otherwise.
\wxheading{Example}
\begin{verbatim}
bool MyHandler::HandleTag(const wxHtmlTag& tag)
{
...
// change state of parser (e.g. set bold face)
ParseInner(tag);
...
// restore original state of parser
}
\end{verbatim}
You shouldn't call ParseInner if the tag is not paired with an ending one.
\membersection{wxHtmlTagHandler::ParseInner}\label{wxhtmltaghandlerparseinner}
\func{void}{ParseInner}{\param{const wxHtmlTag\& }{tag}}
This method calls parser's \helpref{DoParsing}{wxhtmlparserdoparsing} method
for the string between this tag and the paired ending tag:
\begin{verbatim}
...<A HREF="x.htm">Hello, world!</A>...
\end{verbatim}
In this example, a call to ParseInner (with {\it tag} pointing to A tag)
will parse 'Hello, world!'.
\membersection{wxHtmlTagHandler::SetParser}\label{wxhtmltaghandlersetparser}
\func{virtual void}{SetParser}{\param{wxHtmlParser }{*parser}}
Assigns {\it parser} to this handler. Each {\bf instance} of handler
is guaranteed to be called only from the parser.

View File

@@ -1,43 +0,0 @@
%
% automatically generated by HelpGen from
% htmltagsmodule.tex at 14/Mar/99 20:13:37
\section{\class{wxHtmlTagsModule}}\label{wxhtmltagsmodule}
This class provides easy way of filling wxHtmlWinParser's table of
tag handlers. It is used almost exclusively together with the set of
\helpref{TAGS\_MODULE\_* macros}{handlers}
\wxheading{Derived from}
\helpref{wxModule}{wxmodule}
\wxheading{Include files}
<wx/html/winpars.h>
\wxheading{See Also}
\helpref{Tag Handlers}{handlers},
\helpref{wxHtmlTagHandler}{wxhtmltaghandler},
\helpref{wxHtmlWinTagHandler}{wxhtmlwintaghandler},
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxHtmlTagsModule::FillHandlersTable}\label{wxhtmltagsmodulefillhandlerstable}
\func{virtual void}{FillHandlersTable}{\param{wxHtmlWinParser }{*parser}}
You must override this method. In most common case its body consists
only of lines of the following type:
\begin{verbatim}
parser -> AddTagHandler(new MyHandler);
\end{verbatim}
I recommend using the {\bf TAGS\_MODULE\_*} macros.
\wxheading{Paremeters}
\docparam{parser}{Pointer to the parser that requested tables filling.}

View File

@@ -1,70 +0,0 @@
\section{\class{wxHTTP}}\label{wxhttp}
\wxheading{Derived from}
\helpref{wxProtocol}{wxprotocol}
\wxheading{Include files}
<wx/protocol/http.h>
\wxheading{See also}
\helpref{wxSocketBase}{wxsocketbase}, \helpref{wxURL}{wxurl}
% ----------------------------------------------------------------------------
% Members
% ----------------------------------------------------------------------------
% ----------------------------------------------------------------------------
\membersection{wxHTTP::GetInputStream}\label{wxhttpgetinputstream}
\func{wxInputStream *}{GetInputStream}{\param{const wxString\&}{ path}}
Creates a new input stream on the the specified path. You can use all except the seek
functionality of wxStream. Seek isn't available on all streams. For example,
http or ftp streams doesn't deal with it. Other functions like Tell and SeekI
for this sort of stream.
You will be notified when the EOF is reached by an error.
\wxheading{Note}
You can know the size of the file you are getting using \helpref{wxStreamBase::GetSize()}{wxstreambasegetsize}.
But there is a limitation: as HTTP servers aren't obliged to pass the size of
the file, in some case, you will be returned 0xfffffff by GetSize(). In these
cases, you should use the value returned by \helpref{wxInputStream::LastRead()}{wxinputstreamlastread}:
this value will be 0 when the stream is finished.
\wxheading{Return value}
Returns the initialized stream. You will have to delete it yourself once you
don't use it anymore. The destructor closes the network connection.
The next time you will try to get a file the network connection will have
to be reestablished: but you don't have to take care of this wxHTTP reestablishes it automatically.
\wxheading{See also}
\helpref{wxInputStream}{wxinputstream}
% ----------------------------------------------------------------------------
\membersection{wxHTTP::SetHeader}
\func{void}{SetHeader}{\param{const wxString\&}{ header}, \param{const wxString\&}{ h\_data}}
It sets data of a field to be sent during the next request to the HTTP server. The field
name is specified by {\it header} and the content by {\it h\_data}.
This is a low level function and it assumes that you know what you are doing.
\membersection{wxHTTP::GetHeader}
\func{wxString}{GetHeader}{\param{const wxString\&}{ header}}
Returns the data attached with a field whose name is specified by {\it header}.
If the field doesn't exist, it will return an empty string and not a NULL string.
\wxheading{Note}
The header is not case-sensitive: I mean that "CONTENT-TYPE" and "content-type"
represent the same header.

View File

@@ -1,37 +0,0 @@
%
% automatically generated by HelpGen from
% htmlcell.h at 14/Apr/99 20:12:40
%
\section{\class{wxHtmlWidgetCell}}\label{wxhtmlwidgetcell}
wxHtmlWidgetCell is a class that provides a connection between HTML cells and widgets (an object derived
from wxWindow). You can use it to display things like forms, input boxes etc. in an HTML window.
wxHtmlWidgetCell takes care of resizing and moving window.
\wxheading{Derived from}
\helpref{wxHtmlCell}{wxhtmlcell}
\wxheading{Include files}
<wx/html/htmlcell.h>
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxHtmlWidgetCell::wxHtmlWidgetCell}\label{wxhtmlwidgetcellwxhtmlwidgetcell}
\func{}{wxHtmlWidgetCell}{\param{wxWindow* }{wnd}, \param{int }{w = 0}}
Constructor.
\wxheading{Parameters}
\docparam{wnd}{Connected window. It is parent window {\bf must} be the wxHtmlWindow object within
which it is displayed!}
\docparam{w}{Floating width. If non-zero width of {\it wnd} window is adjusted so that it is
always {\it w} percents of parent container's width. (For example w = 100 means that the window
will always have same width as parent container)}

View File

@@ -1,383 +0,0 @@
%
% automatically generated by HelpGen from
% htmlwindow.tex at 14/Mar/99 20:13:37
%
\section{\class{wxHtmlWindow}}\label{wxhtmlwindow}
wxHtmlWindow is probably the only class you will directly use
unless you want to do something special (like adding new tag
handlers or MIME filters).
The purpose of this class is to display HTML pages (either local
file or downloaded via HTTP protocol) in a window. The width
of the window is constant - given in the constructor - and virtual height
is changed dynamically depending on page size.
Once the window is created you can set its content by calling
\helpref{SetPage(text)}{wxhtmlwindowsetpage},
\helpref{LoadPage(filename)}{wxhtmlwindowloadpage} or
\helpref{LoadFile}{wxhtmlwindowloadfile}.
\wxheading{Note}
wxHtmlWindow uses the \helpref{wxImage}{wximage} class for displaying images.
Don't forget to initialize all image formats you need before loading any page!
(See \helpref{wxInitAllImageHandlers}{wxinitallimagehandlers} and
\helpref{wxImage::AddHandler}{wximageaddhandler}.)
\wxheading{Derived from}
\helpref{wxScrolledWindow}{wxscrolledwindow}
\wxheading{Include files}
<wx/html/htmlwin.h>
\membersection{wxHtmlWindow::wxHtmlWindow}\label{wxhtmlwindowwxhtmlwindow}
\func{}{wxHtmlWindow}{\void}
Default constructor.
\func{}{wxHtmlWindow}{\param{wxWindow }{*parent}, \param{wxWindowID }{id = -1}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = wxHW\_SCROLLBAR\_AUTO}, \param{const wxString\& }{name = "htmlWindow"}}
Constructor. The parameters are the same as for the \helpref{wxScrolledWindow}{wxscrolledwindow} constructor.
\wxheading{Parameters}
\docparam{style}{wxHW\_SCROLLBAR\_NEVER, or wxHW\_SCROLLBAR\_AUTO.
Affects the appearance of vertical scrollbar in the window.}
\membersection{wxHtmlWindow::AddFilter}\label{wxhtmlwindowaddfilter}
\func{static void}{AddFilter}{\param{wxHtmlFilter }{*filter}}
Adds \helpref{input filter}{filters} to the static list of available
filters. These filters are present by default:
\begin{itemize}\itemsep=0pt
\item {\tt text/html} MIME type
\item {\tt image/*} MIME types
\item Plain Text filter (this filter is used if no other filter matches)
\end{itemize}
\membersection{wxHtmlWindow::AppendToPage}\label{wxhtmlwindowappendtopage}
\func{bool}{AppendToPage}{\param{const wxString\& }{source}}
Appends HTML fragment to currently displayed text and refreshes the window.
\wxheading{Parameters}
\docparam{source}{HTML code fragment}
\wxheading{Return value}
false if an error occurred, true otherwise.
\membersection{wxHtmlWindow::GetInternalRepresentation}\label{wxhtmlwindowgetinternalrepresentation}
\constfunc{wxHtmlContainerCell*}{GetInternalRepresentation}{\void}
Returns pointer to the top-level container.
See also: \helpref{Cells Overview}{cells},
\helpref{Printing Overview}{printing}
\membersection{wxHtmlWindow::GetOpenedAnchor}\label{wxhtmlwindowgetopenedanchor}
\func{wxString}{GetOpenedAnchor}{\void}
Returns anchor within currently opened page
(see \helpref{GetOpenedPage}{wxhtmlwindowgetopenedpage}).
If no page is opened or if the displayed page wasn't
produced by call to LoadPage, empty string is returned.
\membersection{wxHtmlWindow::GetOpenedPage}\label{wxhtmlwindowgetopenedpage}
\func{wxString}{GetOpenedPage}{\void}
Returns full location of the opened page. If no page is opened or if the displayed page wasn't
produced by call to LoadPage, empty string is returned.
\membersection{wxHtmlWindow::GetOpenedPageTitle}\label{wxhtmlwindowgetopenedpagetitle}
\func{wxString}{GetOpenedPageTitle}{\void}
Returns title of the opened page or wxEmptyString if current page does not contain {\tt <TITLE>} tag.
\membersection{wxHtmlWindow::GetRelatedFrame}\label{wxhtmlwindowgetrelatedframe}
\constfunc{wxFrame*}{GetRelatedFrame}{\void}
Returns the related frame.
\membersection{wxHtmlWindow::HistoryBack}\label{wxhtmlwindowhistoryback}
\func{bool}{HistoryBack}{\void}
Moves back to the previous page. (each page displayed using
\helpref{LoadPage}{wxhtmlwindowloadpage} is stored in history list.)
\membersection{wxHtmlWindow::HistoryCanBack}\label{wxhtmlwindowhistorycanback}
\func{bool}{HistoryCanBack}{\void}
Returns true if it is possible to go back in the history (i.e. HistoryBack()
won't fail).
\membersection{wxHtmlWindow::HistoryCanForward}\label{wxhtmlwindowhistorycanforward}
\func{bool}{HistoryCanForward}{\void}
Returns true if it is possible to go forward in the history (i.e. HistoryBack()
won't fail).
\membersection{wxHtmlWindow::HistoryClear}\label{wxhtmlwindowhistoryclear}
\func{void}{HistoryClear}{\void}
Clears history.
\membersection{wxHtmlWindow::HistoryForward}\label{wxhtmlwindowhistoryforward}
\func{bool}{HistoryForward}{\void}
Moves to next page in history.
\membersection{wxHtmlWindow::LoadFile}\label{wxhtmlwindowloadfile}
\func{virtual bool}{LoadFile}{\param{const wxFileName\& }{filename}}
Loads HTML page from file and displays it.
\wxheading{Return value}
false if an error occurred, true otherwise
\wxheading{See also}
\helpref{LoadPage}{wxhtmlwindowloadpage}
\membersection{wxHtmlWindow::LoadPage}\label{wxhtmlwindowloadpage}
\func{virtual bool}{LoadPage}{\param{const wxString\& }{location}}
Unlike SetPage this function first loads HTML page from {\it location}
and then displays it. See example:
\begin{verbatim}
htmlwin->LoadPage("help/myproject/index.htm");
\end{verbatim}
\wxheading{Parameters}
\docparam{location}{The address of document. See \helpref{wxFileSystem}{wxfilesystem} for details on address format and behaviour of "opener".}
\wxheading{Return value}
false if an error occurred, true otherwise
\wxheading{See also}
\helpref{LoadFile}{wxhtmlwindowloadfile}
\membersection{wxHtmlWindow::OnCellClicked}\label{wxhtmlwindowoncellclicked}
\func{virtual void}{OnCellClicked}{\param{wxHtmlCell }{*cell}, \param{wxCoord }{x}, \param{wxCoord }{y}, \param{const wxMouseEvent\& }{event}}
This method is called when a mouse button is clicked inside wxHtmlWindow.
The default behaviour is to call
\helpref{OnLinkClicked}{wxhtmlwindowonlinkclicked} if the cell contains a
hypertext link.
\wxheading{Parameters}
\docparam{cell}{The cell inside which the mouse was clicked, always a simple
(i.e. non container) cell}
\docparam{x, y}{The logical coordinates of the click point}
\docparam{event}{The mouse event containing other information about the click}
\membersection{wxHtmlWindow::OnCellMouseHover}\label{wxhtmlwindowoncellmousehover}
\func{virtual void}{OnCellMouseHover}{\param{wxHtmlCell }{*cell}, \param{wxCoord }{x}, \param{wxCoord }{y}}
This method is called when a mouse moves over an HTML cell.
\wxheading{Parameters}
\docparam{cell}{The cell inside which the mouse is currently, always a simple
(i.e. non container) cell}
\docparam{x, y}{The logical coordinates of the click point}
\membersection{wxHtmlWindow::OnLinkClicked}\label{wxhtmlwindowonlinkclicked}
\func{virtual void}{OnLinkClicked}{\param{const wxHtmlLinkInfo\& }{link}}
Called when user clicks on hypertext link. Default behaviour is to call
\helpref{LoadPage}{wxhtmlwindowloadpage} and do nothing else.
Also see \helpref{wxHtmlLinkInfo}{wxhtmllinkinfo}.
\membersection{wxHtmlWindow::OnOpeningURL}\label{wxhtmlwindowonopeningurl}
\func{virtual wxHtmlOpeningStatus}{OnOpeningURL}{\param{wxHtmlURLType }{type},\param{const wxString\& }{url}, \param{wxString *}{redirect}}
Called when an URL is being opened (either when the user clicks on a link or
an image is loaded). The URL will be opened only if OnOpeningURL returns
{\tt wxHTML\_OPEN}. This method is called by
\helpref{wxHtmlParser::OpenURL}{wxhtmlparseropenurl}.
You can override OnOpeningURL to selectively block some
URLs (e.g. for security reasons) or to redirect them elsewhere. Default
behaviour is to always return {\tt wxHTML\_OPEN}.
\wxheading{Parameters}
\docparam{type}{Indicates type of the resource. Is one of
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf wxHTML\_URL\_PAGE}}{Opening a HTML page.}
\twocolitem{{\bf wxHTML\_URL\_IMAGE}}{Opening an image.}
\twocolitem{{\bf wxHTML\_URL\_OTHER}}{Opening a resource that doesn't fall into
any other category.}
\end{twocollist}}
\docparam{url}{URL being opened.}
\docparam{redirect}{Pointer to wxString variable that must be filled with an
URL if OnOpeningURL returns {\tt wxHTML\_REDIRECT}.}
\wxheading{Return value}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf wxHTML\_OPEN}}{Open the URL.}
\twocolitem{{\bf wxHTML\_BLOCK}}{Deny access to the URL, \helpref{wxHtmlParser::OpenURL}{wxhtmlparseropenurl} will return NULL.}
\twocolitem{{\bf wxHTML\_REDIRECT}}{Don't open {\it url}, redirect to another
URL. OnOpeningURL must fill {\it *redirect} with the new URL. OnOpeningURL will
be called again on returned URL.}
\end{twocollist}
\membersection{wxHtmlWindow::OnSetTitle}\label{wxhtmlwindowonsettitle}
\func{virtual void}{OnSetTitle}{\param{const wxString\& }{title}}
Called on parsing {\tt <TITLE>} tag.
\membersection{wxHtmlWindow::ReadCustomization}\label{wxhtmlwindowreadcustomization}
\func{virtual void}{ReadCustomization}{\param{wxConfigBase }{*cfg}, \param{wxString }{path = wxEmptyString}}
This reads custom settings from wxConfig. It uses the path 'path'
if given, otherwise it saves info into currently selected path.
The values are stored in sub-path {\tt wxHtmlWindow}
Read values: all things set by SetFonts, SetBorders.
\wxheading{Parameters}
\docparam{cfg}{wxConfig from which you want to read the configuration.}
\docparam{path}{Optional path in config tree. If not given current path is used.}
\membersection{wxHtmlWindow::SetBorders}\label{wxhtmlwindowsetborders}
\func{void}{SetBorders}{\param{int }{b}}
This function sets the space between border of window and HTML contents. See image:
\helponly{\image{}{border.bmp}}
\wxheading{Parameters}
\docparam{b}{indentation from borders in pixels}
\membersection{wxHtmlWindow::SetFonts}\label{wxhtmlwindowsetfonts}
\func{void}{SetFonts}{\param{wxString }{normal\_face}, \param{wxString }{fixed\_face}, \param{const int }{*sizes = NULL}}
This function sets font sizes and faces.
\wxheading{Parameters}
\docparam{normal\_face}{This is face name for normal (i.e. non-fixed) font.
It can be either empty string (then the default face is chosen) or
platform-specific face name. Examples are "helvetica" under Unix or
"Times New Roman" under Windows.}
\docparam{fixed\_face}{The same thing for fixed face ( <TT>..</TT> )}
\docparam{sizes}{This is an array of 7 items of {\it int} type.
The values represent size of font with HTML size from -2 to +4
( <FONT SIZE=-2> to <FONT SIZE=+4> ). Default sizes are used if {\it sizes}
is NULL.}
\wxheading{Defaults}
Default font sizes are defined by constants wxHTML\_FONT\_SIZE\_1,
wxHTML\_FONT\_SIZE\_2, ..., wxHTML\_FONT\_SIZE\_7. Note that they differ among
platforms. Default face names are empty strings.
\membersection{wxHtmlWindow::SetPage}\label{wxhtmlwindowsetpage}
\func{bool}{SetPage}{\param{const wxString\& }{source}}
Sets HTML page and display it. This won't {\bf load} the page!!
It will display the {\it source}. See example:
\begin{verbatim}
htmlwin -> SetPage("<html><body>Hello, world!</body></html>");
\end{verbatim}
If you want to load a document from some location use
\helpref{LoadPage}{wxhtmlwindowloadpage} instead.
\wxheading{Parameters}
\docparam{source}{The HTML document source to be displayed.}
\wxheading{Return value}
false if an error occurred, true otherwise.
\membersection{wxHtmlWindow::SetRelatedFrame}\label{wxhtmlwindowsetrelatedframe}
\func{void}{SetRelatedFrame}{\param{wxFrame* }{frame}, \param{const wxString\& }{format}}
Sets the frame in which page title will be displayed. {\it format} is format of
frame title, e.g. "HtmlHelp : \%s". It must contain exactly one \%s. This
\%s is substituted with HTML page title.
\membersection{wxHtmlWindow::SetRelatedStatusBar}\label{wxhtmlwindowsetrelatedstatusbar}
\func{void}{SetRelatedStatusBar}{\param{int }{bar}}
{\bf After} calling \helpref{SetRelatedFrame}{wxhtmlwindowsetrelatedframe},
this sets statusbar slot where messages will be displayed.
(Default is -1 = no messages.)
\wxheading{Parameters}
\docparam{bar}{statusbar slot number (0..n)}
\membersection{wxHtmlWindow::WriteCustomization}\label{wxhtmlwindowwritecustomization}
\func{virtual void}{WriteCustomization}{\param{wxConfigBase }{*cfg}, \param{wxString }{path = wxEmptyString}}
Saves custom settings into wxConfig. It uses the path 'path'
if given, otherwise it saves info into currently selected path.
Regardless of whether the path is given or not, the function creates sub-path
{\tt wxHtmlWindow}.
Saved values: all things set by SetFonts, SetBorders.
\wxheading{Parameters}
\docparam{cfg}{wxConfig to which you want to save the configuration.}
\docparam{path}{Optional path in config tree. If not given, the current path is used.}

View File

@@ -1,31 +0,0 @@
%
% automatically generated by HelpGen from
% htmlwintaghandler.tex at 14/Mar/99 20:13:37
%
\section{\class{wxHtmlWinTagHandler}}\label{wxhtmlwintaghandler}
This is basically wxHtmlTagHandler except that
it is extended with protected member m\_WParser pointing to
the wxHtmlWinParser object (value of this member is identical
to wxHtmlParser's m\_Parser).
\wxheading{Derived from}
\helpref{wxHtmlTagHandler}{wxhtmltaghandler}
\wxheading{Include files}
<wx/html/winpars.h>
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxHtmlWinTagHandler::m\_WParser}\label{wxhtmlwintaghandlerwxhtmlwintaghandlermwparser}
{\bf wxHtmlWinParser* m\_WParser}
Value of this attribute is identical to value of m\_Parser. The only different
is that m\_WParser points to wxHtmlWinParser object while m\_Parser
points to wxHtmlParser object. (The same object, but overcast.)

View File

@@ -1,298 +0,0 @@
%
% automatically generated by HelpGen from
% htmlwinparser.tex at 14/Mar/99 20:13:37
%
\section{\class{wxHtmlWinParser}}\label{wxhtmlwinparser}
This class is derived from \helpref{wxHtmlParser}{wxhtmlparser} and
its main goal is to parse HTML input so that it can be displayed in
\helpref{wxHtmlWindow}{wxhtmlwindow}. It uses a special
\helpref{wxHtmlWinTagHandler}{wxhtmlwintaghandler}.
\wxheading{Notes}
The product of parsing is a wxHtmlCell (resp. wxHtmlContainer) object.
\wxheading{Derived from}
\helpref{wxHtmlParser}{wxhtmlparser}
\wxheading{Include files}
<wx/html/winpars.h>
\wxheading{See Also}
\helpref{Handlers overview}{handlers}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxHtmlWinParser::wxHtmlWinParser}\label{wxhtmlwinparserwxhtmlwinparser}
\func{}{wxHtmlWinParser}{\void}
\func{}{wxHtmlWinParser}{\param{wxHtmlWindow }{*wnd}}
Constructor. Don't use the default one, use constructor with
{\it wnd} parameter ({\it wnd} is pointer to associated \helpref{wxHtmlWindow}{wxhtmlwindow})
\membersection{wxHtmlWinParser::AddModule}\label{wxhtmlwinparseraddmodule}
\func{static void}{AddModule}{\param{wxHtmlTagsModule }{*module}}
Adds \helpref{module}{handlers} to the list of wxHtmlWinParser tag handler.
\membersection{wxHtmlWinParser::CloseContainer}\label{wxhtmlwinparserclosecontainer}
\func{wxHtmlContainerCell*}{CloseContainer}{\void}
Closes the container, sets actual container to the parent one
and returns pointer to it (see \helpref{Overview}{cells}).
\membersection{wxHtmlWinParser::CreateCurrentFont}\label{wxhtmlwinparsercreatecurrentfont}
\func{virtual wxFont*}{CreateCurrentFont}{\void}
Creates font based on current setting (see
\helpref{SetFontSize}{wxhtmlwinparsersetfontsize},
\helpref{SetFontBold}{wxhtmlwinparsersetfontbold},
\helpref{SetFontItalic}{wxhtmlwinparsersetfontitalic},
\helpref{SetFontFixed}{wxhtmlwinparsersetfontfixed},
\helpref{SetFontUnderlined}{wxhtmlwinparsersetfontunderlined})
and returns pointer to it.
If the font was already created only a pointer is returned.
\membersection{wxHtmlWinParser::GetActualColor}\label{wxhtmlwinparsergetactualcolor}
\constfunc{const wxColour\&}{GetActualColor}{\void}
Returns actual text colour.
\membersection{wxHtmlWinParser::GetAlign}\label{wxhtmlwinparsergetalign}
\constfunc{int}{GetAlign}{\void}
Returns default horizontal alignment.
\membersection{wxHtmlWinParser::GetCharHeight}\label{wxhtmlwinparsergetcharheight}
\constfunc{int}{GetCharHeight}{\void}
Returns (average) char height in standard font. It is used as DC-independent metrics.
{\bf Note:} This function doesn't return the {\it actual} height. If you want to
know the height of the current font, call {\tt GetDC -> GetCharHeight()}.
\membersection{wxHtmlWinParser::GetCharWidth}\label{wxhtmlwinparsergetcharwidth}
\constfunc{int}{GetCharWidth}{\void}
Returns average char width in standard font. It is used as DC-independent metrics.
{\bf Note:} This function doesn't return the {\it actual} width. If you want to
know the height of the current font, call {\tt GetDC -> GetCharWidth()}
\membersection{wxHtmlWinParser::GetContainer}\label{wxhtmlwinparsergetcontainer}
\constfunc{wxHtmlContainerCell*}{GetContainer}{\void}
Returns pointer to the currently opened container (see \helpref{Overview}{cells}).
Common use:
\begin{verbatim}
m_WParser -> GetContainer() -> InsertCell(new ...);
\end{verbatim}
\membersection{wxHtmlWinParser::GetDC}\label{wxhtmlwinparsergetdc}
\func{wxDC*}{GetDC}{\void}
Returns pointer to the DC used during parsing.
\membersection{wxHtmlWinParser::GetEncodingConverter}\label{wxhtmlwinparsergetencodingconverter}
\constfunc{wxEncodingConverter *}{GetEncodingConverter}{\void}
Returns \helpref{wxEncodingConverter}{wxencodingconverter} class used
to do conversion between \helpref{input encoding}{wxhtmlwinparsergetinputencoding}
and \helpref{output encoding}{wxhtmlwinparsergetoutputencoding}.
\membersection{wxHtmlWinParser::GetFontBold}\label{wxhtmlwinparsergetfontbold}
\constfunc{int}{GetFontBold}{\void}
Returns true if actual font is bold, false otherwise.
\membersection{wxHtmlWinParser::GetFontFace}\label{wxhtmlwinparsergetfontface}
\constfunc{wxString}{GetFontFace}{\void}
Returns actual font face name.
\membersection{wxHtmlWinParser::GetFontFixed}\label{wxhtmlwinparsergetfontfixed}
\constfunc{int}{GetFontFixed}{\void}
Returns true if actual font is fixed face, false otherwise.
\membersection{wxHtmlWinParser::GetFontItalic}\label{wxhtmlwinparsergetfontitalic}
\constfunc{int}{GetFontItalic}{\void}
Returns true if actual font is italic, false otherwise.
\membersection{wxHtmlWinParser::GetFontSize}\label{wxhtmlwinparsergetfontsize}
\constfunc{int}{GetFontSize}{\void}
Returns actual font size (HTML size varies from -2 to +4)
\membersection{wxHtmlWinParser::GetFontUnderlined}\label{wxhtmlwinparsergetfontunderlined}
\constfunc{int}{GetFontUnderlined}{\void}
Returns true if actual font is underlined, false otherwise.
\membersection{wxHtmlWinParser::GetInputEncoding}\label{wxhtmlwinparsergetinputencoding}
\constfunc{wxFontEncoding}{GetInputEncoding}{\void}
Returns input encoding.
\membersection{wxHtmlWinParser::GetLink}\label{wxhtmlwinparsergetlink}
\constfunc{const wxHtmlLinkInfo\&}{GetLink}{\void}
Returns actual hypertext link. (This value has a non-empty
\helpref{Href}{wxhtmllinkinfogethref} string
if the parser is between {\tt <A>} and {\tt </A>} tags,
wxEmptyString otherwise.)
\membersection{wxHtmlWinParser::GetLinkColor}\label{wxhtmlwinparsergetlinkcolor}
\constfunc{const wxColour\&}{GetLinkColor}{\void}
Returns the colour of hypertext link text.
\membersection{wxHtmlWinParser::GetOutputEncoding}\label{wxhtmlwinparsergetoutputencoding}
\constfunc{wxFontEncoding}{GetOutputEncoding}{\void}
Returns output encoding, i.e. closest match to document's input encoding
that is supported by operating system.
\membersection{wxHtmlWinParser::GetWindow}\label{wxhtmlwinparsergetwindow}
\func{wxHtmlWindow*}{GetWindow}{\void}
Returns associated window (wxHtmlWindow). This may be NULL! (You should always
test if it is non-NULL. For example {\tt TITLE} handler sets window
title only if some window is associated, otherwise it does nothing)
\membersection{wxHtmlWinParser::OpenContainer}\label{wxhtmlwinparseropencontainer}
\func{wxHtmlContainerCell*}{OpenContainer}{\void}
Opens new container and returns pointer to it (see \helpref{Overview}{cells}).
\membersection{wxHtmlWinParser::SetActualColor}\label{wxhtmlwinparsersetactualcolor}
\func{void}{SetActualColor}{\param{const wxColour\& }{clr}}
Sets actual text colour. Note: this DOESN'T change the colour!
You must create \helpref{wxHtmlColourCell}{wxhtmlcolourcell} yourself.
\membersection{wxHtmlWinParser::SetAlign}\label{wxhtmlwinparsersetalign}
\func{void}{SetAlign}{\param{int }{a}}
Sets default horizontal alignment (see
\helpref{wxHtmlContainerCell::SetAlignHor}{wxhtmlcontainercellsetalignhor}.)
Alignment of newly opened container is set to this value.
\membersection{wxHtmlWinParser::SetContainer}\label{wxhtmlwinparsersetcontainer}
\func{wxHtmlContainerCell*}{SetContainer}{\param{wxHtmlContainerCell *}{c}}
Allows you to directly set opened container. This is not recommended - you should use OpenContainer
wherever possible.
\membersection{wxHtmlWinParser::SetDC}\label{wxhtmlwinparsersetdc}
\func{virtual void}{SetDC}{\param{wxDC }{*dc}, \param{double }{pixel\_scale = 1.0}}
Sets the DC. This must be called before \helpref{Parse}{wxhtmlparserparse}!
{\it pixel\_scale} can be used when rendering to high-resolution
DCs (e.g. printer) to adjust size of pixel metrics. (Many dimensions in
HTML are given in pixels -- e.g. image sizes. 300x300 image would be only one
inch wide on typical printer. With pixel\_scale = 3.0 it would be 3 inches.)
\membersection{wxHtmlWinParser::SetFontBold}\label{wxhtmlwinparsersetfontbold}
\func{void}{SetFontBold}{\param{int }{x}}
Sets bold flag of actualfont. {\it x} is either true of false.
\membersection{wxHtmlWinParser::SetFontFace}\label{wxhtmlwinparsersetfontface}
\func{void}{SetFontFace}{\param{const wxString\& }{face}}
Sets current font face to {\it face}. This affects either fixed size
font or proportional, depending on context (whether the parser is
inside {\tt <TT>} tag or not).
\membersection{wxHtmlWinParser::SetFontFixed}\label{wxhtmlwinparsersetfontfixed}
\func{void}{SetFontFixed}{\param{int }{x}}
Sets fixed face flag of actualfont. {\it x} is either true of false.
\membersection{wxHtmlWinParser::SetFontItalic}\label{wxhtmlwinparsersetfontitalic}
\func{void}{SetFontItalic}{\param{int }{x}}
Sets italic flag of actualfont. {\it x} is either true of false.
\membersection{wxHtmlWinParser::SetFontSize}\label{wxhtmlwinparsersetfontsize}
\func{void}{SetFontSize}{\param{int }{s}}
Sets actual font size (HTML size varies from 1 to 7)
\membersection{wxHtmlWinParser::SetFontUnderlined}\label{wxhtmlwinparsersetfontunderlined}
\func{void}{SetFontUnderlined}{\param{int }{x}}
Sets underlined flag of actualfont. {\it x} is either true of false.
\membersection{wxHtmlWinParser::SetFonts}\label{wxhtmlwinparsersetfonts}
\func{void}{SetFonts}{\param{wxString }{normal\_face}, \param{wxString }{fixed\_face}, \param{const int }{*sizes = NULL}}
Sets fonts. See \helpref{wxHtmlWindow::SetFonts}{wxhtmlwindowsetfonts} for
detailed description.
\membersection{wxHtmlWinParser::SetInputEncoding}\label{wxhtmlwinparsersetinputencoding}
\func{void}{SetInputEncoding}{\param{wxFontEncoding }{enc}}
Sets input encoding. The parser uses this information to build conversion
tables from document's encoding to some encoding supported by operating
system.
\membersection{wxHtmlWinParser::SetLink}\label{wxhtmlwinparsersetlink}
\func{void}{SetLink}{\param{const wxHtmlLinkInfo\& }{link}}
Sets actual hypertext link. Empty link is represented
by \helpref{wxHtmlLinkInfo}{wxhtmllinkinfo} with {\it Href} equal
to wxEmptyString.
\membersection{wxHtmlWinParser::SetLinkColor}\label{wxhtmlwinparsersetlinkcolor}
\func{void}{SetLinkColor}{\param{const wxColour\& }{clr}}
Sets colour of hypertext link.

View File

@@ -1,73 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: forcelnk.h
// Purpose: see bellow
// Author: Vaclav Slavik
// RCS-ID: $Id$
// Copyright: (c) Vaclav Slavik
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/*
DESCRPITON:
mod_*.cpp files contain handlers for tags. These files are modules - they contain
one wxTagModule class and it's OnInit() method is called from wxApp's init method.
The module is called even if you only link it into the executable, so everything
seems wonderful.
The problem is that we have these modules in LIBRARY and mod_*.cpp files contain
no method nor class which is known out of the module. So the linker won't
link these .o/.obj files into executable because it detected that it is not used
by the program.
To workaround this I introduced set of macros FORCE_LINK_ME and FORCE_LINK. These
macros are generic and are not limited to mod_*.cpp files. You may find them quite
useful somewhere else...
How to use them:
let's suppose you want to always link file foo.cpp and that you have module
always.cpp that is certainly always linked (e.g. the one with main() function
or htmlwin.cpp in wxHtml library).
Place FORCE_LINK_ME(foo) somewhere in foo.cpp and FORCE_LINK(foo) somewhere
in always.cpp
See mod_*.cpp and htmlwin.cpp for example :-)
*/
#ifndef _WX_FORCELNK_H_
#define _WX_FORCELNK_H_
// This must be part of the module you want to force:
#define FORCE_LINK_ME(module_name) \
int _link_dummy_func_##module_name (); \
int _link_dummy_func_##module_name () \
{ \
return 1; \
}
// And this must be somewhere where it certainly will be linked:
#define FORCE_LINK(module_name) \
extern int _link_dummy_func_##module_name (); \
static int _link_dummy_var_##module_name = \
_link_dummy_func_##module_name ();
#define FORCE_WXHTML_MODULES() \
FORCE_LINK(m_layout) \
FORCE_LINK(m_fonts) \
FORCE_LINK(m_image) \
FORCE_LINK(m_list) \
FORCE_LINK(m_dflist) \
FORCE_LINK(m_pre) \
FORCE_LINK(m_hline) \
FORCE_LINK(m_links) \
FORCE_LINK(m_tables) \
FORCE_LINK(m_style)
#endif // _WX_FORCELNK_H_

View File

@@ -1,108 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: helpctrl.h
// Purpose: wxHtmlHelpController
// Notes: Based on htmlhelp.cpp, implementing a monolithic
// HTML Help controller class, by Vaclav Slavik
// Author: Harm van der Heijden and Vaclav Slavik
// RCS-ID: $Id$
// Copyright: (c) Harm van der Heijden and Vaclav Slavik
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_HELPCTRL_H_
#define _WX_HELPCTRL_H_
#include "wx/defs.h"
#if defined(__GNUG__) && !defined(__APPLE__)
#pragma interface "helpctrl.h"
#endif
#if wxUSE_WXHTML_HELP
#include "wx/html/helpfrm.h"
#include "wx/helpbase.h"
#define wxID_HTML_HELPFRAME (wxID_HIGHEST + 1)
class WXDLLEXPORT wxHtmlHelpController : public wxHelpControllerBase // wxEvtHandler
{
DECLARE_DYNAMIC_CLASS(wxHtmlHelpController)
public:
wxHtmlHelpController(int style = wxHF_DEFAULT_STYLE);
virtual ~wxHtmlHelpController();
void SetTitleFormat(const wxString& format);
void SetTempDir(const wxString& path) { m_helpData.SetTempDir(path); }
bool AddBook(const wxString& book_url, bool show_wait_msg = FALSE);
bool AddBook(const wxFileName& book_file, bool show_wait_msg = FALSE);
bool Display(const wxString& x);
bool Display(int id);
bool DisplayContents();
bool DisplayIndex();
bool KeywordSearch(const wxString& keyword);
wxHtmlHelpFrame* GetFrame() { return m_helpFrame; }
void UseConfig(wxConfigBase *config, const wxString& rootpath = wxEmptyString);
// Assigns config object to the Ctrl. This config is then
// used in subsequent calls to Read/WriteCustomization of both help
// Ctrl and it's wxHtmlWindow
virtual void ReadCustomization(wxConfigBase *cfg, const wxString& path = wxEmptyString);
virtual void WriteCustomization(wxConfigBase *cfg, const wxString& path = wxEmptyString);
//// Backward compatibility with wxHelpController API
virtual bool Initialize(const wxString& file, int WXUNUSED(server) ) { return Initialize(file); }
virtual bool Initialize(const wxString& file);
virtual void SetViewer(const wxString& WXUNUSED(viewer), long WXUNUSED(flags) = 0) {}
virtual bool LoadFile(const wxString& file = wxT(""));
virtual bool DisplaySection(int sectionNo);
virtual bool DisplaySection(const wxString& section) { return Display(section); }
virtual bool DisplayBlock(long blockNo) { return DisplaySection(blockNo); }
virtual bool DisplayTextPopup(const wxString& text, const wxPoint& pos);
virtual void SetFrameParameters(const wxString& title,
const wxSize& size,
const wxPoint& pos = wxDefaultPosition,
bool newFrameEachTime = FALSE);
/// Obtains the latest settings used by the help frame and the help
/// frame.
virtual wxFrame *GetFrameParameters(wxSize *size = NULL,
wxPoint *pos = NULL,
bool *newFrameEachTime = NULL);
// Get direct access to help data:
wxHtmlHelpData *GetHelpData() { return &m_helpData; }
virtual bool Quit() ;
virtual void OnQuit() {};
void OnCloseFrame(wxCloseEvent& evt);
// Make the help controller's frame 'modal' if
// needed
void AddGrabIfNeeded();
protected:
virtual wxHtmlHelpFrame* CreateHelpFrame(wxHtmlHelpData *data);
virtual void CreateHelpWindow();
virtual void DestroyHelpWindow();
wxHtmlHelpData m_helpData;
wxHtmlHelpFrame* m_helpFrame;
wxConfigBase * m_Config;
wxString m_ConfigRoot;
wxString m_titleFormat;
int m_FrameStyle;
// DECLARE_EVENT_TABLE()
DECLARE_NO_COPY_CLASS(wxHtmlHelpController)
};
#endif // wxUSE_WXHTML_HELP
#endif // _WX_HELPCTRL_H_

View File

@@ -1,218 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: helpdata.h
// Purpose: wxHtmlHelpData
// Notes: Based on htmlhelp.cpp, implementing a monolithic
// HTML Help controller class, by Vaclav Slavik
// Author: Harm van der Heijden and Vaclav Slavik
// RCS-ID: $Id$
// Copyright: (c) Harm van der Heijden and Vaclav Slavik
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_HELPDATA_H_
#define _WX_HELPDATA_H_
#if defined(__GNUG__) && !defined(__APPLE__)
#pragma interface "helpdata.h"
#endif
#include "wx/defs.h"
#if wxUSE_HTML
#include "wx/object.h"
#include "wx/string.h"
#include "wx/filesys.h"
#include "wx/dynarray.h"
#include "wx/font.h"
class WXDLLEXPORT wxHtmlHelpData;
//--------------------------------------------------------------------------------
// helper classes & structs
//--------------------------------------------------------------------------------
class WXDLLEXPORT wxHtmlBookRecord
{
public:
wxHtmlBookRecord(const wxString& bookfile, const wxString& basepath,
const wxString& title, const wxString& start)
{
m_BookFile = bookfile;
m_BasePath = basepath;
m_Title = title;
m_Start = start;
// for debugging, give the contents index obvious default values
m_ContentsStart = m_ContentsEnd = -1;
}
wxString GetBookFile() const { return m_BookFile; }
wxString GetTitle() const { return m_Title; }
wxString GetStart() const { return m_Start; }
wxString GetBasePath() const { return m_BasePath; }
/* SetContentsRange: store in the bookrecord where in the index/contents lists the
* book's records are stored. This to facilitate searching in a specific book.
* This code will have to be revised when loading/removing books becomes dynamic.
* (as opposed to appending only)
* Note that storing index range is pointless, because the index is alphab. sorted. */
void SetContentsRange(int start, int end) { m_ContentsStart = start; m_ContentsEnd = end; }
int GetContentsStart() const { return m_ContentsStart; }
int GetContentsEnd() const { return m_ContentsEnd; }
void SetTitle(const wxString& title) { m_Title = title; }
void SetBasePath(const wxString& path) { m_BasePath = path; }
void SetStart(const wxString& start) { m_Start = start; }
// returns full filename of page (which is part of the book),
// i.e. with book's basePath prepended. If page is already absolute
// path, basePath is _not_ prepended.
wxString GetFullPath(const wxString &page) const;
protected:
wxString m_BookFile;
wxString m_BasePath;
wxString m_Title;
wxString m_Start;
int m_ContentsStart;
int m_ContentsEnd;
};
WX_DECLARE_EXPORTED_OBJARRAY(wxHtmlBookRecord, wxHtmlBookRecArray);
struct wxHtmlContentsItem
{
short int m_Level;
int m_ID;
wxChar* m_Name;
wxChar* m_Page;
wxHtmlBookRecord *m_Book;
// returns full filename of m_Page, i.e. with book's basePath prepended
wxString GetFullPath() const { return m_Book->GetFullPath(m_Page); }
};
//------------------------------------------------------------------------------
// wxHtmlSearchEngine
// This class takes input streams and scans them for occurence
// of keyword(s)
//------------------------------------------------------------------------------
class WXDLLEXPORT wxHtmlSearchEngine : public wxObject
{
public:
wxHtmlSearchEngine() : wxObject() {m_Keyword = NULL; }
~wxHtmlSearchEngine() {if (m_Keyword) delete[] m_Keyword; }
// Sets the keyword we will be searching for
virtual void LookFor(const wxString& keyword, bool case_sensitive, bool whole_words_only);
// Scans the stream for the keyword.
// Returns TRUE if the stream contains keyword, fALSE otherwise
virtual bool Scan(const wxFSFile& file);
private:
wxChar *m_Keyword;
bool m_CaseSensitive;
bool m_WholeWords;
DECLARE_NO_COPY_CLASS(wxHtmlSearchEngine)
};
// State information of a search action. I'd have prefered to make this a nested
// class inside wxHtmlHelpData, but that's against coding standards :-(
// Never construct this class yourself, obtain a copy from
// wxHtmlHelpData::PrepareKeywordSearch(const wxString& key)
class WXDLLEXPORT wxHtmlSearchStatus
{
public:
// constructor; supply wxHtmlHelpData ptr, the keyword and (optionally) the
// title of the book to search. By default, all books are searched.
wxHtmlSearchStatus(wxHtmlHelpData* base, const wxString& keyword,
bool case_sensitive, bool whole_words_only,
const wxString& book = wxEmptyString);
bool Search(); // do the next iteration
bool IsActive() { return m_Active; }
int GetCurIndex() { return m_CurIndex; }
int GetMaxIndex() { return m_MaxIndex; }
const wxString& GetName() { return m_Name; }
wxHtmlContentsItem* GetContentsItem() { return m_ContentsItem; }
private:
wxHtmlHelpData* m_Data;
wxHtmlSearchEngine m_Engine;
wxString m_Keyword, m_Name;
wxChar *m_LastPage;
wxHtmlContentsItem* m_ContentsItem;
bool m_Active; // search is not finished
int m_CurIndex; // where we are now
int m_MaxIndex; // number of files we search
// For progress bar: 100*curindex/maxindex = % complete
DECLARE_NO_COPY_CLASS(wxHtmlSearchStatus)
};
class WXDLLEXPORT wxHtmlHelpData : public wxObject
{
DECLARE_DYNAMIC_CLASS(wxHtmlHelpData)
friend class wxHtmlSearchStatus;
public:
wxHtmlHelpData();
~wxHtmlHelpData();
// Sets directory where temporary files are stored.
// These temp files are index & contents file in binary (much faster to read)
// form. These files are NOT deleted on program's exit.
void SetTempDir(const wxString& path);
// Adds new book. 'book' is location of .htb file (stands for "html book").
// See documentation for details on its format.
// Returns success.
bool AddBook(const wxString& book);
bool AddBookParam(const wxFSFile& bookfile,
wxFontEncoding encoding,
const wxString& title, const wxString& contfile,
const wxString& indexfile = wxEmptyString,
const wxString& deftopic = wxEmptyString,
const wxString& path = wxEmptyString);
// Some accessing stuff:
// returns URL of page on basis of (file)name
wxString FindPageByName(const wxString& page);
// returns URL of page on basis of MS id
wxString FindPageById(int id);
const wxHtmlBookRecArray& GetBookRecArray() { return m_BookRecords; }
wxHtmlContentsItem* GetContents() { return m_Contents; }
int GetContentsCnt() { return m_ContentsCnt; }
wxHtmlContentsItem* GetIndex() { return m_Index; }
int GetIndexCnt() { return m_IndexCnt; }
protected:
wxString m_TempPath;
wxHtmlBookRecArray m_BookRecords;
// each book has one record in this array:
wxHtmlContentsItem* m_Contents;
int m_ContentsCnt;
wxHtmlContentsItem* m_Index; // list of all available books and pages.
int m_IndexCnt; // list of index items
protected:
// Imports .hhp files (MS HTML Help Workshop)
bool LoadMSProject(wxHtmlBookRecord *book, wxFileSystem& fsys,
const wxString& indexfile, const wxString& contentsfile);
// Reads binary book
bool LoadCachedBook(wxHtmlBookRecord *book, wxInputStream *f);
// Writes binary book
bool SaveCachedBook(wxHtmlBookRecord *book, wxOutputStream *f);
DECLARE_NO_COPY_CLASS(wxHtmlHelpData)
};
#endif
#endif

View File

@@ -1,239 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: helpfrm.h
// Purpose: wxHtmlHelpFrame
// Notes: Based on htmlhelp.cpp, implementing a monolithic
// HTML Help controller class, by Vaclav Slavik
// Author: Harm van der Heijden and Vaclav Slavik
// RCS-ID: $Id$
// Copyright: (c) Harm van der Heijden and Vaclav Slavik
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_HELPFRM_H_
#define _WX_HELPFRM_H_
#if defined(__GNUG__) && !defined(__APPLE__)
#pragma interface "helpfrm.h"
#endif
#include "wx/defs.h"
#if wxUSE_WXHTML_HELP
#include "wx/html/helpdata.h"
#include "wx/window.h"
#include "wx/frame.h"
#include "wx/config.h"
#include "wx/splitter.h"
#include "wx/notebook.h"
#include "wx/listbox.h"
#include "wx/choice.h"
#include "wx/combobox.h"
#include "wx/checkbox.h"
#include "wx/stattext.h"
#include "wx/html/htmlwin.h"
#include "wx/html/htmprint.h"
class WXDLLEXPORT wxButton;
class WXDLLEXPORT wxTextCtrl;
// style flags for the Help Frame
#define wxHF_TOOLBAR 0x0001
#define wxHF_CONTENTS 0x0002
#define wxHF_INDEX 0x0004
#define wxHF_SEARCH 0x0008
#define wxHF_BOOKMARKS 0x0010
#define wxHF_OPEN_FILES 0x0020
#define wxHF_PRINT 0x0040
#define wxHF_FLAT_TOOLBAR 0x0080
#define wxHF_MERGE_BOOKS 0x0100
#define wxHF_ICONS_BOOK 0x0200
#define wxHF_ICONS_BOOK_CHAPTER 0x0400
#define wxHF_ICONS_FOLDER 0x0000 // this is 0 since it is default
#define wxHF_DEFAULT_STYLE (wxHF_TOOLBAR | wxHF_CONTENTS | \
wxHF_INDEX | wxHF_SEARCH | \
wxHF_BOOKMARKS | wxHF_PRINT)
//compatibility:
#define wxHF_OPENFILES wxHF_OPEN_FILES
#define wxHF_FLATTOOLBAR wxHF_FLAT_TOOLBAR
#define wxHF_DEFAULTSTYLE wxHF_DEFAULT_STYLE
struct wxHtmlHelpFrameCfg
{
int x, y, w, h;
long sashpos;
bool navig_on;
};
class WXDLLEXPORT wxHelpControllerBase;
class WXDLLEXPORT wxHtmlHelpFrame : public wxFrame
{
DECLARE_DYNAMIC_CLASS(wxHtmlHelpFrame)
public:
wxHtmlHelpFrame(wxHtmlHelpData* data = NULL) { Init(data); }
wxHtmlHelpFrame(wxWindow* parent, wxWindowID wxWindowID,
const wxString& title = wxEmptyString,
int style = wxHF_DEFAULT_STYLE, wxHtmlHelpData* data = NULL);
bool Create(wxWindow* parent, wxWindowID id, const wxString& title = wxEmptyString,
int style = wxHF_DEFAULT_STYLE);
~wxHtmlHelpFrame();
wxHtmlHelpData* GetData() { return m_Data; }
wxHelpControllerBase* GetController() const { return m_helpController; }
void SetController(wxHelpControllerBase* controller) { m_helpController = controller; }
// Sets format of title of the frame. Must contain exactly one "%s"
// (for title of displayed HTML page)
void SetTitleFormat(const wxString& format);
// Displays page x. If not found it will offect the user a choice of
// searching books.
// Looking for the page runs in these steps:
// 1. try to locate file named x (if x is for example "doc/howto.htm")
// 2. try to open starting page of book x
// 3. try to find x in contents (if x is for example "How To ...")
// 4. try to find x in index (if x is for example "How To ...")
bool Display(const wxString& x);
// Alternative version that works with numeric ID.
// (uses extension to MS format, <param name="ID" value=id>, see docs)
bool Display(const int id);
// Displays help window and focuses contents.
bool DisplayContents();
// Displays help window and focuses index.
bool DisplayIndex();
// Searches for keyword. Returns TRUE and display page if found, return
// FALSE otherwise
// Syntax of keyword is Altavista-like:
// * words are separated by spaces
// (but "\"hello world\"" is only one world "hello world")
// * word may be pretended by + or -
// (+ : page must contain the word ; - : page can't contain the word)
// * if there is no + or - before the word, + is default
bool KeywordSearch(const wxString& keyword);
void UseConfig(wxConfigBase *config, const wxString& rootpath = wxEmptyString)
{
m_Config = config;
m_ConfigRoot = rootpath;
ReadCustomization(config, rootpath);
}
// Saves custom settings into cfg config. it will use the path 'path'
// if given, otherwise it will save info into currently selected path.
// saved values : things set by SetFonts, SetBorders.
void ReadCustomization(wxConfigBase *cfg, const wxString& path = wxEmptyString);
void WriteCustomization(wxConfigBase *cfg, const wxString& path = wxEmptyString);
// call this to let wxHtmlHelpFrame know page changed
void NotifyPageChanged();
// Refreshes Contents and Index tabs
void RefreshLists();
protected:
void Init(wxHtmlHelpData* data = NULL);
// Adds items to m_Contents tree control
void CreateContents();
// Adds items to m_IndexList
void CreateIndex();
// Add books to search choice panel
void CreateSearch();
// Add custom buttons to toolbar
virtual void AddToolbarButtons(wxToolBar *toolBar, int style);
// Displays options dialog (fonts etc.)
virtual void OptionsDialog();
void OnToolbar(wxCommandEvent& event);
void OnContentsSel(wxTreeEvent& event);
void OnIndexSel(wxCommandEvent& event);
void OnIndexFind(wxCommandEvent& event);
void OnIndexAll(wxCommandEvent& event);
void OnSearchSel(wxCommandEvent& event);
void OnSearch(wxCommandEvent& event);
void OnBookmarksSel(wxCommandEvent& event);
void OnCloseWindow(wxCloseEvent& event);
void OnActivate(wxActivateEvent& event);
#ifdef __WXMAC__
void OnClose(wxCommandEvent& event);
void OnAbout(wxCommandEvent& event);
#endif
// Images:
enum {
IMG_Book = 0,
IMG_Folder,
IMG_Page
};
protected:
wxHtmlHelpData* m_Data;
bool m_DataCreated; // m_Data created by frame, or supplied?
wxString m_TitleFormat; // title of the help frame
// below are various pointers to GUI components
wxHtmlWindow *m_HtmlWin;
wxSplitterWindow *m_Splitter;
wxPanel *m_NavigPan;
wxNotebook *m_NavigNotebook;
wxTreeCtrl *m_ContentsBox;
wxTextCtrl *m_IndexText;
wxButton *m_IndexButton;
wxButton *m_IndexButtonAll;
wxListBox *m_IndexList;
wxTextCtrl *m_SearchText;
wxButton *m_SearchButton;
wxListBox *m_SearchList;
wxChoice *m_SearchChoice;
wxStaticText *m_IndexCountInfo;
wxCheckBox *m_SearchCaseSensitive;
wxCheckBox *m_SearchWholeWords;
wxComboBox *m_Bookmarks;
wxArrayString m_BookmarksNames, m_BookmarksPages;
wxHtmlHelpFrameCfg m_Cfg;
wxConfigBase *m_Config;
wxString m_ConfigRoot;
// pagenumbers of controls in notebook (usually 0,1,2)
int m_ContentsPage;
int m_IndexPage;
int m_SearchPage;
// lists of available fonts (used in options dialog)
wxArrayString *m_NormalFonts, *m_FixedFonts;
int m_FontSize; // 0,1,2 = small,medium,big
wxString m_NormalFace, m_FixedFace;
bool m_UpdateContents;
#if wxUSE_PRINTING_ARCHITECTURE
wxHtmlEasyPrinting *m_Printer;
#endif
wxHashTable *m_PagesHash;
wxHelpControllerBase* m_helpController;
int m_hfStyle;
DECLARE_EVENT_TABLE()
DECLARE_NO_COPY_CLASS(wxHtmlHelpFrame)
};
#endif // wxUSE_WXHTML_HELP
#endif

View File

@@ -1,382 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: htmlcell.h
// Purpose: wxHtmlCell class is used by wxHtmlWindow/wxHtmlWinParser
// as a basic visual element of HTML page
// Author: Vaclav Slavik
// RCS-ID: $Id$
// Copyright: (c) 1999 Vaclav Slavik
// Licence: wxWindows Licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_HTMLCELL_H_
#define _WX_HTMLCELL_H_
#if defined(__GNUG__) && !defined(__APPLE__)
#pragma interface "htmlcell.h"
#endif
#include "wx/defs.h"
#if wxUSE_HTML
#include "wx/html/htmltag.h"
#include "wx/html/htmldefs.h"
#include "wx/window.h"
class WXDLLEXPORT wxHtmlLinkInfo;
class WXDLLEXPORT wxHtmlCell;
class WXDLLEXPORT wxHtmlContainerCell;
//--------------------------------------------------------------------------------
// wxHtmlCell
// Internal data structure. It represents fragments of parsed HTML
// page - a word, picture, table, horizontal line and so on.
// It is used by wxHtmlWindow to represent HTML page in memory.
//--------------------------------------------------------------------------------
class WXDLLEXPORT wxHtmlCell : public wxObject
{
public:
wxHtmlCell();
virtual ~wxHtmlCell();
void SetParent(wxHtmlContainerCell *p) {m_Parent = p;}
wxHtmlContainerCell *GetParent() const {return m_Parent;}
int GetPosX() const {return m_PosX;}
int GetPosY() const {return m_PosY;}
int GetWidth() const {return m_Width;}
int GetHeight() const {return m_Height;}
int GetDescent() const {return m_Descent;}
const wxString& GetId() const { return m_id; }
void SetId(const wxString& id) { m_id = id; }
// returns the link associated with this cell. The position is position within
// the cell so it varies from 0 to m_Width, from 0 to m_Height
virtual wxHtmlLinkInfo* GetLink(int WXUNUSED(x) = 0, int WXUNUSED(y) = 0) const
{ return m_Link; }
// members access methods
wxHtmlCell *GetNext() const {return m_Next;}
// members writing methods
virtual void SetPos(int x, int y) {m_PosX = x, m_PosY = y;}
void SetLink(const wxHtmlLinkInfo& link);
void SetNext(wxHtmlCell *cell) {m_Next = cell;}
// 1. adjust cell's width according to the fact that maximal possible width is w.
// (this has sense when working with horizontal lines, tables etc.)
// 2. prepare layout (=fill-in m_PosX, m_PosY (and sometime m_Height) members)
// = place items to fit window, according to the width w
virtual void Layout(int w);
// renders the cell
virtual void Draw(wxDC& WXUNUSED(dc), int WXUNUSED(x), int WXUNUSED(y), int WXUNUSED(view_y1), int WXUNUSED(view_y2)) {}
// proceed drawing actions in case the cell is not visible (scrolled out of screen).
// This is needed to change fonts, colors and so on
virtual void DrawInvisible(wxDC& WXUNUSED(dc), int WXUNUSED(x), int WXUNUSED(y)) {}
// This method returns pointer to the FIRST cell for that
// the condition
// is true. It first checks if the condition is true for this
// cell and then calls m_Next->Find(). (Note: it checks
// all subcells if the cell is container)
// Condition is unique condition identifier (see htmldefs.h)
// (user-defined condition IDs should start from 10000)
// and param is optional parameter
// Example : m_Cell->Find(wxHTML_COND_ISANCHOR, "news");
// returns pointer to anchor news
virtual const wxHtmlCell* Find(int condition, const void* param) const;
// This function is called when mouse button is clicked over the cell.
//
// Parent is pointer to wxHtmlWindow that generated the event
// HINT: if this handling is not enough for you you should use
// wxHtmlWidgetCell
virtual void OnMouseClick(wxWindow *parent, int x, int y, const wxMouseEvent& event);
// This method used to adjust pagebreak position. The parameter is
// variable that contains y-coordinate of page break (= horizontal line that
// should not be crossed by words, images etc.). If this cell cannot be divided
// into two pieces (each one on another page) then it moves the pagebreak
// few pixels up.
//
// Returned value : true if pagebreak was modified, false otherwise
// Usage : while (container->AdjustPagebreak(&p)) {}
virtual bool AdjustPagebreak(int *pagebreak, int *known_pagebreaks = NULL, int number_of_pages = 0) const;
// Sets cell's behaviour on pagebreaks (see AdjustPagebreak). Default
// is true - the cell can be split on two pages
void SetCanLiveOnPagebreak(bool can) { m_CanLiveOnPagebreak = can; }
// Returns y-coordinates that contraint the cell, i.e. left is highest
// and right lowest coordinate such that the cell lays between then.
// Note: this method does not return meaningful values if you haven't
// called Layout() before!
virtual void GetHorizontalConstraints(int *left, int *right) const;
// Returns true for simple == terminal cells, i.e. not composite ones.
// This if for internal usage only and may disappear in future versions!
virtual bool IsTerminalCell() const { return TRUE; }
// Find the terminal cell inside this cell at the given position (relative
// to this cell)
//
// Returns NULL if not found
virtual wxHtmlCell *FindCellByPos(wxCoord x, wxCoord y) const;
protected:
wxHtmlCell *m_Next;
// pointer to the next cell
wxHtmlContainerCell *m_Parent;
// pointer to parent cell
long m_Width, m_Height, m_Descent;
// dimensions of fragment
// m_Descent is used to position text&images..
long m_PosX, m_PosY;
// position where the fragment is drawn
wxHtmlLinkInfo *m_Link;
// destination address if this fragment is hypertext link, NULL otherwise
bool m_CanLiveOnPagebreak;
// true if this cell can be placed on pagebreak, false otherwise
wxString m_id;
// unique identifier of the cell, generated from "id" property of tags
DECLARE_NO_COPY_CLASS(wxHtmlCell)
};
//--------------------------------------------------------------------------------
// Inherited cells:
//--------------------------------------------------------------------------------
//--------------------------------------------------------------------------------
// wxHtmlWordCell
// Single word in input stream.
//--------------------------------------------------------------------------------
class WXDLLEXPORT wxHtmlWordCell : public wxHtmlCell
{
public:
wxHtmlWordCell(const wxString& word, wxDC& dc);
void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2);
protected:
wxString m_Word;
};
//--------------------------------------------------------------------------------
// wxHtmlContainerCell
// Container - it contains other cells. Basic of layout algorithm.
//--------------------------------------------------------------------------------
class WXDLLEXPORT wxHtmlContainerCell : public wxHtmlCell
{
public:
wxHtmlContainerCell(wxHtmlContainerCell *parent);
~wxHtmlContainerCell();
virtual void Layout(int w);
virtual void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2);
virtual void DrawInvisible(wxDC& dc, int x, int y);
virtual bool AdjustPagebreak(int *pagebreak, int *known_pagebreaks = NULL, int number_of_pages = 0) const;
// insert cell at the end of m_Cells list
void InsertCell(wxHtmlCell *cell);
// sets horizontal/vertical alignment
void SetAlignHor(int al) {m_AlignHor = al; m_LastLayout = -1;}
int GetAlignHor() const {return m_AlignHor;}
void SetAlignVer(int al) {m_AlignVer = al; m_LastLayout = -1;}
int GetAlignVer() const {return m_AlignVer;}
// sets left-border indentation. units is one of wxHTML_UNITS_* constants
// what is combination of wxHTML_INDENT_*
void SetIndent(int i, int what, int units = wxHTML_UNITS_PIXELS);
// returns the indentation. ind is one of wxHTML_INDENT_* constants
int GetIndent(int ind) const;
// returns type of value returned by GetIndent(ind)
int GetIndentUnits(int ind) const;
// sets alignment info based on given tag's params
void SetAlign(const wxHtmlTag& tag);
// sets floating width adjustment
// (examples : 32 percent of parent container,
// -15 pixels percent (this means 100 % - 15 pixels)
void SetWidthFloat(int w, int units) {m_WidthFloat = w; m_WidthFloatUnits = units; m_LastLayout = -1;}
void SetWidthFloat(const wxHtmlTag& tag, double pixel_scale = 1.0);
// sets minimal height of this container.
void SetMinHeight(int h, int align = wxHTML_ALIGN_TOP) {m_MinHeight = h; m_MinHeightAlign = align; m_LastLayout = -1;}
void SetBackgroundColour(const wxColour& clr) {m_UseBkColour = TRUE; m_BkColour = clr;}
// returns background colour (of wxNullColour if none set), so that widgets can
// adapt to it:
wxColour GetBackgroundColour();
void SetBorder(const wxColour& clr1, const wxColour& clr2) {m_UseBorder = TRUE; m_BorderColour1 = clr1, m_BorderColour2 = clr2;}
virtual wxHtmlLinkInfo* GetLink(int x = 0, int y = 0) const;
virtual const wxHtmlCell* Find(int condition, const void* param) const;
virtual void OnMouseClick(wxWindow *parent, int x, int y, const wxMouseEvent& event);
virtual void GetHorizontalConstraints(int *left, int *right) const;
// returns pointer to the first cell in container or NULL
wxHtmlCell* GetFirstCell() const {return m_Cells;}
// see comment in wxHtmlCell about this method
virtual bool IsTerminalCell() const { return FALSE; }
virtual wxHtmlCell *FindCellByPos(wxCoord x, wxCoord y) const;
protected:
int m_IndentLeft, m_IndentRight, m_IndentTop, m_IndentBottom;
// indentation of subcells. There is always m_Indent pixels
// big space between given border of the container and the subcells
// it m_Indent < 0 it is in PERCENTS, otherwise it is in pixels
int m_MinHeight, m_MinHeightAlign;
// minimal height.
wxHtmlCell *m_Cells, *m_LastCell;
// internal cells, m_Cells points to the first of them, m_LastCell to the last one.
// (LastCell is needed only to speed-up InsertCell)
int m_AlignHor, m_AlignVer;
// alignment horizontal and vertical (left, center, right)
int m_WidthFloat, m_WidthFloatUnits;
// width float is used in adjustWidth
bool m_UseBkColour;
wxColour m_BkColour;
// background color of this container
bool m_UseBorder;
wxColour m_BorderColour1, m_BorderColour2;
// borders color of this container
int m_LastLayout;
// if != -1 then call to Layout may be no-op
// if previous call to Layout has same argument
DECLARE_NO_COPY_CLASS(wxHtmlContainerCell)
};
//--------------------------------------------------------------------------------
// wxHtmlColourCell
// Color changer.
//--------------------------------------------------------------------------------
class WXDLLEXPORT wxHtmlColourCell : public wxHtmlCell
{
public:
wxHtmlColourCell(const wxColour& clr, int flags = wxHTML_CLR_FOREGROUND) : wxHtmlCell() {m_Colour = clr; m_Flags = flags;}
virtual void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2);
virtual void DrawInvisible(wxDC& dc, int x, int y);
protected:
wxColour m_Colour;
unsigned m_Flags;
};
//--------------------------------------------------------------------------------
// wxHtmlFontCell
// Sets actual font used for text rendering
//--------------------------------------------------------------------------------
class WXDLLEXPORT wxHtmlFontCell : public wxHtmlCell
{
public:
wxHtmlFontCell(wxFont *font) : wxHtmlCell() { m_Font = (*font); }
virtual void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2);
virtual void DrawInvisible(wxDC& dc, int x, int y);
protected:
wxFont m_Font;
};
//--------------------------------------------------------------------------------
// wxHtmlwidgetCell
// This cell is connected with wxWindow object
// You can use it to insert windows into HTML page
// (buttons, input boxes etc.)
//--------------------------------------------------------------------------------
class WXDLLEXPORT wxHtmlWidgetCell : public wxHtmlCell
{
public:
// !!! wnd must have correct parent!
// if w != 0 then the m_Wnd has 'floating' width - it adjust
// it's width according to parent container's width
// (w is percent of parent's width)
wxHtmlWidgetCell(wxWindow *wnd, int w = 0);
~wxHtmlWidgetCell() { m_Wnd->Destroy(); }
virtual void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2);
virtual void DrawInvisible(wxDC& dc, int x, int y);
virtual void Layout(int w);
protected:
wxWindow* m_Wnd;
int m_WidthFloat;
// width float is used in adjustWidth (it is in percents)
DECLARE_NO_COPY_CLASS(wxHtmlWidgetCell)
};
//--------------------------------------------------------------------------------
// wxHtmlLinkInfo
// Internal data structure. It represents hypertext link
//--------------------------------------------------------------------------------
class WXDLLEXPORT wxHtmlLinkInfo : public wxObject
{
public:
wxHtmlLinkInfo() : wxObject()
{ m_Href = m_Target = wxEmptyString; m_Event = NULL, m_Cell = NULL; }
wxHtmlLinkInfo(const wxString& href, const wxString& target = wxEmptyString) : wxObject()
{ m_Href = href; m_Target = target; m_Event = NULL, m_Cell = NULL; }
wxHtmlLinkInfo(const wxHtmlLinkInfo& l) : wxObject()
{ m_Href = l.m_Href, m_Target = l.m_Target, m_Event = l.m_Event;
m_Cell = l.m_Cell; }
wxHtmlLinkInfo& operator=(const wxHtmlLinkInfo& l)
{ m_Href = l.m_Href, m_Target = l.m_Target, m_Event = l.m_Event;
m_Cell = l.m_Cell; return *this; }
void SetEvent(const wxMouseEvent *e) { m_Event = e; }
void SetHtmlCell(const wxHtmlCell *e) { m_Cell = e; }
wxString GetHref() const { return m_Href; }
wxString GetTarget() const { return m_Target; }
const wxMouseEvent* GetEvent() const { return m_Event; }
const wxHtmlCell* GetHtmlCell() const { return m_Cell; }
private:
wxString m_Href, m_Target;
const wxMouseEvent *m_Event;
const wxHtmlCell *m_Cell;
};
#endif // wxUSE_HTML
#endif // _WX_HTMLCELL_H_

View File

@@ -1,157 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: htmldefs.h
// Purpose: constants for wxhtml library
// Author: Vaclav Slavik
// RCS-ID: $Id$
// Copyright: (c) 1999 Vaclav Slavik
// Licence: wxWindows Licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_HTMLDEFS_H_
#define _WX_HTMLDEFS_H_
#include "wx/defs.h"
#if wxUSE_HTML
//--------------------------------------------------------------------------------
// ALIGNMENTS
// Describes alignment of text etc. in containers
//--------------------------------------------------------------------------------
#define wxHTML_ALIGN_LEFT 0x0000
#define wxHTML_ALIGN_RIGHT 0x0002
#define wxHTML_ALIGN_JUSTIFY 0x0010
#define wxHTML_ALIGN_TOP 0x0004
#define wxHTML_ALIGN_BOTTOM 0x0008
#define wxHTML_ALIGN_CENTER 0x0001
//--------------------------------------------------------------------------------
// COLOR MODES
// Used by wxHtmlColourCell to determine clr of what is changing
//--------------------------------------------------------------------------------
#define wxHTML_CLR_FOREGROUND 0x0001
#define wxHTML_CLR_BACKGROUND 0x0002
//--------------------------------------------------------------------------------
// UNITS
// Used to specify units
//--------------------------------------------------------------------------------
#define wxHTML_UNITS_PIXELS 0x0001
#define wxHTML_UNITS_PERCENT 0x0002
//--------------------------------------------------------------------------------
// INDENTS
// Used to specify indetation relatives
//--------------------------------------------------------------------------------
#define wxHTML_INDENT_LEFT 0x0010
#define wxHTML_INDENT_RIGHT 0x0020
#define wxHTML_INDENT_TOP 0x0040
#define wxHTML_INDENT_BOTTOM 0x0080
#define wxHTML_INDENT_HORIZONTAL wxHTML_INDENT_LEFT | wxHTML_INDENT_RIGHT
#define wxHTML_INDENT_VERTICAL wxHTML_INDENT_TOP | wxHTML_INDENT_BOTTOM
#define wxHTML_INDENT_ALL wxHTML_INDENT_VERTICAL | wxHTML_INDENT_HORIZONTAL
//--------------------------------------------------------------------------------
// FIND CONDITIONS
// Identifiers of wxHtmlCell's Find() conditions
//--------------------------------------------------------------------------------
#define wxHTML_COND_ISANCHOR 1
// Finds the anchor of 'param' name (pointer to wxString).
#define wxHTML_COND_ISIMAGEMAP 2
// Finds imagemap of 'param' name (pointer to wxString).
// (used exclusively by m_image.cpp)
#define wxHTML_COND_USER 10000
// User-defined conditions should start from this number
//--------------------------------------------------------------------------------
// INTERNALS
// wxHTML internal constants
//--------------------------------------------------------------------------------
#define wxHTML_SCROLL_STEP 16
/* size of one scroll step of wxHtmlWindow in pixels */
#define wxHTML_BUFLEN 1024
/* size of temporary buffer used during parsing */
#define wxHTML_REALLOC_STEP 32
/* steps of array reallocation */
#define wxHTML_PRINT_MAX_PAGES 999
/* maximum number of pages printable via html printing */
/* default font sizes */
#ifdef __WXMSW__
#define wxHTML_FONT_SIZE_1 7
#define wxHTML_FONT_SIZE_2 8
#define wxHTML_FONT_SIZE_3 10
#define wxHTML_FONT_SIZE_4 12
#define wxHTML_FONT_SIZE_5 16
#define wxHTML_FONT_SIZE_6 22
#define wxHTML_FONT_SIZE_7 30
#elif defined(__WXMAC__)
#define wxHTML_FONT_SIZE_1 9
#define wxHTML_FONT_SIZE_2 12
#define wxHTML_FONT_SIZE_3 14
#define wxHTML_FONT_SIZE_4 18
#define wxHTML_FONT_SIZE_5 24
#define wxHTML_FONT_SIZE_6 30
#define wxHTML_FONT_SIZE_7 36
#else
#define wxHTML_FONT_SIZE_1 10
#define wxHTML_FONT_SIZE_2 12
#define wxHTML_FONT_SIZE_3 14
#define wxHTML_FONT_SIZE_4 16
#define wxHTML_FONT_SIZE_5 19
#define wxHTML_FONT_SIZE_6 24
#define wxHTML_FONT_SIZE_7 32
#endif
#if WXWIN_COMPATIBILITY_2
#define HTML_ALIGN_LEFT wxHTML_ALIGN_LEFT
#define HTML_ALIGN_RIGHT wxHTML_ALIGN_RIGHT
#define HTML_ALIGN_TOP wxHTML_ALIGN_TOP
#define HTML_ALIGN_BOTTOM wxHTML_ALIGN_BOTTOM
#define HTML_ALIGN_CENTER wxHTML_ALIGN_CENTER
#define HTML_CLR_FOREGROUND wxHTML_CLR_FOREGROUND
#define HTML_CLR_BACKGROUND wxHTML_CLR_BACKGROUND
#define HTML_UNITS_PIXELS wxHTML_UNITS_PIXELS
#define HTML_UNITS_PERCENT wxHTML_UNITS_PERCENT
#define HTML_INDENT_LEFT wxHTML_INDENT_LEFT
#define HTML_INDENT_RIGHT wxHTML_INDENT_RIGHT
#define HTML_INDENT_TOP wxHTML_INDENT_TOP
#define HTML_INDENT_BOTTOM wxHTML_INDENT_BOTTOM
#define HTML_INDENT_HORIZONTAL wxHTML_INDENT_HORIZONTAL
#define HTML_INDENT_VERTICAL wxHTML_INDENT_VERTICAL
#define HTML_INDENT_ALL wxHTML_INDENT_ALL
#define HTML_COND_ISANCHOR wxHTML_COND_ISANCHOR
#define HTML_COND_ISIMAGEMAP wxHTML_COND_ISIMAGEMAP
#define HTML_COND_USER wxHTML_COND_USER
#endif
#endif
#endif

View File

@@ -1,87 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: htmlfilt.h
// Purpose: filters
// Author: Vaclav Slavik
// RCS-ID: $Id$
// Copyright: (c) 1999 Vaclav Slavik
// Licence: wxWindows Licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_HTMLFILT_H_
#define _WX_HTMLFILT_H_
#if defined(__GNUG__) && !defined(__APPLE__)
#pragma interface "htmlfilt.h"
#endif
#include "wx/defs.h"
#if wxUSE_HTML
#include "wx/filesys.h"
//--------------------------------------------------------------------------------
// wxHtmlFilter
// This class is input filter. It can "translate" files
// in non-HTML format to HTML format
// interface to access certain
// kinds of files (HTPP, FTP, local, tar.gz etc..)
//--------------------------------------------------------------------------------
class WXDLLEXPORT wxHtmlFilter : public wxObject
{
DECLARE_ABSTRACT_CLASS(wxHtmlFilter)
public:
wxHtmlFilter() : wxObject() {}
virtual ~wxHtmlFilter() {}
// returns TRUE if this filter is able to open&read given file
virtual bool CanRead(const wxFSFile& file) const = 0;
// Reads given file and returns HTML document.
// Returns empty string if opening failed
virtual wxString ReadFile(const wxFSFile& file) const = 0;
};
//--------------------------------------------------------------------------------
// wxHtmlFilterPlainText
// This filter is used as default filter if no other can
// be used (= uknown type of file). It is used by
// wxHtmlWindow itself.
//--------------------------------------------------------------------------------
class WXDLLEXPORT wxHtmlFilterPlainText : public wxHtmlFilter
{
DECLARE_DYNAMIC_CLASS(wxHtmlFilterPlainText)
public:
virtual bool CanRead(const wxFSFile& file) const;
virtual wxString ReadFile(const wxFSFile& file) const;
};
//--------------------------------------------------------------------------------
// wxHtmlFilterHTML
// filter for text/html
//--------------------------------------------------------------------------------
class wxHtmlFilterHTML : public wxHtmlFilter
{
DECLARE_DYNAMIC_CLASS(wxHtmlFilterHTML)
public:
virtual bool CanRead(const wxFSFile& file) const;
virtual wxString ReadFile(const wxFSFile& file) const;
};
#endif // wxUSE_HTML
#endif // _WX_HTMLFILT_H_

View File

@@ -1,278 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: htmlpars.h
// Purpose: wxHtmlParser class (generic parser)
// Author: Vaclav Slavik
// RCS-ID: $Id$
// Copyright: (c) 1999 Vaclav Slavik
// Licence: wxWindows Licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_HTMLPARS_H_
#define _WX_HTMLPARS_H_
#if defined(__GNUG__) && !defined(__APPLE__)
#pragma interface "htmlpars.h"
#endif
#include "wx/defs.h"
#if wxUSE_HTML
#include "wx/html/htmltag.h"
#include "wx/filesys.h"
#include "wx/hash.h"
#include "wx/fontenc.h"
class WXDLLEXPORT wxMBConv;
class WXDLLEXPORT wxHtmlParser;
class WXDLLEXPORT wxHtmlTagHandler;
class WXDLLEXPORT wxHtmlEntitiesParser;
class wxHtmlTextPieces;
class wxHtmlParserState;
enum wxHtmlURLType
{
wxHTML_URL_PAGE,
wxHTML_URL_IMAGE,
wxHTML_URL_OTHER
};
// This class handles generic parsing of HTML document : it scans
// the document and divide it into blocks of tags (where one block
// consists of starting and ending tag and of text between these
// 2 tags.
class WXDLLEXPORT wxHtmlParser : public wxObject
{
DECLARE_ABSTRACT_CLASS(wxHtmlParser)
public:
wxHtmlParser();
virtual ~wxHtmlParser();
// Sets the class which will be used for opening files
void SetFS(wxFileSystem *fs) { m_FS = fs; }
wxFileSystem* GetFS() const { return m_FS; }
// Opens file if the parser is allowed to open given URL (may be forbidden
// for security reasons)
virtual wxFSFile *OpenURL(wxHtmlURLType type, const wxString& url) const;
// You can simply call this method when you need parsed output.
// This method does these things:
// 1. call InitParser(source);
// 2. call DoParsing();
// 3. call GetProduct(); (it's return value is then returned)
// 4. call DoneParser();
wxObject* Parse(const wxString& source);
// Sets the source. This must be called before running Parse() method.
virtual void InitParser(const wxString& source);
// This must be called after Parse().
virtual void DoneParser();
// May be called during parsing to immediately return from Parse().
virtual void StopParsing() { m_stopParsing = TRUE; }
// Parses the m_Source from begin_pos to end_pos-1.
// (in noparams version it parses whole m_Source)
void DoParsing(int begin_pos, int end_pos);
void DoParsing();
// Returns pointer to the tag at parser's current position
wxHtmlTag *GetCurrentTag() const { return m_CurTag; }
// Returns product of parsing
// Returned value is result of parsing of the part. The type of this result
// depends on internal representation in derived parser
// (see wxHtmlWinParser for details).
virtual wxObject* GetProduct() = 0;
// adds handler to the list & hash table of handlers.
virtual void AddTagHandler(wxHtmlTagHandler *handler);
// Forces the handler to handle additional tags (not returned by GetSupportedTags).
// The handler should already be in use by this parser.
// Example: you want to parse following pseudo-html structure:
// <myitems>
// <it name="one" value="1">
// <it name="two" value="2">
// </myitems>
// <it> This last it has different meaning, we don't want it to be parsed by myitems handler!
// handler can handle only 'myitems' (e.g. it's GetSupportedTags returns "MYITEMS")
// you can call PushTagHandler(handler, "IT") when you find <myitems>
// and call PopTagHandler() when you find </myitems>
void PushTagHandler(wxHtmlTagHandler *handler, wxString tags);
// Restores state before last call to PushTagHandler
void PopTagHandler();
wxString* GetSource() {return &m_Source;}
void SetSource(const wxString& src);
// Sets HTML source and remebers current parser's state so that it can
// later be restored. This is useful for on-line modifications of
// HTML source (for example, <pre> handler replaces spaces with &nbsp;
// and newlines with <br>)
virtual void SetSourceAndSaveState(const wxString& src);
// Restores parser's state from stack or returns FALSE if the stack is
// empty
virtual bool RestoreState();
// Parses HTML string 'markup' and extracts charset info from <meta> tag
// if present. Returns empty string if the tag is missing.
// For wxHTML's internal use.
static wxString ExtractCharsetInformation(const wxString& markup);
protected:
// DOM structure
void CreateDOMTree();
void DestroyDOMTree();
void CreateDOMSubTree(wxHtmlTag *cur,
int begin_pos, int end_pos,
wxHtmlTagsCache *cache);
// Adds text to the output.
// This is called from Parse() and must be overriden in derived classes.
// txt is not guaranteed to be only one word. It is largest continuous part of text
// (= not broken by tags)
// NOTE : using char* because of speed improvements
virtual void AddText(const wxChar* txt) = 0;
// Adds tag and proceeds it. Parse() may (and usually is) called from this method.
// This is called from Parse() and may be overriden.
// Default behavior is that it looks for proper handler in m_Handlers. The tag is
// ignored if no hander is found.
// Derived class is *responsible* for filling in m_Handlers table.
virtual void AddTag(const wxHtmlTag& tag);
// Returns entity parser object, used to substitute HTML &entities;
wxHtmlEntitiesParser *GetEntitiesParser() const { return m_entitiesParser; }
protected:
// DOM tree:
wxHtmlTag *m_CurTag;
wxHtmlTag *m_Tags;
wxHtmlTextPieces *m_TextPieces;
size_t m_CurTextPiece;
wxString m_Source;
wxHtmlParserState *m_SavedStates;
// handlers that handle particular tags. The table is accessed by
// key = tag's name.
// This attribute MUST be filled by derived class otherwise it would
// be empty and no tags would be recognized
// (see wxHtmlWinParser for details about filling it)
// m_HandlersHash is for random access based on knowledge of tag name (BR, P, etc.)
// it may (and often does) contain more references to one object
// m_HandlersList is list of all handlers and it is guaranteed to contain
// only one reference to each handler instance.
wxList m_HandlersList;
wxHashTable m_HandlersHash;
DECLARE_NO_COPY_CLASS(wxHtmlParser)
// class for opening files (file system)
wxFileSystem *m_FS;
// handlers stack used by PushTagHandler and PopTagHandler
wxList *m_HandlersStack;
// entity parse
wxHtmlEntitiesParser *m_entitiesParser;
// flag indicating that the parser should stop
bool m_stopParsing;
};
// This class (and derived classes) cooperates with wxHtmlParser.
// Each recognized tag is passed to handler which is capable
// of handling it. Each tag is handled in 3 steps:
// 1. Handler will modifies state of parser
// (using it's public methods)
// 2. Parser parses source between starting and ending tag
// 3. Handler restores original state of the parser
class WXDLLEXPORT wxHtmlTagHandler : public wxObject
{
DECLARE_ABSTRACT_CLASS(wxHtmlTagHandler)
public:
wxHtmlTagHandler() : wxObject () { m_Parser = NULL; }
// Sets the parser.
// NOTE : each _instance_ of handler is guaranteed to be called
// only by one parser. This means you don't have to care about
// reentrancy.
virtual void SetParser(wxHtmlParser *parser)
{ m_Parser = parser; }
// Returns list of supported tags. The list is in uppercase and
// tags are delimited by ','.
// Example : "I,B,FONT,P"
// is capable of handling italic, bold, font and paragraph tags
virtual wxString GetSupportedTags() = 0;
// This is hadling core method. It does all the Steps 1-3.
// To process step 2, you can call ParseInner()
// returned value : TRUE if it called ParseInner(),
// FALSE etherwise
virtual bool HandleTag(const wxHtmlTag& tag) = 0;
protected:
// parses input between beginning and ending tag.
// m_Parser must be set.
void ParseInner(const wxHtmlTag& tag)
{ m_Parser->DoParsing(tag.GetBeginPos(), tag.GetEndPos1()); }
wxHtmlParser *m_Parser;
DECLARE_NO_COPY_CLASS(wxHtmlTagHandler)
};
// This class is used to parse HTML entities in strings. It can handle
// both named entities and &#xxxx entries where xxxx is Unicode code.
class WXDLLEXPORT wxHtmlEntitiesParser : public wxObject
{
DECLARE_DYNAMIC_CLASS(wxHtmlEntitiesParser)
public:
wxHtmlEntitiesParser();
virtual ~wxHtmlEntitiesParser();
// Sets encoding of output string.
// Has no effect if wxUSE_WCHAR_T==0 or wxUSE_UNICODE==1
void SetEncoding(wxFontEncoding encoding);
// Parses entities in input and replaces them with respective characters
// (with respect to output encoding)
wxString Parse(const wxString& input);
// Returns character for given entity or 0 if the enity is unknown
wxChar GetEntityChar(const wxString& entity);
// Returns character that represents given Unicode code
#if wxUSE_UNICODE
wxChar GetCharForCode(unsigned code) { return (wxChar)code; }
#else
wxChar GetCharForCode(unsigned code);
#endif
protected:
#if wxUSE_WCHAR_T && !wxUSE_UNICODE
wxMBConv *m_conv;
wxFontEncoding m_encoding;
#endif
DECLARE_NO_COPY_CLASS(wxHtmlEntitiesParser)
};
#endif
#endif // _WX_HTMLPARS_H_

View File

@@ -1,64 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: htmlprep.h
// Purpose: HTML processor
// Author: Vaclav Slavik
// RCS-ID: $Id$
// Copyright: (c) 2001 Vaclav Slavik
// Licence: wxWindows Licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_HTMLPREP_H_
#define _WX_HTMLPREP_H_
#if defined(__GNUG__) && !defined(__APPLE__)
#pragma interface "htmlproc.h"
// (implementation is in htmlwin.cpp, there's no htmlprep.cpp!)
#endif
#include "wx/defs.h"
#if wxUSE_HTML
#include "wx/string.h"
// Priority of preprocessor in the chain. The higher, the earlier it is used
enum
{
wxHTML_PRIORITY_DONTCARE = 128, // if the order doesn't matter, use this
// priority
wxHTML_PRIORITY_SYSTEM = 256 // >=256 is only for wxHTML's internals
};
// Classes derived from this class serve as simple text processors for
// wxHtmlWindow. wxHtmlWindow runs HTML markup through all registered
// processors before displaying it, thus allowing for on-the-fly
// modifications of the markup.
class WXDLLEXPORT wxHtmlProcessor : public wxObject
{
DECLARE_ABSTRACT_CLASS(wxHtmlProcessor)
public:
wxHtmlProcessor() : wxObject(), m_enabled(TRUE) {}
virtual ~wxHtmlProcessor() {}
// Process input text and return processed result
virtual wxString Process(const wxString& text) const = 0;
// Return priority value of this processor. The higher, the sooner
// is the processor applied to the text.
virtual int GetPriority() const { return wxHTML_PRIORITY_DONTCARE; }
// Enable/disable the processor. wxHtmlWindow won't use a disabled
// processor even if it is in its processors queue.
virtual void Enable(bool enable = TRUE) { m_enabled = enable; }
bool IsEnabled() const { return m_enabled; }
protected:
bool m_enabled;
};
#endif // wxUSE_HTML
#endif // _WX_HTMLPROC_H_

View File

@@ -1,158 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: htmltag.h
// Purpose: wxHtmlTag class (represents single tag)
// Author: Vaclav Slavik
// RCS-ID: $Id$
// Copyright: (c) 1999 Vaclav Slavik
// Licence: wxWindows Licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_HTMLTAG_H_
#define _WX_HTMLTAG_H_
#if defined(__GNUG__) && !defined(__APPLE__)
#pragma interface "htmltag.h"
#endif
#include "wx/defs.h"
#if wxUSE_HTML
#include "wx/object.h"
class WXDLLEXPORT wxColour;
class WXDLLEXPORT wxHtmlEntitiesParser;
//-----------------------------------------------------------------------------
// wxHtmlTagsCache
// - internal wxHTML class, do not use!
//-----------------------------------------------------------------------------
struct wxHtmlCacheItem;
class WXDLLEXPORT wxHtmlTagsCache : public wxObject
{
DECLARE_DYNAMIC_CLASS(wxHtmlTagsCache)
private:
wxHtmlCacheItem *m_Cache;
int m_CacheSize;
int m_CachePos;
public:
wxHtmlTagsCache() : wxObject() {m_CacheSize = 0; m_Cache = NULL;}
wxHtmlTagsCache(const wxString& source);
~wxHtmlTagsCache() {free(m_Cache);}
// Finds parameters for tag starting at at and fills the variables
void QueryTag(int at, int* end1, int* end2);
DECLARE_NO_COPY_CLASS(wxHtmlTagsCache)
};
//--------------------------------------------------------------------------------
// wxHtmlTag
// This represents single tag. It is used as internal structure
// by wxHtmlParser.
//--------------------------------------------------------------------------------
class WXDLLEXPORT wxHtmlTag : public wxObject
{
DECLARE_CLASS(wxHtmlTag)
protected:
// constructs wxHtmlTag object based on HTML tag.
// The tag begins (with '<' character) at position pos in source
// end_pos is position where parsing ends (usually end of document)
wxHtmlTag(wxHtmlTag *parent,
const wxString& source, int pos, int end_pos,
wxHtmlTagsCache *cache,
wxHtmlEntitiesParser *entParser);
friend class wxHtmlParser;
public:
~wxHtmlTag();
wxHtmlTag *GetParent() const {return m_Parent;}
wxHtmlTag *GetFirstSibling() const;
wxHtmlTag *GetLastSibling() const;
wxHtmlTag *GetChildren() const { return m_FirstChild; }
wxHtmlTag *GetPreviousSibling() const { return m_Prev; }
wxHtmlTag *GetNextSibling() const {return m_Next; }
// Return next tag, as if tree had been flattened
wxHtmlTag *GetNextTag() const;
// Returns tag's name in uppercase.
inline wxString GetName() const {return m_Name;}
// Returns TRUE if the tag has given parameter. Parameter
// should always be in uppercase.
// Example : <IMG SRC="test.jpg"> HasParam("SRC") returns TRUE
bool HasParam(const wxString& par) const;
// Returns value of the param. Value is in uppercase unless it is
// enclosed with "
// Example : <P align=right> GetParam("ALIGN") returns (RIGHT)
// <P IMG SRC="WhaT.jpg"> GetParam("SRC") returns (WhaT.jpg)
// (or ("WhaT.jpg") if with_commas == TRUE)
wxString GetParam(const wxString& par, bool with_commas = FALSE) const;
// Convenience functions:
bool GetParamAsColour(const wxString& par, wxColour *clr) const;
bool GetParamAsInt(const wxString& par, int *clr) const;
// Scans param like scanf() functions family does.
// Example : ScanParam("COLOR", "\"#%X\"", &clr);
// This is always with with_commas=FALSE
// Returns number of scanned values
// (like sscanf() does)
// NOTE: unlike scanf family, this function only accepts
// *one* parameter !
int ScanParam(const wxString& par, const wxChar *format, void *param) const;
// Returns string containing all params.
wxString GetAllParams() const;
#if WXWIN_COMPATIBILITY_2_2
// return TRUE if this is ending tag (</something>) or FALSE
// if it isn't (<something>)
inline bool IsEnding() const {return FALSE;}
#endif
// return TRUE if this there is matching ending tag
inline bool HasEnding() const {return m_End1 >= 0;}
// returns beginning position of _internal_ block of text
// See explanation (returned value is marked with *):
// bla bla bla <MYTAG>* bla bla intenal text</MYTAG> bla bla
inline int GetBeginPos() const {return m_Begin;}
// returns ending position of _internal_ block of text.
// bla bla bla <MYTAG> bla bla intenal text*</MYTAG> bla bla
inline int GetEndPos1() const {return m_End1;}
// returns end position 2 :
// bla bla bla <MYTAG> bla bla internal text</MYTAG>* bla bla
inline int GetEndPos2() const {return m_End2;}
private:
wxString m_Name;
int m_Begin, m_End1, m_End2;
wxArrayString m_ParamNames, m_ParamValues;
// DOM tree relations:
wxHtmlTag *m_Next;
wxHtmlTag *m_Prev;
wxHtmlTag *m_FirstChild, *m_LastChild;
wxHtmlTag *m_Parent;
DECLARE_NO_COPY_CLASS(wxHtmlTag)
};
#endif
#endif // _WX_HTMLTAG_H_

View File

@@ -1,284 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: htmlwin.h
// Purpose: wxHtmlWindow class for parsing & displaying HTML
// Author: Vaclav Slavik
// RCS-ID: $Id$
// Copyright: (c) 1999 Vaclav Slavik
// Licence: wxWindows Licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_HTMLWIN_H_
#define _WX_HTMLWIN_H_
#if defined(__GNUG__) && !defined(__APPLE__)
#pragma interface "htmlwin.h"
#endif
#include "wx/defs.h"
#if wxUSE_HTML
#include "wx/window.h"
#include "wx/scrolwin.h"
#include "wx/config.h"
#include "wx/treectrl.h"
#include "wx/html/winpars.h"
#include "wx/html/htmlcell.h"
#include "wx/filesys.h"
#include "wx/html/htmlfilt.h"
#include "wx/filename.h"
class wxHtmlProcessor;
class wxHtmlWinModule;
class wxHtmlHistoryArray;
class wxHtmlProcessorList;
// wxHtmlWindow flags:
#define wxHW_SCROLLBAR_NEVER 0x0002
#define wxHW_SCROLLBAR_AUTO 0x0004
// enums for wxHtmlWindow::OnOpeningURL
enum wxHtmlOpeningStatus
{
wxHTML_OPEN,
wxHTML_BLOCK,
wxHTML_REDIRECT
};
//--------------------------------------------------------------------------------
// wxHtmlWindow
// (This is probably the only class you will directly use.)
// Purpose of this class is to display HTML page (either local
// file or downloaded via HTTP protocol) in a window. Width
// of window is constant - given in constructor - virtual height
// is changed dynamicly depending on page size.
// Once the window is created you can set it's content by calling
// SetPage(text) or LoadPage(filename).
//--------------------------------------------------------------------------------
class WXDLLEXPORT wxHtmlWindow : public wxScrolledWindow
{
DECLARE_DYNAMIC_CLASS(wxHtmlWindow)
friend class wxHtmlWinModule;
public:
wxHtmlWindow() { Init(); }
wxHtmlWindow(wxWindow *parent, wxWindowID id = -1,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxHW_SCROLLBAR_AUTO,
const wxString& name = wxT("htmlWindow"))
{
Init();
Create(parent, id, pos, size, style, name);
}
~wxHtmlWindow();
bool Create(wxWindow *parent, wxWindowID id = -1,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxHW_SCROLLBAR_AUTO,
const wxString& name = wxT("htmlWindow"));
// Set HTML page and display it. !! source is HTML document itself,
// it is NOT address/filename of HTML document. If you want to
// specify document location, use LoadPage() istead
// Return value : FALSE if an error occured, TRUE otherwise
bool SetPage(const wxString& source);
// Append to current page
bool AppendToPage(const wxString& source);
// Load HTML page from given location. Location can be either
// a) /usr/wxGTK2/docs/html/wx.htm
// b) http://www.somewhere.uk/document.htm
// c) ftp://ftp.somesite.cz/pub/something.htm
// In case there is no prefix (http:,ftp:), the method
// will try to find it itself (1. local file, then http or ftp)
// After the page is loaded, the method calls SetPage() to display it.
// Note : you can also use path relative to previously loaded page
// Return value : same as SetPage
virtual bool LoadPage(const wxString& location);
// Loads HTML page from file
bool LoadFile(const wxFileName& filename);
// Returns full location of opened page
wxString GetOpenedPage() const {return m_OpenedPage;}
// Returns anchor within opened page
wxString GetOpenedAnchor() const {return m_OpenedAnchor;}
// Returns <TITLE> of opened page or empty string otherwise
wxString GetOpenedPageTitle() const {return m_OpenedPageTitle;}
// Sets frame in which page title will be displayed. Format is format of
// frame title, e.g. "HtmlHelp : %s". It must contain exactly one %s
void SetRelatedFrame(wxFrame* frame, const wxString& format);
wxFrame* GetRelatedFrame() const {return m_RelatedFrame;}
// After(!) calling SetRelatedFrame, this sets statusbar slot where messages
// will be displayed. Default is -1 = no messages.
void SetRelatedStatusBar(int bar);
// Sets fonts to be used when displaying HTML page.
void SetFonts(wxString normal_face, wxString fixed_face,
const int *sizes = NULL);
// Sets space between text and window borders.
void SetBorders(int b) {m_Borders = b;}
// Saves custom settings into cfg config. it will use the path 'path'
// if given, otherwise it will save info into currently selected path.
// saved values : things set by SetFonts, SetBorders.
virtual void ReadCustomization(wxConfigBase *cfg, wxString path = wxEmptyString);
// ...
virtual void WriteCustomization(wxConfigBase *cfg, wxString path = wxEmptyString);
// Goes to previous/next page (in browsing history)
// Returns TRUE if successful, FALSE otherwise
bool HistoryBack();
bool HistoryForward();
bool HistoryCanBack();
bool HistoryCanForward();
// Resets history
void HistoryClear();
// Returns pointer to conteiners/cells structure.
// It should be used ONLY when printing
wxHtmlContainerCell* GetInternalRepresentation() const {return m_Cell;}
// Adds input filter
static void AddFilter(wxHtmlFilter *filter);
// Returns a pointer to the parser.
wxHtmlWinParser *GetParser() const { return m_Parser; }
// Adds HTML processor to this instance of wxHtmlWindow:
void AddProcessor(wxHtmlProcessor *processor);
// Adds HTML processor to wxHtmlWindow class as whole:
static void AddGlobalProcessor(wxHtmlProcessor *processor);
// what would we do with it?
virtual bool AcceptsFocusFromKeyboard() const { return FALSE; }
// -- Callbacks --
// Sets the title of the window
// (depending on the information passed to SetRelatedFrame() method)
virtual void OnSetTitle(const wxString& title);
// Called when the mouse hovers over a cell: (x, y) are logical coords
// Default behaviour is to do nothing at all
virtual void OnCellMouseHover(wxHtmlCell *cell, wxCoord x, wxCoord y);
// Called when user clicks on a cell. Default behavior is to call
// OnLinkClicked() if this cell corresponds to a hypertext link
virtual void OnCellClicked(wxHtmlCell *cell,
wxCoord x, wxCoord y,
const wxMouseEvent& event);
// Called when user clicked on hypertext link. Default behavior is to
// call LoadPage(loc)
virtual void OnLinkClicked(const wxHtmlLinkInfo& link);
// Called when wxHtmlWindow wants to fetch data from an URL (e.g. when
// loading a page or loading an image). The data are downloaded if and only if
// OnOpeningURL returns TRUE. If OnOpeningURL returns wxHTML_REDIRECT,
// it must set *redirect to the new URL
virtual wxHtmlOpeningStatus OnOpeningURL(wxHtmlURLType WXUNUSED(type),
const wxString& WXUNUSED(url),
wxString *WXUNUSED(redirect)) const
{ return wxHTML_OPEN; }
protected:
void Init();
// Scrolls to anchor of this name. (Anchor is #news
// or #features etc. it is part of address sometimes:
// http://www.ms.mff.cuni.cz/~vsla8348/wxhtml/index.html#news)
// Return value : TRUE if anchor exists, FALSE otherwise
bool ScrollToAnchor(const wxString& anchor);
// Prepares layout (= fill m_PosX, m_PosY for fragments) based on
// actual size of window. This method also setup scrollbars
void CreateLayout();
void OnDraw(wxDC& dc);
void OnSize(wxSizeEvent& event);
void OnMouseEvent(wxMouseEvent& event);
void OnIdle(wxIdleEvent& event);
// Returns new filter (will be stored into m_DefaultFilter variable)
virtual wxHtmlFilter *GetDefaultFilter() {return new wxHtmlFilterPlainText;}
// cleans static variables
static void CleanUpStatics();
protected:
// This is pointer to the first cell in parsed data.
// (Note: the first cell is usually top one = all other cells are sub-cells of this one)
wxHtmlContainerCell *m_Cell;
// parser which is used to parse HTML input.
// Each wxHtmlWindow has it's own parser because sharing one global
// parser would be problematic (because of reentrancy)
wxHtmlWinParser *m_Parser;
// contains name of actualy opened page or empty string if no page opened
wxString m_OpenedPage;
// contains name of current anchor within m_OpenedPage
wxString m_OpenedAnchor;
// contains title of actualy opened page or empty string if no <TITLE> tag
wxString m_OpenedPageTitle;
// class for opening files (file system)
wxFileSystem* m_FS;
wxFrame *m_RelatedFrame;
wxString m_TitleFormat;
// frame in which page title should be displayed & number of it's statusbar
// reserved for usage with this html window
int m_RelatedStatusBar;
// borders (free space between text and window borders)
// defaults to 10 pixels.
int m_Borders;
int m_Style;
private:
// a flag indicated if mouse moved
// (if TRUE we will try to change cursor in last call to OnIdle)
bool m_tmpMouseMoved;
// contains last link name
wxHtmlLinkInfo *m_tmpLastLink;
// contains the last (terminal) cell which contained the mouse
wxHtmlCell *m_tmpLastCell;
// if >0 contents of the window is not redrawn
// (in order to avoid ugly blinking)
int m_tmpCanDrawLocks;
// list of HTML filters
static wxList m_Filters;
// this filter is used when no filter is able to read some file
static wxHtmlFilter *m_DefaultFilter;
static wxCursor *s_cur_hand;
static wxCursor *s_cur_arrow;
wxHtmlHistoryArray *m_History;
// browser history
int m_HistoryPos;
// if this FLAG is false, items are not added to history
bool m_HistoryOn;
// html processors array:
wxHtmlProcessorList *m_Processors;
static wxHtmlProcessorList *m_GlobalProcessors;
DECLARE_EVENT_TABLE()
DECLARE_NO_COPY_CLASS(wxHtmlWindow)
};
#endif
#endif // _WX_HTMLWIN_H_

View File

@@ -1,258 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: htmprint.h
// Purpose: html printing classes
// Author: Vaclav Slavik
// Created: 25/09/99
// RCS-ID: $Id$
// Copyright: (c)
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_HTMPRINT_H_
#define _WX_HTMPRINT_H_
#if defined(__GNUG__) && !defined(__APPLE__)
#pragma interface "htmprint.h"
#endif
#include "wx/defs.h"
#if wxUSE_HTML & wxUSE_PRINTING_ARCHITECTURE
#include "wx/html/htmlcell.h"
#include "wx/html/winpars.h"
#include "wx/print.h"
#include "wx/printdlg.h"
#include <limits.h> // INT_MAX
//--------------------------------------------------------------------------------
// wxHtmlDCRenderer
// This class is capable of rendering HTML into specified
// portion of DC
//--------------------------------------------------------------------------------
class WXDLLEXPORT wxHtmlDCRenderer : public wxObject
{
public:
wxHtmlDCRenderer();
~wxHtmlDCRenderer();
// Following 3 methods *must* be called before any call to Render:
// Assign DC to this render
void SetDC(wxDC *dc, double pixel_scale = 1.0);
// Sets size of output rectangle, in pixels. Note that you *can't* change
// width of the rectangle between calls to Render! (You can freely change height.)
void SetSize(int width, int height);
// Sets the text to be displayed.
// Basepath is base directory (html string would be stored there if it was in
// file). It is used to determine path for loading images, for example.
// isdir is FALSE if basepath is filename, TRUE if it is directory name
// (see wxFileSystem for detailed explanation)
void SetHtmlText(const wxString& html, const wxString& basepath = wxEmptyString, bool isdir = TRUE);
// Sets fonts to be used when displaying HTML page. (if size null then default sizes used).
void SetFonts(wxString normal_face, wxString fixed_face, const int *sizes = NULL);
// [x,y] is position of upper-left corner of printing rectangle (see SetSize)
// from is y-coordinate of the very first visible cell
// to is y-coordinate of the next following page break, if any
// Returned value is y coordinate of first cell than didn't fit onto page.
// Use this value as 'from' in next call to Render in order to print multiple pages
// document
// If dont_render is TRUE then nothing is rendered into DC and it only counts
// pixels and return y coord of the next page
//
// known_pagebreaks and number_of_pages are used only when counting pages;
// otherwise, their default values should be used. Their purpose is to
// support pagebreaks using a subset of CSS2's <DIV>. The <DIV> handler
// needs to know what pagebreaks have already been set so that it doesn't
// set the same pagebreak twice.
//
// CAUTION! Render() changes DC's user scale and does NOT restore it!
int Render(int x, int y, int from = 0, int dont_render = FALSE, int to = INT_MAX,
int *known_pagebreaks = NULL, int number_of_pages = 0);
// returns total height of the html document
// (compare Render's return value with this)
int GetTotalHeight();
private:
wxDC *m_DC;
wxHtmlWinParser *m_Parser;
wxFileSystem *m_FS;
wxHtmlContainerCell *m_Cells;
int m_MaxWidth, m_Width, m_Height;
DECLARE_NO_COPY_CLASS(wxHtmlDCRenderer)
};
enum {
wxPAGE_ODD,
wxPAGE_EVEN,
wxPAGE_ALL
};
//--------------------------------------------------------------------------------
// wxHtmlPrintout
// This class is derived from standard wxWindows printout class
// and is used to print HTML documents.
//--------------------------------------------------------------------------------
class WXDLLEXPORT wxHtmlPrintout : public wxPrintout
{
public:
wxHtmlPrintout(const wxString& title = wxT("Printout"));
~wxHtmlPrintout();
void SetHtmlText(const wxString& html, const wxString &basepath = wxEmptyString, bool isdir = TRUE);
// prepares the class for printing this html document.
// Must be called before using the class, in fact just after constructor
//
// basepath is base directory (html string would be stored there if it was in
// file). It is used to determine path for loading images, for example.
// isdir is FALSE if basepath is filename, TRUE if it is directory name
// (see wxFileSystem for detailed explanation)
void SetHtmlFile(const wxString &htmlfile);
// same as SetHtmlText except that it takes regular file as the parameter
void SetHeader(const wxString& header, int pg = wxPAGE_ALL);
void SetFooter(const wxString& footer, int pg = wxPAGE_ALL);
// sets header/footer for the document. The argument is interpreted as HTML document.
// You can use macros in it:
// @PAGENUM@ is replaced by page number
// @PAGESCNT@ is replaced by total number of pages
//
// pg is one of wxPAGE_ODD, wxPAGE_EVEN and wx_PAGE_ALL constants.
// You can set different header/footer for odd and even pages
// Sets fonts to be used when displaying HTML page. (if size null then default sizes used).
void SetFonts(wxString normal_face, wxString fixed_face, const int *sizes = NULL);
void SetMargins(float top = 25.2, float bottom = 25.2, float left = 25.2, float right = 25.2,
float spaces = 5);
// sets margins in milimeters. Defaults to 1 inch for margins and 0.5cm for space
// between text and header and/or footer
// wxPrintout stuff:
bool OnPrintPage(int page);
bool HasPage(int page);
void GetPageInfo(int *minPage, int *maxPage, int *selPageFrom, int *selPageTo);
bool OnBeginDocument(int startPage, int endPage);
private:
void RenderPage(wxDC *dc, int page);
// renders one page into dc
wxString TranslateHeader(const wxString& instr, int page);
// substitute @PAGENUM@ and @PAGESCNT@ by real values
void CountPages();
// counts pages and fills m_NumPages and m_PageBreaks
private:
int m_NumPages;
int m_PageBreaks[wxHTML_PRINT_MAX_PAGES];
wxString m_Document, m_BasePath;
bool m_BasePathIsDir;
wxString m_Headers[2], m_Footers[2];
int m_HeaderHeight, m_FooterHeight;
wxHtmlDCRenderer *m_Renderer, *m_RendererHdr;
float m_MarginTop, m_MarginBottom, m_MarginLeft, m_MarginRight, m_MarginSpace;
DECLARE_NO_COPY_CLASS(wxHtmlPrintout)
};
//--------------------------------------------------------------------------------
// wxHtmlEasyPrinting
// This class provides very simple interface to printing
// architecture. It allows you to print HTML documents only
// with very few commands.
//
// Note : do not create this class on stack only.
// You should create an instance on app startup and
// use this instance for all printing. Why? The class
// stores page&printer settings in it.
//--------------------------------------------------------------------------------
class WXDLLEXPORT wxHtmlEasyPrinting : public wxObject
{
public:
wxHtmlEasyPrinting(const wxString& name = wxT("Printing"), wxFrame *parent_frame = NULL);
~wxHtmlEasyPrinting();
bool PreviewFile(const wxString &htmlfile);
bool PreviewText(const wxString &htmltext, const wxString& basepath = wxEmptyString);
// Preview file / html-text for printing
// (and offers printing)
// basepath is base directory for opening subsequent files (e.g. from <img> tag)
bool PrintFile(const wxString &htmlfile);
bool PrintText(const wxString &htmltext, const wxString& basepath = wxEmptyString);
// Print file / html-text w/o preview
void PrinterSetup();
void PageSetup();
// pop up printer or page setup dialog
void SetHeader(const wxString& header, int pg = wxPAGE_ALL);
void SetFooter(const wxString& footer, int pg = wxPAGE_ALL);
// sets header/footer for the document. The argument is interpreted as HTML document.
// You can use macros in it:
// @PAGENUM@ is replaced by page number
// @PAGESCNT@ is replaced by total number of pages
//
// pg is one of wxPAGE_ODD, wxPAGE_EVEN and wx_PAGE_ALL constants.
// You can set different header/footer for odd and even pages
void SetFonts(wxString normal_face, wxString fixed_face, const int *sizes = 0);
// Sets fonts to be used when displaying HTML page. (if size null then default sizes used)
wxPrintData *GetPrintData() {return m_PrintData;}
wxPageSetupDialogData *GetPageSetupData() {return m_PageSetupData;}
// return page setting data objects.
// (You can set their parameters.)
protected:
virtual wxHtmlPrintout *CreatePrintout();
virtual bool DoPreview(wxHtmlPrintout *printout1, wxHtmlPrintout *printout2);
virtual bool DoPrint(wxHtmlPrintout *printout);
private:
wxPrintData *m_PrintData;
wxPageSetupDialogData *m_PageSetupData;
wxString m_Name;
int m_FontsSizesArr[7];
int *m_FontsSizes;
wxString m_FontFaceFixed, m_FontFaceNormal;
wxString m_Headers[2], m_Footers[2];
wxFrame *m_Frame;
DECLARE_NO_COPY_CLASS(wxHtmlEasyPrinting)
};
#endif // wxUSE_HTML & wxUSE_PRINTING_ARCHITECTURE
#endif // _WX_HTMPRINT_H_

View File

@@ -1,84 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: m_templ.h
// Purpose: Modules template file
// Author: Vaclav Slavik
// RCS-ID: $Id$
// Copyright: (c) Vaclav Slavik
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/*
DESCRIPTION:
This is set of macros for easier writing of tag handlers. How to use it?
See mod_fonts.cpp for example...
Attention! This is quite strange C++ bastard. Before using it,
I STRONGLY recommend reading and understanding these macros!!
*/
#ifndef _WX_M_TEMPL_H_
#define _WX_M_TEMPL_H_
#include "wx/defs.h"
#if wxUSE_HTML
#include "wx/html/winpars.h"
#define TAG_HANDLER_BEGIN(name,tags) \
class HTML_Handler_##name : public wxHtmlWinTagHandler \
{ \
public: \
wxString GetSupportedTags() {return wxT(tags);}
#define TAG_HANDLER_VARS \
private:
#define TAG_HANDLER_CONSTR(name) \
public: \
HTML_Handler_##name () : wxHtmlWinTagHandler()
#define TAG_HANDLER_PROC(varib) \
public: \
bool HandleTag(const wxHtmlTag& varib)
#define TAG_HANDLER_END(name) \
};
#define TAGS_MODULE_BEGIN(name) \
class HTML_Module##name : public wxHtmlTagsModule \
{ \
DECLARE_DYNAMIC_CLASS(HTML_Module##name ) \
public: \
void FillHandlersTable(wxHtmlWinParser *parser) \
{
#define TAGS_MODULE_ADD(handler) \
parser->AddTagHandler(new HTML_Handler_##handler);
#define TAGS_MODULE_END(name) \
} \
}; \
IMPLEMENT_DYNAMIC_CLASS(HTML_Module##name , wxHtmlTagsModule)
#endif
#endif

View File

@@ -1,252 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: winpars.h
// Purpose: wxHtmlWinParser class (parser to be used with wxHtmlWindow)
// Author: Vaclav Slavik
// RCS-ID: $Id$
// Copyright: (c) 1999 Vaclav Slavik
// Licence: wxWindows Licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_WINPARS_H_
#define _WX_WINPARS_H_
#if defined(__GNUG__) && !defined(__APPLE__)
#pragma interface "winpars.h"
#endif
#include "wx/defs.h"
#if wxUSE_HTML
#include "wx/module.h"
#include "wx/font.h"
#include "wx/html/htmlpars.h"
#include "wx/html/htmlcell.h"
#include "wx/encconv.h"
class WXDLLEXPORT wxHtmlWindow;
class WXDLLEXPORT wxHtmlWinParser;
class WXDLLEXPORT wxHtmlWinTagHandler;
class WXDLLEXPORT wxHtmlTagsModule;
//--------------------------------------------------------------------------------
// wxHtmlWinParser
// This class is derived from wxHtmlParser and its mail goal
// is to parse HTML input so that it can be displayed in
// wxHtmlWindow. It uses special wxHtmlWinTagHandler.
//--------------------------------------------------------------------------------
class WXDLLEXPORT wxHtmlWinParser : public wxHtmlParser
{
friend class wxHtmlWindow;
public:
wxHtmlWinParser(wxHtmlWindow *wnd = NULL);
~wxHtmlWinParser();
virtual void InitParser(const wxString& source);
virtual void DoneParser();
virtual wxObject* GetProduct();
virtual wxFSFile *OpenURL(wxHtmlURLType type, const wxString& url) const;
// Set's the DC used for parsing. If SetDC() is not called,
// parsing won't proceed
virtual void SetDC(wxDC *dc, double pixel_scale = 1.0)
{ m_DC = dc; m_PixelScale = pixel_scale; }
wxDC *GetDC() {return m_DC;}
double GetPixelScale() {return m_PixelScale;}
int GetCharHeight() const {return m_CharHeight;}
int GetCharWidth() const {return m_CharWidth;}
// NOTE : these functions do _not_ return _actual_
// height/width. They return h/w of default font
// for this DC. If you want actual values, call
// GetDC()->GetChar...()
// returns associated wxWindow
wxHtmlWindow *GetWindow() {return m_Window;}
// Sets fonts to be used when displaying HTML page. (if size null then default sizes used).
void SetFonts(wxString normal_face, wxString fixed_face, const int *sizes = NULL);
// Adds tags module. see wxHtmlTagsModule for details.
static void AddModule(wxHtmlTagsModule *module);
static void RemoveModule(wxHtmlTagsModule *module);
// parsing-related methods. These methods are called by tag handlers:
// Returns pointer to actual container. Common use in tag handler is :
// m_WParser->GetContainer()->InsertCell(new ...);
wxHtmlContainerCell *GetContainer() const {return m_Container;}
// opens new container. This container is sub-container of opened
// container. Sets GetContainer to newly created container
// and returns it.
wxHtmlContainerCell *OpenContainer();
// works like OpenContainer except that new container is not created
// but c is used. You can use this to directly set actual container
wxHtmlContainerCell *SetContainer(wxHtmlContainerCell *c);
// closes the container and sets actual Container to upper-level
// container
wxHtmlContainerCell *CloseContainer();
int GetFontSize() const {return m_FontSize;}
void SetFontSize(int s);
int GetFontBold() const {return m_FontBold;}
void SetFontBold(int x) {m_FontBold = x;}
int GetFontItalic() const {return m_FontItalic;}
void SetFontItalic(int x) {m_FontItalic = x;}
int GetFontUnderlined() const {return m_FontUnderlined;}
void SetFontUnderlined(int x) {m_FontUnderlined = x;}
int GetFontFixed() const {return m_FontFixed;}
void SetFontFixed(int x) {m_FontFixed = x;}
wxString GetFontFace() const {return GetFontFixed() ? m_FontFaceFixed : m_FontFaceNormal;}
void SetFontFace(const wxString& face);
int GetAlign() const {return m_Align;}
void SetAlign(int a) {m_Align = a;}
const wxColour& GetLinkColor() const { return m_LinkColor; }
void SetLinkColor(const wxColour& clr) { m_LinkColor = clr; }
const wxColour& GetActualColor() const { return m_ActualColor; }
void SetActualColor(const wxColour& clr) { m_ActualColor = clr ;}
const wxHtmlLinkInfo& GetLink() const { return m_Link; }
void SetLink(const wxHtmlLinkInfo& link);
#if !wxUSE_UNICODE
void SetInputEncoding(wxFontEncoding enc);
wxFontEncoding GetInputEncoding() const { return m_InputEnc; }
wxFontEncoding GetOutputEncoding() const { return m_OutputEnc; }
wxEncodingConverter *GetEncodingConverter() const { return m_EncConv; }
#endif
// creates font depending on m_Font* members.
virtual wxFont* CreateCurrentFont();
protected:
virtual void AddText(const wxChar* txt);
private:
bool m_tmpLastWasSpace;
wxChar *m_tmpStrBuf;
size_t m_tmpStrBufSize;
// temporary variables used by AddText
wxHtmlWindow *m_Window;
// window we're parsing for
double m_PixelScale;
wxDC *m_DC;
// Device Context we're parsing for
static wxList m_Modules;
// list of tags modules (see wxHtmlTagsModule for details)
// This list is used to initialize m_Handlers member.
wxHtmlContainerCell *m_Container;
// actual container. See Open/CloseContainer for details.
int m_FontBold, m_FontItalic, m_FontUnderlined, m_FontFixed; // this is not TRUE,FALSE but 1,0, we need it for indexing
int m_FontSize; /* -2 to +4, 0 is default */
wxColour m_LinkColor;
wxColour m_ActualColor;
// basic font parameters.
wxHtmlLinkInfo m_Link;
// actual hypertext link or empty string
bool m_UseLink;
// TRUE if m_Link is not empty
long m_CharHeight, m_CharWidth;
// average height of normal-sized text
int m_Align;
// actual alignment
wxFont* m_FontsTable[2][2][2][2][7];
wxString m_FontsFacesTable[2][2][2][2][7];
#if !wxUSE_UNICODE
wxFontEncoding m_FontsEncTable[2][2][2][2][7];
#endif
// table of loaded fonts. 1st four indexes are 0 or 1, depending on on/off
// state of these flags (from left to right):
// [bold][italic][underlined][fixed_size]
// last index is font size : from 0 to 6 (remapped from html sizes 1 to 7)
// Note : this table covers all possible combinations of fonts, but not
// all of them are used, so many items in table are usually NULL.
int m_FontsSizes[7];
wxString m_FontFaceFixed, m_FontFaceNormal;
// html font sizes and faces of fixed and proportional fonts
DECLARE_NO_COPY_CLASS(wxHtmlWinParser)
#if !wxUSE_UNICODE
wxFontEncoding m_InputEnc, m_OutputEnc;
// I/O font encodings
wxEncodingConverter *m_EncConv;
#endif
};
//--------------------------------------------------------------------------------
// wxHtmlWinTagHandler
// This is basicly wxHtmlTagHandler except
// it is extended with protected member m_Parser pointing to
// the wxHtmlWinParser object
//--------------------------------------------------------------------------------
class WXDLLEXPORT wxHtmlWinTagHandler : public wxHtmlTagHandler
{
DECLARE_ABSTRACT_CLASS(wxHtmlWinTagHandler)
public:
wxHtmlWinTagHandler() : wxHtmlTagHandler() {};
virtual void SetParser(wxHtmlParser *parser) {wxHtmlTagHandler::SetParser(parser); m_WParser = (wxHtmlWinParser*) parser;};
protected:
wxHtmlWinParser *m_WParser; // same as m_Parser, but overcasted
DECLARE_NO_COPY_CLASS(wxHtmlWinTagHandler)
};
//--------------------------------------------------------------------------------
// wxHtmlTagsModule
// This is basic of dynamic tag handlers binding.
// The class provides methods for filling parser's handlers
// hash table.
// (See documentation for details)
//--------------------------------------------------------------------------------
class WXDLLEXPORT wxHtmlTagsModule : public wxModule
{
DECLARE_DYNAMIC_CLASS(wxHtmlTagsModule)
public:
wxHtmlTagsModule() : wxModule() {};
virtual bool OnInit();
virtual void OnExit();
// This is called by wxHtmlWinParser.
// The method must simply call parser->AddTagHandler(new <handler_class_name>);
// for each handler
virtual void FillHandlersTable(wxHtmlWinParser * WXUNUSED(parser)) { }
};
#endif
#endif // _WX_WINPARS_H_

View File

@@ -1,331 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: helpctrl.cpp
// Purpose: wxHtmlHelpController
// Notes: Based on htmlhelp.cpp, implementing a monolithic
// HTML Help controller class, by Vaclav Slavik
// Author: Harm van der Heijden and Vaclav Slavik
// RCS-ID: $Id$
// Copyright: (c) Harm van der Heijden and Vaclav Slavik
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation "helpctrl.h"
#endif
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#if wxUSE_WXHTML_HELP
#ifndef WX_PRECOMP
#include "wx/app.h"
#include "wx/intl.h"
#endif // WX_PRECOMP
#include "wx/html/helpctrl.h"
#include "wx/busyinfo.h"
#ifdef __WXGTK__
// for the hack in AddGrabIfNeeded()
#include "wx/dialog.h"
#endif // __WXGTK__
#if wxUSE_HELP
#include "wx/tipwin.h"
#endif
IMPLEMENT_DYNAMIC_CLASS(wxHtmlHelpController, wxHelpControllerBase)
wxHtmlHelpController::wxHtmlHelpController(int style)
{
m_helpFrame = NULL;
m_Config = NULL;
m_ConfigRoot = wxEmptyString;
m_titleFormat = _("Help: %s");
m_FrameStyle = style;
}
wxHtmlHelpController::~wxHtmlHelpController()
{
if (m_Config)
WriteCustomization(m_Config, m_ConfigRoot);
if (m_helpFrame)
DestroyHelpWindow();
}
void wxHtmlHelpController::DestroyHelpWindow()
{
//if (m_Config) WriteCustomization(m_Config, m_ConfigRoot);
if (m_helpFrame)
m_helpFrame->Destroy();
}
void wxHtmlHelpController::OnCloseFrame(wxCloseEvent& evt)
{
evt.Skip();
OnQuit();
m_helpFrame->SetController((wxHelpControllerBase*) NULL);
m_helpFrame = NULL;
}
void wxHtmlHelpController::SetTitleFormat(const wxString& title)
{
m_titleFormat = title;
if (m_helpFrame)
m_helpFrame->SetTitleFormat(title);
}
bool wxHtmlHelpController::AddBook(const wxFileName& book_file, bool show_wait_msg)
{
return AddBook(wxFileSystem::FileNameToURL(book_file), show_wait_msg);
}
bool wxHtmlHelpController::AddBook(const wxString& book, bool show_wait_msg)
{
wxBusyCursor cur;
#if wxUSE_BUSYINFO
wxBusyInfo* busy = NULL;
wxString info;
if (show_wait_msg)
{
info.Printf(_("Adding book %s"), book.c_str());
busy = new wxBusyInfo(info);
}
#endif
bool retval = m_helpData.AddBook(book);
#if wxUSE_BUSYINFO
if (show_wait_msg)
delete busy;
#endif
if (m_helpFrame)
m_helpFrame->RefreshLists();
return retval;
}
wxHtmlHelpFrame *wxHtmlHelpController::CreateHelpFrame(wxHtmlHelpData *data)
{
return new wxHtmlHelpFrame(data);
}
void wxHtmlHelpController::CreateHelpWindow()
{
if (m_helpFrame)
{
m_helpFrame->Raise();
return ;
}
if (m_Config == NULL)
{
m_Config = wxConfigBase::Get(FALSE);
if (m_Config != NULL)
m_ConfigRoot = _T("wxWindows/wxHtmlHelpController");
}
m_helpFrame = CreateHelpFrame(&m_helpData);
m_helpFrame->SetController(this);
if (m_Config)
m_helpFrame->UseConfig(m_Config, m_ConfigRoot);
m_helpFrame->Create(NULL, wxID_HTML_HELPFRAME, wxEmptyString, m_FrameStyle);
m_helpFrame->SetTitleFormat(m_titleFormat);
m_helpFrame->Show(TRUE);
}
void wxHtmlHelpController::ReadCustomization(wxConfigBase* cfg, const wxString& path)
{
/* should not be called by the user; call UseConfig, and the controller
* will do the rest */
if (m_helpFrame && cfg)
m_helpFrame->ReadCustomization(cfg, path);
}
void wxHtmlHelpController::WriteCustomization(wxConfigBase* cfg, const wxString& path)
{
/* typically called by the controllers OnCloseFrame handler */
if (m_helpFrame && cfg)
m_helpFrame->WriteCustomization(cfg, path);
}
void wxHtmlHelpController::UseConfig(wxConfigBase *config, const wxString& rootpath)
{
m_Config = config;
m_ConfigRoot = rootpath;
if (m_helpFrame) m_helpFrame->UseConfig(config, rootpath);
ReadCustomization(config, rootpath);
}
//// Backward compatibility with wxHelpController API
bool wxHtmlHelpController::Initialize(const wxString& file)
{
wxString dir, filename, ext;
wxSplitPath(file, & dir, & filename, & ext);
if (!dir.IsEmpty())
dir = dir + wxFILE_SEP_PATH;
// Try to find a suitable file
wxString actualFilename = dir + filename + wxString(wxT(".zip"));
if (!wxFileExists(actualFilename))
{
actualFilename = dir + filename + wxString(wxT(".htb"));
if (!wxFileExists(actualFilename))
{
actualFilename = dir + filename + wxString(wxT(".hhp"));
if (!wxFileExists(actualFilename))
return FALSE;
}
}
return AddBook(wxFileName(actualFilename));
}
bool wxHtmlHelpController::LoadFile(const wxString& WXUNUSED(file))
{
// Don't reload the file or we'll have it appear again, presumably.
return TRUE;
}
bool wxHtmlHelpController::DisplaySection(int sectionNo)
{
return Display(sectionNo);
}
bool wxHtmlHelpController::DisplayTextPopup(const wxString& text, const wxPoint& WXUNUSED(pos))
{
#if wxUSE_TIPWINDOW
static wxTipWindow* s_tipWindow = NULL;
if (s_tipWindow)
{
// Prevent s_tipWindow being nulled in OnIdle,
// thereby removing the chance for the window to be closed by ShowHelp
s_tipWindow->SetTipWindowPtr(NULL);
s_tipWindow->Close();
}
s_tipWindow = NULL;
if ( !text.empty() )
{
s_tipWindow = new wxTipWindow(wxTheApp->GetTopWindow(), text, 100, & s_tipWindow);
return TRUE;
}
#endif // wxUSE_TIPWINDOW
return FALSE;
}
void wxHtmlHelpController::SetFrameParameters(const wxString& title,
const wxSize& size,
const wxPoint& pos,
bool WXUNUSED(newFrameEachTime))
{
SetTitleFormat(title);
if (m_helpFrame)
{
m_helpFrame->SetSize(pos.x, pos.y, size.x, size.y);
}
}
wxFrame* wxHtmlHelpController::GetFrameParameters(wxSize *size,
wxPoint *pos,
bool *newFrameEachTime)
{
if (newFrameEachTime)
(* newFrameEachTime) = FALSE;
if (size && m_helpFrame)
(* size) = m_helpFrame->GetSize();
if (pos && m_helpFrame)
(* pos) = m_helpFrame->GetPosition();
return m_helpFrame;
}
bool wxHtmlHelpController::Quit()
{
DestroyHelpWindow();
return TRUE;
}
// Make the help controller's frame 'modal' if
// needed
void wxHtmlHelpController::AddGrabIfNeeded()
{
// So far, wxGTK only
#ifdef __WXGTK__
bool needGrab = FALSE;
// Check if there are any modal windows present,
// in which case we need to add a grab.
for ( wxWindowList::Node * node = wxTopLevelWindows.GetFirst();
node;
node = node->GetNext() )
{
wxWindow *win = node->GetData();
wxDialog *dialog = wxDynamicCast(win, wxDialog);
if (dialog && dialog->IsModal())
needGrab = TRUE;
}
if (needGrab && m_helpFrame)
m_helpFrame->AddGrab();
#endif // __WXGTK__
}
bool wxHtmlHelpController::Display(const wxString& x)
{
CreateHelpWindow();
bool success = m_helpFrame->Display(x);
AddGrabIfNeeded();
return success;
}
bool wxHtmlHelpController::Display(int id)
{
CreateHelpWindow();
bool success = m_helpFrame->Display(id);
AddGrabIfNeeded();
return success;
}
bool wxHtmlHelpController::DisplayContents()
{
CreateHelpWindow();
bool success = m_helpFrame->DisplayContents();
AddGrabIfNeeded();
return success;
}
bool wxHtmlHelpController::DisplayIndex()
{
CreateHelpWindow();
bool success = m_helpFrame->DisplayIndex();
AddGrabIfNeeded();
return success;
}
bool wxHtmlHelpController::KeywordSearch(const wxString& keyword)
{
CreateHelpWindow();
bool success = m_helpFrame->KeywordSearch(keyword);
AddGrabIfNeeded();
return success;
}
#endif // wxUSE_WXHTML_HELP

View File

@@ -1,881 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: helpdata.cpp
// Purpose: wxHtmlHelpData
// Notes: Based on htmlhelp.cpp, implementing a monolithic
// HTML Help controller class, by Vaclav Slavik
// Author: Harm van der Heijden and Vaclav Slavik
// RCS-ID: $Id$
// Copyright: (c) Harm van der Heijden and Vaclav Slavik
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation "helpdata.h"
#endif
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#include "wx/defs.h"
#if wxUSE_HTML && wxUSE_STREAMS
#ifndef WXPRECOMP
#include "wx/intl.h"
#include "wx/log.h"
#endif
#include <ctype.h>
#include "wx/html/helpdata.h"
#include "wx/tokenzr.h"
#include "wx/wfstream.h"
#include "wx/busyinfo.h"
#include "wx/encconv.h"
#include "wx/fontmap.h"
#include "wx/log.h"
#include "wx/html/htmlpars.h"
#include "wx/html/htmldefs.h"
#include "wx/html/htmlfilt.h"
#include "wx/filename.h"
#include "wx/arrimpl.cpp"
WX_DEFINE_OBJARRAY(wxHtmlBookRecArray)
//-----------------------------------------------------------------------------
// static helper functions
//-----------------------------------------------------------------------------
// Reads one line, stores it into buf and returns pointer to new line or NULL.
static const wxChar* ReadLine(const wxChar *line, wxChar *buf, size_t bufsize)
{
wxChar *writeptr = buf;
wxChar *endptr = buf + bufsize - 1;
const wxChar *readptr = line;
while (*readptr != 0 && *readptr != _T('\r') && *readptr != _T('\n') &&
writeptr != endptr)
*(writeptr++) = *(readptr++);
*writeptr = 0;
while (*readptr == _T('\r') || *readptr == _T('\n'))
readptr++;
if (*readptr == 0)
return NULL;
else
return readptr;
}
extern "C" int LINKAGEMODE
wxHtmlHelpIndexCompareFunc(const void *a, const void *b)
{
return wxStricmp(((wxHtmlContentsItem*)a)->m_Name, ((wxHtmlContentsItem*)b)->m_Name);
}
//-----------------------------------------------------------------------------
// HP_Parser
//-----------------------------------------------------------------------------
class HP_Parser : public wxHtmlParser
{
public:
wxObject* GetProduct() { return NULL; }
protected:
virtual void AddText(const wxChar* WXUNUSED(txt)) {}
};
//-----------------------------------------------------------------------------
// HP_TagHandler
//-----------------------------------------------------------------------------
class HP_TagHandler : public wxHtmlTagHandler
{
private:
wxString m_Name, m_Page;
int m_Level;
int m_ID;
int m_Index;
wxHtmlContentsItem *m_Items;
int m_ItemsCnt;
wxHtmlBookRecord *m_Book;
public:
HP_TagHandler(wxHtmlBookRecord *b) : wxHtmlTagHandler()
{ m_Book = b; m_Items = NULL; m_ItemsCnt = 0; m_Name = m_Page = wxEmptyString;
m_Level = 0; m_ID = -1; }
wxString GetSupportedTags() { return wxT("UL,OBJECT,PARAM"); }
bool HandleTag(const wxHtmlTag& tag);
void WriteOut(wxHtmlContentsItem*& array, int& size);
void ReadIn(wxHtmlContentsItem* array, int size);
DECLARE_NO_COPY_CLASS(HP_TagHandler)
};
bool HP_TagHandler::HandleTag(const wxHtmlTag& tag)
{
if (tag.GetName() == wxT("UL"))
{
m_Level++;
ParseInner(tag);
m_Level--;
return TRUE;
}
else if (tag.GetName() == wxT("OBJECT"))
{
m_Name = m_Page = wxEmptyString;
ParseInner(tag);
#if 0
if (!m_Page.IsEmpty())
/* Valid HHW's file may contain only two object tags:
<OBJECT type="text/site properties">
<param name="ImageType" value="Folder">
</OBJECT>
or
<OBJECT type="text/sitemap">
<param name="Name" value="main page">
<param name="Local" value="another.htm">
</OBJECT>
We're interested in the latter. !m_Page.IsEmpty() is valid
condition because text/site properties does not contain Local param
*/
#endif
if (tag.GetParam(wxT("TYPE")) == wxT("text/sitemap"))
{
if (m_ItemsCnt % wxHTML_REALLOC_STEP == 0)
m_Items = (wxHtmlContentsItem*) realloc(m_Items,
(m_ItemsCnt + wxHTML_REALLOC_STEP) *
sizeof(wxHtmlContentsItem));
m_Items[m_ItemsCnt].m_Level = m_Level;
m_Items[m_ItemsCnt].m_ID = m_ID;
m_Items[m_ItemsCnt].m_Page = new wxChar[m_Page.Length() + 1];
wxStrcpy(m_Items[m_ItemsCnt].m_Page, m_Page.c_str());
m_Items[m_ItemsCnt].m_Name = new wxChar [m_Name.Length() + 1];
wxStrcpy(m_Items[m_ItemsCnt].m_Name, m_Name.c_str());
m_Items[m_ItemsCnt].m_Book = m_Book;
m_ItemsCnt++;
}
return TRUE;
}
else
{ // "PARAM"
if (m_Name == wxEmptyString && tag.GetParam(wxT("NAME")) == wxT("Name"))
m_Name = tag.GetParam(wxT("VALUE"));
if (tag.GetParam(wxT("NAME")) == wxT("Local"))
m_Page = tag.GetParam(wxT("VALUE"));
if (tag.GetParam(wxT("NAME")) == wxT("ID"))
tag.GetParamAsInt(wxT("VALUE"), &m_ID);
return FALSE;
}
}
void HP_TagHandler::WriteOut(wxHtmlContentsItem*& array, int& size)
{
array = m_Items;
size = m_ItemsCnt;
m_Items = NULL;
m_ItemsCnt = 0;
}
void HP_TagHandler::ReadIn(wxHtmlContentsItem* array, int size)
{
m_Items = array;
m_ItemsCnt = size;
}
//-----------------------------------------------------------------------------
// wxHtmlHelpData
//-----------------------------------------------------------------------------
wxString wxHtmlBookRecord::GetFullPath(const wxString &page) const
{
if (wxIsAbsolutePath(page))
return page;
else
return m_BasePath + page;
}
IMPLEMENT_DYNAMIC_CLASS(wxHtmlHelpData, wxObject)
wxHtmlHelpData::wxHtmlHelpData()
{
m_TempPath = wxEmptyString;
m_Contents = NULL;
m_ContentsCnt = 0;
m_Index = NULL;
m_IndexCnt = 0;
}
wxHtmlHelpData::~wxHtmlHelpData()
{
int i;
m_BookRecords.Empty();
if (m_Contents)
{
for (i = 0; i < m_ContentsCnt; i++)
{
delete[] m_Contents[i].m_Page;
delete[] m_Contents[i].m_Name;
}
free(m_Contents);
}
if (m_Index)
{
for (i = 0; i < m_IndexCnt; i++)
{
delete[] m_Index[i].m_Page;
delete[] m_Index[i].m_Name;
}
free(m_Index);
}
}
bool wxHtmlHelpData::LoadMSProject(wxHtmlBookRecord *book, wxFileSystem& fsys, const wxString& indexfile, const wxString& contentsfile)
{
wxFSFile *f;
wxHtmlFilterHTML filter;
wxString buf;
wxString string;
HP_Parser parser;
HP_TagHandler *handler = new HP_TagHandler(book);
parser.AddTagHandler(handler);
f = ( contentsfile.IsEmpty() ? (wxFSFile*) NULL : fsys.OpenFile(contentsfile) );
if (f)
{
buf.clear();
buf = filter.ReadFile(*f);
delete f;
handler->ReadIn(m_Contents, m_ContentsCnt);
parser.Parse(buf);
handler->WriteOut(m_Contents, m_ContentsCnt);
}
else
{
wxLogError(_("Cannot open contents file: %s"), contentsfile.c_str());
}
f = ( indexfile.IsEmpty() ? (wxFSFile*) NULL : fsys.OpenFile(indexfile) );
if (f)
{
buf.clear();
buf = filter.ReadFile(*f);
delete f;
handler->ReadIn(m_Index, m_IndexCnt);
parser.Parse(buf);
handler->WriteOut(m_Index, m_IndexCnt);
}
else if (!indexfile.IsEmpty())
{
wxLogError(_("Cannot open index file: %s"), indexfile.c_str());
}
return TRUE;
}
inline static void CacheWriteInt32(wxOutputStream *f, wxInt32 value)
{
wxInt32 x = wxINT32_SWAP_ON_BE(value);
f->Write(&x, sizeof(x));
}
inline static wxInt32 CacheReadInt32(wxInputStream *f)
{
wxInt32 x;
f->Read(&x, sizeof(x));
return wxINT32_SWAP_ON_BE(x);
}
inline static void CacheWriteString(wxOutputStream *f, const wxChar *str)
{
#if wxUSE_UNICODE
wxWX2MBbuf mbstr(wxConvUTF8.cWX2MB(str));
#else
const wxChar *mbstr = str;
#endif
size_t len = strlen(mbstr)+1;
CacheWriteInt32(f, len);
f->Write(mbstr, len);
}
inline static wxChar* CacheReadString(wxInputStream *f)
{
char *str;
size_t len = (size_t)CacheReadInt32(f);
str = new char[len];
f->Read(str, len);
#if !wxUSE_UNICODE
return str;
#else
wxMB2WXbuf wxstr(wxConvUTF8.cMB2WX(str));
wxChar *outstr = new wxChar[wxStrlen(wxstr)+1];
wxStrcpy(outstr, wxstr);
return outstr;
#endif
}
#define CURRENT_CACHED_BOOK_VERSION 4
// Additional flags to detect incompatibilities of the runtime environment:
#define CACHED_BOOK_FORMAT_FLAGS \
(wxUSE_UNICODE << 0)
bool wxHtmlHelpData::LoadCachedBook(wxHtmlBookRecord *book, wxInputStream *f)
{
int i, st;
wxInt32 version;
/* load header - version info : */
version = CacheReadInt32(f);
if (version != CURRENT_CACHED_BOOK_VERSION)
{
// NB: We can just silently return FALSE here and don't worry about
// it anymore, because AddBookParam will load the MS project in
// absence of (properly versioned) .cached file and automatically
// create new .cached file immediately afterward.
return FALSE;
}
if (CacheReadInt32(f) != CACHED_BOOK_FORMAT_FLAGS)
return FALSE;
/* load contents : */
st = m_ContentsCnt;
m_ContentsCnt += CacheReadInt32(f);
m_Contents = (wxHtmlContentsItem*) realloc(m_Contents,
(m_ContentsCnt / wxHTML_REALLOC_STEP + 1) *
wxHTML_REALLOC_STEP * sizeof(wxHtmlContentsItem));
for (i = st; i < m_ContentsCnt; i++)
{
m_Contents[i].m_Level = CacheReadInt32(f);
m_Contents[i].m_ID = CacheReadInt32(f);
m_Contents[i].m_Name = CacheReadString(f);
m_Contents[i].m_Page = CacheReadString(f);
m_Contents[i].m_Book = book;
}
/* load index : */
st = m_IndexCnt;
m_IndexCnt += CacheReadInt32(f);
m_Index = (wxHtmlContentsItem*) realloc(m_Index, (m_IndexCnt / wxHTML_REALLOC_STEP + 1) *
wxHTML_REALLOC_STEP * sizeof(wxHtmlContentsItem));
for (i = st; i < m_IndexCnt; i++)
{
m_Index[i].m_Name = CacheReadString(f);
m_Index[i].m_Page = CacheReadString(f);
m_Index[i].m_Book = book;
}
return TRUE;
}
bool wxHtmlHelpData::SaveCachedBook(wxHtmlBookRecord *book, wxOutputStream *f)
{
int i;
wxInt32 cnt;
/* save header - version info : */
CacheWriteInt32(f, CURRENT_CACHED_BOOK_VERSION);
CacheWriteInt32(f, CACHED_BOOK_FORMAT_FLAGS);
/* save contents : */
for (cnt = 0, i = 0; i < m_ContentsCnt; i++)
if (m_Contents[i].m_Book == book && m_Contents[i].m_Level > 0)
cnt++;
CacheWriteInt32(f, cnt);
for (i = 0; i < m_ContentsCnt; i++)
{
if (m_Contents[i].m_Book != book || m_Contents[i].m_Level == 0)
continue;
CacheWriteInt32(f, m_Contents[i].m_Level);
CacheWriteInt32(f, m_Contents[i].m_ID);
CacheWriteString(f, m_Contents[i].m_Name);
CacheWriteString(f, m_Contents[i].m_Page);
}
/* save index : */
for (cnt = 0, i = 0; i < m_IndexCnt; i++)
if (m_Index[i].m_Book == book && m_Index[i].m_Level > 0)
cnt++;
CacheWriteInt32(f, cnt);
for (i = 0; i < m_IndexCnt; i++)
{
if (m_Index[i].m_Book != book || m_Index[i].m_Level == 0)
continue;
CacheWriteString(f, m_Index[i].m_Name);
CacheWriteString(f, m_Index[i].m_Page);
}
return TRUE;
}
void wxHtmlHelpData::SetTempDir(const wxString& path)
{
if (path == wxEmptyString) m_TempPath = path;
else
{
if (wxIsAbsolutePath(path)) m_TempPath = path;
else m_TempPath = wxGetCwd() + _T("/") + path;
if (m_TempPath[m_TempPath.Length() - 1] != _T('/'))
m_TempPath << _T('/');
}
}
static wxString SafeFileName(const wxString& s)
{
wxString res(s);
res.Replace(wxT("#"), wxT("_"));
res.Replace(wxT(":"), wxT("_"));
res.Replace(wxT("\\"), wxT("_"));
res.Replace(wxT("/"), wxT("_"));
return res;
}
bool wxHtmlHelpData::AddBookParam(const wxFSFile& bookfile,
wxFontEncoding encoding,
const wxString& title, const wxString& contfile,
const wxString& indexfile, const wxString& deftopic,
const wxString& path)
{
wxFileSystem fsys;
wxFSFile *fi;
wxHtmlBookRecord *bookr;
int IndexOld = m_IndexCnt,
ContentsOld = m_ContentsCnt;
if (!path.IsEmpty())
fsys.ChangePathTo(path, TRUE);
size_t booksCnt = m_BookRecords.GetCount();
for (size_t i = 0; i < booksCnt; i++)
{
if ( m_BookRecords[i].GetBookFile() == bookfile.GetLocation() )
return TRUE; // book is (was) loaded
}
bookr = new wxHtmlBookRecord(bookfile.GetLocation(), fsys.GetPath(), title, deftopic);
if (m_ContentsCnt % wxHTML_REALLOC_STEP == 0)
m_Contents = (wxHtmlContentsItem*) realloc(m_Contents, (m_ContentsCnt + wxHTML_REALLOC_STEP) * sizeof(wxHtmlContentsItem));
m_Contents[m_ContentsCnt].m_Level = 0;
m_Contents[m_ContentsCnt].m_ID = 0;
m_Contents[m_ContentsCnt].m_Page = new wxChar[deftopic.Length() + 1];
wxStrcpy(m_Contents[m_ContentsCnt].m_Page, deftopic.c_str());
m_Contents[m_ContentsCnt].m_Name = new wxChar [title.Length() + 1];
wxStrcpy(m_Contents[m_ContentsCnt].m_Name, title.c_str());
m_Contents[m_ContentsCnt].m_Book = bookr;
// store the contents index for later
int cont_start = m_ContentsCnt++;
// Try to find cached binary versions:
// 1. save file as book, but with .hhp.cached extension
// 2. same as 1. but in temp path
// 3. otherwise or if cache load failed, load it from MS.
fi = fsys.OpenFile(bookfile.GetLocation() + wxT(".cached"));
if (fi == NULL ||
#if wxUSE_DATETIME
fi->GetModificationTime() < bookfile.GetModificationTime() ||
#endif // wxUSE_DATETIME
!LoadCachedBook(bookr, fi->GetStream()))
{
if (fi != NULL) delete fi;
fi = fsys.OpenFile(m_TempPath + wxFileNameFromPath(bookfile.GetLocation()) + wxT(".cached"));
if (m_TempPath == wxEmptyString || fi == NULL ||
#if wxUSE_DATETIME
fi->GetModificationTime() < bookfile.GetModificationTime() ||
#endif // wxUSE_DATETIME
!LoadCachedBook(bookr, fi->GetStream()))
{
LoadMSProject(bookr, fsys, indexfile, contfile);
if (m_TempPath != wxEmptyString)
{
wxFileOutputStream *outs = new wxFileOutputStream(m_TempPath +
SafeFileName(wxFileNameFromPath(bookfile.GetLocation())) + wxT(".cached"));
SaveCachedBook(bookr, outs);
delete outs;
}
}
}
if (fi != NULL) delete fi;
// Now store the contents range
bookr->SetContentsRange(cont_start, m_ContentsCnt);
// Convert encoding, if neccessary:
if (encoding != wxFONTENCODING_SYSTEM)
{
wxFontEncodingArray a = wxEncodingConverter::GetPlatformEquivalents(encoding);
if (a.GetCount() != 0 && a[0] != encoding)
{
int i;
wxEncodingConverter conv;
conv.Init(encoding, a[0]);
for (i = IndexOld; i < m_IndexCnt; i++)
conv.Convert(m_Index[i].m_Name);
for (i = ContentsOld; i < m_ContentsCnt; i++)
conv.Convert(m_Contents[i].m_Name);
}
}
m_BookRecords.Add(bookr);
if (m_IndexCnt > 0)
qsort(m_Index, m_IndexCnt, sizeof(wxHtmlContentsItem), wxHtmlHelpIndexCompareFunc);
return TRUE;
}
bool wxHtmlHelpData::AddBook(const wxString& book)
{
if (book.Right(4).Lower() == wxT(".zip") ||
book.Right(4).Lower() == wxT(".htb") /*html book*/)
{
wxFileSystem fsys;
wxString s;
bool rt = FALSE;
s = fsys.FindFirst(book + wxT("#zip:") + wxT("*.hhp"), wxFILE);
while (!s.IsEmpty())
{
if (AddBook(s)) rt = TRUE;
s = fsys.FindNext();
}
return rt;
}
else
{
wxFSFile *fi;
wxFileSystem fsys;
wxString title = _("noname"),
safetitle,
start = wxEmptyString,
contents = wxEmptyString,
index = wxEmptyString,
charset = wxEmptyString;
fi = fsys.OpenFile(book);
if (fi == NULL)
{
wxLogError(_("Cannot open HTML help book: %s"), book.c_str());
return FALSE;
}
fsys.ChangePathTo(book);
const wxChar *lineptr;
wxChar linebuf[300];
wxString tmp;
wxHtmlFilterPlainText filter;
tmp = filter.ReadFile(*fi);
lineptr = tmp.c_str();
do
{
lineptr = ReadLine(lineptr, linebuf, 300);
for (wxChar *ch = linebuf; *ch != wxT('\0') && *ch != wxT('='); ch++)
*ch = tolower(*ch);
if (wxStrstr(linebuf, _T("title=")) == linebuf)
title = linebuf + wxStrlen(_T("title="));
if (wxStrstr(linebuf, _T("default topic=")) == linebuf)
start = linebuf + wxStrlen(_T("default topic="));
if (wxStrstr(linebuf, _T("index file=")) == linebuf)
index = linebuf + wxStrlen(_T("index file="));
if (wxStrstr(linebuf, _T("contents file=")) == linebuf)
contents = linebuf + wxStrlen(_T("contents file="));
if (wxStrstr(linebuf, _T("charset=")) == linebuf)
charset = linebuf + wxStrlen(_T("charset="));
} while (lineptr != NULL);
wxFontEncoding enc;
if (charset == wxEmptyString) enc = wxFONTENCODING_SYSTEM;
else enc = wxFontMapper::Get()->CharsetToEncoding(charset);
bool rtval = AddBookParam(*fi, enc,
title, contents, index, start, fsys.GetPath());
delete fi;
return rtval;
}
}
wxString wxHtmlHelpData::FindPageByName(const wxString& x)
{
int cnt;
int i;
wxFileSystem fsys;
wxFSFile *f;
wxString url(wxEmptyString);
/* 1. try to open given file: */
cnt = m_BookRecords.GetCount();
for (i = 0; i < cnt; i++)
{
f = fsys.OpenFile(m_BookRecords[i].GetFullPath(x));
if (f)
{
url = m_BookRecords[i].GetFullPath(x);
delete f;
return url;
}
}
/* 2. try to find a book: */
for (i = 0; i < cnt; i++)
{
if (m_BookRecords[i].GetTitle() == x)
{
url = m_BookRecords[i].GetFullPath(m_BookRecords[i].GetStart());
return url;
}
}
/* 3. try to find in contents: */
cnt = m_ContentsCnt;
for (i = 0; i < cnt; i++)
{
if (wxStrcmp(m_Contents[i].m_Name, x) == 0)
{
url = m_Contents[i].GetFullPath();
return url;
}
}
/* 4. try to find in index: */
cnt = m_IndexCnt;
for (i = 0; i < cnt; i++)
{
if (wxStrcmp(m_Index[i].m_Name, x) == 0)
{
url = m_Index[i].GetFullPath();
return url;
}
}
return url;
}
wxString wxHtmlHelpData::FindPageById(int id)
{
int i;
wxString url(wxEmptyString);
for (i = 0; i < m_ContentsCnt; i++)
{
if (m_Contents[i].m_ID == id)
{
url = m_Contents[i].GetFullPath();
return url;
}
}
return url;
}
//----------------------------------------------------------------------------------
// wxHtmlSearchStatus functions
//----------------------------------------------------------------------------------
wxHtmlSearchStatus::wxHtmlSearchStatus(wxHtmlHelpData* data, const wxString& keyword,
bool case_sensitive, bool whole_words_only,
const wxString& book)
{
m_Data = data;
m_Keyword = keyword;
wxHtmlBookRecord* bookr = NULL;
if (book != wxEmptyString)
{
// we have to search in a specific book. Find it first
int i, cnt = data->m_BookRecords.GetCount();
for (i = 0; i < cnt; i++)
if (data->m_BookRecords[i].GetTitle() == book)
{
bookr = &(data->m_BookRecords[i]);
m_CurIndex = bookr->GetContentsStart();
m_MaxIndex = bookr->GetContentsEnd();
break;
}
// check; we won't crash if the book doesn't exist, but it's Bad Anyway.
wxASSERT(bookr);
}
if (! bookr)
{
// no book specified; search all books
m_CurIndex = 0;
m_MaxIndex = m_Data->m_ContentsCnt;
}
m_Engine.LookFor(keyword, case_sensitive, whole_words_only);
m_Active = (m_CurIndex < m_MaxIndex);
m_LastPage = NULL;
}
bool wxHtmlSearchStatus::Search()
{
wxFSFile *file;
int i = m_CurIndex; // shortcut
bool found = FALSE;
wxChar *thepage;
if (!m_Active)
{
// sanity check. Illegal use, but we'll try to prevent a crash anyway
wxASSERT(m_Active);
return FALSE;
}
m_Name = wxEmptyString;
m_ContentsItem = NULL;
thepage = m_Data->m_Contents[i].m_Page;
m_Active = (++m_CurIndex < m_MaxIndex);
// check if it is same page with different anchor:
if (m_LastPage != NULL)
{
wxChar *p1, *p2;
for (p1 = thepage, p2 = m_LastPage;
*p1 != 0 && *p1 != _T('#') && *p1 == *p2; p1++, p2++) {}
m_LastPage = thepage;
if (*p1 == 0 || *p1 == _T('#'))
return FALSE;
}
else m_LastPage = thepage;
wxFileSystem fsys;
file = fsys.OpenFile(m_Data->m_Contents[i].m_Book->GetFullPath(thepage));
if (file)
{
if (m_Engine.Scan(*file))
{
m_Name = m_Data->m_Contents[i].m_Name;
m_ContentsItem = m_Data->m_Contents + i;
found = TRUE;
}
delete file;
}
return found;
}
//--------------------------------------------------------------------------------
// wxHtmlSearchEngine
//--------------------------------------------------------------------------------
void wxHtmlSearchEngine::LookFor(const wxString& keyword, bool case_sensitive, bool whole_words_only)
{
m_CaseSensitive = case_sensitive;
m_WholeWords = whole_words_only;
if (m_Keyword) delete[] m_Keyword;
m_Keyword = new wxChar[keyword.Length() + 1];
wxStrcpy(m_Keyword, keyword.c_str());
if (!m_CaseSensitive)
{
for (int i = wxStrlen(m_Keyword) - 1; i >= 0; i--)
{
if ((m_Keyword[i] >= wxT('A')) && (m_Keyword[i] <= wxT('Z')))
m_Keyword[i] += wxT('a') - wxT('A');
}
}
}
static inline bool WHITESPACE(wxChar c)
{
return c == _T(' ') || c == _T('\n') || c == _T('\r') || c == _T('\t');
}
bool wxHtmlSearchEngine::Scan(const wxFSFile& file)
{
wxASSERT_MSG(m_Keyword != NULL, wxT("wxHtmlSearchEngine::LookFor must be called before scanning!"));
int i, j;
int wrd = wxStrlen(m_Keyword);
bool found = FALSE;
wxHtmlFilterHTML filter;
wxString tmp = filter.ReadFile(file);
int lng = tmp.length();
const wxChar *buf = tmp.c_str();
if (!m_CaseSensitive)
for (i = 0; i < lng; i++)
tmp[(size_t)i] = (wxChar)wxTolower(tmp[(size_t)i]);
if (m_WholeWords)
{
for (i = 0; i < lng - wrd; i++)
{
if (WHITESPACE(buf[i])) continue;
j = 0;
while ((j < wrd) && (buf[i + j] == m_Keyword[j])) j++;
if (j == wrd && WHITESPACE(buf[i + j])) { found = TRUE; break; }
}
}
else
{
for (i = 0; i < lng - wrd; i++)
{
j = 0;
while ((j < wrd) && (buf[i + j] == m_Keyword[j])) j++;
if (j == wrd) { found = TRUE; break; }
}
}
return found;
}
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -1,728 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: htmlcell.cpp
// Purpose: wxHtmlCell - basic element of HTML output
// Author: Vaclav Slavik
// RCS-ID: $Id$
// Copyright: (c) 1999 Vaclav Slavik
// Licence: wxWindows Licence
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation "htmlcell.h"
#endif
#include "wx/wxprec.h"
#include "wx/defs.h"
#if wxUSE_HTML && wxUSE_STREAMS
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WXPRECOMP
#include "wx/brush.h"
#include "wx/colour.h"
#include "wx/dc.h"
#endif
#include "wx/html/htmlcell.h"
#include "wx/html/htmlwin.h"
#include <stdlib.h>
//-----------------------------------------------------------------------------
// wxHtmlCell
//-----------------------------------------------------------------------------
wxHtmlCell::wxHtmlCell() : wxObject()
{
m_Next = NULL;
m_Parent = NULL;
m_Width = m_Height = m_Descent = 0;
m_CanLiveOnPagebreak = TRUE;
m_Link = NULL;
}
wxHtmlCell::~wxHtmlCell()
{
delete m_Link;
}
void wxHtmlCell::OnMouseClick(wxWindow *parent, int x, int y,
const wxMouseEvent& event)
{
wxHtmlLinkInfo *lnk = GetLink(x, y);
if (lnk != NULL)
{
wxHtmlLinkInfo lnk2(*lnk);
lnk2.SetEvent(&event);
lnk2.SetHtmlCell(this);
// note : this cast is legal because parent is *always* wxHtmlWindow
wxStaticCast(parent, wxHtmlWindow)->OnLinkClicked(lnk2);
}
}
bool wxHtmlCell::AdjustPagebreak(int *pagebreak, int* WXUNUSED(known_pagebreaks), int WXUNUSED(number_of_pages)) const
{
if ((!m_CanLiveOnPagebreak) &&
m_PosY < *pagebreak && m_PosY + m_Height > *pagebreak)
{
*pagebreak = m_PosY;
return TRUE;
}
return FALSE;
}
void wxHtmlCell::SetLink(const wxHtmlLinkInfo& link)
{
if (m_Link) delete m_Link;
m_Link = NULL;
if (link.GetHref() != wxEmptyString)
m_Link = new wxHtmlLinkInfo(link);
}
void wxHtmlCell::Layout(int WXUNUSED(w))
{
SetPos(0, 0);
}
void wxHtmlCell::GetHorizontalConstraints(int *left, int *right) const
{
if (left)
*left = m_PosX;
if (right)
*right = m_PosX + m_Width;
}
const wxHtmlCell* wxHtmlCell::Find(int WXUNUSED(condition), const void* WXUNUSED(param)) const
{
return NULL;
}
wxHtmlCell *wxHtmlCell::FindCellByPos(wxCoord x, wxCoord y) const
{
if ( x >= 0 && x < m_Width && y >= 0 && y < m_Height )
return wxConstCast(this, wxHtmlCell);
return NULL;
}
//-----------------------------------------------------------------------------
// wxHtmlWordCell
//-----------------------------------------------------------------------------
wxHtmlWordCell::wxHtmlWordCell(const wxString& word, wxDC& dc) : wxHtmlCell()
{
m_Word = word;
dc.GetTextExtent(m_Word, &m_Width, &m_Height, &m_Descent);
SetCanLiveOnPagebreak(FALSE);
}
void wxHtmlWordCell::Draw(wxDC& dc, int x, int y, int WXUNUSED(view_y1), int WXUNUSED(view_y2))
{
dc.DrawText(m_Word, x + m_PosX, y + m_PosY);
}
//-----------------------------------------------------------------------------
// wxHtmlContainerCell
//-----------------------------------------------------------------------------
wxHtmlContainerCell::wxHtmlContainerCell(wxHtmlContainerCell *parent) : wxHtmlCell()
{
m_Cells = m_LastCell = NULL;
m_Parent = parent;
if (m_Parent) m_Parent->InsertCell(this);
m_AlignHor = wxHTML_ALIGN_LEFT;
m_AlignVer = wxHTML_ALIGN_BOTTOM;
m_IndentLeft = m_IndentRight = m_IndentTop = m_IndentBottom = 0;
m_WidthFloat = 100; m_WidthFloatUnits = wxHTML_UNITS_PERCENT;
m_UseBkColour = FALSE;
m_UseBorder = FALSE;
m_MinHeight = 0;
m_MinHeightAlign = wxHTML_ALIGN_TOP;
m_LastLayout = -1;
}
wxHtmlContainerCell::~wxHtmlContainerCell()
{
wxHtmlCell *cell = m_Cells;
while ( cell )
{
wxHtmlCell *cellNext = cell->GetNext();
delete cell;
cell = cellNext;
}
}
void wxHtmlContainerCell::SetIndent(int i, int what, int units)
{
int val = (units == wxHTML_UNITS_PIXELS) ? i : -i;
if (what & wxHTML_INDENT_LEFT) m_IndentLeft = val;
if (what & wxHTML_INDENT_RIGHT) m_IndentRight = val;
if (what & wxHTML_INDENT_TOP) m_IndentTop = val;
if (what & wxHTML_INDENT_BOTTOM) m_IndentBottom = val;
m_LastLayout = -1;
}
int wxHtmlContainerCell::GetIndent(int ind) const
{
if (ind & wxHTML_INDENT_LEFT) return m_IndentLeft;
else if (ind & wxHTML_INDENT_RIGHT) return m_IndentRight;
else if (ind & wxHTML_INDENT_TOP) return m_IndentTop;
else if (ind & wxHTML_INDENT_BOTTOM) return m_IndentBottom;
else return -1; /* BUG! Should not be called... */
}
int wxHtmlContainerCell::GetIndentUnits(int ind) const
{
bool p = FALSE;
if (ind & wxHTML_INDENT_LEFT) p = m_IndentLeft < 0;
else if (ind & wxHTML_INDENT_RIGHT) p = m_IndentRight < 0;
else if (ind & wxHTML_INDENT_TOP) p = m_IndentTop < 0;
else if (ind & wxHTML_INDENT_BOTTOM) p = m_IndentBottom < 0;
if (p) return wxHTML_UNITS_PERCENT;
else return wxHTML_UNITS_PIXELS;
}
bool wxHtmlContainerCell::AdjustPagebreak(int *pagebreak, int* known_pagebreaks, int number_of_pages) const
{
if (!m_CanLiveOnPagebreak)
return wxHtmlCell::AdjustPagebreak(pagebreak, known_pagebreaks, number_of_pages);
else
{
wxHtmlCell *c = GetFirstCell();
bool rt = FALSE;
int pbrk = *pagebreak - m_PosY;
while (c)
{
if (c->AdjustPagebreak(&pbrk, known_pagebreaks, number_of_pages))
rt = TRUE;
c = c->GetNext();
}
if (rt)
*pagebreak = pbrk + m_PosY;
return rt;
}
}
void wxHtmlContainerCell::Layout(int w)
{
wxHtmlCell::Layout(w);
if (m_LastLayout == w) return;
// VS: Any attempt to layout with negative or zero width leads to hell,
// but we can't ignore such attempts completely, since it sometimes
// happen (e.g. when trying how small a table can be). The best thing we
// can do is to set the width of child cells to zero
if (w < 1)
{
m_Width = 0;
for (wxHtmlCell *cell = m_Cells; cell; cell = cell->GetNext())
cell->Layout(0);
// this does two things: it recursively calls this code on all
// child contrainers and resets children's position to (0,0)
return;
}
wxHtmlCell *cell = m_Cells, *line = m_Cells;
long xpos = 0, ypos = m_IndentTop;
int xdelta = 0, ybasicpos = 0, ydiff;
int s_width, s_indent;
int ysizeup = 0, ysizedown = 0;
int MaxLineWidth = 0;
int xcnt = 0;
/*
WIDTH ADJUSTING :
*/
if (m_WidthFloatUnits == wxHTML_UNITS_PERCENT)
{
if (m_WidthFloat < 0) m_Width = (100 + m_WidthFloat) * w / 100;
else m_Width = m_WidthFloat * w / 100;
}
else
{
if (m_WidthFloat < 0) m_Width = w + m_WidthFloat;
else m_Width = m_WidthFloat;
}
if (m_Cells)
{
int l = (m_IndentLeft < 0) ? (-m_IndentLeft * m_Width / 100) : m_IndentLeft;
int r = (m_IndentRight < 0) ? (-m_IndentRight * m_Width / 100) : m_IndentRight;
for (wxHtmlCell *cell = m_Cells; cell; cell = cell->GetNext())
cell->Layout(m_Width - (l + r));
}
/*
LAYOUTING :
*/
// adjust indentation:
s_indent = (m_IndentLeft < 0) ? (-m_IndentLeft * m_Width / 100) : m_IndentLeft;
s_width = m_Width - s_indent - ((m_IndentRight < 0) ? (-m_IndentRight * m_Width / 100) : m_IndentRight);
// my own layouting:
while (cell != NULL)
{
switch (m_AlignVer)
{
case wxHTML_ALIGN_TOP : ybasicpos = 0; break;
case wxHTML_ALIGN_BOTTOM : ybasicpos = - cell->GetHeight(); break;
case wxHTML_ALIGN_CENTER : ybasicpos = - cell->GetHeight() / 2; break;
}
ydiff = cell->GetHeight() + ybasicpos;
if (cell->GetDescent() + ydiff > ysizedown) ysizedown = cell->GetDescent() + ydiff;
if (ybasicpos + cell->GetDescent() < -ysizeup) ysizeup = - (ybasicpos + cell->GetDescent());
cell->SetPos(xpos, ybasicpos + cell->GetDescent());
xpos += cell->GetWidth();
cell = cell->GetNext();
xcnt++;
// force new line if occured:
if ((cell == NULL) || (xpos + cell->GetWidth() > s_width))
{
if (xpos > MaxLineWidth) MaxLineWidth = xpos;
if (ysizeup < 0) ysizeup = 0;
if (ysizedown < 0) ysizedown = 0;
switch (m_AlignHor) {
case wxHTML_ALIGN_LEFT :
case wxHTML_ALIGN_JUSTIFY :
xdelta = 0;
break;
case wxHTML_ALIGN_RIGHT :
xdelta = 0 + (s_width - xpos);
break;
case wxHTML_ALIGN_CENTER :
xdelta = 0 + (s_width - xpos) / 2;
break;
}
if (xdelta < 0) xdelta = 0;
xdelta += s_indent;
ypos += ysizeup;
if (m_AlignHor != wxHTML_ALIGN_JUSTIFY || cell == NULL)
while (line != cell)
{
line->SetPos(line->GetPosX() + xdelta,
ypos + line->GetPosY());
line = line->GetNext();
}
else
{
int counter = 0;
int step = (s_width - xpos);
if (step < 0) step = 0;
xcnt--;
if (xcnt > 0) while (line != cell)
{
line->SetPos(line->GetPosX() + s_indent +
(counter++ * step / xcnt),
ypos + line->GetPosY());
line = line->GetNext();
}
xcnt++;
}
ypos += ysizedown;
xpos = xcnt = 0;
ysizeup = ysizedown = 0;
line = cell;
}
}
// setup height & width, depending on container layout:
m_Height = ypos + (ysizedown + ysizeup) + m_IndentBottom;
if (m_Height < m_MinHeight)
{
if (m_MinHeightAlign != wxHTML_ALIGN_TOP)
{
int diff = m_MinHeight - m_Height;
if (m_MinHeightAlign == wxHTML_ALIGN_CENTER) diff /= 2;
cell = m_Cells;
while (cell)
{
cell->SetPos(cell->GetPosX(), cell->GetPosY() + diff);
cell = cell->GetNext();
}
}
m_Height = m_MinHeight;
}
MaxLineWidth += s_indent + ((m_IndentRight < 0) ? (-m_IndentRight * m_Width / 100) : m_IndentRight);
if (m_Width < MaxLineWidth) m_Width = MaxLineWidth;
m_LastLayout = w;
}
#define mMin(a, b) (((a) < (b)) ? (a) : (b))
#define mMax(a, b) (((a) < (b)) ? (b) : (a))
void wxHtmlContainerCell::Draw(wxDC& dc, int x, int y, int view_y1, int view_y2)
{
// container visible, draw it:
if ((y + m_PosY <= view_y2) && (y + m_PosY + m_Height > view_y1))
{
if (m_UseBkColour)
{
wxBrush myb = wxBrush(m_BkColour, wxSOLID);
int real_y1 = mMax(y + m_PosY, view_y1);
int real_y2 = mMin(y + m_PosY + m_Height - 1, view_y2);
dc.SetBrush(myb);
dc.SetPen(*wxTRANSPARENT_PEN);
dc.DrawRectangle(x + m_PosX, real_y1, m_Width, real_y2 - real_y1 + 1);
}
if (m_UseBorder)
{
wxPen mypen1(m_BorderColour1, 1, wxSOLID);
wxPen mypen2(m_BorderColour2, 1, wxSOLID);
dc.SetPen(mypen1);
dc.DrawLine(x + m_PosX, y + m_PosY, x + m_PosX, y + m_PosY + m_Height - 1);
dc.DrawLine(x + m_PosX, y + m_PosY, x + m_PosX + m_Width, y + m_PosY);
dc.SetPen(mypen2);
dc.DrawLine(x + m_PosX + m_Width - 1, y + m_PosY, x + m_PosX + m_Width - 1, y + m_PosY + m_Height - 1);
dc.DrawLine(x + m_PosX, y + m_PosY + m_Height - 1, x + m_PosX + m_Width, y + m_PosY + m_Height - 1);
}
if (m_Cells)
{
for (wxHtmlCell *cell = m_Cells; cell; cell = cell->GetNext())
cell->Draw(dc, x + m_PosX, y + m_PosY, view_y1, view_y2);
}
}
// container invisible, just proceed font+color changing:
else
{
if (m_Cells)
{
for (wxHtmlCell *cell = m_Cells; cell; cell = cell->GetNext())
cell->DrawInvisible(dc, x + m_PosX, y + m_PosY);
}
}
}
void wxHtmlContainerCell::DrawInvisible(wxDC& dc, int x, int y)
{
if (m_Cells)
{
for (wxHtmlCell *cell = m_Cells; cell; cell = cell->GetNext())
cell->DrawInvisible(dc, x + m_PosX, y + m_PosY);
}
}
wxColour wxHtmlContainerCell::GetBackgroundColour()
{
if (m_UseBkColour)
return m_BkColour;
else
return wxNullColour;
}
wxHtmlLinkInfo *wxHtmlContainerCell::GetLink(int x, int y) const
{
wxHtmlCell *cell = FindCellByPos(x, y);
// VZ: I don't know if we should pass absolute or relative coords to
// wxHtmlCell::GetLink()? As the base class version just ignores them
// anyhow, it hardly matters right now but should still be clarified
return cell ? cell->GetLink(x, y) : NULL;
}
void wxHtmlContainerCell::InsertCell(wxHtmlCell *f)
{
if (!m_Cells) m_Cells = m_LastCell = f;
else
{
m_LastCell->SetNext(f);
m_LastCell = f;
if (m_LastCell) while (m_LastCell->GetNext()) m_LastCell = m_LastCell->GetNext();
}
f->SetParent(this);
m_LastLayout = -1;
}
void wxHtmlContainerCell::SetAlign(const wxHtmlTag& tag)
{
if (tag.HasParam(wxT("ALIGN")))
{
wxString alg = tag.GetParam(wxT("ALIGN"));
alg.MakeUpper();
if (alg == wxT("CENTER"))
SetAlignHor(wxHTML_ALIGN_CENTER);
else if (alg == wxT("LEFT"))
SetAlignHor(wxHTML_ALIGN_LEFT);
else if (alg == wxT("JUSTIFY"))
SetAlignHor(wxHTML_ALIGN_JUSTIFY);
else if (alg == wxT("RIGHT"))
SetAlignHor(wxHTML_ALIGN_RIGHT);
m_LastLayout = -1;
}
}
void wxHtmlContainerCell::SetWidthFloat(const wxHtmlTag& tag, double pixel_scale)
{
if (tag.HasParam(wxT("WIDTH")))
{
int wdi;
wxString wd = tag.GetParam(wxT("WIDTH"));
if (wd[wd.Length()-1] == wxT('%'))
{
wxSscanf(wd.c_str(), wxT("%i%%"), &wdi);
SetWidthFloat(wdi, wxHTML_UNITS_PERCENT);
}
else
{
wxSscanf(wd.c_str(), wxT("%i"), &wdi);
SetWidthFloat((int)(pixel_scale * (double)wdi), wxHTML_UNITS_PIXELS);
}
m_LastLayout = -1;
}
}
const wxHtmlCell* wxHtmlContainerCell::Find(int condition, const void* param) const
{
if (m_Cells)
{
const wxHtmlCell *r = NULL;
for (wxHtmlCell *cell = m_Cells; cell; cell = cell->GetNext())
{
r = cell->Find(condition, param);
if (r) return r;
}
}
return NULL;
}
wxHtmlCell *wxHtmlContainerCell::FindCellByPos(wxCoord x, wxCoord y) const
{
for ( const wxHtmlCell *cell = m_Cells; cell; cell = cell->GetNext() )
{
int cx = cell->GetPosX(),
cy = cell->GetPosY();
if ( (cx <= x) && (cx + cell->GetWidth() > x) &&
(cy <= y) && (cy + cell->GetHeight() > y) )
{
return cell->FindCellByPos(x - cx, y - cy);
}
}
return NULL;
}
void wxHtmlContainerCell::OnMouseClick(wxWindow *parent, int x, int y, const wxMouseEvent& event)
{
wxHtmlCell *cell = FindCellByPos(x, y);
if ( cell )
cell->OnMouseClick(parent, x, y, event);
}
void wxHtmlContainerCell::GetHorizontalConstraints(int *left, int *right) const
{
int cleft = m_PosX + m_Width, cright = m_PosX; // worst case
int l, r;
for (wxHtmlCell *cell = m_Cells; cell; cell = cell->GetNext())
{
cell->GetHorizontalConstraints(&l, &r);
if (l < cleft)
cleft = l;
if (r > cright)
cright = r;
}
cleft -= (m_IndentLeft < 0) ? (-m_IndentLeft * m_Width / 100) : m_IndentLeft;
cright += (m_IndentRight < 0) ? (-m_IndentRight * m_Width / 100) : m_IndentRight;
if (left)
*left = cleft;
if (right)
*right = cright;
}
//--------------------------------------------------------------------------------
// wxHtmlColourCell
//--------------------------------------------------------------------------------
void wxHtmlColourCell::Draw(wxDC& dc, int WXUNUSED(x), int WXUNUSED(y), int WXUNUSED(view_y1), int WXUNUSED(view_y2))
{
if (m_Flags & wxHTML_CLR_FOREGROUND)
dc.SetTextForeground(m_Colour);
if (m_Flags & wxHTML_CLR_BACKGROUND)
{
dc.SetBackground(wxBrush(m_Colour, wxSOLID));
dc.SetTextBackground(m_Colour);
}
}
void wxHtmlColourCell::DrawInvisible(wxDC& dc, int WXUNUSED(x), int WXUNUSED(y))
{
if (m_Flags & wxHTML_CLR_FOREGROUND)
dc.SetTextForeground(m_Colour);
if (m_Flags & wxHTML_CLR_BACKGROUND)
{
dc.SetBackground(wxBrush(m_Colour, wxSOLID));
dc.SetTextBackground(m_Colour);
}
}
//--------------------------------------------------------------------------------
// wxHtmlFontCell
//--------------------------------------------------------------------------------
void wxHtmlFontCell::Draw(wxDC& dc, int WXUNUSED(x), int WXUNUSED(y), int WXUNUSED(view_y1), int WXUNUSED(view_y2))
{
dc.SetFont(m_Font);
}
void wxHtmlFontCell::DrawInvisible(wxDC& dc, int WXUNUSED(x), int WXUNUSED(y))
{
dc.SetFont(m_Font);
}
//--------------------------------------------------------------------------------
// wxHtmlWidgetCell
//--------------------------------------------------------------------------------
wxHtmlWidgetCell::wxHtmlWidgetCell(wxWindow *wnd, int w)
{
int sx, sy;
m_Wnd = wnd;
m_Wnd->GetSize(&sx, &sy);
m_Width = sx, m_Height = sy;
m_WidthFloat = w;
}
void wxHtmlWidgetCell::Draw(wxDC& WXUNUSED(dc), int WXUNUSED(x), int WXUNUSED(y), int WXUNUSED(view_y1), int WXUNUSED(view_y2))
{
int absx = 0, absy = 0, stx, sty;
wxHtmlCell *c = this;
while (c)
{
absx += c->GetPosX();
absy += c->GetPosY();
c = c->GetParent();
}
((wxScrolledWindow*)(m_Wnd->GetParent()))->GetViewStart(&stx, &sty);
m_Wnd->SetSize(absx - wxHTML_SCROLL_STEP * stx, absy - wxHTML_SCROLL_STEP * sty, m_Width, m_Height);
}
void wxHtmlWidgetCell::DrawInvisible(wxDC& WXUNUSED(dc), int WXUNUSED(x), int WXUNUSED(y))
{
int absx = 0, absy = 0, stx, sty;
wxHtmlCell *c = this;
while (c)
{
absx += c->GetPosX();
absy += c->GetPosY();
c = c->GetParent();
}
((wxScrolledWindow*)(m_Wnd->GetParent()))->GetViewStart(&stx, &sty);
m_Wnd->SetSize(absx - wxHTML_SCROLL_STEP * stx, absy - wxHTML_SCROLL_STEP * sty, m_Width, m_Height);
}
void wxHtmlWidgetCell::Layout(int w)
{
if (m_WidthFloat != 0)
{
m_Width = (w * m_WidthFloat) / 100;
m_Wnd->SetSize(m_Width, m_Height);
}
wxHtmlCell::Layout(w);
}
#endif

View File

@@ -1,229 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: htmlfilt.cpp
// Purpose: wxHtmlFilter - input filter for translating into HTML format
// Author: Vaclav Slavik
// RCS-ID: $Id$
// Copyright: (c) 1999 Vaclav Slavik
// Licence: wxWindows Licence
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation "htmlfilt.h"
#endif
#include "wx/wxprec.h"
#include "wx/defs.h"
#if wxUSE_HTML && wxUSE_STREAMS
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WXPRECOMP
#include "wx/log.h"
#include "wx/intl.h"
#endif
#include "wx/strconv.h"
#include "wx/html/htmlfilt.h"
#include "wx/html/htmlwin.h"
// utility function: read a wxString from a wxInputStream
static void ReadString(wxString& str, wxInputStream* s, wxMBConv& conv)
{
size_t streamSize = s->GetSize();
if (streamSize == ~(size_t)0)
{
const size_t bufSize = 4095;
char buffer[bufSize+1];
size_t lastRead;
do
{
s->Read(buffer, bufSize);
lastRead = s->LastRead();
buffer[lastRead] = 0;
str.Append(wxString(buffer, conv));
}
while (lastRead == bufSize);
}
else
{
char* src = new char[streamSize+1];
s->Read(src, streamSize);
src[streamSize] = 0;
str = wxString(src, conv);
delete[] src;
}
}
/*
There is code for several default filters:
*/
IMPLEMENT_ABSTRACT_CLASS(wxHtmlFilter, wxObject)
//--------------------------------------------------------------------------------
// wxHtmlFilterPlainText
// filter for text/plain or uknown
//--------------------------------------------------------------------------------
IMPLEMENT_DYNAMIC_CLASS(wxHtmlFilterPlainText, wxHtmlFilter)
bool wxHtmlFilterPlainText::CanRead(const wxFSFile& WXUNUSED(file)) const
{
return TRUE;
}
wxString wxHtmlFilterPlainText::ReadFile(const wxFSFile& file) const
{
wxInputStream *s = file.GetStream();
wxString doc, doc2;
if (s == NULL) return wxEmptyString;
ReadString(doc, s, wxConvISO8859_1);
doc.Replace(wxT("&"), wxT("&amp;"), TRUE);
doc.Replace(wxT("<"), wxT("&lt;"), TRUE);
doc.Replace(wxT(">"), wxT("&gt;"), TRUE);
doc2 = wxT("<HTML><BODY><PRE>\n") + doc + wxT("\n</PRE></BODY></HTML>");
return doc2;
}
//--------------------------------------------------------------------------------
// wxHtmlFilterImage
// filter for image/*
//--------------------------------------------------------------------------------
class wxHtmlFilterImage : public wxHtmlFilter
{
DECLARE_DYNAMIC_CLASS(wxHtmlFilterImage)
public:
virtual bool CanRead(const wxFSFile& file) const;
virtual wxString ReadFile(const wxFSFile& file) const;
};
IMPLEMENT_DYNAMIC_CLASS(wxHtmlFilterImage, wxHtmlFilter)
bool wxHtmlFilterImage::CanRead(const wxFSFile& file) const
{
return (file.GetMimeType().Left(6) == wxT("image/"));
}
wxString wxHtmlFilterImage::ReadFile(const wxFSFile& file) const
{
wxString res = wxT("<HTML><BODY><IMG SRC=\"") + file.GetLocation() + wxT("\"></BODY></HTML>");
return res;
}
//--------------------------------------------------------------------------------
// wxHtmlFilterHTML
// filter for text/html
//--------------------------------------------------------------------------------
IMPLEMENT_DYNAMIC_CLASS(wxHtmlFilterHTML, wxHtmlFilter)
bool wxHtmlFilterHTML::CanRead(const wxFSFile& file) const
{
// return (file.GetMimeType() == "text/html");
// This is true in most case but some page can return:
// "text/html; char-encoding=...."
// So we use Find instead
return (file.GetMimeType().Find(wxT("text/html")) == 0);
}
wxString wxHtmlFilterHTML::ReadFile(const wxFSFile& file) const
{
wxInputStream *s = file.GetStream();
wxString doc;
if (s == NULL)
{
wxLogError(_("Cannot open HTML document: %s"), file.GetLocation().c_str());
return wxEmptyString;
}
// NB: We convert input file to wchar_t here in Unicode mode, based on
// either Content-Type header or <meta> tags. In ANSI mode, we don't
// do it as it is done by wxHtmlParser (for this reason, we add <meta>
// tag if we used Content-Type header).
#if wxUSE_UNICODE
int charsetPos;
if ((charsetPos = file.GetMimeType().Find(_T("; charset="))) != wxNOT_FOUND)
{
wxString charset = file.GetMimeType().Mid(charsetPos + 10);
wxCSConv conv(charset);
ReadString(doc, s, conv);
}
else
{
wxString tmpdoc;
ReadString(tmpdoc, s, wxConvISO8859_1);
wxString charset = wxHtmlParser::ExtractCharsetInformation(tmpdoc);
if (charset.empty())
doc = tmpdoc;
else
{
wxCSConv conv(charset);
doc = wxString(tmpdoc.mb_str(wxConvISO8859_1), conv);
}
}
#else // !wxUSE_UNICODE
ReadString(doc, s, wxConvLibc);
// add meta tag if we obtained this through http:
if (!file.GetMimeType().empty())
{
wxString hdr;
wxString mime = file.GetMimeType();
hdr.Printf(_T("<meta http-equiv=\"Content-Type\" content=\"%s\">"), mime.c_str());
return hdr+doc;
}
#endif
return doc;
}
///// Module:
class wxHtmlFilterModule : public wxModule
{
DECLARE_DYNAMIC_CLASS(wxHtmlFilterModule)
public:
virtual bool OnInit()
{
wxHtmlWindow::AddFilter(new wxHtmlFilterHTML);
wxHtmlWindow::AddFilter(new wxHtmlFilterImage);
return TRUE;
}
virtual void OnExit() {}
};
IMPLEMENT_DYNAMIC_CLASS(wxHtmlFilterModule, wxModule)
#endif

View File

@@ -1,900 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: htmlpars.cpp
// Purpose: wxHtmlParser class (generic parser)
// Author: Vaclav Slavik
// RCS-ID: $Id$
// Copyright: (c) 1999 Vaclav Slavik
// Licence: wxWindows Licence
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation "htmlpars.h"
#endif
#include "wx/wxprec.h"
#include "wx/defs.h"
#if wxUSE_HTML && wxUSE_STREAMS
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WXPRECOMP
#include "wx/log.h"
#include "wx/intl.h"
#endif
#include "wx/tokenzr.h"
#include "wx/wfstream.h"
#include "wx/url.h"
#include "wx/fontmap.h"
#include "wx/html/htmldefs.h"
#include "wx/html/htmlpars.h"
#include "wx/dynarray.h"
#include "wx/arrimpl.cpp"
//-----------------------------------------------------------------------------
// wxHtmlParser helpers
//-----------------------------------------------------------------------------
class wxHtmlTextPiece
{
public:
wxHtmlTextPiece(int pos, int lng) : m_pos(pos), m_lng(lng) {}
int m_pos, m_lng;
};
WX_DECLARE_OBJARRAY(wxHtmlTextPiece, wxHtmlTextPieces);
WX_DEFINE_OBJARRAY(wxHtmlTextPieces);
class wxHtmlParserState
{
public:
wxHtmlTag *m_curTag;
wxHtmlTag *m_tags;
wxHtmlTextPieces *m_textPieces;
int m_curTextPiece;
wxString m_source;
wxHtmlParserState *m_nextState;
};
//-----------------------------------------------------------------------------
// wxHtmlParser
//-----------------------------------------------------------------------------
IMPLEMENT_ABSTRACT_CLASS(wxHtmlParser,wxObject)
wxHtmlParser::wxHtmlParser()
: wxObject(), m_HandlersHash(wxKEY_STRING),
m_FS(NULL), m_HandlersStack(NULL)
{
m_entitiesParser = new wxHtmlEntitiesParser;
m_Tags = NULL;
m_CurTag = NULL;
m_TextPieces = NULL;
m_CurTextPiece = 0;
m_SavedStates = NULL;
}
wxHtmlParser::~wxHtmlParser()
{
while (RestoreState()) {}
DestroyDOMTree();
delete m_HandlersStack;
m_HandlersHash.Clear();
m_HandlersList.DeleteContents(TRUE);
m_HandlersList.Clear();
delete m_entitiesParser;
}
wxObject* wxHtmlParser::Parse(const wxString& source)
{
InitParser(source);
DoParsing();
wxObject *result = GetProduct();
DoneParser();
return result;
}
void wxHtmlParser::InitParser(const wxString& source)
{
SetSource(source);
m_stopParsing = FALSE;
}
void wxHtmlParser::DoneParser()
{
DestroyDOMTree();
}
void wxHtmlParser::SetSource(const wxString& src)
{
DestroyDOMTree();
m_Source = src;
CreateDOMTree();
m_CurTag = NULL;
m_CurTextPiece = 0;
}
void wxHtmlParser::CreateDOMTree()
{
wxHtmlTagsCache cache(m_Source);
m_TextPieces = new wxHtmlTextPieces;
CreateDOMSubTree(NULL, 0, m_Source.Length(), &cache);
m_CurTextPiece = 0;
}
extern bool wxIsCDATAElement(const wxChar *tag);
void wxHtmlParser::CreateDOMSubTree(wxHtmlTag *cur,
int begin_pos, int end_pos,
wxHtmlTagsCache *cache)
{
if (end_pos <= begin_pos) return;
wxChar c;
int i = begin_pos;
int textBeginning = begin_pos;
// If the tag contains CDATA text, we include the text between beginning
// and ending tag verbosely. Setting i=end_pos will skip to the very
// end of this function where text piece is added, bypassing any child
// tags parsing (CDATA element can't have child elements by definition):
if (cur != NULL && wxIsCDATAElement(cur->GetName().c_str()))
{
i = end_pos;
}
while (i < end_pos)
{
c = m_Source.GetChar(i);
if (c == wxT('<'))
{
// add text to m_TextPieces:
if (i - textBeginning > 0)
m_TextPieces->Add(
wxHtmlTextPiece(textBeginning, i - textBeginning));
// if it is a comment, skip it:
if (i < end_pos-6 && m_Source.GetChar(i+1) == wxT('!') &&
m_Source.GetChar(i+2) == wxT('-') &&
m_Source.GetChar(i+3) == wxT('-'))
{
// Comments begin with "<!--" and end with "--[ \t\r\n]*>"
// according to HTML 4.0
int dashes = 0;
i += 4;
while (i < end_pos)
{
c = m_Source.GetChar(i++);
if ((c == wxT(' ') || c == wxT('\n') ||
c == wxT('\r') || c == wxT('\t')) && dashes >= 2) {}
else if (c == wxT('>') && dashes >= 2)
{
textBeginning = i;
break;
}
else if (c == wxT('-'))
dashes++;
else
dashes = 0;
}
}
// add another tag to the tree:
else if (i < end_pos-1 && m_Source.GetChar(i+1) != wxT('/'))
{
wxHtmlTag *chd;
if (cur)
chd = new wxHtmlTag(cur, m_Source,
i, end_pos, cache, m_entitiesParser);
else
{
chd = new wxHtmlTag(NULL, m_Source,
i, end_pos, cache, m_entitiesParser);
if (!m_Tags)
{
// if this is the first tag to be created make the root
// m_Tags point to it:
m_Tags = chd;
}
else
{
// if there is already a root tag add this tag as
// the last sibling:
chd->m_Prev = m_Tags->GetLastSibling();
chd->m_Prev->m_Next = chd;
}
}
if (chd->HasEnding())
{
CreateDOMSubTree(chd,
chd->GetBeginPos(), chd->GetEndPos1(),
cache);
i = chd->GetEndPos2();
}
else
i = chd->GetBeginPos();
textBeginning = i;
}
// ... or skip ending tag:
else
{
while (i < end_pos && m_Source.GetChar(i) != wxT('>')) i++;
textBeginning = i+1;
}
}
else i++;
}
// add remaining text to m_TextPieces:
if (end_pos - textBeginning > 0)
m_TextPieces->Add(
wxHtmlTextPiece(textBeginning, end_pos - textBeginning));
}
void wxHtmlParser::DestroyDOMTree()
{
wxHtmlTag *t1, *t2;
t1 = m_Tags;
while (t1)
{
t2 = t1->GetNextSibling();
delete t1;
t1 = t2;
}
m_Tags = m_CurTag = NULL;
delete m_TextPieces;
m_TextPieces = NULL;
}
void wxHtmlParser::DoParsing()
{
m_CurTag = m_Tags;
m_CurTextPiece = 0;
DoParsing(0, m_Source.Length());
}
void wxHtmlParser::DoParsing(int begin_pos, int end_pos)
{
if (end_pos <= begin_pos) return;
wxHtmlTextPieces& pieces = *m_TextPieces;
size_t piecesCnt = pieces.GetCount();
while (begin_pos < end_pos)
{
while (m_CurTag && m_CurTag->GetBeginPos() < begin_pos)
m_CurTag = m_CurTag->GetNextTag();
while (m_CurTextPiece < piecesCnt &&
pieces[m_CurTextPiece].m_pos < begin_pos)
m_CurTextPiece++;
if (m_CurTextPiece < piecesCnt &&
(!m_CurTag ||
pieces[m_CurTextPiece].m_pos < m_CurTag->GetBeginPos()))
{
// Add text:
AddText(GetEntitiesParser()->Parse(
m_Source.Mid(pieces[m_CurTextPiece].m_pos,
pieces[m_CurTextPiece].m_lng)));
begin_pos = pieces[m_CurTextPiece].m_pos +
pieces[m_CurTextPiece].m_lng;
m_CurTextPiece++;
}
else if (m_CurTag)
{
// Add tag:
if (m_CurTag)
{
if (m_CurTag->HasEnding())
begin_pos = m_CurTag->GetEndPos2();
else
begin_pos = m_CurTag->GetBeginPos();
}
wxHtmlTag *t = m_CurTag;
m_CurTag = m_CurTag->GetNextTag();
AddTag(*t);
if (m_stopParsing)
return;
}
else break;
}
}
void wxHtmlParser::AddTag(const wxHtmlTag& tag)
{
wxHtmlTagHandler *h;
bool inner = FALSE;
h = (wxHtmlTagHandler*) m_HandlersHash.Get(tag.GetName());
if (h)
{
inner = h->HandleTag(tag);
if (m_stopParsing)
return;
}
if (!inner)
{
if (tag.HasEnding())
DoParsing(tag.GetBeginPos(), tag.GetEndPos1());
}
}
void wxHtmlParser::AddTagHandler(wxHtmlTagHandler *handler)
{
wxString s(handler->GetSupportedTags());
wxStringTokenizer tokenizer(s, wxT(", "));
while (tokenizer.HasMoreTokens())
m_HandlersHash.Put(tokenizer.GetNextToken(), handler);
if (m_HandlersList.IndexOf(handler) == wxNOT_FOUND)
m_HandlersList.Append(handler);
handler->SetParser(this);
}
void wxHtmlParser::PushTagHandler(wxHtmlTagHandler *handler, wxString tags)
{
wxStringTokenizer tokenizer(tags, wxT(", "));
wxString key;
if (m_HandlersStack == NULL)
{
m_HandlersStack = new wxList;
m_HandlersStack->DeleteContents(TRUE);
}
m_HandlersStack->Insert(new wxHashTable(m_HandlersHash));
while (tokenizer.HasMoreTokens())
{
key = tokenizer.GetNextToken();
m_HandlersHash.Delete(key);
m_HandlersHash.Put(key, handler);
}
}
void wxHtmlParser::PopTagHandler()
{
wxNode *first;
if (m_HandlersStack == NULL ||
(first = m_HandlersStack->GetFirst()) == NULL)
{
wxLogWarning(_("Warning: attempt to remove HTML tag handler from empty stack."));
return;
}
m_HandlersHash = *((wxHashTable*) first->GetData());
m_HandlersStack->DeleteNode(first);
}
void wxHtmlParser::SetSourceAndSaveState(const wxString& src)
{
wxHtmlParserState *s = new wxHtmlParserState;
s->m_curTag = m_CurTag;
s->m_tags = m_Tags;
s->m_textPieces = m_TextPieces;
s->m_curTextPiece = m_CurTextPiece;
s->m_source = m_Source;
s->m_nextState = m_SavedStates;
m_SavedStates = s;
m_CurTag = NULL;
m_Tags = NULL;
m_TextPieces = NULL;
m_CurTextPiece = 0;
m_Source = wxEmptyString;
SetSource(src);
}
bool wxHtmlParser::RestoreState()
{
if (!m_SavedStates) return FALSE;
DestroyDOMTree();
wxHtmlParserState *s = m_SavedStates;
m_SavedStates = s->m_nextState;
m_CurTag = s->m_curTag;
m_Tags = s->m_tags;
m_TextPieces = s->m_textPieces;
m_CurTextPiece = s->m_curTextPiece;
m_Source = s->m_source;
delete s;
return TRUE;
}
//-----------------------------------------------------------------------------
// wxHtmlTagHandler
//-----------------------------------------------------------------------------
IMPLEMENT_ABSTRACT_CLASS(wxHtmlTagHandler,wxObject)
//-----------------------------------------------------------------------------
// wxHtmlEntitiesParser
//-----------------------------------------------------------------------------
IMPLEMENT_DYNAMIC_CLASS(wxHtmlEntitiesParser,wxObject)
wxHtmlEntitiesParser::wxHtmlEntitiesParser()
#if wxUSE_WCHAR_T && !wxUSE_UNICODE
: m_conv(NULL), m_encoding(wxFONTENCODING_SYSTEM)
#endif
{
}
wxHtmlEntitiesParser::~wxHtmlEntitiesParser()
{
#if wxUSE_WCHAR_T && !wxUSE_UNICODE
delete m_conv;
#endif
}
void wxHtmlEntitiesParser::SetEncoding(wxFontEncoding encoding)
{
#if wxUSE_WCHAR_T && !wxUSE_UNICODE
if (encoding == m_encoding)
return;
delete m_conv;
m_encoding = encoding;
if (m_encoding == wxFONTENCODING_SYSTEM)
m_conv = NULL;
else
m_conv = new wxCSConv(wxFontMapper::GetEncodingName(m_encoding));
#else
(void) encoding;
#endif
}
wxString wxHtmlEntitiesParser::Parse(const wxString& input)
{
const wxChar *c, *last;
const wxChar *in_str = input.c_str();
wxString output;
output.reserve(input.length());
for (c = in_str, last = in_str; *c != wxT('\0'); c++)
{
if (*c == wxT('&'))
{
if (c - last > 0)
output.append(last, c - last);
if (++c == wxT('\0')) break;
wxString entity;
const wxChar *ent_s = c;
wxChar entity_char;
for (; (*c >= wxT('a') && *c <= wxT('z')) ||
(*c >= wxT('A') && *c <= wxT('Z')) ||
(*c >= wxT('0') && *c <= wxT('9')) ||
*c == wxT('_') || *c == wxT('#'); c++) {}
entity.append(ent_s, c - ent_s);
if (*c != wxT(';')) c--;
last = c+1;
entity_char = GetEntityChar(entity);
if (entity_char)
output << entity_char;
else
{
output.append(ent_s-1, c-ent_s+2);
wxLogDebug(wxT("Unrecognized HTML entity: '%s'"), entity.c_str());
}
}
}
if (*last != wxT('\0'))
output.append(last);
return output;
}
struct wxHtmlEntityInfo
{
const wxChar *name;
unsigned code;
};
extern "C" int LINKAGEMODE wxHtmlEntityCompare(const void *key, const void *item)
{
return wxStrcmp((wxChar*)key, ((wxHtmlEntityInfo*)item)->name);
}
#if !wxUSE_UNICODE
wxChar wxHtmlEntitiesParser::GetCharForCode(unsigned code)
{
#if wxUSE_WCHAR_T
char buf[2];
wchar_t wbuf[2];
wbuf[0] = (wchar_t)code;
wbuf[1] = 0;
wxMBConv *conv = m_conv ? m_conv : &wxConvLocal;
if (conv->WC2MB(buf, wbuf, 2) == (size_t)-1)
return '?';
return buf[0];
#else
return (code < 256) ? (wxChar)code : '?';
#endif
}
#endif
wxChar wxHtmlEntitiesParser::GetEntityChar(const wxString& entity)
{
unsigned code = 0;
if (entity[0] == wxT('#'))
{
const wxChar *ent_s = entity.c_str();
const wxChar *format;
if (ent_s[1] == wxT('x') || ent_s[1] == wxT('X'))
{
format = wxT("%x");
ent_s++;
}
else
format = wxT("%u");
ent_s++;
if (wxSscanf(ent_s, format, &code) != 1)
code = 0;
}
else
{
static wxHtmlEntityInfo substitutions[] = {
{ wxT("AElig"),198 },
{ wxT("Aacute"),193 },
{ wxT("Acirc"),194 },
{ wxT("Agrave"),192 },
{ wxT("Alpha"),913 },
{ wxT("Aring"),197 },
{ wxT("Atilde"),195 },
{ wxT("Auml"),196 },
{ wxT("Beta"),914 },
{ wxT("Ccedil"),199 },
{ wxT("Chi"),935 },
{ wxT("Dagger"),8225 },
{ wxT("Delta"),916 },
{ wxT("ETH"),208 },
{ wxT("Eacute"),201 },
{ wxT("Ecirc"),202 },
{ wxT("Egrave"),200 },
{ wxT("Epsilon"),917 },
{ wxT("Eta"),919 },
{ wxT("Euml"),203 },
{ wxT("Gamma"),915 },
{ wxT("Iacute"),205 },
{ wxT("Icirc"),206 },
{ wxT("Igrave"),204 },
{ wxT("Iota"),921 },
{ wxT("Iuml"),207 },
{ wxT("Kappa"),922 },
{ wxT("Lambda"),923 },
{ wxT("Mu"),924 },
{ wxT("Ntilde"),209 },
{ wxT("Nu"),925 },
{ wxT("OElig"),338 },
{ wxT("Oacute"),211 },
{ wxT("Ocirc"),212 },
{ wxT("Ograve"),210 },
{ wxT("Omega"),937 },
{ wxT("Omicron"),927 },
{ wxT("Oslash"),216 },
{ wxT("Otilde"),213 },
{ wxT("Ouml"),214 },
{ wxT("Phi"),934 },
{ wxT("Pi"),928 },
{ wxT("Prime"),8243 },
{ wxT("Psi"),936 },
{ wxT("Rho"),929 },
{ wxT("Scaron"),352 },
{ wxT("Sigma"),931 },
{ wxT("THORN"),222 },
{ wxT("Tau"),932 },
{ wxT("Theta"),920 },
{ wxT("Uacute"),218 },
{ wxT("Ucirc"),219 },
{ wxT("Ugrave"),217 },
{ wxT("Upsilon"),933 },
{ wxT("Uuml"),220 },
{ wxT("Xi"),926 },
{ wxT("Yacute"),221 },
{ wxT("Yuml"),376 },
{ wxT("Zeta"),918 },
{ wxT("aacute"),225 },
{ wxT("acirc"),226 },
{ wxT("acute"),180 },
{ wxT("aelig"),230 },
{ wxT("agrave"),224 },
{ wxT("alefsym"),8501 },
{ wxT("alpha"),945 },
{ wxT("amp"),38 },
{ wxT("and"),8743 },
{ wxT("ang"),8736 },
{ wxT("aring"),229 },
{ wxT("asymp"),8776 },
{ wxT("atilde"),227 },
{ wxT("auml"),228 },
{ wxT("bdquo"),8222 },
{ wxT("beta"),946 },
{ wxT("brvbar"),166 },
{ wxT("bull"),8226 },
{ wxT("cap"),8745 },
{ wxT("ccedil"),231 },
{ wxT("cedil"),184 },
{ wxT("cent"),162 },
{ wxT("chi"),967 },
{ wxT("circ"),710 },
{ wxT("clubs"),9827 },
{ wxT("cong"),8773 },
{ wxT("copy"),169 },
{ wxT("crarr"),8629 },
{ wxT("cup"),8746 },
{ wxT("curren"),164 },
{ wxT("dArr"),8659 },
{ wxT("dagger"),8224 },
{ wxT("darr"),8595 },
{ wxT("deg"),176 },
{ wxT("delta"),948 },
{ wxT("diams"),9830 },
{ wxT("divide"),247 },
{ wxT("eacute"),233 },
{ wxT("ecirc"),234 },
{ wxT("egrave"),232 },
{ wxT("empty"),8709 },
{ wxT("emsp"),8195 },
{ wxT("ensp"),8194 },
{ wxT("epsilon"),949 },
{ wxT("equiv"),8801 },
{ wxT("eta"),951 },
{ wxT("eth"),240 },
{ wxT("euml"),235 },
{ wxT("euro"),8364 },
{ wxT("exist"),8707 },
{ wxT("fnof"),402 },
{ wxT("forall"),8704 },
{ wxT("frac12"),189 },
{ wxT("frac14"),188 },
{ wxT("frac34"),190 },
{ wxT("frasl"),8260 },
{ wxT("gamma"),947 },
{ wxT("ge"),8805 },
{ wxT("gt"),62 },
{ wxT("hArr"),8660 },
{ wxT("harr"),8596 },
{ wxT("hearts"),9829 },
{ wxT("hellip"),8230 },
{ wxT("iacute"),237 },
{ wxT("icirc"),238 },
{ wxT("iexcl"),161 },
{ wxT("igrave"),236 },
{ wxT("image"),8465 },
{ wxT("infin"),8734 },
{ wxT("int"),8747 },
{ wxT("iota"),953 },
{ wxT("iquest"),191 },
{ wxT("isin"),8712 },
{ wxT("iuml"),239 },
{ wxT("kappa"),954 },
{ wxT("lArr"),8656 },
{ wxT("lambda"),955 },
{ wxT("lang"),9001 },
{ wxT("laquo"),171 },
{ wxT("larr"),8592 },
{ wxT("lceil"),8968 },
{ wxT("ldquo"),8220 },
{ wxT("le"),8804 },
{ wxT("lfloor"),8970 },
{ wxT("lowast"),8727 },
{ wxT("loz"),9674 },
{ wxT("lrm"),8206 },
{ wxT("lsaquo"),8249 },
{ wxT("lsquo"),8216 },
{ wxT("lt"),60 },
{ wxT("macr"),175 },
{ wxT("mdash"),8212 },
{ wxT("micro"),181 },
{ wxT("middot"),183 },
{ wxT("minus"),8722 },
{ wxT("mu"),956 },
{ wxT("nabla"),8711 },
{ wxT("nbsp"),160 },
{ wxT("ndash"),8211 },
{ wxT("ne"),8800 },
{ wxT("ni"),8715 },
{ wxT("not"),172 },
{ wxT("notin"),8713 },
{ wxT("nsub"),8836 },
{ wxT("ntilde"),241 },
{ wxT("nu"),957 },
{ wxT("oacute"),243 },
{ wxT("ocirc"),244 },
{ wxT("oelig"),339 },
{ wxT("ograve"),242 },
{ wxT("oline"),8254 },
{ wxT("omega"),969 },
{ wxT("omicron"),959 },
{ wxT("oplus"),8853 },
{ wxT("or"),8744 },
{ wxT("ordf"),170 },
{ wxT("ordm"),186 },
{ wxT("oslash"),248 },
{ wxT("otilde"),245 },
{ wxT("otimes"),8855 },
{ wxT("ouml"),246 },
{ wxT("para"),182 },
{ wxT("part"),8706 },
{ wxT("permil"),8240 },
{ wxT("perp"),8869 },
{ wxT("phi"),966 },
{ wxT("pi"),960 },
{ wxT("piv"),982 },
{ wxT("plusmn"),177 },
{ wxT("pound"),163 },
{ wxT("prime"),8242 },
{ wxT("prod"),8719 },
{ wxT("prop"),8733 },
{ wxT("psi"),968 },
{ wxT("quot"),34 },
{ wxT("rArr"),8658 },
{ wxT("radic"),8730 },
{ wxT("rang"),9002 },
{ wxT("raquo"),187 },
{ wxT("rarr"),8594 },
{ wxT("rceil"),8969 },
{ wxT("rdquo"),8221 },
{ wxT("real"),8476 },
{ wxT("reg"),174 },
{ wxT("rfloor"),8971 },
{ wxT("rho"),961 },
{ wxT("rlm"),8207 },
{ wxT("rsaquo"),8250 },
{ wxT("rsquo"),8217 },
{ wxT("sbquo"),8218 },
{ wxT("scaron"),353 },
{ wxT("sdot"),8901 },
{ wxT("sect"),167 },
{ wxT("shy"),173 },
{ wxT("sigma"),963 },
{ wxT("sigmaf"),962 },
{ wxT("sim"),8764 },
{ wxT("spades"),9824 },
{ wxT("sub"),8834 },
{ wxT("sube"),8838 },
{ wxT("sum"),8721 },
{ wxT("sup"),8835 },
{ wxT("sup1"),185 },
{ wxT("sup2"),178 },
{ wxT("sup3"),179 },
{ wxT("supe"),8839 },
{ wxT("szlig"),223 },
{ wxT("tau"),964 },
{ wxT("there4"),8756 },
{ wxT("theta"),952 },
{ wxT("thetasym"),977 },
{ wxT("thinsp"),8201 },
{ wxT("thorn"),254 },
{ wxT("tilde"),732 },
{ wxT("times"),215 },
{ wxT("trade"),8482 },
{ wxT("uArr"),8657 },
{ wxT("uacute"),250 },
{ wxT("uarr"),8593 },
{ wxT("ucirc"),251 },
{ wxT("ugrave"),249 },
{ wxT("uml"),168 },
{ wxT("upsih"),978 },
{ wxT("upsilon"),965 },
{ wxT("uuml"),252 },
{ wxT("weierp"),8472 },
{ wxT("xi"),958 },
{ wxT("yacute"),253 },
{ wxT("yen"),165 },
{ wxT("yuml"),255 },
{ wxT("zeta"),950 },
{ wxT("zwj"),8205 },
{ wxT("zwnj"),8204 },
{NULL, 0}};
static size_t substitutions_cnt = 0;
if (substitutions_cnt == 0)
while (substitutions[substitutions_cnt].code != 0)
substitutions_cnt++;
wxHtmlEntityInfo *info;
info = (wxHtmlEntityInfo*) bsearch(entity.c_str(), substitutions,
substitutions_cnt,
sizeof(wxHtmlEntityInfo),
wxHtmlEntityCompare);
if (info)
code = info->code;
}
if (code == 0)
return 0;
else
return GetCharForCode(code);
}
wxFSFile *wxHtmlParser::OpenURL(wxHtmlURLType WXUNUSED(type),
const wxString& url) const
{
return GetFS()->OpenFile(url);
}
//-----------------------------------------------------------------------------
// wxHtmlParser::ExtractCharsetInformation
//-----------------------------------------------------------------------------
class wxMetaTagParser : public wxHtmlParser
{
public:
wxObject* GetProduct() { return NULL; }
protected:
virtual void AddText(const wxChar* WXUNUSED(txt)) {}
};
class wxMetaTagHandler : public wxHtmlTagHandler
{
public:
wxMetaTagHandler(wxString *retval) : wxHtmlTagHandler(), m_retval(retval) {}
wxString GetSupportedTags() { return wxT("META,BODY"); }
bool HandleTag(const wxHtmlTag& tag);
private:
wxString *m_retval;
};
bool wxMetaTagHandler::HandleTag(const wxHtmlTag& tag)
{
if (tag.GetName() == _T("BODY"))
{
m_Parser->StopParsing();
return FALSE;
}
if (tag.HasParam(_T("HTTP-EQUIV")) &&
tag.GetParam(_T("HTTP-EQUIV")) == _T("Content-Type") &&
tag.HasParam(_T("CONTENT")))
{
wxString content = tag.GetParam(_T("CONTENT"));
if (content.Left(19) == _T("text/html; charset="))
{
*m_retval = content.Mid(19);
m_Parser->StopParsing();
}
}
return FALSE;
}
/*static*/
wxString wxHtmlParser::ExtractCharsetInformation(const wxString& markup)
{
wxString charset;
wxMetaTagParser parser;
parser.AddTagHandler(new wxMetaTagHandler(&charset));
parser.Parse(markup);
return charset;
}
#endif

View File

@@ -1,497 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: htmltag.cpp
// Purpose: wxHtmlTag class (represents single tag)
// Author: Vaclav Slavik
// RCS-ID: $Id$
// Copyright: (c) 1999 Vaclav Slavik
// Licence: wxWindows Licence
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation "htmltag.h"
#endif
#include "wx/wxprec.h"
#include "wx/defs.h"
#if wxUSE_HTML
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WXPRECOMP
#endif
#include "wx/html/htmltag.h"
#include "wx/html/htmlpars.h"
#include "wx/colour.h"
#include <stdio.h> // for vsscanf
#include <stdarg.h>
//-----------------------------------------------------------------------------
// wxHtmlTagsCache
//-----------------------------------------------------------------------------
struct wxHtmlCacheItem
{
// this is "pos" value passed to wxHtmlTag's constructor.
// it is position of '<' character of the tag
int Key;
// end positions for the tag:
// end1 is '<' of ending tag,
// end2 is '>' or both are
// -1 if there is no ending tag for this one...
// or -2 if this is ending tag </...>
int End1, End2;
// name of this tag
wxChar *Name;
};
IMPLEMENT_CLASS(wxHtmlTagsCache,wxObject)
#define CACHE_INCREMENT 64
bool wxIsCDATAElement(const wxChar *tag)
{
return (wxStrcmp(tag, _T("SCRIPT")) == 0) ||
(wxStrcmp(tag, _T("STYLE")) == 0);
}
wxHtmlTagsCache::wxHtmlTagsCache(const wxString& source)
{
const wxChar *src = source.c_str();
int tg, stpos;
int lng = source.Length();
wxChar tagBuffer[256];
m_Cache = NULL;
m_CacheSize = 0;
m_CachePos = 0;
int pos = 0;
while (pos < lng)
{
if (src[pos] == wxT('<')) // tag found:
{
if (m_CacheSize % CACHE_INCREMENT == 0)
m_Cache = (wxHtmlCacheItem*) realloc(m_Cache, (m_CacheSize + CACHE_INCREMENT) * sizeof(wxHtmlCacheItem));
tg = m_CacheSize++;
m_Cache[tg].Key = stpos = pos++;
int i;
for ( i = 0;
pos < lng && i < (int)WXSIZEOF(tagBuffer) - 1 &&
src[pos] != wxT('>') && !wxIsspace(src[pos]);
i++, pos++ )
{
tagBuffer[i] = wxToupper(src[pos]);
}
tagBuffer[i] = _T('\0');
m_Cache[tg].Name = new wxChar[i+1];
memcpy(m_Cache[tg].Name, tagBuffer, (i+1)*sizeof(wxChar));
while (pos < lng && src[pos] != wxT('>')) pos++;
if (src[stpos+1] == wxT('/')) // ending tag:
{
m_Cache[tg].End1 = m_Cache[tg].End2 = -2;
// find matching begin tag:
for (i = tg; i >= 0; i--)
if ((m_Cache[i].End1 == -1) && (wxStrcmp(m_Cache[i].Name, tagBuffer+1) == 0))
{
m_Cache[i].End1 = stpos;
m_Cache[i].End2 = pos + 1;
break;
}
}
else
{
m_Cache[tg].End1 = m_Cache[tg].End2 = -1;
if (wxIsCDATAElement(tagBuffer))
{
// find next matching tag
int tag_len = wxStrlen(tagBuffer);
while (pos < lng)
{
// find the ending tag
while (pos + 1 < lng &&
(src[pos] != '<' || src[pos+1] != '/'))
++pos;
if (src[pos] == '<')
++pos;
// see if it matches
int match_pos = 0;
while (pos < lng && match_pos < tag_len && src[pos] != '>' && src[pos] != '<') {
if (wxToupper(src[pos]) == tagBuffer[match_pos]) {
++match_pos;
}
else if (src[pos] == wxT(' ') || src[pos] == wxT('\n') ||
src[pos] == wxT('\r') || src[pos] == wxT('\t')) {
// need to skip over these
}
else {
match_pos = 0;
}
++pos;
}
// found a match
if (match_pos == tag_len) {
pos = pos - tag_len - 3;
stpos = pos;
break;
}
else {
++pos;
}
}
}
}
}
pos++;
}
// ok, we're done, now we'll free .Name members of cache - we don't need it anymore:
for (int i = 0; i < m_CacheSize; i++)
{
delete[] m_Cache[i].Name;
m_Cache[i].Name = NULL;
}
}
void wxHtmlTagsCache::QueryTag(int at, int* end1, int* end2)
{
if (m_Cache == NULL) return;
if (m_Cache[m_CachePos].Key != at)
{
int delta = (at < m_Cache[m_CachePos].Key) ? -1 : 1;
do
{
m_CachePos += delta;
}
while (m_Cache[m_CachePos].Key != at);
}
*end1 = m_Cache[m_CachePos].End1;
*end2 = m_Cache[m_CachePos].End2;
}
//-----------------------------------------------------------------------------
// wxHtmlTag
//-----------------------------------------------------------------------------
IMPLEMENT_CLASS(wxHtmlTag,wxObject)
wxHtmlTag::wxHtmlTag(wxHtmlTag *parent,
const wxString& source, int pos, int end_pos,
wxHtmlTagsCache *cache,
wxHtmlEntitiesParser *entParser) : wxObject()
{
/* Setup DOM relations */
m_Next = NULL;
m_FirstChild = m_LastChild = NULL;
m_Parent = parent;
if (parent)
{
m_Prev = m_Parent->m_LastChild;
if (m_Prev == NULL)
m_Parent->m_FirstChild = this;
else
m_Prev->m_Next = this;
m_Parent->m_LastChild = this;
}
else
m_Prev = NULL;
/* Find parameters and their values: */
int i;
wxChar c;
// fill-in name, params and begin pos:
i = pos+1;
// find tag's name and convert it to uppercase:
while ((i < end_pos) &&
((c = source[i++]) != wxT(' ') && c != wxT('\r') &&
c != wxT('\n') && c != wxT('\t') &&
c != wxT('>')))
{
if ((c >= wxT('a')) && (c <= wxT('z')))
c -= (wxT('a') - wxT('A'));
m_Name << c;
}
// if the tag has parameters, read them and "normalize" them,
// i.e. convert to uppercase, replace whitespaces by spaces and
// remove whitespaces around '=':
if (source[i-1] != wxT('>'))
{
#define IS_WHITE(c) (c == wxT(' ') || c == wxT('\r') || \
c == wxT('\n') || c == wxT('\t'))
wxString pname, pvalue;
wxChar quote;
enum
{
ST_BEFORE_NAME = 1,
ST_NAME,
ST_BEFORE_EQ,
ST_BEFORE_VALUE,
ST_VALUE
} state;
quote = 0;
state = ST_BEFORE_NAME;
while (i < end_pos)
{
c = source[i++];
if (c == wxT('>') && !(state == ST_VALUE && quote != 0))
{
if (state == ST_BEFORE_EQ || state == ST_NAME)
{
m_ParamNames.Add(pname);
m_ParamValues.Add(wxEmptyString);
}
else if (state == ST_VALUE && quote == 0)
{
m_ParamNames.Add(pname);
if (entParser)
m_ParamValues.Add(entParser->Parse(pvalue));
else
m_ParamValues.Add(pvalue);
}
break;
}
switch (state)
{
case ST_BEFORE_NAME:
if (!IS_WHITE(c))
{
pname = c;
state = ST_NAME;
}
break;
case ST_NAME:
if (IS_WHITE(c))
state = ST_BEFORE_EQ;
else if (c == wxT('='))
state = ST_BEFORE_VALUE;
else
pname << c;
break;
case ST_BEFORE_EQ:
if (c == wxT('='))
state = ST_BEFORE_VALUE;
else if (!IS_WHITE(c))
{
m_ParamNames.Add(pname);
m_ParamValues.Add(wxEmptyString);
pname = c;
state = ST_NAME;
}
break;
case ST_BEFORE_VALUE:
if (!IS_WHITE(c))
{
if (c == wxT('"') || c == wxT('\''))
quote = c, pvalue = wxEmptyString;
else
quote = 0, pvalue = c;
state = ST_VALUE;
}
break;
case ST_VALUE:
if ((quote != 0 && c == quote) ||
(quote == 0 && IS_WHITE(c)))
{
m_ParamNames.Add(pname);
if (quote == 0)
{
// VS: backward compatibility, no real reason,
// but wxHTML code relies on this... :(
pvalue.MakeUpper();
}
if (entParser)
m_ParamValues.Add(entParser->Parse(pvalue));
else
m_ParamValues.Add(pvalue);
state = ST_BEFORE_NAME;
}
else
pvalue << c;
break;
}
}
#undef IS_WHITE
}
m_Begin = i;
cache->QueryTag(pos, &m_End1, &m_End2);
if (m_End1 > end_pos) m_End1 = end_pos;
if (m_End2 > end_pos) m_End2 = end_pos;
}
wxHtmlTag::~wxHtmlTag()
{
wxHtmlTag *t1, *t2;
t1 = m_FirstChild;
while (t1)
{
t2 = t1->GetNextSibling();
delete t1;
t1 = t2;
}
}
bool wxHtmlTag::HasParam(const wxString& par) const
{
return (m_ParamNames.Index(par, FALSE) != wxNOT_FOUND);
}
wxString wxHtmlTag::GetParam(const wxString& par, bool with_commas) const
{
int index = m_ParamNames.Index(par, FALSE);
if (index == wxNOT_FOUND)
return wxEmptyString;
if (with_commas)
{
// VS: backward compatibility, seems to be never used by wxHTML...
wxString s;
s << wxT('"') << m_ParamValues[index] << wxT('"');
return s;
}
else
return m_ParamValues[index];
}
int wxHtmlTag::ScanParam(const wxString& par,
const wxChar *format,
void *param) const
{
wxString parval = GetParam(par);
return wxSscanf(parval, format, param);
}
bool wxHtmlTag::GetParamAsColour(const wxString& par, wxColour *clr) const
{
wxString str = GetParam(par);
if (str.IsEmpty()) return FALSE;
if (str.GetChar(0) == wxT('#'))
{
unsigned long tmp;
if (ScanParam(par, wxT("#%lX"), &tmp) != 1)
return FALSE;
*clr = wxColour((unsigned char)((tmp & 0xFF0000) >> 16),
(unsigned char)((tmp & 0x00FF00) >> 8),
(unsigned char)(tmp & 0x0000FF));
return TRUE;
}
else
{
// Handle colours defined in HTML 4.0:
#define HTML_COLOUR(name,r,g,b) \
if (str.IsSameAs(wxT(name), FALSE)) \
{ *clr = wxColour(r,g,b); return TRUE; }
HTML_COLOUR("black", 0x00,0x00,0x00)
HTML_COLOUR("silver", 0xC0,0xC0,0xC0)
HTML_COLOUR("gray", 0x80,0x80,0x80)
HTML_COLOUR("white", 0xFF,0xFF,0xFF)
HTML_COLOUR("maroon", 0x80,0x00,0x00)
HTML_COLOUR("red", 0xFF,0x00,0x00)
HTML_COLOUR("purple", 0x80,0x00,0x80)
HTML_COLOUR("fuchsia", 0xFF,0x00,0xFF)
HTML_COLOUR("green", 0x00,0x80,0x00)
HTML_COLOUR("lime", 0x00,0xFF,0x00)
HTML_COLOUR("olive", 0x80,0x80,0x00)
HTML_COLOUR("yellow", 0xFF,0xFF,0x00)
HTML_COLOUR("navy", 0x00,0x00,0x80)
HTML_COLOUR("blue", 0x00,0x00,0xFF)
HTML_COLOUR("teal", 0x00,0x80,0x80)
HTML_COLOUR("aqua", 0x00,0xFF,0xFF)
#undef HTML_COLOUR
}
return FALSE;
}
bool wxHtmlTag::GetParamAsInt(const wxString& par, int *clr) const
{
if (!HasParam(par)) return FALSE;
long i;
bool succ = GetParam(par).ToLong(&i);
*clr = (int)i;
return succ;
}
wxString wxHtmlTag::GetAllParams() const
{
// VS: this function is for backward compatiblity only,
// never used by wxHTML
wxString s;
size_t cnt = m_ParamNames.GetCount();
for (size_t i = 0; i < cnt; i++)
{
s << m_ParamNames[i];
s << wxT('=');
if (m_ParamValues[i].Find(wxT('"')) != wxNOT_FOUND)
s << wxT('\'') << m_ParamValues[i] << wxT('\'');
else
s << wxT('"') << m_ParamValues[i] << wxT('"');
}
return s;
}
wxHtmlTag *wxHtmlTag::GetFirstSibling() const
{
if (m_Parent)
return m_Parent->m_FirstChild;
else
{
wxHtmlTag *cur = (wxHtmlTag*)this;
while (cur->m_Prev)
cur = cur->m_Prev;
return cur;
}
}
wxHtmlTag *wxHtmlTag::GetLastSibling() const
{
if (m_Parent)
return m_Parent->m_LastChild;
else
{
wxHtmlTag *cur = (wxHtmlTag*)this;
while (cur->m_Next)
cur = cur->m_Next;
return cur;
}
}
wxHtmlTag *wxHtmlTag::GetNextTag() const
{
if (m_FirstChild) return m_FirstChild;
if (m_Next) return m_Next;
wxHtmlTag *cur = m_Parent;
if (!cur) return NULL;
while (cur->m_Parent && !cur->m_Next)
cur = cur->m_Parent;
return cur->m_Next;
}
#endif

View File

@@ -1,798 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: htmlwin.cpp
// Purpose: wxHtmlWindow class for parsing & displaying HTML (implementation)
// Author: Vaclav Slavik
// RCS-ID: $Id$
// Copyright: (c) 1999 Vaclav Slavik
// Licence: wxWindows Licence
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation "htmlwin.h"
#pragma implementation "htmlproc.h"
#endif
#include "wx/wxprec.h"
#include "wx/defs.h"
#if wxUSE_HTML && wxUSE_STREAMS
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WXPRECOMP
#include "wx/log.h"
#include "wx/intl.h"
#include "wx/dcclient.h"
#include "wx/frame.h"
#endif
#include "wx/html/htmlwin.h"
#include "wx/html/htmlproc.h"
#include "wx/list.h"
#include "wx/arrimpl.cpp"
#include "wx/listimpl.cpp"
//-----------------------------------------------------------------------------
// wxHtmlHistoryItem
//-----------------------------------------------------------------------------
// item of history list
class WXDLLEXPORT wxHtmlHistoryItem
{
public:
wxHtmlHistoryItem(const wxString& p, const wxString& a) {m_Page = p, m_Anchor = a, m_Pos = 0;}
int GetPos() const {return m_Pos;}
void SetPos(int p) {m_Pos = p;}
const wxString& GetPage() const {return m_Page;}
const wxString& GetAnchor() const {return m_Anchor;}
private:
wxString m_Page;
wxString m_Anchor;
int m_Pos;
};
//-----------------------------------------------------------------------------
// our private arrays:
//-----------------------------------------------------------------------------
WX_DECLARE_OBJARRAY(wxHtmlHistoryItem, wxHtmlHistoryArray);
WX_DEFINE_OBJARRAY(wxHtmlHistoryArray);
WX_DECLARE_LIST(wxHtmlProcessor, wxHtmlProcessorList);
WX_DEFINE_LIST(wxHtmlProcessorList);
//-----------------------------------------------------------------------------
// wxHtmlWindow
//-----------------------------------------------------------------------------
void wxHtmlWindow::Init()
{
m_tmpMouseMoved = FALSE;
m_tmpLastLink = NULL;
m_tmpLastCell = NULL;
m_tmpCanDrawLocks = 0;
m_FS = new wxFileSystem();
m_RelatedStatusBar = -1;
m_RelatedFrame = NULL;
m_TitleFormat = wxT("%s");
m_OpenedPage = m_OpenedAnchor = m_OpenedPageTitle = wxEmptyString;
m_Cell = NULL;
m_Parser = new wxHtmlWinParser(this);
m_Parser->SetFS(m_FS);
m_HistoryPos = -1;
m_HistoryOn = TRUE;
m_History = new wxHtmlHistoryArray;
m_Processors = NULL;
m_Style = 0;
SetBorders(10);
}
bool wxHtmlWindow::Create(wxWindow *parent, wxWindowID id,
const wxPoint& pos, const wxSize& size,
long style, const wxString& name)
{
if (!wxScrolledWindow::Create(parent, id, pos, size,
style | wxVSCROLL | wxHSCROLL, name))
return FALSE;
m_Style = style;
SetPage(wxT("<html><body></body></html>"));
return TRUE;
}
wxHtmlWindow::~wxHtmlWindow()
{
HistoryClear();
if (m_Cell) delete m_Cell;
delete m_Parser;
delete m_FS;
delete m_History;
delete m_Processors;
}
void wxHtmlWindow::SetRelatedFrame(wxFrame* frame, const wxString& format)
{
m_RelatedFrame = frame;
m_TitleFormat = format;
}
void wxHtmlWindow::SetRelatedStatusBar(int bar)
{
m_RelatedStatusBar = bar;
}
void wxHtmlWindow::SetFonts(wxString normal_face, wxString fixed_face, const int *sizes)
{
wxString op = m_OpenedPage;
m_Parser->SetFonts(normal_face, fixed_face, sizes);
// fonts changed => contents invalid, so reload the page:
SetPage(wxT("<html><body></body></html>"));
if (!op.IsEmpty()) LoadPage(op);
}
bool wxHtmlWindow::SetPage(const wxString& source)
{
wxString newsrc(source);
// pass HTML through registered processors:
if (m_Processors || m_GlobalProcessors)
{
wxHtmlProcessorList::Node *nodeL, *nodeG;
int prL, prG;
nodeL = (m_Processors) ? m_Processors->GetFirst() : NULL;
nodeG = (m_GlobalProcessors) ? m_GlobalProcessors->GetFirst() : NULL;
// VS: there are two lists, global and local, both of them sorted by
// priority. Since we have to go through _both_ lists with
// decreasing priority, we "merge-sort" the lists on-line by
// processing that one of the two heads that has higher priority
// in every iteration
while (nodeL || nodeG)
{
prL = (nodeL) ? nodeL->GetData()->GetPriority() : -1;
prG = (nodeG) ? nodeG->GetData()->GetPriority() : -1;
if (prL > prG)
{
if (nodeL->GetData()->IsEnabled())
newsrc = nodeL->GetData()->Process(newsrc);
nodeL = nodeL->GetNext();
}
else // prL <= prG
{
if (nodeG->GetData()->IsEnabled())
newsrc = nodeG->GetData()->Process(newsrc);
nodeG = nodeG->GetNext();
}
}
}
// ...and run the parser on it:
wxClientDC *dc = new wxClientDC(this);
dc->SetMapMode(wxMM_TEXT);
SetBackgroundColour(wxColour(0xFF, 0xFF, 0xFF));
m_OpenedPage = m_OpenedAnchor = m_OpenedPageTitle = wxEmptyString;
m_Parser->SetDC(dc);
if (m_Cell)
{
delete m_Cell;
m_Cell = NULL;
}
m_Cell = (wxHtmlContainerCell*) m_Parser->Parse(newsrc);
delete dc;
m_Cell->SetIndent(m_Borders, wxHTML_INDENT_ALL, wxHTML_UNITS_PIXELS);
m_Cell->SetAlignHor(wxHTML_ALIGN_CENTER);
CreateLayout();
if (m_tmpCanDrawLocks == 0)
Refresh();
return TRUE;
}
bool wxHtmlWindow::AppendToPage(const wxString& source)
{
return SetPage(*(GetParser()->GetSource()) + source);
}
bool wxHtmlWindow::LoadPage(const wxString& location)
{
wxBusyCursor busyCursor;
wxFSFile *f;
bool rt_val;
bool needs_refresh = FALSE;
m_tmpCanDrawLocks++;
if (m_HistoryOn && (m_HistoryPos != -1))
{
// store scroll position into history item:
int x, y;
GetViewStart(&x, &y);
(*m_History)[m_HistoryPos].SetPos(y);
}
if (location[0] == wxT('#'))
{
// local anchor:
wxString anch = location.Mid(1) /*1 to end*/;
m_tmpCanDrawLocks--;
rt_val = ScrollToAnchor(anch);
m_tmpCanDrawLocks++;
}
else if (location.Find(wxT('#')) != wxNOT_FOUND && location.BeforeFirst(wxT('#')) == m_OpenedPage)
{
wxString anch = location.AfterFirst(wxT('#'));
m_tmpCanDrawLocks--;
rt_val = ScrollToAnchor(anch);
m_tmpCanDrawLocks++;
}
else if (location.Find(wxT('#')) != wxNOT_FOUND &&
(m_FS->GetPath() + location.BeforeFirst(wxT('#'))) == m_OpenedPage)
{
wxString anch = location.AfterFirst(wxT('#'));
m_tmpCanDrawLocks--;
rt_val = ScrollToAnchor(anch);
m_tmpCanDrawLocks++;
}
else
{
needs_refresh = TRUE;
// load&display it:
if (m_RelatedStatusBar != -1)
{
m_RelatedFrame->SetStatusText(_("Connecting..."), m_RelatedStatusBar);
Refresh(FALSE);
}
f = m_Parser->OpenURL(wxHTML_URL_PAGE, location);
// try to interpret 'location' as filename instead of URL:
if (f == NULL)
{
wxFileName fn(location);
wxString location2 = wxFileSystem::FileNameToURL(fn);
f = m_Parser->OpenURL(wxHTML_URL_PAGE, location2);
}
if (f == NULL)
{
wxLogError(_("Unable to open requested HTML document: %s"), location.c_str());
m_tmpCanDrawLocks--;
return FALSE;
}
else
{
wxNode *node;
wxString src = wxEmptyString;
if (m_RelatedStatusBar != -1)
{
wxString msg = _("Loading : ") + location;
m_RelatedFrame->SetStatusText(msg, m_RelatedStatusBar);
Refresh(FALSE);
}
node = m_Filters.GetFirst();
while (node)
{
wxHtmlFilter *h = (wxHtmlFilter*) node->GetData();
if (h->CanRead(*f))
{
src = h->ReadFile(*f);
break;
}
node = node->GetNext();
}
if (src == wxEmptyString)
{
if (m_DefaultFilter == NULL) m_DefaultFilter = GetDefaultFilter();
src = m_DefaultFilter->ReadFile(*f);
}
m_FS->ChangePathTo(f->GetLocation());
rt_val = SetPage(src);
m_OpenedPage = f->GetLocation();
if (f->GetAnchor() != wxEmptyString)
{
ScrollToAnchor(f->GetAnchor());
}
delete f;
if (m_RelatedStatusBar != -1) m_RelatedFrame->SetStatusText(_("Done"), m_RelatedStatusBar);
}
}
if (m_HistoryOn) // add this page to history there:
{
int c = m_History->GetCount() - (m_HistoryPos + 1);
if (m_HistoryPos < 0 ||
(*m_History)[m_HistoryPos].GetPage() != m_OpenedPage ||
(*m_History)[m_HistoryPos].GetAnchor() != m_OpenedAnchor)
{
m_HistoryPos++;
for (int i = 0; i < c; i++)
m_History->RemoveAt(m_HistoryPos);
m_History->Add(new wxHtmlHistoryItem(m_OpenedPage, m_OpenedAnchor));
}
}
if (m_OpenedPageTitle == wxEmptyString)
OnSetTitle(wxFileNameFromPath(m_OpenedPage));
if (needs_refresh)
{
m_tmpCanDrawLocks--;
Refresh();
}
else
m_tmpCanDrawLocks--;
return rt_val;
}
bool wxHtmlWindow::LoadFile(const wxFileName& filename)
{
wxString url = wxFileSystem::FileNameToURL(filename);
return LoadPage(url);
}
bool wxHtmlWindow::ScrollToAnchor(const wxString& anchor)
{
const wxHtmlCell *c = m_Cell->Find(wxHTML_COND_ISANCHOR, &anchor);
if (!c)
{
wxLogWarning(_("HTML anchor %s does not exist."), anchor.c_str());
return FALSE;
}
else
{
int y;
for (y = 0; c != NULL; c = c->GetParent()) y += c->GetPosY();
Scroll(-1, y / wxHTML_SCROLL_STEP);
m_OpenedAnchor = anchor;
return TRUE;
}
}
void wxHtmlWindow::OnSetTitle(const wxString& title)
{
if (m_RelatedFrame)
{
wxString tit;
tit.Printf(m_TitleFormat, title.c_str());
m_RelatedFrame->SetTitle(tit);
}
m_OpenedPageTitle = title;
}
void wxHtmlWindow::CreateLayout()
{
int ClientWidth, ClientHeight;
if (!m_Cell) return;
if (m_Style & wxHW_SCROLLBAR_NEVER)
{
SetScrollbars(wxHTML_SCROLL_STEP, 1, m_Cell->GetWidth() / wxHTML_SCROLL_STEP, 0); // always off
GetClientSize(&ClientWidth, &ClientHeight);
m_Cell->Layout(ClientWidth);
}
else {
GetClientSize(&ClientWidth, &ClientHeight);
m_Cell->Layout(ClientWidth);
if (ClientHeight < m_Cell->GetHeight() + GetCharHeight())
{
SetScrollbars(
wxHTML_SCROLL_STEP, wxHTML_SCROLL_STEP,
m_Cell->GetWidth() / wxHTML_SCROLL_STEP,
(m_Cell->GetHeight() + GetCharHeight()) / wxHTML_SCROLL_STEP
/*cheat: top-level frag is always container*/);
}
else /* we fit into window, no need for scrollbars */
{
SetScrollbars(wxHTML_SCROLL_STEP, 1, m_Cell->GetWidth() / wxHTML_SCROLL_STEP, 0); // disable...
GetClientSize(&ClientWidth, &ClientHeight);
m_Cell->Layout(ClientWidth); // ...and relayout
}
}
}
void wxHtmlWindow::ReadCustomization(wxConfigBase *cfg, wxString path)
{
wxString oldpath;
wxString tmp;
int p_fontsizes[7];
wxString p_fff, p_ffn;
if (path != wxEmptyString)
{
oldpath = cfg->GetPath();
cfg->SetPath(path);
}
m_Borders = cfg->Read(wxT("wxHtmlWindow/Borders"), m_Borders);
p_fff = cfg->Read(wxT("wxHtmlWindow/FontFaceFixed"), m_Parser->m_FontFaceFixed);
p_ffn = cfg->Read(wxT("wxHtmlWindow/FontFaceNormal"), m_Parser->m_FontFaceNormal);
for (int i = 0; i < 7; i++)
{
tmp.Printf(wxT("wxHtmlWindow/FontsSize%i"), i);
p_fontsizes[i] = cfg->Read(tmp, m_Parser->m_FontsSizes[i]);
}
SetFonts(p_ffn, p_fff, p_fontsizes);
if (path != wxEmptyString)
cfg->SetPath(oldpath);
}
void wxHtmlWindow::WriteCustomization(wxConfigBase *cfg, wxString path)
{
wxString oldpath;
wxString tmp;
if (path != wxEmptyString)
{
oldpath = cfg->GetPath();
cfg->SetPath(path);
}
cfg->Write(wxT("wxHtmlWindow/Borders"), (long) m_Borders);
cfg->Write(wxT("wxHtmlWindow/FontFaceFixed"), m_Parser->m_FontFaceFixed);
cfg->Write(wxT("wxHtmlWindow/FontFaceNormal"), m_Parser->m_FontFaceNormal);
for (int i = 0; i < 7; i++)
{
tmp.Printf(wxT("wxHtmlWindow/FontsSize%i"), i);
cfg->Write(tmp, (long) m_Parser->m_FontsSizes[i]);
}
if (path != wxEmptyString)
cfg->SetPath(oldpath);
}
bool wxHtmlWindow::HistoryBack()
{
wxString a, l;
if (m_HistoryPos < 1) return FALSE;
// store scroll position into history item:
int x, y;
GetViewStart(&x, &y);
(*m_History)[m_HistoryPos].SetPos(y);
// go to previous position:
m_HistoryPos--;
l = (*m_History)[m_HistoryPos].GetPage();
a = (*m_History)[m_HistoryPos].GetAnchor();
m_HistoryOn = FALSE;
m_tmpCanDrawLocks++;
if (a == wxEmptyString) LoadPage(l);
else LoadPage(l + wxT("#") + a);
m_HistoryOn = TRUE;
m_tmpCanDrawLocks--;
Scroll(0, (*m_History)[m_HistoryPos].GetPos());
Refresh();
return TRUE;
}
bool wxHtmlWindow::HistoryCanBack()
{
if (m_HistoryPos < 1) return FALSE;
return TRUE ;
}
bool wxHtmlWindow::HistoryForward()
{
wxString a, l;
if (m_HistoryPos == -1) return FALSE;
if (m_HistoryPos >= (int)m_History->GetCount() - 1)return FALSE;
m_OpenedPage = wxEmptyString; // this will disable adding new entry into history in LoadPage()
m_HistoryPos++;
l = (*m_History)[m_HistoryPos].GetPage();
a = (*m_History)[m_HistoryPos].GetAnchor();
m_HistoryOn = FALSE;
m_tmpCanDrawLocks++;
if (a == wxEmptyString) LoadPage(l);
else LoadPage(l + wxT("#") + a);
m_HistoryOn = TRUE;
m_tmpCanDrawLocks--;
Scroll(0, (*m_History)[m_HistoryPos].GetPos());
Refresh();
return TRUE;
}
bool wxHtmlWindow::HistoryCanForward()
{
if (m_HistoryPos == -1) return FALSE;
if (m_HistoryPos >= (int)m_History->GetCount() - 1)return FALSE;
return TRUE ;
}
void wxHtmlWindow::HistoryClear()
{
m_History->Empty();
m_HistoryPos = -1;
}
void wxHtmlWindow::AddProcessor(wxHtmlProcessor *processor)
{
if (!m_Processors)
{
m_Processors = new wxHtmlProcessorList;
m_Processors->DeleteContents(TRUE);
}
wxHtmlProcessorList::Node *node;
for (node = m_Processors->GetFirst(); node; node = node->GetNext())
{
if (processor->GetPriority() > node->GetData()->GetPriority())
{
m_Processors->Insert(node, processor);
return;
}
}
m_Processors->Append(processor);
}
/*static */ void wxHtmlWindow::AddGlobalProcessor(wxHtmlProcessor *processor)
{
if (!m_GlobalProcessors)
{
m_GlobalProcessors = new wxHtmlProcessorList;
m_GlobalProcessors->DeleteContents(TRUE);
}
wxHtmlProcessorList::Node *node;
for (node = m_GlobalProcessors->GetFirst(); node; node = node->GetNext())
{
if (processor->GetPriority() > node->GetData()->GetPriority())
{
m_GlobalProcessors->Insert(node, processor);
return;
}
}
m_GlobalProcessors->Append(processor);
}
wxList wxHtmlWindow::m_Filters;
wxHtmlFilter *wxHtmlWindow::m_DefaultFilter = NULL;
wxCursor *wxHtmlWindow::s_cur_hand = NULL;
wxCursor *wxHtmlWindow::s_cur_arrow = NULL;
wxHtmlProcessorList *wxHtmlWindow::m_GlobalProcessors = NULL;
void wxHtmlWindow::CleanUpStatics()
{
wxDELETE(m_DefaultFilter);
m_Filters.DeleteContents(TRUE);
m_Filters.Clear();
wxDELETE(m_GlobalProcessors);
wxDELETE(s_cur_hand);
wxDELETE(s_cur_arrow);
}
void wxHtmlWindow::AddFilter(wxHtmlFilter *filter)
{
m_Filters.Append(filter);
}
void wxHtmlWindow::OnLinkClicked(const wxHtmlLinkInfo& link)
{
LoadPage(link.GetHref());
}
void wxHtmlWindow::OnCellClicked(wxHtmlCell *cell,
wxCoord x, wxCoord y,
const wxMouseEvent& event)
{
wxCHECK_RET( cell, _T("can't be called with NULL cell") );
cell->OnMouseClick(this, x, y, event);
}
void wxHtmlWindow::OnCellMouseHover(wxHtmlCell * WXUNUSED(cell),
wxCoord WXUNUSED(x), wxCoord WXUNUSED(y))
{
// do nothing here
}
void wxHtmlWindow::OnDraw(wxDC& dc)
{
if (m_tmpCanDrawLocks > 0 || m_Cell == NULL) return;
int x, y;
wxRect rect = GetUpdateRegion().GetBox();
dc.SetMapMode(wxMM_TEXT);
dc.SetBackgroundMode(wxTRANSPARENT);
GetViewStart(&x, &y);
m_Cell->Draw(dc, 0, 0,
y * wxHTML_SCROLL_STEP + rect.GetTop(),
y * wxHTML_SCROLL_STEP + rect.GetBottom());
}
void wxHtmlWindow::OnSize(wxSizeEvent& event)
{
wxScrolledWindow::OnSize(event);
CreateLayout();
Refresh();
}
void wxHtmlWindow::OnMouseEvent(wxMouseEvent& event)
{
m_tmpMouseMoved = TRUE;
if (event.ButtonDown())
{
SetFocus();
if ( m_Cell )
{
int sx, sy;
GetViewStart(&sx, &sy);
sx *= wxHTML_SCROLL_STEP;
sy *= wxHTML_SCROLL_STEP;
wxPoint pos = event.GetPosition();
pos.x += sx;
pos.y += sy;
wxHtmlCell *cell = m_Cell->FindCellByPos(pos.x, pos.y);
// VZ: is it possible that we don't find anything at all?
// VS: yes. FindCellByPos returns terminal cell and
// containers may have empty borders
if ( cell )
OnCellClicked(cell, pos.x, pos.y, event);
}
}
}
void wxHtmlWindow::OnIdle(wxIdleEvent& WXUNUSED(event))
{
if (s_cur_hand == NULL)
{
s_cur_hand = new wxCursor(wxCURSOR_HAND);
s_cur_arrow = new wxCursor(wxCURSOR_ARROW);
}
if (m_tmpMouseMoved && (m_Cell != NULL))
{
int sx, sy;
GetViewStart(&sx, &sy);
sx *= wxHTML_SCROLL_STEP;
sy *= wxHTML_SCROLL_STEP;
int x, y;
wxGetMousePosition(&x, &y);
ScreenToClient(&x, &y);
x += sx;
y += sy;
wxHtmlCell *cell = m_Cell->FindCellByPos(x, y);
if ( cell != m_tmpLastCell )
{
wxHtmlLinkInfo *lnk = cell ? cell->GetLink(x, y) : NULL;
if (lnk != m_tmpLastLink)
{
if (lnk == NULL)
{
SetCursor(*s_cur_arrow);
if (m_RelatedStatusBar != -1)
m_RelatedFrame->SetStatusText(wxEmptyString, m_RelatedStatusBar);
}
else
{
SetCursor(*s_cur_hand);
if (m_RelatedStatusBar != -1)
m_RelatedFrame->SetStatusText(lnk->GetHref(), m_RelatedStatusBar);
}
m_tmpLastLink = lnk;
}
m_tmpLastCell = cell;
}
else // mouse moved but stayed in the same cell
{
if ( cell )
OnCellMouseHover(cell, x, y);
}
m_tmpMouseMoved = FALSE;
}
}
IMPLEMENT_ABSTRACT_CLASS(wxHtmlProcessor,wxObject)
IMPLEMENT_DYNAMIC_CLASS(wxHtmlWindow,wxScrolledWindow)
BEGIN_EVENT_TABLE(wxHtmlWindow, wxScrolledWindow)
EVT_SIZE(wxHtmlWindow::OnSize)
EVT_LEFT_DOWN(wxHtmlWindow::OnMouseEvent)
EVT_RIGHT_DOWN(wxHtmlWindow::OnMouseEvent)
EVT_MOTION(wxHtmlWindow::OnMouseEvent)
EVT_IDLE(wxHtmlWindow::OnIdle)
END_EVENT_TABLE()
// A module to allow initialization/cleanup
// without calling these functions from app.cpp or from
// the user's application.
class wxHtmlWinModule: public wxModule
{
DECLARE_DYNAMIC_CLASS(wxHtmlWinModule)
public:
wxHtmlWinModule() : wxModule() {}
bool OnInit() { return TRUE; }
void OnExit() { wxHtmlWindow::CleanUpStatics(); }
};
IMPLEMENT_DYNAMIC_CLASS(wxHtmlWinModule, wxModule)
// This hack forces the linker to always link in m_* files
// (wxHTML doesn't work without handlers from these files)
#include "wx/html/forcelnk.h"
FORCE_WXHTML_MODULES()
#endif

View File

@@ -1,633 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: htmprint.cpp
// Purpose: html printing classes
// Author: Vaclav Slavik
// Created: 25/09/99
// RCS-ID: $Id$
// Copyright: (c) Vaclav Slavik, 1999
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation "htmprint.h"
#endif
// For compilers that support precompilation, includes "wx/wx.h".
#include "wx/wxprec.h"
#include "wx/defs.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include "wx/log.h"
#include "wx/intl.h"
#include "wx/dc.h"
#endif
#if wxUSE_HTML && wxUSE_PRINTING_ARCHITECTURE && wxUSE_STREAMS
#include "wx/dc.h"
#include "wx/print.h"
#include "wx/printdlg.h"
#include "wx/html/htmprint.h"
#include "wx/wxhtml.h"
#include "wx/wfstream.h"
//--------------------------------------------------------------------------------
// wxHtmlDCRenderer
//--------------------------------------------------------------------------------
wxHtmlDCRenderer::wxHtmlDCRenderer() : wxObject()
{
m_DC = NULL;
m_Width = m_Height = 0;
m_Cells = NULL;
m_Parser = new wxHtmlWinParser(NULL);
m_FS = new wxFileSystem();
m_Parser->SetFS(m_FS);
}
wxHtmlDCRenderer::~wxHtmlDCRenderer()
{
if (m_Cells) delete m_Cells;
if (m_Parser) delete m_Parser;
if (m_FS) delete m_FS;
}
void wxHtmlDCRenderer::SetDC(wxDC *dc, double pixel_scale)
{
m_DC = dc;
m_Parser->SetDC(m_DC, pixel_scale);
}
void wxHtmlDCRenderer::SetSize(int width, int height)
{
m_Width = width;
m_Height = height;
}
void wxHtmlDCRenderer::SetHtmlText(const wxString& html, const wxString& basepath, bool isdir)
{
if (m_DC == NULL) return;
if (m_Cells != NULL) delete m_Cells;
m_FS->ChangePathTo(basepath, isdir);
m_Cells = (wxHtmlContainerCell*) m_Parser->Parse(html);
m_Cells->SetIndent(0, wxHTML_INDENT_ALL, wxHTML_UNITS_PIXELS);
m_Cells->Layout(m_Width);
}
void wxHtmlDCRenderer::SetFonts(wxString normal_face, wxString fixed_face,
const int *sizes)
{
m_Parser->SetFonts(normal_face, fixed_face, sizes);
if (m_DC == NULL && m_Cells != NULL) m_Cells->Layout(m_Width);
}
int wxHtmlDCRenderer::Render(int x, int y, int from, int dont_render, int to, int *known_pagebreaks, int number_of_pages)
{
int pbreak, hght;
if (m_Cells == NULL || m_DC == NULL) return 0;
pbreak = (int)(from + m_Height);
while (m_Cells->AdjustPagebreak(&pbreak, known_pagebreaks, number_of_pages)) {}
hght = pbreak - from;
if(to < hght)
hght = to;
if (!dont_render)
{
m_DC->SetBrush(*wxWHITE_BRUSH);
m_DC->SetClippingRegion(x, y, m_Width, hght);
m_Cells->Draw(*m_DC,
x, (y - from),
y, pbreak + (y /*- from*/));
m_DC->DestroyClippingRegion();
}
if (pbreak < m_Cells->GetHeight()) return pbreak;
else return GetTotalHeight();
}
int wxHtmlDCRenderer::GetTotalHeight()
{
if (m_Cells) return m_Cells->GetHeight();
else return 0;
}
//--------------------------------------------------------------------------------
// wxHtmlPrintout
//--------------------------------------------------------------------------------
wxHtmlPrintout::wxHtmlPrintout(const wxString& title) : wxPrintout(title)
{
m_Renderer = new wxHtmlDCRenderer;
m_RendererHdr = new wxHtmlDCRenderer;
m_NumPages = wxHTML_PRINT_MAX_PAGES;
m_Document = m_BasePath = wxEmptyString; m_BasePathIsDir = TRUE;
m_Headers[0] = m_Headers[1] = wxEmptyString;
m_Footers[0] = m_Footers[1] = wxEmptyString;
m_HeaderHeight = m_FooterHeight = 0;
SetMargins(); // to default values
}
wxHtmlPrintout::~wxHtmlPrintout()
{
delete m_Renderer;
delete m_RendererHdr;
}
bool wxHtmlPrintout::OnBeginDocument(int startPage, int endPage)
{
int pageWidth, pageHeight, mm_w, mm_h, scr_w, scr_h, dc_w, dc_h;
float ppmm_h, ppmm_v;
if (!wxPrintout::OnBeginDocument(startPage, endPage)) return FALSE;
GetPageSizePixels(&pageWidth, &pageHeight);
GetPageSizeMM(&mm_w, &mm_h);
ppmm_h = (float)pageWidth / mm_w;
ppmm_v = (float)pageHeight / mm_h;
int ppiPrinterX, ppiPrinterY;
GetPPIPrinter(&ppiPrinterX, &ppiPrinterY);
int ppiScreenX, ppiScreenY;
GetPPIScreen(&ppiScreenX, &ppiScreenY);
wxDisplaySize(&scr_w, &scr_h);
GetDC()->GetSize(&dc_w, &dc_h);
GetDC()->SetUserScale((double)dc_w / (double)pageWidth, (double)dc_w / (double)pageWidth);
/* prepare headers/footers renderer: */
m_RendererHdr->SetDC(GetDC(), (double)ppiPrinterY / (double)ppiScreenY);
m_RendererHdr->SetSize((int) (ppmm_h * (mm_w - m_MarginLeft - m_MarginRight)),
(int) (ppmm_v * (mm_h - m_MarginTop - m_MarginBottom)));
if (m_Headers[0] != wxEmptyString)
{
m_RendererHdr->SetHtmlText(TranslateHeader(m_Headers[0], 1));
m_HeaderHeight = m_RendererHdr->GetTotalHeight();
}
else if (m_Headers[1] != wxEmptyString)
{
m_RendererHdr->SetHtmlText(TranslateHeader(m_Headers[1], 1));
m_HeaderHeight = m_RendererHdr->GetTotalHeight();
}
if (m_Footers[0] != wxEmptyString)
{
m_RendererHdr->SetHtmlText(TranslateHeader(m_Footers[0], 1));
m_FooterHeight = m_RendererHdr->GetTotalHeight();
}
else if (m_Footers[1] != wxEmptyString)
{
m_RendererHdr->SetHtmlText(TranslateHeader(m_Footers[1], 1));
m_FooterHeight = m_RendererHdr->GetTotalHeight();
}
/* prepare main renderer: */
m_Renderer->SetDC(GetDC(), (double)ppiPrinterY / (double)ppiScreenY);
m_Renderer->SetSize((int) (ppmm_h * (mm_w - m_MarginLeft - m_MarginRight)),
(int) (ppmm_v * (mm_h - m_MarginTop - m_MarginBottom) -
m_FooterHeight - m_HeaderHeight -
((m_HeaderHeight == 0) ? 0 : m_MarginSpace * ppmm_v) -
((m_FooterHeight == 0) ? 0 : m_MarginSpace * ppmm_v)
));
m_Renderer->SetHtmlText(m_Document, m_BasePath, m_BasePathIsDir);
CountPages();
return TRUE;
}
bool wxHtmlPrintout::OnPrintPage(int page)
{
wxDC *dc = GetDC();
if (dc)
{
if (HasPage(page))
RenderPage(dc, page);
return TRUE;
}
else return FALSE;
}
void wxHtmlPrintout::GetPageInfo(int *minPage, int *maxPage, int *selPageFrom, int *selPageTo)
{
*minPage = 1;
*maxPage = wxHTML_PRINT_MAX_PAGES;
*selPageFrom = 1;
*selPageTo = wxHTML_PRINT_MAX_PAGES;
}
bool wxHtmlPrintout::HasPage(int pageNum)
{
return (pageNum >= 1 && pageNum <= m_NumPages);
}
void wxHtmlPrintout::SetHtmlText(const wxString& html, const wxString &basepath, bool isdir)
{
m_Document = html;
m_BasePath = basepath;
m_BasePathIsDir = isdir;
}
void wxHtmlPrintout::SetHtmlFile(const wxString& htmlfile)
{
wxFileSystem fs;
wxFSFile *ff = fs.OpenFile(htmlfile);
if (ff == NULL)
{
wxLogError(htmlfile + _(": file does not exist!"));
return;
}
wxHtmlFilterHTML filter;
wxString doc = filter.ReadFile(*ff);
SetHtmlText(doc, htmlfile, FALSE);
delete ff;
}
void wxHtmlPrintout::SetHeader(const wxString& header, int pg)
{
if (pg == wxPAGE_ALL || pg == wxPAGE_EVEN)
m_Headers[0] = header;
if (pg == wxPAGE_ALL || pg == wxPAGE_ODD)
m_Headers[1] = header;
}
void wxHtmlPrintout::SetFooter(const wxString& footer, int pg)
{
if (pg == wxPAGE_ALL || pg == wxPAGE_EVEN)
m_Footers[0] = footer;
if (pg == wxPAGE_ALL || pg == wxPAGE_ODD)
m_Footers[1] = footer;
}
void wxHtmlPrintout::CountPages()
{
wxBusyCursor wait;
int pageWidth, pageHeight, mm_w, mm_h;
float ppmm_h, ppmm_v;
GetPageSizePixels(&pageWidth, &pageHeight);
GetPageSizeMM(&mm_w, &mm_h);
ppmm_h = (float)pageWidth / mm_w;
ppmm_v = (float)pageHeight / mm_h;
int pos = 0;
m_NumPages = 0;
m_PageBreaks[0] = 0;
do
{
pos = m_Renderer->Render((int)( ppmm_h * m_MarginLeft),
(int) (ppmm_v * (m_MarginTop + (m_HeaderHeight == 0 ? 0 : m_MarginSpace)) + m_HeaderHeight),
pos, TRUE, INT_MAX, m_PageBreaks, m_NumPages);
m_PageBreaks[++m_NumPages] = pos;
} while (pos < m_Renderer->GetTotalHeight());
}
void wxHtmlPrintout::RenderPage(wxDC *dc, int page)
{
wxBusyCursor wait;
int pageWidth, pageHeight, mm_w, mm_h, scr_w, scr_h, dc_w, dc_h;
float ppmm_h, ppmm_v;
GetPageSizePixels(&pageWidth, &pageHeight);
GetPageSizeMM(&mm_w, &mm_h);
ppmm_h = (float)pageWidth / mm_w;
ppmm_v = (float)pageHeight / mm_h;
wxDisplaySize(&scr_w, &scr_h);
dc->GetSize(&dc_w, &dc_h);
int ppiPrinterX, ppiPrinterY;
GetPPIPrinter(&ppiPrinterX, &ppiPrinterY);
int ppiScreenX, ppiScreenY;
GetPPIScreen(&ppiScreenX, &ppiScreenY);
dc->SetUserScale((double)dc_w / (double)pageWidth, (double)dc_w / (double)pageWidth);
m_Renderer->SetDC(dc, (double)ppiPrinterY / (double)ppiScreenY);
dc->SetBackgroundMode(wxTRANSPARENT);
m_Renderer->Render((int) (ppmm_h * m_MarginLeft),
(int) (ppmm_v * (m_MarginTop + (m_HeaderHeight == 0 ? 0 : m_MarginSpace)) + m_HeaderHeight),
m_PageBreaks[page-1], FALSE, m_PageBreaks[page]-m_PageBreaks[page-1]);
m_RendererHdr->SetDC(dc, (double)ppiPrinterY / (double)ppiScreenY);
if (m_Headers[page % 2] != wxEmptyString)
{
m_RendererHdr->SetHtmlText(TranslateHeader(m_Headers[page % 2], page));
m_RendererHdr->Render((int) (ppmm_h * m_MarginLeft), (int) (ppmm_v * m_MarginTop));
}
if (m_Footers[page % 2] != wxEmptyString)
{
m_RendererHdr->SetHtmlText(TranslateHeader(m_Footers[page % 2], page));
m_RendererHdr->Render((int) (ppmm_h * m_MarginLeft), (int) (pageHeight - ppmm_v * m_MarginBottom - m_FooterHeight));
}
}
wxString wxHtmlPrintout::TranslateHeader(const wxString& instr, int page)
{
wxString r = instr;
wxString num;
num.Printf(wxT("%i"), page);
r.Replace(wxT("@PAGENUM@"), num);
num.Printf(wxT("%i"), m_NumPages);
r.Replace(wxT("@PAGESCNT@"), num);
return r;
}
void wxHtmlPrintout::SetMargins(float top, float bottom, float left, float right, float spaces)
{
m_MarginTop = top;
m_MarginBottom = bottom;
m_MarginLeft = left;
m_MarginRight = right;
m_MarginSpace = spaces;
}
void wxHtmlPrintout::SetFonts(wxString normal_face, wxString fixed_face,
const int *sizes)
{
m_Renderer->SetFonts(normal_face, fixed_face, sizes);
m_RendererHdr->SetFonts(normal_face, fixed_face, sizes);
}
//----------------------------------------------------------------------------
// wxHtmlEasyPrinting
//----------------------------------------------------------------------------
wxHtmlEasyPrinting::wxHtmlEasyPrinting(const wxString& name, wxFrame *parent_frame)
{
m_Frame = parent_frame;
m_Name = name;
m_PrintData = new wxPrintData;
m_PageSetupData = new wxPageSetupDialogData;
m_Headers[0] = m_Headers[1] = m_Footers[0] = m_Footers[1] = wxEmptyString;
m_PageSetupData->EnableMargins(TRUE);
m_PageSetupData->SetMarginTopLeft(wxPoint(25, 25));
m_PageSetupData->SetMarginBottomRight(wxPoint(25, 25));
SetFonts(wxEmptyString, wxEmptyString, NULL);
}
wxHtmlEasyPrinting::~wxHtmlEasyPrinting()
{
delete m_PrintData;
delete m_PageSetupData;
}
bool wxHtmlEasyPrinting::PreviewFile(const wxString &htmlfile)
{
wxHtmlPrintout *p1 = CreatePrintout();
p1->SetHtmlFile(htmlfile);
wxHtmlPrintout *p2 = CreatePrintout();
p2->SetHtmlFile(htmlfile);
return DoPreview(p1, p2);
}
bool wxHtmlEasyPrinting::PreviewText(const wxString &htmltext, const wxString &basepath)
{
wxHtmlPrintout *p1 = CreatePrintout();
p1->SetHtmlText(htmltext, basepath, TRUE);
wxHtmlPrintout *p2 = CreatePrintout();
p2->SetHtmlText(htmltext, basepath, TRUE);
return DoPreview(p1, p2);
}
bool wxHtmlEasyPrinting::PrintFile(const wxString &htmlfile)
{
wxHtmlPrintout *p = CreatePrintout();
p->SetHtmlFile(htmlfile);
bool ret = DoPrint(p);
delete p;
return ret;
}
bool wxHtmlEasyPrinting::PrintText(const wxString &htmltext, const wxString &basepath)
{
wxHtmlPrintout *p = CreatePrintout();
p->SetHtmlText(htmltext, basepath, TRUE);
bool ret = DoPrint(p);
delete p;
return ret;
}
bool wxHtmlEasyPrinting::DoPreview(wxHtmlPrintout *printout1, wxHtmlPrintout *printout2)
{
// Pass two printout objects: for preview, and possible printing.
wxPrintDialogData printDialogData(*m_PrintData);
wxPrintPreview *preview = new wxPrintPreview(printout1, printout2, &printDialogData);
if (!preview->Ok())
{
delete preview;
return FALSE;
}
wxPreviewFrame *frame = new wxPreviewFrame(preview, m_Frame,
m_Name + _(" Preview"),
wxPoint(100, 100), wxSize(650, 500));
frame->Centre(wxBOTH);
frame->Initialize();
frame->Show(TRUE);
return TRUE;
}
bool wxHtmlEasyPrinting::DoPrint(wxHtmlPrintout *printout)
{
wxPrintDialogData printDialogData(*m_PrintData);
wxPrinter printer(&printDialogData);
if (!printer.Print(m_Frame, printout, TRUE))
{
return FALSE;
}
(*m_PrintData) = printer.GetPrintDialogData().GetPrintData();
return TRUE;
}
void wxHtmlEasyPrinting::PrinterSetup()
{
wxPrintDialogData printDialogData(*m_PrintData);
wxPrintDialog printerDialog(m_Frame, &printDialogData);
printerDialog.GetPrintDialogData().SetSetupDialog(TRUE);
if (printerDialog.ShowModal() == wxID_OK)
(*m_PrintData) = printerDialog.GetPrintDialogData().GetPrintData();
}
void wxHtmlEasyPrinting::PageSetup()
{
if (!m_PrintData->Ok())
{
wxLogError(_("There was a problem during page setup: you may need to set a default printer."));
return;
}
m_PageSetupData->SetPrintData(*m_PrintData);
wxPageSetupDialog pageSetupDialog(m_Frame, m_PageSetupData);
if (pageSetupDialog.ShowModal() == wxID_OK)
{
(*m_PrintData) = pageSetupDialog.GetPageSetupData().GetPrintData();
(*m_PageSetupData) = pageSetupDialog.GetPageSetupData();
}
}
void wxHtmlEasyPrinting::SetHeader(const wxString& header, int pg)
{
if (pg == wxPAGE_ALL || pg == wxPAGE_EVEN)
m_Headers[0] = header;
if (pg == wxPAGE_ALL || pg == wxPAGE_ODD)
m_Headers[1] = header;
}
void wxHtmlEasyPrinting::SetFooter(const wxString& footer, int pg)
{
if (pg == wxPAGE_ALL || pg == wxPAGE_EVEN)
m_Footers[0] = footer;
if (pg == wxPAGE_ALL || pg == wxPAGE_ODD)
m_Footers[1] = footer;
}
void wxHtmlEasyPrinting::SetFonts(wxString normal_face, wxString fixed_face,
const int *sizes)
{
m_FontFaceNormal = normal_face;
m_FontFaceFixed = fixed_face;
if (sizes)
{
m_FontsSizes = m_FontsSizesArr;
for (int i = 0; i < 7; i++) m_FontsSizes[i] = sizes[i];
}
else
m_FontsSizes = NULL;
}
wxHtmlPrintout *wxHtmlEasyPrinting::CreatePrintout()
{
wxHtmlPrintout *p = new wxHtmlPrintout(m_Name);
p->SetFonts(m_FontFaceNormal, m_FontFaceFixed, m_FontsSizes);
p->SetHeader(m_Headers[0], wxPAGE_EVEN);
p->SetHeader(m_Headers[1], wxPAGE_ODD);
p->SetFooter(m_Footers[0], wxPAGE_EVEN);
p->SetFooter(m_Footers[1], wxPAGE_ODD);
p->SetMargins(m_PageSetupData->GetMarginTopLeft().y,
m_PageSetupData->GetMarginBottomRight().y,
m_PageSetupData->GetMarginTopLeft().x,
m_PageSetupData->GetMarginBottomRight().x);
return p;
}
// This hack forces the linker to always link in m_* files
// (wxHTML doesn't work without handlers from these files)
#include "wx/html/forcelnk.h"
FORCE_WXHTML_MODULES()
#endif // wxUSE_HTML & wxUSE_PRINTING_ARCHITECTURE

View File

@@ -1,90 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: m_dflist.cpp
// Purpose: wxHtml module for definition lists (DL,DT,DD)
// Author: Vaclav Slavik
// RCS-ID: $Id$
// Copyright: (c) 1999 Vaclav Slavik
// Licence: wxWindows Licence
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation
#endif
#include "wx/wxprec.h"
#include "wx/defs.h"
#if wxUSE_HTML && wxUSE_STREAMS
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WXPRECOMP
#endif
#include "wx/html/forcelnk.h"
#include "wx/html/m_templ.h"
#include "wx/html/htmlcell.h"
FORCE_LINK_ME(m_dflist)
TAG_HANDLER_BEGIN(DEFLIST, "DL,DT,DD" )
TAG_HANDLER_PROC(tag)
{
wxHtmlContainerCell *c;
if (tag.GetName() == wxT("DL"))
{
if (m_WParser->GetContainer()->GetFirstCell() != NULL)
{
m_WParser->CloseContainer();
m_WParser->OpenContainer();
}
m_WParser->GetContainer()->SetIndent(m_WParser->GetCharHeight(), wxHTML_INDENT_TOP);
ParseInner(tag);
if (m_WParser->GetContainer()->GetFirstCell() != NULL)
{
m_WParser->CloseContainer();
m_WParser->OpenContainer();
}
m_WParser->GetContainer()->SetIndent(m_WParser->GetCharHeight(), wxHTML_INDENT_TOP);
return TRUE;
}
else if (tag.GetName() == wxT("DT"))
{
m_WParser->CloseContainer();
c = m_WParser->OpenContainer();
c->SetAlignHor(wxHTML_ALIGN_LEFT);
c->SetMinHeight(m_WParser->GetCharHeight());
return FALSE;
}
else // "DD"
{
m_WParser->CloseContainer();
c = m_WParser->OpenContainer();
c->SetIndent(5 * m_WParser->GetCharWidth(), wxHTML_INDENT_LEFT);
return FALSE;
}
}
TAG_HANDLER_END(DEFLIST)
TAGS_MODULE_BEGIN(DefinitionList)
TAGS_MODULE_ADD(DEFLIST)
TAGS_MODULE_END(DefinitionList)
#endif

View File

@@ -1,321 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: m_fonts.cpp
// Purpose: wxHtml module for fonts & colors of fonts
// Author: Vaclav Slavik
// RCS-ID: $Id$
// Copyright: (c) 1999 Vaclav Slavik
// Licence: wxWindows Licence
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation
#endif
#include "wx/wxprec.h"
#include "wx/defs.h"
#if wxUSE_HTML && wxUSE_STREAMS
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WXPRECOMP
#endif
#include "wx/html/forcelnk.h"
#include "wx/html/m_templ.h"
#include "wx/fontenum.h"
#include "wx/tokenzr.h"
FORCE_LINK_ME(m_fonts)
TAG_HANDLER_BEGIN(FONT, "FONT" )
TAG_HANDLER_VARS
wxArrayString m_Faces;
TAG_HANDLER_PROC(tag)
{
wxColour oldclr = m_WParser->GetActualColor();
int oldsize = m_WParser->GetFontSize();
wxString oldface = m_WParser->GetFontFace();
if (tag.HasParam(wxT("COLOR")))
{
wxColour clr;
if (tag.GetParamAsColour(wxT("COLOR"), &clr))
{
m_WParser->SetActualColor(clr);
m_WParser->GetContainer()->InsertCell(new wxHtmlColourCell(clr));
}
}
if (tag.HasParam(wxT("SIZE")))
{
int tmp = 0;
wxChar c = tag.GetParam(wxT("SIZE")).GetChar(0);
if (tag.GetParamAsInt(wxT("SIZE"), &tmp))
{
if (c == wxT('+') || c == wxT('-'))
m_WParser->SetFontSize(oldsize+tmp);
else
m_WParser->SetFontSize(tmp);
m_WParser->GetContainer()->InsertCell(
new wxHtmlFontCell(m_WParser->CreateCurrentFont()));
}
}
if (tag.HasParam(wxT("FACE")))
{
if (m_Faces.GetCount() == 0)
{
wxFontEnumerator enu;
enu.EnumerateFacenames();
m_Faces = *enu.GetFacenames();
}
wxStringTokenizer tk(tag.GetParam(wxT("FACE")), wxT(","));
int index;
while (tk.HasMoreTokens())
{
if ((index = m_Faces.Index(tk.GetNextToken(), FALSE)) != wxNOT_FOUND)
{
m_WParser->SetFontFace(m_Faces[index]);
m_WParser->GetContainer()->InsertCell(new wxHtmlFontCell(m_WParser->CreateCurrentFont()));
break;
}
}
}
ParseInner(tag);
if (oldface != m_WParser->GetFontFace())
{
m_WParser->SetFontFace(oldface);
m_WParser->GetContainer()->InsertCell(new wxHtmlFontCell(m_WParser->CreateCurrentFont()));
}
if (oldsize != m_WParser->GetFontSize())
{
m_WParser->SetFontSize(oldsize);
m_WParser->GetContainer()->InsertCell(new wxHtmlFontCell(m_WParser->CreateCurrentFont()));
}
if (oldclr != m_WParser->GetActualColor())
{
m_WParser->SetActualColor(oldclr);
m_WParser->GetContainer()->InsertCell(new wxHtmlColourCell(oldclr));
}
return TRUE;
}
TAG_HANDLER_END(FONT)
TAG_HANDLER_BEGIN(FACES_U, "U,STRIKE")
TAG_HANDLER_PROC(tag)
{
int underlined = m_WParser->GetFontUnderlined();
m_WParser->SetFontUnderlined(TRUE);
m_WParser->GetContainer()->InsertCell(
new wxHtmlFontCell(m_WParser->CreateCurrentFont()));
ParseInner(tag);
m_WParser->SetFontUnderlined(underlined);
m_WParser->GetContainer()->InsertCell(
new wxHtmlFontCell(m_WParser->CreateCurrentFont()));
return TRUE;
}
TAG_HANDLER_END(FACES_U)
TAG_HANDLER_BEGIN(FACES_B, "B,STRONG")
TAG_HANDLER_PROC(tag)
{
int bold = m_WParser->GetFontBold();
m_WParser->SetFontBold(TRUE);
m_WParser->GetContainer()->InsertCell(
new wxHtmlFontCell(m_WParser->CreateCurrentFont()));
ParseInner(tag);
m_WParser->SetFontBold(bold);
m_WParser->GetContainer()->InsertCell(
new wxHtmlFontCell(m_WParser->CreateCurrentFont()));
return TRUE;
}
TAG_HANDLER_END(FACES_B)
TAG_HANDLER_BEGIN(FACES_I, "I,EM,CITE,ADDRESS")
TAG_HANDLER_PROC(tag)
{
int italic = m_WParser->GetFontItalic();
m_WParser->SetFontItalic(TRUE);
m_WParser->GetContainer()->InsertCell(
new wxHtmlFontCell(m_WParser->CreateCurrentFont()));
ParseInner(tag);
m_WParser->SetFontItalic(italic);
m_WParser->GetContainer()->InsertCell(
new wxHtmlFontCell(m_WParser->CreateCurrentFont()));
return TRUE;
}
TAG_HANDLER_END(FACES_I)
TAG_HANDLER_BEGIN(FACES_TT, "TT,CODE,KBD,SAMP")
TAG_HANDLER_PROC(tag)
{
int fixed = m_WParser->GetFontFixed();
m_WParser->SetFontFixed(TRUE);
m_WParser->GetContainer()->InsertCell(
new wxHtmlFontCell(m_WParser->CreateCurrentFont()));
ParseInner(tag);
m_WParser->SetFontFixed(fixed);
m_WParser->GetContainer()->InsertCell(
new wxHtmlFontCell(m_WParser->CreateCurrentFont()));
return TRUE;
}
TAG_HANDLER_END(FACES_TT)
TAG_HANDLER_BEGIN(Hx, "H1,H2,H3,H4,H5,H6")
TAG_HANDLER_PROC(tag)
{
int old_size, old_b, old_i, old_u, old_f, old_al;
wxHtmlContainerCell *c;
old_size = m_WParser->GetFontSize();
old_b = m_WParser->GetFontBold();
old_i = m_WParser->GetFontItalic();
old_u = m_WParser->GetFontUnderlined();
old_f = m_WParser->GetFontFixed();
old_al = m_WParser->GetAlign();
m_WParser->SetFontBold(TRUE);
m_WParser->SetFontItalic(FALSE);
m_WParser->SetFontUnderlined(FALSE);
m_WParser->SetFontFixed(FALSE);
if (tag.GetName() == wxT("H1"))
m_WParser->SetFontSize(7);
else if (tag.GetName() == wxT("H2"))
m_WParser->SetFontSize(6);
else if (tag.GetName() == wxT("H3"))
m_WParser->SetFontSize(5);
else if (tag.GetName() == wxT("H4"))
{
m_WParser->SetFontSize(5);
m_WParser->SetFontItalic(TRUE);
m_WParser->SetFontBold(FALSE);
}
else if (tag.GetName() == wxT("H5"))
m_WParser->SetFontSize(4);
else if (tag.GetName() == wxT("H6"))
{
m_WParser->SetFontSize(4);
m_WParser->SetFontItalic(TRUE);
m_WParser->SetFontBold(FALSE);
}
c = m_WParser->GetContainer();
if (c->GetFirstCell())
{
m_WParser->CloseContainer();
m_WParser->OpenContainer();
c = m_WParser->GetContainer();
}
c = m_WParser->GetContainer();
c->SetAlign(tag);
c->InsertCell(new wxHtmlFontCell(m_WParser->CreateCurrentFont()));
c->SetIndent(m_WParser->GetCharHeight(), wxHTML_INDENT_TOP);
m_WParser->SetAlign(c->GetAlignHor());
ParseInner(tag);
m_WParser->SetFontSize(old_size);
m_WParser->SetFontBold(old_b);
m_WParser->SetFontItalic(old_i);
m_WParser->SetFontUnderlined(old_u);
m_WParser->SetFontFixed(old_f);
m_WParser->SetAlign(old_al);
m_WParser->GetContainer()->InsertCell(
new wxHtmlFontCell(m_WParser->CreateCurrentFont()));
m_WParser->CloseContainer();
m_WParser->OpenContainer();
c = m_WParser->GetContainer();
c->SetIndent(m_WParser->GetCharHeight(), wxHTML_INDENT_TOP);
return TRUE;
}
TAG_HANDLER_END(Hx)
TAG_HANDLER_BEGIN(BIGSMALL, "BIG,SMALL")
TAG_HANDLER_PROC(tag)
{
int oldsize = m_WParser->GetFontSize();
int sz = (tag.GetName() == wxT("BIG")) ? +1 : -1;
m_WParser->SetFontSize(sz);
m_WParser->GetContainer()->InsertCell(
new wxHtmlFontCell(m_WParser->CreateCurrentFont()));
ParseInner(tag);
m_WParser->SetFontSize(oldsize);
m_WParser->GetContainer()->InsertCell(
new wxHtmlFontCell(m_WParser->CreateCurrentFont()));
return TRUE;
}
TAG_HANDLER_END(BIGSMALL)
TAGS_MODULE_BEGIN(Fonts)
TAGS_MODULE_ADD(FONT)
TAGS_MODULE_ADD(FACES_U)
TAGS_MODULE_ADD(FACES_I)
TAGS_MODULE_ADD(FACES_B)
TAGS_MODULE_ADD(FACES_TT)
TAGS_MODULE_ADD(Hx)
TAGS_MODULE_ADD(BIGSMALL)
TAGS_MODULE_END(Fonts)
#endif

View File

@@ -1,110 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: m_hline.cpp
// Purpose: wxHtml module for horizontal line (HR tag)
// Author: Vaclav Slavik
// RCS-ID: $Id$
// Copyright: (c) 1999 Vaclav Slavik
// Licence: wxWindows Licence
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation
#endif
#include "wx/wxprec.h"
#include "wx/defs.h"
#if wxUSE_HTML && wxUSE_STREAMS
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WXPRECOMP
#include "wx/brush.h"
#include "wx/pen.h"
#include "wx/dc.h"
#endif
#include "wx/html/forcelnk.h"
#include "wx/html/m_templ.h"
#include "wx/html/htmlcell.h"
FORCE_LINK_ME(m_hline)
//-----------------------------------------------------------------------------
// wxHtmlLineCell
//-----------------------------------------------------------------------------
class wxHtmlLineCell : public wxHtmlCell
{
public:
wxHtmlLineCell(int size, bool shading) : wxHtmlCell() {m_Height = size; m_HasShading = shading;}
void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2);
void Layout(int w)
{ m_Width = w; wxHtmlCell::Layout(w); }
private:
// Should we draw 3-D shading or not
bool m_HasShading;
};
void wxHtmlLineCell::Draw(wxDC& dc, int x, int y, int WXUNUSED(view_y1), int WXUNUSED(view_y2))
{
wxBrush mybrush(wxT("GREY"), (m_HasShading) ? wxTRANSPARENT : wxSOLID);
wxPen mypen(wxT("GREY"), 1, wxSOLID);
dc.SetBrush(mybrush);
dc.SetPen(mypen);
dc.DrawRectangle(x + m_PosX, y + m_PosY, m_Width, m_Height);
}
//-----------------------------------------------------------------------------
// The list handler:
//-----------------------------------------------------------------------------
TAG_HANDLER_BEGIN(HR, "HR")
TAG_HANDLER_PROC(tag)
{
wxHtmlContainerCell *c;
int sz;
bool HasShading;
m_WParser->CloseContainer();
c = m_WParser->OpenContainer();
c->SetIndent(m_WParser->GetCharHeight(), wxHTML_INDENT_VERTICAL);
c->SetAlignHor(wxHTML_ALIGN_CENTER);
c->SetAlign(tag);
c->SetWidthFloat(tag);
sz = 1;
tag.GetParamAsInt(wxT("SIZE"), &sz);
HasShading = !(tag.HasParam(wxT("NOSHADE")));
c->InsertCell(new wxHtmlLineCell((int)((double)sz * m_WParser->GetPixelScale()), HasShading));
m_WParser->CloseContainer();
m_WParser->OpenContainer();
return FALSE;
}
TAG_HANDLER_END(HR)
TAGS_MODULE_BEGIN(HLine)
TAGS_MODULE_ADD(HR)
TAGS_MODULE_END(HLine)
#endif

View File

@@ -1,692 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: m_image.cpp
// Purpose: wxHtml module for displaying images
// Author: Vaclav Slavik
// RCS-ID: $Id$
// Copyright: (c) 1999 Vaclav Slavik, Joel Lucsy
// Licence: wxWindows Licence
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation
#endif
#include "wx/wxprec.h"
#include "wx/defs.h"
#if wxUSE_HTML && wxUSE_STREAMS
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WXPRECOMP
#include "wx/dc.h"
#include "wx/scrolwin.h"
#include "wx/timer.h"
#include "wx/dcmemory.h"
#endif
#include "wx/html/forcelnk.h"
#include "wx/html/m_templ.h"
#include "wx/html/htmlwin.h"
#include "wx/image.h"
#include "wx/gifdecod.h"
#include "wx/dynarray.h"
#include "wx/log.h"
#include "wx/artprov.h"
#include <math.h>
#include <float.h>
FORCE_LINK_ME(m_image)
WX_DECLARE_OBJARRAY(int, CoordArray);
#include "wx/arrimpl.cpp" // this is a magic incantation which must be done!
WX_DEFINE_OBJARRAY(CoordArray);
//--------------------------------------------------------------------------------
// wxHtmlImageMapAreaCell
// 0-width, 0-height cell that represents single area in imagemap
// (it's GetLink is called from wxHtmlImageCell's)
//--------------------------------------------------------------------------------
class wxHtmlImageMapAreaCell : public wxHtmlCell
{
public:
enum celltype { CIRCLE, RECT, POLY };
protected:
CoordArray coords;
celltype type;
int radius;
public:
wxHtmlImageMapAreaCell( celltype t, wxString &coords, double pixel_scale = 1.0);
virtual wxHtmlLinkInfo *GetLink( int x = 0, int y = 0 ) const;
};
wxHtmlImageMapAreaCell::wxHtmlImageMapAreaCell( wxHtmlImageMapAreaCell::celltype t, wxString &incoords, double pixel_scale )
{
int i;
wxString x = incoords, y;
type = t;
while ((i = x.Find( ',' )) != -1)
{
coords.Add( (int)(pixel_scale * (double)wxAtoi( x.Left( i ).c_str())) );
x = x.Mid( i + 1 );
}
coords.Add( (int)(pixel_scale * (double)wxAtoi( x.c_str())) );
}
wxHtmlLinkInfo *wxHtmlImageMapAreaCell::GetLink( int x, int y ) const
{
switch (type)
{
case RECT:
{
int l, t, r, b;
l = coords[ 0 ];
t = coords[ 1 ];
r = coords[ 2 ];
b = coords[ 3 ];
if (x >= l && x <= r && y >= t && y <= b)
{
return m_Link;
}
break;
}
case CIRCLE:
{
int l, t, r;
double d;
l = coords[ 0 ];
t = coords[ 1 ];
r = coords[ 2 ];
d = sqrt( (double) (((x - l) * (x - l)) + ((y - t) * (y - t))) );
if (d < (double)r)
{
return m_Link;
}
}
break;
case POLY:
{
if (coords.GetCount() >= 6)
{
int intersects = 0;
int wherex = x;
int wherey = y;
int totalv = coords.GetCount() / 2;
int totalc = totalv * 2;
int xval = coords[totalc - 2];
int yval = coords[totalc - 1];
int end = totalc;
int pointer = 1;
if ((yval >= wherey) != (coords[pointer] >= wherey))
{
if ((xval >= wherex) == (coords[0] >= wherex))
{
intersects += (xval >= wherex) ? 1 : 0;
}
else
{
intersects += ((xval - (yval - wherey) *
(coords[0] - xval) /
(coords[pointer] - yval)) >= wherex) ? 1 : 0;
}
}
while (pointer < end)
{
yval = coords[pointer];
pointer += 2;
if (yval >= wherey)
{
while ((pointer < end) && (coords[pointer] >= wherey))
{
pointer += 2;
}
if (pointer >= end)
{
break;
}
if ((coords[pointer - 3] >= wherex) ==
(coords[pointer - 1] >= wherex)) {
intersects += (coords[pointer - 3] >= wherex) ? 1 : 0;
}
else
{
intersects +=
((coords[pointer - 3] - (coords[pointer - 2] - wherey) *
(coords[pointer - 1] - coords[pointer - 3]) /
(coords[pointer] - coords[pointer - 2])) >= wherex) ? 1 : 0;
}
}
else
{
while ((pointer < end) && (coords[pointer] < wherey))
{
pointer += 2;
}
if (pointer >= end)
{
break;
}
if ((coords[pointer - 3] >= wherex) ==
(coords[pointer - 1] >= wherex))
{
intersects += (coords[pointer - 3] >= wherex) ? 1 : 0;
}
else
{
intersects +=
((coords[pointer - 3] - (coords[pointer - 2] - wherey) *
(coords[pointer - 1] - coords[pointer - 3]) /
(coords[pointer] - coords[pointer - 2])) >= wherex) ? 1 : 0;
}
}
}
if ((intersects & 1) != 0)
{
return m_Link;
}
}
}
break;
}
if (m_Next)
{
wxHtmlImageMapAreaCell *a = (wxHtmlImageMapAreaCell*)m_Next;
return a->GetLink( x, y );
}
return NULL;
}
//--------------------------------------------------------------------------------
// wxHtmlImageMapCell
// 0-width, 0-height cell that represents map from imagemaps
// it is always placed before wxHtmlImageMapAreaCells
// It responds to Find(wxHTML_COND_ISIMAGEMAP)
//--------------------------------------------------------------------------------
class wxHtmlImageMapCell : public wxHtmlCell
{
public:
wxHtmlImageMapCell( wxString &name );
protected:
wxString m_Name;
public:
virtual wxHtmlLinkInfo *GetLink( int x = 0, int y = 0 ) const;
virtual const wxHtmlCell *Find( int cond, const void *param ) const;
};
wxHtmlImageMapCell::wxHtmlImageMapCell( wxString &name )
{
m_Name = name ;
}
wxHtmlLinkInfo *wxHtmlImageMapCell::GetLink( int x, int y ) const
{
wxHtmlImageMapAreaCell *a = (wxHtmlImageMapAreaCell*)m_Next;
if (a)
return a->GetLink( x, y );
return wxHtmlCell::GetLink( x, y );
}
const wxHtmlCell *wxHtmlImageMapCell::Find( int cond, const void *param ) const
{
if (cond == wxHTML_COND_ISIMAGEMAP)
{
if (m_Name == *((wxString*)(param)))
return this;
}
return wxHtmlCell::Find(cond, param);
}
//--------------------------------------------------------------------------------
// wxHtmlImageCell
// Image/bitmap
//--------------------------------------------------------------------------------
class wxHtmlImageCell : public wxHtmlCell
{
public:
wxHtmlImageCell(wxWindow *window,
wxFSFile *input, int w = -1, int h = -1,
double scale = 1.0, int align = wxHTML_ALIGN_BOTTOM,
const wxString& mapname = wxEmptyString);
~wxHtmlImageCell();
void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2);
virtual wxHtmlLinkInfo *GetLink(int x = 0, int y = 0) const;
void SetImage(const wxImage& img);
#if wxUSE_GIF && wxUSE_TIMER
void AdvanceAnimation(wxTimer *timer);
virtual void Layout(int w);
#endif
private:
wxBitmap *m_bitmap;
int m_bmpW, m_bmpH;
bool m_showFrame:1;
wxScrolledWindow *m_window;
#if wxUSE_GIF && wxUSE_TIMER
wxGIFDecoder *m_gifDecoder;
wxTimer *m_gifTimer;
int m_physX, m_physY;
#endif
double m_scale;
wxHtmlImageMapCell *m_imageMap;
wxString m_mapName;
DECLARE_NO_COPY_CLASS(wxHtmlImageCell)
};
#if wxUSE_GIF && wxUSE_TIMER
class wxGIFTimer : public wxTimer
{
public:
wxGIFTimer(wxHtmlImageCell *cell) : m_cell(cell) {}
virtual void Notify()
{
m_cell->AdvanceAnimation(this);
}
private:
wxHtmlImageCell *m_cell;
DECLARE_NO_COPY_CLASS(wxGIFTimer)
};
#endif
//----------------------------------------------------------------------------
// wxHtmlImageCell
//----------------------------------------------------------------------------
wxHtmlImageCell::wxHtmlImageCell(wxWindow *window, wxFSFile *input,
int w, int h, double scale, int align,
const wxString& mapname) : wxHtmlCell()
{
m_window = window ? wxStaticCast(window, wxScrolledWindow) : NULL;
m_scale = scale;
m_showFrame = FALSE;
m_bitmap = NULL;
m_bmpW = w;
m_bmpH = h;
m_imageMap = NULL;
m_mapName = mapname;
SetCanLiveOnPagebreak(FALSE);
#if wxUSE_GIF && wxUSE_TIMER
m_gifDecoder = NULL;
m_gifTimer = NULL;
m_physX = m_physY = -1;
#endif
if ( m_bmpW && m_bmpH )
{
if ( input )
{
wxInputStream *s = input->GetStream();
if ( s )
{
bool readImg = TRUE;
#if wxUSE_GIF && wxUSE_TIMER
if ( (input->GetLocation().Matches(wxT("*.gif")) ||
input->GetLocation().Matches(wxT("*.GIF"))) && m_window )
{
m_gifDecoder = new wxGIFDecoder(s, TRUE);
if ( m_gifDecoder->ReadGIF() == wxGIF_OK )
{
wxImage img;
if ( m_gifDecoder->ConvertToImage(&img) )
SetImage(img);
readImg = FALSE;
if ( m_gifDecoder->IsAnimation() )
{
m_gifTimer = new wxGIFTimer(this);
m_gifTimer->Start(m_gifDecoder->GetDelay(), TRUE);
}
else
{
wxDELETE(m_gifDecoder);
}
}
else
{
wxDELETE(m_gifDecoder);
}
}
if ( readImg )
#endif // wxUSE_GIF && wxUSE_TIMER
{
wxImage image(*s, wxBITMAP_TYPE_ANY);
if ( image.Ok() )
SetImage(image);
}
}
}
else // input==NULL, use "broken image" bitmap
{
if ( m_bmpW == -1 && m_bmpH == -1 )
{
m_bmpW = 29;
m_bmpH = 31;
}
else
{
m_showFrame = TRUE;
if ( m_bmpW == -1 ) m_bmpW = 31;
if ( m_bmpH == -1 ) m_bmpH = 33;
}
m_bitmap =
new wxBitmap(wxArtProvider::GetBitmap(wxART_MISSING_IMAGE));
}
}
//else: ignore the 0-sized images used sometimes on the Web pages
m_Width = (int)(scale * (double)m_bmpW);
m_Height = (int)(scale * (double)m_bmpH);
switch (align)
{
case wxHTML_ALIGN_TOP :
m_Descent = m_Height;
break;
case wxHTML_ALIGN_CENTER :
m_Descent = m_Height / 2;
break;
case wxHTML_ALIGN_BOTTOM :
default :
m_Descent = 0;
break;
}
}
void wxHtmlImageCell::SetImage(const wxImage& img)
{
if ( img.Ok() )
{
delete m_bitmap;
int ww, hh;
ww = img.GetWidth();
hh = img.GetHeight();
if ( m_bmpW == -1 )
m_bmpW = ww;
if ( m_bmpH == -1 )
m_bmpH = hh;
if ((m_bmpW != ww) || (m_bmpH != hh))
{
wxImage img2 = img.Scale(m_bmpW, m_bmpH);
m_bitmap = new wxBitmap(img2);
}
else
m_bitmap = new wxBitmap(img);
}
}
#if wxUSE_GIF && wxUSE_TIMER
void wxHtmlImageCell::AdvanceAnimation(wxTimer *timer)
{
wxImage img;
m_gifDecoder->GoNextFrame(TRUE);
if ( m_physX == -1 )
{
m_physX = m_physY = 0;
for (wxHtmlCell *cell = this; cell; cell = cell->GetParent())
{
m_physX += cell->GetPosX();
m_physY += cell->GetPosY();
}
}
int x, y;
m_window->CalcScrolledPosition(m_physX, m_physY, &x, &y);
wxRect rect(x, y, m_Width, m_Height);
if ( m_window->GetClientRect().Intersects(rect) &&
m_gifDecoder->ConvertToImage(&img) )
{
if ( (int)m_gifDecoder->GetWidth() != m_Width ||
(int)m_gifDecoder->GetHeight() != m_Height ||
m_gifDecoder->GetLeft() != 0 || m_gifDecoder->GetTop() != 0 )
{
wxBitmap bmp(img);
wxMemoryDC dc;
dc.SelectObject(*m_bitmap);
dc.DrawBitmap(bmp, m_gifDecoder->GetLeft(), m_gifDecoder->GetTop());
}
else
SetImage(img);
m_window->Refresh(img.HasMask(), &rect);
}
timer->Start(m_gifDecoder->GetDelay(), TRUE);
}
void wxHtmlImageCell::Layout(int w)
{
wxHtmlCell::Layout(w);
m_physX = m_physY = -1;
}
#endif
wxHtmlImageCell::~wxHtmlImageCell()
{
delete m_bitmap;
#if wxUSE_GIF && wxUSE_TIMER
delete m_gifTimer;
delete m_gifDecoder;
#endif
}
void wxHtmlImageCell::Draw(wxDC& dc, int x, int y, int WXUNUSED(view_y1), int WXUNUSED(view_y2))
{
if ( m_showFrame )
{
dc.SetBrush(*wxTRANSPARENT_BRUSH);
dc.SetPen(*wxBLACK_PEN);
dc.DrawRectangle(x + m_PosX, y + m_PosY, m_Width, m_Height);
x++, y++;
}
if ( m_bitmap )
{
double us_x, us_y;
dc.GetUserScale(&us_x, &us_y);
dc.SetUserScale(us_x * m_scale, us_y * m_scale);
dc.DrawBitmap(*m_bitmap, (int) ((x + m_PosX) / m_scale),
(int) ((y + m_PosY) / m_scale), TRUE);
dc.SetUserScale(us_x, us_y);
}
}
wxHtmlLinkInfo *wxHtmlImageCell::GetLink( int x, int y ) const
{
if (m_mapName.IsEmpty())
return wxHtmlCell::GetLink( x, y );
if (!m_imageMap)
{
wxHtmlContainerCell *p, *op;
op = p = GetParent();
while (p)
{
op = p;
p = p->GetParent();
}
p = op;
wxHtmlCell *cell = (wxHtmlCell*)p->Find(wxHTML_COND_ISIMAGEMAP,
(const void*)(&m_mapName));
if (!cell)
{
((wxString&)m_mapName).Clear();
return wxHtmlCell::GetLink( x, y );
}
{ // dirty hack, ask Joel why he fills m_ImageMap in this place
// THE problem is that we're in const method and we can't modify m_ImageMap
wxHtmlImageMapCell **cx = (wxHtmlImageMapCell**)(&m_imageMap);
*cx = (wxHtmlImageMapCell*)cell;
}
}
return m_imageMap->GetLink(x, y);
}
//--------------------------------------------------------------------------------
// tag handler
//--------------------------------------------------------------------------------
TAG_HANDLER_BEGIN(IMG, "IMG,MAP,AREA")
TAG_HANDLER_PROC(tag)
{
if (tag.GetName() == wxT("IMG"))
{
if (tag.HasParam(wxT("SRC")))
{
int w = -1, h = -1;
int al;
wxFSFile *str;
wxString tmp = tag.GetParam(wxT("SRC"));
wxString mn = wxEmptyString;
str = m_WParser->OpenURL(wxHTML_URL_IMAGE, tmp);
if (tag.HasParam(wxT("WIDTH")))
tag.GetParamAsInt(wxT("WIDTH"), &w);
if (tag.HasParam(wxT("HEIGHT")))
tag.GetParamAsInt(wxT("HEIGHT"), &h);
al = wxHTML_ALIGN_BOTTOM;
if (tag.HasParam(wxT("ALIGN")))
{
wxString alstr = tag.GetParam(wxT("ALIGN"));
alstr.MakeUpper(); // for the case alignment was in ".."
if (alstr == wxT("TEXTTOP"))
al = wxHTML_ALIGN_TOP;
else if ((alstr == wxT("CENTER")) || (alstr == wxT("ABSCENTER")))
al = wxHTML_ALIGN_CENTER;
}
if (tag.HasParam(wxT("USEMAP")))
{
mn = tag.GetParam( wxT("USEMAP") );
if (mn.GetChar(0) == wxT('#'))
{
mn = mn.Mid( 1 );
}
}
wxHtmlImageCell *cel = new wxHtmlImageCell(
m_WParser->GetWindow(),
str, w, h,
m_WParser->GetPixelScale(),
al, mn);
cel->SetLink(m_WParser->GetLink());
cel->SetId(tag.GetParam(wxT("id"))); // may be empty
m_WParser->GetContainer()->InsertCell(cel);
if (str)
delete str;
}
}
if (tag.GetName() == wxT("MAP"))
{
m_WParser->CloseContainer();
m_WParser->OpenContainer();
if (tag.HasParam(wxT("NAME")))
{
wxString tmp = tag.GetParam(wxT("NAME"));
wxHtmlImageMapCell *cel = new wxHtmlImageMapCell( tmp );
m_WParser->GetContainer()->InsertCell( cel );
}
ParseInner( tag );
m_WParser->CloseContainer();
m_WParser->OpenContainer();
}
if (tag.GetName() == wxT("AREA"))
{
if (tag.HasParam(wxT("SHAPE")))
{
wxString tmp = tag.GetParam(wxT("SHAPE"));
wxString coords = wxEmptyString;
tmp.MakeUpper();
wxHtmlImageMapAreaCell *cel = NULL;
if (tag.HasParam(wxT("COORDS")))
{
coords = tag.GetParam(wxT("COORDS"));
}
if (tmp == wxT("POLY"))
{
cel = new wxHtmlImageMapAreaCell( wxHtmlImageMapAreaCell::POLY, coords, m_WParser->GetPixelScale() );
}
else if (tmp == wxT("CIRCLE"))
{
cel = new wxHtmlImageMapAreaCell( wxHtmlImageMapAreaCell::CIRCLE, coords, m_WParser->GetPixelScale() );
}
else if (tmp == wxT("RECT"))
{
cel = new wxHtmlImageMapAreaCell( wxHtmlImageMapAreaCell::RECT, coords, m_WParser->GetPixelScale() );
}
if (cel != NULL && tag.HasParam(wxT("HREF")))
{
wxString tmp = tag.GetParam(wxT("HREF"));
wxString target = wxEmptyString;
if (tag.HasParam(wxT("TARGET"))) target = tag.GetParam(wxT("TARGET"));
cel->SetLink( wxHtmlLinkInfo(tmp, target));
}
if (cel != NULL) m_WParser->GetContainer()->InsertCell( cel );
}
}
return FALSE;
}
TAG_HANDLER_END(IMG)
TAGS_MODULE_BEGIN(Image)
TAGS_MODULE_ADD(IMG)
TAGS_MODULE_END(Image)
#endif

View File

@@ -1,369 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: m_layout.cpp
// Purpose: wxHtml module for basic paragraphs/layout handling
// Author: Vaclav Slavik
// RCS-ID: $Id$
// Copyright: (c) 1999 Vaclav Slavik
// Licence: wxWindows Licence
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation
#endif
#include "wx/wxprec.h"
#include "wx/defs.h"
#if wxUSE_HTML && wxUSE_STREAMS
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WXPRECOMP
#endif
#include "wx/html/forcelnk.h"
#include "wx/html/m_templ.h"
#include "wx/html/htmlwin.h"
FORCE_LINK_ME(m_layout)
#include <stdlib.h> // bsearch()
//-----------------------------------------------------------------------------
// wxHtmlPageBreakCell
//-----------------------------------------------------------------------------
// Since html isn't a page-layout language, it doesn't support page
// page breaks directly--that requires CSS2 support. But a page-break
// facility is handy, and has been requested more than once on the
// mailing lists. This wxHtml tag handler implements just enough of
// CSS2 to support a page break by recognizing only
// <div style="page-break-before:always">
//
// wxHtml maintains page breaks in wxHtmlPrintout::m_PageBreaks. The
// tag handler below adds appropriate offsets to that array member.
// wxHtmlDCRenderer::Render() accesses that array and makes a new page
// begin after each page-break tag.
// The page-break handler does all its work in AdjustPagebreak(). For
// all tag handlers, that function adjusts the page-break position.
// For other tags, it determines whether the html element can fit on
// the remainder of the page; if it cannot fit, but must not be split,
// then the function moves the page break provided in the argument up,
// and returns 'true' to inform the caller that the argument was
// modified.
//
// Due to its special purpose, the page-break facility differs from
// other tags. It takes up no space, but it behaves as though there is
// never enough room to fit it on the remainder of the page--it always
// forces a page break. Therefore, unlike other elements that trigger
// a page break, it would never 'fit' on the following page either.
// Therefore it's necessary to compare each pagebreak candidate to the
// array wxHtmlPrintout::m_PageBreaks of pagebreaks already set, and
// set a new one only if it's not in that array.
class WXDLLEXPORT wxHtmlPageBreakCell : public wxHtmlCell
{
public:
wxHtmlPageBreakCell() {}
bool AdjustPagebreak(int* pagebreak, int* known_pagebreaks = NULL, int number_of_pages = 0) const;
private:
DECLARE_NO_COPY_CLASS(wxHtmlPageBreakCell)
};
// Comparison routine for bsearch into an int* array of pagebreaks.
static int integer_compare(void const* i0, void const* i1)
{
return *(int*)i0 - *(int*)i1;
}
bool wxHtmlPageBreakCell::AdjustPagebreak(int* pagebreak, int* known_pagebreaks, int number_of_pages) const
{
// When we are counting pages, 'known_pagebreaks' is non-NULL.
// That's the only time we change 'pagebreak'. Otherwise, pages
// were already counted, 'known_pagebreaks' is NULL, and we don't
// do anything except return FALSE.
//
// We also simply return FALSE if the 'pagebreak' argument is
// less than (vertically above) or the same as the current
// vertical position. Otherwise we'd be setting a pagebreak above
// the current cell, which is incorrect, or duplicating a
// pagebreak that has already been set.
if(NULL == known_pagebreaks || *pagebreak <= m_PosY)
{
return FALSE;
}
// m_PosY is only the vertical offset from the parent. The pagebreak
// required here is the total page offset, so m_PosY must be added
// to the parent's offset and height.
int total_height = m_PosY + GetParent()->GetPosY() + GetParent()->GetHeight();
// Search the array of pagebreaks to see whether we've already set
// a pagebreak here. The standard bsearch() function is appropriate
// because the array of pagebreaks through known_pagebreaks[number_of_pages]
// is known to be sorted in strictly increasing order. '1 + number_of_pages'
// is used as a bsearch() argument because the array contains a leading
// zero plus one element for each page.
int* where = (int*) bsearch(&total_height, known_pagebreaks,
1 + number_of_pages, sizeof(int),
integer_compare);
// Add a pagebreak only if there isn't one already set here.
if(NULL != where)
{
return FALSE;
}
else
{
*pagebreak = m_PosY;
return TRUE;
}
}
TAG_HANDLER_BEGIN(P, "P")
TAG_HANDLER_PROC(tag)
{
if (m_WParser->GetContainer()->GetFirstCell() != NULL)
{
m_WParser->CloseContainer();
m_WParser->OpenContainer();
}
m_WParser->GetContainer()->SetIndent(m_WParser->GetCharHeight(), wxHTML_INDENT_TOP);
m_WParser->GetContainer()->SetAlign(tag);
return FALSE;
}
TAG_HANDLER_END(P)
TAG_HANDLER_BEGIN(BR, "BR")
TAG_HANDLER_PROC(tag)
{
int al = m_WParser->GetContainer()->GetAlignHor();
wxHtmlContainerCell *c;
m_WParser->CloseContainer();
c = m_WParser->OpenContainer();
c->SetAlignHor(al);
c->SetAlign(tag);
c->SetMinHeight(m_WParser->GetCharHeight());
return FALSE;
}
TAG_HANDLER_END(BR)
TAG_HANDLER_BEGIN(CENTER, "CENTER")
TAG_HANDLER_PROC(tag)
{
int old = m_WParser->GetAlign();
wxHtmlContainerCell *c = m_WParser->GetContainer();
m_WParser->SetAlign(wxHTML_ALIGN_CENTER);
if (c->GetFirstCell() != NULL)
{
m_WParser->CloseContainer();
m_WParser->OpenContainer();
}
else
c->SetAlignHor(wxHTML_ALIGN_CENTER);
if (tag.HasEnding())
{
ParseInner(tag);
m_WParser->SetAlign(old);
if (c->GetFirstCell() != NULL)
{
m_WParser->CloseContainer();
m_WParser->OpenContainer();
}
else
c->SetAlignHor(old);
return TRUE;
}
else return FALSE;
}
TAG_HANDLER_END(CENTER)
TAG_HANDLER_BEGIN(DIV, "DIV")
TAG_HANDLER_PROC(tag)
{
if(tag.HasParam(wxT("STYLE")))
{
if(tag.GetParam(wxT("STYLE")).IsSameAs(wxT("PAGE-BREAK-BEFORE:ALWAYS"), FALSE))
{
m_WParser->CloseContainer();
m_WParser->OpenContainer()->InsertCell(new wxHtmlPageBreakCell);
m_WParser->CloseContainer();
m_WParser->OpenContainer();
return FALSE;
}
else
{
// Treat other STYLE parameters here when they're supported.
return FALSE;
}
}
else if(tag.HasParam(wxT("ALIGN")))
{
int old = m_WParser->GetAlign();
wxHtmlContainerCell *c = m_WParser->GetContainer();
if (c->GetFirstCell() != NULL)
{
m_WParser->CloseContainer();
m_WParser->OpenContainer();
c = m_WParser->GetContainer();
c->SetAlign(tag);
m_WParser->SetAlign(c->GetAlignHor());
}
else
{
c->SetAlign(tag);
m_WParser->SetAlign(c->GetAlignHor());
}
ParseInner(tag);
m_WParser->SetAlign(old);
if (c->GetFirstCell() != NULL)
{
m_WParser->CloseContainer();
m_WParser->OpenContainer();
}
else
c->SetAlignHor(old);
return TRUE;
}
else
{
return FALSE;
}
}
TAG_HANDLER_END(DIV)
TAG_HANDLER_BEGIN(TITLE, "TITLE")
TAG_HANDLER_PROC(tag)
{
if (m_WParser->GetWindow())
{
wxHtmlWindow *wfr = (wxHtmlWindow*)(m_WParser->GetWindow());
if (wfr)
{
const wxString& src = *m_WParser->GetSource();
wfr->OnSetTitle(src.Mid(tag.GetBeginPos(),
tag.GetEndPos1()-tag.GetBeginPos()));
}
}
return TRUE;
}
TAG_HANDLER_END(TITLE)
TAG_HANDLER_BEGIN(BODY, "BODY")
TAG_HANDLER_PROC(tag)
{
wxColour clr;
if (tag.GetParamAsColour(wxT("TEXT"), &clr))
{
m_WParser->SetActualColor(clr);
m_WParser->GetContainer()->InsertCell(new wxHtmlColourCell(clr));
}
if (tag.GetParamAsColour(wxT("LINK"), &clr))
m_WParser->SetLinkColor(clr);
if (tag.GetParamAsColour(wxT("BGCOLOR"), &clr))
{
m_WParser->GetContainer()->InsertCell(
new wxHtmlColourCell(clr, wxHTML_CLR_BACKGROUND));
if (m_WParser->GetWindow() != NULL)
m_WParser->GetWindow()->SetBackgroundColour(clr);
}
return FALSE;
}
TAG_HANDLER_END(BODY)
TAG_HANDLER_BEGIN(BLOCKQUOTE, "BLOCKQUOTE")
TAG_HANDLER_PROC(tag)
{
wxHtmlContainerCell *c;
m_WParser->CloseContainer();
c = m_WParser->OpenContainer();
if (c->GetAlignHor() == wxHTML_ALIGN_RIGHT)
c->SetIndent(5 * m_WParser->GetCharWidth(), wxHTML_INDENT_RIGHT);
else
c->SetIndent(5 * m_WParser->GetCharWidth(), wxHTML_INDENT_LEFT);
c->SetIndent(m_WParser->GetCharHeight(), wxHTML_INDENT_TOP);
m_WParser->OpenContainer();
ParseInner(tag);
c = m_WParser->CloseContainer();
c->SetIndent(m_WParser->GetCharHeight(), wxHTML_INDENT_BOTTOM);
m_WParser->CloseContainer();
m_WParser->OpenContainer();
return TRUE;
}
TAG_HANDLER_END(BLOCKQUOTE)
// Tag handler for tags that we have to ignore, otherwise non-text data
// would show up as text:
TAG_HANDLER_BEGIN(DoNothing, "SCRIPT")
TAG_HANDLER_PROC(tag)
{
return true;
}
TAG_HANDLER_END(DoNothing)
TAGS_MODULE_BEGIN(Layout)
TAGS_MODULE_ADD(P)
TAGS_MODULE_ADD(BR)
TAGS_MODULE_ADD(CENTER)
TAGS_MODULE_ADD(DIV)
TAGS_MODULE_ADD(TITLE)
TAGS_MODULE_ADD(BODY)
TAGS_MODULE_ADD(BLOCKQUOTE)
TAGS_MODULE_ADD(DoNothing)
TAGS_MODULE_END(Layout)
#endif

View File

@@ -1,98 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: m_links.cpp
// Purpose: wxHtml module for links & anchors
// Author: Vaclav Slavik
// RCS-ID: $Id$
// Copyright: (c) 1999 Vaclav Slavik
// Licence: wxWindows Licence
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation
#endif
#include "wx/wxprec.h"
#include "wx/defs.h"
#if wxUSE_HTML && wxUSE_STREAMS
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WXPRECOMP
#endif
#include "wx/html/forcelnk.h"
#include "wx/html/m_templ.h"
FORCE_LINK_ME(m_links)
class wxHtmlAnchorCell : public wxHtmlCell
{
private:
wxString m_AnchorName;
public:
wxHtmlAnchorCell(const wxString& name) : wxHtmlCell() {m_AnchorName = name;}
virtual const wxHtmlCell* Find(int condition, const void* param) const
{
if ((condition == wxHTML_COND_ISANCHOR) && (m_AnchorName == (*((const wxString*)param))))
return this;
else
return wxHtmlCell::Find(condition, param);
}
};
TAG_HANDLER_BEGIN(A, "A")
TAG_HANDLER_PROC(tag)
{
if (tag.HasParam( wxT("NAME") ))
{
m_WParser->GetContainer()->InsertCell(new wxHtmlAnchorCell(tag.GetParam( wxT("NAME") )));
}
if (tag.HasParam( wxT("HREF") ))
{
wxHtmlLinkInfo oldlnk = m_WParser->GetLink();
wxColour oldclr = m_WParser->GetActualColor();
int oldund = m_WParser->GetFontUnderlined();
wxString name(tag.GetParam( wxT("HREF") )), target;
if (tag.HasParam( wxT("TARGET") )) target = tag.GetParam( wxT("TARGET") );
m_WParser->SetActualColor(m_WParser->GetLinkColor());
m_WParser->GetContainer()->InsertCell(new wxHtmlColourCell(m_WParser->GetLinkColor()));
m_WParser->SetFontUnderlined(TRUE);
m_WParser->GetContainer()->InsertCell(new wxHtmlFontCell(m_WParser->CreateCurrentFont()));
m_WParser->SetLink(wxHtmlLinkInfo(name, target));
ParseInner(tag);
m_WParser->SetLink(oldlnk);
m_WParser->SetFontUnderlined(oldund);
m_WParser->GetContainer()->InsertCell(new wxHtmlFontCell(m_WParser->CreateCurrentFont()));
m_WParser->SetActualColor(oldclr);
m_WParser->GetContainer()->InsertCell(new wxHtmlColourCell(oldclr));
return TRUE;
}
else return FALSE;
}
TAG_HANDLER_END(A)
TAGS_MODULE_BEGIN(Links)
TAGS_MODULE_ADD(A)
TAGS_MODULE_END(Links)
#endif

View File

@@ -1,170 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: m_list.cpp
// Purpose: wxHtml module for lists
// Author: Vaclav Slavik
// RCS-ID: $Id$
// Copyright: (c) 1999 Vaclav Slavik
// Licence: wxWindows Licence
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation
#endif
#include "wx/wxprec.h"
#include "wx/defs.h"
#if wxUSE_HTML && wxUSE_STREAMS
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WXPRECOMP
#include "wx/brush.h"
#include "wx/dc.h"
#endif
#include "wx/html/forcelnk.h"
#include "wx/html/m_templ.h"
#include "wx/html/htmlcell.h"
FORCE_LINK_ME(m_list)
//-----------------------------------------------------------------------------
// wxHtmlListmarkCell
//-----------------------------------------------------------------------------
class wxHtmlListmarkCell : public wxHtmlCell
{
private:
wxBrush m_Brush;
public:
wxHtmlListmarkCell(wxDC *dc, const wxColour& clr);
void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2);
};
wxHtmlListmarkCell::wxHtmlListmarkCell(wxDC* dc, const wxColour& clr) : wxHtmlCell(), m_Brush(clr, wxSOLID)
{
m_Width = dc->GetCharHeight();
m_Height = dc->GetCharHeight();
m_Descent = 0;
}
void wxHtmlListmarkCell::Draw(wxDC& dc, int x, int y, int WXUNUSED(view_y1), int WXUNUSED(view_y2))
{
dc.SetBrush(m_Brush);
dc.DrawEllipse(x + m_PosX + m_Width / 3, y + m_PosY + m_Height / 3,
(m_Width / 3), (m_Width / 3));
}
//-----------------------------------------------------------------------------
// The list handler:
//-----------------------------------------------------------------------------
TAG_HANDLER_BEGIN(OLULLI, "OL,UL,LI")
TAG_HANDLER_VARS
int m_Numbering;
// this is number of actual item of list or 0 for dots
TAG_HANDLER_CONSTR(OLULLI)
{
m_Numbering = 0;
}
TAG_HANDLER_PROC(tag)
{
wxHtmlContainerCell *c;
// List Item:
if (tag.GetName() == wxT("LI"))
{
m_WParser->GetContainer()->SetIndent(0, wxHTML_INDENT_TOP);
// this is to prevent indetation in <li><p> case
m_WParser->CloseContainer();
m_WParser->CloseContainer();
c = m_WParser->OpenContainer();
c->SetWidthFloat(2 * m_WParser->GetCharWidth(), wxHTML_UNITS_PIXELS);
if (m_Numbering == 0)
{
// Centering gives more space after the bullet
c->SetAlignHor(wxHTML_ALIGN_CENTER);
c->InsertCell(new wxHtmlListmarkCell(m_WParser->GetDC(), m_WParser->GetActualColor()));
}
else
{
c->SetAlignHor(wxHTML_ALIGN_RIGHT);
wxString mark;
mark.Printf(wxT("%i."), m_Numbering);
c->InsertCell(new wxHtmlWordCell(mark, *(m_WParser->GetDC())));
}
m_WParser->CloseContainer();
c = m_WParser->OpenContainer();
c->SetIndent(m_WParser->GetCharWidth() / 4, wxHTML_INDENT_LEFT);
c->SetWidthFloat(-2 * m_WParser->GetCharWidth(), wxHTML_UNITS_PIXELS);
m_WParser->OpenContainer();
if (m_Numbering != 0) m_Numbering++;
return FALSE;
}
// Begin of List (not-numbered): "UL", "OL"
else
{
int oldnum = m_Numbering;
if (tag.GetName() == wxT("UL")) m_Numbering = 0;
else m_Numbering = 1;
c = m_WParser->GetContainer();
if (c->GetFirstCell() != NULL)
{
m_WParser->CloseContainer();
m_WParser->OpenContainer();
c = m_WParser->GetContainer();
}
c->SetAlignHor(wxHTML_ALIGN_LEFT);
c->SetIndent(2 * m_WParser->GetCharWidth(), wxHTML_INDENT_LEFT);
m_WParser->OpenContainer()->SetAlignVer(wxHTML_ALIGN_TOP);
m_WParser->OpenContainer();
m_WParser->OpenContainer();
ParseInner(tag);
m_WParser->GetContainer()->SetIndent(0, wxHTML_INDENT_TOP);
// this is to prevent indetation in <li><p> case
m_WParser->CloseContainer();
m_WParser->CloseContainer();
m_WParser->CloseContainer();
m_WParser->CloseContainer();
m_WParser->OpenContainer();
m_Numbering = oldnum;
return TRUE;
}
}
TAG_HANDLER_END(OLULLI)
TAGS_MODULE_BEGIN(List)
TAGS_MODULE_ADD(OLULLI)
TAGS_MODULE_END(List)
#endif

View File

@@ -1,130 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: m_pre.cpp
// Purpose: wxHtml module for <PRE> ... </PRE> tag (code citation)
// Author: Vaclav Slavik
// RCS-ID: $Id$
// Copyright: (c) 1999 Vaclav Slavik
// Licence: wxWindows Licence
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation
#endif
#include "wx/wxprec.h"
#include "wx/defs.h"
#if wxUSE_HTML && wxUSE_STREAMS
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WXPRECOMP
#endif
#include "wx/html/forcelnk.h"
#include "wx/html/m_templ.h"
#include "wx/html/htmlcell.h"
#include "wx/tokenzr.h"
#include "wx/encconv.h"
FORCE_LINK_ME(m_pre)
// replaces '\t', ' ' and '\n' with HTML markup:
static wxString LINKAGEMODE HtmlizeWhitespaces(const wxString& str)
{
wxString out;
size_t i = 0, j = 0, len = str.Len();
for (i = 0; i < len; i++)
{
switch (str[i])
{
case wxT('<'):
while (i < len && str[i] != wxT('>'))
out << str[i++];
out << wxT('>');
break;
case wxT(' '):
out << wxT("&nbsp;");
break;
case wxT('\n'):
out << wxT("<br>");
break;
case wxT('\t'):
for (j = 8 - i%8; j > 0; j--) out << wxT("&nbsp;");
break;
default:
out << str[i];
break;
}
}
return out;
}
//-----------------------------------------------------------------------------
// The list handler:
//-----------------------------------------------------------------------------
TAG_HANDLER_BEGIN(PRE, "PRE")
TAG_HANDLER_PROC(tag)
{
wxHtmlContainerCell *c;
int fixed = m_WParser->GetFontFixed(),
italic = m_WParser->GetFontItalic(),
underlined = m_WParser->GetFontUnderlined(),
bold = m_WParser->GetFontBold(),
fsize = m_WParser->GetFontSize();
c = m_WParser->GetContainer();
m_WParser->SetFontUnderlined(FALSE);
m_WParser->SetFontBold(FALSE);
m_WParser->SetFontItalic(FALSE);
m_WParser->SetFontFixed(TRUE);
m_WParser->SetFontSize(3);
c->InsertCell(new wxHtmlFontCell(m_WParser->CreateCurrentFont()));
m_WParser->CloseContainer();
c = m_WParser->OpenContainer();
c->SetAlignHor(wxHTML_ALIGN_LEFT);
c->SetIndent(m_WParser->GetCharHeight(), wxHTML_INDENT_TOP);
wxString srcMid =
m_WParser->GetSource()->Mid(tag.GetBeginPos(),
tag.GetEndPos1() - tag.GetBeginPos());
// It is safe to temporarily change the source being parsed,
// provided we restore the state back after parsing
m_Parser->SetSourceAndSaveState(HtmlizeWhitespaces(srcMid));
m_Parser->DoParsing();
m_Parser->RestoreState();
m_WParser->CloseContainer();
c = m_WParser->OpenContainer();
m_WParser->SetFontUnderlined(underlined);
m_WParser->SetFontBold(bold);
m_WParser->SetFontItalic(italic);
m_WParser->SetFontFixed(fixed);
m_WParser->SetFontSize(fsize);
c->InsertCell(new wxHtmlFontCell(m_WParser->CreateCurrentFont()));
return TRUE;
}
TAG_HANDLER_END(PRE)
TAGS_MODULE_BEGIN(Pre)
TAGS_MODULE_ADD(PRE)
TAGS_MODULE_END(Pre)
#endif

View File

@@ -1,51 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: m_style.cpp
// Purpose: wxHtml module for parsing <style> tag
// Author: Vaclav Slavik
// RCS-ID: $Id$
// Copyright: (c) 2002 Vaclav Slavik
// Licence: wxWindows Licence
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation
#endif
#include "wx/wxprec.h"
#include "wx/defs.h"
#if wxUSE_HTML && wxUSE_STREAMS
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WXPRECOMP
#endif
#include "wx/html/forcelnk.h"
#include "wx/html/m_templ.h"
FORCE_LINK_ME(m_style)
TAG_HANDLER_BEGIN(STYLE, "STYLE")
TAG_HANDLER_PROC(WXUNUSED(tag))
{
// VS: Ignore styles for now. We must have this handler present,
// because CSS style text would be rendered verbatim otherwise
return TRUE;
}
TAG_HANDLER_END(STYLE)
TAGS_MODULE_BEGIN(StyleTag)
TAGS_MODULE_ADD(STYLE)
TAGS_MODULE_END(StyleTag)
#endif

View File

@@ -1,623 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: m_tables.cpp
// Purpose: wxHtml module for tables
// Author: Vaclav Slavik
// RCS-ID: $Id$
// Copyright: (c) 1999 Vaclav Slavik
// Licence: wxWindows Licence
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation
#endif
#include "wx/wxprec.h"
#include "wx/defs.h"
#if wxUSE_HTML && wxUSE_STREAMS
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WXPRECOMP
#endif
/*
REMARKS:
1. This version of m_tables doesn't support auto-layout algorithm.
This means that all columns are of same width unless explicitly specified.
*/
#include "wx/html/forcelnk.h"
#include "wx/html/m_templ.h"
#include "wx/html/htmlcell.h"
FORCE_LINK_ME(m_tables)
#define TABLE_BORDER_CLR_1 wxColour(0xC5, 0xC2, 0xC5)
#define TABLE_BORDER_CLR_2 wxColour(0x62, 0x61, 0x62)
//-----------------------------------------------------------------------------
// wxHtmlTableCell
//-----------------------------------------------------------------------------
struct colStruct
{
int width, units;
// width of the column either in pixels or percents
// ('width' is the number, 'units' determines its meaning)
int minWidth, maxWidth;
// minimal/maximal column width. This is needed by HTML 4.0
// layouting algorithm and can be determined by trying to
// layout table cells with width=1 and width=infinity
int leftpos, pixwidth, maxrealwidth;
// temporary (depends on actual width of table)
};
enum cellState
{
cellSpan,
cellUsed,
cellFree
};
struct cellStruct
{
wxHtmlContainerCell *cont;
int colspan, rowspan;
int minheight, valign;
cellState flag;
};
class wxHtmlTableCell : public wxHtmlContainerCell
{
protected:
/* These are real attributes: */
// should we draw borders or not?
bool m_HasBorders;
// number of columns; rows
int m_NumCols, m_NumRows;
// array of column information
colStruct *m_ColsInfo;
// 2D array of all cells in the table : m_CellInfo[row][column]
cellStruct **m_CellInfo;
// spaces between cells
int m_Spacing;
// cells internal indentation
int m_Padding;
private:
/* ...and these are valid only when parsing the table: */
// number of actual column (ranging from 0..m_NumCols)
int m_ActualCol, m_ActualRow;
// default values (for table and row):
wxColour m_tBkg, m_rBkg;
wxString m_tValign, m_rValign;
double m_PixelScale;
public:
wxHtmlTableCell(wxHtmlContainerCell *parent, const wxHtmlTag& tag, double pixel_scale = 1.0);
~wxHtmlTableCell();
virtual void Layout(int w);
void AddRow(const wxHtmlTag& tag);
void AddCell(wxHtmlContainerCell *cell, const wxHtmlTag& tag);
private:
// Reallocates memory to given number of cols/rows
// and changes m_NumCols/m_NumRows value to reflect this change
// NOTE! You CAN'T change m_NumCols/m_NumRows before calling this!!
void ReallocCols(int cols);
void ReallocRows(int rows);
// Computes minimal and maximal widths of columns. Needs to be called
// only once, before first Layout().
void ComputeMinMaxWidths();
DECLARE_NO_COPY_CLASS(wxHtmlTableCell)
};
wxHtmlTableCell::wxHtmlTableCell(wxHtmlContainerCell *parent, const wxHtmlTag& tag, double pixel_scale)
: wxHtmlContainerCell(parent)
{
m_PixelScale = pixel_scale;
m_HasBorders =
(tag.HasParam(wxT("BORDER")) && tag.GetParam(wxT("BORDER")) != wxT("0"));
m_ColsInfo = NULL;
m_NumCols = m_NumRows = 0;
m_CellInfo = NULL;
m_ActualCol = m_ActualRow = -1;
/* scan params: */
if (tag.HasParam(wxT("BGCOLOR")))
tag.GetParamAsColour(wxT("BGCOLOR"), &m_tBkg);
if (tag.HasParam(wxT("VALIGN")))
m_tValign = tag.GetParam(wxT("VALIGN"));
else
m_tValign = wxEmptyString;
if (!tag.GetParamAsInt(wxT("CELLSPACING"), &m_Spacing))
m_Spacing = 2;
if (!tag.GetParamAsInt(wxT("CELLPADDING"), &m_Padding))
m_Padding = 3;
m_Spacing = (int)(m_PixelScale * (double)m_Spacing);
m_Padding = (int)(m_PixelScale * (double)m_Padding);
if (m_HasBorders)
SetBorder(TABLE_BORDER_CLR_1, TABLE_BORDER_CLR_2);
}
wxHtmlTableCell::~wxHtmlTableCell()
{
if (m_ColsInfo) free(m_ColsInfo);
if (m_CellInfo)
{
for (int i = 0; i < m_NumRows; i++)
free(m_CellInfo[i]);
free(m_CellInfo);
}
}
void wxHtmlTableCell::ReallocCols(int cols)
{
int i,j;
for (i = 0; i < m_NumRows; i++)
{
m_CellInfo[i] = (cellStruct*) realloc(m_CellInfo[i], sizeof(cellStruct) * cols);
for (j = m_NumCols; j < cols; j++)
m_CellInfo[i][j].flag = cellFree;
}
m_ColsInfo = (colStruct*) realloc(m_ColsInfo, sizeof(colStruct) * cols);
for (j = m_NumCols; j < cols; j++)
{
m_ColsInfo[j].width = 0;
m_ColsInfo[j].units = wxHTML_UNITS_PERCENT;
m_ColsInfo[j].minWidth = m_ColsInfo[j].maxWidth = -1;
}
m_NumCols = cols;
}
void wxHtmlTableCell::ReallocRows(int rows)
{
m_CellInfo = (cellStruct**) realloc(m_CellInfo, sizeof(cellStruct*) * rows);
for (int row = m_NumRows; row < rows ; row++)
{
if (m_NumCols == 0)
m_CellInfo[row] = NULL;
else
{
m_CellInfo[row] = (cellStruct*) malloc(sizeof(cellStruct) * m_NumCols);
for (int col = 0; col < m_NumCols; col++)
m_CellInfo[row][col].flag = cellFree;
}
}
m_NumRows = rows;
}
void wxHtmlTableCell::AddRow(const wxHtmlTag& tag)
{
m_ActualCol = -1;
// VS: real allocation of row entry is done in AddCell in order
// to correctly handle empty rows (i.e. "<tr></tr>")
// m_ActualCol == -1 indicates that AddCell has to allocate new row.
// scan params:
m_rBkg = m_tBkg;
if (tag.HasParam(wxT("BGCOLOR")))
tag.GetParamAsColour(wxT("BGCOLOR"), &m_rBkg);
if (tag.HasParam(wxT("VALIGN")))
m_rValign = tag.GetParam(wxT("VALIGN"));
else
m_rValign = m_tValign;
}
void wxHtmlTableCell::AddCell(wxHtmlContainerCell *cell, const wxHtmlTag& tag)
{
// Is this cell in new row?
// VS: we can't do it in AddRow, see my comment there
if (m_ActualCol == -1)
{
if (m_ActualRow + 1 > m_NumRows - 1)
ReallocRows(m_ActualRow + 2);
m_ActualRow++;
}
// cells & columns:
do
{
m_ActualCol++;
} while ((m_ActualCol < m_NumCols) &&
(m_CellInfo[m_ActualRow][m_ActualCol].flag != cellFree));
if (m_ActualCol > m_NumCols - 1)
ReallocCols(m_ActualCol + 1);
int r = m_ActualRow, c = m_ActualCol;
m_CellInfo[r][c].cont = cell;
m_CellInfo[r][c].colspan = 1;
m_CellInfo[r][c].rowspan = 1;
m_CellInfo[r][c].flag = cellUsed;
m_CellInfo[r][c].minheight = 0;
m_CellInfo[r][c].valign = wxHTML_ALIGN_TOP;
/* scan for parameters: */
// width:
{
if (tag.HasParam(wxT("WIDTH")))
{
wxString wd = tag.GetParam(wxT("WIDTH"));
if (wd[wd.Length()-1] == wxT('%'))
{
wxSscanf(wd.c_str(), wxT("%i%%"), &m_ColsInfo[c].width);
m_ColsInfo[c].units = wxHTML_UNITS_PERCENT;
}
else
{
wxSscanf(wd.c_str(), wxT("%i"), &m_ColsInfo[c].width);
m_ColsInfo[c].width = (int)(m_PixelScale * (double)m_ColsInfo[c].width);
m_ColsInfo[c].units = wxHTML_UNITS_PIXELS;
}
}
}
// spanning:
{
tag.GetParamAsInt(wxT("COLSPAN"), &m_CellInfo[r][c].colspan);
tag.GetParamAsInt(wxT("ROWSPAN"), &m_CellInfo[r][c].rowspan);
// VS: the standard says this about col/rowspan:
// "This attribute specifies the number of rows spanned by the
// current cell. The default value of this attribute is one ("1").
// The value zero ("0") means that the cell spans all rows from the
// current row to the last row of the table." All mainstream
// browsers act as if 0==1, though, and so does wxHTML.
if (m_CellInfo[r][c].colspan < 1)
m_CellInfo[r][c].colspan = 1;
if (m_CellInfo[r][c].rowspan < 1)
m_CellInfo[r][c].rowspan = 1;
if ((m_CellInfo[r][c].colspan > 1) || (m_CellInfo[r][c].rowspan > 1))
{
int i, j;
if (r + m_CellInfo[r][c].rowspan > m_NumRows)
ReallocRows(r + m_CellInfo[r][c].rowspan);
if (c + m_CellInfo[r][c].colspan > m_NumCols)
ReallocCols(c + m_CellInfo[r][c].colspan);
for (i = r; i < r + m_CellInfo[r][c].rowspan; i++)
for (j = c; j < c + m_CellInfo[r][c].colspan; j++)
m_CellInfo[i][j].flag = cellSpan;
m_CellInfo[r][c].flag = cellUsed;
}
}
//background color:
{
wxColour bk = m_rBkg;
if (tag.HasParam(wxT("BGCOLOR")))
tag.GetParamAsColour(wxT("BGCOLOR"), &bk);
if (bk.Ok())
cell->SetBackgroundColour(bk);
}
if (m_HasBorders)
cell->SetBorder(TABLE_BORDER_CLR_2, TABLE_BORDER_CLR_1);
// vertical alignment:
{
wxString valign;
if (tag.HasParam(wxT("VALIGN")))
valign = tag.GetParam(wxT("VALIGN"));
else
valign = m_tValign;
valign.MakeUpper();
if (valign == wxT("TOP"))
m_CellInfo[r][c].valign = wxHTML_ALIGN_TOP;
else if (valign == wxT("BOTTOM"))
m_CellInfo[r][c].valign = wxHTML_ALIGN_BOTTOM;
else m_CellInfo[r][c].valign = wxHTML_ALIGN_CENTER;
}
cell->SetIndent(m_Padding, wxHTML_INDENT_ALL, wxHTML_UNITS_PIXELS);
}
void wxHtmlTableCell::ComputeMinMaxWidths()
{
if (m_NumCols == 0 || m_ColsInfo[0].minWidth != -1) return;
int left, right, width;
for (int c = 0; c < m_NumCols; c++)
{
for (int r = 0; r < m_NumRows; r++)
{
cellStruct& cell = m_CellInfo[r][c];
if (cell.flag == cellUsed)
{
cell.cont->Layout(2*m_Padding + 1);
cell.cont->GetHorizontalConstraints(&left, &right);
width = right - left;
width -= (cell.colspan-1) * m_Spacing;
// HTML 4.0 says it is acceptable to distribute min/max
// width of spanning cells evently
width /= cell.colspan;
for (int j = 0; j < cell.colspan; j++)
if (width > m_ColsInfo[c+j].minWidth)
m_ColsInfo[c+j].minWidth = width;
}
}
}
// FIXME -- compute maxWidth as well. Not needed yet, so there's no
// point in computing it.
}
void wxHtmlTableCell::Layout(int w)
{
ComputeMinMaxWidths();
wxHtmlCell::Layout(w);
/*
WIDTH ADJUSTING :
*/
if (m_WidthFloatUnits == wxHTML_UNITS_PERCENT)
{
if (m_WidthFloat < 0) m_Width = (100 + m_WidthFloat) * w / 100;
else m_Width = m_WidthFloat * w / 100;
}
else
{
if (m_WidthFloat < 0) m_Width = w + m_WidthFloat;
else m_Width = m_WidthFloat;
}
/*
LAYOUTING :
*/
/* 1. setup columns widths: */
{
int wpix = m_Width - (m_NumCols + 1) * m_Spacing;
int i, j;
// 1a. setup fixed-width columns:
for (i = 0; i < m_NumCols; i++)
if (m_ColsInfo[i].units == wxHTML_UNITS_PIXELS)
{
m_ColsInfo[i].pixwidth = wxMax(m_ColsInfo[i].width,
m_ColsInfo[i].minWidth);
wpix -= m_ColsInfo[i].pixwidth;
}
// 1b. setup floating-width columns:
int wtemp = 0;
for (i = 0; i < m_NumCols; i++)
if ((m_ColsInfo[i].units == wxHTML_UNITS_PERCENT) && (m_ColsInfo[i].width != 0))
{
m_ColsInfo[i].pixwidth = wxMax(m_ColsInfo[i].width * wpix / 100,
m_ColsInfo[i].minWidth);
wtemp += m_ColsInfo[i].pixwidth;
}
wpix -= wtemp;
// 1c. setup defalut columns (no width specification supplied):
// NOTE! This algorithm doesn't conform to HTML standard : it assigns equal widths
// instead of optimal
for (i = j = 0; i < m_NumCols; i++)
if (m_ColsInfo[i].width == 0) j++;
for (i = 0; i < m_NumCols; i++)
if (m_ColsInfo[i].width == 0)
m_ColsInfo[i].pixwidth = wpix / j;
}
/* 2. compute positions of columns: */
{
int wpos = m_Spacing;
for (int i = 0; i < m_NumCols; i++)
{
m_ColsInfo[i].leftpos = wpos;
wpos += m_ColsInfo[i].pixwidth + m_Spacing;
}
}
/* 3. sub-layout all cells: */
{
int *ypos = new int[m_NumRows + 1];
int actcol, actrow;
int fullwid;
wxHtmlContainerCell *actcell;
ypos[0] = m_Spacing;
for (actrow = 1; actrow <= m_NumRows; actrow++) ypos[actrow] = -1;
for (actrow = 0; actrow < m_NumRows; actrow++)
{
if (ypos[actrow] == -1) ypos[actrow] = ypos[actrow-1];
// 3a. sub-layout and detect max height:
for (actcol = 0; actcol < m_NumCols; actcol++) {
if (m_CellInfo[actrow][actcol].flag != cellUsed) continue;
actcell = m_CellInfo[actrow][actcol].cont;
fullwid = 0;
for (int i = actcol; i < m_CellInfo[actrow][actcol].colspan + actcol; i++)
fullwid += m_ColsInfo[i].pixwidth;
fullwid += (m_CellInfo[actrow][actcol].colspan - 1) * m_Spacing;
actcell->SetMinHeight(m_CellInfo[actrow][actcol].minheight, m_CellInfo[actrow][actcol].valign);
actcell->Layout(fullwid);
if (ypos[actrow] + actcell->GetHeight() + m_CellInfo[actrow][actcol].rowspan * m_Spacing > ypos[actrow + m_CellInfo[actrow][actcol].rowspan])
ypos[actrow + m_CellInfo[actrow][actcol].rowspan] =
ypos[actrow] + actcell->GetHeight() + m_CellInfo[actrow][actcol].rowspan * m_Spacing;
}
}
for (actrow = 0; actrow < m_NumRows; actrow++)
{
// 3b. place cells in row & let'em all have same height:
for (actcol = 0; actcol < m_NumCols; actcol++)
{
if (m_CellInfo[actrow][actcol].flag != cellUsed) continue;
actcell = m_CellInfo[actrow][actcol].cont;
actcell->SetMinHeight(
ypos[actrow + m_CellInfo[actrow][actcol].rowspan] - ypos[actrow] - m_Spacing,
m_CellInfo[actrow][actcol].valign);
fullwid = 0;
for (int i = actcol; i < m_CellInfo[actrow][actcol].colspan + actcol; i++)
fullwid += m_ColsInfo[i].pixwidth;
fullwid += (m_CellInfo[actrow][actcol].colspan - 1) * m_Spacing;
actcell->Layout(fullwid);
actcell->SetPos(m_ColsInfo[actcol].leftpos, ypos[actrow]);
}
}
m_Height = ypos[m_NumRows];
delete[] ypos;
}
}
//-----------------------------------------------------------------------------
// The tables handler:
//-----------------------------------------------------------------------------
TAG_HANDLER_BEGIN(TABLE, "TABLE,TR,TD,TH")
TAG_HANDLER_VARS
wxHtmlTableCell* m_Table;
wxString m_tAlign, m_rAlign;
TAG_HANDLER_CONSTR(TABLE)
{
m_Table = NULL;
m_tAlign = m_rAlign = wxEmptyString;
}
TAG_HANDLER_PROC(tag)
{
wxHtmlContainerCell *c;
// new table started, backup upper-level table (if any) and create new:
if (tag.GetName() == wxT("TABLE"))
{
wxHtmlTableCell *oldt = m_Table;
wxHtmlContainerCell *oldcont;
oldcont = c = m_WParser->OpenContainer();
c->SetWidthFloat(tag, m_WParser->GetPixelScale());
m_Table = new wxHtmlTableCell(c, tag, m_WParser->GetPixelScale());
int oldAlign = m_WParser->GetAlign();
m_tAlign = wxEmptyString;
if (tag.HasParam(wxT("ALIGN")))
m_tAlign = tag.GetParam(wxT("ALIGN"));
ParseInner(tag);
m_WParser->SetAlign(oldAlign);
m_WParser->SetContainer(oldcont);
m_WParser->CloseContainer();
m_Table = oldt;
return TRUE;
}
else if (m_Table)
{
// new row in table
if (tag.GetName() == wxT("TR"))
{
m_Table->AddRow(tag);
m_rAlign = m_tAlign;
if (tag.HasParam(wxT("ALIGN")))
m_rAlign = tag.GetParam(wxT("ALIGN"));
}
// new cell
else
{
c = m_WParser->SetContainer(new wxHtmlContainerCell(m_Table));
m_Table->AddCell(c, tag);
m_WParser->OpenContainer();
if (tag.GetName() == wxT("TH")) /*header style*/
m_WParser->SetAlign(wxHTML_ALIGN_CENTER);
else
m_WParser->SetAlign(wxHTML_ALIGN_LEFT);
wxString als;
als = m_rAlign;
if (tag.HasParam(wxT("ALIGN")))
als = tag.GetParam(wxT("ALIGN"));
als.MakeUpper();
if (als == wxT("RIGHT"))
m_WParser->SetAlign(wxHTML_ALIGN_RIGHT);
else if (als == wxT("LEFT"))
m_WParser->SetAlign(wxHTML_ALIGN_LEFT);
else if (als == wxT("CENTER"))
m_WParser->SetAlign(wxHTML_ALIGN_CENTER);
m_WParser->OpenContainer();
}
}
return FALSE;
}
TAG_HANDLER_END(TABLE)
TAGS_MODULE_BEGIN(Tables)
TAGS_MODULE_ADD(TABLE)
TAGS_MODULE_END(Tables)
#endif

View File

@@ -1,519 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: winpars.cpp
// Purpose: wxHtmlParser class (generic parser)
// Author: Vaclav Slavik
// RCS-ID: $Id$
// Copyright: (c) 1999 Vaclav Slavik
// Licence: wxWindows Licence
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation "winpars.h"
#endif
#include "wx/wxprec.h"
#include "wx/defs.h"
#if wxUSE_HTML && wxUSE_STREAMS
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WXPRECOMP
#include "wx/intl.h"
#include "wx/dc.h"
#endif
#include "wx/html/htmldefs.h"
#include "wx/html/winpars.h"
#include "wx/html/htmlwin.h"
#include "wx/fontmap.h"
#include "wx/log.h"
//-----------------------------------------------------------------------------
// wxHtmlWinParser
//-----------------------------------------------------------------------------
wxList wxHtmlWinParser::m_Modules;
wxHtmlWinParser::wxHtmlWinParser(wxHtmlWindow *wnd) : wxHtmlParser()
{
m_tmpStrBuf = NULL;
m_tmpStrBufSize = 0;
m_Window = wnd;
m_Container = NULL;
m_DC = NULL;
m_CharHeight = m_CharWidth = 0;
m_UseLink = FALSE;
#if !wxUSE_UNICODE
m_EncConv = NULL;
m_InputEnc = wxFONTENCODING_ISO8859_1;
m_OutputEnc = wxFONTENCODING_DEFAULT;
#endif
{
int i, j, k, l, m;
for (i = 0; i < 2; i++)
for (j = 0; j < 2; j++)
for (k = 0; k < 2; k++)
for (l = 0; l < 2; l++)
for (m = 0; m < 7; m++)
{
m_FontsTable[i][j][k][l][m] = NULL;
m_FontsFacesTable[i][j][k][l][m] = wxEmptyString;
#if !wxUSE_UNICODE
m_FontsEncTable[i][j][k][l][m] = wxFONTENCODING_DEFAULT;
#endif
}
SetFonts(wxEmptyString, wxEmptyString, NULL);
}
// fill in wxHtmlParser's tables:
wxNode *node = m_Modules.GetFirst();
while (node)
{
wxHtmlTagsModule *mod = (wxHtmlTagsModule*) node->GetData();
mod->FillHandlersTable(this);
node = node->GetNext();
}
}
wxHtmlWinParser::~wxHtmlWinParser()
{
int i, j, k, l, m;
for (i = 0; i < 2; i++)
for (j = 0; j < 2; j++)
for (k = 0; k < 2; k++)
for (l = 0; l < 2; l++)
for (m = 0; m < 7; m++)
{
if (m_FontsTable[i][j][k][l][m] != NULL)
delete m_FontsTable[i][j][k][l][m];
}
#if !wxUSE_UNICODE
delete m_EncConv;
#endif
delete[] m_tmpStrBuf;
}
void wxHtmlWinParser::AddModule(wxHtmlTagsModule *module)
{
m_Modules.Append(module);
}
void wxHtmlWinParser::RemoveModule(wxHtmlTagsModule *module)
{
m_Modules.DeleteObject(module);
}
void wxHtmlWinParser::SetFonts(wxString normal_face, wxString fixed_face,
const int *sizes)
{
static int default_sizes[7] =
{
wxHTML_FONT_SIZE_1,
wxHTML_FONT_SIZE_2,
wxHTML_FONT_SIZE_3,
wxHTML_FONT_SIZE_4,
wxHTML_FONT_SIZE_5,
wxHTML_FONT_SIZE_6,
wxHTML_FONT_SIZE_7
};
if (sizes == NULL) sizes = default_sizes;
int i, j, k, l, m;
for (i = 0; i < 7; i++) m_FontsSizes[i] = sizes[i];
m_FontFaceFixed = fixed_face;
m_FontFaceNormal = normal_face;
#if !wxUSE_UNICODE
SetInputEncoding(m_InputEnc);
#endif
for (i = 0; i < 2; i++)
for (j = 0; j < 2; j++)
for (k = 0; k < 2; k++)
for (l = 0; l < 2; l++)
for (m = 0; m < 7; m++) {
if (m_FontsTable[i][j][k][l][m] != NULL)
{
delete m_FontsTable[i][j][k][l][m];
m_FontsTable[i][j][k][l][m] = NULL;
}
}
}
void wxHtmlWinParser::InitParser(const wxString& source)
{
wxHtmlParser::InitParser(source);
wxASSERT_MSG(m_DC != NULL, wxT("no DC assigned to wxHtmlWinParser!!"));
m_FontBold = m_FontItalic = m_FontUnderlined = m_FontFixed = FALSE;
m_FontSize = 3; //default one
CreateCurrentFont(); // we're selecting default font into
m_DC->GetTextExtent( wxT("H"), &m_CharWidth, &m_CharHeight);
/* NOTE : we're not using GetCharWidth/Height() because
of differences under X and win
*/
m_UseLink = FALSE;
m_Link = wxHtmlLinkInfo( wxT(""), wxT("") );
m_LinkColor.Set(0, 0, 0xFF);
m_ActualColor.Set(0, 0, 0);
m_Align = wxHTML_ALIGN_LEFT;
m_tmpLastWasSpace = FALSE;
OpenContainer();
OpenContainer();
#if !wxUSE_UNICODE
wxString charset = ExtractCharsetInformation(source);
if (!charset.empty())
{
wxFontEncoding enc = wxFontMapper::Get()->CharsetToEncoding(charset);
if (enc != wxFONTENCODING_SYSTEM)
SetInputEncoding(enc);
}
#endif
m_Container->InsertCell(new wxHtmlColourCell(m_ActualColor));
m_Container->InsertCell(new wxHtmlFontCell(CreateCurrentFont()));
}
void wxHtmlWinParser::DoneParser()
{
m_Container = NULL;
#if !wxUSE_UNICODE
SetInputEncoding(wxFONTENCODING_ISO8859_1); // for next call
#endif
wxHtmlParser::DoneParser();
}
wxObject* wxHtmlWinParser::GetProduct()
{
wxHtmlContainerCell *top;
CloseContainer();
OpenContainer();
top = m_Container;
while (top->GetParent()) top = top->GetParent();
return top;
}
wxFSFile *wxHtmlWinParser::OpenURL(wxHtmlURLType type,
const wxString& url) const
{
// FIXME - normalize the URL to full path before passing to
// OnOpeningURL!!
if ( m_Window )
{
wxString myurl(url);
wxHtmlOpeningStatus status;
for (;;)
{
wxString redirect;
status = m_Window->OnOpeningURL(type, myurl, &redirect);
if ( status != wxHTML_REDIRECT )
break;
myurl = redirect;
}
if ( status == wxHTML_BLOCK )
return NULL;
return GetFS()->OpenFile(myurl);
}
return wxHtmlParser::OpenURL(type, url);
}
void wxHtmlWinParser::AddText(const wxChar* txt)
{
wxHtmlCell *c;
size_t i = 0,
x,
lng = wxStrlen(txt);
register wxChar d;
int templen = 0;
wxChar nbsp = GetEntitiesParser()->GetCharForCode(160 /* nbsp */);
if (lng+1 > m_tmpStrBufSize)
{
delete[] m_tmpStrBuf;
m_tmpStrBuf = new wxChar[lng+1];
m_tmpStrBufSize = lng+1;
}
wxChar *temp = m_tmpStrBuf;
if (m_tmpLastWasSpace)
{
while ((i < lng) &&
((txt[i] == wxT('\n')) || (txt[i] == wxT('\r')) || (txt[i] == wxT(' ')) ||
(txt[i] == wxT('\t')))) i++;
}
while (i < lng)
{
x = 0;
d = temp[templen++] = txt[i];
if ((d == wxT('\n')) || (d == wxT('\r')) || (d == wxT(' ')) || (d == wxT('\t')))
{
i++, x++;
while ((i < lng) && ((txt[i] == wxT('\n')) || (txt[i] == wxT('\r')) ||
(txt[i] == wxT(' ')) || (txt[i] == wxT('\t')))) i++, x++;
}
else i++;
if (x)
{
temp[templen-1] = wxT(' ');
temp[templen] = 0;
#if 0 // VS - WHY was this here?!
if (templen == 1) continue;
#endif
templen = 0;
#if !wxUSE_UNICODE
if (m_EncConv)
m_EncConv->Convert(temp);
#endif
size_t len = wxStrlen(temp);
for (size_t j = 0; j < len; j++)
if (temp[j] == nbsp)
temp[j] = wxT(' ');
c = new wxHtmlWordCell(temp, *(GetDC()));
if (m_UseLink)
c->SetLink(m_Link);
m_Container->InsertCell(c);
m_tmpLastWasSpace = TRUE;
}
}
if (templen && (templen > 1 || temp[0] != wxT(' ')))
{
temp[templen] = 0;
#if !wxUSE_UNICODE
if (m_EncConv)
m_EncConv->Convert(temp);
#endif
size_t len = wxStrlen(temp);
for (size_t j = 0; j < len; j++)
if (temp[j] == nbsp)
temp[j] = wxT(' ');
c = new wxHtmlWordCell(temp, *(GetDC()));
if (m_UseLink)
c->SetLink(m_Link);
m_Container->InsertCell(c);
m_tmpLastWasSpace = FALSE;
}
}
wxHtmlContainerCell* wxHtmlWinParser::OpenContainer()
{
m_Container = new wxHtmlContainerCell(m_Container);
m_Container->SetAlignHor(m_Align);
m_tmpLastWasSpace = TRUE;
/* to avoid space being first character in paragraph */
return m_Container;
}
wxHtmlContainerCell* wxHtmlWinParser::SetContainer(wxHtmlContainerCell *c)
{
m_tmpLastWasSpace = TRUE;
/* to avoid space being first character in paragraph */
return m_Container = c;
}
wxHtmlContainerCell* wxHtmlWinParser::CloseContainer()
{
m_Container = m_Container->GetParent();
return m_Container;
}
void wxHtmlWinParser::SetFontSize(int s)
{
if (s < 1) s = 1;
else if (s > 7) s = 7;
m_FontSize = s;
}
wxFont* wxHtmlWinParser::CreateCurrentFont()
{
int fb = GetFontBold(),
fi = GetFontItalic(),
fu = GetFontUnderlined(),
ff = GetFontFixed(),
fs = GetFontSize() - 1 /*remap from <1;7> to <0;6>*/ ;
wxString face = ff ? m_FontFaceFixed : m_FontFaceNormal;
wxString *faceptr = &(m_FontsFacesTable[fb][fi][fu][ff][fs]);
wxFont **fontptr = &(m_FontsTable[fb][fi][fu][ff][fs]);
#if !wxUSE_UNICODE
wxFontEncoding *encptr = &(m_FontsEncTable[fb][fi][fu][ff][fs]);
#endif
if (*fontptr != NULL && (*faceptr != face
#if !wxUSE_UNICODE
|| *encptr != m_OutputEnc
#endif
))
{
delete *fontptr;
*fontptr = NULL;
}
if (*fontptr == NULL)
{
*faceptr = face;
*fontptr = new wxFont(
(int) (m_FontsSizes[fs] * m_PixelScale),
ff ? wxMODERN : wxSWISS,
fi ? wxITALIC : wxNORMAL,
fb ? wxBOLD : wxNORMAL,
fu ? TRUE : FALSE, face
#if wxUSE_UNICODE
);
#else
, m_OutputEnc);
*encptr = m_OutputEnc;
#endif
}
m_DC->SetFont(**fontptr);
return (*fontptr);
}
void wxHtmlWinParser::SetLink(const wxHtmlLinkInfo& link)
{
m_Link = link;
m_UseLink = (link.GetHref() != wxEmptyString);
}
void wxHtmlWinParser::SetFontFace(const wxString& face)
{
if (GetFontFixed()) m_FontFaceFixed = face;
else m_FontFaceNormal = face;
#if !wxUSE_UNICODE
if (m_InputEnc != wxFONTENCODING_DEFAULT)
SetInputEncoding(m_InputEnc);
#endif
}
#if !wxUSE_UNICODE
void wxHtmlWinParser::SetInputEncoding(wxFontEncoding enc)
{
m_InputEnc = m_OutputEnc = wxFONTENCODING_DEFAULT;
if (m_EncConv)
{
delete m_EncConv;
m_EncConv = NULL;
}
if (enc == wxFONTENCODING_DEFAULT) return;
wxFontEncoding altfix, altnorm;
bool availfix, availnorm;
// exact match?
availnorm = wxFontMapper::Get()->IsEncodingAvailable(enc, m_FontFaceNormal);
availfix = wxFontMapper::Get()->IsEncodingAvailable(enc, m_FontFaceFixed);
if (availnorm && availfix)
m_OutputEnc = enc;
// alternatives?
else if (wxFontMapper::Get()->GetAltForEncoding(enc, &altnorm, m_FontFaceNormal, FALSE) &&
wxFontMapper::Get()->GetAltForEncoding(enc, &altfix, m_FontFaceFixed, FALSE) &&
altnorm == altfix)
m_OutputEnc = altnorm;
// at least normal face?
else if (availnorm)
m_OutputEnc = enc;
else if (wxFontMapper::Get()->GetAltForEncoding(enc, &altnorm, m_FontFaceNormal, FALSE))
m_OutputEnc = altnorm;
// okay, let convert to ISO_8859-1, available always
else
m_OutputEnc = wxFONTENCODING_DEFAULT;
m_InputEnc = enc;
if (m_OutputEnc == wxFONTENCODING_DEFAULT)
GetEntitiesParser()->SetEncoding(wxFONTENCODING_SYSTEM);
else
GetEntitiesParser()->SetEncoding(m_OutputEnc);
if (m_InputEnc == m_OutputEnc) return;
m_EncConv = new wxEncodingConverter();
if (!m_EncConv->Init(m_InputEnc,
(m_OutputEnc == wxFONTENCODING_DEFAULT) ?
wxFONTENCODING_ISO8859_1 : m_OutputEnc,
wxCONVERT_SUBSTITUTE))
{ // total failture :-(
wxLogError(_("Failed to display HTML document in %s encoding"),
wxFontMapper::GetEncodingName(enc).c_str());
m_InputEnc = m_OutputEnc = wxFONTENCODING_DEFAULT;
delete m_EncConv;
m_EncConv = NULL;
}
}
#endif
//-----------------------------------------------------------------------------
// wxHtmlWinTagHandler
//-----------------------------------------------------------------------------
IMPLEMENT_ABSTRACT_CLASS(wxHtmlWinTagHandler, wxHtmlTagHandler)
//-----------------------------------------------------------------------------
// wxHtmlTagsModule
//-----------------------------------------------------------------------------
// NB: This is *NOT* winpars.cpp's initialization and shutdown code!!
// This module is an ancestor for tag handlers modules defined
// in m_*.cpp files with TAGS_MODULE_BEGIN...TAGS_MODULE_END construct.
//
// Do not add any winpars.cpp shutdown or initialization code to it,
// create a new module instead!
IMPLEMENT_DYNAMIC_CLASS(wxHtmlTagsModule, wxModule)
bool wxHtmlTagsModule::OnInit()
{
wxHtmlWinParser::AddModule(this);
return TRUE;
}
void wxHtmlTagsModule::OnExit()
{
wxHtmlWinParser::RemoveModule(this);
}
#endif

View File

@@ -1,83 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: xh_html.cpp
// Purpose: XRC resource for wxHtmlWindow
// Author: Bob Mitchell
// Created: 2000/03/21
// RCS-ID: $Id$
// Copyright: (c) 2000 Bob Mitchell and Verant Interactive
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation "xh_html.h"
#endif
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#include "wx/xrc/xh_html.h"
#if wxUSE_HTML
#include "wx/html/htmlwin.h"
#include "wx/filesys.h"
wxHtmlWindowXmlHandler::wxHtmlWindowXmlHandler()
: wxXmlResourceHandler()
{
XRC_ADD_STYLE(wxHW_SCROLLBAR_NEVER);
XRC_ADD_STYLE(wxHW_SCROLLBAR_AUTO);
AddWindowStyles();
}
wxObject *wxHtmlWindowXmlHandler::DoCreateResource()
{
XRC_MAKE_INSTANCE(control, wxHtmlWindow)
control->Create(m_parentAsWindow,
GetID(),
GetPosition(), GetSize(),
GetStyle(wxT("style"), wxHW_SCROLLBAR_AUTO),
GetName());
if (HasParam(wxT("borders")))
{
control->SetBorders(GetDimension(wxT("borders")));
}
if (HasParam(wxT("url")))
{
wxString url = GetParamValue(wxT("url"));
wxFileSystem& fsys = GetCurFileSystem();
wxFSFile *f = fsys.OpenFile(url);
if (f)
{
control->LoadPage(f->GetLocation());
delete f;
}
else
control->LoadPage(url);
}
else if (HasParam(wxT("htmlcode")))
{
control->SetPage(GetText(wxT("htmlcode")));
}
SetupWindow(control);
return control;
}
bool wxHtmlWindowXmlHandler::CanHandle(wxXmlNode *node)
{
return IsOfClass(node, wxT("wxHtmlWindow"));
}
#endif // wxUSE_HTML

View File

@@ -0,0 +1,549 @@
0.9.1 (3/21/2003 to 5/2/2003)
-----------------------------
PyCrust is dead! Long live Py!
* Renamed ``PyCrust`` package to ``py``.
* Moved code to wxPython's CVS repository.
Fixed bug in ``introspect.py`` on introspecting objects occurring
immediately after a secondary prompt, like this::
>>> l = [1, 2, 3]
>>> for n in range(3):
... l. <-- failed to popup autocomplete list
Added documentation files:
* PyManual.txt
* wxPythonManual.txt
* wxPythonPackage.txt
* wxPythonExamples.txt
Added PyAlaMode and PyAlaCarte code editors.
Major refactoring to support ``editor`` and ``shell`` from the same
base.
Renamed program files:
* ``PyCrustApp.py`` to ``PyCrust.py``
* ``PyFillingApp.py`` to ``PyFilling.py``
* ``PyShellApp.py`` to ``PyShell.py``
* ``wrap.py`` to ``PyWrap.py``
Removed disabling of autocomplete for lists of 2000 items or more.
The current implementation of wxSTC can now handle lists this big.
Improved handling of ``sys.path`` to mimic the standard Python shell.
0.9 (2/27/2003 to 3/20/2003)
----------------------------
Added fontIncrease, fontDecrease, fontDefault signals, receivers and
keybindings::
Ctrl+] Increase font size.
Ctrl+[ Decrease font size.
Ctrl+= Default font size.
Continued enhancement of the decorator capability to provide better
documentation and docstrings for wxPython classes and functions.
Introduced new tabbed interface:
* Namespace
* Calltip
* Session
* Dispatcher
* wxPython Docs
* wxSTC Docs
``Filling.tree`` now expands tuples as well as lists. (It should have
done this all along, I just never noticed this omission before.)
Added this True/False test to all modules::
try:
True
except NameError:
True = 1==1
False = 1==0
Added ``wxd`` directory with decoration classes.
0.8.2 (1/5/2003 to 2/26/2003)
-----------------------------
Wrapped ``sys.ps1``, ``sys.ps2``, and ``sys.ps3`` in ``str()``.
(Thanks, Kieran Holland.)
Fixed minor things found by PyChecker.
Changed locals to use ``__main__.__dict__`` and added code to clean up
the namespace, making it as close to the regular Python environment as
possible. This solves the problem of pickling and unpickling
instances of classes defined in the shell.
Made ``shell.PasteAndRun()`` a little more forgiving when it finds a
ps2 prompt line with no trailing space, such when you copy code from a
web page.
Improved autocomplete behavior by adding these to shell::
self.AutoCompSetAutoHide(False)
self.AutoCompStops(' .,;:([)]}\'"\\<>%^&+-=*/|`')
Added ``decor`` directory, ``decorator.py``, ``stcDecor.py``, and
``stcConstants.py``. These all serve the purpose of adding docstrings
to existing wxPython classes, in particular the ``wxStyledTextCtrl``.
Added ``wrap.py``, a command line utility for running a wxPython app
with additional runtime-tools loaded, such as PyCrust (the only tool
at this point).
Flushed the clipboard Cut/Copy operations so that selections will
exist in the clipboard even after PyCrust has been closed.
Improved the suppression of docstrings for simple data types appearing
in the namespace viewer.
Better handling of autocompletion with numeric types; no
autocompletion when typing a dot after an integer. If the
autocompletion is desired, type a space before the dot::
func = 3 .
More Filling!!! The namespace tree is now dynamically updated.
0.8.1 (12/20/2002 to 12/25/2002)
--------------------------------
Improved keyboard handling with Autocomplete active. You can now use
Enter as well as Tab to select an item from the list.
Disabled autocomplete for lists of 2000 items or more. The current
implementation of wxSTC can't handle lists this big.
Changed ``filling`` to always display docstrings for objects. This is
useful for objects whose docstrings have been decorated, rather than
coming directly from the source code. (Hmmm. Sounds like someone is
doing some decorating. I wonder where that would be helpful? <wink>)
Fixed handling of icon. Added ``images.py`` file.
0.8 (10/29/2002 to 12/16/2002)
------------------------------
Added "help" to startup banner info.
Made all ``wx`` and ``stc`` imports explicit. No more ``import *``.
Replaced use of the ``wx`` module's ``true`` and ``false`` with
Python's ``True`` and ``False``.
Changed ``introspect.getRoot()`` to use ``tokenize`` module. This
does a slightly better job than the previous parsing routine and the
code is clearer.
Improved handling of whitespace and empty types during introspection.
Fixed cut/copy clipboard problem under Linux. (Robin Dunn rocks!!!)
Added shell.about() which works like this::
>>> shell.about()
PyCrust Version: 0.8
Shell Revision: 1.80
Interpreter Revision: 1.15
Python Version: 2.2.2
wxPython Version: 2.3.3.1
Platform: linux2
Added copy plus and paste plus to shell menu.
Moved shell menu from ``shell.py`` to ``shellmenu.py``.
Added ``sys.stdin.readlines()`` support.
Added ``time.sleep()`` in ``readline()`` and ``OnIdle()`` event
handler to free up the CPU.
0.7.2 (2/22/2002 to 8/27/2002)
------------------------------
Tweaked ``getAttributeNames()`` to pick up a few more attributes::
'__bases__', '__class__', '__dict__', '__name__', 'func_closure',
'func_code', 'func_defaults', 'func_dict', 'func_doc',
'func_globals', 'func_name'
Added a tests directory and unit tests.
Improved support for empty types in the shell: ``[]``, ``()`` and
``{}`` as far as when call tips and autocompletion are available.
Added support for the other triple string - ``''''''``.
Refactored ``introspect.py`` to improve testability.
Improved call tips for unbound methods by leaving the "self"
parameter, since unbound methods require an instance be passed.
Fixed call tip bug where a tip was displayed when a "(" was typed
after an object that wasn't callable.
Fixed ``getAllAttributeNames`` when ``str(object)`` fails.
Added brace highlighting. (Thank you, Kevin Altis.)
Fixed problem displaying unicode objects in ``PyFilling``.
Changed how ``filling.py`` checks for expandable objects. Lists are
now expandable objects.
Made the key handling more robust when there is an active text
selection that includes text prior to the last primary prompt. Thanks
to Raul Cota for pointing this out.
Fixed wxSTC problem with brace highlighting and non-us keyboards.
(Thank you for the patch, Jean-Michel Fauth.)
Added ``busy = wxBusyCursor()`` to key points in ``shell`` and
``filling``.
Added ``OnCloseWindow`` handler to ``ShellFrame`` and ``CrustFrame``.
Default to ``SetWrapMode(1)`` for shell and namespace viewer.
Added ``shell.wrap()`` and ``shell.zoom()``.
Added autoCompleteKeys hooks for Raul Cota.
Cleaned up various little key handling bugs.
Changed input methods to get values from shell, rather than dialog
boxes. Renamed ``readIn`` to ``readline`` and ``readRaw`` to
``raw_input``.
0.7.1 (12/12/2001 to 2/21/2002)
-------------------------------
Fixed ``OnChar()`` issues effecting European keyboards, as reported by
Jean-Michel Fauth.
Fixed ``introspect.py`` issue with xmlrpc objects reported by Kevin
Altis.
Fixed some introspect/PyFilling issues with regard to Python 2.2.
Fixed font background color as reported by Keith J. Farmer. (Thanks)
Fixed problem with call tips and autocompletion inside multiline
commands as report by Kevin Altis.
Improved ``OnKeyDown`` handling of cut/copy/paste operations based on
feedback from Syver Enstad. (Thanks)
Added a ``shell.help()`` method to display some help info.
Changed sort of items in the namespace viewer to case insensitive.
Changed ``attributes.sort(lambda x, y: cmp(x.upper(), y.upper()))`` in
advance of an upcoming fix to an autocompletion matching bug in wxSTC.
Improved support for ZODB by allowing namespace drilldown into BTrees.
Added ``shell.PasteAndRun()`` to support pasting multiple commands into
the shell from the clipboard. Ctrl+Shift+V or v.
Enter now always processes a command (or copies down a previous one.)
To insert a line break, press Ctrl+Enter.
Escape key clears the current, unexecuted command.
History retrieval changed to replace current command. Added new keys
to insert from history - Shift+Up and Shift+Down.
Better call tips on objects with ``__call__`` methods.
Improved call tip positioning calculation.
0.7 (10/15/2001 to 12/11/2001)
------------------------------
Changed how command history retrieval functions work. Added Alt-P,
Alt-N as keybindings for Retrieve-Previous, Retrieve-Next.
Added full support for multi-line commands, similar to IDLE.
Changed ``introspect.getAttributeNames()`` to do a case insensitive
sort.
Changed Cut/Copy/Paste to deal with prompts intelligently. Cut and
Copy remove all prompts. Paste can handle prompted or not-prompted
text.
Added ``CopyWithPrompts()`` method attached to Ctrl-Shift-C for those
times when you really do want all the prompts left intact.
Improved handling of the shell's read-only zone.
Changed ``CrustFrame.__init__`` parameter spec to include all
parameters allowed by a ``wxFrame``.
Changed ``FillingText`` to be read-only.
Renamed ``PyCrust.py`` to ``PyCrustApp.py`` to eliminate
package/module name conflicts that kept you from doing ``from PyCrust
import shell`` inside files located in the ``PyCrust`` directory.
Renamed ``PyFilling.py`` to ``PyFillingApp.py`` and ``PyShell.py`` to
``PyShellApp.py`` to maintain consistency.
Removed the ``__date__`` property from all modules.
Fixed bug in ``introspect.getCallTip()``, reported by Kevin Altis.
0.6.1 (9/19/2001 to 10/12/2001)
-------------------------------
Changed ``Shell.run()`` to always position to the end of existing
text, as suggested by Raul Cota.
Changed ``introspect.getAllAttributeNames()`` to break circular
references in ``object.__class__``, which occurs in Zope/ZODB
extension classes.
Changed ``filling.FillingTree.getChildren()`` to introspect extension
classes.
Fixed minor bugs in ``introspect.getCallTip()`` that were interfering
with call tips for Zope/ZODB extension class methods.
In preparation for wxPython 2.3.2, added code to fix a font sizing
problem. Versions of wxPython prior to 2.3.2 had a sizing bug on Win
platform where the font was 2 points larger than what was specified.
Added a hack to ``introspect.getAllAttributeNames()`` to "wake up"
ZODB objects that are asleep - in a "ghost" state. Otherwise it
returns incomplete info.
0.6 (8/21/2001 to 9/12/2001)
----------------------------
Added ``PyFilling.py`` and ``filling.py``.
``PyShell.py`` and ``PyFilling.py`` can now be run standalone, as well
as ``PyCrust.py``.
Added ``crust.py`` and moved some code from ``PyCrust.py`` to it.
Added command history retrieval features submitted by Richie Hindle.
Changed ``shell.write()`` to replace line endings with OS-specific
endings. Changed ``shell.py`` and ``interpreter.py`` to use
``os.linesep`` in strings having hardcoded line endings.
Added ``shell.redirectStdin()``, ``shell.redirectStdout()`` and
``shell.redirectStderr()`` to allow the surrounding app to toggle
requests that the specified ``sys.std*`` be redirected to the shell.
These can also be run from within the shell itself, of course.
The shell now adds the current working directory "." to the search
path::
sys.path.insert(0, os.curdir)
Added support for distutils installations.
0.5.4 (8/17/2001 to 8/20/2001)
------------------------------
Changed default font size under Linux to::
'size' : 12,
'lnsize' : 10,
Changed ``Shell`` to expect a parameter referencing an Interpreter
class, rather than an intepreter instance, to facilitate subclassing
of Interpreter, which effectively broke when the Editor class was
eliminated.
Fixed ``PyCrustAlaCarte.py``, which had been broken by previous
changes.
Created ``InterpreterAlaCarte`` class as an example for use in the
demo.
Split ``PyCrust.py`` into ``PyCrust.py`` and ``PyShell.py`` in
anticipation of ``PyFilling.py``.
0.5.3 (8/16/2001)
-----------------
Added patch to ``PyCrust.py`` to fix wxPython bug::
wxID_SELECTALL = NewId() # This *should* be defined by wxPython.
0.5.2 (8/14/2001 to 8/15/2001)
------------------------------
Shortened module names by dropping "PyCrust" as a prefix.
Changed ``version`` to ``VERSION`` in ``version`` module.
Added Options menu to PyCrust application.
Eliminated the Editor class (and editor module) by merging with Shell.
This means that Shell "is a" wxStyledTextCtrl rather than "has a".
There just wasn't enough non-gui code to justify the separation.
Plus, Shell will be much easier for gui toolkits/designers to deal
with now.
0.5.1 (8/10/2001 to 8/14/2001)
------------------------------
Added ``introspect`` module.
Moved some functionality from ``PyCrustInterp`` to ``introspect``.
Changed ``introspect.getRoot()`` to no longer remove whitespace from
the command. This was a remnant of a previous approach that, when
left as part of the current approach, turned out to be a really bad
thing.
Changed ``introspect.getRoot()`` to allow commands of ``''``, ``""``,
``""""""``, ``[]``, ``()``, and ``{}`` to pass through. This allows
you to type them, followed by a dot, and get autocomplete options on
them.
Changed ``introspect.getRoot()`` to identify some situations where
strings shouldn't be considered roots. For example::
>>> import PyCrust # To illustrate the potential problem.
>>> len('PyCrust.py')
Typing the dot at the end of "PyCrust" in the second line above should
NOT result in an autocompletion list because "PyCrust" is part of a
string in this context, not a reference to the PyCrust module object.
Similar reasoning applies to call tips. For example::
>>> len('dir(')
Typing the left paren at the end of "dir" should NOT result in a call
tip.
Both features now behave properly in the examples given. However,
there is still the case where whitespace precedes the potential root
and that is NOT handled properly. For example::
>>> len('this is a dir(')
and::
>>> len('This is PyCrust.py')
More code needs to be written to handle more complex situations.
Added ``locals=None`` parameter to ``Shell.__init__()``.
Added support for magic attribute retrieval. Users can change this
with::
>>> shell.editor.autoCompleteIncludeMagic = 0
Added the ability to set filters on auto completion to exclude
attributes prefixed with a single or double underscore. Users can
exclude one or the other or both with::
>>> shell.editor.autoCompleteExcludeSingle = 1
>>> shell.editor.autoCompleteExcludeDouble = 1
0.5 (8/8/2001)
--------------
Mostly just a final version change before creating a release.
0.4 (8/4/2001 to 8/7/2001)
--------------------------
Changed version/revision handling.
Fixed bugs.
0.3 (8/2/2001 to 8/3/2001)
--------------------------
Removed lots of cruft.
Added lots of docstrings.
Imported to CVS repository at SourceForge.
Added call tips.
0.2 (7/30/2001 to 8/2/2001)
---------------------------
Renamed several files.
Added command autocompletion.
Added menus to PyCrust.py: File, Edit and Help.
Added sample applications: ``PyCrustAlaCarte.py``,
``PyCrustAlaMode.py``, and ``PyCrustMinimus.py``.
0.1 (7/1/2001 to 7/19/2001)
---------------------------
Added basic syntax coloring much like Boa.
Added read-only logging much like IDLE.
Can retrieve a previous command by putting the cursor back on that
line and hitting enter.
Stdin and raw_input operate properly so you can now do ``help()`` and
``license()`` without hanging.
Redefined "quit", "exit", and "close" to display a better-than-nothing
response.
Home key honors the prompt.
Created SourceForge account, but nothing was posted.
In the beginning, there was pie... (7/1/2001)
---------------------------------------------
Blame it all on IDLE, Boa and PythonWin. I was using all three, got
frustrated with their dissimilarities, and began to let everyone know
how I felt. At the same time, Scintilla looked like an interesting
tool to build a shell around. And while I didn't receive much in the
way of positive feedback, let alone encouragement, I just couldn't let
go of the idea of a Scintilla-based Python shell. Then the PythonCard
project got to the point where they were talking about including a
shell in their development environment. That was all the incentive I
needed. PyCrust had to happen...

BIN
wxPython/wxPython/py/Py.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

View File

@@ -0,0 +1,43 @@
"""PyAlaCarte is a simple programmer's editor."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
from wxPython import wx
import os
import sys
import editor
try:
True
except NameError:
True = 1==1
False = 1==0
class App(wx.wxApp):
"""PyAlaCarte standalone application."""
def __init__(self, filename=None):
self.filename = filename
wx.wxApp.__init__(self, redirect=False)
def OnInit(self):
wx.wxInitAllImageHandlers()
self.frame = editor.EditorFrame(filename=self.filename)
self.frame.Show()
self.SetTopWindow(self.frame)
return True
def main(filename=None):
if not filename and len(sys.argv) > 1:
filename = sys.argv[1]
if filename:
filename = os.path.realpath(filename)
app = App(filename)
app.MainLoop()
if __name__ == '__main__':
main()

View File

@@ -0,0 +1,43 @@
"""PyAlaMode is a programmer's editor."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
from wxPython import wx
import os
import sys
import editor
try:
True
except NameError:
True = 1==1
False = 1==0
class App(wx.wxApp):
"""PyAlaMode standalone application."""
def __init__(self, filename=None):
self.filename = filename
wx.wxApp.__init__(self, redirect=False)
def OnInit(self):
wx.wxInitAllImageHandlers()
self.frame = editor.EditorNotebookFrame(filename=self.filename)
self.frame.Show()
self.SetTopWindow(self.frame)
return True
def main(filename=None):
if not filename and len(sys.argv) > 1:
filename = sys.argv[1]
if filename:
filename = os.path.realpath(filename)
app = App(filename)
app.MainLoop()
if __name__ == '__main__':
main()

View File

@@ -0,0 +1,42 @@
"""PyAlaModeTest is a programmer's editor."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
from wxPython import wx
import os
import sys
import editor
try:
True
except NameError:
True = 1==1
False = 1==0
class App(wx.wxApp):
"""PyAlaModeTest standalone application."""
def __init__(self, filename=None):
self.filename = filename
wx.wxApp.__init__(self, redirect=False)
def OnInit(self):
wx.wxInitAllImageHandlers()
self.frame = editor.EditorShellNotebookFrame(filename=self.filename)
self.frame.Show()
self.SetTopWindow(self.frame)
return True
def main(filename=None):
app = App(filename)
app.MainLoop()
if __name__ == '__main__':
filename = None
if len(sys.argv) > 1:
filename = os.path.realpath(sys.argv[1])
main(filename)

78
wxPython/wxPython/py/PyCrust.py Executable file
View File

@@ -0,0 +1,78 @@
"""PyCrust is a python shell and namespace browser application."""
# The next two lines, and the other code below that makes use of
# ``__main__`` and ``original``, serve the purpose of cleaning up the
# main namespace to look as much as possible like the regular Python
# shell environment.
import __main__
original = __main__.__dict__.keys()
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
from wxPython import wx
try:
True
except NameError:
True = 1==1
False = 1==0
class App(wx.wxApp):
"""PyCrust standalone application."""
def OnInit(self):
from wxPython import wx
wx.wxInitAllImageHandlers()
locals = __main__.__dict__
from crust import CrustFrame
self.frame = CrustFrame(locals=locals)
self.frame.SetSize((800, 600))
self.frame.Show()
self.SetTopWindow(self.frame)
return True
'''
The main() function needs to handle being imported, such as with the
pycrust script that wxPython installs:
#!/usr/bin/env python
from wx.py.PyCrust import main
main()
'''
def main():
"""The main function for the PyCrust program."""
# Cleanup the main namespace, leaving the App class.
import __main__
md = __main__.__dict__
keepers = original
keepers.append('App')
for key in md.keys():
if key not in keepers:
del md[key]
# Create an application instance.
app = App(0)
# Mimic the contents of the standard Python shell's sys.path.
import sys
if sys.path[0]:
sys.path[0] = ''
# Add the application object to the sys module's namespace.
# This allows a shell user to do:
# >>> import sys
# >>> sys.app.whatever
sys.app = app
del sys
# Cleanup the main namespace some more.
if md.has_key('App') and md['App'] is App:
del md['App']
if md.has_key('__main__') and md['__main__'] is __main__:
del md['__main__']
# Start the wxPython event loop.
app.MainLoop()
if __name__ == '__main__':
main()

View File

@@ -0,0 +1,44 @@
"""PyFilling is a python namespace inspection application."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
# We use this object to get more introspection when run standalone.
app = None
import filling
# These are imported just to have something interesting to inspect.
import crust
import interpreter
import introspect
import pseudo
import shell
import sys
from wxPython import wx
try:
True
except NameError:
True = 1==1
False = 1==0
class App(filling.App):
def OnInit(self):
filling.App.OnInit(self)
self.root = self.fillingFrame.filling.tree.root
return True
def main():
"""Create and run the application."""
global app
app = App(0)
app.fillingFrame.filling.tree.Expand(app.root)
app.MainLoop()
if __name__ == '__main__':
main()

79
wxPython/wxPython/py/PyShell.py Executable file
View File

@@ -0,0 +1,79 @@
"""PyShell is a python shell application."""
# The next two lines, and the other code below that makes use of
# ``__main__`` and ``original``, serve the purpose of cleaning up the
# main namespace to look as much as possible like the regular Python
# shell environment.
import __main__
original = __main__.__dict__.keys()
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
from wxPython import wx
try:
True
except NameError:
True = 1==1
False = 1==0
class App(wx.wxApp):
"""PyShell standalone application."""
def OnInit(self):
from wxPython import wx
wx.wxInitAllImageHandlers()
locals = __main__.__dict__
from shell import ShellFrame
self.frame = ShellFrame(locals=locals)
self.frame.SetSize((750, 525))
self.frame.Show()
self.SetTopWindow(self.frame)
self.frame.shell.SetFocus()
return True
'''
The main() function needs to handle being imported, such as with the
pyshell script that wxPython installs:
#!/usr/bin/env python
from wx.py.PyShell import main
main()
'''
def main():
"""The main function for the PyShell program."""
# Cleanup the main namespace, leaving the App class.
import __main__
md = __main__.__dict__
keepers = original
keepers.append('App')
for key in md.keys():
if key not in keepers:
del md[key]
# Create an application instance.
app = App(0)
# Cleanup the main namespace some more.
if md.has_key('App') and md['App'] is App:
del md['App']
if md.has_key('__main__') and md['__main__'] is __main__:
del md['__main__']
# Mimic the contents of the standard Python shell's sys.path.
import sys
if sys.path[0]:
sys.path[0] = ''
# Add the application object to the sys module's namespace.
# This allows a shell user to do:
# >>> import sys
# >>> sys.app.whatever
sys.app = app
del sys
# Start the wxPython event loop.
app.MainLoop()
if __name__ == '__main__':
main()

56
wxPython/wxPython/py/PyWrap.py Executable file
View File

@@ -0,0 +1,56 @@
"""PyWrap is a command line utility that runs a wxPython program with
additional runtime-tools, such as PyCrust."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import os
import sys
from wxPython import wx
from crust import CrustFrame as Frame
try:
True
except NameError:
True = 1==1
False = 1==0
def wrap(app):
wx.wxInitAllImageHandlers()
frame = Frame()
frame.SetSize((750, 525))
frame.Show(True)
frame.shell.interp.locals['app'] = app
app.MainLoop()
def main(modulename=None):
sys.path.insert(0, os.curdir)
if not modulename:
if len(sys.argv) < 2:
print "Please specify a module name."
raise SystemExit
modulename = sys.argv[1]
if modulename.endswith('.py'):
modulename = modulename[:-3]
module = __import__(modulename)
# Find the App class.
App = None
d = module.__dict__
for item in d.keys():
try:
if issubclass(d[item], wx.wxApp):
App = d[item]
except (NameError, TypeError):
pass
if App is None:
print "No App class found."
raise SystemExit
app = App()
wrap(app)
if __name__ == '__main__':
main(sys.argv)

View File

@@ -0,0 +1,79 @@
=====================================
PyCrust - The Flakiest Python Shell
=====================================
Half-baked by Patrick K. O'Brien (pobrien@orbtech.com)
Orbtech - "Your source for Python programming expertise."
Sample all our half-baked Python goods at www.orbtech.com.
What is PyCrust?
----------------
PyCrust is an interactive Python environment written in Python.
PyCrust components can run standalone or be integrated into other
development environments and/or other Python applications.
PyCrust comes with an interactive Python shell (PyShell), an
interactive namespace/object tree control (PyFilling) and an
integrated, split-window combination of the two (PyCrust).
What is PyCrust good for?
-------------------------
Have you ever tried to bake a pie without one? Well, you shouldn't
build a Python program without a PyCrust either.
What else do I need to use PyCrust?
-----------------------------------
PyCrust requires Python 2.1.3 or later, and wxPython 2.4 or later.
PyCrust uses wxPython and the Scintilla wrapper (wxStyledTextCtrl).
Python is available at http://www.python.org/. wxPython is available
at http://www.wxpython.org/.
Where can I get the latest version of PyCrust?
----------------------------------------------
The latest production version ships with wxPython. The latest
developer version is available in CVS at:
http://sourceforge.net/cvs/?group_id=31263
Where is the PyCrust project hosted?
------------------------------------
At SourceForge, of course. The SourceForge summary page:
http://sourceforge.net/projects/pycrust/
I found a bug in PyCrust, what do I do with it?
-----------------------------------------------
You can send it to me at pobrien@orbtech.com.
I want a new feature added to PyCrust. Will you do it?
------------------------------------------------------
Flattery and money will get you anything. Short of that, you can send
me a request and I'll see what I can do.
Does PyCrust have a mailing list full of wonderful people?
----------------------------------------------------------
As a matter of fact, we do. Join the PyCrust mailing lists at:
http://sourceforge.net/mail/?group_id=31263
What is the CVS information for this README file?
-------------------------------------------------
$Date$
$Revision$
$Id$

View File

@@ -0,0 +1,20 @@
"""Python package."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import buffer
import crust
import dispatcher
import document
import editor
import editwindow
import filling
import frame
import images
import interpreter
import introspect
import pseudo
import shell
import version

View File

@@ -0,0 +1,146 @@
"""Buffer class."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
from wxPython import wx
from interpreter import Interpreter
import imp
import os
import sys
import document
try:
True
except NameError:
True = 1==1
False = 1==0
class Buffer:
"""Buffer class."""
id = 0
def __init__(self, filename=None):
"""Create a Buffer instance."""
Buffer.id += 1
self.id = Buffer.id
self.interp = Interpreter(locals={})
self.name = ''
self.editors = {}
self.editor = None
self.modules = sys.modules.keys()
self.syspath = sys.path[:]
while True:
try:
self.syspath.remove('')
except ValueError:
break
while True:
try:
self.syspath.remove('.')
except ValueError:
break
self.open(filename)
def addEditor(self, editor):
"""Add an editor."""
self.editor = editor
self.editors[editor.id] = editor
def hasChanged(self):
"""Return True if text in editor has changed since last save."""
if self.editor:
return self.editor.hasChanged()
else:
return False
def new(self, filepath):
"""New empty buffer."""
if not filepath:
return
if os.path.exists(filepath):
self.confirmed = self.overwriteConfirm(filepath)
else:
self.confirmed = True
def open(self, filename):
"""Open file into buffer."""
self.doc = document.Document(filename)
self.name = self.doc.filename or ('Untitled:' + str(self.id))
self.modulename = self.doc.filebase
# XXX This should really make sure filedir is first item in syspath.
# XXX Or maybe this should be moved to the update namespace method.
if self.doc.filedir and self.doc.filedir not in self.syspath:
# To create the proper context for updateNamespace.
self.syspath.insert(0, self.doc.filedir)
if self.doc.filepath and os.path.exists(self.doc.filepath):
self.confirmed = True
if self.editor:
text = self.doc.read()
self.editor._setBuffer(buffer=self, text=text)
def overwriteConfirm(filepath):
"""Confirm overwriting an existing file."""
return False
def save(self):
"""Save buffer."""
filepath = self.doc.filepath
if not filepath:
return # XXX Get filename
if not os.path.exists(filepath):
self.confirmed = True
if not self.confirmed:
self.confirmed = self.overwriteConfirm(filepath)
if self.confirmed:
self.doc.write(self.editor.getText())
if self.editor:
self.editor.setSavePoint()
def saveAs(self, filename):
"""Save buffer."""
self.doc = document.Document(filename)
self.name = self.doc.filename
self.modulename = self.doc.filebase
self.save()
def updateNamespace(self):
"""Update the namespace for autocompletion and calltips.
Return True if updated, False if there was an error."""
if not self.interp or not hasattr(self.editor, 'getText'):
return False
syspath = sys.path
sys.path = self.syspath
text = self.editor.getText()
text = text.replace('\r\n', '\n')
text = text.replace('\r', '\n')
name = self.modulename or self.name
module = imp.new_module(name)
newspace = module.__dict__.copy()
try:
try:
code = compile(text, name, 'exec')
except:
raise
# return False
try:
exec code in newspace
except:
raise
# return False
else:
# No problems, so update the namespace.
self.interp.locals.clear()
self.interp.locals.update(newspace)
return True
finally:
sys.path = syspath
for m in sys.modules.keys():
if m not in self.modules:
del sys.modules[m]

View File

@@ -0,0 +1,182 @@
"""PyCrust Crust combines the shell and filling into one control."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
from wxPython import wx
import os
import sys
import dispatcher
from filling import Filling
import frame
from shell import Shell
from version import VERSION
try:
True
except NameError:
True = 1==1
False = 1==0
class Crust(wx.wxSplitterWindow):
"""PyCrust Crust based on wxSplitterWindow."""
name = 'PyCrust Crust'
revision = __revision__
def __init__(self, parent, id=-1, pos=wx.wxDefaultPosition,
size=wx.wxDefaultSize, style=wx.wxSP_3D,
name='Crust Window', rootObject=None, rootLabel=None,
rootIsNamespace=True, intro='', locals=None,
InterpClass=None, *args, **kwds):
"""Create a PyCrust Crust instance."""
wx.wxSplitterWindow.__init__(self, parent, id, pos, size, style, name)
self.shell = Shell(parent=self, introText=intro,
locals=locals, InterpClass=InterpClass,
*args, **kwds)
self.editor = self.shell
if rootObject is None:
rootObject = self.shell.interp.locals
self.notebook = wx.wxNotebook(parent=self, id=-1)
self.shell.interp.locals['notebook'] = self.notebook
self.filling = Filling(parent=self.notebook,
rootObject=rootObject,
rootLabel=rootLabel,
rootIsNamespace=rootIsNamespace)
# Add 'filling' to the interpreter's locals.
self.shell.interp.locals['filling'] = self.filling
self.notebook.AddPage(page=self.filling, text='Namespace', select=True)
self.calltip = Calltip(parent=self.notebook)
self.notebook.AddPage(page=self.calltip, text='Calltip')
self.sessionlisting = SessionListing(parent=self.notebook)
self.notebook.AddPage(page=self.sessionlisting, text='Session')
self.dispatcherlisting = DispatcherListing(parent=self.notebook)
self.notebook.AddPage(page=self.dispatcherlisting, text='Dispatcher')
from wxd import wx_
self.wxdocs = Filling(parent=self.notebook,
rootObject=wx_,
rootLabel='wx',
rootIsNamespace=False,
static=True)
self.notebook.AddPage(page=self.wxdocs, text='wxPython Docs')
from wxd import stc_
self.stcdocs = Filling(parent=self.notebook,
rootObject=stc_.StyledTextCtrl,
rootLabel='StyledTextCtrl',
rootIsNamespace=False,
static=True)
self.notebook.AddPage(page=self.stcdocs, text='StyledTextCtrl Docs')
self.SplitHorizontally(self.shell, self.notebook, 300)
self.SetMinimumPaneSize(1)
class Calltip(wx.wxTextCtrl):
"""Text control containing the most recent shell calltip."""
def __init__(self, parent=None, id=-1):
style = wx.wxTE_MULTILINE | wx.wxTE_READONLY | wx.wxTE_RICH2
wx.wxTextCtrl.__init__(self, parent=parent, id=id, style=style)
self.SetBackgroundColour(wx.wxColour(255, 255, 232))
dispatcher.connect(receiver=self.display, signal='Shell.calltip')
def display(self, calltip):
"""Receiver for Shell.calltip signal."""
self.SetValue(calltip)
class SessionListing(wx.wxTextCtrl):
"""Text control containing all commands for session."""
def __init__(self, parent=None, id=-1):
style = wx.wxTE_MULTILINE | wx.wxTE_READONLY | \
wx.wxTE_RICH2 | wx.wxTE_DONTWRAP
wx.wxTextCtrl.__init__(self, parent=parent, id=id, style=style)
dispatcher.connect(receiver=self.push, signal='Interpreter.push')
def push(self, command, more):
"""Receiver for Interpreter.push signal."""
if command and not more:
self.SetInsertionPointEnd()
start, end = self.GetSelection()
if start != end:
self.SetSelection(0, 0)
self.AppendText(command + '\n')
class DispatcherListing(wx.wxTextCtrl):
"""Text control containing all dispatches for session."""
def __init__(self, parent=None, id=-1):
style = wx.wxTE_MULTILINE | wx.wxTE_READONLY | \
wx.wxTE_RICH2 | wx.wxTE_DONTWRAP
wx.wxTextCtrl.__init__(self, parent=parent, id=id, style=style)
dispatcher.connect(receiver=self.spy)
def spy(self, signal, sender):
"""Receiver for Any signal from Any sender."""
text = '%r from %s' % (signal, sender)
self.SetInsertionPointEnd()
start, end = self.GetSelection()
if start != end:
self.SetSelection(0, 0)
self.AppendText(text + '\n')
class CrustFrame(frame.Frame):
"""Frame containing all the PyCrust components."""
name = 'PyCrust Frame'
revision = __revision__
def __init__(self, parent=None, id=-1, title='PyCrust',
pos=wx.wxDefaultPosition, size=wx.wxDefaultSize,
style=wx.wxDEFAULT_FRAME_STYLE,
rootObject=None, rootLabel=None, rootIsNamespace=True,
locals=None, InterpClass=None, *args, **kwds):
"""Create a PyCrust CrustFrame instance."""
frame.Frame.__init__(self, parent, id, title, pos, size, style)
intro = 'PyCrust %s - The Flakiest Python Shell' % VERSION
intro += '\nSponsored by Orbtech - '
intro += 'Your source for Python programming expertise.'
self.SetStatusText(intro.replace('\n', ', '))
self.crust = Crust(parent=self, intro=intro,
rootObject=rootObject,
rootLabel=rootLabel,
rootIsNamespace=rootIsNamespace,
locals=locals,
InterpClass=InterpClass, *args, **kwds)
self.shell = self.crust.shell
# Override the filling so that status messages go to the status bar.
self.crust.filling.tree.setStatusText = self.SetStatusText
# Override the shell so that status messages go to the status bar.
self.shell.setStatusText = self.SetStatusText
# Fix a problem with the sash shrinking to nothing.
self.crust.filling.SetSashPosition(200)
# Set focus to the shell editor.
self.shell.SetFocus()
def OnClose(self, event):
"""Event handler for closing."""
self.crust.shell.destroy()
self.Destroy()
def OnAbout(self, event):
"""Display an About window."""
title = 'About PyCrust'
text = 'PyCrust %s\n\n' % VERSION + \
'Yet another Python shell, only flakier.\n\n' + \
'Half-baked by Patrick K. O\'Brien,\n' + \
'the other half is still in the oven.\n\n' + \
'Shell Revision: %s\n' % self.shell.revision + \
'Interpreter Revision: %s\n\n' % self.shell.interp.revision + \
'Python Version: %s\n' % sys.version.split()[0] + \
'wxPython Version: %s\n' % wx.__version__ + \
'Platform: %s\n' % sys.platform
dialog = wx.wxMessageDialog(self, text, title,
wx.wxOK | wx.wxICON_INFORMATION)
dialog.ShowModal()
dialog.Destroy()

View File

@@ -0,0 +1,266 @@
"""Provides global signal dispatching services."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import exceptions
import types
import weakref
try:
True
except NameError:
True = 1==1
False = 1==0
class DispatcherError(exceptions.Exception):
def __init__(self, args=None):
self.args = args
class Parameter:
"""Used to represent default parameter values."""
def __repr__(self):
return self.__class__.__name__
class Any(Parameter): pass
Any = Any()
class Anonymous(Parameter): pass
Anonymous = Anonymous()
connections = {}
senders = {}
_boundMethods = weakref.WeakKeyDictionary()
def connect(receiver, signal=Any, sender=Any, weak=True):
"""Connect receiver to sender for signal.
If sender is Any, receiver will receive signal from any sender.
If signal is Any, receiver will receive any signal from sender.
If sender is None, receiver will receive signal from Anonymous.
If signal is Any and sender is None, receiver will receive any
signal from Anonymous.
If signal is Any and sender is Any, receiver will receive any
signal from any sender.
If weak is true, weak references will be used."""
if signal is None:
raise DispatcherError, 'signal cannot be None'
if weak:
receiver = safeRef(receiver)
senderkey = id(sender)
signals = {}
if connections.has_key(senderkey):
signals = connections[senderkey]
else:
connections[senderkey] = signals
# Keep track of senders for cleanup.
if sender not in (None, Any):
def remove(object, senderkey=senderkey):
_removeSender(senderkey=senderkey)
# Skip objects that can not be weakly referenced, which means
# they won't be automatically cleaned up, but that's too bad.
try:
weakSender = weakref.ref(sender, remove)
senders[senderkey] = weakSender
except:
pass
receivers = []
if signals.has_key(signal):
receivers = signals[signal]
else:
signals[signal] = receivers
try:
receivers.remove(receiver)
except ValueError:
pass
receivers.append(receiver)
def disconnect(receiver, signal=Any, sender=Any, weak=True):
"""Disconnect receiver from sender for signal.
Disconnecting is not required. The use of disconnect is the same as for
connect, only in reverse. Think of it as undoing a previous connection."""
if signal is None:
raise DispatcherError, 'signal cannot be None'
if weak:
receiver = safeRef(receiver)
senderkey = id(sender)
try:
receivers = connections[senderkey][signal]
except KeyError:
raise DispatcherError, \
'No receivers for signal %r from sender %s' % (signal, sender)
try:
receivers.remove(receiver)
except ValueError:
raise DispatcherError, \
'No connection to receiver %s for signal %r from sender %s' % \
(receiver, signal, sender)
_cleanupConnections(senderkey, signal)
def send(signal, sender=Anonymous, **kwds):
"""Send signal from sender to all connected receivers.
Return a list of tuple pairs [(receiver, response), ... ].
If sender is not specified, signal is sent anonymously."""
senderkey = id(sender)
anykey = id(Any)
# Get receivers that receive *this* signal from *this* sender.
receivers = []
try:
receivers.extend(connections[senderkey][signal])
except KeyError:
pass
# Add receivers that receive *any* signal from *this* sender.
anyreceivers = []
try:
anyreceivers = connections[senderkey][Any]
except KeyError:
pass
for receiver in anyreceivers:
if receivers.count(receiver) == 0:
receivers.append(receiver)
# Add receivers that receive *this* signal from *any* sender.
anyreceivers = []
try:
anyreceivers = connections[anykey][signal]
except KeyError:
pass
for receiver in anyreceivers:
if receivers.count(receiver) == 0:
receivers.append(receiver)
# Add receivers that receive *any* signal from *any* sender.
anyreceivers = []
try:
anyreceivers = connections[anykey][Any]
except KeyError:
pass
for receiver in anyreceivers:
if receivers.count(receiver) == 0:
receivers.append(receiver)
# Call each receiver with whatever arguments it can accept.
# Return a list of tuple pairs [(receiver, response), ... ].
responses = []
for receiver in receivers:
if type(receiver) is weakref.ReferenceType \
or isinstance(receiver, BoundMethodWeakref):
# Dereference the weak reference.
receiver = receiver()
if receiver is None:
# This receiver is dead, so skip it.
continue
response = _call(receiver, signal=signal, sender=sender, **kwds)
responses += [(receiver, response)]
return responses
def _call(receiver, **kwds):
"""Call receiver with only arguments it can accept."""
## if type(receiver) is types.InstanceType:
if hasattr(receiver, '__call__') and \
(hasattr(receiver.__call__, 'im_func') or hasattr(receiver.__call__, 'im_code')):
# receiver is a class instance; assume it is callable.
# Reassign receiver to the actual method that will be called.
receiver = receiver.__call__
if hasattr(receiver, 'im_func'):
# receiver is a method. Drop the first argument, usually 'self'.
fc = receiver.im_func.func_code
acceptable = fc.co_varnames[1:fc.co_argcount]
elif hasattr(receiver, 'func_code'):
# receiver is a function.
fc = receiver.func_code
acceptable = fc.co_varnames[0:fc.co_argcount]
else:
raise DispatcherError, 'Unknown receiver %s of type %s' % (receiver, type(receiver))
if not (fc.co_flags & 8):
# fc does not have a **kwds type parameter, therefore
# remove unacceptable arguments.
for arg in kwds.keys():
if arg not in acceptable:
del kwds[arg]
return receiver(**kwds)
def safeRef(object):
"""Return a *safe* weak reference to a callable object."""
if hasattr(object, 'im_self'):
if object.im_self is not None:
# Turn a bound method into a BoundMethodWeakref instance.
# Keep track of these instances for lookup by disconnect().
selfkey = object.im_self
funckey = object.im_func
if not _boundMethods.has_key(selfkey):
_boundMethods[selfkey] = weakref.WeakKeyDictionary()
if not _boundMethods[selfkey].has_key(funckey):
_boundMethods[selfkey][funckey] = \
BoundMethodWeakref(boundMethod=object)
return _boundMethods[selfkey][funckey]
return weakref.ref(object, _removeReceiver)
class BoundMethodWeakref:
"""BoundMethodWeakref class."""
def __init__(self, boundMethod):
"""Return a weak-reference-like instance for a bound method."""
self.isDead = 0
def remove(object, self=self):
"""Set self.isDead to true when method or instance is destroyed."""
self.isDead = 1
_removeReceiver(receiver=self)
self.weakSelf = weakref.ref(boundMethod.im_self, remove)
self.weakFunc = weakref.ref(boundMethod.im_func, remove)
def __repr__(self):
"""Return the closest representation."""
return '<bound method weakref for %s.%s>' % (self.weakSelf, self.weakFunc)
def __call__(self):
"""Return a strong reference to the bound method."""
if self.isDead:
return None
else:
object = self.weakSelf()
method = self.weakFunc().__name__
try: # wxPython hack to handle wxDead objects.
return getattr(object, method)
except AttributeError:
## _removeReceiver(receiver=self)
return None
def _removeReceiver(receiver):
"""Remove receiver from connections."""
for senderkey in connections.keys():
for signal in connections[senderkey].keys():
receivers = connections[senderkey][signal]
try:
receivers.remove(receiver)
except:
pass
_cleanupConnections(senderkey, signal)
def _cleanupConnections(senderkey, signal):
"""Delete any empty signals for senderkey. Delete senderkey if empty."""
receivers = connections[senderkey][signal]
if not receivers:
# No more connected receivers. Therefore, remove the signal.
signals = connections[senderkey]
del signals[signal]
if not signals:
# No more signal connections. Therefore, remove the sender.
_removeSender(senderkey)
def _removeSender(senderkey):
"""Remove senderkey from connections."""
del connections[senderkey]
# Senderkey will only be in senders dictionary if sender
# could be weakly referenced.
try:
del senders[senderkey]
except:
pass

View File

@@ -0,0 +1,49 @@
"""Document class."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import os
try:
True
except NameError:
True = 1==1
False = 1==0
class Document:
"""Document class."""
def __init__(self, filename=None):
"""Create a Document instance."""
self.filename = filename
self.filepath = None
self.filedir = None
self.filebase = None
self.fileext = None
if self.filename:
self.filepath = os.path.realpath(self.filename)
self.filedir, self.filename = os.path.split(self.filepath)
self.filebase, self.fileext = os.path.splitext(self.filename)
def read(self):
"""Return contents of file."""
if self.filepath and os.path.exists(self.filepath):
f = file(self.filepath, 'rb')
try:
return f.read()
finally:
f.close()
else:
return ''
def write(self, text):
"""Write text to file."""
try:
f = file(self.filepath, 'wb')
f.write(text)
finally:
if f:
f.close()

View File

@@ -0,0 +1,839 @@
"""PyAlaCarte and PyAlaMode editors."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
from wxPython import wx
from buffer import Buffer
import crust
import dispatcher
import editwindow
import frame
from shell import Shell
import version
try:
True
except NameError:
True = 1==1
False = 1==0
class EditorFrame(frame.Frame):
"""Frame containing one editor."""
def __init__(self, parent=None, id=-1, title='PyAlaCarte',
pos=wx.wxDefaultPosition, size=(800, 600),
style=wx.wxDEFAULT_FRAME_STYLE, filename=None):
"""Create EditorFrame instance."""
frame.Frame.__init__(self, parent, id, title, pos, size, style)
self.buffers = {}
self.buffer = None # Current buffer.
self.editor = None
self._defaultText = title + ' - the tastiest Python editor.'
self._statusText = self._defaultText
self.SetStatusText(self._statusText)
wx.EVT_IDLE(self, self.OnIdle)
self._setup()
if filename:
self.bufferCreate(filename)
def _setup(self):
"""Setup prior to first buffer creation.
Useful for subclasses."""
pass
def setEditor(self, editor):
self.editor = editor
self.buffer = self.editor.buffer
self.buffers[self.buffer.id] = self.buffer
def OnAbout(self, event):
"""Display an About window."""
title = 'About PyAlaCarte'
text = 'Another fine, flaky program.'
dialog = wx.wxMessageDialog(self, text, title,
wx.wxOK | wx.wxICON_INFORMATION)
dialog.ShowModal()
dialog.Destroy()
def OnClose(self, event):
"""Event handler for closing."""
for buffer in self.buffers.values():
self.buffer = buffer
if buffer.hasChanged():
cancel = self.bufferSuggestSave()
if cancel and event.CanVeto():
event.Veto()
return
self.Destroy()
def OnIdle(self, event):
"""Event handler for idle time."""
self._updateStatus()
if hasattr(self, 'notebook'):
self._updateTabText()
self._updateTitle()
event.Skip()
def _updateStatus(self):
"""Show current status information."""
if self.editor and hasattr(self.editor, 'getStatus'):
status = self.editor.getStatus()
text = 'File: %s | Line: %d | Column: %d' % status
else:
text = self._defaultText
if text != self._statusText:
self.SetStatusText(text)
self._statusText = text
def _updateTabText(self):
"""Show current buffer information on notebook tab."""
## suffix = ' **'
## notebook = self.notebook
## selection = notebook.GetSelection()
## if selection == -1:
## return
## text = notebook.GetPageText(selection)
## window = notebook.GetPage(selection)
## if window.editor and window.editor.buffer.hasChanged():
## if text.endswith(suffix):
## pass
## else:
## notebook.SetPageText(selection, text + suffix)
## else:
## if text.endswith(suffix):
## notebook.SetPageText(selection, text[:len(suffix)])
def _updateTitle(self):
"""Show current title information."""
title = self.GetTitle()
if self.bufferHasChanged():
if title.startswith('* '):
pass
else:
self.SetTitle('* ' + title)
else:
if title.startswith('* '):
self.SetTitle(title[2:])
def hasBuffer(self):
"""Return True if there is a current buffer."""
if self.buffer:
return True
else:
return False
def bufferClose(self):
"""Close buffer."""
if self.bufferHasChanged():
cancel = self.bufferSuggestSave()
if cancel:
return cancel
self.bufferDestroy()
cancel = False
return cancel
def bufferCreate(self, filename=None):
"""Create new buffer."""
self.bufferDestroy()
buffer = Buffer()
self.panel = panel = wx.wxPanel(parent=self, id=-1)
editor = Editor(parent=panel)
panel.editor = editor
sizer = wx.wxBoxSizer(wx.wxVERTICAL)
sizer.Add(editor.window, 1, wx.wxEXPAND)
panel.SetSizer(sizer)
panel.SetAutoLayout(True)
sizer.Layout()
buffer.addEditor(editor)
buffer.open(filename)
self.setEditor(editor)
self.editor.setFocus()
def bufferDestroy(self):
"""Destroy the current buffer."""
if self.buffer:
for editor in self.buffer.editors.values():
editor.destroy()
self.editor = None
del self.buffers[self.buffer.id]
self.buffer = None
self.panel.Destroy()
def bufferHasChanged(self):
"""Return True if buffer has changed since last save."""
if self.buffer:
return self.buffer.hasChanged()
else:
return False
def bufferNew(self):
"""Create new buffer."""
if self.bufferHasChanged():
cancel = self.bufferSuggestSave()
if cancel:
return cancel
self.bufferCreate()
cancel = False
return cancel
def bufferOpen(self):
"""Open file in buffer."""
if self.bufferHasChanged():
cancel = self.bufferSuggestSave()
if cancel:
return cancel
filedir = ''
if self.buffer and self.buffer.doc.filedir:
filedir = self.buffer.doc.filedir
result = openSingle(directory=filedir)
if result.path:
self.bufferCreate(result.path)
cancel = False
return cancel
## def bufferPrint(self):
## """Print buffer."""
## pass
## def bufferRevert(self):
## """Revert buffer to version of file on disk."""
## pass
def bufferSave(self):
"""Save buffer to its file."""
if self.buffer.doc.filepath:
self.buffer.save()
cancel = False
else:
cancel = self.bufferSaveAs()
return cancel
def bufferSaveAs(self):
"""Save buffer to a new filename."""
if self.bufferHasChanged() and self.buffer.doc.filepath:
cancel = self.bufferSuggestSave()
if cancel:
return cancel
filedir = ''
if self.buffer and self.buffer.doc.filedir:
filedir = self.buffer.doc.filedir
result = saveSingle(directory=filedir)
if result.path:
self.buffer.saveAs(result.path)
cancel = False
else:
cancel = True
return cancel
def bufferSuggestSave(self):
"""Suggest saving changes. Return True if user selected Cancel."""
result = messageDialog(parent=None,
message='%s has changed.\n'
'Would you like to save it first'
'?' % self.buffer.name,
title='Save current file?')
if result.positive:
cancel = self.bufferSave()
else:
cancel = result.text == 'Cancel'
return cancel
def updateNamespace(self):
"""Update the buffer namespace for autocompletion and calltips."""
if self.buffer.updateNamespace():
self.SetStatusText('Namespace updated')
else:
self.SetStatusText('Error executing, unable to update namespace')
class EditorNotebookFrame(EditorFrame):
"""Frame containing one or more editors in a notebook."""
def __init__(self, parent=None, id=-1, title='PyAlaMode',
pos=wx.wxDefaultPosition, size=(800, 600),
style=wx.wxDEFAULT_FRAME_STYLE, filename=None):
"""Create EditorNotebookFrame instance."""
self.notebook = None
EditorFrame.__init__(self, parent, id, title, pos,
size, style, filename)
if self.notebook:
dispatcher.connect(receiver=self._editorChange,
signal='EditorChange', sender=self.notebook)
def _setup(self):
"""Setup prior to first buffer creation.
Called automatically by base class during init."""
self.notebook = EditorNotebook(parent=self)
intro = 'PyCrust %s' % version.VERSION
import imp
module = imp.new_module('__main__')
import __builtin__
module.__dict__['__builtins__'] = __builtin__
namespace = module.__dict__.copy()
self.crust = crust.Crust(parent=self.notebook, intro=intro, locals=namespace)
self.shell = self.crust.shell
# Override the filling so that status messages go to the status bar.
self.crust.filling.tree.setStatusText = self.SetStatusText
# Override the shell so that status messages go to the status bar.
self.shell.setStatusText = self.SetStatusText
# Fix a problem with the sash shrinking to nothing.
self.crust.filling.SetSashPosition(200)
self.notebook.AddPage(page=self.crust, text='PyCrust', select=True)
self.setEditor(self.crust.editor)
self.crust.editor.SetFocus()
def _editorChange(self, editor):
"""Editor change signal receiver."""
self.setEditor(editor)
def OnAbout(self, event):
"""Display an About window."""
title = 'About PyAlaMode'
text = 'Another fine, flaky program.'
dialog = wx.wxMessageDialog(self, text, title,
wx.wxOK | wx.wxICON_INFORMATION)
dialog.ShowModal()
dialog.Destroy()
def _updateTitle(self):
"""Show current title information."""
pass
## title = self.GetTitle()
## if self.bufferHasChanged():
## if title.startswith('* '):
## pass
## else:
## self.SetTitle('* ' + title)
## else:
## if title.startswith('* '):
## self.SetTitle(title[2:])
def bufferCreate(self, filename=None):
"""Create new buffer."""
buffer = Buffer()
panel = wx.wxPanel(parent=self.notebook, id=-1)
editor = Editor(parent=panel)
panel.editor = editor
sizer = wx.wxBoxSizer(wx.wxVERTICAL)
sizer.Add(editor.window, 1, wx.wxEXPAND)
panel.SetSizer(sizer)
panel.SetAutoLayout(True)
sizer.Layout()
buffer.addEditor(editor)
buffer.open(filename)
self.setEditor(editor)
self.notebook.AddPage(page=panel, text=self.buffer.name, select=True)
self.editor.setFocus()
def bufferDestroy(self):
"""Destroy the current buffer."""
selection = self.notebook.GetSelection()
## print "Destroy Selection:", selection
if selection > 0: # Don't destroy the PyCrust tab.
if self.buffer:
del self.buffers[self.buffer.id]
self.buffer = None # Do this before DeletePage().
self.notebook.DeletePage(selection)
def bufferNew(self):
"""Create new buffer."""
self.bufferCreate()
cancel = False
return cancel
def bufferOpen(self):
"""Open file in buffer."""
filedir = ''
if self.buffer and self.buffer.doc.filedir:
filedir = self.buffer.doc.filedir
result = openMultiple(directory=filedir)
for path in result.paths:
self.bufferCreate(path)
cancel = False
return cancel
class EditorNotebook(wx.wxNotebook):
"""A notebook containing a page for each editor."""
def __init__(self, parent):
"""Create EditorNotebook instance."""
wx.wxNotebook.__init__(self, parent, id=-1)
wx.EVT_NOTEBOOK_PAGE_CHANGING(self, self.GetId(),
self.OnPageChanging)
wx.EVT_NOTEBOOK_PAGE_CHANGED(self, self.GetId(),
self.OnPageChanged)
wx.EVT_IDLE(self, self.OnIdle)
def OnIdle(self, event):
"""Event handler for idle time."""
self._updateTabText()
event.Skip()
def _updateTabText(self):
"""Show current buffer display name on all but first tab."""
size = 3
changed = ' **'
unchanged = ' --'
selection = self.GetSelection()
if selection < 1:
return
text = self.GetPageText(selection)
window = self.GetPage(selection)
if not window.editor:
return
if text.endswith(changed) or text.endswith(unchanged):
name = text[:-size]
else:
name = text
if name != window.editor.buffer.name:
text = window.editor.buffer.name
if window.editor.buffer.hasChanged():
if text.endswith(changed):
text = None
elif text.endswith(unchanged):
text = text[:-size] + changed
else:
text += changed
else:
if text.endswith(changed):
text = text[:-size] + unchanged
elif text.endswith(unchanged):
text = None
else:
text += unchanged
if text is not None:
self.SetPageText(selection, text)
self.Refresh() # Needed on Win98.
def OnPageChanging(self, event):
"""Page changing event handler."""
event.Skip()
def OnPageChanged(self, event):
"""Page changed event handler."""
new = event.GetSelection()
window = self.GetPage(new)
dispatcher.send(signal='EditorChange', sender=self,
editor=window.editor)
window.SetFocus()
event.Skip()
class EditorShellNotebookFrame(EditorNotebookFrame):
"""Frame containing a notebook containing EditorShellNotebooks."""
def __init__(self, parent=None, id=-1, title='PyAlaModeTest',
pos=wx.wxDefaultPosition, size=(600, 400),
style=wx.wxDEFAULT_FRAME_STYLE,
filename=None, singlefile=False):
"""Create EditorShellNotebookFrame instance."""
self._singlefile = singlefile
EditorNotebookFrame.__init__(self, parent, id, title, pos,
size, style, filename)
def _setup(self):
"""Setup prior to first buffer creation.
Called automatically by base class during init."""
if not self._singlefile:
self.notebook = EditorNotebook(parent=self)
def OnAbout(self, event):
"""Display an About window."""
title = 'About PyAlaModePlus'
text = 'Another fine, flaky program.'
dialog = wx.wxMessageDialog(self, text, title,
wx.wxOK | wx.wxICON_INFORMATION)
dialog.ShowModal()
dialog.Destroy()
def bufferCreate(self, filename=None):
"""Create new buffer."""
if self._singlefile:
self.bufferDestroy()
notebook = EditorShellNotebook(parent=self,
filename=filename)
self.notebook = notebook
else:
notebook = EditorShellNotebook(parent=self.notebook,
filename=filename)
self.setEditor(notebook.editor)
if not self._singlefile:
self.notebook.AddPage(page=notebook, text=self.buffer.name,
select=True)
self.editor.setFocus()
def bufferDestroy(self):
"""Destroy the current buffer."""
if self.buffer:
self.editor = None
del self.buffers[self.buffer.id]
self.buffer = None # Do this before DeletePage().
if self._singlefile:
self.notebook.Destroy()
self.notebook = None
else:
selection = self.notebook.GetSelection()
## print "Destroy Selection:", selection
self.notebook.DeletePage(selection)
def bufferNew(self):
"""Create new buffer."""
if self._singlefile and self.bufferHasChanged():
cancel = self.bufferSuggestSave()
if cancel:
return cancel
self.bufferCreate()
cancel = False
return cancel
def bufferOpen(self):
"""Open file in buffer."""
if self._singlefile and self.bufferHasChanged():
cancel = self.bufferSuggestSave()
if cancel:
return cancel
filedir = ''
if self.buffer and self.buffer.doc.filedir:
filedir = self.buffer.doc.filedir
if self._singlefile:
result = openSingle(directory=filedir)
if result.path:
self.bufferCreate(result.path)
else:
result = openMultiple(directory=filedir)
for path in result.paths:
self.bufferCreate(path)
cancel = False
return cancel
class EditorShellNotebook(wx.wxNotebook):
"""A notebook containing an editor page and a shell page."""
def __init__(self, parent, filename=None):
"""Create EditorShellNotebook instance."""
wx.wxNotebook.__init__(self, parent, id=-1)
usePanels = True
if usePanels:
editorparent = editorpanel = wx.wxPanel(self, -1)
shellparent = shellpanel = wx.wxPanel(self, -1)
else:
editorparent = self
shellparent = self
self.buffer = Buffer()
self.editor = Editor(parent=editorparent)
self.buffer.addEditor(self.editor)
self.buffer.open(filename)
self.shell = Shell(parent=shellparent, locals=self.buffer.interp.locals,
style=wx.wxCLIP_CHILDREN | wx.wxSUNKEN_BORDER)
self.buffer.interp.locals.clear()
if usePanels:
self.AddPage(page=editorpanel, text='Editor', select=True)
self.AddPage(page=shellpanel, text='Shell')
# Setup sizers
editorsizer = wx.wxBoxSizer(wx.wxVERTICAL)
editorsizer.Add(self.editor.window, 1, wx.wxEXPAND)
editorpanel.SetSizer(editorsizer)
editorpanel.SetAutoLayout(True)
shellsizer = wx.wxBoxSizer(wx.wxVERTICAL)
shellsizer.Add(self.shell, 1, wx.wxEXPAND)
shellpanel.SetSizer(shellsizer)
shellpanel.SetAutoLayout(True)
else:
self.AddPage(page=self.editor.window, text='Editor', select=True)
self.AddPage(page=self.shell, text='Shell')
self.editor.setFocus()
wx.EVT_NOTEBOOK_PAGE_CHANGED(self, self.GetId(), self.OnPageChanged)
def OnPageChanged(self, event):
"""Page changed event handler."""
selection = event.GetSelection()
if selection == 0:
self.editor.setFocus()
else:
self.shell.SetFocus()
event.Skip()
def SetFocus(self):
wx.wxNotebook.SetFocus(self)
selection = self.GetSelection()
if selection == 0:
self.editor.setFocus()
else:
self.shell.SetFocus()
class Editor:
"""Editor having an EditWindow."""
def __init__(self, parent, id=-1, pos=wx.wxDefaultPosition,
size=wx.wxDefaultSize,
style=wx.wxCLIP_CHILDREN | wx.wxSUNKEN_BORDER):
"""Create Editor instance."""
self.window = EditWindow(self, parent, id, pos, size, style)
self.id = self.window.GetId()
self.buffer = None
# Assign handlers for keyboard events.
wx.EVT_CHAR(self.window, self.OnChar)
wx.EVT_KEY_DOWN(self.window, self.OnKeyDown)
def _setBuffer(self, buffer, text):
"""Set the editor to a buffer. Private callback called by buffer."""
self.buffer = buffer
self.autoCompleteKeys = buffer.interp.getAutoCompleteKeys()
self.clearAll()
self.setText(text)
self.emptyUndoBuffer()
self.setSavePoint()
def destroy(self):
"""Destroy all editor objects."""
self.window.Destroy()
def clearAll(self):
self.window.ClearAll()
def emptyUndoBuffer(self):
self.window.EmptyUndoBuffer()
def getStatus(self):
"""Return (filepath, line, column) status tuple."""
pos = self.window.GetCurrentPos()
line = self.window.LineFromPosition(pos) + 1
col = self.window.GetColumn(pos)
if self.buffer:
name = self.buffer.doc.filepath or self.buffer.name
else:
name = ''
status = (name, line, col)
return status
def getText(self):
"""Return contents of editor."""
return self.window.GetText()
def hasChanged(self):
"""Return True if contents have changed."""
return self.window.GetModify()
def setFocus(self):
"""Set the input focus to the editor window."""
self.window.SetFocus()
def setSavePoint(self):
self.window.SetSavePoint()
def setText(self, text):
"""Set contents of editor."""
self.window.SetText(text)
def OnChar(self, event):
"""Keypress event handler.
Only receives an event if OnKeyDown calls event.Skip() for the
corresponding event."""
key = event.KeyCode()
if key in self.autoCompleteKeys:
# Usually the dot (period) key activates auto completion.
if self.window.AutoCompActive():
self.window.AutoCompCancel()
self.window.ReplaceSelection('')
self.window.AddText(chr(key))
text, pos = self.window.GetCurLine()
text = text[:pos]
if self.window.autoComplete:
self.autoCompleteShow(text)
elif key == ord('('):
# The left paren activates a call tip and cancels an
# active auto completion.
if self.window.AutoCompActive():
self.window.AutoCompCancel()
self.window.ReplaceSelection('')
self.window.AddText('(')
text, pos = self.window.GetCurLine()
text = text[:pos]
self.autoCallTipShow(text)
else:
# Allow the normal event handling to take place.
event.Skip()
def OnKeyDown(self, event):
"""Key down event handler."""
key = event.KeyCode()
# If the auto-complete window is up let it do its thing.
if self.window.AutoCompActive():
event.Skip()
return
controlDown = event.ControlDown()
altDown = event.AltDown()
shiftDown = event.ShiftDown()
# Let Ctrl-Alt-* get handled normally.
if controlDown and altDown:
event.Skip()
# Increase font size.
elif controlDown and key in (ord(']'),):
dispatcher.send(signal='FontIncrease')
# Decrease font size.
elif controlDown and key in (ord('['),):
dispatcher.send(signal='FontDecrease')
# Default font size.
elif controlDown and key in (ord('='),):
dispatcher.send(signal='FontDefault')
else:
event.Skip()
def autoCompleteShow(self, command):
"""Display auto-completion popup list."""
list = self.buffer.interp.getAutoCompleteList(command,
includeMagic=self.window.autoCompleteIncludeMagic,
includeSingle=self.window.autoCompleteIncludeSingle,
includeDouble=self.window.autoCompleteIncludeDouble)
if list:
options = ' '.join(list)
offset = 0
self.window.AutoCompShow(offset, options)
def autoCallTipShow(self, command):
"""Display argument spec and docstring in a popup window."""
if self.window.CallTipActive():
self.window.CallTipCancel()
(name, argspec, tip) = self.buffer.interp.getCallTip(command)
if tip:
dispatcher.send(signal='Shell.calltip', sender=self, calltip=tip)
if not self.window.autoCallTip:
return
if argspec:
startpos = self.window.GetCurrentPos()
self.window.AddText(argspec + ')')
endpos = self.window.GetCurrentPos()
self.window.SetSelection(endpos, startpos)
if tip:
curpos = self.window.GetCurrentPos()
size = len(name)
tippos = curpos - (size + 1)
fallback = curpos - self.window.GetColumn(curpos)
# In case there isn't enough room, only go back to the
# fallback.
tippos = max(tippos, fallback)
self.window.CallTipShow(tippos, tip)
self.window.CallTipSetHighlight(0, size)
class EditWindow(editwindow.EditWindow):
"""EditWindow based on StyledTextCtrl."""
def __init__(self, editor, parent, id=-1, pos=wx.wxDefaultPosition,
size=wx.wxDefaultSize,
style=wx.wxCLIP_CHILDREN | wx.wxSUNKEN_BORDER):
"""Create EditWindow instance."""
editwindow.EditWindow.__init__(self, parent, id, pos, size, style)
self.editor = editor
class DialogResults:
"""DialogResults class."""
def __init__(self, returned):
"""Create wrapper for results returned by dialog."""
self.returned = returned
self.positive = returned in (wx.wxID_OK, wx.wxID_YES)
self.text = self._asString()
def __repr__(self):
return str(self.__dict__)
def _asString(self):
returned = self.returned
if returned == wx.wxID_OK:
return "Ok"
elif returned == wx.wxID_CANCEL:
return "Cancel"
elif returned == wx.wxID_YES:
return "Yes"
elif returned == wx.wxID_NO:
return "No"
def fileDialog(parent=None, title='Open', directory='', filename='',
wildcard='All Files (*.*)|*.*',
style=wx.wxOPEN | wx.wxMULTIPLE):
"""File dialog wrapper function."""
dialog = wx.wxFileDialog(parent, title, directory, filename,
wildcard, style)
result = DialogResults(dialog.ShowModal())
if result.positive:
result.paths = dialog.GetPaths()
else:
result.paths = []
dialog.Destroy()
return result
def openSingle(parent=None, title='Open', directory='', filename='',
wildcard='All Files (*.*)|*.*', style=wx.wxOPEN):
"""File dialog wrapper function."""
dialog = wx.wxFileDialog(parent, title, directory, filename,
wildcard, style)
result = DialogResults(dialog.ShowModal())
if result.positive:
result.path = dialog.GetPath()
else:
result.path = None
dialog.Destroy()
return result
def openMultiple(parent=None, title='Open', directory='', filename='',
wildcard='All Files (*.*)|*.*',
style=wx.wxOPEN | wx.wxMULTIPLE):
"""File dialog wrapper function."""
return fileDialog(parent, title, directory, filename, wildcard, style)
def saveSingle(parent=None, title='Save', directory='', filename='',
wildcard='All Files (*.*)|*.*',
style=wx.wxSAVE | wx.wxHIDE_READONLY | wx.wxOVERWRITE_PROMPT):
"""File dialog wrapper function."""
dialog = wx.wxFileDialog(parent, title, directory, filename,
wildcard, style)
result = DialogResults(dialog.ShowModal())
if result.positive:
result.path = dialog.GetPath()
else:
result.path = None
dialog.Destroy()
return result
def directory(parent=None, message='Choose a directory', path='', style=0,
pos=wx.wxDefaultPosition, size=wx.wxDefaultSize):
"""Dir dialog wrapper function."""
dialog = wx.wxDirDialog(parent, message, path, style, pos, size)
result = DialogResults(dialog.ShowModal())
if result.positive:
result.path = dialog.GetPath()
else:
result.path = None
dialog.Destroy()
return result
def messageDialog(parent=None, message='', title='Message box',
style=wx.wxYES_NO | wx.wxCANCEL | wx.wxCENTRE | wx.wxICON_QUESTION,
pos=wx.wxDefaultPosition):
"""Message dialog wrapper function."""
dialog = wx.wxMessageDialog(parent, message, title, style, pos)
result = DialogResults(dialog.ShowModal())
dialog.Destroy()
return result

View File

@@ -0,0 +1,195 @@
"""EditWindow class."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
from wxPython import wx
from wxPython import stc
import keyword
import os
import sys
import time
import dispatcher
from version import VERSION
try:
True
except NameError:
True = 1==1
False = 1==0
if wx.wxPlatform == '__WXMSW__':
FACES = { 'times' : 'Times New Roman',
'mono' : 'Courier New',
'helv' : 'Lucida Console',
'lucida' : 'Lucida Console',
'other' : 'Comic Sans MS',
'size' : 10,
'lnsize' : 9,
'backcol': '#FFFFFF',
}
else: # GTK
FACES = { 'times' : 'Times',
'mono' : 'Courier',
'helv' : 'Helvetica',
'other' : 'new century schoolbook',
'size' : 12,
'lnsize' : 10,
'backcol': '#FFFFFF',
}
class EditWindow(stc.wxStyledTextCtrl):
"""EditWindow based on StyledTextCtrl."""
revision = __revision__
def __init__(self, parent, id=-1, pos=wx.wxDefaultPosition,
size=wx.wxDefaultSize, style=wx.wxCLIP_CHILDREN | wx.wxSUNKEN_BORDER):
"""Create EditWindow instance."""
stc.wxStyledTextCtrl.__init__(self, parent, id, pos, size, style)
self.__config()
stc.EVT_STC_UPDATEUI(self, id, self.OnUpdateUI)
dispatcher.connect(receiver=self._fontsizer, signal='FontIncrease')
dispatcher.connect(receiver=self._fontsizer, signal='FontDecrease')
dispatcher.connect(receiver=self._fontsizer, signal='FontDefault')
def _fontsizer(self, signal):
"""Receiver for Font* signals."""
size = self.GetZoom()
if signal == 'FontIncrease':
size += 1
elif signal == 'FontDecrease':
size -= 1
elif signal == 'FontDefault':
size = 0
self.SetZoom(size)
def __config(self):
"""Configure shell based on user preferences."""
self.SetMarginType(1, stc.wxSTC_MARGIN_NUMBER)
self.SetMarginWidth(1, 40)
self.SetLexer(stc.wxSTC_LEX_PYTHON)
self.SetKeyWords(0, ' '.join(keyword.kwlist))
self.setStyles(FACES)
self.SetViewWhiteSpace(False)
self.SetTabWidth(4)
self.SetUseTabs(False)
# Do we want to automatically pop up command completion options?
self.autoComplete = True
self.autoCompleteIncludeMagic = True
self.autoCompleteIncludeSingle = True
self.autoCompleteIncludeDouble = True
self.autoCompleteCaseInsensitive = True
self.AutoCompSetIgnoreCase(self.autoCompleteCaseInsensitive)
self.AutoCompSetAutoHide(False)
self.AutoCompStops(' .,;:([)]}\'"\\<>%^&+-=*/|`')
# Do we want to automatically pop up command argument help?
self.autoCallTip = True
self.CallTipSetBackground(wx.wxColour(255, 255, 232))
self.SetWrapMode(False)
try:
self.SetEndAtLastLine(False)
except AttributeError:
pass
def setStyles(self, faces):
"""Configure font size, typeface and color for lexer."""
# Default style
self.StyleSetSpec(stc.wxSTC_STYLE_DEFAULT,
"face:%(mono)s,size:%(size)d,back:%(backcol)s" % \
faces)
self.StyleClearAll()
# Built in styles
self.StyleSetSpec(stc.wxSTC_STYLE_LINENUMBER,
"back:#C0C0C0,face:%(mono)s,size:%(lnsize)d" % faces)
self.StyleSetSpec(stc.wxSTC_STYLE_CONTROLCHAR,
"face:%(mono)s" % faces)
self.StyleSetSpec(stc.wxSTC_STYLE_BRACELIGHT,
"fore:#0000FF,back:#FFFF88")
self.StyleSetSpec(stc.wxSTC_STYLE_BRACEBAD,
"fore:#FF0000,back:#FFFF88")
# Python styles
self.StyleSetSpec(stc.wxSTC_P_DEFAULT,
"face:%(mono)s" % faces)
self.StyleSetSpec(stc.wxSTC_P_COMMENTLINE,
"fore:#007F00,face:%(mono)s" % faces)
self.StyleSetSpec(stc.wxSTC_P_NUMBER,
"")
self.StyleSetSpec(stc.wxSTC_P_STRING,
"fore:#7F007F,face:%(mono)s" % faces)
self.StyleSetSpec(stc.wxSTC_P_CHARACTER,
"fore:#7F007F,face:%(mono)s" % faces)
self.StyleSetSpec(stc.wxSTC_P_WORD,
"fore:#00007F,bold")
self.StyleSetSpec(stc.wxSTC_P_TRIPLE,
"fore:#7F0000")
self.StyleSetSpec(stc.wxSTC_P_TRIPLEDOUBLE,
"fore:#000033,back:#FFFFE8")
self.StyleSetSpec(stc.wxSTC_P_CLASSNAME,
"fore:#0000FF,bold")
self.StyleSetSpec(stc.wxSTC_P_DEFNAME,
"fore:#007F7F,bold")
self.StyleSetSpec(stc.wxSTC_P_OPERATOR,
"")
self.StyleSetSpec(stc.wxSTC_P_IDENTIFIER,
"")
self.StyleSetSpec(stc.wxSTC_P_COMMENTBLOCK,
"fore:#7F7F7F")
self.StyleSetSpec(stc.wxSTC_P_STRINGEOL,
"fore:#000000,face:%(mono)s,back:#E0C0E0,eolfilled" % faces)
def OnUpdateUI(self, event):
"""Check for matching braces."""
# If the auto-complete window is up let it do its thing.
if self.AutoCompActive() or self.CallTipActive():
return
braceAtCaret = -1
braceOpposite = -1
charBefore = None
caretPos = self.GetCurrentPos()
if caretPos > 0:
charBefore = self.GetCharAt(caretPos - 1)
styleBefore = self.GetStyleAt(caretPos - 1)
# Check before.
if charBefore and chr(charBefore) in '[]{}()' \
and styleBefore == stc.wxSTC_P_OPERATOR:
braceAtCaret = caretPos - 1
# Check after.
if braceAtCaret < 0:
charAfter = self.GetCharAt(caretPos)
styleAfter = self.GetStyleAt(caretPos)
if charAfter and chr(charAfter) in '[]{}()' \
and styleAfter == stc.wxSTC_P_OPERATOR:
braceAtCaret = caretPos
if braceAtCaret >= 0:
braceOpposite = self.BraceMatch(braceAtCaret)
if braceAtCaret != -1 and braceOpposite == -1:
self.BraceBadLight(braceAtCaret)
else:
self.BraceHighlight(braceAtCaret, braceOpposite)
def CanCut(self):
"""Return true if text is selected and can be cut."""
return self.CanCopy()
def CanCopy(self):
"""Return true if text is selected and can be copied."""
return self.GetSelectionStart() != self.GetSelectionEnd()
def CanEdit(self):
"""Return true if editing should succeed."""
return True

View File

@@ -0,0 +1,335 @@
"""PyCrust Filling is the gui tree control through which a user can
navigate the local namespace or any object."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
from wxPython import wx
import dispatcher
import editwindow
import inspect
import introspect
import keyword
import sys
import types
from version import VERSION
try:
True
except NameError:
True = 1==1
False = 1==0
COMMONTYPES = [getattr(types, t) for t in dir(types) \
if not t.startswith('_') \
and t not in ('ClassType', 'InstanceType', 'ModuleType')]
DOCTYPES = ('BuiltinFunctionType', 'BuiltinMethodType', 'ClassType',
'FunctionType', 'GeneratorType', 'InstanceType',
'LambdaType', 'MethodType', 'ModuleType',
'UnboundMethodType', 'method-wrapper')
SIMPLETYPES = [getattr(types, t) for t in dir(types) \
if not t.startswith('_') and t not in DOCTYPES]
try:
COMMONTYPES.append(type(''.__repr__)) # Method-wrapper in version 2.2.x.
except AttributeError:
pass
class FillingTree(wx.wxTreeCtrl):
"""PyCrust FillingTree based on wxTreeCtrl."""
name = 'PyCrust Filling Tree'
revision = __revision__
def __init__(self, parent, id=-1, pos=wx.wxDefaultPosition,
size=wx.wxDefaultSize, style=wx.wxTR_DEFAULT_STYLE,
rootObject=None, rootLabel=None, rootIsNamespace=False,
static=False):
"""Create a PyCrust FillingTree instance."""
wx.wxTreeCtrl.__init__(self, parent, id, pos, size, style)
self.rootIsNamespace = rootIsNamespace
import __main__
if rootObject is None:
rootObject = __main__.__dict__
self.rootIsNamespace = True
if rootObject is __main__.__dict__ and rootLabel is None:
rootLabel = 'locals()'
if not rootLabel:
rootLabel = 'Ingredients'
rootData = wx.wxTreeItemData(rootObject)
self.item = self.root = self.AddRoot(rootLabel, -1, -1, rootData)
self.SetItemHasChildren(self.root, self.objHasChildren(rootObject))
wx.EVT_TREE_ITEM_EXPANDING(self, self.GetId(), self.OnItemExpanding)
wx.EVT_TREE_ITEM_COLLAPSED(self, self.GetId(), self.OnItemCollapsed)
wx.EVT_TREE_SEL_CHANGED(self, self.GetId(), self.OnSelChanged)
wx.EVT_TREE_ITEM_ACTIVATED(self, self.GetId(), self.OnItemActivated)
if not static:
dispatcher.connect(receiver=self.push, signal='Interpreter.push')
def push(self, command, more):
"""Receiver for Interpreter.push signal."""
self.display()
def OnItemExpanding(self, event):
"""Add children to the item."""
busy = wx.wxBusyCursor()
item = event.GetItem()
if self.IsExpanded(item):
return
self.addChildren(item)
# self.SelectItem(item)
def OnItemCollapsed(self, event):
"""Remove all children from the item."""
busy = wx.wxBusyCursor()
item = event.GetItem()
# self.CollapseAndReset(item)
# self.DeleteChildren(item)
# self.SelectItem(item)
def OnSelChanged(self, event):
"""Display information about the item."""
busy = wx.wxBusyCursor()
self.item = event.GetItem()
self.display()
def OnItemActivated(self, event):
"""Launch a DirFrame."""
item = event.GetItem()
text = self.getFullName(item)
obj = self.GetPyData(item)
frame = FillingFrame(parent=self, size=(600, 100), rootObject=obj,
rootLabel=text, rootIsNamespace=False)
frame.Show()
def objHasChildren(self, obj):
"""Return true if object has children."""
if self.objGetChildren(obj):
return True
else:
return False
def objGetChildren(self, obj):
"""Return dictionary with attributes or contents of object."""
busy = wx.wxBusyCursor()
otype = type(obj)
if otype is types.DictType \
or str(otype)[17:23] == 'BTrees' and hasattr(obj, 'keys'):
return obj
d = {}
if otype is types.ListType or otype is types.TupleType:
for n in range(len(obj)):
key = '[' + str(n) + ']'
d[key] = obj[n]
if otype not in COMMONTYPES:
for key in introspect.getAttributeNames(obj):
# Believe it or not, some attributes can disappear,
# such as the exc_traceback attribute of the sys
# module. So this is nested in a try block.
try:
d[key] = getattr(obj, key)
except:
pass
return d
def addChildren(self, item):
self.DeleteChildren(item)
obj = self.GetPyData(item)
children = self.objGetChildren(obj)
if not children:
return
keys = children.keys()
keys.sort(lambda x, y: cmp(x.lower(), y.lower()))
for key in keys:
itemtext = str(key)
# Show string dictionary items with single quotes, except
# for the first level of items, if they represent a
# namespace.
if type(obj) is types.DictType \
and type(key) is types.StringType \
and (item != self.root \
or (item == self.root and not self.rootIsNamespace)):
itemtext = repr(key)
child = children[key]
data = wx.wxTreeItemData(child)
branch = self.AppendItem(parent=item, text=itemtext, data=data)
self.SetItemHasChildren(branch, self.objHasChildren(child))
def display(self):
item = self.item
if self.IsExpanded(item):
self.addChildren(item)
self.setText('')
obj = self.GetPyData(item)
if wx.wxPlatform == '__WXMSW__':
if obj is None: # Windows bug fix.
return
self.SetItemHasChildren(item, self.objHasChildren(obj))
otype = type(obj)
text = ''
text += self.getFullName(item)
text += '\n\nType: ' + str(otype)
try:
value = str(obj)
except:
value = ''
if otype is types.StringType or otype is types.UnicodeType:
value = repr(obj)
text += '\n\nValue: ' + value
if otype not in SIMPLETYPES:
try:
text += '\n\nDocstring:\n\n"""' + \
inspect.getdoc(obj).strip() + '"""'
except:
pass
if otype is types.InstanceType:
try:
text += '\n\nClass Definition:\n\n' + \
inspect.getsource(obj.__class__)
except:
pass
else:
try:
text += '\n\nSource Code:\n\n' + \
inspect.getsource(obj)
except:
pass
self.setText(text)
def getFullName(self, item, partial=''):
"""Return a syntactically proper name for item."""
name = self.GetItemText(item)
parent = None
obj = None
if item != self.root:
parent = self.GetItemParent(item)
obj = self.GetPyData(parent)
# Apply dictionary syntax to dictionary items, except the root
# and first level children of a namepace.
if (type(obj) is types.DictType \
or str(type(obj))[17:23] == 'BTrees' \
and hasattr(obj, 'keys')) \
and ((item != self.root and parent != self.root) \
or (parent == self.root and not self.rootIsNamespace)):
name = '[' + name + ']'
# Apply dot syntax to multipart names.
if partial:
if partial[0] == '[':
name += partial
else:
name += '.' + partial
# Repeat for everything but the root item
# and first level children of a namespace.
if (item != self.root and parent != self.root) \
or (parent == self.root and not self.rootIsNamespace):
name = self.getFullName(parent, partial=name)
return name
def setText(self, text):
"""Display information about the current selection."""
# This method will likely be replaced by the enclosing app to
# do something more interesting, like write to a text control.
print text
def setStatusText(self, text):
"""Display status information."""
# This method will likely be replaced by the enclosing app to
# do something more interesting, like write to a status bar.
print text
class FillingText(editwindow.EditWindow):
"""FillingText based on StyledTextCtrl."""
name = 'PyFilling Text'
revision = __revision__
def __init__(self, parent, id=-1, pos=wx.wxDefaultPosition,
size=wx.wxDefaultSize, style=wx.wxCLIP_CHILDREN,
static=False):
"""Create a FillingText instance."""
editwindow.EditWindow.__init__(self, parent, id, pos, size, style)
# Configure various defaults and user preferences.
self.SetReadOnly(True)
self.SetWrapMode(True)
self.SetMarginWidth(1, 0)
if not static:
dispatcher.connect(receiver=self.push, signal='Interpreter.push')
def push(self, command, more):
"""Receiver for Interpreter.push signal."""
self.Refresh()
def SetText(self, *args, **kwds):
self.SetReadOnly(False)
editwindow.EditWindow.SetText(self, *args, **kwds)
self.SetReadOnly(True)
class Filling(wx.wxSplitterWindow):
"""Filling based on wxSplitterWindow."""
name = 'PyFilling'
revision = __revision__
def __init__(self, parent, id=-1, pos=wx.wxDefaultPosition,
size=wx.wxDefaultSize, style=wx.wxSP_3D,
name='Filling Window', rootObject=None,
rootLabel=None, rootIsNamespace=False, static=False):
"""Create a Filling instance."""
wx.wxSplitterWindow.__init__(self, parent, id, pos, size, style, name)
self.tree = FillingTree(parent=self, rootObject=rootObject,
rootLabel=rootLabel,
rootIsNamespace=rootIsNamespace,
static=static)
self.text = FillingText(parent=self, static=static)
self.SplitVertically(self.tree, self.text, 130)
self.SetMinimumPaneSize(1)
# Override the filling so that descriptions go to FillingText.
self.tree.setText = self.text.SetText
# Display the root item.
## self.tree.SelectItem(self.tree.root)
self.tree.display()
class FillingFrame(wx.wxFrame):
"""Frame containing the namespace tree component."""
name = 'PyFilling Frame'
revision = __revision__
def __init__(self, parent=None, id=-1, title='PyFilling',
pos=wx.wxDefaultPosition, size=(600, 400),
style=wx.wxDEFAULT_FRAME_STYLE, rootObject=None,
rootLabel=None, rootIsNamespace=False, static=False):
"""Create a FillingFrame instance."""
wx.wxFrame.__init__(self, parent, id, title, pos, size, style)
intro = 'PyFilling - The Tastiest Namespace Inspector'
self.CreateStatusBar()
self.SetStatusText(intro)
import images
self.SetIcon(images.getPyCrustIcon())
self.filling = Filling(parent=self, rootObject=rootObject,
rootLabel=rootLabel,
rootIsNamespace=rootIsNamespace,
static=static)
# Override so that status messages go to the status bar.
self.filling.tree.setStatusText = self.SetStatusText
class App(wx.wxApp):
"""PyFilling standalone application."""
def OnInit(self):
wx.wxInitAllImageHandlers()
self.fillingFrame = FillingFrame()
self.fillingFrame.Show(True)
self.SetTopWindow(self.fillingFrame)
return True

View File

@@ -0,0 +1,348 @@
"""Base frame with menu."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
from wxPython import wx
from version import VERSION
try:
True
except NameError:
True = 1==1
False = 1==0
ID_NEW = wx.wxID_NEW
ID_OPEN = wx.wxID_OPEN
ID_REVERT = wx.wxID_REVERT
ID_CLOSE = wx.wxID_CLOSE
ID_SAVE = wx.wxID_SAVE
ID_SAVEAS = wx.wxID_SAVEAS
ID_PRINT = wx.wxID_PRINT
ID_EXIT = wx.wxID_EXIT
ID_UNDO = wx.wxID_UNDO
ID_REDO = wx.wxID_REDO
ID_CUT = wx.wxID_CUT
ID_COPY = wx.wxID_COPY
ID_PASTE = wx.wxID_PASTE
ID_CLEAR = wx.wxID_CLEAR
ID_SELECTALL = wx.wxID_SELECTALL
ID_ABOUT = wx.wxID_ABOUT
ID_AUTOCOMP = wx.wxNewId()
ID_AUTOCOMP_SHOW = wx.wxNewId()
ID_AUTOCOMP_MAGIC = wx.wxNewId()
ID_AUTOCOMP_SINGLE = wx.wxNewId()
ID_AUTOCOMP_DOUBLE = wx.wxNewId()
ID_CALLTIPS = wx.wxNewId()
ID_CALLTIPS_SHOW = wx.wxNewId()
ID_COPY_PLUS = wx.wxNewId()
ID_NAMESPACE = wx.wxNewId()
ID_PASTE_PLUS = wx.wxNewId()
ID_WRAP = wx.wxNewId()
class Frame(wx.wxFrame):
"""Frame with standard menu items."""
revision = __revision__
def __init__(self, parent=None, id=-1, title='Editor',
pos=wx.wxDefaultPosition, size=wx.wxDefaultSize,
style=wx.wxDEFAULT_FRAME_STYLE):
"""Create a Frame instance."""
wx.wxFrame.__init__(self, parent, id, title, pos, size, style)
self.CreateStatusBar()
self.SetStatusText('Frame')
import images
self.SetIcon(images.getPyCrustIcon())
self.__createMenus()
wx.EVT_CLOSE(self, self.OnClose)
def OnClose(self, event):
"""Event handler for closing."""
self.Destroy()
def __createMenus(self):
m = self.fileMenu = wx.wxMenu()
m.Append(ID_NEW, '&New \tCtrl+N',
'New file')
m.Append(ID_OPEN, '&Open... \tCtrl+O',
'Open file')
m.AppendSeparator()
m.Append(ID_REVERT, '&Revert \tCtrl+R',
'Revert to last saved version')
m.Append(ID_CLOSE, '&Close \tCtrl+W',
'Close file')
m.AppendSeparator()
m.Append(ID_SAVE, '&Save... \tCtrl+S',
'Save file')
m.Append(ID_SAVEAS, 'Save &As \tShift+Ctrl+S',
'Save file with new name')
m.AppendSeparator()
m.Append(ID_PRINT, '&Print... \tCtrl+P',
'Print file')
m.AppendSeparator()
m.Append(ID_NAMESPACE, '&Update Namespace \tShift+Ctrl+N',
'Update namespace for autocompletion and calltips')
m.AppendSeparator()
m.Append(ID_EXIT, 'E&xit', 'Exit Program')
m = self.editMenu = wx.wxMenu()
m.Append(ID_UNDO, '&Undo \tCtrl+Z',
'Undo the last action')
m.Append(ID_REDO, '&Redo \tCtrl+Y',
'Redo the last undone action')
m.AppendSeparator()
m.Append(ID_CUT, 'Cu&t \tCtrl+X',
'Cut the selection')
m.Append(ID_COPY, '&Copy \tCtrl+C',
'Copy the selection')
m.Append(ID_COPY_PLUS, 'Cop&y Plus \tShift+Ctrl+C',
'Copy the selection - retaining prompts')
m.Append(ID_PASTE, '&Paste \tCtrl+V', 'Paste from clipboard')
m.Append(ID_PASTE_PLUS, 'Past&e Plus \tShift+Ctrl+V',
'Paste and run commands')
m.AppendSeparator()
m.Append(ID_CLEAR, 'Cle&ar',
'Delete the selection')
m.Append(ID_SELECTALL, 'Select A&ll \tCtrl+A',
'Select all text')
m = self.autocompMenu = wx.wxMenu()
m.Append(ID_AUTOCOMP_SHOW, 'Show Auto Completion',
'Show auto completion list', 1)
m.Append(ID_AUTOCOMP_MAGIC, 'Include Magic Attributes',
'Include attributes visible to __getattr__ and __setattr__',
1)
m.Append(ID_AUTOCOMP_SINGLE, 'Include Single Underscores',
'Include attibutes prefixed by a single underscore', 1)
m.Append(ID_AUTOCOMP_DOUBLE, 'Include Double Underscores',
'Include attibutes prefixed by a double underscore', 1)
m = self.calltipsMenu = wx.wxMenu()
m.Append(ID_CALLTIPS_SHOW, 'Show Call Tips',
'Show call tips with argument signature and docstring', 1)
m = self.optionsMenu = wx.wxMenu()
m.AppendMenu(ID_AUTOCOMP, '&Auto Completion', self.autocompMenu,
'Auto Completion Options')
m.AppendMenu(ID_CALLTIPS, '&Call Tips', self.calltipsMenu,
'Call Tip Options')
m.Append(ID_WRAP, '&Wrap Lines',
'Wrap lines at right edge', 1)
m = self.helpMenu = wx.wxMenu()
m.AppendSeparator()
m.Append(ID_ABOUT, '&About...', 'About this program')
b = self.menuBar = wx.wxMenuBar()
b.Append(self.fileMenu, '&File')
b.Append(self.editMenu, '&Edit')
b.Append(self.optionsMenu, '&Options')
b.Append(self.helpMenu, '&Help')
self.SetMenuBar(b)
wx.EVT_MENU(self, ID_NEW, self.OnFileNew)
wx.EVT_MENU(self, ID_OPEN, self.OnFileOpen)
wx.EVT_MENU(self, ID_REVERT, self.OnFileRevert)
wx.EVT_MENU(self, ID_CLOSE, self.OnFileClose)
wx.EVT_MENU(self, ID_SAVE, self.OnFileSave)
wx.EVT_MENU(self, ID_SAVEAS, self.OnFileSaveAs)
wx.EVT_MENU(self, ID_NAMESPACE, self.OnFileUpdateNamespace)
wx.EVT_MENU(self, ID_PRINT, self.OnFilePrint)
wx.EVT_MENU(self, ID_EXIT, self.OnExit)
wx.EVT_MENU(self, ID_UNDO, self.OnUndo)
wx.EVT_MENU(self, ID_REDO, self.OnRedo)
wx.EVT_MENU(self, ID_CUT, self.OnCut)
wx.EVT_MENU(self, ID_COPY, self.OnCopy)
wx.EVT_MENU(self, ID_COPY_PLUS, self.OnCopyPlus)
wx.EVT_MENU(self, ID_PASTE, self.OnPaste)
wx.EVT_MENU(self, ID_PASTE_PLUS, self.OnPastePlus)
wx.EVT_MENU(self, ID_CLEAR, self.OnClear)
wx.EVT_MENU(self, ID_SELECTALL, self.OnSelectAll)
wx.EVT_MENU(self, ID_ABOUT, self.OnAbout)
wx.EVT_MENU(self, ID_AUTOCOMP_SHOW, self.OnAutoCompleteShow)
wx.EVT_MENU(self, ID_AUTOCOMP_MAGIC, self.OnAutoCompleteMagic)
wx.EVT_MENU(self, ID_AUTOCOMP_SINGLE, self.OnAutoCompleteSingle)
wx.EVT_MENU(self, ID_AUTOCOMP_DOUBLE, self.OnAutoCompleteDouble)
wx.EVT_MENU(self, ID_CALLTIPS_SHOW, self.OnCallTipsShow)
wx.EVT_MENU(self, ID_WRAP, self.OnWrap)
wx.EVT_UPDATE_UI(self, ID_NEW, self.OnUpdateMenu)
wx.EVT_UPDATE_UI(self, ID_OPEN, self.OnUpdateMenu)
wx.EVT_UPDATE_UI(self, ID_REVERT, self.OnUpdateMenu)
wx.EVT_UPDATE_UI(self, ID_CLOSE, self.OnUpdateMenu)
wx.EVT_UPDATE_UI(self, ID_SAVE, self.OnUpdateMenu)
wx.EVT_UPDATE_UI(self, ID_SAVEAS, self.OnUpdateMenu)
wx.EVT_UPDATE_UI(self, ID_NAMESPACE, self.OnUpdateMenu)
wx.EVT_UPDATE_UI(self, ID_PRINT, self.OnUpdateMenu)
wx.EVT_UPDATE_UI(self, ID_UNDO, self.OnUpdateMenu)
wx.EVT_UPDATE_UI(self, ID_REDO, self.OnUpdateMenu)
wx.EVT_UPDATE_UI(self, ID_CUT, self.OnUpdateMenu)
wx.EVT_UPDATE_UI(self, ID_COPY, self.OnUpdateMenu)
wx.EVT_UPDATE_UI(self, ID_COPY_PLUS, self.OnUpdateMenu)
wx.EVT_UPDATE_UI(self, ID_PASTE, self.OnUpdateMenu)
wx.EVT_UPDATE_UI(self, ID_PASTE_PLUS, self.OnUpdateMenu)
wx.EVT_UPDATE_UI(self, ID_CLEAR, self.OnUpdateMenu)
wx.EVT_UPDATE_UI(self, ID_SELECTALL, self.OnUpdateMenu)
wx.EVT_UPDATE_UI(self, ID_AUTOCOMP_SHOW, self.OnUpdateMenu)
wx.EVT_UPDATE_UI(self, ID_AUTOCOMP_MAGIC, self.OnUpdateMenu)
wx.EVT_UPDATE_UI(self, ID_AUTOCOMP_SINGLE, self.OnUpdateMenu)
wx.EVT_UPDATE_UI(self, ID_AUTOCOMP_DOUBLE, self.OnUpdateMenu)
wx.EVT_UPDATE_UI(self, ID_CALLTIPS_SHOW, self.OnUpdateMenu)
wx.EVT_UPDATE_UI(self, ID_WRAP, self.OnUpdateMenu)
def OnFileNew(self, event):
self.bufferNew()
def OnFileOpen(self, event):
self.bufferOpen()
def OnFileRevert(self, event):
self.bufferRevert()
def OnFileClose(self, event):
self.bufferClose()
def OnFileSave(self, event):
self.bufferSave()
def OnFileSaveAs(self, event):
self.bufferSaveAs()
def OnFileUpdateNamespace(self, event):
self.updateNamespace()
def OnFilePrint(self, event):
self.bufferPrint()
def OnExit(self, event):
self.Close(False)
def OnUndo(self, event):
win = wx.wxWindow_FindFocus()
win.Undo()
def OnRedo(self, event):
win = wx.wxWindow_FindFocus()
win.Redo()
def OnCut(self, event):
win = wx.wxWindow_FindFocus()
win.Cut()
def OnCopy(self, event):
win = wx.wxWindow_FindFocus()
win.Copy()
def OnCopyPlus(self, event):
win = wx.wxWindow_FindFocus()
win.CopyWithPrompts()
def OnPaste(self, event):
win = wx.wxWindow_FindFocus()
win.Paste()
def OnPastePlus(self, event):
win = wx.wxWindow_FindFocus()
win.PasteAndRun()
def OnClear(self, event):
win = wx.wxWindow_FindFocus()
win.Clear()
def OnSelectAll(self, event):
win = wx.wxWindow_FindFocus()
win.SelectAll()
def OnAbout(self, event):
"""Display an About window."""
title = 'About'
text = 'Your message here.'
dialog = wx.wxMessageDialog(self, text, title,
wx.wxOK | wx.wxICON_INFORMATION)
dialog.ShowModal()
dialog.Destroy()
def OnAutoCompleteShow(self, event):
win = wx.wxWindow_FindFocus()
win.autoComplete = event.IsChecked()
def OnAutoCompleteMagic(self, event):
win = wx.wxWindow_FindFocus()
win.autoCompleteIncludeMagic = event.IsChecked()
def OnAutoCompleteSingle(self, event):
win = wx.wxWindow_FindFocus()
win.autoCompleteIncludeSingle = event.IsChecked()
def OnAutoCompleteDouble(self, event):
win = wx.wxWindow_FindFocus()
win.autoCompleteIncludeDouble = event.IsChecked()
def OnCallTipsShow(self, event):
win = wx.wxWindow_FindFocus()
win.autoCallTip = event.IsChecked()
def OnWrap(self, event):
win = wx.wxWindow_FindFocus()
win.SetWrapMode(event.IsChecked())
def OnUpdateMenu(self, event):
"""Update menu items based on current status and context."""
win = wx.wxWindow_FindFocus()
id = event.GetId()
event.Enable(True)
try:
if id == ID_NEW:
event.Enable(hasattr(self, 'bufferNew'))
elif id == ID_OPEN:
event.Enable(hasattr(self, 'bufferOpen'))
elif id == ID_REVERT:
event.Enable(hasattr(self, 'bufferRevert') and self.hasBuffer())
elif id == ID_CLOSE:
event.Enable(hasattr(self, 'bufferClose') and self.hasBuffer())
elif id == ID_SAVE:
event.Enable(hasattr(self, 'bufferSave') and self.bufferHasChanged())
elif id == ID_SAVEAS:
event.Enable(hasattr(self, 'bufferSaveAs') and self.hasBuffer())
elif id == ID_NAMESPACE:
event.Enable(hasattr(self, 'updateNamespace') and self.hasBuffer())
elif id == ID_PRINT:
event.Enable(hasattr(self, 'bufferPrint') and self.hasBuffer())
elif id == ID_UNDO:
event.Enable(win.CanUndo())
elif id == ID_REDO:
event.Enable(win.CanRedo())
elif id == ID_CUT:
event.Enable(win.CanCut())
elif id == ID_COPY:
event.Enable(win.CanCopy())
elif id == ID_COPY_PLUS:
event.Enable(win.CanCopy() and hasattr(win, 'CopyWithPrompts'))
elif id == ID_PASTE:
event.Enable(win.CanPaste())
elif id == ID_PASTE_PLUS:
event.Enable(win.CanPaste() and hasattr(win, 'PasteAndRun'))
elif id == ID_CLEAR:
event.Enable(win.CanCut())
elif id == ID_SELECTALL:
event.Enable(hasattr(win, 'SelectAll'))
elif id == ID_AUTOCOMP_SHOW:
event.Check(win.autoComplete)
elif id == ID_AUTOCOMP_MAGIC:
event.Check(win.autoCompleteIncludeMagic)
elif id == ID_AUTOCOMP_SINGLE:
event.Check(win.autoCompleteIncludeSingle)
elif id == ID_AUTOCOMP_DOUBLE:
event.Check(win.autoCompleteIncludeDouble)
elif id == ID_CALLTIPS_SHOW:
event.Check(win.autoCallTip)
elif id == ID_WRAP:
event.Check(win.GetWrapMode())
else:
event.Enable(False)
except AttributeError:
# This menu option is not supported in the current context.
event.Enable(False)

View File

@@ -0,0 +1,71 @@
#----------------------------------------------------------------------
# This file was generated by ../scripts/img2py
#
from wxPython.wx import wxImageFromStream, wxBitmapFromImage
from wxPython.wx import wxEmptyIcon
import cStringIO
def getPyCrustData():
return \
'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00 \x00\x00\x00 \x08\x06\x00\
\x00\x00szz\xf4\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\x04\
\x95IDATx\x9c\xed\x97?lSG\x1c\xc7?\x97\x98\xd8Q\xa3\xdeY\xa2j\x06\xa4\xf7"QJ\
\xbb<3@\x01\xa9\xc2\x0c\xa8!\x1d\x1c6\xcaB\xa8D[uI2\xf4\x8f\xe8\x103\xb4\xa2\
,5\x0b\x03\x032C\xab\xc0\x92dh:t\xc0)*E\xcd@<Q\x01Rl\t\xd4D\xaa\xe4{R\xd0{&\
\xa5\xd7\xe1\xfc\xec\xe7\xfciR\x08e\xe9O\xb2\xee|\xfe\xbd\xfb}~\xdf\xdf\xbd\
\xbb\xb3PJ\xf1"\xad\xe3\x85F\xff\x1f\xe0y\x03h\xad\xcdA\xc7~\xb4\xd6f-\x9f\
\xc4\xf3\x0c>Y\x1c#\x97\xddCUk\xf4B\x8d3\x9f\x8d\x9a\x9bU%\xe2~b\xab\xdf\x82\
\x83N+\xd3\xe92\\\x1f\xcf\x93\xdd\x9f\xa1\xaa5\x95\xf9\n\xe7\xf3y\xe2\x10[V\
\x82H\xe6\xd3G\x1dN\xf7\xc3\xa7\xc7a\xc0\x83\xc3\xc7\xf3\xcc\xcc\xcd\xe3(\
\x85\xdb\xe7\xf2\xc9\xe8X\x1b\xe43+\x10\xd5\xb6\x94\x87Z\xe8\x90NU\x91I@\x00\
\x06\xbe\x18\xb7J\x98\xca$`\x98\xb9]&{,\x8fRV\x85\xa7V@k\x9bq)o\x83+\t\xe9T\
\xd5f\x95\x02\x91\xb4~_\r\xd9\xb6\xbaP\x03\x04n\x9f\xcbDa\xb8\t\xfe\xaf\x17a\
<\xe3\xc8\x94lo\x9b\xd6\xa8\xf4\x80\x07\xb7o\xcd\xe0\x0c\x0e\xa2R\x8a\xb4\
\x93n\xbal\x1a`e\xe0U\xc1\xd6\xb0\xb8\n\x99\x91"\x93\xaf\xba\xe4\x0ed\xda|6,\
\x81\xd6\xda\x9c|\xab]\xea\xcd\x04\x8f\x9b\t\xad\nz\xa1\x02\x80\xdb\xe7R\x1a\
\xcf\xa3\xb56\xeb\x02D5\x9e\xf8\xdc\xe1T\xff\xd3\x05\x8e\x82\x83U\xe1Z\xb1\
\x18\x9b\xbf\x06\xacQ\x82H\xea\x01/Z@Ut\x08R\xb4$}\x16\xd3\x81A&%\xde\xee\
\xbev\x80x\xe0]{\xb2\x1cR\xa5\xe6C*\xb5\xf1\xc4Q\xa6"e\xfbQ\x1b\x8dE\xe6\x87\
>\xaa[Q\xadi\x0b\xb0r\x8f\x9e.\xc3t\xb9\xc4]\xaf5\xf6\xfe\xdb\xddt&\x02\xfa\
\x9c\xf5\x01\xe2A\xa2\xbeX\x01>]ntR\x12\xe3[\x00\x01\x98\x89\x11[_\xed\xafn\
\xab\x81U\xa0\xe7I7\x00\x97o\x04\xcd\x89\x06<;\xe9\x80\x07]i\x97\xc17\x1f\
\xd2\xd3\x91`\xe9\xaf?\x01p^Y\x06Z\n\xfau8?a\xfb]i\x97\xec\xa1\x8c\x05(|\xd8\
N\xba\xb3\xab\x87\xfb\x8f\x97\xd8\xd9\xd5\x03\xc0\xfd\xc7K\xec\xd8\xd6\xdd\
\xfc\xfd\xc1r\xd0\xf4\x01\xda~\x03H\xf4\x04\xd4j :\xb75\xc7\xae\xfd\xbcLW\
\xda\xa5\xf0M\x1e\t\xcc\xcc\xcdq\xa9P@\x8c\xf5fL\xdaHF\x16g\x9a\x19\xad\xcc\
\xee\xcb\xa3\n\xad\xa1\xda\xf1\x08\xef\xe5\x97x\xf8\xc8f\xf8\xc7\x93:\xdb;\
\x93M\xc8\x08j\xc7\xb6n\x1e,\x07m`\x97o\x04|;>\xd1T\xc4\x17\x8a\x13\xb9\xc3\
\x88\x01\x0fs\xa4\x9cc}\xf3A\x190\x82\x1f\xddR{-\x1bV\xfc\xd8f\xba\xbd3\xd9\
\x06\x15\x07\xbb\xf8\xd3\x12\xdf]-"\x93\xb2\xb1C*\xde\xcd\x1d\xde\xccN(\xc1\
\xae\x17"\xd0#+<j\x17m{\xcd\x9bj\x00.\xaf\xf0Xb\xb8\xdfA\xa6\x14\x18\x03\x06\
\xb4o\xcf\x8d\xc4\xbervc\x86M\xdaz\x80\x00\x95T\x19?\xd0 @&%~c\xbc\xe3W\xaf\
\xb4e\x00\xffh\xc6@\xbd\x11\xbc\xde\x1a\xfe\xef.\xa5\xa2q4\n0\x81\xad\xe9\
\xae7<\x12\xaf\xf5\xc2hy\xaa\xe97\x9cS\\\x98\xb2\x0e\x03\xb1\xcdhW\xdaC\x1a\
\xa0\xa2\xa0\x0e"\x14`\xb0Y\x85\x1b\x1f\x12\xaa7\x03)\xd9\x84\xa8\xccW\xb8{\
\xa7L\xe2\xde\x02\x94\xc6Gp_\xcf\x80\x90\x98\xd0g\xf4\xac\x82Pc\x82\x1a\xd5\
\x10\x08}&\xa7J\xcc\xde.1]m\x80\xf6+\xee\xfd\xae\x9bo\xc4\xf0;\x80\xef\x90\
\x0e\x04\x06`Q!\x02\x05\xc2 \xb5\xc2\x95\x15d\xb4C&[\xf7\xd2\x04\x80\xbb\xdb\
\x9e\xd1\x8e\x02\x90\xd8\xd4$ I\x87\x80\xf1\xf1\xdc!4\xc3\x88\x94}\xd8,TH\
\xbb.5m\xf0C\x9f3\x1f\r\x01\x96.\x82\x1a9\xe9Q\xb8\xd2\xf8\xf25\x0c\xbe\xe7#\
\x92\x12\x1d[\x03\t\x00E\xf4\xa6\t\xaaZ7`$\x18\x90\xf8\xf8\x80JK\x94\xa1\x01\
\x07\xb8\x0e~X\xc3\xed\x16\xf8)\xf8~j\x12B\rI\x89_\xf7!0 \x04\xf9Q\xc0\x18\
\x0c\xd1i\xea\x13\xb7\x04\xc0\x89\x93C\xabj\xb6\xf7@\x96\xd9_J|0:\x86R\n\xb7\
\xd7@\xaa%\x9d\xa3$\xba.\x90RA]\xe3\x87\x1a\x89\xdd\xefeR\xc2\x1a\'\xa8\x1f\
\x82\x0e-@m\xd1\xde\x076\xbc\x15\x97~(\x9a\x89b\x9e\xd9[s\xab!\xf7g\xd6\x1c\
\x8f\xdb\xbel\x8e\xa1S\xc7\xda\xc6\xe6\xee\xccs\xe9\xdcYnV\x95\xd8\xf2?&q+\
\x9c\x1b1\xf3\xbf\xcd3{\xfdJ\xdb\xf8\xde\xfd\x19.\\\xad\x08\x80\xbf\x01\xd1\
\x86\xfa\x8b\xc7\xc0\xc8\xb7\x00\x00\x00\x00IEND\xaeB`\x82'
def getPyCrustBitmap():
return wxBitmapFromImage(getPyCrustImage())
def getPyCrustImage():
stream = cStringIO.StringIO(getPyCrustData())
return wxImageFromStream(stream)
def getPyCrustIcon():
icon = wxEmptyIcon()
icon.CopyFromBitmap(getPyCrustBitmap())
return icon

View File

@@ -0,0 +1,125 @@
"""PyCrust Interpreter executes Python commands."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import os
import sys
from code import InteractiveInterpreter
import dispatcher
import introspect
try:
True
except NameError:
True = 1==1
False = 1==0
class Interpreter(InteractiveInterpreter):
"""PyCrust Interpreter based on code.InteractiveInterpreter."""
revision = __revision__
def __init__(self, locals=None, rawin=None,
stdin=sys.stdin, stdout=sys.stdout, stderr=sys.stderr):
"""Create an interactive interpreter object."""
InteractiveInterpreter.__init__(self, locals=locals)
self.stdin = stdin
self.stdout = stdout
self.stderr = stderr
if rawin:
import __builtin__
__builtin__.raw_input = rawin
del __builtin__
copyright = 'Type "help", "copyright", "credits" or "license"'
copyright += ' for more information.'
self.introText = 'Python %s on %s%s%s' % \
(sys.version, sys.platform, os.linesep, copyright)
try:
sys.ps1
except AttributeError:
sys.ps1 = '>>> '
try:
sys.ps2
except AttributeError:
sys.ps2 = '... '
self.more = 0
# List of lists to support recursive push().
self.commandBuffer = []
self.startupScript = os.environ.get('PYTHONSTARTUP')
def push(self, command):
"""Send command to the interpreter to be executed.
Because this may be called recursively, we append a new list
onto the commandBuffer list and then append commands into
that. If the passed in command is part of a multi-line
command we keep appending the pieces to the last list in
commandBuffer until we have a complete command. If not, we
delete that last list."""
command = str(command) # In case the command is unicode.
if not self.more:
try: del self.commandBuffer[-1]
except IndexError: pass
if not self.more: self.commandBuffer.append([])
self.commandBuffer[-1].append(command)
source = '\n'.join(self.commandBuffer[-1])
more = self.more = self.runsource(source)
dispatcher.send(signal='Interpreter.push', sender=self,
command=command, more=more, source=source)
return more
def runsource(self, source):
"""Compile and run source code in the interpreter."""
stdin, stdout, stderr = sys.stdin, sys.stdout, sys.stderr
sys.stdin, sys.stdout, sys.stderr = \
self.stdin, self.stdout, self.stderr
more = InteractiveInterpreter.runsource(self, source)
# If sys.std* is still what we set it to, then restore it.
# But, if the executed source changed sys.std*, assume it was
# meant to be changed and leave it. Power to the people.
if sys.stdin == self.stdin:
sys.stdin = stdin
if sys.stdout == self.stdout:
sys.stdout = stdout
if sys.stderr == self.stderr:
sys.stderr = stderr
return more
def getAutoCompleteKeys(self):
"""Return list of auto-completion keycodes."""
return [ord('.')]
def getAutoCompleteList(self, command='', *args, **kwds):
"""Return list of auto-completion options for a command.
The list of options will be based on the locals namespace."""
stdin, stdout, stderr = sys.stdin, sys.stdout, sys.stderr
sys.stdin, sys.stdout, sys.stderr = \
self.stdin, self.stdout, self.stderr
l = introspect.getAutoCompleteList(command, self.locals,
*args, **kwds)
sys.stdin, sys.stdout, sys.stderr = stdin, stdout, stderr
return l
def getCallTip(self, command='', *args, **kwds):
"""Return call tip text for a command.
Call tip information will be based on the locals namespace."""
return introspect.getCallTip(command, self.locals, *args, **kwds)
class InterpreterAlaCarte(Interpreter):
"""PyCrustAlaCarte Demo Interpreter."""
def __init__(self, locals, rawin, stdin, stdout, stderr,
ps1='main prompt', ps2='continuation prompt'):
"""Create an interactive interpreter object."""
Interpreter.__init__(self, locals=locals, rawin=rawin,
stdin=stdin, stdout=stdout, stderr=stderr)
sys.ps1 = ps1
sys.ps2 = ps2

View File

@@ -0,0 +1,360 @@
"""Provides a variety of introspective-type support functions for
things like call tips and command auto completion."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
from __future__ import nested_scopes
import cStringIO
import inspect
import sys
import tokenize
import types
try:
True
except NameError:
True = 1==1
False = 1==0
def getAutoCompleteList(command='', locals=None, includeMagic=1,
includeSingle=1, includeDouble=1):
"""Return list of auto-completion options for command.
The list of options will be based on the locals namespace."""
attributes = []
# Get the proper chunk of code from the command.
root = getRoot(command, terminator='.')
try:
if locals is not None:
object = eval(root, locals)
else:
object = eval(root)
except:
pass
else:
attributes = getAttributeNames(object, includeMagic,
includeSingle, includeDouble)
return attributes
def getAttributeNames(object, includeMagic=1, includeSingle=1,
includeDouble=1):
"""Return list of unique attributes, including inherited, for object."""
attributes = []
dict = {}
if not hasattrAlwaysReturnsTrue(object):
# Add some attributes that don't always get picked up. If
# they don't apply, they'll get filtered out at the end.
attributes += ['__bases__', '__class__', '__dict__', '__name__',
'func_closure', 'func_code', 'func_defaults',
'func_dict', 'func_doc', 'func_globals', 'func_name']
if includeMagic:
try: attributes += object._getAttributeNames()
except: pass
# Get all attribute names.
attrdict = getAllAttributeNames(object)
for attrlist in attrdict.values():
attributes += attrlist
# Remove duplicates from the attribute list.
for item in attributes:
dict[item] = None
attributes = dict.keys()
attributes.sort(lambda x, y: cmp(x.upper(), y.upper()))
if not includeSingle:
attributes = filter(lambda item: item[0]!='_' \
or item[1]=='_', attributes)
if not includeDouble:
attributes = filter(lambda item: item[:2]!='__', attributes)
# Make sure we haven't picked up any bogus attributes somehow.
attributes = [attribute for attribute in attributes \
if hasattr(object, attribute)]
return attributes
def hasattrAlwaysReturnsTrue(object):
return hasattr(object, 'bogu5_123_aTTri8ute')
def getAllAttributeNames(object):
"""Return dict of all attributes, including inherited, for an object.
Recursively walk through a class and all base classes.
"""
attrdict = {} # (object, technique, count): [list of attributes]
# !!!
# Do Not use hasattr() as a test anywhere in this function,
# because it is unreliable with remote objects: xmlrpc, soap, etc.
# They always return true for hasattr().
# !!!
try:
# Yes, this can fail if object is an instance of a class with
# __str__ (or __repr__) having a bug or raising an
# exception. :-(
key = str(object)
except:
key = 'anonymous'
# Wake up sleepy objects - a hack for ZODB objects in "ghost" state.
wakeupcall = dir(object)
del wakeupcall
# Get attributes available through the normal convention.
attributes = dir(object)
attrdict[(key, 'dir', len(attributes))] = attributes
# Get attributes from the object's dictionary, if it has one.
try:
attributes = object.__dict__.keys()
attributes.sort()
except: # Must catch all because object might have __getattr__.
pass
else:
attrdict[(key, '__dict__', len(attributes))] = attributes
# For a class instance, get the attributes for the class.
try:
klass = object.__class__
except: # Must catch all because object might have __getattr__.
pass
else:
if klass is object:
# Break a circular reference. This happens with extension
# classes.
pass
else:
attrdict.update(getAllAttributeNames(klass))
# Also get attributes from any and all parent classes.
try:
bases = object.__bases__
except: # Must catch all because object might have __getattr__.
pass
else:
if isinstance(bases, types.TupleType):
for base in bases:
if type(base) is types.TypeType:
# Break a circular reference. Happens in Python 2.2.
pass
else:
attrdict.update(getAllAttributeNames(base))
return attrdict
def getCallTip(command='', locals=None):
"""For a command, return a tuple of object name, argspec, tip text.
The call tip information will be based on the locals namespace."""
calltip = ('', '', '') # object name, argspec, tip text.
# Get the proper chunk of code from the command.
root = getRoot(command, terminator='(')
try:
if locals is not None:
object = eval(root, locals)
else:
object = eval(root)
except:
return calltip
name = ''
object, dropSelf = getBaseObject(object)
try:
name = object.__name__
except AttributeError:
pass
tip1 = ''
argspec = ''
if inspect.isbuiltin(object):
# Builtin functions don't have an argspec that we can get.
pass
elif inspect.isfunction(object):
# tip1 is a string like: "getCallTip(command='', locals=None)"
argspec = apply(inspect.formatargspec, inspect.getargspec(object))
if dropSelf:
# The first parameter to a method is a reference to an
# instance, usually coded as "self", and is usually passed
# automatically by Python; therefore we want to drop it.
temp = argspec.split(',')
if len(temp) == 1: # No other arguments.
argspec = '()'
else: # Drop the first argument.
argspec = '(' + ','.join(temp[1:]).lstrip()
tip1 = name + argspec
doc = ''
if callable(object):
doc = inspect.getdoc(object)
if doc:
# tip2 is the first separated line of the docstring, like:
# "Return call tip text for a command."
# tip3 is the rest of the docstring, like:
# "The call tip information will be based on ... <snip>
firstline = doc.split('\n')[0].lstrip()
if tip1 == firstline:
tip1 = ''
else:
tip1 += '\n\n'
docpieces = doc.split('\n\n')
tip2 = docpieces[0]
tip3 = '\n\n'.join(docpieces[1:])
tip = '%s%s\n\n%s' % (tip1, tip2, tip3)
else:
tip = tip1
calltip = (name, argspec[1:-1], tip.strip())
return calltip
def getRoot(command, terminator=None):
"""Return the rightmost root portion of an arbitrary Python command.
Return only the root portion that can be eval()'d without side
effects. The command would normally terminate with a '(' or
'.'. The terminator and anything after the terminator will be
dropped."""
command = command.split('\n')[-1]
if command.startswith(sys.ps2):
command = command[len(sys.ps2):]
command = command.lstrip()
command = rtrimTerminus(command, terminator)
tokens = getTokens(command)
if not tokens:
return ''
if tokens[-1][0] is tokenize.ENDMARKER:
# Remove the end marker.
del tokens[-1]
if not tokens:
return ''
if terminator == '.' and \
(tokens[-1][1] <> '.' or tokens[-1][0] is not tokenize.OP):
# Trap decimals in numbers, versus the dot operator.
return ''
else:
# Strip off the terminator.
if terminator and command.endswith(terminator):
size = 0 - len(terminator)
command = command[:size]
command = command.rstrip()
tokens = getTokens(command)
tokens.reverse()
line = ''
start = None
prefix = ''
laststring = '.'
emptyTypes = ('[]', '()', '{}')
for token in tokens:
tokentype = token[0]
tokenstring = token[1]
line = token[4]
if tokentype is tokenize.ENDMARKER:
continue
if tokentype in (tokenize.NAME, tokenize.STRING, tokenize.NUMBER) \
and laststring != '.':
# We've reached something that's not part of the root.
if prefix and line[token[3][1]] != ' ':
# If it doesn't have a space after it, remove the prefix.
prefix = ''
break
if tokentype in (tokenize.NAME, tokenize.STRING, tokenize.NUMBER) \
or (tokentype is tokenize.OP and tokenstring == '.'):
if prefix:
# The prefix isn't valid because it comes after a dot.
prefix = ''
break
else:
# start represents the last known good point in the line.
start = token[2][1]
elif len(tokenstring) == 1 and tokenstring in ('[({])}'):
# Remember, we're working backwords.
# So prefix += tokenstring would be wrong.
if prefix in emptyTypes and tokenstring in ('[({'):
# We've already got an empty type identified so now we
# are in a nested situation and we can break out with
# what we've got.
break
else:
prefix = tokenstring + prefix
else:
# We've reached something that's not part of the root.
break
laststring = tokenstring
if start is None:
start = len(line)
root = line[start:]
if prefix in emptyTypes:
# Empty types are safe to be eval()'d and introspected.
root = prefix + root
return root
def getTokens(command):
"""Return list of token tuples for command."""
command = str(command) # In case the command is unicode, which fails.
f = cStringIO.StringIO(command)
# tokens is a list of token tuples, each looking like:
# (type, string, (srow, scol), (erow, ecol), line)
tokens = []
# Can't use list comprehension:
# tokens = [token for token in tokenize.generate_tokens(f.readline)]
# because of need to append as much as possible before TokenError.
try:
## This code wasn't backward compatible with Python 2.1.3.
##
## for token in tokenize.generate_tokens(f.readline):
## tokens.append(token)
# This works with Python 2.1.3 (with nested_scopes).
def eater(*args):
tokens.append(args)
tokenize.tokenize_loop(f.readline, eater)
except tokenize.TokenError:
# This is due to a premature EOF, which we expect since we are
# feeding in fragments of Python code.
pass
return tokens
def rtrimTerminus(command, terminator=None):
"""Return command minus anything that follows the final terminator."""
if terminator:
pieces = command.split(terminator)
if len(pieces) > 1:
command = terminator.join(pieces[:-1]) + terminator
return command
def getBaseObject(object):
"""Return base object and dropSelf indicator for an object."""
if inspect.isbuiltin(object):
# Builtin functions don't have an argspec that we can get.
dropSelf = 0
elif inspect.ismethod(object):
# Get the function from the object otherwise
# inspect.getargspec() complains that the object isn't a
# Python function.
try:
if object.im_self is None:
# This is an unbound method so we do not drop self
# from the argspec, since an instance must be passed
# as the first arg.
dropSelf = 0
else:
dropSelf = 1
object = object.im_func
except AttributeError:
dropSelf = 0
elif inspect.isclass(object):
# Get the __init__ method function for the class.
constructor = getConstructor(object)
if constructor is not None:
object = constructor
dropSelf = 1
else:
dropSelf = 0
elif callable(object):
# Get the __call__ method instead.
try:
object = object.__call__.im_func
dropSelf = 1
except AttributeError:
dropSelf = 0
else:
dropSelf = 0
return object, dropSelf
def getConstructor(object):
"""Return constructor for class object, or None if there isn't one."""
try:
return object.__init__.im_func
except AttributeError:
for base in object.__bases__:
constructor = getConstructor(base)
if constructor is not None:
return constructor
return None

View File

@@ -0,0 +1,107 @@
"""Provides a variety of classes to create pseudo keywords and pseudo files."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
try:
True
except NameError:
True = 1==1
False = 1==0
class PseudoKeyword:
"""A callable class that calls a method passed as a parameter.
Good for creating a pseudo keyword in the python runtime
environment. The keyword is really an object that has a repr()
that calls itself which calls the method that was passed in the
init of the object. All this just to avoid having to type in the
closing parens on a method. So, for example:
>>> quit = PseudoKeyword(SomeObject.someMethod)
>>> quit
SomeObject.someMethod gets executed as if it had been called
directly and the user didn't have to type the parens, like
'quit()'. This technique is most applicable for pseudo keywords
like quit, exit and help.
If SomeObject.someMethod can take parameters, they can still be
passed by using the keyword in the traditional way with parens."""
def __init__(self, method):
"""Create a callable object that executes method when called."""
if callable(method):
self.method = method
else:
raise ValueError, 'method must be callable'
def __call__(self, *args, **kwds):
self.method(*args, **kwds)
def __repr__(self):
self()
return ''
class PseudoFile:
def __init__(self):
"""Create a file-like object."""
pass
def readline(self):
pass
def write(self, s):
pass
def writelines(self, l):
map(self.write, l)
def flush(self):
pass
def isatty(self):
pass
class PseudoFileIn(PseudoFile):
def __init__(self, readline, readlines=None):
if callable(readline):
self.readline = readline
else:
raise ValueError, 'readline must be callable'
if callable(readlines):
self.readlines = readlines
def isatty(self):
return 1
class PseudoFileOut(PseudoFile):
def __init__(self, write):
if callable(write):
self.write = write
else:
raise ValueError, 'write must be callable'
def isatty(self):
return 1
class PseudoFileErr(PseudoFile):
def __init__(self, write):
if callable(write):
self.write = write
else:
raise ValueError, 'write must be callable'
def isatty(self):
return 1

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,82 @@
#!/usr/bin/env python
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import unittest
# Import from this module's parent directory.
import os
import sys
sys.path.insert(0, os.pardir)
import interpreter
del sys.path[0]
del sys
del os
"""
These unittest methods are preferred:
-------------------------------------
self.assert_(expr, msg=None)
self.assertEqual(first, second, msg=None)
self.assertRaises(excClass, callableObj, *args, **kwargs)
self.fail(msg=None)
self.failIf(expr, msg=None)
"""
class ModuleTestCase(unittest.TestCase):
def test_module(self):
module = interpreter
self.assert_(module.__author__)
self.assert_(module.__cvsid__)
self.assert_(module.__revision__)
self.assert_(module.Interpreter)
self.assert_(module.Interpreter.push)
self.assert_(module.Interpreter.runsource)
self.assert_(module.Interpreter.getAutoCompleteList)
self.assert_(module.Interpreter.getCallTip)
self.assert_(module.InterpreterAlaCarte)
class InterpreterTestCase(unittest.TestCase):
def setUp(self):
self.output = ''
self.i = interpreter.Interpreter(stdout=self)
def write(self, text):
"""Capture output from self.i.push()."""
self.output += text
def tearDown(self):
self.output = ''
self.i = None
del self.i
def test_more(self):
self.assertEqual(self.i.push('dir()'), 0)
self.assertEqual(self.i.push('for n in range(3):'), 1)
def test_push(self):
values = (
('dir', '<built-in function dir>'),
('dir()', "['__builtins__', '__doc__', '__name__']"),
('2 + 2', '4'),
('d = {}', ''),
('d', '{}'),
('del d', ''),
('len([4,5,6])', '3'),
)
for input, output in values:
if output: output += '\n'
self.i.push(input)
self.assertEqual(self.output, output)
self.output = ''
if __name__ == '__main__':
unittest.main()

View File

@@ -0,0 +1,862 @@
#!/usr/bin/env python
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import unittest
# Import from this module's parent directory.
import os
import sys
sys.path.insert(0, os.pardir)
import introspect
del sys.path[0]
del sys
del os
"""
These unittest methods are preferred:
-------------------------------------
self.assert_(expr, msg=None)
self.assertEqual(first, second, msg=None)
self.assertRaises(excClass, callableObj, *args, **kwargs)
self.fail(msg=None)
self.failIf(expr, msg=None)
"""
class ModuleTestCase(unittest.TestCase):
def test_module(self):
module = introspect
self.assert_(module.__author__)
self.assert_(module.__cvsid__)
self.assert_(module.__revision__)
self.assert_(module.getAllAttributeNames)
self.assert_(module.getAttributeNames)
self.assert_(module.getAutoCompleteList)
self.assert_(module.getBaseObject)
self.assert_(module.getCallTip)
self.assert_(module.getConstructor)
self.assert_(module.getRoot)
self.assert_(module.rtrimTerminus)
class RtrimTerminusTestCase(unittest.TestCase):
def test_rtrimTerminus(self):
values = (
('', '', ''),
('', None, ''),
('', '.', ''),
('', '(', ''),
('.', '', '.'),
('.', None, '.'),
('.', '.', '.'),
('.', '(', '.'),
('(', '', '('),
('(', None, '('),
('(', '.', '('),
('(', '(', '('),
('spam', '', 'spam'),
('spam', None, 'spam'),
('spam', '.', 'spam'),
('spam', '(', 'spam'),
('spam.', '', 'spam.'),
('spam.', None, 'spam.'),
('spam.', '.', 'spam.'),
('spam.', '(', 'spam.'),
('spam(', '', 'spam('),
('spam(', None, 'spam('),
('spam(', '.', 'spam('),
('spam(', '(', 'spam('),
('spam.eggs', '.', 'spam.'),
('spam.eggs.', '.', 'spam.eggs.'),
('spam.eggs(', '(', 'spam.eggs('),
('spam.eggs.', '(', 'spam.eggs.'),
('spam.eggs(', '.', 'spam.'),
('x = spam.', '.', 'x = spam.'),
('x = spam.eggs', '.', 'x = spam.'),
('x = spam.eggs.', '.', 'x = spam.eggs.'),
('x = spam.eggs(', '(', 'x = spam.eggs('),
)
for input, terminator, output in values:
result = introspect.rtrimTerminus(input, terminator)
self.assertEqual(result, output,
':in: %r :t: %r :out: %r :result: %r' %
(input, terminator, output, result))
class GetRootTestCase(unittest.TestCase):
def _checkRoot(self, input, terminator, output):
root = introspect.getRoot(command=input, terminator=terminator)
self.assertEqual(root, output,
':in: %r :t: %r :out: %r :root: %r' %
(input, terminator, output, root))
def test_getRoot(self):
values = (
('', '', ''),
('', None, ''),
('', '.', ''),
('', '(', ''),
('.', '', '.'),
('.', None, '.'),
('.', '.', ''),
('.', '(', '.'),
('(', '', ''),
('(', None, ''),
('(', '.', ''),
('(', '(', ''),
('spam', '', 'spam'),
('spam', None, 'spam'),
('spam', '.', ''),
('spam', '(', 'spam'),
('spam.', '', 'spam.'),
('spam.', None, 'spam.'),
('spam.', '.', 'spam'),
('spam.', '(', 'spam.'),
('spam(', '', ''),
('spam(', None, ''),
('spam(', '.', ''),
('spam(', '(', 'spam'),
('spam.eggs', '.', 'spam'),
('spam.eggs.', '.', 'spam.eggs'),
('spam.eggs(', '(', 'spam.eggs'),
('spam.eggs.', '(', 'spam.eggs.'),
('spam.eggs(', '.', 'spam'),
('x = spam.', '.', 'spam'),
('x = spam.eggs', '.', 'spam'),
('x = spam.eggs.', '.', 'spam.eggs'),
('x = spam.eggs(', '(', 'spam.eggs'),
('for n in range(3):\n d.', '.', 'd'),
('for n in range(3):\n... d.', '.', 'd'),
)
for input, terminator, output in values:
self._checkRoot(input, terminator, output)
def test_getRoot_Advanced(self):
values = (
('spam_', '', 'spam_'),
('spam_', None, 'spam_'),
('spam_', '.', ''),
('spam_', '(', 'spam_'),
('_spam', '', '_spam'),
('_spam', None, '_spam'),
('_spam', '.', ''),
('_spam', '(', '_spam'),
('spam_eggs', '', 'spam_eggs'),
('spam_eggs', None, 'spam_eggs'),
('spam_eggs', '.', ''),
('spam_eggs', '(', 'spam_eggs'),
('spam123', '', 'spam123'),
('spam123', None, 'spam123'),
('spam123', '.', ''),
('spam123', '(', 'spam123'),
('spam_123', '', 'spam_123'),
('spam_123', None, 'spam_123'),
('spam_123', '.', ''),
('spam_123', '(', 'spam_123'),
)
for input, terminator, output in values:
self._checkRoot(input, terminator, output)
## The original intent was to detect when we were inside a string.
## That has proven to be very difficult, for little benefit.
## The fact that autocomplete or calltips might be triggered inside
## a string is not a big deal. Sometimes it is even helpful.
## def test_getRoot_InsideStrings(self):
## values = (
## ('x = ".', '.', ''),
## ("x = '.", '.', ''),
## ('x = """.', '.', ''),
## ("x = '''.", '.', ''),
##
## ('x = "(', '(', ''),
## ("x = '(", '(', ''),
## ('x = """(', '(', ''),
## ("x = '''(", '(', ''),
##
## ('x = "spam', '.', ''),
## ('x = "spam.', '.', ''),
## ("x = 'spam.", '.', ''),
## ('x = """spam.', '.', ''),
## ("x = '''spam.", '.', ''),
##
## ('x = "spam', '(', ''),
## ('x = "spam(', '(', ''),
## ("x = 'spam(", '(', ''),
## ('x = """spam(', '(', ''),
## ("x = '''spam(", '(', ''),
##
## ('x = "spam.eggs.', '.', ''),
## ("x = 'spam.eggs.", '.', ''),
## ('x = """spam.eggs.', '.', ''),
## ("x = '''spam.eggs.", '.', ''),
##
## ('x = "spam.eggs(', '(', ''),
## ("x = 'spam.eggs(", '(', ''),
## ('x = """spam.eggs(', '(', ''),
## ("x = '''spam.eggs(", '(', ''),
## )
## for input, terminator, output in values:
## self._checkRoot(input, terminator, output)
def test_getRoot_EmptyTypes(self):
values = (
("''.", '.', "''"),
('"".', '.', '""'),
('"""""".', '.', '""""""'),
("''''''.", '.', "''''''"),
('[].', '.', '[]'),
('().', '.', '()'),
('{}.', '.', '{}'),
('[](', '(', '[]'),
('()(', '(', '()'),
('{}(', '(', '{}'),
("x = ''.", '.', "''"),
('x = "".', '.', '""'),
('x = """""".', '.', '""""""'),
("x = ''''''.", '.', "''''''"),
('x = [].', '.', '[]'),
('x = ().', '.', '()'),
('x = {}.', '.', '{}'),
('x = [](', '(', '[]'),
('x = ()(', '(', '()'),
('x = {}(', '(', '{}'),
('print [].', '.', '[]'),
('print ().', '.', '()'),
('print {}.', '.', '{}'),
('print [](', '(', '[]'),
('print ()(', '(', '()'),
('print {}(', '(', '{}'),
("''.attr.", '.', "''.attr"),
('"".attr.', '.', '"".attr'),
('"""""".attr.', '.', '"""""".attr'),
("''''''.attr.", '.', "''''''.attr"),
('[].attr.', '.', '[].attr'),
('().attr.', '.', '().attr'),
('{}.attr.', '.', '{}.attr'),
('[].attr(', '(', '[].attr'),
('().attr(', '(', '().attr'),
('{}.attr(', '(', '{}.attr'),
('spam().', '.', ''),
('spam_().', '.', ''),
('spam5().', '.', ''),
('spam[]().', '.', ''),
('spam()[].', '.', ''),
('spam[]{}.', '.', ''),
("spam(''.", '.', "''"),
('spam("".', '.', '""'),
('spam("""""".', '.', '""""""'),
("spam(''''''.", '.', "''''''"),
('spam([].', '.', '[]'),
('spam(().', '.', '()'),
('spam({}.', '.', '{}'),
('spam[[].', '.', '[]'),
('spam[().', '.', '()'),
('spam[{}.', '.', '{}'),
('x = {[].', '.', '[]'),
('x = {().', '.', '()'),
('x = {{}.', '.', '{}'),
('spam,[].', '.', '[]'),
('spam+[].', '.', '[]'),
('spam-[].', '.', '[]'),
('spam*[].', '.', '[]'),
('spam/[].', '.', '[]'),
('spam=[].', '.', '[]'),
('spam%[].', '.', '[]'),
('spam<[].', '.', '[]'),
('spam>[].', '.', '[]'),
('spam&[].', '.', '[]'),
('spam|[].', '.', '[]'),
('spam^[].', '.', '[]'),
('spam~[].', '.', '[]'),
('spam:[].', '.', '[]'),
('spam,().', '.', '()'),
('spam+().', '.', '()'),
('spam-().', '.', '()'),
('spam*().', '.', '()'),
('spam/().', '.', '()'),
('spam=().', '.', '()'),
('spam%().', '.', '()'),
('spam<().', '.', '()'),
('spam>().', '.', '()'),
('spam&().', '.', '()'),
('spam|().', '.', '()'),
('spam^().', '.', '()'),
('spam~().', '.', '()'),
('spam:().', '.', '()'),
('spam,{}.', '.', '{}'),
('spam+{}.', '.', '{}'),
('spam-{}.', '.', '{}'),
('spam*{}.', '.', '{}'),
('spam/{}.', '.', '{}'),
('spam={}.', '.', '{}'),
('spam%{}.', '.', '{}'),
('spam<{}.', '.', '{}'),
('spam>{}.', '.', '{}'),
('spam&{}.', '.', '{}'),
('spam|{}.', '.', '{}'),
('spam^{}.', '.', '{}'),
('spam~{}.', '.', '{}'),
('spam:{}.', '.', '{}'),
)
for input, terminator, output in values:
self._checkRoot(input, terminator, output)
# Support for GetBaseObjectTestCase and GetAttributeNamesTestCase.
class Foo:
def __init__(self):
pass
def __del__(self):
pass
def _private(self):
pass
class Bar:
pass
class Spam:
def __call__(self):
pass
def foo(self):
pass
def bar(spam):
# It shouldn't matter what we call "self".
pass
def eggs(self):
pass
def ham(eggs):
pass
class GetBaseObjectTestCase(unittest.TestCase):
def test_getBaseObject(self):
spam = Spam()
eggs = Spam.eggs
listappend = [].append
spamda = lambda: None
values = (
('spam', 'spam', 0),
(123, 123, 0),
(12.3, 12.3, 0),
([], [], 0),
((), (), 0),
({}, {}, 0),
# Builtin function.
(len, len, 0),
# Builtin method.
(listappend, listappend, 0),
# User function.
(ham, ham, 0),
# Byte-compiled code.
(ham.func_code, ham.func_code, 0),
# Lambda.
(spamda, spamda, 0),
# Class with init.
(Foo, Foo.__init__.im_func, 1),
# Class with no init.
(Bar, Bar, 0),
# Bound method.
(spam.foo, spam.foo.im_func, 1),
# Bound method with self named something else (spam).
(spam.bar, spam.bar.im_func, 1),
# Unbound method. (Do not drop the self argument.)
(eggs, eggs.im_func, 0),
# Callable instance.
(spam, spam.__call__.im_func, 1),
)
for object, baseObject, dropSelf in values:
result = introspect.getBaseObject(object)
self.assertEqual(result, (baseObject, dropSelf))
class GetAttributeTestCase(unittest.TestCase):
"""Base class for other test case classes."""
def setUp(self):
self.values = (
'__abs__',
'__add__',
'__and__',
'__base__',
'__bases__',
'__basicsize__',
'__builtins__',
'__call__',
'__class__',
'__cmp__',
'__coerce__',
'__contains__',
'__del__',
'__delattr__',
'__delitem__',
'__delslice__',
'__dict__',
'__dictoffset__',
'__div__',
'__divmod__',
'__doc__',
'__eq__',
'__file__',
'__flags__',
'__float__',
'__floordiv__',
'__ge__',
'__get__',
'__getattr__',
'__getattribute__',
'__getitem__',
'__getslice__',
'__gt__',
'__hash__',
'__hex__',
'__iadd__',
'__imul__',
'__init__',
'__int__',
'__invert__',
'__itemsize__',
'__iter__',
'__le__',
'__len__',
'__long__',
'__lshift__',
'__lt__',
'__mod__',
'__module__',
'__mro__',
'__mul__',
'__name__',
'__ne__',
'__neg__',
'__new__',
'__nonzero__',
'__oct__',
'__or__',
'__path__',
'__pos__',
'__pow__',
'__radd__',
'__rand__',
'__rdiv__',
'__rdivmod__',
'__reduce__',
'__repr__',
'__rfloordiv__',
'__rlshift__',
'__rmod__',
'__rmul__',
'__ror__',
'__rpow__',
'__rrshift__',
'__rshift__',
'__rsub__',
'__rtruediv__',
'__rxor__',
'__self__',
'__setattr__',
'__setitem__',
'__setslice__',
'__str__',
'__sub__',
'__subclasses__',
'__truediv__',
'__warningregistry__',
'__weakrefoffset__',
'__xor__',
'append',
'capitalize',
'center',
'clear',
'close',
'closed',
'co_argcount',
'co_cellvars',
'co_code',
'co_consts',
'co_filename',
'co_firstlineno',
'co_flags',
'co_freevars',
'co_lnotab',
'co_name',
'co_names',
'co_nlocals',
'co_stacksize',
'co_varnames',
'conjugate',
'copy',
'count',
'decode',
'encode',
'endswith',
'expandtabs',
'extend',
'fileno',
'find',
'flush',
'func_closure',
'func_code',
'func_defaults',
'func_dict',
'func_doc',
'func_globals',
'func_name',
'get',
'has_key',
'im_class',
'im_func',
'im_self',
'imag',
'index',
'insert',
'isalnum',
'isalpha',
'isatty',
'isdigit',
'islower',
'isspace',
'istitle',
'isupper',
'items',
'iteritems',
'iterkeys',
'itervalues',
'join',
'keys',
'ljust',
'lower',
'lstrip',
'mode',
'mro',
'name',
'pop',
'popitem',
'real',
'read',
'readinto',
'readline',
'readlines',
'remove',
'replace',
'reverse',
'rfind',
'rindex',
'rjust',
'rstrip',
'seek',
'setdefault',
'softspace',
'sort',
'split',
'splitlines',
'start',
'startswith',
'step',
'stop',
'strip',
'swapcase',
'tell',
'title',
'tolist',
'translate',
'truncate',
'update',
'upper',
'values',
'write',
'writelines',
'xreadlines',
)
# Since getAllAttributeNames() calls str(object),
# we need to test for a broken __str__ method.
class BrokenStr:
def __str__(self):
raise Exception
brokenStr = BrokenStr()
class GetAttributeNamesTestCase(GetAttributeTestCase):
def setUp(self):
GetAttributeTestCase.setUp(self)
import PyCrust
spam = Spam()
self.f = open('test_introspect.py')
self.items = (
None,
int(123),
long(123),
float(123),
complex(123),
"",
unicode(""),
[],
(),
xrange(0),
{},
# Builtin function.
len,
# Builtin method.
[].append,
# User function.
ham,
# Byte-compiled code.
ham.func_code,
# Lambda.
lambda: None,
# Class with no init.
Bar,
# Instance with no init.
Bar(),
# Class with init and del.
Foo,
# Instance with init and del.
Foo(),
# Bound method.
spam.foo,
# Unbound method.
Spam.eggs,
# Callable instance.
spam,
# Module.
introspect,
# Package.
PyCrust,
# Buffer.
buffer(''),
# File.
self.f,
# Slice.
slice(0),
# Ellipsis.
Ellipsis,
# BrokenStr class.
BrokenStr,
# BrokenStr instance.
brokenStr,
)
def tearDown(self):
self.items = None
self.f.close()
def test_getAttributeNames(self):
for item in self.items:
self._checkAttributeNames(item)
if __builtins__.has_key('object'):
self._checkAttributeNames(object)
def test_getAttributeNames_NoSingle(self):
for item in self.items:
result = introspect.getAttributeNames(item, includeSingle=0)
attributes = [attribute for attribute in result \
if attribute[0] != '_' or attribute[:2] == '__']
self.assertEqual(result, attributes,
':item: %r' % (item,))
def test_getAttributeNames_NoDouble(self):
for item in self.items:
result = introspect.getAttributeNames(item, includeDouble=0)
attributes = [attribute for attribute in result \
if attribute[:2] != '__']
self.assertEqual(result, attributes,
':item: %r' % (item,))
def test_getAttributeNames_NoSingleOrDouble(self):
for item in self.items:
result = introspect.getAttributeNames(item, includeSingle=0,
includeDouble=0)
attributes = [attribute for attribute in result \
if attribute[0] != '_']
self.assertEqual(result, attributes,
':item: %r' % (item,))
def _checkAttributeNames(self, item):
result = introspect.getAttributeNames(item)
attributes = [attribute for attribute in self.values \
if hasattr(item, attribute)]
for attribute in attributes:
self.assert_(attribute in result,
':item: %r :attribute: %r' % (item, attribute))
class GetAutoCompleteListTestCase(GetAttributeTestCase):
def setUp(self):
GetAttributeTestCase.setUp(self)
self.items = (
'None.',
'123 .',
'"".',
'[].',
'().',
'{}.',
# Builtin function.
'len.',
# Builtin method.
'[].append.',
)
def test_getAutoCompleteList(self):
for item in self.items:
result = introspect.getAutoCompleteList(item)
object = eval(item[:-1])
attributes = [attribute for attribute in self.values \
if hasattr(object, attribute)]
for attribute in attributes:
self.assert_(attribute in result,
':item: %r :attribute: %r' % (item, attribute))
def test_getAutoCompleteList_NoSingle(self):
for item in self.items:
result = introspect.getAutoCompleteList(item, includeSingle=0)
attributes = [attribute for attribute in result \
if attribute[0] != '_' or attribute[:2] == '__']
self.assertEqual(result, attributes,
':item: %r' % (item,))
def test_getAutoCompleteList_NoDouble(self):
for item in self.items:
result = introspect.getAutoCompleteList(item, includeDouble=0)
attributes = [attribute for attribute in result \
if attribute[:2] != '__']
self.assertEqual(result, attributes,
':item: %r' % (item,))
def test_getAutoCompleteList_NoSingleOrDouble(self):
for item in self.items:
result = introspect.getAutoCompleteList(item, includeSingle=0,
includeDouble=0)
attributes = [attribute for attribute in result \
if attribute[0] != '_']
self.assertEqual(result, attributes,
':item: %r' % (item,))
# Support for GetConstructorTestCase.
class A1:
def __init__(self, a):
self.a = a
class B1(A1):
def __init__(self, b):
self.b = b
class C1(A1):
pass
class D1(C1, B1):
pass
if __builtins__.has_key('object'):
class A2(object):
def __init__(self, a):
self.a = a
class B2(A2):
def __init__(self, b):
self.b = b
class C2(A2):
pass
class D2(C2, B2):
pass
class N:
pass
class O:
def __init__(self, a, b=2, *args, **kwargs):
pass
class P(O):
pass
class Q(P):
def __init__(self, c, d=4):
pass
class GetConstructorTestCase(unittest.TestCase):
def test_getConstructor(self):
args = ('self', 'a', 'b', 'args', 'kwargs')
varnames = introspect.getConstructor(O).func_code.co_varnames
self.assertEqual(varnames, args)
varnames = introspect.getConstructor(P).func_code.co_varnames
self.assertEqual(varnames, args)
args = ('self', 'c', 'd')
varnames = introspect.getConstructor(Q).func_code.co_varnames
self.assertEqual(varnames, args)
def test_getConstructor_None(self):
values = (N, 1, 'spam', {}, [], (), dir)
for value in values:
self.assertEqual(introspect.getConstructor(N), None)
def test_getConstructor_MultipleInheritance(self):
# Test old style inheritance rules.
args = ('self', 'a')
varnames = introspect.getConstructor(D1).func_code.co_varnames
self.assertEqual(varnames, args)
if __builtins__.has_key('object'):
# Test new style inheritance rules as well.
args = ('self', 'b')
varnames = introspect.getConstructor(D2).func_code.co_varnames
self.assertEqual(varnames, args)
if __name__ == '__main__':
unittest.main()

View File

@@ -0,0 +1,81 @@
#!/usr/bin/env python
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import unittest
# Import from this module's parent directory.
import os
import sys
sys.path.insert(0, os.pardir)
import pseudo
del sys.path[0]
del sys
del os
"""
These unittest methods are preferred:
-------------------------------------
self.assert_(expr, msg=None)
self.assertEqual(first, second, msg=None)
self.assertRaises(excClass, callableObj, *args, **kwargs)
self.fail(msg=None)
self.failIf(expr, msg=None)
"""
class ModuleTestCase(unittest.TestCase):
def test_module(self):
module = pseudo
self.assert_(module.__author__)
self.assert_(module.__cvsid__)
self.assert_(module.__revision__)
self.assert_(module.PseudoFile)
self.assert_(module.PseudoFileErr)
self.assert_(module.PseudoFileIn)
self.assert_(module.PseudoFileOut)
self.assert_(module.PseudoKeyword)
class PseudoTestCase(unittest.TestCase):
def setUp(self):
pass
def tearDown(self):
pass
class PseudoFileTestCase(unittest.TestCase):
def setUp(self):
pass
def tearDown(self):
pass
class PseudoFileOutTestCase(unittest.TestCase):
def setUp(self):
pass
def tearDown(self):
pass
def _write(self):
pass
def test_PseudoFileOut_goodInit(self):
self.assert_(pseudo.PseudoFileOut(write=self._write))
def test_PseudoFileOut_badInit(self):
self.assertRaises(ValueError, pseudo.PseudoFileOut, write='bad')
if __name__ == '__main__':
unittest.main()

View File

@@ -0,0 +1,49 @@
#!/usr/bin/env python
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import unittest
import types
# Import from this module's parent directory.
import os
import sys
sys.path.insert(0, os.pardir)
import version
del sys.path[0]
del sys
del os
"""
These unittest methods are preferred:
-------------------------------------
self.assert_(expr, msg=None)
self.assertEqual(first, second, msg=None)
self.assertRaises(excClass, callableObj, *args, **kwargs)
self.fail(msg=None)
self.failIf(expr, msg=None)
"""
class ModuleTestCase(unittest.TestCase):
def test_module(self):
module = version
self.assert_(module.__author__)
self.assert_(module.__cvsid__)
self.assert_(module.__revision__)
self.assert_(module.VERSION)
class VersionTestCase(unittest.TestCase):
def test_VERSION(self):
self.assert_(type(version.VERSION) is types.StringType)
if __name__ == '__main__':
unittest.main()

View File

@@ -0,0 +1,25 @@
#!/usr/bin/env python
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import unittest
import glob
import os
def suite():
"""Return a test suite containing all test cases in all test modules.
Searches the current directory for any modules matching test_*.py."""
suite = unittest.TestSuite()
for filename in glob.glob('test_*.py'):
module = __import__(os.path.splitext(filename)[0])
suite.addTest(unittest.defaultTestLoader.loadTestsFromModule(module))
return suite
if __name__ == '__main__':
unittest.main(defaultTest='suite')

View File

@@ -0,0 +1,11 @@
"""Provides an object representing the current 'version' or 'release'
of PyCrust as a whole. Individual classes, such as the shell, filling
and interpreter, each have a revision property based on the CVS
Revision."""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
VERSION = '0.9.1'

View File

@@ -0,0 +1,58 @@
"""Decorator classes for documentation and shell scripting.
"""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
# These are not the real wxPython classes. These are Python versions
# for documentation purposes. They are also used to apply docstrings
# to the real wxPython classes, which are SWIG-generated wrappers for
# C-language classes.
from Base import Object
import Parameters as wx
class AcceleratorEntry:
""""""
def __init__(self):
""""""
pass
def __del__(self):
""""""
pass
def GetCommand(self):
""""""
pass
def GetFlags(self):
""""""
pass
def GetKeyCode(self):
""""""
pass
def Set(self):
""""""
pass
class AcceleratorTable(Object):
""""""
def __init__(self):
""""""
pass
def __del__(self):
""""""
pass

View File

@@ -0,0 +1,358 @@
"""Decorator classes for documentation and shell scripting.
"""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
# These are not the real wxPython classes. These are Python versions
# for documentation purposes. They are also used to apply docstrings
# to the real wxPython classes, which are SWIG-generated wrappers for
# C-language classes.
from Base import EvtHandler
import Parameters as wx
try:
True
except NameError:
True = 1==1
False = 1==0
class PyApp(EvtHandler):
"""Python Application base class.
It is used to:
- set and get application-wide properties;
- implement the windowing system message or event loop;
- initiate application processing via App.OnInit;
- allow default processing of events not handled by other objects
in the application."""
def __init__(self):
"""Create a PyApp instance."""
pass
def Dispatch(self):
"""Dispatches the next event in the windowing system event
queue.
This can be used for programming event loops."""
pass
def ExitMainLoop(self):
"""Call this to explicitly exit the main message (event) loop.
You should normally exit the main loop (and the application)
by deleting the top window, which wxPython does automatically."""
pass
def GetAppName(self):
"""Return the application name."""
pass
def GetAssertMode(self):
"""Return the current assertion mode."""
pass
def GetAuto3D(self):
"""Returns True if 3D control mode is on, False otherwise.
Windows only."""
pass
def GetClassName(self):
"""Return the class name of the application."""
pass
def GetExitOnFrameDelete(self):
"""Returns True if the application will exit when the
top-level window is deleted, False otherwise."""
pass
def GetPrintMode(self):
"""Deprecated."""
pass
def GetTopWindow(self):
"""Return the top window.
If the top window hasn't been set using App.SetTopWindow,
this method will find the first top-level window (frame or
dialog) and return that."""
pass
def GetUseBestVisual(self):
"""Return True if the application will use the best visual on
systems that support different visuals, False otherwise."""
pass
def GetVendorName(self):
"""Return the application's vendor name."""
pass
def Initialized(self):
"""Return True if the application has been initialized
(i.e. if App.OnInit has returned successfully). This can be
useful for error message routines to determine which method of
output is best for the current state of the program (some
windowing systems may not like dialogs to pop up before the
main loop has been entered)."""
pass
def MainLoop(self):
"""Called by wxWindows on creation of the application.
Override this if you wish to provide your own
(environment-dependent) main loop.
Return 0 under X, and the wParam of the WM_QUIT message under
Windows."""
pass
def OnAssert(self, file, line, cond, msg):
"""Called when an assert failure occurs, i.e. the condition
specified in ASSERT macro evaluated to FALSE. It is only
called in debug mode (when __WXDEBUG__ is defined) as asserts
are not left in the release code at all.
The base class version show the default assert failure dialog
box proposing to the user to stop the program, continue or
ignore all subsequent asserts.
file is the name of the source file where the assert occured
line is the line number in this file where the assert occured
cond is the condition of the failed assert in string form
msg is the message specified as argument to ASSERT_MSG or
FAIL_MSG, will be NULL if just ASSERT or FAIL was used"""
pass
def OnExit(self):
"""Provide this member function for any processing which needs
to be done as the application is about to exit. OnExit is
called after destroying all application windows and controls,
but before wxWindows cleanup."""
pass
def OnInit(self):
"""This must be provided by the application, and will usually
create the application's main window, optionally calling
App.SetTopWindow.
Return True to continue processing, False to exit the
application."""
pass
def OnInitGui(self):
"""Called just after the platform's GUI has been initialized,
but before the App.OnInit() gets called. Rarely needed in
practice. Unlike App.OnInit(), does not need to return
True/False."""
pass
def Pending(self):
"""Return True if unprocessed events are in the window system
event queue."""
pass
def ProcessIdle(self):
"""Sends the EVT_IDLE event and is called inside the MainLoop.
You only need this if you implement your own main loop."""
pass
def SetAppName(self, name):
"""Set the name of the application."""
pass
def SetAssertMode(self, mode):
"""Lets you control how C++ assertions are processed.
Valid modes are: PYAPP_ASSERT_SUPPRESS,
PYAPP_ASSERT_EXCEPTION, and PYAPP_ASSERT_DIALOG. Using
_SUPPRESS will give you behavior like the old final builds and
the assert will be ignored, _EXCEPTION is the new default
described above, and _DIALOG is like the default in 2.3.3.1
and prior hybrid builds. You can also combine _EXCEPTION and
_DIALOG if you wish, although I don't know why you would."""
pass
def SetAuto3D(self, auto3D):
"""Switches automatic 3D controls on or off. Windows only.
If auto3D is True, all controls will be created with 3D
appearances unless overridden for a control or dialog. The
default is True."""
pass
def SetClassName(self, name):
"""Set the class name of the application."""
pass
def SetExitOnFrameDelete(self, flag):
"""If flag is True (the default), the application will exit
when the top-level frame is deleted. If False, the
application will continue to run."""
pass
def SetPrintMode(self, mode):
"""Deprecated."""
pass
def SetTopWindow(self, window):
"""Set the 'top' window.
You can call this from within App.OnInit to let wxWindows
know which is the main window. You don't have to set the top
window; it is only a convenience so that (for example) certain
dialogs without parents can use a specific window as the top
window. If no top window is specified by the application,
wxWindows just uses the first frame or dialog in its top-level
window list, when it needs to use the top window."""
pass
def SetUseBestVisual(self, flag):
"""Allows the programmer to specify whether the application
will use the best visual on systems that support several
visual on the same display. This is typically the case under
Solaris and IRIX, where the default visual is only 8-bit
whereas certain applications are supposed to run in TrueColour
mode.
Note that this function has to be called in the constructor of
the App instance and won't have any effect when called later
on.
This function currently only has effect under GTK."""
pass
def SetVendorName(self, name):
"""Sets the name of application's vendor. The name will be
used in registry access."""
pass
def Yield(self, onlyIfNeeded=False):
"""Yields control to pending messages in the windowing system.
This can be useful, for example, when a time-consuming process
writes to a text window. Without an occasional yield, the
text window will not be updated properly, and on systems with
cooperative multitasking, such as Windows 3.1 other processes
will not respond.
Caution should be exercised, however, since yielding may allow
the user to perform actions which are not compatible with the
current task. Disabling menu items or whole menus during
processing can avoid unwanted reentrance of code: see
wx.SafeYield for a better function.
Calling Yield() recursively is normally an error and an assert
failure is raised in debug build if such situation is
detected. However if the the onlyIfNeeded parameter is True,
the method will just silently return False instead."""
pass
from wxPython.wx import wxPlatform
_redirect = (wxPlatform == '__WXMSW__' or wxPlatform == '__WXMAC__')
del wxPlatform
class App(PyApp):
"""The main application class.
Inherit from this class and implement an OnInit method that
creates a frame and then calls self.SetTopWindow(frame)."""
def __init__(self, redirect=_redirect, filename=None, useBestVisual=False):
"""Create an App instance.
redirect defaults to True on Windows and Mac. If redirect is
True, stdio goes to an output window or a file if filename is
not None."""
pass
del _redirect
class PyOnDemandOutputWindow:
"""Used by App to display stdout and stderr messages if app is
created using App(redirect=True). Mostly useful on Windows or
Mac where apps aren't always launched from the command line."""
pass
class PySimpleApp(App):
"""Use instead of App for simple apps with a simple frame or
dialog, particularly for testing."""
def __init__(self, flag=0):
"""Create a PySimpleApp instance.
flag is the same as App's redirect parameter to redirect stdio."""
pass
def OnInit(self):
"""Automatically does a wx.InitAllImageHandlers()."""
pass
class PyWidgetTester(App):
"""Use instead of App for testing widgets. Provides a frame
containing an instance of a widget.
Create a PyWidgetTester instance with the desired size for the
frame, then create the widget and show the frame using SetWidget."""
def __init__(self, size=(250, 100)):
"""Create a PyWidgetTester instance, with no stdio redirection.
size is for the frame to hold the widget."""
pass
def OnInit(self):
"""Creates a frame that will hold the widget to be tested."""
pass
def SetWidget(self, widgetClass, *args):
"""Create a widgetClass instance using the supplied args and
with a frame as parent, then show the frame."""
pass
class SingleInstanceChecker:
"""Allows one to check that only a single instance of a program is
running. To do it, you should create an object of this class. As
long as this object is alive, calls to IsAnotherRunning() from
other processes will return True.
As the object should have the life span as big as possible, it
makes sense to create it either as a global or in App.OnInit()."""
def __init__(self, name, path=wx.EmptyString):
"""Create a SingleInstanceChecker instance.
name should be as unique as possible. It is used as the mutex
name under Win32 and the lock file name under Unix.
App.GetAppName() and wx.GetUserId() are commonly used.
path is optional and is ignored under Win32 and used as the
directory to create the lock file in under Unix (default is
wx.GetHomeDir())."""
pass
def Create(self, name, path=wx.EmptyString):
"""Create a SingleInstanceChecker instance."""
pass
def IsAnotherRunning(self):
"""Return True if another copy of this program is already running."""
pass

View File

@@ -0,0 +1,206 @@
"""Decorator classes for documentation and shell scripting.
"""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
# These are not the real wxPython classes. These are Python versions
# for documentation purposes. They are also used to apply docstrings
# to the real wxPython classes, which are SWIG-generated wrappers for
# C-language classes.
import Parameters as wx
class Object:
"""Base class for all other wxPython classes."""
def __init__(self):
"""Create a Object instance."""
pass
def Destroy(self):
"""Destroy the Object instance."""
pass
def GetClassName(self):
"""Return the name of the class."""
pass
class EvtHandler(Object):
"""Base class that can handle events from the windowing system.
If the handler is part of a chain, the destructor will unlink
itself and restore the previous and next handlers so that they
point to each other."""
def __init__(self):
"""Create a EvtHandler instance."""
pass
def AddPendingEvent(self, event):
"""Post an event to be processed later.
event is an Event instance to add to process queue.
The difference between sending an event (using the
ProcessEvent method) and posting it is that in the first case
the event is processed before the function returns, while in
the second case, the function returns immediately and the
event will be processed sometime later (usually during the
next event loop iteration).
A copy of event is made by the function, so the original can
be deleted as soon as function returns (it is common that the
original is created on the stack). This requires that the
Event::Clone method be implemented by event so that it can
be duplicated and stored until it gets processed.
This is also the method to call for inter-thread
communication. It will post events safely between different
threads which means that this method is thread-safe by using
critical sections where needed. In a multi-threaded program,
you often need to inform the main GUI thread about the status
of other working threads and such notification should be done
using this method.
This method automatically wakes up idle handling if the
underlying window system is currently idle and thus would not
send any idle events. (Waking up idle handling is done
calling WakeUpIdle.)"""
pass
def Connect(self, id, lastId, eventType, func):
"""Connects the given function dynamically with the event
handler, id and event type. This is an alternative to the use
of static event tables.
id is the identifier (or first of the identifier range) to be
associated with the event handler function.
lastId is the second part of the identifier range to be
associated with the event handler function.
eventType is the event type to be associated with this event
handler.
function is the event handler function.
userData is data to be associated with the event table entry."""
pass
def Disconnect(self, id, lastId=-1, eventType=wx.EVT_NULL):
"""Disconnects the given function dynamically from the event
handler, using the specified parameters as search criteria and
returning True if a matching function has been found and
removed. This method can only disconnect functions which have
been added using the EvtHandler.Connect method. There is no
way to disconnect functions connected using the (static) event
tables.
id is the identifier (or first of the identifier range) to be
associated with the event handler function.
lastId is the second part of the identifier range to be
associated with the event handler function.
eventType is the event type to be associated with this event
handler.
function is the event handler function.
userData is data to be associated with the event table entry."""
pass
def GetEvtHandlerEnabled(self):
"""Return True if the event handler is enabled, False
otherwise."""
pass
def GetNextHandler(self):
"""Return the next handler in the chain."""
pass
def GetPreviousHandler(self):
"""Return the previous handler in the chain."""
pass
def ProcessEvent(self, event):
"""Processes an event, searching event tables and calling zero
or more suitable event handler function(s). Return True if a
suitable event handler function was found and executed, and
the function did not call Event.Skip().
event is an Event to process.
Normally, your application would not call this function: it is
called in the wxPython implementation to dispatch incoming
user interface events to the framework (and application).
However, you might need to call it if implementing new
functionality (such as a new control) where you define new
event types, as opposed to allowing the user to override
virtual functions.
An instance where you might actually override the ProcessEvent
function is where you want to direct event processing to event
handlers not normally noticed by wxWindows. For example, in
the document/view architecture, documents and views are
potential event handlers. When an event reaches a frame,
ProcessEvent will need to be called on the associated document
and view in case event handler functions are associated with
these objects. The property classes library (Property) also
overrides ProcessEvent for similar reasons.
The normal order of event table searching is as follows:
1. If the object is disabled (via a call to
EvtHandler.SetEvtHandlerEnabled) the function skips to step
(6).
2. If the object is a Window, ProcessEvent is recursively
called on the window's Validator. If this returns TRUE, the
function exits.
3. SearchEventTable is called for this event handler. If this
fails, the base class table is tried, and so on until no more
tables exist or an appropriate function was found, in which
case the function exits.
4. The search is applied down the entire chain of event
handlers (usually the chain has a length of one). If this
succeeds, the function exits.
5. If the object is a Window and the event is a
CommandEvent, ProcessEvent is recursively applied to the
parent window's event handler. If this returns TRUE, the
function exits.
6. Finally, ProcessEvent is called on the App object.
See also:
EvtHandler::SearchEventTable"""
pass
def SetEvtHandlerEnabled(self, enabled):
"""Enable or disable the event handler.
You can use this function to avoid having to remove the event
handler from the chain, for example when implementing a dialog
editor and changing from edit to test mode."""
pass
def SetNextHandler(self, handler):
"""Set the pointer to the next handler."""
pass
def SetPreviousHandler(self, handler):
"""Set the pointer to the previous handler."""
pass

View File

@@ -0,0 +1,485 @@
"""Decorator classes for documentation and shell scripting.
"""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
# These are not the real wxPython classes. These are Python versions
# for documentation purposes. They are also used to apply docstrings
# to the real wxPython classes, which are SWIG-generated wrappers for
# C-language classes.
from Base import Object
import Parameters as wx
class Clipboard(Object):
""""""
def AddData(self):
""""""
pass
def Clear(self):
""""""
pass
def Close(self):
""""""
pass
def Flush(self):
""""""
pass
def GetData(self):
""""""
pass
def IsOpened(self):
""""""
pass
def IsSupported(self):
""""""
pass
def Open(self):
""""""
pass
def SetData(self):
""""""
pass
def UsePrimarySelection(self):
""""""
pass
def __init__(self):
""""""
pass
class DataFormat:
""""""
def GetId(self):
""""""
pass
def GetType(self):
""""""
pass
def SetId(self):
""""""
pass
def SetType(self):
""""""
pass
def __del__(self):
""""""
pass
def __init__(self):
""""""
pass
class DataObject:
""""""
def GetAllFormats(self):
""""""
pass
def GetDataHere(self):
""""""
pass
def GetDataSize(self):
""""""
pass
def GetFormatCount(self):
""""""
pass
def GetPreferredFormat(self):
""""""
pass
def IsSupportedFormat(self):
""""""
pass
def SetData(self):
""""""
pass
def __del__(self):
""""""
pass
def __init__(self):
""""""
pass
class DataObjectComposite(DataObject):
""""""
def Add(self):
""""""
pass
def __init__(self):
""""""
pass
class DataObjectSimple(DataObject):
""""""
def GetFormat(self):
""""""
pass
def SetFormat(self):
""""""
pass
def __init__(self):
""""""
pass
class PyDataObjectSimple(DataObjectSimple):
""""""
def __init__(self):
""""""
pass
def _setCallbackInfo(self):
""""""
pass
class BitmapDataObject(DataObjectSimple):
""""""
def GetBitmap(self):
""""""
pass
def SetBitmap(self):
""""""
pass
def __init__(self):
""""""
pass
class PyBitmapDataObject(BitmapDataObject):
""""""
def __init__(self):
""""""
pass
def _setCallbackInfo(self):
""""""
pass
class CustomDataObject(DataObjectSimple):
""""""
def GetData(self):
""""""
pass
def GetSize(self):
""""""
pass
def SetData(self):
""""""
pass
def TakeData(self):
""""""
pass
def __init__(self):
""""""
pass
class DragImage(Object):
""""""
def BeginDrag(self):
""""""
pass
def BeginDrag2(self):
""""""
pass
def EndDrag(self):
""""""
pass
def GetImageRect(self):
""""""
pass
def Hide(self):
""""""
pass
def Move(self):
""""""
pass
def RedrawImage(self):
""""""
pass
def SetBackingBitmap(self):
""""""
pass
def Show(self):
""""""
pass
def __del__(self):
""""""
pass
def __init__(self):
""""""
pass
class DropSource:
""""""
def DoDragDrop(self):
""""""
pass
def GetDataObject(self):
""""""
pass
def SetCursor(self):
""""""
pass
def SetData(self):
""""""
pass
def __del__(self):
""""""
pass
def __init__(self):
""""""
pass
def _setCallbackInfo(self):
""""""
pass
def base_GiveFeedback(self):
""""""
pass
class DropTarget:
""""""
def __init__(self):
""""""
pass
class PyDropTarget(DropTarget):
""""""
def GetData(self):
""""""
pass
def GetDataObject(self):
""""""
pass
def SetDataObject(self):
""""""
pass
def __del__(self):
""""""
pass
def __init__(self):
""""""
pass
def _setCallbackInfo(self):
""""""
pass
def base_OnDragOver(self):
""""""
pass
def base_OnDrop(self):
""""""
pass
def base_OnEnter(self):
""""""
pass
def base_OnLeave(self):
""""""
pass
class FileDataObject(DataObjectSimple):
""""""
def GetFilenames(self):
""""""
pass
def __init__(self):
""""""
pass
class FileDropTarget(PyDropTarget):
""""""
def __init__(self):
""""""
pass
def _setCallbackInfo(self):
""""""
pass
def base_OnData(self):
""""""
pass
def base_OnDragOver(self):
""""""
pass
def base_OnDrop(self):
""""""
pass
def base_OnEnter(self):
""""""
pass
def base_OnLeave(self):
""""""
pass
class TextDataObject(DataObjectSimple):
""""""
def GetText(self):
""""""
pass
def GetTextLength(self):
""""""
pass
def SetText(self):
""""""
pass
def __init__(self):
""""""
pass
class PyTextDataObject(TextDataObject):
""""""
def __init__(self):
""""""
pass
def _setCallbackInfo(self):
""""""
pass
class TextDropTarget(PyDropTarget):
""""""
def __init__(self):
""""""
pass
def _setCallbackInfo(self):
""""""
pass
def base_OnData(self):
""""""
pass
def base_OnDragOver(self):
""""""
pass
def base_OnDrop(self):
""""""
pass
def base_OnEnter(self):
""""""
pass
def base_OnLeave(self):
""""""
pass
class URLDataObject(DataObjectComposite):
""""""
def GetURL(self):
""""""
pass
def SetURL(self):
""""""
pass
def __init__(self):
""""""
pass

View File

@@ -0,0 +1,199 @@
"""Decorator classes for documentation and shell scripting.
"""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
# These are not the real wxPython classes. These are Python versions
# for documentation purposes. They are also used to apply docstrings
# to the real wxPython classes, which are SWIG-generated wrappers for
# C-language classes.
import Parameters as wx
class ConfigBase:
""""""
def DeleteAll(self):
""""""
pass
def DeleteEntry(self):
""""""
pass
def DeleteGroup(self):
""""""
pass
def Exists(self):
""""""
pass
def ExpandEnvVars(self):
""""""
pass
def Flush(self):
""""""
pass
def GetAppName(self):
""""""
pass
def GetEntryType(self):
""""""
pass
def GetFirstEntry(self):
""""""
pass
def GetFirstGroup(self):
""""""
pass
def GetNextEntry(self):
""""""
pass
def GetNextGroup(self):
""""""
pass
def GetNumberOfEntries(self):
""""""
pass
def GetNumberOfGroups(self):
""""""
pass
def GetPath(self):
""""""
pass
def GetStyle(self):
""""""
pass
def GetVendorName(self):
""""""
pass
def HasEntry(self):
""""""
pass
def HasGroup(self):
""""""
pass
def IsExpandingEnvVars(self):
""""""
pass
def IsRecordingDefaults(self):
""""""
pass
def Read(self):
""""""
pass
def ReadBool(self):
""""""
pass
def ReadFloat(self):
""""""
pass
def ReadInt(self):
""""""
pass
def RenameEntry(self):
""""""
pass
def RenameGroup(self):
""""""
pass
def SetAppName(self):
""""""
pass
def SetExpandEnvVars(self):
""""""
pass
def SetPath(self):
""""""
pass
def SetRecordDefaults(self):
""""""
pass
def SetStyle(self):
""""""
pass
def SetVendorName(self):
""""""
pass
def Write(self):
""""""
pass
def WriteBool(self):
""""""
pass
def WriteFloat(self):
""""""
pass
def WriteInt(self):
""""""
pass
def __del__(self):
""""""
pass
def __init__(self):
""""""
pass
class Config(ConfigBase):
""""""
def __del__(self):
""""""
pass
def __init__(self):
""""""
pass
class FileConfig(ConfigBase):
""""""
def __del__(self):
""""""
pass
def __init__(self):
""""""
pass

File diff suppressed because it is too large Load Diff

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