Commit Graph

7559 Commits

Author SHA1 Message Date
Vadim Zeitlin
20cb47c1c4 Send Unicode data as UTF-8 text when using DDE-based IPC
This is a more hackish but more compatible solution to the problem of
data sent using wxIPC_UTF8TEXT format being simply lost when using DDE
for IPC classes. We must use CF_TEXT for the DDE to pass our data, but
we can try to decode it as UTF-8 in the client and assume it was sent in
this format if it worked. This obviously suffers from false positives as
any ASCII string will still be assumed to be UTF-8, but there shouldn't
be any real harm coming from this.

This change also makes sending data in wxIPC_UTF{16,32}TEXT formats work
as well by converting it to UTF-8.

Update the sample to call Advise() with both wxIPC_UTF{8,16}TEXT formats
and remove the now unnecessary wxDDEConnection::m_dataType member.

Closes #17900.
2018-12-27 00:26:29 +01:00
Vadim Zeitlin
09bf235a59 Revert "Fix passing Unicode strings via wxIPC when using DDE"
This reverts commit c657fd3d61 because
changing the format of DDE advise requests/replies is not a good idea:
other applications (those using previous versions of wxWidgets or even
not using wxWidgets at all) may rely on getting data in real CF_TEXT
format rather than in one of text formats preceded by the extra byte
containing the actual format and the previous commit would have silently
broken this.

Another fix for #17900 will be implemented instead.
2018-12-26 23:20:52 +01:00
Vadim Zeitlin
c657fd3d61 Fix passing Unicode strings via wxIPC when using DDE
wxIPC API doesn't map well onto DDE, as we don't have wxIPCFormat
parameter in StartAdvise() but do allow specifying the format when
calling Advise() itself, whereas DDE requires specifying the format when
establishing the advise loop and the data always must use this format
later.

Because of this, we have to pass the actual format with the data itself
instead of relying on DDE formats support. This has the advantage of
allowing wxIPC_UTF8TEXT to work, while previously it didn't and
couldn't, as DDE only supports the standard (or custom, but registered)
clipboard formats and it wasn't one of them. Of course, this also has a
disadvantage of having to make another copy of the data, but this seems
unavoidable.

This change allow Advise() overload taking wxString to work, including
for non-ASCII strings, as shown by the update to the IPC sample. It also
makes wxDDEConnection::m_dataType unnecessary, as we must always use the
format passed to DDE callback anyhow when handling XTYP_ADVREQ.

Closes #17900.
2018-12-24 01:42:12 +01:00
Vadim Zeitlin
270ad54abe Revert all recent changes to wxTranslations
The latest changes to wxTranslations::AddCatalog() behaviour were not
backwards-compatible and also had other problem, so revert them for now,
even if this means that #18227 has to be reopened.

This is a combination of the following commits:

----

Revert "Fix regression in wxTranslations::AddCatalog()"

This reverts commit 14e905858d.

See #18297.

----

Revert "Fix crash in translations code when no translations are found"

This reverts commit 80904d1bc7.

See #18299.

----

Revert "Rename new wxTranslations method to GetAcceptableTranslations()"

This reverts commit 20b02d6169.

----

Revert "Load catalogs for all preferred languages, if they exist"

This reverts commit 2d784da2ee.

----

Revert "Allow getting all usable translations languages"

This reverts commit 5d08e404c7.

----

See #18227, #18300.

Closes #18302.
2018-12-23 17:33:49 +01:00
Sebastian Walderich
e9cbbede00 Implement wxAuiNotebook::GetBestSize()
Compute the best size of the notebook, taking into account all the
different layout possibilities, and add a test checking that this works
as expected.

