Explicit conversion from wxString to "const char *" is needed in STL build.
And even in non-STL build it's wrong to rely on implicit conversion as it
wouldn't work correctly in non-UTF-8 locales.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65833 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
At least in wxUniv build, DoScreenToClient() can be called before the main
control window is created which results in a crash when attempting to forward
to its DoScreenToClient() version.
Check for m_mainWin being non-NULL before using it to at least avoid the
crash, even if it's not really clear whether this is a 100% correct fix.
Closes#12390.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65831 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Handle more fields (notably collation, number of copies and "print to file"
flag) and fix the bug with return value of print dialog ShowModal().
Closes#12499.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65830 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
In particular, create a valid GtkPrintOperation object instead of using an
uninitialized pointer to it in wxGtkPrintDialog::ShowModal(), resulting in
crashes or, at best, GTK errors.
Closes#12483.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65828 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Drag and drop in wxStyledTextCtrl was broken, apparently since upgrade to
Scintilla 2. Restore it by using the correct wxDrag_XXX constants instead of
boolean values in the code for wxEVT_STC_START_DRAG events generation.
Closes#11709.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65827 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The result of wxConvertToGTK() is often passed to GTK+ functions directly and
not all of them handle NULLs gracefully, e.g. gtk_editable_insert_text() just
crashes.
Return an empty string from wxConvertToGTK() explicitly for empty string input
to avoid such problems.
Another potential solution might have been to change wxMBConv::cMB2WC() to
return empty buffer instead of invalid one for empty input but it's not clear
if this is not going to break something else.
Closes#12432.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65826 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This symbol is defined for the ports that support wxCHK_3STATE style. While
most of the ports do support it, a couple still do not and having this symbol
makes it more convenient to exclude 3-state-checkbox-specific code, like in
CheckBoxTestCase.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65825 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Detect when incompatible styles are used (this required changing the value of
wxCHK_2STATE to be non-null) and sanitize the styles (after asserting) in this
case.
Put the validation code in wxCheckBoxBase instead of having slightly different
versions of it in port-specific wxCheckBox implementations.
Add a unit test checking that the expected asserts are indeed generated.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65824 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Using the default libdir value ${_prefix}/lib is not always appropriate,
notably this takes care of systems using /usr/lib64 instead of /usr/lib.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65823 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Using GetStyle() == wx{PEN,BRUSH}STYLE_TRANSPARENT doesn't work for
uninitialized pen or brush objects so add convenient helpers which do work for
them.
Use the new helper functions everywhere instead of explicitly checking for
style. This makes the code shorter and more clear and also fixes some bugs (at
least those in GTK printing code).
Notice that this patch removes the main reason for explicitly initializing
m_pen and m_brush in wxGTKDCImpl ctor but this initialization still can't be
removed, at least for the latter, as doing this somehow breaks GetPixel(). It
would be nice to understand why and do remove this initialization so that a
newly created DC doesn't have any non-default pen nor brush.
Closes#12522.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65820 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
No real changes, just use wxDCPenChanger instead of manual calls to SetPen()
in wxDCImpl::DrawPolygon(). This makes the code shorter and more clear.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65819 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This is more than a cosmetic change: adding "GTK" prefix in wxComboBox and not
doing it in wxChoice in r64436 broke the event generation for wxComboBox as it
didn't override wxChoice methods any longer but defined its own (useless) ones.
Using the same name for the methods in both classes notably fixes unexpected
event generation from wxComboBox::SetSelection().
Closes#12568.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65818 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Task dialogs are not always available under Vista and later Windows versions
because we might not be using the right (i.e. 6+) version of comctl32.dll.
Improve the check for task dialog availability and fall back to the classic
message box if we can't use it.
Closes#12553.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65816 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Add propgrid, ribbon and stc libraries. Correct the name of the media library
("mmedia" was an old contrib library name that doesn't exist any more).
See #12567.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65814 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Apparently the standard name for this RPM is gtk2-devel and not
gtk+-2.0-devel, at least rpmfind.net database doesn't have any matches for the
latter and plenty for the former.
See #12567.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65813 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The order of buttons in wxGTK wxMessageDialog was accidentally broken since
r55482 and wxStdDialogButtonSizer implementation for wxGTK was subsequently
modified to work in the same way as the broken version of wxMessageDialog.
Fix wxMessageDialog and remove the "compatibility" workarounds from
wxStdDialogButtonSizer to restore correct behaviour in both places.
Closes#12565.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65812 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
wxUniv/MSW compilation was broken by r65589, fix it by not assuming that
wxWindowMSW is a wxWindow because wxWindow derives from it in wxUniv.
Closes#12534.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65804 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Some samples are by definition Windows-only so they don't have Makefile.in
files for Unix at all, skip them when creating the Unix distribution to avoid
errors due to attempts to copy non-existent files.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65801 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
We must include the generic private files into the distribution as well,
otherwise at least wxGTK fails to build.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65800 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Delay resetting the wizard page to NULL when it terminates to allow
wxEVT_WIZARD_FINISHED event to carry the correct pointer to the last page.
Closes#12537.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65798 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Return NULL and not false from wxFileTranslationsLoader::
GetAvailableTranslations().
This is, of course, more correct and also fixes a compilation problem with
Borland, see #12558.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65796 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
No real changes, just remove a check for pointer passed to wxDELETE() bot
being NULL as wxDELETE() already checks for this anyhow.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65781 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
so that objects can stream themselves; added a wxXmlDocument-based method
of writing XML, though this turned out to be much slower than writing directly
so the direct approach is retained and is the default (can be changed with wxRICHTEXT_USE_XMLDOCUMENT_OUTPUT).
Loading and saving new attributes implemented. Added custom properties to objects.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65779 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
If the in-place text control was still alive when wxGenericListCtrl was
destroyed, it resulted in asserts from wxWindow dtor about child windows still
being alive, so explicitly destroy it from wxListMainWindow dtor.
As this required a slightly different behaviour from wxListTextCtrlWrapper::
EndEdit(), replace its bool argument with an enum one which can take more than
2 values. Not using bool values when calling it also made the code more clear.
Finally, added a unit test verifying that the in-place control is indeed
destroyed correctly.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65769 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This test crashes for unknown reasons on wxGTK ANSI build slave and prevents
the rest of the test suite from running, so disable it for now.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65768 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This helps improve the extremely poor performance of XML saving if
you have, for example, hex data that does not need conversion.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65764 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775