Commit Graph
1320 Commits
Author SHA1 Message Date
Bill Su 12b09a5e5e Provide wxXmlResourceHandler for wxVListBox
Fix #24361.

Closes #24867.
2024-11-02 04:03:24 +01:00
Vadim Zeitlin 7b6d56f050 Remove almost empty src/generic/icon.cpp
Don't bother creating a separate object file for just a few lines of
code in the generic wxIcon implementation, just inline them into
wx/generic/icon.h.

There should be no need to ever have any non-trivial code here as
generic wxIcon is the same thing as wxBitmap anyhow.
2024-10-21 22:02:39 +02:00
Scott Talbert fb04f7c2cc Update list of locales to install
The list of the languages to install the message catalogs for has to be
hardcoded in the bakefile currently, so update it to ensure that all the
available catalogs are installed.

Fixes #24880.

Closes #24887.
2024-10-18 19:26:32 +02:00
Vadim Zeitlin 9849124fae Provide a way to store AUI layouts in any custom format
Add wxAuiSerializer and wxAuiDeserializer classes and SaveLayout() and
LoadLayout() functions in wxAuiManager using them.

Show how these classes can be used to use XML for storing AUI layout in
the sample.

See #24225.
2024-10-15 23:34:43 +02:00
Yann E. MORIN b2cb336b78 Fix wx-config symlink in out-of-tree installs
When we install out-of-tree, i.e. with a non-empty DESTDIR, the
wx-config symlink is broken: the target of the symlink is not rooted
in DESTDIR.

It would seem the obvious solution would be to prefix the target of
the symlink with $(DESTDIR) and be done with it. That would solves
cross-compilation cases, but would not fix native build when the
install is done in a staging area to prepare a binary package (e.g.
Linux distributions à-la Debian do that for example).

A way to make the symlink work in both cases is by making it relative.
ln has been supporting a --relative option since coreutils 8.16,
released 2012-03-26, more than 12 years ago now; it is relatively safe
to assume that distributions of today do have an ln that supports that
flag.

For systems that do not support that flag (e.g. *BSD, MacOS), fallback
to creating a non-relative symlink, on the assumpion [0] that on those
systems, DESTDIR is most probably never used. Eventually, in case
creating both symlinks fails, keep doing a copy as the ultimate
fallback.

[0] https://github.com/wxWidgets/wxWidgets/pull/24622#issuecomment-2184047170

Closes #24622.

Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2024-06-24 01:08:19 +02:00
Vadim Zeitlin a0ac9a9a67 Merge branch 'remove-gdiplus-wrapper' of https://github.com/MaartenBent/wxWidgets
Remove GDI+ wrapper and just link with gdiplus.lib.

See #24614.

Closes #24613.
2024-06-22 15:49:16 +02:00
Maarten Bent f0cca189ff Rebake after GDI+ and msimg32 changes 2024-06-22 13:51:39 +02:00
Vadim Zeitlin 9c0a1ace4f Install wx/msw/init.h when using wxGTK/MSW too
This header is included from wx/init.h under all ports under Windows,
not only wxMSW, so install it when using wxGTK too.

See #24611.
2024-06-18 23:16:41 +02:00
ali kettab 7eba8bb85d wxQt: Make wxGraphicsContext available under all supported platforms
Additionally, the dependency on cairo is no longer necessary.
2024-04-19 20:27:17 +01:00
Maarten Bent 6c0d632980 Update build systems with new Lexilla files
And regenerate the STC files.
2024-03-09 21:26:29 +01:00
Vadim Zeitlin 5ca49dc56c Allow specifying a custom CefClient to use with wxWebViewChromium
This opens many customization possibilities beyond those provided by
wxWebView API and also allows to process CEF IPC messages much more
efficiently than what is possible using wxEvents.

