Commit Graph

66821 Commits

Author SHA1 Message Date
PB
87c1f2302f Fix typo in docs/msw/install.md 2019-09-17 19:45:53 +02:00
PB
698c0c09ae Update docs/contributing/binary-compatibility.md
Attempt to update the document, some parts of it are still
quite outdated (references to Sun/Solaris, ancient GCC and
wxWidgets version...).
2019-09-17 19:07:22 +02:00
Ilya Sinitsyn
e26d90028b Allow disabling hiding columns when using wxHeaderCtrl in wxGrid
Add wxGrid::DisableHidingColumns() method which can be used to prevent
wxHeaderCtrl from allowing the user to hide columns interactively, which
is something it allows to do by default, unlike the "built-in" wxGrid
header.

Also add EnableHidingColumns() and CanHideColumns() for consistency with
the other similar methods.

Closes https://github.com/wxWidgets/wxWidgets/pull/1554
2019-09-16 23:32:59 +02:00
Ilya Sinitsyn
4302c6b8ba Fix showing the popup menu in wxHeaderCtrl under Mac
wxOSX asserts if a menu item with id of 0 is created, so use 1-based IDs
to avoid this.

Using an explicit constant for the base instead of using 0 implicitly
also arguably makes the code more clear.

Closes https://github.com/wxWidgets/wxWidgets/pull/1555
2019-09-16 23:19:15 +02:00
Artur Wieczorek
0818e334fd Fix making a copy of wxBitmap
Because wxBitmap can have both alpha channel and mask, so the presence of the mask shouldn't prevent alpha channel from being enabled (if necessary).
2019-09-16 20:32:28 +02:00
Artur Wieczorek
992b594c15 Fix creating CGImage from bitmap data
Alpha channel values of created CGImage should be
a superposition of the actual alpha channel values
and bitmap mask (if exists).

See #18498.
2019-09-16 20:31:35 +02:00
Artur Wieczorek
64a08c0c9a Fix converting wxBitmap with alpha channel and mask to wxIcon
For bitmap with both alpha channel and mask we have to apply mask on our own because 32 bpp icons don't work properly with mask bitmaps. To do so we will create a temporary bitmap with copy of RGB data and with alpha channel being a superposition of the original alpha values and the mask.

See #18498.
2019-09-16 18:37:52 +02:00
Artur Wieczorek
2d15218c9d Fix drawing wxBitmap with both alpha channel and mask
For 32 bpp wxBitmap with both alpha channel and mask we have to apply mask on our own while drawing the bitmap because MaskBlt() API doesn't work properly with 32 bpp RGBA bitmaps. To do so we need to create a temporary bitmap with copy of original RGB data and with alpha channel being a superposition of the original alpha values and the mask.

See #18498.
2019-09-16 18:37:52 +02:00
Jouk
b2cdcb6824 Include all objects in library on OpenVMS-AXP 2019-09-16 08:23:29 +02:00
Vadim Zeitlin
8a27b2e6bf Fix Backspace in wxTextCtrl with custom autocompleter in wxMSW
Pressing Backspace in controls with custom autocompleter previously
didn't do anything at all, as it didn't work correctly after backspacing
over the just inserted autocompletion, but this was clearly wrong, as it
didn't update the list of available completions even after erasing some
non-autocompleted characters.

Fix this by handling Backspace as any other key and just avoiding
refreshing the control contents needlessly if the completion prefix
didn't change.

Closes #18503.
2019-09-15 23:07:42 +02:00
Vadim Zeitlin
0146c47a7f Generate wxEVT_TEXT_ENTER for Enter key on Numpad too in wxMSW
Handle WXK_NUMPAD_ENTER in the same way as we already handle WXK_RETURN.

Closes #18504.
2019-09-15 14:31:42 +02:00
Vadim Zeitlin
dfc6cdc063 Emphasize that wxDC::Clear() used brush set by SetBackground()
Ensure that people don't get the impression that using SetBrush() is
supposed to affect Clears().

