Commit Graph

37097 Commits

Author SHA1 Message Date
Václav Slavík
66e07d6465 Fix crash in wxMenu::MSWCommand if item is NULL 2018-10-09 18:27:47 +02:00
Vadim Zeitlin
54ef52fbd9 Merge branch 'display-funcs'
Implement all global functions in terms of wxDisplay and add
wxDisplay::GetPPI().

See https://github.com/wxWidgets/wxWidgets/pull/963
2018-10-09 16:31:54 +02:00
oneeyeman1
1a58c9c8ba Also fill the column for wxEVT_DATAVIEW_ITEM_ACTIVATED in wxOSX
Similar to the previous commit.

Closes https://github.com/wxWidgets/wxWidgets/pull/967
2018-10-09 15:25:18 +02:00
Vadim Zeitlin
aafb87b40d Set the column for wxEVT_DATAVIEW_ITEM_ACTIVATED in wxGTK
The column is available in the GTK+ callback, so just pass it along to
avoid gratuitous inconsistency with the generic version.

Also update the sample to show the column value for these events.
2018-10-09 15:21:08 +02:00
Vadim Zeitlin
818d69f113 Make wxDataViewCtrl::FromGTKColumn() public and rename
This function has to be called from a GTK+ callback, so make it public
and also rename to GTKColumnToWX() to conform to the naming convention
mandating the use of "GTK" prefix for the public methods which are not
part of the public API.
2018-10-09 15:12:42 +02:00
Paul Cornett
e160cb37b6 Remove unused wxWindow parameter 2018-10-08 22:01:05 -07:00
Paul Cornett
5d3d6135e0 Fix wxRenderer for GTK+2 with wxGCDC created from wxMemoryDC
See #18242
2018-10-08 21:47:46 -07:00
Vadim Zeitlin
ded2894b78 Add wxDisplay::GetPPI() to use instead of wxGetDisplayPPI()
While this is not done for all the ports yet, the new API allows
returning different PPI values for different monitors, unlike the old
(and still existing, but implemented in terms of the new one) global
function.
2018-10-08 13:04:38 +02:00
Vadim Zeitlin
309f942aa6 Merge branch 'qt-build'
Minor wxQt API fixes and simplifications.

See https://github.com/wxWidgets/wxWidgets/pull/962
2018-10-07 19:55:37 +02:00
Vadim Zeitlin
e3e883bbd2 Implement wxColourDisplay() in terms of wxDisplay::GetDepth()
Get rid of another global display-related function, even though this one
only had non-trivial implementation under MSW.
2018-10-07 00:30:12 +02:00
Vadim Zeitlin
382404f0a7 Stop using wxColourDisplay() inside wxWidgets code
This function always returns true in practice and it's completely
useless to call it during each wxDC object construction, especially
because wxDC::m_colour itself is not used anywhere.
2018-10-07 00:30:12 +02:00
Vadim Zeitlin
24b5e256df Add wxDisplay::GetDepth() and use it for wxDisplayDepth()
Allow getting the depth of any display, not just the primary one, even
though this is not implemented for Unix ports currently.

Mostly do this for consistency with the other display-related functions.
2018-10-07 00:30:12 +02:00
Vadim Zeitlin
e834585cf7 Remove wxDisplaySize() implementation from wxGTK1
This is now implemented in common code, in terms of wxDisplay.
2018-10-06 15:24:13 +02:00
Vadim Zeitlin
b368fa2de5 Remove casts from wxString to "const char*" in wxQt code
These casts didn't compile in Unicode build and were completely
unnecessary anyhow, just remove them.
2018-10-06 14:07:47 +02:00
Scott Furry
0d63351eef Fix wxQt compilation in STL build
Use compatibility_iterator instead of Node* for iterating over wxList,
the latter doesn't compile when wxUSE_STD_CONTAINERS==1.
2018-10-06 14:07:02 +02:00
Scott Furry
f8c14d1176 Define more wxToolBar::SetToolXXX() methods in wxQt
Provide a stub for SetToolShortHelp() and really implement
SetTool{Normal,Disabled}Bitmap().
2018-10-06 14:07:02 +02:00
Vadim Zeitlin
613c686d73 Merge branch 'no-use-display'
Fix build for wxUSE_DISPLAY==0 and further simplify wxGTK display code.

See https://github.com/wxWidgets/wxWidgets/pull/961
2018-10-05 18:54:45 +02:00
Vadim Zeitlin
103881abee Merge branch 'virt-direction'
Don't extend wxScrolledWindow virtual size beyond its physical size in
non-scrollable direction.