Closes #24336.
2024-02-29 03:05:44 +01:00
Vadim Zeitlin edf94f684c Remove dependency on wxxml and wxxrc from wxpropgrid library
It shouldn't, and now doesn't, use these libraries directly and
shouldn't depend on them to avoid introducing unnecessary requirements
for the applications which use it without XRC.
2024-02-03 21:46:15 +01:00
Vadim Zeitlin 8694a1b2f1 Add wxPropertyGrid XRC handler files to the library 2024-01-30 01:55:56 +01:00
Vadim Zeitlin 63bcac8c21 Use -rpath option when linking all the libraries too
Previously this was used only for linking the samples, which ensured
that they found the libraries directly referenced by them, but this
wasn't enough to find the libraries referenced indirectly, via another
library (e.g. wxxml used by wxxrc internally but not necessarily
referenced by the sample using XRC) because DT_RUNPATH is not used in
this case, as documented in Linux ld.so(8).

Ensure that such libraries are found nevertheless by setting runpath
for all the libraries too.

Note that it would probably be more logical to just get rid of
SAMPLES_RPATH_FLAG and use DYLIB_RPATH_FLAG everywhere, but this would
result in a ton of changes, so keep the old variable for now and just
set it to the same value to avoid this and keep the possibility to
change it to a different value if necessary later.
2024-01-29 01:15:40 +01:00
ali kettab 9e61385878 Add wxRendererNative implementation for wxQt
Closes #24223.
2024-01-23 03:22:06 +01:00
Vadim Zeitlin ff59ef301b Merge branch 'master' into webview-chromium 2024-01-17 00:22:39 +01:00
Vadim Zeitlin 99434fa005 Add wx/persist/combobox.h to the headers list
In particular this ensures that it is installed by "make install".

See #24157.
2023-12-22 18:43:57 +01:00
Viachaslau Lisouski ca405352e0 Add wxFileSystemHandler for "data" scheme
This notably allows embedding images directly in HTML.

Closes #24138.
2023-12-18 22:19:11 +01:00
Vadim Zeitlin e90817930a Merge branch 'master' into webview-chromium 2023-11-30 18:30:26 +01:00
ali kettab d205e331ce Added native wxOverlay implementation under wxQt 2023-11-23 22:49:15 +01:00
Stefan CsomorandVadim Zeitlin 21da0e128d Change wxRendererNative to use NSCell-based methods under Mac
Use wxOSX_USE_NSCELL_RENDERER to allow setting it to 0 to revert to the
old code.

Note that the new version is Objective C++, so the old .cpp file had to
be renamed to have .mm extension.

Closes #24053.

Co-Authored-By: Vadim Zeitlin <vadim@wxwidgets.org>
2023-11-17 01:12:49 +01:00
ali kettab 032fc66cea Now wxTimePickerCtrl is a native control under wxQt 2023-10-15 13:35:24 +01:00
ali kettab e20d8ba2cc Now wxDatePickerCtrl is a native control under wxQt 2023-10-15 13:35:24 +01:00
ali kettab 4faf201a08 Use the generic implementation of wxPalette under wxQt
Until now, wxPalette under wxQt was just a dummy implementation
Let's turn to the generic one which works perfectly under wxQt too.
2023-10-15 00:10:02 +01:00
Vadim Zeitlin ae8619b6dd Don't build separate webview_chromium library
Just include wxWebViewChromium in the webview library if it's enabled
during the build.

There doesn't seem to be any reason to build a separate library for it,
it's not really different from the other disabled by default wxWebView
backend (Edge).

