This MSW-specific hack is actually needed by all windows containing more than
one control, even if they don't derive from wxPanel (which is just the most
commonly used class for such windows), otherwise the parts of the window not
covered by the child controls won't have the correct appearance when the
window itself is inside a wxNotebook.
So do this for all classes inheriting from wxNavigationEnabled<>, notably this
fixes the wrong background for all kinds of picker controls (wxDirPickerCtrl,
wxFilePickerCtrl, ...) when they're used inside a wxNotebook.
After moving this method out of wxPanel, src/msw/panel.cpp became empty, so
also delete it and remove it from {bake,make,project} files.
Don't exclude non-MSW specific files any longer from the generated
installer for MSW. The space savings are hardly worth the effort:
originally 46.9 MiB (133 MiB installed) and with all files included 48 MiB
(142 MiB installed).
Also by having all files in the installer more exotic builds such as wxGTK
for MSW are available.
Add a new class allowing to store passwords and other sensitive information
using the OS-provided facilities.
Add implementations for all the main platforms, documentation and a new sample
(which contains an ad hoc unit test as the real unit test for this class would
probably be a bad idea as it wouldn't run in non-interactive contexts and
could show OS level dialog boxes if it did).
Use a single script for all compiler versions, another simple script just
defining wxWidgets version and, finally, a script building all the binaries
for all the compilers.
Closes#17510.
Add a helper wxMSWImpl::CustomDraw class which will be reused in the other
places too and, for now, use it just to implement support for custom colours
in wxHeaderCtrl.
Notice that the control took care of the custom font on its anyhow and that
background colour is ignored when themes are enabled, so the net effect of
this change is that now changing the header foreground colour works, while
it was ignored before.
The two existing structs were completely identical, just replace them with a
single wxItemAttr.
Notice that wxDataViewItemAttr is not quite the same, although pretty similar,
so it remains separate for now. It would be nice to combine it with this one
too in the future, e.g. to make it simpler to make items bold in a wxListCtrl.
Add XRC handler for wxAuiManager and include the existing wxAuiNotebook
handler into it (but notice that wxAuiToolBar handler added by a later #15686
in f269f868d7 remains separate).
Also update the AUI dialog in the sample and stop hardcoding its size in
pixels.
See #13520.
Use the macro versions from 2.24.29 and 3.18.8 (latest available in Debian for
GTK+ 2 and 3 respectively) to fix the detection of pkg-config which was
incorrect in the old gtk-2.0.m4.
Closes#17027.
Update misc/scripts/inc_release script: remove non-existent any more files and
update the version in the MSVS 200x project files not generated by bakefile
any more and MSVS 201x project files which were not previously taken into
account.
Run it and rebake.
This makes them compatible with the makefiles and MSVS 200x projects.
Notice that wxVersionString will need to be set to "32", not "320", when 3.2.0
release is done, as the micro version component is only used in the DLL names
for the development releases but not stable ones.
This generic implementation should be used for wxUniv too, otherwise any code
using wxActivityIndicator, such as the widgets sample, simply failed to link
when using it.
Closes#17394.
This file was mistakenly removed from the list of wxOSX headers in
602ea92143.
And don't install wx/osx/core/stdpaths.h which doesn't exist any longer (see
abe10b8c00).
Closes#17381.
Disable more libraries and use --disable-optimize instead of --enable-debug
(also for MinGW) as we don't really need debug information in these builds and
not generating it might make things faster.
Building for iOS used the carbon version of wxSystemSettingsNative which included ifdefs to build with iOS. This adds a wxIOS specific settings.mm file to provide an iOS stub implementation.
Since Windows 8 there are native toast notifications available via WinRT defined in windows.ui.notifications.h. This adds support for these notifications via wxNotificationMessage. These notifications have to be explicitly enabled via wxNotificationMessage::MSWEnableToasts() because they require a start menu shortcut to the application.
Some Windows8+ APIs are only accessible via WinRT which is based on COM. However there are a few dependencies to get to the interfaces via functions defined in roapi.h. Using RoInitialize, RoUninitialize, etc. directly from it's windows headers adds dependencies to the WinRT dlls leaving the resulting exe unable to launch on earlier Windows versions. The wxWinRT functions wrap this with dynamic loading. Additionally wxWinRT::TempStringRef adds a convenient wrapper to HSTRING which is used extensively in WinRT APIs.
wxNotificationMessage has been refactored to always use wxNotificationMessageImpl (this was previously already done in the MSW implementation)
This adds various features and fixes to wxNotificationMessage:
- OS X Notification Center implementation
- Generic "toast" notifications
- SetIcon() to specify a custom icon
- AddAction() to add actions to notifications
- Events to get notify of notification clicks, dismiss or actions
Due to recent changes in utils, stdpath and the removal of carbon, building on
OS X was broken by various compiler errors and linker issues.
Closes https://github.com/wxWidgets/wxWidgets/pull/210
The implementation file for this control somehow wasn't used in wxGTK build,
fix this and, in fact, include it in common sources as there is only a generic
implementation of this control so far.
Closes#17309.
This will be useful for allowing other projects, not necessarily located at
the same level of the file hierarchy as the projects for building the library,
to refer to the location of the libraries more easily.
Cocoa has been the default toolkit in wxWidgets for a long time. There is really no good reason to use Carbon in 2016 and this removes a lot of unused and unmaintained code.