Commit Graph

67597 Commits

Author SHA1 Message Date
Vadim Zeitlin
f3217573d7 Merge branch 'rc-manifest' of https://github.com/MaartenBent/wxWidgets
Fix using manifest from rc file with VC compiler.

See https://github.com/wxWidgets/wxWidgets/pull/1678
2019-12-15 03:44:39 +01:00
Vadim Zeitlin
55f148a2ea Avoid asserts when moving mouse in empty wxGridColLabelWindow too
The changes of the previous commit were insufficient, as we could also
use an invalid column index when handling mouse event in an empty grid.

Fix this by checking for the line validity in PosToEdgeOfLine() instead
of adding another ad hoc check to wxGridColLabelWindow itself, as it
seems reasonable for this function to verify that it uses valid indices.

See #18629.
2019-12-14 00:03:01 +01:00
Maarten Bent
cd1d15351c Fix concatenating manifest name in resource file 2019-12-13 22:21:40 +01:00
Maarten Bent
083f4b3c32 Rename manifests to use underscores 2019-12-13 21:44:26 +01:00
Vadim Zeitlin
9c1e8fde8f Avoid asserts when painting empty wxGridColLabelWindow
When the grid is empty, XToCol() has no choice but to return invalid
index (because there are no valid ones) when it's called from the
drawing code and passing such indices to GetColPos() results in an
assert, which is fatal inside wxEVT_PAINT handler.

Just short-circuit all this code by not doing anything in the case of
empty grid. This is sloppy, but simpler and more robust than any
alternatives.

Closes #18629.
2019-12-13 16:19:47 +01:00
Artur Wieczorek
395a30002e Always draw text with wxCOPY raster operation mode on wxGCDC
It is said in the wxDC::DrawText() documentation that current logical function is ignored by this function (e928566f). This should apply also to wxGCDC implementation for the sake of consistency and text drawing should be always done with wxCOPY mode regardless of the current mode set.
2019-12-12 13:50:19 +01:00
Robin Dunn
09c4033f43 OSXEnableAutomaticTabbing does not return a value 2019-12-11 12:07:43 -08:00
Artur Wieczorek
1d744026f2 Demonstrate drawing text with tab characters 2019-12-10 23:14:49 +01:00
Vadim Zeitlin
7b8cdd441d Return (0, 0) from wxMDIChildFrame::GetPosition() in wxGTK
This makes more sense for a page of a GtkNotebook, which is always
positioned at (0, 0) relative to its client area, and is also more
compatible with wxMSW.

Closes #18548.

Closes https://github.com/wxWidgets/wxWidgets/pull/1670
2019-12-10 22:42:00 +01:00
Ian McInerney
b17aa08c26 Allow automatic OS-provided tabbing to be disabled in wxOSX
macOS 10.12+ implements automatic tabbing in the OS. This adds
entries to the menus and also adds a tab bar. Some applications
might want to disable this, so provide an interface for doing this.

Closes https://github.com/wxWidgets/wxWidgets/pull/1674
2019-12-09 22:46:04 +01:00
Vadim Zeitlin
7ecd55f02b Mention that changelog shouldn't be modified directly
Explain that the changes are stored in git notes and the changelog is
only updated before a release now.
2019-12-09 22:45:06 +01:00
Ian McInerney
540fed9216 Implement background color attribute for wxDataViewCtrl in wxOSX
Add support for this attribute for text-like cells to the native macOS
version too, to bring it up to parity with the generic and GTK ones.

Closes https://github.com/wxWidgets/wxWidgets/pull/1673
2019-12-09 22:45:06 +01:00
Václav Slavík
c4af8be615 wxIsPlatform64Bit: don't launch uname needlessly
Don't execute uname in Unix version of  wxIsPlatform64Bit () to
determine if the current platform is 64-bit capable if the binary is
already a 64bit one.

This is consistent with how MSW implementation behaves and avoids a
pointless invocation when running 64-bit binaries.