See #18235.
2018-10-05 18:53:38 +02:00
Vadim Zeitlin
86ba770cd0 Rename helper display function to use wx naming convention
Don't pretend to be a GDK function, even if it's only a thin wrapper for
a GDK macro.
2018-10-05 18:52:30 +02:00
Stefan Csomor
162ea7b1ef bringing back old style macOS icons loading
see https://github.com/wxWidgets/wxWidgets/pull/925
2018-10-05 15:01:24 +02:00
Vadim Zeitlin
5e6e7aa769 Separate GTK+ 4 wxDisplay implementation from previous versions
This makes the code more readable, even though it almost doubles its
size -- but the corresponding reduction in the number of preprocessor
checks is still worth it.
2018-10-04 23:01:27 +02:00
Vadim Zeitlin
e0ba727dec Extract X11 functions used by wxGTK in a separate header
This makes src/unix/displayx11.cpp almost readable as it's not littered
by "#ifndef __WXGTK20__" checks everywhere any more -- instead this file
is just not compiled as part of wxGTK2 at all any longer (it is still
included in wxGTK1 as well as wxX11 itself and wxMotif).

wxGTK code also can just include the new wx/unix/private/displayx11.h
instead of having to declare all the X11 functions it uses manually.

There should be no changes in behaviour, this is just a clean up.
2018-10-04 17:07:11 +02:00
Vadim Zeitlin
c38a8f960e Fix wxGTK build with wxUSE_DISPLAY==0
Add the missing "new" keyword.
2018-10-04 16:39:40 +02:00
Vadim Zeitlin
9cc1424b84 Return empty string from wxDisplayImpl::GetName() by default
Simplify the code by not making this function pure virtual as all the
ports except MSW had to override it just to return an empty string.

Instead, just return empty string by default as it's not critical to
force the derived classes to override this function.
2018-10-04 16:37:12 +02:00
Vadim Zeitlin
f704c40207 Don't use wxDisplayFactorySingleX11 in wxGTK if wxUSE_DISPLAY==0
wxDisplay::CreateFactory() shouldn't be defined in this file when
building wxGTK, whether wxUSE_DISPLAY==1 or 0.
2018-10-04 16:31:55 +02:00
Vadim Zeitlin
180fb2f35b Restrict scrolled window virtual area in non-scrollable direction
If a wxScrolledWindow is only scrollable in one direction, its virtual
size should only extend beyond the actual size of the window in this
direction, as any contents not fitting the window wouldn't be visible
anyhow.
2018-10-03 01:19:57 +02:00
Vadim Zeitlin
20466d045f Slightly simply wxScrollHelperBase::ScrollLayout()
No real changes, just use wxPoint and wxSize instead of intermediate int
variables.
2018-10-03 01:12:47 +02:00
Maarten Bent
32d32f8172 Revert "Fix missing wxOwnerDrawn functions in WXQT wxMenuItem"
This reverts commit 4e23b3e7f4.
wxOwnerDrawn is only used with wxMSW toolkit.
2018-10-01 21:47:33 +02:00
Vadim Zeitlin
761f9f74fc Merge branch 'simplify-display'
Centralize all display-related code in wxDisplay class and avoid
duplicating or reimplementing it in wxDisplaySize() and
wxClientDisplayRect() functions.

See https://github.com/wxWidgets/wxWidgets/pull/955
2018-10-01 13:52:07 +02:00
Stefan Csomor
00197d0c75 removing the menu from the public API of wxChoice on osx
on iOS pickers are having data sources that are not implemented using a menu, therefore the implementation API had to be changed
2018-10-01 08:28:41 +02:00
Vadim Zeitlin
0263ebfaca Remove duplicate wx/wxprec.h inclusion from wxiOSX code
No real changes, just remove an unnecessary #include.
2018-09-30 23:08:43 +02:00
Vadim Zeitlin
c2162792cf Implement wxDisplaySize() and wxClientDisplayRect() via wxDisplay
Instead of forwarding to these functions from wxDisplay implementation
in wxUSE_DISPLAY==0 case, make the functions themselves wrappers around
wxDisplay, which may, or not, depending on the platform, have a simpler
implementation in wxUSE_DISPLAY==0 case, but is always available in any
case.

As part of this change, only use src/osx/core/display.cpp in macOS
builds, not iOS ones and update the Xcode project accordingly too.

