Commit Graph

34680 Commits

Author SHA1 Message Date
Vadim Zeitlin
64e14e850d Compilation fix for wxMSW without PCH
Add missing header inclusion to fix compilation after changes of
35f35ea407 (see #17360).
2016-02-15 01:21:39 +01:00
Paul Cornett
75de19b21f avoid unused variable warning 2016-02-14 13:41:20 -08:00
Paul Cornett
837c3a0df1 remove unused function 2016-02-14 13:40:07 -08:00
Paul Cornett
f95fd11e08 Allow drawing HiDPI bitmaps with GTK3
1. Override wxWindow::GetContentScaleFactor() to use gdk_window_get_scale_factor()
   when available, and to use correct scale (1.0) otherwise, as wxDC::GetPPI()
   (used by overridden method) is not properly implemented for wxGTK
2. Record scale in wxBitmap(wxImage&) ctor and wxBitmap::CreateScaled()
3. Adjust cairo scale for drawing bitmap, and (inversely) for drawing on bitmap
2016-02-14 13:12:52 -08:00
Vadim Zeitlin
90eae99cd6 Use strict UTF-8 conversion in wxSafeConvertXXX() functions
It doesn't make sense to use any fallbacks when converting to/from UTF-8 and
this wasn't even done consistently as only wxSafeConvertWX2MB() used
MAP_INVALID_UTF8_TO_OCTAL, but not wxSafeConvertMB2WX().

More importantly, UTF-8 conversion can never fail for a valid Unicode string,
so there is no need for any fall backs.
2016-02-13 17:03:47 +01:00
Vadim Zeitlin
0d7f51098d Rewrite switch on wxTextBufferOpenMode to be exhaustive
Get rid of the default clause to allow the compiler to warn us if ever add new
elements to this enum.

No real changes.
2016-02-13 13:52:13 +01:00
Vadim Zeitlin
fe850fccc5 Fix "open mode" variables naming convention in wxTextFile
Start variable name with lower case letters for consistency.

No real changes.
2016-02-13 13:46:25 +01:00
Vadim Zeitlin
d59c6c5add Remove useless c_str() calls from wxTextFile code
There is no need to call wxString::c_str() just to create another wxString
from it.
2016-02-13 13:44:12 +01:00
Rebel_X
35f35ea407 Clean up wxMSW tooltip window on library shutdown
Not doing this prevented the tooltips from working correctly if the library
was shut down and reinitialized again, so add a module ensuring this is done.

Closes #17360.
2016-02-13 12:55:17 +01:00
David Vanderson
ccd361c98f Fix strike-through support in wxFont with GDI+
Pass down the strike-through flag to GDI+ (see #9907).

Closes #17372.
2016-02-13 12:49:21 +01:00
Vadim Zeitlin
d7d5bcaae6 Merge fixes for Unicode support in wxFileSystem::FindFirst()
Closes #11404.
2016-02-13 12:32:46 +01:00
Vadim Zeitlin
bfbdd37a1a Merge native MSW appearance for AUI toolbars
Closes https://github.com/wxWidgets/wxWidgets/pull/200
2016-02-13 12:31:49 +01:00
Vadim Zeitlin
86b1181233 Fix issue with AUI toolbar overflow button always showing up
When resizing a wxAuiToolbar, the overflow button always showed up, and the
SetOverflowVisible() doesn't work as expected. E.g.

	tb->SetOverflowVisible(!tb->GetToolFitsByIndex(tb->GetToolCount()-1));
	tb->Refresh()

This was caused by the logic in OnPaint() ignoring the m_overflowVisible flag
and always drawing (or not drawing) the overflow button.

Add a check for it to fix this.

Closes https://github.com/wxWidgets/wxWidgets/pull/212
2016-02-13 12:22:04 +01:00
Vadim Zeitlin
f9b35855cf Fix amazingly broken wxURI::CharToHex() to only accept hex digits
The valid range for hex digits is A..F, not A..Z.
2016-02-13 04:01:54 +01:00
Vadim Zeitlin
314630945a Fix wxURI::Unescape() to work with Unicode strings
Such strings are not really URIs as they should have been encoded if they were
but we can obtain them from e.g. wxFileSystem::FindFirst(), so handle them
correctly here as it's simpler than checking all the places where Unescape()
is called.

Add a unit test checking that decoding an URI containing both Unicode and
percent-encoded Unicode characters works correctly.
2016-02-13 04:01:27 +01:00
Vadim Zeitlin
baf67813b0 Fix redefinition errors in wxTaskBarButton code with MSVC
After 4475fe36a5 there were ambiguities between
PROPERTYKEY and PROPVARIANT defined in the anonymous namespace and the global
header for the compilers that did define them, such as MSVC.

Fix this by not (re)defining PROPERTYKEY if it had been already defined and
not defining PROPVARIANT at all as it's used as PropVariantClear() parameter
in the beginning of this file, before it was defined by us, so it must work
for all the compilers already anyhow.
2016-02-12 02:20:44 +01:00
Vadim Zeitlin
4475fe36a5 Don't define interfaces inside anonymous namespace in wxMSW
Some interfaces, notably IAutoCompleteDropDown, but also several other ones in
taskbarbutton.cpp, were defined inside anonymous namespace to avoid clashing
with the interfaces possibly (but not necessarily) declared in the standard
headers.

However gcc 4.9 is smart enough to realize that no classes deriving from a
class in an anonymous namespace can exist and so it devirtualizes the calls to
virtual methods of the objects of this type when compiling with optimizations
enabled. And it does it even if it means replacing the call to a virtual
method with just a call to __cxa_pure_virtual(), i.e. crashing during
run-time.

Prevent it from doing this by moving class declarations outside of the
anonymous namespace and fix the crash when using wxTextEntry::AutoComplete()
in the code compiled with g++ 4.9.
2016-02-11 23:39:44 +01:00
Paul Cornett
1908c41f36 Fix linking with gdk_mir_* functions
gdkmir.h header is missing extern "C" wrapper as of GTK+ 3.18.7
2016-02-10 23:22:58 -08:00
Tobias Taschner
49b82e72f2 Add native wxAuiToolbarArt for MSW.
Using UXTheme or generic fallback for executables without manifest.
2016-02-10 20:40:45 +01:00
Tobias Taschner
c8c9f56e0c Prepare platform dependent wxAuiDefaultToolBarArt. 2016-02-10 20:40:30 +01:00
Paul Cornett
39716462e6 avoid deprecated gtk_widget_size_request() 2016-02-10 09:35:22 -08:00
Paul Cornett
2bb8367cba Suppress deprecation warnings for resize grip
We need the code for older GTK3 versions
2016-02-10 09:35:15 -08:00
Vadim Zeitlin
730c1ee79b Merge https://github.com/wxWidgets/wxWidgets/pull/208
See #17218.
2016-02-10 16:17:23 +01:00
Tobias Taschner
abe10b8c00 Fix wxBase build under OS X
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
2016-02-10 16:12:20 +01:00
Vadim Zeitlin
06458cb89f Fix handling of strings in wxPrintf() when using recent MinGW
MinGW-w64 (and apparently TDM too) defaults to using ANSI stdio functions
nowadays, which interpret format specifiers such as "%s" and "%c" in wide
string functions in the standard-conforming way, i.e. still expecting the
arguments of "char*" type, and not "wchar_t*" as MSVC and older MinGW did.
2016-02-10 15:22:51 +01:00
Paul Cornett
caf63a14cb avoid deprecated gtk_widget_get_requisition() 2016-02-09 23:48:48 -08:00
Vadim Zeitlin
35a56f5c5f Fix a crash when applying wxTextCtrl style with GTK+3
Add missing NULL terminator to gtk_style_context_get() call (thanks g++ for
the warning).
2016-02-10 00:12:14 +01:00
Vadim Zeitlin
f357fcc679 Remove unnecessary checks in the window ID management code
Remove asserts from the functions which are called only once and for which the
caller already performs exactly the same check before calling them.
2016-02-10 00:10:47 +01:00
Vadim Zeitlin
aece1f81b6 Remove tracing from wxWindowID code
wxWindowID objects can be global and thus be destroyed after the library has
been uninitialized and, worse, when some of the global objects have been
already destroyed.

In particular, using wxLogTrace() in DecIdRefCount() called from the dtor
could result in using the possibly already destroyed wxConvLibc object, so
avoid this by not doing any tracing from there.
2016-02-10 00:06:41 +01:00
Vadim Zeitlin
d50abc2d3e Make wxWS_EX_VALIDATE_RECURSIVELY default (and only) behaviour
In practice, almost everybody using validators also seems to use this style,
so make it the default (this hadn't been done when it was originally
introduced because of compatibility concerns, but now, 15+ years later, it's
probably safe enough to change this).
2016-02-09 23:38:23 +01:00
Artur Wieczorek
088d8cbed5 Added missing references to some dynamically loaded Cairo API's. 2016-02-09 20:44:41 +01:00
Paul Cornett
08c176650c Silence deprecation warnings about gtk_font_selection_dialog_*
We use GtkFontChooser when available
2016-02-08 10:44:50 -08:00
Paul Cornett
94163e48c0 avoid gtk_style_context_get_*color(), deprecated in GTK+ 3.16 2016-02-08 10:44:18 -08:00
Tobias Taschner
425ae4ad4f Change highlight text colours in OSX sys settings.
wxSYS_COLOUR_LISTBOXHIGHLIGHTTEXT is usually used on a darker background provided by wxRender::DrawItemSelectionRect so a light color makes sense. While wxSYS_COLOUR_HIGHLIGHTTEXT is used on a lighter blue shade where the dark color makes sense.
2016-02-08 18:31:40 +01:00
Vadim Zeitlin
f844b45815 Don't convert alpha channel to mask when loading PNG images
This seemed like a good idea many years ago when plenty of code (inside and
outside of wxWidgets) couldn't deal with the real alpha correctly, but this is
not the case since quite some time any more and producing an image without
alpha channel when loading a PNG image with transparency is more surprising
than useful now, so don't do it any more.

Closes #3019.
2016-02-08 02:28:00 +01:00
wxBen
526a627fa8 Allow customizing wxRibbon highlight colours
Add wxRIBBON_ART_BUTTON_BAR_LABEL_XXX settings.

Closes #16784.
2016-02-08 02:28:00 +01:00
Paul Cornett
2fe6f9ea59 avoid gtk_style_context_get_*color(), deprecated in GTK+ 3.16 2016-02-07 17:25:38 -08:00
Vadim Zeitlin
026659297b Fix path/URL confusion in wxLaunchDefaultBrowser()
Add a helper wxLaunchBrowserParams struct with clearly distinct "url" and
"path" fields and GetPathOrURL() accessor which returns whichever is
appropriate.

This makes the code more clear and ensures that we never pass URLs (but only
file paths) to xdg-open under Unix as it doesn't handle them.

See #17227.
2016-02-07 19:32:18 +01:00
Paul Cornett
558716e8f9 Avoid GTK warnings when calling Clear() on a wxBitmapComboBox
Use wxTextEntry::Clear(), now that it uses Remove() instead of SetValue().
See #16654 and fc8d3f6
2016-02-06 21:49:26 -08:00
Paul Cornett
bc4df78421 Allow SetClientSize() to set correct size even when size of window decorations is not known
This should allow correct sizing of first TLW (when using SetClientSize())
with backends using client-side decorations such as Wayland.
2016-02-06 16:07:28 -08:00
Paul Cornett
859e31ca7f fix typo in 6a01623 2016-02-06 14:26:45 -08:00
Paul Cornett
f526f0117a non-pch build fix 2016-02-06 10:46:09 -08:00
Vadim Zeitlin
57fa59b81c Merge branch 'listctrl-checkboxes-generic' of https://github.com/MaartenBent/wxWidgets
Implement checkboxes support for the generic version of wxListCtrl too so it's
not available under all platforms.
2016-02-06 19:18:58 +01:00
Vadim Zeitlin
9a0333496b Fix harmless warning in wxMSW wxListCtrl checkboxes code
Explicitly suppress a gcc warning about the value returned by
ListView_SetExtendedListViewStyleEx() being not used.

See https://github.com/wxWidgets/wxWidgets/pull/153
2016-02-06 19:13:35 +01:00
Vadim Zeitlin
7a8684a8bd Add RAII wrapper for GTKDisableEvents/GTKEnableEvents() calls
Ensure GTKEnableEvents() is called automatically on scope exit whenever
GTKDisableEvents() is called.

This fixes a couple of potential bugs where GTKEnableEvents() could be not
called if wxCHECK() condition failed and makes the code shorter and safer.
2016-02-06 19:13:35 +01:00
Vadim Zeitlin
72af0d4ca1 Use wxGtkTreePath for wxListBox and wxCheckListBox in wxGTK too
Avoid manual calls to gtk_tree_path_free() and use the RAII wrapper instead.

This makes the code shorter and safer.

No real changes.
2016-02-06 19:13:35 +01:00
Vadim Zeitlin
6768695d14 Extract wxGtkTreePath from src/gtk/dataview.cpp
Put this class into its own header so that it could be reused from other
places.

No real changes.
2016-02-06 19:13:35 +01:00
Andreas Falkenhahn
6a01623a80 Add wxListBox::GetTopItem() and GetCountPerPage()
Implement these methods for all the major ports, add them to the widgets
sample and documentation.

Closes #17189.
2016-02-06 19:13:35 +01:00
Maarten Bent
dedda75b3a Fixed checking with multiple-selection enabled, added left offset. 2016-02-06 18:54:08 +01:00
Paul Cornett
6ed7e27bf2 Fix GetBestSize() for GTK3 after size has been set
Need to reset size request to get actual best size.
See Fedora bug https://bugzilla.redhat.com/show_bug.cgi?id=1282142
2016-02-06 08:58:53 -08:00