As an added benefit, this prevents user harassment by macOS 10.15 if
they launch a wx application from a "protected" location like ~/Desktop
or ~/Downloads - apparently stat()ing CWD is considered evil and
privacy-invading these days.
2019-12-08 19:44:49 +01:00
Paul Kulchenko
1c754fe71c Make wxAuiNotebook wxAuiTabCtrl-related methods public
Allow retrieving the active tab control or tab at the given position.

Closes #16262.
2019-12-07 15:13:06 +01:00
Vadim Zeitlin
0425050ad8 Use native wxDragImage by default in the sample
There doesn't seem to be any reason to default to the generic version.

Closes https://github.com/wxWidgets/wxWidgets/pull/1671
2019-12-07 14:53:49 +01:00
catalinr
392e119bbe Fix dragimag sample compilation with modern compiler under MSW
Don't "override" UpdateBackingFromWindow() method of the base class
unless it really exists, which is only the case for the generic
wxDragImage implementation but not the native MSW one.

See https://github.com/wxWidgets/wxWidgets/pull/1671
2019-12-07 14:52:41 +01:00
Vadim Zeitlin
155885a3dd Reformat splitter sample to follow wx style guidelines
Put "{" and "}" on their own lines. Also use spaces around "if"
condition and omit unnecessary comparisons with NULL.

No real changes.

See https://github.com/wxWidgets/wxWidgets/pull/1672
2019-12-07 14:47:51 +01:00
Xiaofeng Wang
1222ac3d7f Fix crash in the splitter sample due to replacing null window
The sample could crash after the following sequence of actions:

1. Resize splitter to hide the right/left window.
2. Activate replace menu action.

Fix this by checking if the window being replaced is non-null.

Closes https://github.com/wxWidgets/wxWidgets/pull/1672
2019-12-07 14:45:38 +01:00
Artur Wieczorek
9fbf97ae97 Check __WXOSX_COCOA__ instead of wxOSX_USE_COCOA
wxOSX_USE_COCOA is available only in wxOSX files.
2019-12-06 21:09:36 +01:00
Artur Wieczorek
1d45886c8f Don't attempt to get RGB components of invalid colour 2019-12-06 20:44:18 +01:00
Artur Wieczorek
67b64ee70f Add support for creating Cairo pen from wxPen with non-solid colour
Cairo colour patterns support only RGBA colours and therefore it is not
possible to create a colour pattern from wxPen with non-RGB colour
(non-solid colour). As a workaround under wxOSX for solid wxPen with
non-solid colour we can convert it to Cairo surface pattern (stiple)
because under wxOSX non-solid colour is actually represented by a pattern
image.
2019-12-06 20:40:57 +01:00
Artur Wieczorek
55478d95a5 Add support for creating Cairo brush from wxBrush with non-solid colour
Cairo colour patterns support only RGBA colours and therefore it is not
possible to create a colour pattern from wxBrush with non-RGB colour
(non-solid colour). However under wxOSX, when we have a solid wxBrush with
non-solid colour, we can convert it to Cairo surface pattern (stiple)
because under wxOSX non-solid colour is actually represented by a pattern
image.
2019-12-06 20:34:57 +01:00
Artur Wieczorek
389944a116 wxOSX: Implement function to retrieve pattern image for non-solid colour
Under wxOSX non-solid wxColour with NSColor backend is represented by
pattern image and it would be useful to have ability to get it e.g. to help
dealing with non-solid wxColours by frameworks not supporting such colours,
like e.g. Cairo.
2019-12-06 20:33:35 +01:00
Artur Wieczorek
994971e2df Draw horizontal/vertical lines with optimized function only on non-scaled DCs
It turned out that drawing horizontal/vertical lines with optimized function based on ExtTextOut() Win API works as expected only for non-scaled DC. Therefore we can use this optimized way of drawing only for non-rotated and non-scaled DCs.
On not-scaled DCs we can use optimized function to draw also 0-pixel width lines (as a 1-pixel wide lines for compatibility with Win API).

Closes #18612.
2019-12-06 00:08:15 +01:00
Stefan Csomor
31c7073571 macOS: silence warning in non-ARC build
see f1aa3c1c9a
2019-12-05 20:36:29 +01:00
Paul Cornett
bba090e3a4 Fix wxOSX build with wxUSE_DRAG_AND_DROP==0 2019-12-05 08:59:55 -08:00
Vadim Zeitlin
6f95676f3e Merge branch 'grid-delete-rows-crash-fix'
Don't use invalid grid cell coordinates when deleting grid rows.

