Commit Graph

71396 Commits

Author SHA1 Message Date
Vadim Zeitlin
3f2c84d4a9 Add 64-bit numbers support to wxRegKey
This uses the native registry support for 64-bit values available since
Windows XP.

Note that SetValue64() can't be just called SetValue() as this would
introduce ambiguities when writing an int or an enum to the registry.
This could be avoided by providing overloads for all the arithmetic
types, but it's arguably better to be more clear about what exactly is
being written to the registry in this low-level class and using a
different name is definitely simpler.
2021-03-09 21:09:42 +01:00
Vadim Zeitlin
eb33447c39 Use template function to avoid code duplication in wxRegConfig
Don't repeat exactly the same code for 3 different types, just use a
template function instead.

Change the existing TryGetValue() helpers to take all output parameters
consistently by pointer, rather than taking only long by pointer and the
other by reference. This allows to isolate the inconsistency of the type
of wxRegKey::QueryValue() parameter in a single place here, hiding it
from the rest of wxRegConfig code.

Add an extra unit test for writing/reading longs to/from wxRegConfig.
2021-03-09 19:15:03 +01:00
Vadim Zeitlin
62cfa638c0 Remove wxT() from wxConfig unit tests
Just remove the visual noise, no real changes.
2021-03-09 19:15:03 +01:00
Vadim Zeitlin
2e6bb341b7 Use smart pointer instead of manual delete in wxConfig tests
No real changes.
2021-03-09 19:15:03 +01:00
Vadim Zeitlin
f5f2db8b44 Get rid of CppUnit boilerplate in wxConfig unit tests
No real changes.
2021-03-09 19:15:03 +01:00
Václav Slavík
7228dbf50c Merge branch 'fix-macos-listbox-looks'
Fix visual issues in wxCheckListBox on macOS.

Closes https://github.com/wxWidgets/wxWidgets/pull/2267
2021-03-09 18:46:42 +01:00
Václav Slavík
9e0a2c04a8 Don't truncate item text in wxCheckListBox on macOS
wxListBox's width adjustment code appears to have been written before
wxCheckListBox's existence, and still assumed there's only one column, at
index 0, in some places.

In wxCheckListBox, however, there are two columns, and column 0 is the
non-resizable checkbox one. We need to use column 1 (aka the last
column) for automatic width updates, because that's where the text is.
2021-03-09 18:38:59 +01:00
Tobias Taschner
4ab9ee32a8 macOS: Implement access to dev tools for wxWebView 2021-03-08 12:32:53 +01:00
Tobias Taschner
57fa1c52b7 macOS: Implement wxWebView fullscreen API 2021-03-08 12:32:48 +01:00
Tobias Taschner
3caf48b04c macOS: Implement window.print() in wxWebView
A WKUIDelegate method has to be implemented to make
a javascript calling window.print() working.
2021-03-08 11:36:19 +01:00
Maarten Bent
0bb9cd004d CMake: copy webview2 loader for monolithic build 2021-03-08 00:26:24 +01:00
Vadim Zeitlin
e00d5e131b Use new wxAppTraits::SafeMessageBox() in wxSafeShowMessage()
This allows to show message boxes in ports other than wxMSW too by doing
it only when it is safe, i.e. when the GUI is initialized, while still
keeping the old code directly using the native MessageBox() function for
MSW for maximal robustness.
2021-03-07 23:51:54 +01:00
Vadim Zeitlin
fdd4ff8bf9 Make wxSafeShowMessage() msgbox app-modal in some cases
Although we don't want to use MB_TASKMODAL unconditionally, because it
results in non-optimal UI behaviour when there is a parent window, there
is no reason not to use it when we don't have any parent anyhow, so do
this, at least.
2021-03-07 23:51:54 +01:00
Vadim Zeitlin
39883a270a Disable main window when showing msgbox in wxSafeShowMessage()
Pass correct parent HWND to ::MessageBox() in order to disable the
window while the message box is shown, as this function is supposed to
be similar to modal wxMessageBox() and it was unexpected that the
application could be reentered via the event handlers from inside it.

This required adding wxAppTraits::GetMainHWND() in order to only use the
HWND in GUI applications from the function defined in non-GUI code.
2021-03-07 23:51:54 +01:00
Vadim Zeitlin
9073221584 Use wxApp::GetTraitsIfExists() wrappers when applicable
This is simpler and more clear than testing wxTheApp explicitly.

No real changes.
2021-03-07 23:51:54 +01:00
Vadim Zeitlin
69e48f036b Add wxApp::GetMainTopWindow() wrapper
This trivial function just allows to avoid checking if wxTheApp is not
null before calling GetTopWindow() on it.