This cuts down on code duplication, especially in wxGTK, and facilitates
further additions to wxDisplay API.
2018-09-30 23:07:45 +02:00
Maarten Bent
7f0d7ef520 Fix several build errors in WXQT
Move declaration of wxOwnerDrawnBase::ms_defaultMargin to correct file.
Do not include headers when wxUSE_UIACTIONSIMULATOR is disabled.
Add guards for wxUSE_DRAG_AND_DROP.
Use a different wxFont constructor in printing sample, which is also available in WXQT.
2018-09-30 17:23:58 +02:00
Maarten Bent
4e23b3e7f4 Fix missing wxOwnerDrawn functions in WXQT wxMenuItem 2018-09-30 17:23:58 +02:00
Maarten Bent
bb82470640 Fix missing gl functions in WXQT 2018-09-30 17:23:58 +02:00
Maarten Bent
487a3854a3 Fix building stc library with WXQT
When using MSVC compiler, wxUSE_GRAPHICS_DIRECT2D is automatically enabled in setup.h.
But it is only available with WXMSW toolkit, not WXGTK or WXQT.
2018-09-30 17:23:58 +02:00
Maarten Bent
8f017509f6 Remove wxConsoleEventLoop from WXQT
The console event loop in the wxBase library is GUI toolkit independent.
2018-09-30 17:23:58 +02:00
Maarten Bent
f5b4d707b8 Do not use variable-length array in WXQT wxRegion
This is not supported by MSVC compiler.
2018-09-30 17:23:58 +02:00
Vadim Zeitlin
c98d504b6d Implement wxDisplay::GetClientArea() for wxQt too
This is as simple as implementing GetGeometry(), so just do it.
2018-09-30 17:07:14 +02:00
Vadim Zeitlin
771e01cc73 Remove unnecessary trivial wxDisplayFactoryQt default ctor
No real changes, just remove useless lines.
2018-09-30 17:03:22 +02:00
Vadim Zeitlin
990c8bfd73 Cache wxDisplayImpl object for faster access
Avoid a heap allocation on every wxDisplay creation by caching the
wxDisplayImpl objects once they're created.

Currently we never invalidate the cache, but we should add a way to do
it in the future.

This speeds up wxDisplay::GetGeometry() benchmark by a factor of 4.
2018-09-30 00:53:59 +02:00
Vadim Zeitlin
9619950721 Use wxOVERRIDE for wxDisplay-related classes in wxQt
No real changes.
2018-09-30 00:38:27 +02:00
Vadim Zeitlin
9f37d91498 Fix wrong comment before wxDisplayFactorySingle::CreateDisplay()
This method is not static.
2018-09-30 00:38:26 +02:00
Vadim Zeitlin
77e33d9e1b Micro optimization in wxDisplay ctor
Don't check for the index validity if it's 0, which is the most common
case, as index 0 is always valid and so we can avoid calling GetCount(),
which might have a non-trivial cost, completely.
2018-09-30 00:38:26 +02:00
Vadim Zeitlin
141d7b826d Fix weird indentation in X11 display code
No real changes.
2018-09-30 00:38:26 +02:00
Vadim Zeitlin
587a510028 Remove unnecessary wxUSE_DISPLAY preprocessor checks
Most of the methods of wxDisplay are always available, they just only
support primary display when wxUSE_DISPLAY==0, so there is no need to
check for wxUSE_DISPLAY before using them as they already contain the
only possible fallback anyhow and such checks are useless.

This incidentally closes #18115, due to removing "#if wxUSE_DISPLAY"
around wx/display.h inclusion.
2018-09-30 00:38:26 +02:00
Vadim Zeitlin
bac28b95cd Move wx/display_impl.h to wx/private/display.h
This shows more clearly that this header is private to wxWidgets and
can't be included by user code.

No real changes.
2018-09-30 00:38:26 +02:00
Lauri Nurmi
829f181ccd Get preferred UI languages from the LANGUAGE variable on *nix
Obey the LANGUAGE environment variable (if set), which is GNU
gettext's primary way of determining language preference. Apparently
ignored by wx until now, even though wx attempts to be a
reimplementation of GNU gettext.

The LANGUAGE variable may contain a list of preferred languages,
so use that list to find the best translation.

GNU gettext has supported multiple preferred languages since forever
(at least 15 years), and therefore it is odd that this wasn't already
implemented in 01f953efb2. Instead,
it was implied that Unix does not support such. (Even if GNU is not
Unix, nothing stops a wxWidgets app supporting such nevertheless.)

Closes https://github.com/wxWidgets/wxWidgets/pull/948
2018-09-29 18:14:20 +02:00
Vadim Zeitlin
96ecfd8c77 Provide wxPGChoices ctor, Add(), Set() overloads taking wxStrings
Allow passing an array of wxStrings in addition to an array of wxChar*
strings.
2018-09-29 17:13:00 +02:00
Artur Wieczorek
f96c37eacc Preserve wxGraphicsContext settings while resetting the clipping
To reset the clipping there is necessary
to restore all CGContext settings so we need
to set them back to the previous values based
on the stored wxGraphicsContext attributes.
2018-09-27 22:57:41 +02:00