Commit Graph

68873 Commits

Author SHA1 Message Date
Vadim Zeitlin
4dd009136c Merge branch 'aui-auto-uninit'
Call wxAuiManager::UnInit() automatically.

Closes #14145.
2020-07-20 15:49:05 +02:00
Vadim Zeitlin
4552009805 Merge branch 'pr1312-no-unsafe-wxstring-conv'
Add a way to optionally disallow all implicit conversions between
wxString and "const char*".

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

See #18113.
2020-07-20 15:47:17 +02:00
Vadim Zeitlin
4beccf8883 Revert "Make sure toplevel is active in SetFocus()"
This reverts commit d06e97e8d9 as it
resulted in regression in wxSplitterWindow behaviour.

See #18783.

Closes #18845.
2020-07-20 15:43:43 +02:00
Maarten Bent
00f4242442 CMake: use library namespace in documentation example
Closes https://github.com/wxWidgets/wxWidgets/pull/1988
2020-07-20 14:51:39 +02:00
Stefan Csomor
818f8fe1d6 macOS: fixing wxImage generation from wxBitmap
after 992b594c15 the byte value for ‚masked‘ changed, adapt this accordingly, see https://trac.wxwidgets.org/ticket/18775
2020-07-20 11:05:17 +02:00
mimi89999
70659b6b7c Set tab label colour in AUI native MSW tab art
We must always change the text colour when using non-default background
colour, as otherwise the text may become unreadable in some themes,
which was exactly what happened in the standard "High contrast" theme
when using wxAUI under MSW before.

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

Closes #18832.
2020-07-20 00:47:54 +02:00
Vadim Zeitlin
1a4eff90ae Make opening wxComboCtrl popup under MSW work again
This was recently broken in 3bcbc8fe8e (Implement dismissal for
unfocused wxPopupTransientWindow, 2020-07-09) as the changes in it
resulted in the popup being dismissed as soon as it was opened with a
mouse click.

Fix this by changing several things:

- Check for wxCurrentPopupWindow before processing the message, not
  after, as the message handler itself could create a new popup and we
  definitely don't want to dismiss it immediately after its creation.

- Check for mouse DOWN events only, not UP and DBLCLK ones, as otherwise
  it might be possible that UP matching the same DOWN whose handler
  showed the popup would dismiss it. As for DBLCLK, it's just
  unnecessary, as it should be always preceded by a DOWN message anyhow.

- Don't dismiss the popup if the message is sent to it or one of its
  children, as in this case the popup itself is supposed to deal with it
  (as wxComboCtrl popup does) and we don't want to prevent it from doing
  it.

With these changes both wxComboCtrl and wxTipWindow seem to work as
expected.

Closes #18844.
2020-07-20 00:41:55 +02:00
Zane U. Ji
42bf26730f Implement keyboard navigation in rich text editor symbols dialog
Enable and fix keys processing in wxSymbolListCtrl::OnKeyDown().

Also set focus to this control initially as it's more useful and it's
expected that cursor arrows can be used to move the selection in it
rather than changing selection in the font comboboxes.

Note that "Enter" key still doesn't work correctly, i.e. doesn't close
the dialog when it's pressed in the symbols list control.

Closes #16033.

Co-authored-by: Igor Korot <ikorot01@gmail.com>
Co-authored-by: Vadim Zeitlin <vadim@wxwidgets.org>
2020-07-19 19:24:22 +02:00
Vadim Zeitlin
0079e9a278 Don't assert for unsupported logical functions in wxGCDC
wxGCDC is often used from wxEVT_PAINT handler and showing an assert
dialog from any of its methods results in wxEVT_PAINT being generated
again, resulting in another assert and abort, which is not useful, so
remove this assert to at least avoid crashes whenever unsupported
logical function is used, as it happens e.g. in the "Mask Screen" of our
own drawing sample.
2020-07-19 19:23:12 +02:00
Vadim Zeitlin
005b6dc88b Fix window focus after the last commit
Initialize m_disableFocusFromKbd, added by the parent commit, correctly
to "false" and not "true".

