Commit Graph

9299 Commits

Author SHA1 Message Date
Vadim Zeitlin
af01ef1bb0 Make default wxSizer border DPI-aware.
Scale the (still hard-coded) border in pixels by the content scale factor for
the platforms where this needs to be done, i.e. not wxGTK nor wxOSX where the
underlying toolkit already does it.
2015-04-23 19:18:10 +02:00
Vadim Zeitlin
100d2a5819 Make wxWindow::FromDIP() more flexible and easier to use.
Allow calling this method with either wxSize, wxPoint or just an int.

Also provide a static overload allowing to use it even when no appropriate
wxWindow is available.
2015-04-23 02:20:02 +02:00
Vadim Zeitlin
6d92f45385 Remove all mentions of wxGauge shadow width and bezel face.
The shadow width was only used by wxMotif and bezel face not used at all since
a very, very long time, so just remove these methods from the ports which still
had them (just doing nothing) and remove support of the corresponding XRC
attributes.
2015-04-20 18:46:55 +02:00
Vadim Zeitlin
3673966ee3 Check GetValueFromEditorCtrl() return code in wxDataViewCtrl code.
Don't do anything when finishing editing an item if its new value couldn't be
retrieved.

See #16912.
2015-04-17 18:28:45 +02:00
Vadim Zeitlin
c7c63590ae No changes, just rename a variable to something more reasonable.
Don't use (auto-generated?) "item0" for the local sizer variable.
2015-04-15 09:55:24 +02:00
Vadim Zeitlin
7203160a29 Fix wrong use of wxALIGN_CENTER_VERTICAL in wxPreviewFrame.
Don't use this flag in a vertical sizer, it doesn't make sense.

Also use wxSizerFlags instead of multiple argument Add() overload for clarity.

Closes #16953.
2015-04-15 09:54:17 +02:00
Vadim Zeitlin
bf712f05ac Generate wxEVT_SPINCTRL of the correct wxSpinEvent type.
Handlers for this event expect to get wxSpinEvent but wxMSW, wxGTK1 and wxQT
sent an object of base wxCommandEvent class which resulted in invalid memory
access in the handlers when using the derived class methods such as Veto().

Closes #16948.
2015-04-10 16:38:31 +02:00
Vadim Zeitlin
cbc3a5bbf2 Export wxTranslateFromUnicodeFormat() from DLL to allow testing it.
This should fix the build after adding the unit tests for this function in
adbc9863b2.

Closes #16118.
2015-04-10 16:15:56 +02:00
Dimitri Schoolwerth
adbc9863b2 Handle quotes in wxTranslateFromUnicodeFormat.
When parsing Unicode date formats text inside single quotes should not be
escaped and instead treated as literal text. In addition two single quotes
(either inside or outside quoted text) should be interpreted as a single
quote.

