Commit graph

3959 commits

Author SHA1 Message Date
Vadim Zeitlin
ff59ef301b Merge branch 'master' into webview-chromium 2024-01-17 00:22:39 +01:00
Vadim Zeitlin
a2f7a933e8 Merge branch 'no-global-ops'
Don't define operators for wx types in global scope.

This results in much better error messages when the compiler gives an
error about failing to resolve a call to some operator in user code
because it doesn't list all the wx-defined operators as candidates. In
practice, this cuts down error messages from 500 (!) lines to 2 with
gcc.

See #24190.
2024-01-12 18:42:39 +01:00
Vadim Zeitlin
565775a2c8 Merge branch 'bitmap-create-log-size'
Add wxBitmap::CreateWithLogicalSize() and use it.

See #24199.
2024-01-12 18:37:20 +01:00
Vadim Zeitlin
afc635f845 Merge branch 'aui-repaint'
Fix some wxAUI repaint problems and switch to using live resize
everywhere by default.

See #24166.
2024-01-10 18:43:24 +01:00
Vadim Zeitlin
9cc5e5d276 Add wxBitmap::CreateWithLogicalSize()
This function should be used instead of CreateWithDIPSize() in portable
code, the latter is currently often used to do what this function is
doing, but this only works correctly in wxOSX and wxGTK3 but not wxMSW.
2024-01-09 03:15:56 +01:00
Vadim Zeitlin
09eff033d9 Hide operator<<() overloads used for wxVariant support too
Add new wxDECLARE_VARIANT_OBJECT_EXPORTED() macro defining these
operators as friend functions inside the class declaration and replace
all uses of DECLARE_VARIANT_OBJECT_EXPORTED() inside the core library
with the new macro to avoid defining any operator<<() overloads in the
global scope.

Also add wxIMPLEMENT_VARIANT_OBJECT() for consistency, even though it is
not really needed.
2024-01-06 23:06:02 +01:00
Paul Cornett
ce1d317768 Remove GLU dependency
See #23721
2023-12-28 14:49:42 -08:00
Vadim Zeitlin
24fd54ed31 Add wxClientDC::CanBeUsedForDrawing()
This function can be used to check if drawing on wxClientDC actually
works. This has to be a run-time, rather than compile-time, check
because in wxGTK3 this depends on the backend being used: wxClientDC
only doesn't work with Wayland, but does work with X11 (and, less
importantly, Win32) backend(s).

Currently the wxWindow parameter of this function is not used but it
could be useful in the future and it will be simpler to allow not
specifying it (by defaulting it to nullptr) than to add it later, so it
seems better to have it.
2023-12-26 19:27:50 +01:00
Maarten Bent
62c6533fa7
CMake: Update webview related checks 2023-12-21 21:26:41 +01:00
Vadim Zeitlin
f8a6f0cd39 Initialize wxFileDialog::m_data in default ctor in wxMSW too
This corrects a problem introduced in 11ed91af8f (Add missing default
constructor of wxFileDialog in wxMSW, 2023-12-03) as m_data remained
uninitialized when default ctor was used.

See #24113.
2023-12-18 16:49:35 +01:00
Kumazuma
11ed91af8f Add missing default constructor of wxFileDialog in wxMSW
This ctor exists in the other ports and there is no reason for it not to
exist in wxMSW too.

Closes #24113.
2023-12-03 15:03:12 +01:00
Vadim Zeitlin
e90817930a Merge branch 'master' into webview-chromium 2023-11-30 18:30:26 +01:00
Paul Cornett
4030f3b90c Remove extraneous semicolons 2023-11-23 09:25:03 -08:00
Vadim Zeitlin
dede4b9326 Use "= default" for all trivial default ctors and dtors
Replace user-specified empty constructors and destructors with the
compiler-generated versions, which has a number of advantages for code
generation, in addition to being more clear.

Closes #22965.