See https://github.com/wxWidgets/wxWidgets/pull/1516
2020-07-19 17:24:43 +02:00
Tomay
bbdd5b4984 Add wxWindow::DisableFocusFromKeyboard()
This allows to easily exclude a window from the TAB chain.

Closes https://github.com/wxWidgets/wxWidgets/pull/1516
2020-07-19 14:55:51 +02:00
Vadim Zeitlin
e5fb5a290c Drop gcc 3.4 from the requirements in the README
It probably doesn't work any longer after the changes of 617db49fda
(Remove support for gcc < 4, 2020-07-10) and nobody uses it anyhow any
more.
2020-07-19 13:14:18 +02:00
Vadim Zeitlin
564676e773 Don't crash if wxWebView::EnableContextMenu() is called too early
Although caller of wxWebViewEdgeImpl::GetSettings() check if it returns
NULL and handle it gracefully, this function itself can crash if it's
called too early, i.e. if ICoreWebView2 hasn't been created yet.

Add a check to avoid this and just return NULL settings in this case.

Closes #18840.
2020-07-19 13:10:08 +02:00
Vadim Zeitlin
2e51076159 Merge branch 'osx-overlay'
Fix wxOverlay under recent macOS versions.

Closes https://github.com/wxWidgets/wxWidgets/pull/1977
2020-07-19 00:20:36 +02:00
Vadim Zeitlin
b1e168b946 Remove _() macros from assert messages
We don't translate those, as they're meant for (presumably
English-speaking) developers only.
2020-07-19 00:20:22 +02:00
Stefan Csomor
130e11688b New macOS overlay window implementation
Make wxOverlay work on recent macOS versions.

Closes #18399.
2020-07-19 00:18:15 +02:00
Stefan Csomor
c8ede8d430 Fix #include form for a wx header in the sample
Use quotes, not angle brackets, for #includes in wx source tree itself.

No real changes.
2020-07-19 00:15:33 +02:00
Vadim Zeitlin
0645ff25a7 Merge branch 'configure-cache'
Fix running configure with "-C" option.

See https://github.com/wxWidgets/wxWidgets/pull/1981
2020-07-18 19:56:07 +02:00
Vadim Zeitlin
90ac5eeb6a Let shell expands $HOME in GitHub workflow
Apparently $HOME doesn't get expanded otherwise, resulting in "codespell
not found" error.
2020-07-18 19:49:21 +02:00
Stefan Csomor
9f89467ff1 Support arbitrary scale factors, not just 2, when loading bitmaps
This notably enables support for @3x icons used under iOS.

Closes https://github.com/wxWidgets/wxWidgets/pull/1983
2020-07-18 19:44:43 +02:00
Vadim Zeitlin
ee09efdb63 Merge branch 'codespell-workflow'
Set up a GitHub workflow checking for spelling errors in the
documentation and headers.

See https://github.com/wxWidgets/wxWidgets/pull/1958
2020-07-18 19:43:06 +02:00
Vadim Zeitlin
e875b11f74 Run codespell from a separate script in GitHub workflow
This allows to give a more detailed error message in case of a problem
and also makes it simpler to run the spell check locally.
2020-07-18 19:42:48 +02:00
Vadim Zeitlin
ceb21d5e86 Also call wxAuiManager::UnInit() when manager itself is destroyed
This completes the changes of the previous commit and should ensure that
UnInit() is always called, whoever is destroyed first -- the managed
window or the manager itself.

Also update the documentation to mention that calling UnInit()
explicitly is not necessary any longer.
2020-07-18 17:51:41 +02:00
Hans Mackowiak
f646532889 Call wxAuiManager::UnInit() if associated frame is destroyed
Don't require the application code to explicitly do it if the frame is
destroyed before the manager itself.
2020-07-18 17:47:34 +02:00
mimi89999
2ea7090de2 Change AUI panel button color to wxSYS_COLOUR_BTNTEXT
This colour is more appropriate when using wxGTK and is the same as the
previously used wxSYS_COLOUR_CAPTIONTEXT in wxOSX and should be also a
good choice for wxMSW.

