Commit Graph

72378 Commits

Author SHA1 Message Date
Vadim Zeitlin
8bc606ba73 Don't cache locale-specific data in wxNumberFormatter
This cache was never updated and so could be wrong and not using it at
all is the simplest (although also the slowest) fix for this.

Notably, it could result in failures in ValNum::Interactive unit test
because the thousands separator was set to nothing during a previous
test execution, instead of the expected comma.

This commit is best viewed ignoring whitespace-only changes.
2022-03-23 18:46:55 +01:00
Vadim Zeitlin
4a9da949ce Set C locale for wxLANGUAGE_DEFAULT under Unix too
This had been done before all the recent wxUILocale-related changed and
was still done for non-Unix systems, but not there because we explicitly
skipped calling setlocale() in this case with a comment saying that the
default locale was already in use -- however this comment was wrong and
we do need to call setlocale(LC_ALL, "") in this case for compatibility
and consistency.

Closes #22212.
2022-03-23 16:10:40 +01:00
taler21
af9e7fd460 Fix truncation of translated "Finish" button label in wxWizard
Ensure that the button is wide enough to show both "Next" and "Finish"
and also make all the buttons of the same size, as they look better like
this.

Co-authored-by: Vadim Zeitlin <vadim@wxwidgets.org>

Closes #22200.

Closes #22221.
2022-03-23 15:56:03 +01:00
Vadim Zeitlin
5f011b84c1 Merge branch 'tz-parse' of https://github.com/lanurmi/wxWidgets
Parse more time sonzes in wxDateTime::ParseDataTime().

See #22217.
2022-03-23 14:38:58 +01:00
Vadim Zeitlin
d77fd33e66 Merge branch 'imagelist-scale-factor'
Scale factor-related fixes to wxImageList and Mac wxDataViewCtrl.

See #22211.
2022-03-23 13:59:46 +01:00
Andriy Byelikov
3900ece2ee Renormalize .vcxproj.filters files
This fixes the problem with inconsistent file formats in the repository
apparently introduced in e3535d6481 (Mark MSVS *.vcxproj.filters files
as using CR LF as well, 2021-11-24), which resulted in the files changed
by this commit (sometimes) appearing modified in new clones.

Closes #22214.
2022-03-23 13:57:52 +01:00
Vadim Zeitlin
b91173f76e Fix comparing wxDataFormat with wxDF_INVALID in wxGTK
Define wxDataFormat::operator==(wxDataFormatId) instead of relying on
the implicit conversion from wxDataFormatId to wxDataFormat, as this
can't be done when the format ID is wxDF_INVALID because creating
wxDataFormat results in an assert failure in this case, while comparing
with wxDF_INVALID is clearly a perfectly valid operation.

Add a unit test checking for this.

Closes #22213.
2022-03-23 13:43:44 +01:00
Vadim Zeitlin
09a472e3ef Hide wxGenericDataViewCtrl helpers in anonymous namespace
This is a good idea anyhow, as these classes don't need to have extern
linkage and so shouldn't have it, and it also fixes some gcc 11
-Wsubobject-linkage warnings.
2022-03-23 13:35:41 +01:00
Vadim Zeitlin
83daf02f35 Update wxImageList documentation to mention high DPI concerns
First of all, document that this class is (informally) deprecated.

Also document that the various sizes are expressed in logical pixels.
2022-03-22 23:02:25 +01:00
Vadim Zeitlin
1a8906206e Use appropriately sized bitmaps in wxOSX wxDataViewCtrl
Select the bitmap of the required size from wxBitmapBundle instead of
selecting the bitmap with the default size and then possibly rescaling
it to get the bitmap of the needed size, resulting in fuzzy-looking
bitmaps.

Closes #22189.
2022-03-22 23:02:25 +01:00
Vadim Zeitlin
cc02b3cece Revert "Assure that all images in the generic wxImageList have the same scale factor"
This reverts commit b6d305e4f2 because
silently discarding images using a different scale factor is simply too
user-unfriendly: this can silently break the existing code, i.e. it can
still compile perfectly and not give any errors during run-time but not
show any images neither.

Also revert most of dc43d15cf7 (Add tests of storing HiDPI images in
generic wxImageList (wxOSX, wxGTK3), 2021-04-05) as these tests don't
pass any longer because the behaviour was intentionally changed.

