Commit Graph

29572 Commits

Author SHA1 Message Date
Vadim Zeitlin
fe576f48fb Verify the validity of the buffer size in wxBufferedDC.
Passing invalid (e.g. negative) buffer size to wxBufferedDC resulted in many
problems later on so refuse it immediately.

Closes #13175.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67659 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-05-01 15:47:46 +00:00
Dimitri Schoolwerth
e3778b4d9c No code changes, fixed some typos.
Changed several occurrences of "it's" where "its" is meant, as well as a few other minor typos.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67656 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-30 10:57:04 +00:00
Vadim Zeitlin
783d8c1131 Remove fixed size of gs_encodingNames array in font mapper code.
Specifying the size explicitly made wxCOMPILE_TIME_ASSERT() checking that the
array sizes were synchronized useless as the array always had the correct
size, independently of the real number of elements in it.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67645 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-28 16:57:21 +00:00
Vadim Zeitlin
12b5857d04 Correct wxFontMapper tables for Big-5, Shift-JIS and GB2312 encodings.
As wxFONTENCODING_{BIG5,SHIFT_JIS,GB2312} are only synonyms for the other
encoding constants, we must append the corresponding names to the array of
names for the real encoding value instead of having the (never used) separate
entries for them in the names array.

Closes #13164.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67644 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-28 16:57:15 +00:00
Vadim Zeitlin
4c24ca50d6 Fix wxULongLongNative::ToDouble() compilation with VC6.
The problem alluded to by the commit message of r40658 arose only in the DLL
build using VC6 so reintroduce the workaround for it removed by r67634 but
make it VC6-specific and, arguably even more importantly, also make it work
correctly for wxULongLongNative values greater than LONGLONG_MAX.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67643 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-28 16:16:16 +00:00
Vadim Zeitlin
dfc2e4961e Change VIEWPORT_EXTENT constant in wxMSW wxDC code to be a power of two.
Notice that this commit doesn't really change anything, in particular it
doesn't correct zooming for zoom factors that are power of 2 (which was broken
before as ticket #11669 showed), this was already done by the previous commit.
This one simply makes multiplying by VIEWPORT_EXTENT a tiny bit more efficient.

See #9554.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67624 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-26 22:57:45 +00:00
Vadim Zeitlin
a152f137f6 Avoid rounding errors in wxMSW wxDC scaling code.
Multiply by scale factor when it's > 1 and divide by it when it's < 1 to avoid
rounding errors. By choosing whether to increase the viewport or window
extents we increase precisions without any apparent negative effects (at least
under Windows NT where the coordinates in 2^27 range are supported, but even
under Windows 9x it's not clear if the old code was better as while we never
overflowed the viewport extents, we could overflow the window ones easily for
small zoom factors).

Closes #9554.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67623 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-26 22:57:42 +00:00
Vadim Zeitlin
42604e44be Remove apparently erroneous -1 from DrawBitmap() in wxMSW wxGC code.
We didn't draw the last line and row of the image for some reason, simply
remove the -1 which prevented us from doing this.

Closes #12476.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67622 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-26 22:57:39 +00:00
Vadim Zeitlin
85a9228394 Make wxSMALL_FONT larger under MSW as it was unreadable otherwise.
The default size of the normal font is 9pt under MSW and 7pt is too small for
wxSMALL_FONT, use 8pt for it instead.

Closes #13104.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67621 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-26 22:57:33 +00:00
Vadim Zeitlin
18c8dd2be2 Ensure that message boxes with only "OK" can be closed with Escape in wxMSW.
The native task dialog doesn't allow using Escape (nor Alt-F4 but this is less
annoying) to close it unless it has a Cancel button, so by default the dialogs
with only "OK" couldn't be closed with Escape.

Work around this by creating a Cancel button with "OK" label instead. This is
not ideal but there doesn't seem to be any other way to make this work.

See #12501.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67620 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-26 22:57:30 +00:00
Vadim Zeitlin
6aacfc7320 Allow showing the print preview frame non modally.
Still show the print preview app modally by default, i.e. disabling all the
other windows, but also allow disabling only the preview parent or nothing at
all.