Closes https://github.com/wxWidgets/wxWidgets/pull/1966
2020-07-18 17:15:41 +02:00
Vadim Zeitlin
0df485c928 Fix caching of inotify() availability check in configure
Commit 0fe1146b19 (Cache the result of inotify check in configure,
2020-04-15) was wrong as it defined wxHAS_INOTIFY inside the
AC_CACHE_CHECK(), meaning that this wasn't done at all if the value was
already cached.

Fix this by crrectly defining wxHAS_INOTIFY if inotify() availability
was either detected or cached.
2020-07-18 17:07:22 +02:00
Vadim Zeitlin
36f3164ea0 Pass options needed by it to libtiff configure only
Use non-standard but convenient AX_SUBDIRS_CONFIGURE() macro instead of
the standard AC_CONFIG_SUBDIRS() for libtiff, in order to allow passing
extra options to this sub-configure script without affecting any other
sub-configure ones and also without wrongly caching these options as
part of the main configure options, as happened before.

This notably fixes the problem with running "config.status", which
complained about unknown "--disable-jbig" and similar options, as they
were cached by the previous configure run.

We could also manually remove these options from ac_configure_args, but
doing it like this seems cleaner and simpler.
2020-07-18 16:59:48 +02:00
Vadim Zeitlin
b79173943a Fix problem with caching in sub-configure scripts
Since the changes of ef2b015e39 (Export CC and similar variables for
sub-configure scripts, 2018-10-20), using "-C" option with configure
didn't work any longer when also using built-in libtiff or expat, as
their configure scripts aborted due to detecting inconsistent build
environment because the values of exported CC etc variables they saw
differed from the values in the cache file.

Fixing this seems to be difficult, as we'd need to update the cache
before running the sub-configure scripts (which is simple enough), but
also remove the cached entries from it after doing it, as otherwise we'd
get the same inconsistent build environment problem simply by running
"configure -C" without any other options twice in a row, because the
first run would cache CC=gcc etc.

So work around this instead by disabling cache when exporting these
variables. And to make this workaround less annoying, restrict it to
only the cases when it's really needed, i.e. when we do modify these
variables in a non-trivial way.

With these changes, "configure -C" works again, but only uses caching if
possible.
2020-07-18 16:59:03 +02:00
Arrigo Marchiori
05cce8d89d Add wxUSE_HTML check to wxHtmlListBox header
Avoid compilation errors if wx/htmllbox.h gets included when wxUSE_HTML
is off.
2020-07-17 17:52:16 +02:00
Arrigo Marchiori
3aaa31e703 use wxConvWhateverWorks for translation strings
Revert the introduction of wxGet-SetInlineEncoding()
2020-07-17 17:52:16 +02:00
Arrigo Marchiori
5facb56580 note that encodings could fail 2020-07-17 17:52:16 +02:00
Arrigo Marchiori
464aeb8f84 avoid using wxNO_IMPLICIT_WXSTRING_ENCODING in utf-8-only builds 2020-07-17 17:52:16 +02:00
Arrigo Marchiori
40d1a3da35 Test building all headers with wxNO_IMPLICIT_WXSTRING_ENCODING
Check that all our public headers compile with this macro defined and
that using a char string without specifying its expected encoding
results in the expected compilation failure in this case.
2020-07-17 17:52:16 +02:00
Arrigo Marchiori
d16787e1af Fix tests build with wxNO_IMPLICIT_WXSTRING_ENCODING
Add wxASCII_STR to the tests sources too.
2020-07-17 17:52:16 +02:00
Arrigo Marchiori
57e136d9e1 Enforce consistency of encoding-related macros
Force wxNO_UNSAFE_WXSTRING_CONV on if wxNO_IMPLICIT_WXSTRING_ENCODING is
on, as the latter is even stronger than the former.
2020-07-17 17:52:16 +02:00
Vadim Zeitlin
f44121378e Apply implicit encoding check to wxDataFormat ctor in wxMSW too
This is similar to what had been already done in wxGTK.
2020-07-17 17:52:16 +02:00
Vadim Zeitlin
a2609429a3 Apply implicit encoding check to wxString::{starts,ends}_with() too
Don't provide the overloads taking "const char*" when compiling with
wxNO_IMPLICIT_WXSTRING_ENCODING is defined.
2020-07-17 17:52:16 +02:00
Arrigo Marchiori
34c130abfa Document the macro and its usage 2020-07-17 17:52:16 +02:00
Arrigo Marchiori
860f6076b8 Explicit encoding for implicit conversion in wxGetTranslation() 2020-07-17 17:52:16 +02:00
Arrigo Marchiori
c86bcf962d Use wxASCII_STR() on string literals
Fix the build with wxNO_IMPLICIT_WXSTRING_ENCODING.
2020-07-17 17:52:16 +02:00
Arrigo Marchiori
65cbf40b7e Add wxNO_UNSAFE_WXSTRING_CONV2 macro
The macro disallows implicit conversions between wxString and const
char*
2020-07-17 17:34:38 +02:00
Ali Asady
15a4375f93 Add beginning of Persian translations from Ali Asady 2020-07-17 16:02:38 +02:00
Stefan Csomor
051152ff95 Support GetFilterIndex() when filter choice is not shown in wxOSX
Platform native behaviour is not to show a filter, but to allow all
supported types to be selectable. Make sure GetFilterIndex still is a
valid choice (and not -1 as before).