See #22189.
2022-03-22 23:01:40 +01:00
Vadim Zeitlin
d9a48edc81 Restore the old default size of Tango art provider bitmaps
The default size of the bitmaps created from bitmap bundles returned by
the Tango art provider for the client strings different from wxART_MENU
and wxART_BUTTON was changed from 24x24 to 16x16 in 766fefeb34 (Use SVG
instead of PNGs in tango art provider, 2022-01-27), see #22067, without
any real need and perhaps even non intentionally at all.

Restore the old default size to restore the old behaviour.

See #22189.
2022-03-22 23:01:40 +01:00
Lauri Nurmi
fdd05c8b8b Parse also time zone in ParseDateTime(), if found
Accept the same kind of time zone specifiers that RFC822 timestamps
accept; most importantly the "+0200" style.

Added more tests, and changed the way tests compare dates:
Since some timestamps now specify a time zone, those need to be compared
as UTC to avoid the system's time zone affecting the tests. Others can
still be compared as local time, as before.
2022-03-22 19:12:48 +02:00
Lauri Nurmi
136b1713e1 Refactor time zone parsing into a separate function from ParseRfc822Date()
For now, the new function is private and undocumented.
2022-03-22 19:12:45 +02:00
Lauri Nurmi
770cf26afe Fix out-of-bounds with military and truncated time zones; add more tests
Out-of-bounds was already covered by the fact that the date is appended 32
zero-bytes in ParseRFC822Date() as a safety measure. But now the time zone
parsing section of the function no longer relies on those extra zeros
being present.

Added tests for RFC822 timestamps with military time zones, and more types
of truncated, invalid time zone specifiers.
2022-03-22 19:11:22 +02:00
Lauri Nurmi
89eec3cb80 Fix truncated time zone specifier tests for ParseRFC822Date()
Correction to the commit:
2153ffc (Test ParseRFC822Date() with truncated time zone specifiers,
2022-03-19)

The inputs failed as expected, but due to an unrelated reason (missing
comma).
2022-03-22 19:09:23 +02:00
Paul Cornett
6a3ccabf11 Fix unused parameter warning with GTK2 2022-03-21 12:22:26 -07:00
Paul Cornett
b4475c881a Avoid some -Wduplicated-branches warnings 2022-03-21 11:54:30 -07:00
Paul Cornett
e9e1023393 Simplify wxGtkImage scale handling
Since wxGtkImage is a GtkWidget, we can get the scale directly from it,
no need for an associated wxWindow pointer just to get the scale.
2022-03-21 11:52:01 -07:00
Vadim Zeitlin
7b8d40666b Add wxART_QUIT icon to Tango art provider
Gnome uses a variant of the "log out" icon for its standard "Exit" icon,
so it should be fine for us to do it too, contrary to what the comment
from back when Tango provider was added in c1d2466a79 (Add wxArtProvider
using Tango icons., 2010-12-31) was saying.
2022-03-20 21:52:25 +01:00
Vadim Zeitlin
616e7c8842 Update menu bitmaps when invoking window is set in wxOSX
Changing invoking window always needs to update the bitmaps because
the scale factor may need to be changed if this window is on a different
display, using different scaling, so do it automatically whenever
SetInvokingWindow() is called instead of having to remember to call
SetupBitmaps() manually everywhere SetInvokingWindow() is.

This required making the base class function virtual, but allows to get
rid of SetupBitmaps() call in wxWindow::DoPopupMenu(), as it can now
rely on this being already done by wxWindowBase::PopupMenu().
2022-03-20 17:34:51 +01:00
Vadim Zeitlin
53938a85d3 Fix wxTaskBarIconWindow::GetContentScaleFactor() in wxOSX
Don't crash if this function is called (which is not the case yet, but
will be after the upcoming commit, when it's going to be implicitly used
when updating the bitmaps for taskbar icon menu), but return the content
scale factor for the main screen, which should be the right thing to do
here.
2022-03-20 17:34:51 +01:00
Vadim Zeitlin
5eab94b7d6 Reuse wxMenuInvokingWindowSetter in wxOSX wxTaskBarIcon code
No real changes, just reuse the existing helper class doing the same
thing the code here was doing manually.
2022-03-20 17:17:11 +01:00
Vadim Zeitlin
b5cb056a03 Don't draw focus around AUI tabs under macOS
This currently doesn't work there because the focus rectangle doesn't
fit into the space reserved for it (which is a bug on its own, probably)
and would look very out of place even if it did work because the native
tabs don't use focus rectangle for the selected tab.