Closes #24058.
2023-11-17 01:33:32 +01:00
Vadim Zeitlin
ef4fecc186 Merge branches 'tree-state-bmpbundle' and 'imglist-scalefactor'
Refactor wxImageList and convert it to use physical pixels and
add support for high DPI state images wxTreeCtrl using the new
wxImageList.

See #24000, #24033.
2023-11-17 01:03:27 +01:00
Vadim Zeitlin
0d4792cc2d Refactor wxImageList classes to use wxImageListBase
This ensures that the native MSW and generic implementations provide the
same API by forcing them to implement the same pure virtual functions.
2023-11-03 01:53:36 +01:00
Vadim Zeitlin
0003ac6873 Replace wxImageList::Init() with member initializers in wxMSW
No real change, just initialize members in their declarations and get
rid of now unnecessary Init().
2023-11-03 01:36:00 +01:00
Vadim Zeitlin
260a109db6 Remove outdated comment about making wxImageList ref counting
This hasn't happened since 26 years, so don't pretend it's going to
happen now that this class is semi-deprecated.
2023-11-03 01:27:57 +01:00
Vadim Zeitlin
308e902102 Add wxTreeCtrl::SetStateImages()
Unlike the existing SetStateImageList() function, the new one allows to
provide the high-resolution versions of the state images too.

Update the treectrl sample to use the new API.

Closes #23993.
2023-11-03 00:53:40 +01:00
Vadim Zeitlin
e43f913313 Remove all blank "Modified by:" lines from top comment blocks
Having this line is not useful at all as it doesn't contain any
information and shouldn't be filled in the future as git-shortlog can
provide the information about people who changed the given file more
more reliably than consulting the comments in any case.

Keep the non-blank lines for historical purposes.
2023-10-22 01:22:48 +02:00
PB
b87a7ab9e7 Remove wxNODISCARD from wxBasicString::Get() declaration
Using both wxDEPRECATED_MSG and wxNODISCARD for some reason breaks
compilation with clang (when using C++17 or newer standard).

Since wxBasicString::Get() is deprecated, one warning should be enough
so just remove wxNODISCARD from the method declaration.

Closes #23952.
2023-10-09 09:00:33 +02:00
PB
5ca3157467 Fix return type of wxBitmap::UseAlpha() under wxMSW
The method should return bool but was returning void.

This commit is best viewed ignoring whitespace-only changes.

Closes #23903, #23919.
2023-09-30 22:32:34 +02:00
Vadim Zeitlin
81283f84dd Merge branch 'master' into webview-chromium-new
This pulls in wxWebView::SetProxy() addition.
2023-09-08 01:34:21 +02:00
Vadim Zeitlin
0fd6cf99a3 Implement wxWebView::SetProxy() for Edge backend
Currently it can only be called before Create() because it has to be
passed via the additional browser arguments and can't be changed later.
2023-09-07 15:33:39 +02:00
Vadim Zeitlin
6762d5eaa5 Merge branch 'master' into webview-chromium
Merge the changes required by wxWebViewChromium, notably support for the
entry hooks and new wxDynamicLibrary::ListLoaded() Unix implementation.
2023-09-06 03:49:49 +02:00
Vadim Zeitlin
b3cfab1433 Merge branch 'msw-dont-preprocess-unknown'
Don't preprocess messages for unknown windows in wxMSW.

See #23824.
2023-09-06 02:41:08 +02:00
Vadim Zeitlin
b6bfdd97c9 Merge branch 'master' into webview-chromium
Update to the latest master.
2023-08-30 02:03:00 +02:00
PB
714103d00d Fix typo in clipboard header files
There was a typo in the class name (wxClipboad) in the
Purpose header.

Closes #23827.
2023-08-26 23:51:58 +02:00
Vadim Zeitlin
a378b7b4be Remove special wxFindReplaceDialog hack from wxGUIEventLoop
Don't call IsDialogMessage() for any unknown windows, this is not needed
any longer now that we recognize wxFindReplaceDialog HWND as ours (see
the previous commit) and that its MSWProcessMessage() works correctly
(done in this one).