Closes https://github.com/wxWidgets/wxWidgets/pull/1085
2018-12-23 17:05:09 +01:00
Artur Wieczorek
0fbc4cd6ab Allow setting custom tooltip text for "New" button in wxPGArrayEditorDialog
Ability to change the tooltip can be useful if standard text "New item" is not descriptive enough.
2018-12-23 11:03:46 +01:00
Vadim Zeitlin
b2cdd287bb Resolve change log conflict with master
Reapply the change log change manually to master version of the file to
let the CI builds merge this branch automatically.
2018-12-20 02:24:49 +01:00
Tomasz Słodkowicz
14e905858d Fix regression in wxTranslations::AddCatalog()
Do load the catalog corresponding to the language of "msgid" strings in
the source code, only skip the languages strictly less preferred than
it.

This avoids incompatibilities with pre-3.1.2 behaviour and avoids
breaking existing applications relying on the old behaviour.

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

Closes #18297.
2018-12-18 04:50:07 +01:00
Vadim Zeitlin
abc4576ffe Invalidate selection after deleting wxListBox item with GTK+ 3
For consistency with the other ports, invalidate the selection when
deleting the selected item or any item before it.

Closes #18267.
2018-12-15 23:45:19 +01:00
Vadim Zeitlin
5189781072 Move wxDataViewCtrl incompatibility note to the correct section
3a24beca62 added this in a wrong place, as
this change does not result in any build errors.

See #18295.
2018-12-13 15:09:13 +01:00
Vadim Zeitlin
cf25bbbf9a Merge branch 'window-create-disabled'
Make calling wxWindow::Disable() before wxWindow::Create() work.

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

Closes #16385.
2018-12-12 18:24:10 +01:00
Vadim Zeitlin
3a24beca62 Document that wxDataViewCtrl now always expands its last column
This has been changed back in 4156e1a5c9
and is a (mildly) incompatible change, so document it in the appropriate
change log section.

See #18295.
2018-12-12 18:01:41 +01:00
Stefan Ziegler
0c2956be09 Fix wxInfoBar close button size in high DPI
Don't apply the scaling factor twice when dynamically creating the close
button bitmap.

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

Closes #18283.
2018-12-10 19:48:04 +01:00
Cătălin Răceanu
7a5916175d Update docs/doxygen/overviews/commondialogs.h 2018-12-10 19:37:58 +01:00
Tobias Taschner
d756159f5d Add common dialog wxCredentialEntryDialog
Prompting for user name and password is a common task.
At least windows provides these dialogs native but this
is just a generic implementation for now.
2018-12-10 19:37:29 +01:00
Tobias Taschner
2c8fcf2584 Add wxUSE_WEBREQUEST preprocessor constant 2018-12-10 19:37:17 +01:00
Vadim Zeitlin
251561172a Remove mentions of non-existent docs/$toolkit/install.txt
Don't include these files in "make dist" (which seems completely unused
anyhow, and probably broken because of this).
2018-12-10 19:06:18 +01:00
Vadim Zeitlin
cf28473d9f Mention that wx.bkl doesn't need to be updated for micro releases
Only WX_VERSION_DEFAULT value, which doesn't include the micro version
component, needs to be updated in this file.
2018-12-10 19:06:18 +01:00
Vadim Zeitlin
ea7926ad8d Remove the list of changes since 3.1.1 from the README
This will hopefully make things less confusing when preparing for the
next release.
2018-12-10 19:06:18 +01:00
Vadim Zeitlin
e1185d8bf0 Increment version number to 3.1.3
Done by running misc/scripts/inc_release, manually updating version.bkl,
rebaking and rerunning autoconf.
2018-12-10 19:06:18 +01:00
Vadim Zeitlin
c0cb5cacd9 Don't try updating version in non-existent docs/msw/install.txt
This file doesn't exist any more and install.md which replaced it
doesn't contain any references to the version.
2018-12-10 19:06:18 +01:00
Vadim Zeitlin
d8a41187ed Update "How to make releases" instructions
Remove update steps for wxBlog (because it's redundant with the news
post on www.wxwidgets.org now that both are hosted at the same site),
Google+ (because of its extinction) and Buildbot (because we're going to
stop using it soon anyhow).