And now that we don't need to link with an extra library, there is also
no need to have a separate webview_chromium sample, so just add a
possibility to run webview sample itself using Chromium backend by
setting WX_WEBVIEW_BACKEND environment variable.
2023-09-15 01:56:08 +02:00
Vadim Zeitlin 9f2fce3859 Ensure that libcef.so is loaded first in webview sample
Use --no-as-needed linker flag to make this happen as otherwise it is
still loaded after libc.so (unless LD_PRELOAD is used).
2023-09-06 03:50:34 +02:00
Vadim Zeitlin b6bfdd97c9 Merge branch 'master' into webview-chromium
Update to the latest master.
2023-08-30 02:03:00 +02:00
Vadim Zeitlin a921f558d9 Remove configure.in to configure.ac
This is the extension expected by all non-ancient autoconf versions.
2023-07-24 00:11:26 +02:00
Antti Nietosvaara d666d1e222 Fix a memory leak when using non-wx threads
The wxThreadSpecificInfo object created by wxThreadSpecificInfo::Get()
was only released by the wxThreadInternal's cleanup, which meant that it
was leaked if wxThreadSpecificInfo::Get() was called by a thread not
created by wxThread, e.g. when using std::async or std::thread.

Fix this by simply using C++11 thread_local and removing the entire
wxThreadSpecificInfo machinery entirely.

See #23535.

Closes #23543.
2023-05-16 00:36:00 +02:00
Vadim Zeitlin a0e3f1e1ab Use grep instead of fgrep and egrep
The latter are deprecated and shouldn't be used any longer.

No real changes.

Closes #23537.
2023-05-10 23:44:17 +02:00
Vadim Zeitlin f5a735ed87 Stop using native MSW wxImageList in wxUniv
This doesn't make any sense, native image list implementation is only
needed for interoperability with the native controls which are not used
by wxUniv, so always use the generic version in it instead.
2023-04-22 19:03:08 +02:00
Vadim Zeitlin 2d1c63a4c1 Install all required headers as part of wxUniv/MSW installation
Move headers needed by wxUniv too to MSW_LOWLEVEL_HDR, so that they get
installed by "make install".
2023-04-22 18:40:49 +02:00
Vadim Zeitlin 0d046b8e9e Compile wxAppProgressIndicator as part of wxUniv/MSW too
This fixes link problem due to using wxAppProgressIndicator from the
common wxGauge code, see 11a5b83e2c (Add OS X implementation of
wxAppProgressIndicator., 2015-02-15) and seems to be better than adding
checks for wxUniv there, as this is part of "platform" functionality
rather than "toolkit".

This also pulls in wxTaskBarButton code.
2023-04-22 16:37:27 +02:00
Vadim Zeitlin 0b5252d12f Compile dark mode support for wxUniv/MSW too
Dark mode support for native controls is not needed in this port, but we
still need DWM-related stuff to make the window title bar use the dark
mode if necessary, so just include all this code in wxUniv.
2023-04-22 16:37:27 +02:00
Vadim Zeitlin d6fc5230e0 Remove src/msw/gdiobj.cpp which seems to have been never used
Somewhat incredibly, this file, added back in 2bda0e1738 (added some
wxMSW stuff, 1998-05-20), never contained anything but some commented
out code and so was always totally useless.

Finally remove it.
2023-04-12 17:28:45 +02:00
Vadim Zeitlin 0fe6f04bfc Merge branch 'customize-dark-mode'
Allow customizing appearance in dark mode in wxMSW.

See #23275.
2023-03-12 13:42:45 +01:00
Artur Wieczorek 3142e028b2 Move wxPropertyGrid internal stuff to the separate private header 2023-03-10 23:57:43 +01:00
Vadim Zeitlin f932046a5c Merge branch 'msw-overlay'
Add native wxOverlay implementation using layered windows to wxMSW.

See #23261.
2023-02-20 18:28:21 +01:00
Vadim Zeitlin d3ab43ae02 Add a possibility to customize dark mode colours in wxMSW
Add MSW-specific wxDarkModeSettings class which can be used to customize
the colours used in the dark mode (and will be also used for other
customizations in the future).