See #18463.
2019-09-14 23:08:20 +02:00
Paul Kulchenko
9d704706cb Respect AUI toolbar buttons sticky state in native MSW theme
Indicate that the items are sticky by always drawing them in a
hover-like state, as otherwise stickiness wasn't visible at all.

Closes #18496.
2019-09-14 20:20:05 +02:00
Vadim Zeitlin
93815ad2d2 Merge branch 'listctrl-itemrect'
Improve wxListCtrl::GetSubItemRect() and add a unit test for it.

See https://github.com/wxWidgets/wxWidgets/pull/1511
2019-09-14 16:37:57 +02:00
Lauri Nurmi
b42895345a Log a debug message when unloading a dynamic library fails on MSW
Logging (even non-debug logging) in similar situation already happens on
*nix.

Closes https://github.com/wxWidgets/wxWidgets/pull/1545
2019-09-13 14:45:09 +02:00
Jouk
c836ca7312 correction on Fix build after the last commit 2019-09-13 14:38:50 +02:00
Vadim Zeitlin
0ccfd9c0e9 Fix build after the last commit
Remove the extraneous parenthesis in the preprocessor test.
2019-09-13 14:15:39 +02:00
Jouk
9a271ab676 Switching on wxUSE_CAIRO for wxX11 on OpenVMS 2019-09-13 08:03:45 +02:00
Ilya Sinitsyn
dda6aa6bdc Fix assert with setting current cell in wxGrid::Redimension()
Avoid calling wxGrid::SetCurrentCell(0, 0) when the grid has no columns
or rows, as it doesn't have any cells then and doing this logically
fails the precondition assert in GetColPos().

Also refactor all 6 different snippets calling SetCurrentCell() in
Redimension() into a single function to simplify the code and make it
more maintainable.

Add a unit test verifying that this works as intended.

Closes https://github.com/wxWidgets/wxWidgets/pull/1546
2019-09-13 00:47:48 +02:00
Robin Dunn
41b444e011 Merge pull request #1455 from wxWidgets/gradient-pen
Add support for gradients in wxGraphicsPen
2019-09-11 20:17:34 -07:00
Kvaz1r
3fffc0782c Make wxThread::OnExit() protected rather than private
This allows calling the base class version from the derived classes and
also, at least as importantly, make sure that the function is actually
documented as private functions are not extracted by Doxygen by default.

Closes #16749.

Closes https://github.com/wxWidgets/wxWidgets/pull/1543
2019-09-12 00:55:32 +02:00
Vadim Zeitlin
be53b3fb20 Fix infinite recursion if wxGrid is modified from event handler
Calling wxGrid::{Insert,Delete}{Rows,Cols}() from wxEVT_GRID_CELL_CHANGE
event handler resulted in infinite recursion because it tried to hide
the grid editor control again, which resulted in another CELL_CHANGE
event being generated and so on.

Break this infinite recursion in the usual way, i.e. by updating the
state of wxGrid before invoking the user-defined event handler.

This required separating SaveEditControlValue() in 2 functions, the main
one retaining IsCellEditControlEnabled() check for compatibility, and
the new DoSaveEditControlValue() that can be called even after disabling
the editor.

Closes #2287.

Closes https://github.com/wxWidgets/wxWidgets/pull/1540
2019-09-12 00:53:21 +02:00
Vadim Zeitlin
c1fdc717ae Merge branch 'multiline-enter-fix'
Fix handling Enter in multiline text controls in wxMSW.

And other improvements, notably don't send wxEVT_TEXT_ENTER for controls
without wxTE_PROCESS_ENTER style.

Closes #18491.