Add a step for updating the list of compilers used for building
binaries.
2018-12-10 18:35:48 +01:00
Vadim Zeitlin
dfec7aa0c0 Make disabling the window before creating it actually work
Disabling a window before actually creating it ought to work, similarly
to hiding a window before creating it which can be used to avoid showing
the window on screen at all, even briefly. However it didn't under MSW
where the window was disabled from wxWidgets point of view, but not at
the MSW level.

Fix this by accounting for the enabled state in MSWGetStyle().

Closes #16385.
2018-12-09 19:20:50 +01:00
Vadim Zeitlin
edbee125f9 Slightly improve instructions for updating docs/release.md
It makes more sense to update it manually once and then run the script
rather than partially updating it manually first, then updating it again
and then running the script.
2018-12-09 16:55:42 +01:00
Vadim Zeitlin
d06720d4c9 Update SHA-1 sums for 3.1.2 release source archives
This is the result of running ./build/tools/post-release.sh
2018-12-09 16:53:25 +01:00
Vadim Zeitlin
33cb18f5e1 Link to the installation instructions from the main manual page
Installation is traditionally the worst (or at least the first) problem
for new wxWidgets users, so make it simpler to find these instructions.
2018-12-09 16:40:08 +01:00
Vadim Zeitlin
f456f52493 Add a text file to be shown after finishing wxMSW installation
We used docs/msw/install.txt for this previously, but it was too long to
be comfortably viewed in the installation wizard and also incidentally
doesn't exist any more, so add a new, short file just referring the user
to its replacement.
2018-12-09 16:40:08 +01:00
Vadim Zeitlin
61320731e9 Merge branch 'pre-3.1.2-updates'
Update release-related files for 3.1.2.

See https://github.com/wxWidgets/wxWidgets/pull/1057
2018-12-09 15:55:49 +01:00
Sebastian Walderich
ab1fd56977 Implement wxAuiNotebook::HitTest()
Check if point is on window or a certain tab.

Closes https://github.com/wxWidgets/wxWidgets/pull/1059
2018-12-09 15:52:30 +01:00
Vadim Zeitlin
f170ab3b61 Remove duplicate words
s/new new/new/
2018-12-09 00:35:27 +01:00
Vadim Zeitlin
b408e4c630 Update the release notes for 3.1.2
Change the version and update the list of MinGW compilers for which the
binaries are provided in this release.
2018-12-08 19:16:49 +01:00
Vadim Zeitlin
aef36f912a Fix 3.1.2 release date in the change log and the manual 2018-12-08 19:16:49 +01:00
Vadim Zeitlin
2e007cb3ec Update the list of changes before 3.1.2 release
Update both the (more detailed) README and the (shorter) announcement
message.

Also update the statistics and the cumulated changes since 3.0.
2018-12-08 19:16:27 +01:00
ashishmore
87bd82ab6f Fix wxMediaCtrl::SetPosition() in MSW WMP backend
Step the control one frame forward to actually show the frame at the
given position, otherwise the control only showed black screen.

Closes https://github.com/wxWidgets/wxWidgets/pull/678
2018-12-07 15:18:05 +01:00
jensgoe
d6a137b730 Improve wxDataViewCtrl performance with wxDV_VARIABLE_LINE_HEIGHT
Store the line heights in a cache to make the (generic) wxDataViewCtrl
usable with this style.
2018-12-07 04:05:16 +01:00
jwiesemann
3d75541662 Fix bug in template selection in docview framework
Don't use the template specified by the filter in the file open dialog
if it's incapable of actually handling the current file.

This fixes a regression compared to 2.8 in docview code and allows
opening a file using the correct template for its extension even if an
incorrect (e.g. default) filter is chosen in the file open dialog.

Closes #18123.
2018-12-07 03:34:21 +01:00
Stefan Ziegler
e1a702a205 Fix removing and inserting pages in wxToolbook
Removing a page from wxToolbook could result in crashes due to
dereferencing the now invalid page index. Fix this by not assuming that
the page index is the same as its tool ID, but adding functions to
explicitly map one to the other.