Closes #13108.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67619 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-26 22:57:27 +00:00
Vadim Zeitlin
051b7b264f Update line height in generic wxListCtrl to match images height.
The height of the items of the generic wxListCtrl remained too small if an
image of a greater than standard size was used.

Fix this by forcing the line height recalculation when adding an item using an
image higher than the current line height.

Closes #12806.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67615 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-26 22:57:12 +00:00
Vadim Zeitlin
de83bbe34f No changes, just simplify the mask checks in wxImage::Paste().
Replace the test of the form "(!a && b) || (a && b)" with a simple test for
"b" and then also replace the test for "b || (c && !b)" with just "b || c".
The end result is much easier to read and understand.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67614 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-26 22:57:08 +00:00
Vadim Zeitlin
be0d0fedf9 Optimize alpha handling in wxImage::Rotate90() too.
The changes of r66309 optimized the rotation of the pixel data by doing it in
entire strips instead of pixel by pixel, apply the same technique now to the
rotation of alpha data as well.

Closes #12739.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67613 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-26 22:57:05 +00:00
Vadim Zeitlin
b2fd3bea36 Fix assert when destroying wxDataViewCtrl being edited in wxGTK.
If wxDataViewCtrl was destroyed while showing a generic editor, an assert
occurred in wxWindowBase dtor as the event handler pushed on it by the editor.

Fix this by calling CancelEditing() when the control is destroyed and also fix
the crash in CancelEditing() in wxGTK due to recursive calls to FinishEditing().