See https://github.com/wxWidgets/wxWidgets/pull/1539
2019-09-12 00:50:00 +02:00
Robin Dunn
1c2e71920a Remove commented-out asserts 2019-09-11 13:09:12 -07:00
Robin Dunn
b10c7a982f Remove misplaced wxOVERRIDE 2019-09-11 12:59:27 -07:00
Artur Wieczorek
163c7cf834 Fix checking WXUSINGDLL in conditional block
We have to check if WXUSINGDLL macro is defined instead of checking its value.
2019-09-10 22:52:23 +02:00
Ilya Sinitsyn
e2bd6ec8f7 Fix clearing selection in a grid with reordered columns
Since the changes of 04f7f1fd32 (frozen
rows/columns implementation), RefreshBlock() could call GetColPos() with
an invalid index. This didn't matter most of the time as the function
simply returned the same index as long as the columns were using their
natural order, but resulted in a crash due to an out of bound access to
m_colAt array as soon as they were reordered.

Fix this by avoiding using invalid indices in RefreshBlock() and, more
generally, improving its precondition check and making the assumptions
about the input parameters more clear. Also add a defensive check to
GetColPos() itself.

Finally, add a unit test exercising this code.

Closes https://github.com/wxWidgets/wxWidgets/pull/1536
2019-09-10 19:41:45 +02:00
Vadim Zeitlin
fbdc55ee0a Test multiline text control in the "Enter" testing dialogs
Add another test control to the dialogs sample.
2019-09-10 18:48:20 +02:00
Vadim Zeitlin
9bab9d8da8 Don't activate default button on Enter in multiline wxTextCtrl
Restore behaviour until c43e0fa123 and let
Enter presses in multiline text controls perform their default function
in the control instead of closing the dialog.

Make the unit test more discerning to check for this.
2019-09-10 18:48:20 +02:00
Vadim Zeitlin
84f29ce472 Don't send EVT_TEXT_ENTER to controls without wxTE_PROCESS_ENTER
wxMSW always sent this event to multiline text controls, even when they
didn't have wxTE_PROCESS_ENTER style, contrary to what was documented.

Avoid sending this event unless wxTE_PROCESS_ENTER is used and add unit
tests checking that multiline text controls don't get it without this
style (but still do get it with it).
2019-09-10 18:48:20 +02:00
Vadim Zeitlin
4c075c2128 Replace Bind() call with an event table in Enter handling tests
For once, using the event table macros is preferable because this
bypasses the (generally helpful, but not here) test done by Bind()
verifying that wxEVT_TEXT_ENTER handler is bound to a window with
wxTE_PROCESS_ENTER style.

Doing it like this will allow to check that controls without this style
really do not receive the corresponding event.
2019-09-10 18:48:20 +02:00
Vadim Zeitlin
e85b5e5261 Replace a single function with a class in Enter processing tests
No real changes yet, this is a pure refactoring before the upcoming
changes.
2019-09-10 18:48:20 +02:00
Vadim Zeitlin
ba2ea837de Actually make wxTE_PROCESS_ENTER example in dialogs sample work
This didn't work any more since the changes done in the branch merged by
fb2c17c193 as using wxTE_PROCESS_ENTER
without actually handling the resulting event doesn't prevent Enter from
activating the default button any longer.
2019-09-10 18:48:20 +02:00
Kvaz1r
16b08c6ef9 Allow updating wxBusyInfo text while it's shown
Add UpdateText() and UpdateLabel() updating the text (i.e. possibly
containing markup) or the label (just plain text) shown in the window.

Closes #14743.

Closes https://github.com/Kvaz1r/wxWidgets.git BusyInfoUpdateText14743
2019-09-08 23:13:00 +02:00
Vadim Zeitlin
5f635db3bf Minor cleanup of a dialog in the dialogs sample
Use wxSizerFlags()-based API for clarity high DPI-friendliness, i.e.
don't hard code 5px as border/margin sizes.

No real changes.
2019-09-08 22:18:19 +02:00
Vadim Zeitlin
32eb6f1a2c Remove explicit "ProgramDataBaseFileName" from test MSVS projects
This is not really necessary and triggers a bug with a spurious error
C2859 when building the project with MSVS 2019, see

https://developercommunity.visualstudio.com/content/problem/592262/error-c2859-is-not-the-pdb-file-that-was-used-when.html