Removing this IsDialogMessage() call still allows TAB navigation to work
in the "Find" dialog but prevents us from processing unknown messages
for unknown windows, which might have unwatned consequences.
2023-08-26 18:21:22 +02:00
PB
70bb1824d3 Fix WXWIN_COMPATIBILITY_3_2 check in MSW clipboard code
WXWIN_COMPATIBILITY_* checks must use #if, not #ifdef.

Closes #23822.
2023-08-26 16:52:15 +02:00
Vadim Zeitlin
d69ddb8656 Revert all recent wxUSE_DPI_AWARE_MANIFEST-related changes
This reverts 5d630caabd (Make it enough to predefine only
wxUSE_DPI_AWARE_MANIFEST, 2023-08-23) and all the commits which tried to
fix the breakage caused by it.

While the original change had merit, it seems to be too difficult to fix
all our build systems to avoid embedding manifest when defining this in
the code, like samples/sample.rc does, so revert this change for now.

Maybe it can be reintroduced in the future after switching to some other
build system.
2023-08-25 00:03:47 +02:00
PB
10d09ec2b2 Remove outdated parts from build system
Remove support for unsupported MSVS versions earlier than 2015
and Windows versions earlier than 7 from CMake build as they are not
supported any longer.

Also update wxUSE_GRAPHICS_GDIPLUS and wxUSE_GRAPHICS_DIRECT2D comments
in wxMSW setup.h to remove mentions of unsupported Windows XP but do
mention that MinGW-w64 can use Direct2D.

Closes #23787.
2023-08-24 15:15:57 +02:00
Vadim Zeitlin
5d630caabd Make it enough to predefine only wxUSE_DPI_AWARE_MANIFEST
If this is predefined before including wx/msw/wx.rc, it clearly
indicates that wx manifest should be used, but this was _not_ the case
before as wxUSE_RC_MANIFEST could be predefined as 0 (which is the case
for MSVS, to avoid conflicting with the manifest embedded by it into the
executable by default).

Change this and do include the wx manifest if wxUSE_DPI_AWARE_MANIFEST
is defined.
2023-08-23 16:18:05 +02:00
Lauri Nurmi
3e4946fc31 Minor documentation syntax and orthography fixes
Closes #23759.
2023-08-22 19:20:33 +02:00
Maarten Bent
d847f3b039
Fix position of label window in wxStaticBox after DPI change
Fixes #23740
2023-08-05 21:54:01 +02:00
Vadim Zeitlin
44e857c012 Explicitly disable some level 4 warnings in Windows SDK headers
Some level 4 warnings are somehow not disabled by switching to level 1,
so disable them explicitly.

Closes #23716.
2023-07-20 15:29:06 +02:00
Vadim Zeitlin
44b99195bc Merge branch 'msw-spin-appearance'
Fixes for wxSpinCtrl appearance in wxMSW.

See #23696.
2023-07-10 16:37:34 +02:00
Vadim Zeitlin
6bd2b6b4db Revert "Move Cygwin __USE_W32_SOCKETS definition to wxMSW-specific file"
This reverts commit 0f2b8a2065 as it broke
Cygwin build due to problems with fd_set definition.

Closes #23674.
2023-07-09 17:05:09 +02:00
Vadim Zeitlin
1dafca9e1d Remove "automatic" dark mode support
This commit reverts cb85871831 (Add MSWShouldUseAutoDarkMode() and use
it for wxSpinButton, 2022-12-07) as, contrary to the expectations of
this commit, other controls didn't use this function and even
wxSpinButton itself doesn't need it any more after the changes of the
parent commit, which were required because automatic support was not
flexible enough.
2023-07-08 23:00:43 +01:00
Vadim Zeitlin
79567c83f4 Fix wxSpinButton redrawing when using WS_EX_COMPOSITED
Explicitly redraw it ourselves instead of relying on DefWndProc() to do
it, as with 15e4f5b (Work around wxListCtrl repainting problems with
WS_EX_COMPOSITED, 2023-06-05) which did the same thing for wxListCtrl,
doing it seems to be enough to make the control draw correctly.