Replace the existing "wxTheApp && wxTheApp->GetTopWindow()" calls with
wxApp::GetMainTopWindow().

No real changes.
2021-03-07 23:51:54 +01:00
Vadim Zeitlin
e9f619e561 Merge branch 'modules-cleanup'
Modernize wxModule code and add AreInitialized() function.

See https://github.com/wxWidgets/wxWidgets/pull/2268
2021-03-07 23:51:04 +01:00
Vadim Zeitlin
473be74ce0 Merge branch 'CI-more-ignored-paths'
Avoid starting AppVeyor/GitHub CI builds unnecessarily.

See https://github.com/wxWidgets/wxWidgets/pull/2263
2021-03-07 23:49:52 +01:00
Vadim Zeitlin
3c58e79339 Don't start CI builds for the changes to message catalogs only
We currently don't use these files in the existing builds.

It might be a good idea to add another GitHub Action workflow checking
the message catalogs compilation that would be executed _only_ for the
changes to them, but this can/will be done later.
2021-03-07 23:48:25 +01:00
Vadim Zeitlin
dfc1ae5de4 Ignore MSW-only changes for PR builds on GitHub CI too
This extends the grandparent commit to apply to pull requests and not
only to the master builds.
2021-03-07 23:47:27 +01:00
Maarten Bent
3198ed0b18 CMake: reset webview2 package dir if it does not exist anymore
And make the variable internal so it does not create an 'Ungrouped Entries' group in cmake-gui.
2021-03-07 22:06:46 +01:00
Maarten Bent
560656c699 CMake: do not use target webview in monolithic build 2021-03-07 22:06:46 +01:00
Vadim Zeitlin
5ddf57c150 Add wxModule::AreInitialized()
This internal function will be useful to check if the modules are
already initialized, i.e. if the library is in the "steady state"
between the end of the initialization and the beginning of the cleanup
phases.
2021-03-07 20:39:09 +01:00
Vadim Zeitlin
fbd23270e3 Remove CppUnit boilerplate from wxModule unit test
Also use wxString instead of fixed size char array and wxStrcat().
2021-03-07 20:39:09 +01:00
Vadim Zeitlin
e10e721120 Get rid of wxList and wxArray in wxModule code
Simply use wxVector instead, this shouldn't be less efficient (we rarely
remove the modules from the list and iterating over a vector should
actually be faster, as well as consuming less memory), but it avoids
ugly macros, is simpler to use and to debug and will be trivial to
replace with std::vector<> in the future.

No real changes, this is just pure cleanup.
2021-03-07 20:39:09 +01:00
Vadim Zeitlin
628514bcd3 Rename static wxModule::m_modules to use "ms_" prefix
No real changes, just use consisting naming convention.