(which was closed as "not a bug", after acknowledging the bug...).
2019-09-08 22:17:55 +02:00
Vadim Zeitlin
7811d1a833 Merge branch 'per-monitor-dpi-aware-controls-1' of https://github.com/MaartenBent/wxWidgets
Update the font of some buddy controls when the DPI changes. Fix the
position of the statusbar after a DPI change. Add some changes that were
suggested in https://github.com/wxWidgets/wxWidgets/pull/1499 but left
out from it.

Some sizes are cached to improve the speed of the library. These sizes
become incorrect when the DPI changes. And are incorrect when a window
is created on a display with a different DPI. Fix this by checking if
the current DPI is the same as the DPI that was used when calculating
the size, otherwise recalculate the size.

Closes https://github.com/wxWidgets/wxWidgets/pull/1530
2019-09-07 14:57:54 +02:00
Maarten Bent
462f2a4686 Add optional wxWindow parameter to wxButtonBase::GetDefaultSize()
When per-monitor DPI is used, the default button size depends on the DPI of the
display. Use the window to determine this DPI.
2019-09-06 20:59:59 +02:00
Maarten Bent
fa2242a0a6 Reset static sizes when DPI changes 2019-09-06 20:59:59 +02:00
Maarten Bent
e312569b94 Fix wxStatusBar font and position after DPI changes
Update the font of the associated wxDC so ellipsization uses the correct font
size.
2019-09-06 20:59:56 +02:00
Dan-Korn
b82f7f1c0e Fix wxPOPUP_WINDOW to work as documented (Cocoa): (#1535)
Ensure that wxPOPUP_WINDOW on Mac always sets the window level
to NSPopupWindowLevel, regardless of the wxSTAY_ON_TOP and
wxFRAME_TOOL_WINDOW flags.

As the comment for wxPOPUP_WINDOW in defs.h says,
"set this flag to create a special popup window:
it will be always shown on top of other windows"

So, that should *always* be true, even in relation to other
Windows with wxSTAY_ON_TOP, since NSPopUpMenuWindowLevel
is greater (higher) than NSModalPanelWindowLevel.

It should also *always* be true even if the window has both
wxPOPUP_WINDOW and wxFRAME_TOOL_WINDOW styles, since there's
no reason why we can't have a panel with NSUtilityWindowMask
and NSPopUpMenuWindowLevel.
2019-09-06 08:58:33 +02:00
Robin Dunn
53d3888180 Add another missed wxOVERRIDE 2019-09-05 17:51:51 -07:00
Robin Dunn
f705cb3087 Another typo fix 2019-09-05 17:47:33 -07:00
Artur Wieczorek
a7cc686853 Initialize flag with actual value
There is no need to pre-initialize alpha flag with default value.
2019-09-06 00:15:38 +02:00
Artur Wieczorek
f5a589180f Fix converting wxImage with mask to wxBitmap with alpha channel
For wxImage having both mask and alpha channel (it is technically possible), mask cannot be converted to alpha values and in this case resulting wxBitmap will also have both mask and alpha channel.
2019-09-06 00:15:23 +02:00
Vadim Zeitlin
c12b0e8509 Merge branch 'grid-fixes'
Fixes for wxGrid when using native header control.

Closes https://github.com/wxWidgets/wxWidgets/pull/1529
2019-09-05 23:36:50 +02:00
Maarten Bent
4713301cf5 Fix font and thumb size of wxSlider after DPI change 2019-09-05 23:14:25 +02:00
Maarten Bent
587f894f96 Fix font of wxRadioBox after DPI change 2019-09-05 23:14:25 +02:00
Maarten Bent
13cb9d41d8 Require wxWindow parameter for wxNativeFontInfo constructor in MSW
Use the DPI of the window to determine the correct font pointSize.

To not break user code, add a default argument when not building the library.
2019-09-05 23:14:25 +02:00
Robin Dunn
a8a19e25ee Various typo and coding style fixes 2019-09-05 13:33:15 -07:00