Closes #23656.
2023-07-08 23:00:10 +01:00
Vadim Zeitlin
83f5b6f3c6 Remove unnecessary wxSpinButton::MSWCommand()
This function did nothing, which was already exactly what the base class
version did too.
2023-07-08 20:13:44 +01:00
Vadim Zeitlin
de0595108a Merge branch 'bmp-dataobj-fix'
Fix crash when using wxDataObjectComposite and other clipboard-related
cleanup.

See #23659.
2023-06-30 00:20:12 +01:00
Vadim Zeitlin
89930c9e5e Deprecate old wxMSW-specific clipboard functions
Formally deprecate these functions that shouldn't be used since a couple
of decades already.
2023-06-20 21:13:45 +01:00
Vadim Zeitlin
8a95a93a1d Remove wxUSE_OLE_CLIPBOARD and always use OLE for wxClipboard
It doesn't make sense to keep the old and almost never used alternative
wxClipboard implementation which has known fatal bugs (such as casts of
wxDataObject that could be wxDataObjectComposite to wxBitmapDataObject,
see #23564) when wxUSE_OLE is never going to be disabled anyhow.

Note that this means wxSetClipboardData() function doesn't exist at all
any longer when previously it was available in the wxUSE_OLE==0 builds.
As the official builds always used wxUSE_OLE==1, this doesn't look like
a huge loss, but if needed, we could add it back later and reimplement
it in terms of wxClipboard::SetData().
2023-06-20 21:00:59 +01:00
Vadim Zeitlin
f88c9b7fb7 Make wxWindowMSW::TranslateBorder() non-virtual
It doesn't seem like it is meant to be overridden, so don't imply that
it should be possible to do it and make it non-virtual.

Also rename to DoTranslateBorder() to make it more clear that this is a
private function and not part of the public API.

Finally, improve its comment and never return wxBORDER_THEME from this
functions if themes support is off.
2023-06-16 16:22:40 +01:00
Vadim Zeitlin
4f54919bda Remove overridden wxWindowMSW::GetDefaultBorder()
It simply called the base class function, so just don't override it in
the first place.

No real changes.
2023-06-16 15:55:59 +01:00
Vadim Zeitlin
a89577e8a4 Deprecate useless wxWindow::GetDefaultBorderForControl()
This function was added back in a047aff270 (Added wxBORDER_THEME,
wxWindow::GetDefaultBorderForControl(), wxWindow::CanApplyThemeBorder(),
2007-08-07) but seems to have been made completely unnecessary by
dc797d8e1b (More border rationalisation. GetDefaultBorder is now mostly
defined in base class files., 2007-11-13) soon afterwards and never did
anything other than returning wxBORDER_THEME, with no explanation as to
when it might be useful to override it not to do it.

It also doesn't seem to be really used anywhere outside wxWidgets and
has never been documented, so make it non-virtual and deprecate it to
avoid confusion and simplify things.
2023-06-16 15:55:35 +01:00
Bill Su
7420ab1b26 wxMFCApp::PreTranslateMessage: Give msg to MFC before wxWidgets
because wxWidgets wxGUIEventLoop::PreProcessMessage() seems to
always report that it has consumed msg.

fix #23574
2023-06-11 01:56:21 -04:00
Vadim Zeitlin
d80887f302 Merge branch 'listctrl-dark-win11'
Fixes for wxListCtrl drawing under Windows 11 in dark mode and drawing
when using WS_EX_COMPOSITED.

See #23608.
2023-06-05 15:32:58 +02:00
Vadim Zeitlin
4c8ec0ed5d Revert "Add wxWindow::MSWAfterReparent() virtual function"
This reverts commit cd637663c8 (Add wxWindow::MSWAfterReparent() virtual
function, 2022-10-16) and removes wxListCtrl::MSWAfterReparent() added
in ff629f3853 (Fix drawing wxListCtrl since enabling double buffering by
default, 2022-10-16) which is not used any more now.
2023-06-05 14:30:56 +01:00