Closes #22190.
2022-03-20 16:21:35 +01:00
Vadim Zeitlin
4e885516b9 Update libpng and libtiff to fix warnings with latest clang
Get rid of -Wunused-but-set-variable in these libraries code given by
Apple clang version 13.1.6.

No real changes.
2022-03-20 16:01:31 +01:00
Vadim Zeitlin
65edeac31c Merge branch 'tbar-sample-fixes'
Fixes for changing toolbar icons style in wxMSW and toolbar sample.

See #22209.

Closes #22199.
2022-03-20 14:55:59 +01:00
Vadim Zeitlin
cf46f8809e Don't ignore custom formats in wxDataViewCtrl::EnableDropTarget()
Since the changes of 7129d2b11c (Accept multiple data formats via
drag-and-drop in wxDataViewCtrl, 2021-08-22) custom data formats were
simply ignored because CreateDataObject() helper didn't do anything for
them.

Fix this by simply continuing to handle them in the same way as before,
i.e. by creating a wxCustomDataObject for the specified format.

Closes #22112.
2022-03-20 14:53:56 +01:00
Vadim Zeitlin
3ec0697c04 Don't crash in toolbar sample if there is no toolbar
Using many menu commands after removing the toolbar could result in a
crash because they used the toolbar pointer without checking for its
validity.

Add wxEVT_UPDATE_UI handler disabling these commands to prevent this
from happening.

This required rearranging the menu item IDs to allow using a single
range for all of them.
2022-03-20 02:38:35 +01:00
Vadim Zeitlin
d17171db26 Fix toolbar bitmap size after toggling icons/text style
When recreating the toolbar we now need to reset the bitmap size too, as
otherwise the correct size is not actually set for the new toolbar.
2022-03-20 02:27:18 +01:00
Vadim Zeitlin
630612e2c9 Initialize wxAuiToolBar values in pixels after creating it
Don't use FromDIP() before the window is created, this doesn't work
correctly in wxMSW.

See #22193.
2022-03-19 23:00:10 +01:00
ousnius
259c0fd335 Support "style" XRC element for wxWizard
Allow specifying the standard dialog styles, notably wxRESIZE_BORDER,
for wxWizard in XRC.

Closes #22207.
2022-03-19 22:56:08 +01:00
Vadim Zeitlin
033b323ec1 Merge branch 'date-parsing-test-and-fixes' of https://github.com/lanurmi/wxWidgets
Date parsing tests and fixes.

See #22208.
2022-03-19 22:56:08 +01:00
Lauri Nurmi
088e643d37 Do not consume whitespace/delimiters after date in DateParse()
Set the end iterator to the end of the actually parsed date, instead
of consuming any ultimately unparsed whitespace/delimiters possibly
following the date.
2022-03-19 22:56:08 +01:00
Lauri Nurmi
945738042d Fix ParseDate() for dates having day expressed as an ordinal
Previously the year was left unparsed, and the current year was
incorrectly used even when the input provided a year.
2022-03-19 22:56:08 +01:00
Lauri Nurmi
700d763ebc Test ParseDate() with dates containing a weekday
Test both a weekday that matches the date, and one that does not.
2022-03-19 22:56:08 +01:00
Vadim Zeitlin
9c4e75a95e Merge branch 'wxlogo-svg-optimize-viewbox' of https://github.com/MaartenBent/wxWidgets
Optimize and adjust wxlogo.svg.

Also fix icon size in wxDataViewCheckIconTextRenderer.

See #22204.
2022-03-19 22:56:07 +01:00
Lauri Nurmi
4cf335340c Test the end iterator set by Parse{Date,Time,DateTime}()
In other words, check that the unprocessed part of the input is what
we expected.