Better late than never.
2021-03-07 20:39:09 +01:00
Václav Slavík
bc28cb42c2 Fix wxCheckListBox checkbox size on macOS
Decrease the size of checkbox column so that it's not downright
excessive.
2021-03-07 18:26:24 +01:00
Václav Slavík
1d23f7befe Don't show focus ring on wxListBox
In native OS X apps, focus ring is not shown around NSTableView controls
(focus is indicated differently, with selection's color).

See eece498 for the same fix in wxDataViewCtrl.
2021-03-07 18:25:30 +01:00
Vadim Zeitlin
0f8e976ac3 Add wxString::utf8_string()
This adds a yet another conversion function, which is not ideal, but
still better than having to write ToStdString(wxConvUTF8) every time for
losslessly converting wxString to std::string: not only this is too
long, but it's also too easy to forget to specify wxConvUTF8, resulting
in data loss when using non-UTF-8 locale.
2021-03-06 15:12:07 +01:00
Vadim Zeitlin
0aacc6a9ab Remove CppUnit boilerplate in std::string interoperability tests
No real changes, just don't use compatibility macros and remove the
completely useless test case.
2021-03-06 15:05:23 +01:00
Vadim Zeitlin
8d01aaf783 Make WebRequest::Get::Param unit test more forgiving
The simple test added in 59a8f26b01 (Add a unit test for wxWebRequest
query using URL parameters, 2021-03-06) worked when using httpbin.org,
but not when running httpbin locally, as it doesn't pretty-print JSON by
default.

Skip optional whitespace to make it work in both cases.
2021-03-06 14:44:56 +01:00
Vadim Zeitlin
bf8be6c58d Merge branch 'mac-filedlg-improvements' of https://github.com/discnl/wxWidgets
macOS wxFileDialog improvements.

See https://github.com/wxWidgets/wxWidgets/pull/2234
2021-03-06 12:18:43 +01:00
Vadim Zeitlin
26635c2718 Merge branch 'webrequest-fix-param'
Fix URL parameters handling in WinHTTP wxWebView backend.

See https://github.com/wxWidgets/wxWidgets/pull/2264
2021-03-06 12:16:26 +01:00
Vadim Zeitlin
59a8f26b01 Add a unit test for wxWebRequest query using URL parameters
Check that passing URL parameters in the query string works as expected
(this was broken with WinHTTP backend until the parent commit).
2021-03-06 12:11:59 +01:00
Vadim Zeitlin
3c92573dd7 Recommend using wxStaticBox as parent more strongly
Not doing it, i.e. creating the window inside the static box as its
siblings, rather than children, may appear to work, but actually doesn't
always do it, for example the windows are not shown correctly when using
RTL locale.

Closes #19086.
2021-03-05 22:53:27 +01:00
Artur Wieczorek
c1fa4cc7be Refactor: Use dedicated Win API to modify RECT structures 2021-03-05 20:11:04 +01:00
PB
783244af21 Do not trigger build by change in any MD file
Co-authored-by: VZ <vz-github@zeitlins.org>
2021-03-05 19:41:05 +01:00
Vadim Zeitlin
39a46db345 Merge branch 'gtk-x-checks-simplify'
Simplify X11 checks and make them work when using Wayland-only GTK.

See https://github.com/wxWidgets/wxWidgets/pull/2261
2021-03-05 18:52:23 +01:00
Andriy Byelikov
b2d97d1393 Add support for English locale for Israel (en_IL)
This locale is recognized by glibc, so add it to the known locales
database.

Closes https://github.com/wxWidgets/wxWidgets/pull/2252

See #19082.
2021-03-05 18:51:10 +01:00
Vadim Zeitlin
7bcac7bfde Merge branch 'unix-default-locale'
Improve handling of default locale and other locale-related fixes.

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

Closes #11594.
2021-03-05 18:48:30 +01:00
Vadim Zeitlin
3701baecde Merge branch 'webview_script_message' of https://github.com/TcT2k/wxWidgets
Add WebView script message and user scripts.

See https://github.com/wxWidgets/wxWidgets/pull/2237
2021-03-05 18:44:46 +01:00
Paul Cornett
30637ad3b6 Make wxGridEvent methods GetRow() and GetCol() const and not virtual
See #19085
2021-03-05 07:38:32 -08:00
Paul Cornett
4388b9bd6b Make some member functions const 2021-03-04 11:49:33 -08:00
Artur Wieczorek
613dce3d4b Adjust picker button size for generic wxDirPickerCtrl and wxFilePickerCtrl
For generic wx{Dir|File}PickerCtrl with text field the picker button
should be as high as the associated text field also when
wx{FLP|DIRP}_SMALL flag is set.

Closes #19087.
2021-03-04 19:14:00 +01:00
Tobias Taschner
a6c9fd2603 Fix WinHTTP GET parameter
An additional ? was send to the server, resulting in ignoring the first get parameter
2021-03-04 17:00:45 +01:00
Artur Wieczorek
1c57699e92 Add ability to set bitmap margins for wxButton in widgets sample
This is to demonstrate the margins between the bitmap and the text
of the button.
2021-03-02 22:47:37 +01:00
Artur Wieczorek
ae5593bd23 Fix wxButton page in widgets sample
Enable image alignment radio box only if button with text and image
is active because it is applicable only in this case.
2021-03-02 22:34:44 +01:00
Vadim Zeitlin
e9ea0f53f6 Refactor platform checks in wxLocale::Init()
Avoid the need for ugly WX_NO_LOCALE_SUPPORT macro at the cost of a
couple of extra #ifs, which seems to be a worthy trade-off.

This also allows making the code calling setlocale("") for the default
language platform-independent.

No real changes.
2021-03-02 22:07:44 +01:00
Vadim Zeitlin
502114261a Handle wxLANGUAGE_DEFAULT in wxLocale specially under MSW too
Even if we do know about the system language, it's still better to let
OS/CRT handle it, as we may not know enough about it. E.g. "system
language" may actually be a mix of the different languages and formats
and we don't handle this case at all, while OS/CRT do just fine.
2021-03-02 22:07:44 +01:00
Vadim Zeitlin
9c4ab145e9 Add SetThreadUILanguage() wrapper
Make it possible to reuse the code dynamically loading this function
from elsewhere.

No real changes.
2021-03-02 22:07:44 +01:00