Commit Graph

64812 Commits

Author SHA1 Message Date
Vadim Zeitlin
f51cb52004 Reformat comments and code in MacHandleSelectionChange()
No real changes, just trying to make the code more clear.
2018-06-30 23:17:03 +02:00
Vadim Zeitlin
eadcd93bf9 Remove wxListBox::MacGetBlockEvents()
Just test m_blockEvents directly, there doesn't seem to be any gain in
using an accessor here.

Also test it only once instead of doing it twice in
MacHandleSelectionChange().
2018-06-30 23:14:36 +02:00
Vadim Zeitlin
dde6f662fc Move wxListBox selection event generation to wxListBox itself
This allows to avoid making DoChangeSingleSelection() and
CalcAndSendEvent() public.

No real changes, this is just a refactoring.
2018-06-30 23:13:33 +02:00
Vadim Zeitlin
1eee7a8a3c Slightly improve the assertion failure message
Also remove the unnecessary wxT().
2018-06-30 23:10:02 +02:00
Vadim Zeitlin
0084fb94be Use wxDynamicCast() instead of static_cast<>
This is safer as it really checks if the pointer is of the correct type.
2018-06-30 23:09:06 +02:00
ikamakj
c369c792a3 Fix selection event generation in wxMac wxListBox
Prevents deselecting the selected item in single-selection listbox.

Also generate correct events in the multi-selection case by reusing the
existing wxListBoxBase::CalcAndSendEvent() method.

Closes #15603.
2018-06-30 23:05:57 +02:00
Stefan Csomor
2ab430965c Fixing wxGLCanvas under 10.14, preparing for layer based drawing
see https://github.com/wxWidgets/wxWidgets/pull/846 , thanks to dkulp
2018-06-30 16:57:57 +02:00
Stefan Csomor
24dbe9775c Switching colorspace according to Apple's recommendation 2018-06-29 15:40:23 +02:00
Vadim Zeitlin
17c7048f36 Fix crash when appending items of empty vector to wxItemContainer
Passing an empty std::vector<wxString> to Append() or Insert() methods
of any wxItemContainer-derived classes, such as e.g. wxComboBox,
resulted in undefined behaviour due to accessing the first element of an
empty vector.

Fix this by avoiding using it when the vector is empty.
2018-06-29 14:33:56 +02:00
Paul Cornett
32db375e46 Avoid assertion failure in wxGLContext ctor
Check for NULL pointers directly rather than making assumptions based
on a version check.
See #18155
2018-06-28 10:38:14 -07:00
Vadim Zeitlin
a824ee092d Change the return type of wxListCtrl::SetItem() overload to bool
For some reason lost in the depths of time (but probably just a typo)
(but probably just a typo) (but probably just a typo) (but probably just
a typo), SetItem() overload taking the column index returned "long" and
not "bool", even though the actual return value was always "true" or
"false" (or even just always "true" in the case of the generic version).

Change it to return "bool" for consistency with the other overload and
because this just makes more sense and shouldn't break any existing code
due to the implicit conversions between bool and long.

Also document the return value meaning.

Closes #18153.
2018-06-28 00:39:31 +02:00
VZ
7331903f56 Merge pull request #844 from catalinr/Qt_build_fixes_2
wxQt build fixes
2018-06-28 00:38:15 +02:00
Artur Wieczorek
60669e9b50 Harmonize wxGraphicsPathData::AddArcToPoint() behaviour across all ports
AddArcToPoint() on macOS port is implemented with native API (CGPathAddArcToPoint) so its behaviour should be considered as a reference for generic implementation used in another ports.

Closes #18086.
2018-06-27 22:46:45 +02:00
Artur Wieczorek
c716b59783 Fix swapped numerator and denominator in the equation
tan(a/2) = sin(a) / (1 + cos(a)), so 1/tan(a/2) = 1 / sin(a) * (1 + cos(a))

See #18142.
2018-06-27 22:36:57 +02:00
PB
2842108e24 Fix typos in container classes descriptions
Closes https://github.com/wxWidgets/wxWidgets/pull/845
2018-06-27 19:40:42 +02:00
Vadim Zeitlin
689b9b78a3 Document that SetStatusText() updates the display immediately
This is done by explicitly calling Update() in the generic version and
seems to also be done by the native MSW one, even if it's not documented
to do it.
2018-06-27 19:37:23 +02:00
Stefan Csomor
616f0ca7f9 Fixing notebook drawing
Workaround for drawing problems under 10.14 as we do not draw the notebook ourselves, this should be ok on all system versions, for details see #18146
2018-06-27 18:33:23 +02:00
Vadim Zeitlin
cc931612ee Fix a bug with layout of grandchildren in wxMSW wxScrolledWindow
Apparently changing the window scrollbars in the middle of a window
deferred repositioning operation is not allowed and confuses
EndDeferWindowPos() which doesn't update the position of _grand_
children correctly in this case.