Closes #12683.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67612 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-26 22:57:01 +00:00
Vadim Zeitlin
b3a8aa924a No changes, just get rid of wxDataViewColumn::GetConstGtkHandle().
If both const and non-const accessors are needed, it's custom to use the same
name for both but in this case we don't even need them as the const version
can always be used, so simply remove the weird and badly named (because the
returned handle is not const at all) GetConstGtkHandle().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67611 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-26 22:56:56 +00:00
Stefan Csomor
91116a35f2 fixes #12220
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-26 17:14:50 +00:00
Robin Dunn
c141046071 Fix the size of the tree's text editing box on Cocoa
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67600 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-25 23:18:19 +00:00
Dimitri Schoolwerth
cbbb1f5489 Fixed filename in wxOSX-Cocoa's file dialog using extension of wrong file type.
When using SetFilterIndex to indicate a different initial file type the dialog would still use the extension of the first file type (if the filename had no extension then unchecking "Hide extension" would append the first file type's extension). Fixed this by calling code, that formerly got called only from OnFilterSelected, to notify OS X of the file type change.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67598 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-25 13:18:45 +00:00
Vadim Zeitlin
da87ce5a36 Don't generate wxEVT_COMMAND_DATAVIEW_CACHE_HINT for empty control.
Don't send any cache hint events for empty wxDataViewCtrl. Sending them was
unnecessary, inconsistent with wxListCtrl (which doesn't send them when it's
empty) and the events also had incorrect range. Just don't create them at all
to avoid all these problems at once.

Closes #13132.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67591 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-23 18:01:36 +00:00
Vadim Zeitlin
68f64b40bf Don't close arcs drawn in wxPostScriptDC.
Draw arcs, not pies, in DoDrawArc(): simply remove the apparently unnecessary
last lineto and closepath PostScript statements.

Closes #13141.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67590 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-23 17:36:11 +00:00
Vadim Zeitlin
c7e94140cd Change wxNotebook selection before sending page changed event in wxMSW.
wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED handler should see the new page selected
in the control, not the old one as was the case if the page was changed using
the mouse in wxMSW.

This should have been done together with the other changes of r66224, see its
commit message for more details.

Closes 13145.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67589 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-23 16:19:15 +00:00
Vadim Zeitlin
e71508e160 Add wxDC::SetTransformMatrix() and related methods and implement them in wxMSW.
Add support for world transformations to wxDC too. Currently this is
implemented in wxMSW only but could be easily provided in the ports that use
wxGraphicsContext for wxDC implementation later.

Closes #13092.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67588 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-23 16:03:10 +00:00
Vadim Zeitlin
54580df4e2 Fix compilation error in recent change to wxSizeEvent generation.
Wrong variable name was used in r67583, fix it.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67587 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-23 15:12:59 +00:00
Vadim Zeitlin
df97a4ef79 Set event object correctly for the generated wxSizeEvents.
wxSizeEvent event object was not set correctly in at least a couple of places.
Do set it now.

Closes #13156.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67583 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-23 11:17:40 +00:00
Vadim Zeitlin
a6fd3ed883 Remove duplicate negated option indicator in wxCmdLineParser help.
The indicator of a negatable option (one with wxCMD_LINE_SWITCH_NEGATABLE
flag) appeared twice in the usage message, don't add it the second time.

Closes #13157.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67582 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-23 11:17:36 +00:00
Vadim Zeitlin
f3b1d0fc56 Fix file paths in wxFileSystemWatcherEvent under OS X.
The separator between the watched directory and the name of the file in the
generated event was missing, add it now.

Closes #13161.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67581 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-23 11:17:33 +00:00
Vadim Zeitlin
d7cfeeb49c Set page range in the print preview correctly.
The valid pages range was set too early before, we need to postpone it until
after the OnPreparePrinting() call of the user-defined wxPrintout object as
only it can determine the number of pages (after running the pagination
algorithm) in general.

Set the pages range during the first call to RenderPageIntoDC() to fix this.

Also add wxPrintPageMaxCtrl class for symmetry with the existing
wxPrintPageTextCtrl and use a shared constant MAX_PAGE_NUMBER instead of hard
coded 99999. Slightly improve the layout of wxPrintPageMaxCtrl too.

Closes #12965.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67580 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-23 10:49:48 +00:00
Vadim Zeitlin
a78d2fbab1 Make the source files non-executable again.
Revert the (probably accidental) mode change of r67576.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67579 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-23 10:41:29 +00:00
Václav Slavík
64c70359a7 Return wxWindow* from wxDataViewCustomRenderer::CreateEditorCtrl().
There's no reason to limit custom editor controls to wxControl, which
would rule out e.g. composite controls or any custom widgets.
Make appropriate changes to related functions and code too.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67576 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-22 18:25:32 +00:00
Stefan Csomor
c1313b54c6 implementation of HotKey, see #12354
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67574 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-22 15:20:11 +00:00
Václav Slavík
b4f70f7706 Compilation fix for DEFINE_GUID uses.
DEFINE_GUID doesn't define the value, only declares an external
variable, unless initguid.h was included. This leads to linker errors.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67573 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-22 14:50:20 +00:00
Dimitri Schoolwerth
fa5d9d2006 Fixed wxUSE_STD_STRING==0 compilation.
With at least MSVC9 numformatter.cpp wouldn't compile because of unknown identifiers related to locales. Include <locale.h> in case wxUSE_STD_STRING is set to 0.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67572 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-22 10:43:47 +00:00
Vadim Zeitlin
0f0c5856e0 Define ACO_AUTOAPPEND for MinGW/Cygwin.
Apparently this symbol is not defined in MinGW headers neither, so do it
ourselves as well.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67570 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-21 23:43:27 +00:00
Vadim Zeitlin
c621269778 Use "wx" prefix for the GUIDs we (re)define in wxMSW code.
CLSID_AutoComplete became ambiguous with MinGW because it does define it in
its shlguid.h header (although MSVC/Platform SDK does not define this one) so
use a "wx" prefix for it to avoid ambiguity. Also use the same prefix for the
IID_IAutoCompleteDropDown value we define for consistency.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67569 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-21 23:43:23 +00:00
Vadim Zeitlin
78f250a46d Redefine IAutoCompleteDropDown in our code as it's not always available.
MinGW doesn't have shobjidl.h header file which is normally part of the
Platform SDK and doesn't have IAutoCompleteDropDown interface definition in
any of its headers at all, so define this interface and its IID ourselves to
make the code compile with it.

Notice that MinGW-64 does have the interface declaration but still doesn't
define IID_IAutoCompleteDropDown.

So to be on the safe side just always define everything ourselves, as long as
we need to do it for one of the compilers, it's not more difficult to do it
for all of them.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67567 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-21 15:47:37 +00:00
Julian Smart
987695522c Added ForceDelayedLayout
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67566 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-21 12:44:26 +00:00
Dimitri Schoolwerth
daa3165144 Make use of SetFilterIndex in wxOSX-Cocoa's file dialog.
Previously the file type would solely be based on the extension of the passed filename. This is still done, but any valid filter index as set by the user will now take precedence.

See also #12429.



git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67551 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-20 14:54:56 +00:00
Dimitri Schoolwerth
0d1cd87409 Fixed saving dialog's filter index always being -1 with wxOSX-Cocoa.
This problem was reproducable using the Save file dialog in the dialogs sample.
The member m_filterIndex was only initialised to -1 and never set at another point. Set it to the filter's selection during ModalFinishedCallback.

Closes #13158.



git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67550 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-20 07:53:07 +00:00
Paul Cornett
753cba1a75 fix conversion of gdk_input_add() to g_io_add_watch() from r67326
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67546 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-19 05:17:45 +00:00
Vadim Zeitlin
6d07584544 Do send wxEVT_UPDATE_UI events to hidden windows.
Failing to send wxEVT_UPDATE_UI to hidden windows made it impossible to show
them from their update UI handler which was totally unexpected as the
documented wxUpdateUIEvent::Show() method could never be used.

Do send these events to the hidden windows themselves but avoid sending the
update UI events to the children of hidden windows as this is really useless
because any change of their state wouldn't be seen by the user anyhow (even if
the child is shown, it would still remain hidden until its parent is) and
would just waste time processing a lot of needless events.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67541 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-18 23:50:14 +00:00
Vadim Zeitlin
935594c16e Don't send wxWindowDestroyEvent if we hadn't sent wxWindowCreateEvent.
Don't generate wxWindowDestroyEvent when destroying the windows that had been
never created for symmetry with wxWindowCreateEvent which wasn't sent for this
window neither.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67540 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-18 23:36:46 +00:00
Vadim Zeitlin
4af2a59fbf Don't assert when destroying a never created window in wxGTK.
The other ports don't assert if a default-constructed wxWindow object for
which Create() had never been called is Destroy()d and wxGTK shouldn't do this
neither.