See https://github.com/wxWidgets/wxWidgets/pull/1669
2019-12-05 17:35:05 +01:00
Dummy
edc5474a73 Add @since annotation to a couple of wxPGProperty methods
Document that these methods have been added in 3.1.0.

Closes #18613.
2019-12-05 17:33:27 +01:00
Paul Kulchenko
e8b917e7a4 Use system colours if the contrast is sufficient in AUI tabs
Improve colour selection in AUI tab art code: prefer to use the system
colours and only fall back on the replacement ones if the contrast is
too small for the text using system colours to be readable.

Closes #18601.
2019-12-05 17:30:19 +01:00
Artur Wieczorek
f3eea70870 Refactor: Remove duplicated line of code 2019-12-04 23:35:41 +01:00
Artur Wieczorek
64ae98e671 Create CGFont when a new font is set
CTFont and CGFont are used in parallel so both
need to be stored when a new font is set.

Closes #18610.
2019-12-04 23:35:19 +01:00
Paul Kulchenko
8cb9272458 Make wxAuiGenericTabArt text readable on dark background
Select the appropriate text colour depending on the background to ensure
that it remains readable even when using themes/modes using dark
background colours -- which wasn't at all the case before.

Closes #18601.
2019-12-04 19:26:45 +01:00
Vadim Zeitlin
462e7b7732 Avoid using invalid index in wxDisplayFactory under Mac
Partially work around currently unimplemented cache invalidation in
wxMac and do it on the fly if an invalid index is passed to
GetDisplay() to at least avoid crashing, even if this doesn't fully
solve the problem, e.g. we still can use stale information.

Closes #18607.
2019-12-04 19:22:07 +01:00
Vadim Zeitlin
90d547feb6 Don't redraw current cell when the grid is frozen
Don't update the grid appearance when inside a sequence of batch
operations, it will be updated at the end of it anyhow and doing it in
the middle only results in extra flicker.
2019-12-03 02:56:46 +01:00
Vadim Zeitlin
e0b8ef85f2 Don't use invalid grid cell coordinates when deleting grid rows
Since the changes of dda6aa6bdc wxGrid
code could ask the grid table for the data of an invalid cell due to
redrawing the old, and now possibly invalid, current cell from inside
SetCurrentCell() called from wxGrid::Redimension().

Fix this by explicitly resetting the old current cell to an invalid
value when changing it in UpdateCurrentCellOnRedim().

Also avoid calling SetCurrentCell() entirely if the current cell doesn't
change, as this is just completely unnecessary and results in a possible
unexpected wxEVT_GRID_SELECT_CELL event.

See https://github.com/wxWidgets/wxWidgets/pull/1546
2019-12-03 02:47:08 +01:00
Vadim Zeitlin
7b36d72b44 Merge branch 'vc-pmdpi' of https://github.com/MaartenBent/wxWidgets
Add DPI Awareness option to nmake makefiles and MSVC projects.

See https://github.com/wxWidgets/wxWidgets/pull/1664
2019-12-03 02:29:25 +01:00
Vadim Zeitlin
7849d231d9 Merge branch 'build-option-fixes' of https://github.com/MaartenBent/wxWidgets
Miscellaneous build options fixes.

See https://github.com/wxWidgets/wxWidgets/pull/1661
2019-12-03 02:27:52 +01:00
Vadim Zeitlin
811be7ced7 Fix wxGridCellAttr::GetNonDefaultAlignment() for invalid inputs
The recent change of 19844d27ac fixed this
function for valid values of input/output parameters on input, but broke
it if the parameters had invalid value: in this case, we still need to
fill them even if this attribute doesn't have any specific alignment of
its own.

Account for this case too now, explain the logic of this function in the
comments inside it and extend the unit test to check for this case too.

Now the function should really conform to its documented (and expected,
including by the existing code in various grid renderers) behaviour.