This bug notably manifested itself when loading a wxScrolledWindow
containing wxStaticBox from XRC, as the parent window was initially
created with the default small size and then relaid out when it was
resized to its real size on first wxEVT_SIZE event which also updated
the scrollbars. As a result, the children of the wxStaticBox were
shifted downwards.

The fix simply flushes the current repositioning operation and starts
one anew in wxWindow::SetScrollbar().
2018-06-26 00:58:20 +02:00
Vadim Zeitlin
0fa00b5159 Don't do anything when ScrollWindow(0, 0) is called in wxMSW
This doesn't really change anything, but just skips executing some code
uselessly if we know in advance we are not going to do anything, which
is nice as ScrollWindow() actually ends up being called with 0 arguments
surprisingly often from wxScrollHelperBase::SetScrollRate().

This is also consistent with what wxGTK does.
2018-06-25 15:49:50 +02:00
Cătălin Răceanu
fc7cae9825 Fixed typo 2018-06-24 19:53:48 +03:00
Cătălin Răceanu
df4e2d3d6e Disable wxActivityIndicator if it can't draw itself 2018-06-24 19:52:46 +03:00
Cătălin Răceanu
1105361d80 Use the correct include path for Qt headers 2018-06-24 19:49:55 +03:00
Cătălin Răceanu
ca2860907e Regenerated after Qt build changes 2018-06-24 19:48:18 +03:00
Cătălin Răceanu
6b0d920c3f Fixes for mingw64 to allow configure to finish under MSW 2018-06-24 19:47:55 +03:00
Cătălin Răceanu
e2594c8bb9 Add QT5_CUSTOM_DIR as Qt root dir for install and lib subdirs 2018-06-24 19:46:58 +03:00
trivia21
107e66e725 Simplify and make more robust wxHtmlWindow layout logic
Rewrite CreateLayout() using SetVirtualSize() to avoid trying to detect
whether the vertical scrollbar is shown manually. This is simpler and
avoids the problem of entering infinite loop if the scrollbar size used
by this function (based on wxSystemSettings::GetMetric(wxSYS_VSCROLL_X))
wasn't correct, as used to be the case for wxGTK until the recent commit
900752b152 and might still be the case in
the other ports.

Closes #18141.
2018-06-24 00:29:20 +02:00
Olly Betts
e753dc6072 Improve wxTreeCtrl::SetItemState() docs
Make it clear that the state parameter can be an index into the state
image list, not just one of the special values listed.

Closes #18152.
2018-06-24 00:00:50 +02:00
Vadim Zeitlin
d1175c00e1 Revert "Allow WM_SYSKEYDOWN to still be processed by MSWDefWindowProc, even if"
This reverts commit e771b7e4ac.

Don't always pass WM_SYSKEYDOWN to the system for processing as this can
be undesirable: e.g. inside a dialog, any Alt-X key presses with X not
being a mnemonic character result in a beep from IsDialogMessage().
Handle events for the system keys in the same way as for the normal
ones, i.e. let the system process them only if they're not handled by
the application.

This is incompatible with the previous wxMSW behaviour, but compatible
with the other ports and makes more sense, so it seems to be worth it,
on balance.
2018-06-23 23:46:10 +02:00
Artur Wieczorek
fe6ebc528d Transform trigonometric formulas to minimize the loss of precision
Closes #18142.
2018-06-23 20:45:49 +02:00
Vadim Zeitlin
9daf5bec98 Merge branch 'msw-tlw-state'
Fix showing TLWs under MSW when restoring their geometry.

See https://github.com/wxWidgets/wxWidgets/pull/842
2018-06-22 19:46:44 +02:00
mrX
89ecd81460 Don't change wxTextCtrl colour automatically under macOS
When wxColourDialog is shown, any changes to the colour selected in it
apparently result in broadcast messages to all currently visible text
controls, which was unexpected.

Block the changeColor: message to prevent this from happening.