This commit is best viewed using Git --color-moved option.
2023-02-19 21:57:05 +00:00
Maarten Bent b0385e498c Rebake after bakefile changes 2023-02-14 22:52:26 +01:00
AliKet 91031bcfee Add native wxOverlay implementation for wxMSW
Using generic implementation doesn't work any longer since the switch to
using composited windows (i.e. turning on WS_EX_COMPOSITED) by default
as drawing using wxClientDC has no effect.

So implement wxOverlay in a different way by using a layered window
covering the original window and drawing on it instead. This is similar
to Cocoa implementation of wxOverlay.

Closes #23047.
2023-02-14 18:48:47 +00:00
Vadim Zeitlin dbbf509e18 Fix link when using wxSimplebook both directly and indirectly
This resulted in its base class wxNavigationEnabled<wxBookCtrlBase>
being instantiated both in the application itself (when using it
directly) and inside the wx DLLs (when using another class using the
same base class, but defined in the DLL, such as wxAuiNotebook) and gave
linking errors.

Work around this by explicitly defining wxCompositeBookCtrlBase,
corresponding to this base class, ourselves and export it from the DLL
so that it's the single instance which is always used.

Closes #22805.
2023-01-29 16:26:09 +01:00
Vadim Zeitlin e89f05faba Remove memory debugging/tracing support and all related options
Drop disabled by default and pretty useless memory tracing code and all
the overlapping and poorly documented build options related to it.

Remove memory.cpp entirely and update all the make/project files, but
preserve the now completely trivial wx/memory.h for compatibility and
also keep including wx/string.h from wx/object.h as it seems like a lot
of existing code actually depends on this, even if it should not.

Replace the options in the propgrid sample with a couple of other
debug-related options that were not used before to avoid leaving the
"Debugging Section" completely empty.
2023-01-05 21:41:38 +01:00
Vadim Zeitlin bcea384923 Start adding dark mode support to wxMSW
Add experimental wxApp::MSWEnableDarkMode().

For now this is very incomplete and just uses the basic API for setting
the preferred application mode, which only works for the standard
dialogs and popup menus, but it's a start.

Support of dark mode is also limited to Windows 10 20H1 and later, but
this should, hopefully, be not a problem in practice as few people
should be using pre-2020 Windows 10 versions by now.
2022-12-08 00:15:18 +00:00
Vadim Zeitlin aa9e68178e Merge branch 'remove-wxstring-impl'
Remove wxStringImpl and always assume wxUSE_STD_STRING==1.

See #22976.
2022-11-20 22:58:34 +01:00
Vadim Zeitlin 2c0c727f49 Remove wx own wxStringImpl implementation
Always use std::basic_string<> as wxStringImpl.

Closes #22883.
2022-11-17 00:40:50 +01:00
Vadim Zeitlin d8ddcaa60b Remove Henry Spencer's regex library and references to it
This library is not used any longer as it was replaced with PCRE, so
there is no need to keep it in the source tree any more.

Closes #22924.
2022-11-16 20:19:21 +01:00
Vadim Zeitlin 20571f07e2 Get rid of platform-specific wxPanel classes
There is no need to have them as they were identical for all platforms.

This basically reverts 5b87bd6c0b (Split wxPanel in wxPanelBase and
platform-specific files., 2011-03-20) as, 10+ years later, it turns out
that we're not going to have more MSW-specific parts, but none of them.

No real changes.
2022-11-12 21:54:35 +01:00
Vadim Zeitlin b4b23ac423 Merge branch 'always-use-thread-local'
Always use thread_local as we can rely on compiler TLS support working
under Windows 7 and later.

There are some known problems in MinGW thread local variable support,
but they only affect (obsolete) 32-bit builds and will hopefully be
fixed in this compiler soon.

See #22917.
2022-11-10 16:32:42 +01:00
Vadim Zeitlin c78b0d652b Remove UNICODE build option, hardcode its value as 1
Also hardcode "u" suffix for the library names -- it doesn't make sense
any longer, but we need to keep it for compatibility.
2022-10-27 19:43:59 +02:00