Closes https://github.com/wxWidgets/wxWidgets/pull/1976
2020-07-17 15:06:58 +02:00
Hertatijanto Hartono
113f4bb17d Point to wxWebView Class Reference as an alternative to wxHTML
Currently "wxHTML Overview" refers to http://www.mozilla.org/ as a
high-end HTML browser engine, while already available wxWebView doesn't
get the attention it deserves.

Closes https://github.com/wxWidgets/wxWidgets/pull/1975
2020-07-17 15:02:59 +02:00
Daniel Kulp
6d12e746e1 Fix regression with making sockets non-blocking under Unix
The refactoring in the commit 51ea713826 (Extend and rename
wxSocketImpl::UnblockAndRegisterWithEventLoop(), 2019-11-20)
accidentally inverted the test for wxSOCKET_BLOCK, restore the correct
logic to make non-blocking sockets work again.

Closes #18834.
2020-07-16 11:51:51 +02:00
Vadim Zeitlin
7687d10c51 Merge branch 'empty-text-extent'
Make Get[MultiLine]TextExtent() behave consistently for empty strings on
all platforms, in particular return (0, 0) size for them from
GetTextExtent() in wxGTK, which is an incompatible change but is needed
to make it behave in the same way as the others.

See https://github.com/wxWidgets/wxWidgets/pull/1970
2020-07-16 11:43:05 +02:00
Lauri Nurmi
e6945aeedc Eliminate public header file's dependency on CoreServices.h
wx public headers are not supposed to include platform-specific headers
defining many macros that can conflict with the identifiers defined in
the application code. In this particular case, including CoreServices.h
ultimately #included AssertMacros.h, which by default on older SDKs
(<10.12) introduces various macros whose names very easily conflict with
user code.

For example, if you #included <wx/fswatcher.h> in your own code, and
your code happened to contain a symbol called 'check', or 'verify',
compilation failed.

Fix this by using pImpl idiom to move the variable requiring a type
defined in the SDK header into the source file.

Closes https://github.com/wxWidgets/wxWidgets/pull/1666
2020-07-16 01:54:24 +02:00
Vadim Zeitlin
99f210a0e7 Avoid uninitialized variable warnings in debug MSVC build
The compiler is smart enough to determine that the variables are always
initialized when they're actually used when using optimizations, but
gives a bunch of C4701 warnings for them if we don't initialize them in
the non-optimized debug builds.
2020-07-16 01:49:23 +02:00
Kasper
69da383e96 Make a dialog with a notebook in the dialog sample resizeable
It helps demonstrating how the layout works and is consistent with the
other windows in the sample (which are frames and so are resizeable by
default).

Closes #18830.
2020-07-15 16:25:52 +02:00
Vadim Zeitlin
c325087bce Use a more clear name for a dialog in the layout sample
No real changes, just rename the over generic MySizerDialog to a more
specific MyNotebookWithSizerDialog, as the goal of this dialog seems to
be to demonstrate using wxNotebook and sizers together.
2020-07-15 16:22:30 +02:00