Fixes #16118.
2015-04-09 04:39:35 +04:00
Vadim Zeitlin
58114f22c3 Detect the use of incompatible flags for wxGridSizer too.
Complain if wxEXPAND is combined with both horizontal and vertical alignment
flags, as this doesn't make sense and, moreover, the behaviour has changed
since the last commit: now wxEXPAND is ignored instead of overriding the
alignment flags if they are combined.
2015-04-08 23:35:19 +02:00
Vadim Zeitlin
9aaa38c7c8 Make it possible to combine wxEXPAND and alignment in wxGridSizer.
Allow overriding wxEXPAND effect in one of the directions by specifying
wxALIGN_{RIGHT,BOTTOM} or wxALIGN_CENTRE_{HORIZONTAL,VERTICAL} together with
it (unfortunately this doesn't work for wxALIGN_{LEFT,TOP} as their value is 0
and so their presence in flags can't be detected).
2015-04-08 23:35:19 +02:00
Vadim Zeitlin
78b98bf00c Validate wxBoxSizer flags instead of silently ignoring invalid combinations.
Detect using flags corresponding to the major sizer direction (which doesn't
make sense as only the proportion governs the behaviour in this direction) and
also combinations of alignment flags with wxEXPAND.
2015-04-08 23:35:19 +02:00
Vadim Zeitlin
636d08323f Assert if incompatible sizer flags are used.
We can't check for all the invalid combinations, but at least check for
wxALIGN_CENTER_HORIZONTAL+wxALIGN_RIGHT and wxALIGN_CENTER_VERTICAL+
wxALIGN_BOTTOM which never make sense and can be detected.
2015-04-08 23:35:18 +02:00
Vadim Zeitlin
89a791a938 Fix typo in wxUSE_LONGLONG check.
The recently added check had a typo in the constant name.

Closes #16939.
2015-04-05 20:06:09 +02:00
Artur Wieczorek
01dde21e68 Handle wxLongLong wxConvertAnyToVariant only if wxUSE_LONGLONG==1.
Code responsible for handling wxLongLong datatype in wxConvertAnyToVariant()
should be active only if wxUSE_LONGLONG is enabled.

See #16939.
2015-04-04 17:52:46 +02:00
Artur Wieczorek
d8922744cf Use wxMilliClock_t to store values returned by wxGetLocalTimeMillis().
This fixes wxComboCtrl compilation with wxUSE_LONGLONG==0 as wxMilliClock_t is
always mapped to the proper base type and hence can be used even if wxLongLong
type is not defined.

See #16939.
2015-04-04 17:51:40 +02:00
Artur Wieczorek
a088915a56 Handle wxDateTime data in wxDataViewModel only if wxUSE_DATETIME==1.
Code using wxDateTime datatype in wxDataViewModel::Compare should be active
only if wxUSE_DATETIME is enabled.

See #16939.
2015-04-04 17:51:22 +02:00
Vadim Zeitlin
d89d730900 Fix bug with clearing shared alpha channel in wxImage::ClearAlpha().
Allocate our own exclusive copy of the data before modifying it, otherwise
calling ClearAlpha() would clear alpha not only for the image it was called on
but also for all the other images sharing data with it.
2015-04-01 14:36:35 +02:00
Vadim Zeitlin
3cd55d9775 Fix format specifiers used in wxLog::LogLastRepeatIfNeeded().
Use "%u", not "%lu", for an unsigned parameter to fix asserts under 64 bit
platforms.

Closes #16918.
2015-03-22 00:59:57 +01:00
Vadim Zeitlin
5d5d6e84cb Compilation fix for PCH-less build after bc492a9.
Include wx/dcscreen.h explicitly now that it is used in the default
wxWindow::GetContentScaleFactor() implementation.
2015-03-20 01:39:48 +01:00
Vadim Zeitlin
00748bbaef Add wxWindow::FromDIP() for simpler high DPI support.
This method allows to scale a pixel value by a DPI-dependent factor to the
value used by the underlying toolkit only if necessary, i.e. when not using
GTK+ 3 or OS X which already do this internally.
2015-03-20 00:08:37 +01:00
Vadim Zeitlin
bc492a9e6e Make wxWindow::GetContentScaleFactor() useful for non-OSX platforms.
Return the ration of the current DPI to the standard one to allow using this
function to scale pixel values for the current screen resolution.
2015-03-20 00:08:37 +01:00
Jouk
1682000241 Add addremovectrl.cpp to OpenVMS makefile 2015-03-11 15:47:54 +01:00
Vadim Zeitlin
fe33cfc83f Add wxProcess::Activate() and implement it for MSW.
When launching child processes it can be convenient to be able to switch to
them later, provide a method in wxProcess to do it.

Currently this is only implemented in wxMSW but could almost certainly be done
for wxOSX too (it can be done using Apple Script, so presumably there is a way
to do it programmatically as well) and could be also made to work at least
under some Unix systems by emulating what wmctrl does (or just launching it?).
2015-03-10 20:31:24 +01:00
Vadim Zeitlin
fe7afd273d Fix TZ handling in wxDateTime::ParseRfc822Date().
When the TZ offset specified in the RFC 822 string was equal to the local TZ
offset but the date fell in the DST period, the result was one hour off.

Fix this by converting the date to the UTC explicitly, and then converting it
back to the local TZ to ensure that the DST is taken into effect.

See #15370.
2015-02-26 00:52:37 +01:00
Vadim Zeitlin
cd0e608be3 Increase the buffer size used for the host names in wxIPaddress.
This avoids failing to set the host name if the system /etc/hosts file has any
host names that wouldn't fit in our buffer: at least under Linux/glibc,
gethostname_r() returns error if any such names exist even if we don't ask for
them.

Closes #16641.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78506 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-02-16 01:06:24 +00:00
Dimitri Schoolwerth
11a5b83e2c Add OS X implementation of wxAppProgressIndicator.
Closes #16638.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78499 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-02-15 20:09:10 +00:00
Dimitri Schoolwerth
0e6af4ac39 No code changes, fix some typos.
Change 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@78497 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-02-15 17:11:44 +00:00
Vadim Zeitlin
f412007f61 Make wxUIActionSimulator::Text() to work with punctuation characters.
Currently this only really works when using the standard US keyboard layout as
we don't have information about the mapping from the characters to the keyboard
keys for the other layouts, which is not ideal but better than nothing as it
allows e.g. Text("foo_bar") to really produce "foo_bar" in the currently
focused text control instead of "foo-bar" as before.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78495 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-02-15 00:02:00 +00:00
Vadim Zeitlin
8f9b3ac8be Remove code not doing anything from wxUIActionSimulator::Char().
The changes of r69762 and r69960 cancelled each other out, leaving a long
switch statement which didn't do absolutely anything -- and doesn't seem to be
needed at all, so drop it.

See #13671.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78494 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-02-15 00:01:54 +00:00
Vadim Zeitlin
8b525fd1be Remove useless check for NULL in wxFindWindowRecursively().
This is an internal function which is only ever called with non-NULL window.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78492 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-02-15 00:01:47 +00:00
Mariano Reingart
c3543d4f39 Re-introduce private mbstowcs/wcstombs for wxQt-Android
These functions are needed due Android NDK lacking wide character support, 
as wchar_t == char according to Android NDK bionic libc/include/wchar.h

WARNING: They are minimally functional (provided provisorily until proper 
         workaround is found, specially maybe using Qt built-in functionality).

         "Basically they produce complete garbage with non-ASCII characters"

For more info see discussion in wx-dev list:

https://groups.google.com/d/msg/wx-dev/71qtIFcujgM/Q-lbwl59vOIJ

Thanks @seandepagnier (modified a bit the comments, added #warning and 
restructured #if blocks to be only specific for __ANDROID__)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78473 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-02-11 06:12:33 +00:00
Mariano Reingart
744ea8a618 For Android (wxQT), add private wcstol, wcstoul and wcstod
These functions are needed by wxString::ToLong wxString::ToDouble etc..
They do exist in the android library, but do not work corretly.

This change implements them using strtol strtoul and strtod

For more info see discussion in wx-dev list:

https://groups.google.com/d/msg/wx-dev/71qtIFcujgM/TRCfCjGHUhEJ

Thanks @seandepagnier (modified a bit the comments)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78472 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-02-11 04:36:24 +00:00
Vadim Zeitlin
8ccb2e5525 Don't validate and transfer data from hidden dialogs when closing.
This is unexpected and resulted e.g. in calling the user-defined
TransferDataFromWindow() multiple times for wxPreferencesPages used in
wxPreferencesEditor under wxGTK (where it is modeless).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78467 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-02-10 23:14:35 +00:00
Vadim Zeitlin
7f857efc2c Fix DLL declaration of wxAddRemoveCtrlNameStr.
The control, and its name string, are in the "adv" library, not "core".

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78465 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-02-09 12:10:39 +00:00
Vadim Zeitlin
453897149f Add wxAddRemoveCtrl class.
This is a simple high level helper combining an arbitrary control showing
multiple items with the buttons allowing to add items to and remove items from
this control, but using the buttons and the layout appropriate for the current
platform.

Add the implementation itself, an example of using it to the dialogs sample
and the documentation.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78462 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-02-09 00:26:11 +00:00
Vadim Zeitlin
4acf5bc1bd Allow documents without template nor views be deleted correctly again.
The changes of r78282 didn't take into account the case of a document without
any views nor template and, consequently, without the associated manager. Such
documents were not deleted at all any longer.

Fix this by ensuring that a document is always associated with a manager: if
not with the one specified by its template, then with the global one.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78453 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-02-06 19:28:46 +00:00
Václav Slavík
3c0b17d4b5 Avoid unneeded use of wxLocale in wxDateTime::Format()
On OS X, wxDateTime::Format() uses wxString::Replace() to
unconditionally replace locale-specific %c, %x and %X specifiers in the
format string if present. Doing so causes three wxLocale::GetInfo()
calls that are often not necessary.

Check for the presence of these  specifiers before calling GetInfo().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78423 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-01-30 15:53:05 +00:00
Václav Slavík
f81d6f68c6 Handle 5+ letter codes in TranslateFromUnicodeFormat()
Unicode TR #35 v26 allows for five-letter (MMMMM) or even six-letter
(EEEEEE) forms of some of the fields, but TranslateFromUnicodeFormat()
asserts in these situations.

Fix it to fall back to short forms for MMMMM and EEEEEE that are used in
practice e.g. on OS X if the user has custom formatting settings.

Consulting the table of sensible specifiers from
http://userguide.icu-project.org/formatparse/datetime, it appears these
two were the only omissions in this function.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78422 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-01-30 15:53:02 +00:00
Mariano Reingart
eab495c496 wxQt: fix performance issue with font comparisons
Thanks @seandepagnier

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78381 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-01-19 02:39:52 +00:00
Mariano Reingart
437af7bcff Fix building for wxQT-android with sockets enabled
The bionic library on android does not have gethostbyname_r even
though it has gethostbyname_r.  The configure script in wxwidgets
assumes if it has one it has the other.   This change does the right
thing for android, but perhaps the script should instead test for both?

Thanks @seandepagnier

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78379 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-01-19 02:31:49 +00:00
Vadim Zeitlin
5c9d7e139d Always invalidate wxStaticText best size after changing its label.
wxST_NO_AUTORESIZE style only affects whether the control is actually resized
when its text changes, but its best size should always change, so that if the
window containing it is explicitly relaid out the size does change.

Moreover, in wxMSW and wxOSX the best size was never invalidated at all when
the label was ellipsized, so it was never updated for them, preventing, for
example, comparing the best size with the current one to check if the text is
effectively ellipsized (and so needs to be shown in a tooltip, for example).

Fix this by calling InvalidateBestSize() unconditionally, this should make
these ports behave in the same was as wxGTK already did.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78357 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-01-09 03:29:58 +00:00
Vadim Zeitlin
20c130a578 Blind fix for wxTextDataObject trailing NUL under OS X.
Use the length provided to SetData() instead of assuming it is NUL-terminated.

Closes #9522.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78318 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-25 01:32:10 +00:00
Vadim Zeitlin
e8374a47fe Allow setting hints for multi-line wxTextCtrl when supported.
Don't prevent people from using hints in wxMSW and wxGTK2, where they work
with multiline text controls too, even though they do not work with wxGTK3 nor
wxOSX.

Closes #14456.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78316 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-25 01:32:00 +00:00
Vadim Zeitlin
25b46080cc Centre text vertically in wxDataViewCtrl by default in generic version.
This was already the case in the native GTK (possibly unintentionally) and OS
X (because vertical alignment is not supported at all there) versions, but in
the generic version using the default wxALIGN_NOT alignment when calling
wxDataViewCtrl::AppendXXXColumn() methods resulted in top-aligned text which
looked ugly (this could be seen on the second page of the dataview sample for
example).

Fix this by handling wxALIGN_NOT as wxDVR_DEFAULT_ALIGNMENT in these functions
to do the right thing by default.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78290 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-20 21:52:00 +00:00
Vadim Zeitlin
4e86ffbe1b Use helper functions for {app,prep}ending wxDataViewCtrl columns.
Make the code more maintainable by using helper functions instead of
duplicating the same logic a dozen times for each of appending and prepending.

This is just a refactoring, no changes in behaviour.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78289 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-20 21:51:57 +00:00
Vadim Zeitlin
c62cbe8970 Remove assert about unsupported wxMOD_ALTGR in wxUIActionSimulator.
wxMOD_ALTGR is wxMOD_ALT + wxMOD_CONTROL and so is, actually, supported as
simulating it involves only simulating both Alt and Control being pressed, at
least under MSW.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78283 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-19 15:56:46 +00:00
Vadim Zeitlin
8ce753db08 Destroy all views associated to wxDocument being forcefully closed.
Forcefully closing a modified document misbehaved in several ways: first, the
question about whether the document should be saved was asked twice if the
first message box was cancelled. Second, DeleteAllViews() didn't actually
delete the views if the second message box was cancelled as well -- so the
views could be left alive while their associated document was destroyed,
resulting in more or less guaranteed crash (e.g. during the next event
handling as wxDocChildFrameAnyBase::TryProcessEvent() assumes that
m_childDocument is still alive if m_childView is).

Fix both problems by really forcing the document to close by pretending that
it is not modified.

We still ask the user once though, as it could be useful to be able to save
the document even when it will be closed. Ideally, the message box shown in
this case shouldn't have a "Cancel" button at all, but this is left for the
future.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78282 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-19 15:56:42 +00:00
Vadim Zeitlin
ea47af08cb Add wxEVT_MAGNIFY mouse event.
Currently this is implemented for wxOSX only.

Closes #14322.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78274 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-16 13:59:26 +00:00
Tim Kosse
d9d6247f37 In wxMBConvStrictUTF8::ToWChar the length of a multibyte UTF-8 sequence is obtained from a table, with the leading byte as offset. Later in that function, the prefix of the leading byte is compared against the expected prefix for the given length.
Unless the table is faulty, this comparison can never fail. It is thus redundant and not needed. As optimizing compilers aren't smart enough yet to detect this, this commit removes the redundant check.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78264 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-11 20:31:21 +00:00