Also fix inserting pages into wxToolbook, which worked as appending them
before.

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

Closes #18275.
2018-12-05 17:23:57 +01:00
Daniel Kulp
727a100a6a Handle wxEVT_SYS_COLOUR_CHANGED in wxAUI classes
Update the colours used when the system theme changes.

This is especially important to use the colour scheme compatible with
macOS 10.14+ dark mode.

Note that this commit is best viewed with "git diff --color-moved".

Closes https://github.com/wxWidgets/wxWidgets/pull/916
2018-12-03 19:48:32 +01:00
Stefan Ziegler
974b7c0990 Add wxToolbook::EnablePage()
Add functions to enable or disable pages inside wxToolbook.

Using the new functions you can present disabled icons so that the user
can expect more functionality and you do not need to add/remove pages in
different states.

Closes https://github.com/wxWidgets/wxWidgets/pull/1038
2018-12-03 19:42:45 +01:00
Maarten Bent
39ff5b90e5 Replace wxDeprecatedGUIConstants enum values 2018-11-25 21:29:32 +01:00
Vadim Zeitlin
4099e75edb Add property sheet to allow easily configure projects using wx
This seems to be the simplest possible way to let a MSVS project use the
library.
2018-11-18 01:05:10 +01:00
Vadim Zeitlin
a28b48ffe1 Fix formatting in MSW install instructions
Use backticks around _UNICODE to avoid the special meaning of "_" in
Markdown.

Also use backticks around a couple of other identifiers/paths for
consistency.
2018-11-18 01:05:10 +01:00
Vadim Zeitlin
8dbebf9164 Merge branch 'update_submodules' of https://github.com/MaartenBent/wxWidgets
Update all 3rd party libraries to the latest versions.

See https://github.com/wxWidgets/wxWidgets/pull/1023
2018-11-18 01:00:13 +01:00
Maarten Bent
4ddd4cc68d Improve updating third party library documentation
Add a section about updating the build files.
2018-11-17 19:08:43 +01:00
Vadim Zeitlin
6e3f818da1 Fix formatting of change log entries for consistency
Capitalize the entries, keep them under 80 columns and terminate with
full stop.

Also fix a typo.

No real changes.
2018-11-11 19:46:58 +01:00
Andy Robinson
fe4f35b0a3 Make wxFrame::EnableFullScreenView() work under macOS 10.11+
We must explicitly turn on NSWindowCollectionBehaviorFullScreenAuxiliary
flag to prevent the window from becoming shown in full screen.

Closes #18168.
2018-11-11 19:46:58 +01:00
Vadim Zeitlin
5b891e9ffc Merge branch 'dvc-getitemrect'
Make wxDataViewCtrl::GetIremRect() work under all platforms and improve
tests, documentation and fix a couple of other problems in the same code
area.

See https://github.com/wxWidgets/wxWidgets/pull/1015
2018-11-10 22:38:05 +01:00
Vadim Zeitlin
463deb03c9 Merge branch 'gtk-dpi'
A bunch of improvements for per-monitor DPI support in wxGTK and
wxGraphicsContext more generally.

Closes https://github.com/wxWidgets/wxWidgets/pull/995
2018-11-10 12:15:27 +01:00
Vadim Zeitlin
d5c43831b5 Really implement wxGraphicsContext::GetDPI()
Return the DPI of the associated window, if any, instead of always
returning hard-coded 72*72.
2018-11-06 03:36:53 +01:00
Vadim Zeitlin
5e53b22bd4 Add wxGraphicsContext::GetWindow()
This method allows to retrieve the window this context is associated
with, if any.

Add "wxWindow*" argument to wxGraphicsContext ctor and provide the
window pointer to it when available, i.e. when creating the context from
a wxWindow directly or from wxWindowDC, which is also associated with a
window, in platform-specific code.

No real changes yet.
2018-11-06 03:36:53 +01:00