Closes https://github.com/wxWidgets/wxWidgets/pull/1665
2019-12-03 02:26:49 +01:00
Vadim Zeitlin
00a56a28b6 Merge branch 'sock-event-fix'
Fix unwanted (and sometimes fatal) socket events for blocking sockets
under Unix.

See https://github.com/wxWidgets/wxWidgets/pull/1658
2019-12-03 02:25:18 +01:00
Vadim Zeitlin
14cfc2c2b2 Avoid clang -Wnon-virtual-dtor without triggering MSVC warnings
The change of 4990515aba resulted in
(disabled by default, but which may be enabled when building
applications using wxWidgets) MSVS 2017 warning C4265 ('class' : class
has virtual functions, but destructor is not virtual), so test for clang
explicitly instead of just testing for non-gcc.
2019-12-02 22:35:36 +01:00
Artur Wieczorek
7143ff46b0 Ensure bitmap image exists while querying for a row stride
Obtaining bytes per row makes sense only for bitmap image representation
so we have to ensure that the bitmap represenation exists before querying
for its row stride length. NSImage per se cannot provide this information.

Closes #18606.
2019-12-01 22:58:18 +01:00
Artur Wieczorek
a1cc2056bc Update NSImage with changes made to bitmap pixel data
In order to get access to wxBitmap's pixel data we actually have to work
with CGBitmapContext data and this context is created from NSImage by call
to wxBitmapRefData::EnsureBitmapExists() when we prepare to get access
to the data in wxBitmapRefData::GetRawAccess().
So, when we finish updating bitmap data we should update original NSImage
with actual CGBitmapContext data in wxBitmapRefData::EndRawAccess().

See #18606.
2019-12-01 22:39:38 +01:00
Maarten Bent
e36cdaddfd Specify CPU parameter for AppVeyor nmake builds
Don't use DPI aware manifest with VC9.
Build minimal samples with msbuild and nmake.
2019-12-01 00:06:44 +01:00
Maarten Bent
7fd0b744a8 Update wxrc sln and vcxproj files
Specify all configuration types, add dependent projects.
Based on the minimal sample solutions and project file.
2019-11-30 23:26:15 +01:00
Maarten Bent
0f2308e3eb Update test sln and vcxproj files
Remove old configurations, add dpi manifest.
2019-11-30 23:24:54 +01:00
Maarten Bent
067c192112 Add DPI aware manifest to minimal.vcxproj 2019-11-30 23:11:04 +01:00
Maarten Bent
bed8cd7b52 Rebake after adding DPI awareness option 2019-11-30 22:52:48 +01:00
Vadim Zeitlin
36546b6f3f Merge branch 'grid-editors-placement'
Fix positions of the checkboxes drawn by wxGridCellBoolRenderer and
shown by wxGridCellBoolEditor so that there is no jump when starting or
stopping to edit grid cells with boolean values.

See https://github.com/wxWidgets/wxWidgets/pull/1662
2019-11-29 16:24:07 +01:00
Vadim Zeitlin
56bf5282d7 Merge branch 'gtk-fractional-font-scaling'
Apply system's fractional font scaling parameter when displaying text in
wxGTK.

See https://github.com/wxWidgets/wxWidgets/pull/1650
2019-11-29 05:04:56 +01:00
Vadim Zeitlin
abc8841f0b Use default wxCheckBox size in wxGridCellBoolEditor
Using wxRendererNative::GetCheckBoxSize() as the size of wxCheckBox just
doesn't work with GTK 3, as the control has additional padding between
its actual contents and the focus rectangle, which means that its actual
size must be greater than the size to be passed to DrawCheckBox() in
order to draw a checkbox of the same size.

However it isn't really necessary to resize wxCheckBox at all, it's
enough for DrawCheckBox() to produce a check mark of the same size as
that shown in a default-sized wxCheckBox and this does work in wxGTK.

So keep the default size of wxCheckBox to make everything work.

This means wxGetGridCheckBoxRect() is not useful any more, so replace it
with wxGetContentRect() which just positions a rectangle of the given
size inside another one (this should probably be moved somewhere else,
as it's more general than wxGrid).
2019-11-29 04:57:59 +01:00