The new behaviour is more logical but also fixes a problem with an assert in
wxOwnerDrawnComboBox that can currently be seen in wxGTK unit tests.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67539 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-18 23:36:42 +00:00
Vadim Zeitlin
8d43e8c68f Correct a typo in DoAutoCompleteCustom() stub in wxMSW.
Fix a compilation error introduced by r67518.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67532 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-18 13:47:51 +00:00
Jaakko Salli
25b7a51fbf Use Connect() to bind embedded wxTextCtrl events instead of event table. This seems to be more reliable approach here, and fixes a bug with wxPropertyGrid's wxEditEnumProperty.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67531 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-18 10:06:08 +00:00
Jaakko Salli
26844be538 In wxComboCtrlBase::OnTextCtrlEvent(), make sure to call event.StopPropagation() only after it has been copied
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67530 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-18 10:03:16 +00:00
Vadim Zeitlin
c729f16fa5 Implement auto-completion support for wxTextEntry in wxOSX/Cocoa.
Both completing a set of fixed strings and dynamic completion using a custom
completer are supported, although completing the file names remains MSW-only
for now.

Note that, unlike under MSW, auto-completion under Mac is not automatic and
has to be triggered manually by calling complete: method. This is done by
pressing F5 key by default. In the future we should call it automatically on a
timer event to make it more obviously discoverable.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67526 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-17 23:14:15 +00:00
Vadim Zeitlin
ed7dda9251 Refactor: extract wxTextCompleterFixed from wxMSW to a header.
This class will be used in other ports too so don't make it private to wxMSW
(although it still remains private to wxWidgets for now as it doesn't make
much sense to use it in user code).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67525 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-17 23:14:11 +00:00
Dimitri Schoolwerth
f0cc899914 Removed wxOSX conditional code from generic calendar control.
Tested the calendar sample with Cocoa and Carbon to determine the behaviour and looks are still the same.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67524 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-17 21:47:56 +00:00
Dimitri Schoolwerth
01d420639e Improved year control of generic calendar being too narrow when using a locale with long month names.
See #11444.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67523 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-17 21:46:22 +00:00