Closes https://github.com/wxWidgets/wxWidgets/pull/830
2018-06-22 19:45:28 +02:00
Vadim Zeitlin
175756506c Minor cleanup of wxFrame::DoGetClientSize() in wxQt
Test whether height != NULL just once and make the code slightly more
compact.
2018-06-22 14:33:26 +02:00
Naser Buhamad
5a877535a8 Take menu bar into account for wxFrame client size in wxQt
Subtract the height of the menu bar too, just as we already did for the
status bar.
2018-06-22 14:30:28 +02:00
Paul Cornett
6d40b7fce7 Remove garbage characters and trailing whitespace 2018-06-21 21:28:34 -07:00
Paul Cornett
bdad8c4619 Remove garbage characters and trailing whitespace 2018-06-21 21:25:46 -07:00
Vadim Zeitlin
cf20a9ced5 Fix bug with showing TLW in wxMSW when restoring its geometry
Since the changes of 6ae7aa4443, the
windows were shown when their geometry was restored as a side effect of
calling ::SetWindowPlacement(). This was unexpected and resulted in
flicker on startup, so fix this by explicitly passing SW_HIDE to
SetWindowPlacement() if the window is currently hidden and storing the
real show command inside wxTLW itself, where it will be used when it's
finally shown.
2018-06-22 03:25:43 +02:00
Vadim Zeitlin
3518f1a7d8 Use a single wxTopLevelWindow::m_showCmd flag in wxMSW
This single field replaces m_iconized and m_maximizeOnShow which were
not really independent and will make it simpler to schedule either
maximizing or maximizing the window later, when it can't be done
immediately because the window is hidden, in the following commit.
2018-06-22 03:23:31 +02:00
Vadim Zeitlin
f03d655b1a Enable running TLW activation unit tests in CI environments
Hopefully the previous commit fixed it under AppVeyor.
2018-06-22 02:44:40 +02:00
Vadim Zeitlin
a8c1ae7058 Fix TLW activation unit test
Ensure that another TLW is active before calling ShowWithoutActivating()
as otherwise the newly shown window would be considered active, even if
it actually isn't, because it contains the current focus.
2018-06-22 02:43:23 +02:00
Stefan Csomor
c6523f016e Dark Mode Patches
thanks to dkulp,
see https://github.com/wxWidgets/wxWidgets/pull/840
see #18146
2018-06-21 20:22:53 +02:00
Vadim Zeitlin
c0be6a38c4 Merge branch 'gtk-entry-hittest'
Implement wxTextCtrl::HitTest() for single line controls in wxGTK.

See https://github.com/wxWidgets/wxWidgets/pull/826
2018-06-21 16:08:16 +02:00
Vadim Zeitlin
9cc2dbc9f1 Merge branches 'svgdc-clip' and 'fix-dc-clipper-restore'
Various clipping-related fixes.

See https://github.com/wxWidgets/wxWidgets/pull/835

See https://github.com/wxWidgets/wxWidgets/pull/836
2018-06-21 16:07:59 +02:00
pavel-t
710474c634 Allow configuring showing printing dialog in wxHtmlEasyPrinting
Add wxHtmlEasyPrinting::SetPromptMode() to allow suppressing the
"prompt" shown by wxPrinter::Print() when it's called from this class
code.

Closes https://github.com/wxWidgets/wxWidgets/pull/838
2018-06-21 16:03:38 +02:00
Vadim Zeitlin
01cd3cc019 Fix image unit test compilation when wxUSE_GIF==0
Don't compile GIF-related test cases and don't add GIF image handler in
this build configuration.
2018-06-20 18:15:38 +02:00
Vadim Zeitlin
abce91f967 Remove dynarray.cpp source file
After the recent dynamic array macros refactoring, there was no
implementation of wxBaseArray any more and only wxArrayString-related
code remained in this file, so just move the latter to arrstr.cpp, where
it should have been put from the beginning (except that this code
probably predates arrstr.cpp addition), and remove the old file
entirely.
2018-06-20 13:59:03 +02:00
Vadim Zeitlin
3e078d509c Remove WXDLLIMPEXP_CORE from wxArrayTreeItemIds declaration
This class doesn't have any non-inline methods and so doesn't need to be
exported from the DLL.

This also avoids warnings in MSVC DLL build about using non
dll-interface class wxArrayTreeItemIdsBase as base for dll-interface
class wxArrayTreeItemIds (C4275).
2018-06-20 13:52:50 +02:00
Stefan Csomor
c58d7755a1 Dark Mode for non native toolbar
see #18146
2018-06-19 21:50:34 +02:00
Stefan Csomor
dcd012184a Dark Mode for wxPropertyGrid
see #18146, thanks to dkulp
2018-06-19 21:49:15 +02:00
Tobias Taschner
778bccbf12 Include macOS 10.14 name in wxGetOsDescription() 2018-06-19 18:15:40 +02:00
Vadim Zeitlin
c5530b1abf Switch to using DoGetClippingRect() instead of DoGetClippingBox()
The new method returns a boolean flag which indicates whether there is
any clipping region or not and so is preferable to using the old one and
checking its return value to determine this, which can't be done
reliably.
2018-06-19 00:20:47 +02:00