Also add some cases where a valid date or time is followed by something.
2022-03-19 22:56:07 +01:00
Vadim Zeitlin
1c33294cf5 Add debugging check for using possibly incorrect DPI in wxMSW
When calling GetDPI() for a window which is not created itself yet and
doesn't have any valid top level parent neither, we have no choice but
to fall back on using the screen DPI, but this doesn't always work
correctly for the systems using multiple monitors with different DPIs,
so warn when this happens -- any situations when it does indicate a
potential bug that should be fixed.

See #22193.
2022-03-19 22:56:07 +01:00
Lauri Nurmi
23b8ec6d9a Test ParseRFC822Date() with truncated time zone specifiers 2022-03-19 22:56:07 +01:00
Vadim Zeitlin
2991c3e78a Remove useless wxTabFrame members initialization
It doesn't make sense to use some hardcoded size for these fields and
we can't use FromDIP() for wxTabFrame which is not a real window (as
it's never created, it doesn't have a valid HWND under MSW, so FromDIP()
can't return the correct result for it), so don't initialize them at
all: they will be set later, before they're actually used, by the code
in wxAuiNotebook using wxTabFrame.
2022-03-19 22:56:07 +01:00
Vadim Zeitlin
104b8461d8 Remove premature wxAuiNotebook::m_tabCtrlHeight initialization
FromDIP() shouldn't be used before the window is created and
m_tabCtrlHeight was already initialized correctly in InitNotebook(),
when it can be used, so simply remove this premature and redundant
initialization.
2022-03-19 22:56:07 +01:00
Vadim Zeitlin
a00b0336a1 Don't adjust the font to DPI if the window isn't created yet
This is at best useless, as we can't get the correct DPI to use before
the window is created anyhow.

See #22193.
2022-03-19 22:56:07 +01:00
Vadim Zeitlin
e9bbe21fb5 Don't cache screen HDC DPI in wxActiveXContainer code
The DPI can change, so call wxGetDPIofHDC() each time we need it instead
of reusing the potentially invalid old value.
2022-03-19 22:56:07 +01:00
Vadim Zeitlin
8ad752f313 Remove never used macros from wxActiveXContainer code
This was added back in 557002cf81 (Ryan's cumulative wxActiveX and media
control patch (1427775), 2006-02-10) but never used.
2022-03-19 22:56:07 +01:00
Vadim Zeitlin
28605bfcfb Make wxDumpWindow() take const wxWindow pointer
There is no reason not to allow calling this function with const window,
so do allow it, notably to make it possible to use it with "this" from
const wxWindow methods.
2022-03-19 22:56:06 +01:00
Vadim Zeitlin
f54ebf3261 Add wxGetDPIofHDC() helper function and use it in wxMSW code
No real changes, just replace several pairs of calls to GetDeviceCaps()
with a single helper function call.
2022-03-19 22:56:06 +01:00
Marek Roszko
a3a1f8a2f1 Release HDC in WindowHDC destructor even if HWND is invalid
It is possible to use WindowHDC as ScreenHDC by passing a NULL HWND to
its ctor and we still need to release the HDC allocated in this case in
the dtor, so do _not_ check for HWND being valid there.

This fixes a bad resource leak in wxWindow::GetDPI() when it's called
for a window without a valid handle.

Closes #22193.

Closes #22194.
2022-03-19 22:56:06 +01:00
Paul Cornett
28ca585d12 Require window pointer for default wxGtkImage BitmapProvider
Originally a NULL window pointer indicated that a disabled bitmap
was not needed, but now the pointer is always needed for scaling.
2022-03-19 14:32:15 -07:00
Ilya Sinitsyn
f6c1230f71 Fix regression when adding items to an open node of wxDVC
This fixes a regression introduced in e5bd3ecec6 (Handle item adding to
DVC to a non-container node, 2022-03-17).

See #22201.

Closes #22205, #22206.
2022-03-18 19:38:54 +01:00
Vadim Zeitlin
b9a9ae70ea Fix loading message catalogs for domains with a dot in them
Anything following the dot was mistakenly used as an extension of the
corresponding file and replaced with ".mo", breaking loading of catalogs
with the names like "wxstd-3.1", which is the standard wx catalog name
since ded4da5ce5 (Add version suffix to gettext message catalog files,
2021-02-07).

Closes #22198.
2022-03-18 15:38:07 +01:00