Commit Graph

61934 Commits

Author SHA1 Message Date
Václav Slavík
b1a19e6b6c Improve wxChoice::GetBestSize on macOS
Better match native sizing to fit the content by reducing the extra spacing.
2016-11-07 17:52:44 +01:00
Paul Cornett
b47319d515 Avoid calling ScreenToClient() on invisible window while processing wxSetCursorEvent 2016-11-05 19:44:45 -07:00
Paul Cornett
9c3900e40d Cleaner fix for using deleted widget in idle callback
Use a slightly higher idle priority so callback runs before TLW is deleted,
and ref the widget just to make sure it doesn't disappear. Avoids accessing
de-allocated memory.
2016-11-05 17:27:57 -07:00
Paul Cornett
e3f117c4f3 Avoid assert dialog in ClientToScreen()/ScreenToClient(), it's just too annoying 2016-11-03 09:38:39 -07:00
Paul Cornett
ebfa5a4128 Make sure all pointers to destructed window are removed from size revalidate list 2016-11-03 09:22:34 -07:00
Paul Cornett
bca7313499 Fix paint clipping region with GTK+ >= 3.20
Apparently the clip is no longer set properly. Fixes wxDC::Clear() overwriting
areas outside the window. Problem can be seen in the Audacity toolbars.
2016-11-03 09:14:30 -07:00
Václav Slavík
095c958525 Fix ~wxDataViewCtrl assert when running under JAWS
Accessible object must be destroyed as soon as possible, because
otherwise a screen reader may try to query it before wxWindow destructor
removed it, but after ~wxDataViewCtrl destructor finished. The
wxACC_EVENT_OBJECT_DESTROY notification causes exactly that under JAWS.
2016-11-03 16:27:28 +01:00
Paul Cornett
101c43d0aa Partial workaround for stale styling information with GTK3
We can trigger size events when we know the style cache has been updated.
See #16088
2016-11-01 23:18:26 -07:00
Paul Cornett
3b4ee5a031 Fix some sizing problems with GTK3
A change in size-allocate handling with GTK+ 3.20 exposed a flaw in our method for
deferring queue-resize requests. Using an idle callback to process the requests
did not work well with the GdkFrameClock-based system used since GTK+ 3.8. Using
the "check-resize" signal works better. Also with GTK+ >= 3.20, it seems necessary
to manually work the queue-resize up to the TLW, as otherwise the resized widgets
don't get updated without an external size-allocate event.
See #17585
2016-10-31 11:12:37 -07:00
Paul Cornett
83012dc082 avoid uninitialized result from size_request with Ubuntu, see #17707 2016-10-31 09:32:20 -07:00
Václav Slavík
c146103c64 Make wxStatusBar look (more) native on macOS
Significantly improve the appearance of wxStatusBar on macOS, both the
modern flat look since 10.10 and older versions. Increase the size to
match native bottom bars, center the text inside it, use appropriate
background and border colors and the same gray for the text as Finder
uses, correctly change the appearance for inactive windows.

This is still far from ideal - that would be using
setContentBorderThickness:forEdge: and rendering the text atop it. But
that seems to be much easier said than done due to interference from
other parts of wx. This is much better than the previous state.
2016-10-31 14:31:11 +01:00
Lauri Nurmi
9a90816f0b Remove false information about static arrays and wxTRANSLATE
It is not forbidden to have function calls in static initializers, and
such code compiles fine, contrary to claims made by the text. Explain the
real reason why wxTRANSLATE is necessary.
2016-10-31 09:34:41 +01:00
Lauri Nurmi
49137ba1e1 Use a better example for wxTRANSLATE
Since even the text itself acknowledged the example is bad, use another
example that is not bad.
2016-10-31 09:34:41 +01:00
Václav Slavík
d3924b7d41 Report value as percent in wxDataViewProgressRenderer
GetAccessibleDescription() should return the value as percents, not a
raw number, because that's what m_value means.
2016-10-31 09:29:21 +01:00
Paul Cornett
240f826185 Fix a sizing problem with GTK3 when wxPizza is the child of a native GTK widget
See #17704
2016-10-30 17:33:28 -07:00
Artur Wieczorek
9b8f46df36 Implement wxDataViewCustomRenderer::GetAccessibleDescription()
This is a default description of the renderer content (for accessibility purposes).
Thanks to this implementation there is not necessary to override GetAccessibleDescription() in the renderers derived from wxDataViewCustomRenderer.
2016-10-30 20:59:51 +01:00
Artur Wieczorek
fb219aaf35 Add accessibility event notifications to wxDVC 2016-10-30 20:49:56 +01:00
Artur Wieczorek
eeaa613705 Fix wxDataViewCtrlAccessible::DoDefaultAction
Calling wxDataViewTreeNode::ToggleOpen() is not sufficient to actually expand/collapse the item.
Calls to wxDataViewMainWindow::Expand()/Collapse() are necessary to do so.
2016-10-30 20:41:08 +01:00
Artur Wieczorek
da370db5ed Return S_OK from wxIAccessible::accDoDefaultAction() if operation succeeded
S_OK should be returned (not E_FAIL) if wxAccessible::DoDefaultAction() returns wxACC_OK.
2016-10-30 20:40:24 +01:00
Václav Slavík
db0f4efb4f Fix unused variable warning in wxFontPanelDelegate 2016-10-28 13:59:40 +02:00
Paul Cornett
3b27f7cebc Fix memory leaks of cairo_t caused by ca7670d2fc, see #17697 2016-10-24 14:20:13 -07:00
Artur Wieczorek
fa4b077421 Remove wxDataViewTreeCtrlAccessibilty class
Since wxDataViewCtrlAccessible::GetName() calls to wxDataViewIconTextRenderer::GetAccessibleDescription() to directly retrieve the content of the renderer, there is no need to override wxDataViewCtrlAccessible::GetName() in order to get a proper content of the renderer in wxDataViewTreeCtrl.
2016-10-24 22:22:31 +02:00
Artur Wieczorek
dbb2781199 Fix wxDataViewCtrlAccessible::GetName() and GetDescription()
Call wxDataViewRenderer::GetAccessibleDescription() to retrieve the content of the renderer instead of using a raw item value taken from wxDataViewModel. GetAccessibleDescription() returns a renderer-aware text dedicated for accessibility purposes and hence text presented in GetName() and GetDescription() is accurate in contrary to the text deduced from the item value.
2016-10-24 22:12:53 +02:00
Artur Wieczorek
bc8728b901 Implement MyCustomRenderer::GetAccessibleDescription() in dataview sample
If wxUSE_ACCESSIBILITY is set to 1, this method has to be overridden for all custom renderers.
2016-10-24 21:55:10 +02:00
Artur Wieczorek
d9fbde805b Implement wxDataViewRenderer::GetAccessibleDescription() method
The purpose of this method is to provide a textual description of the renderer's content to the class implementing accessibility framework in wxDVC (wxDataViewCtrlAccessible).
It is exposed if wxUSE_ACCESSIBILITY is set to 1.
2016-10-24 21:52:22 +02:00
Vadim Zeitlin
c9ec981a28 Fix MinGW builds by defining HDS_NOSIZING if it's not defined
Blind fix for compilation failures in MinGW builds after the changes of
92a1f643ba which started using HDS_NOSIZING
apparently not present in this compiler SDK headers.
2016-10-21 22:54:46 +02:00
Václav Slavík
a6be5bdae3 Fix wxGTK wxDataViewRenderers' alignment handling
Don't apply alignment to native controls in SetAlignment() method, where
it may not be known yet due to column-to-renderer inheritance if
wxDVR_DEFAULT_ALIGNMENT is used (the default). Move such code to
GtkUpdateAlignment() (which was made virtual) in all renderers.

This fixes unintended right-aligning of columns with GTK+ 2 when default
alignment was used.
2016-10-21 17:50:34 +02:00
Václav Slavík
552940b547 Change wxOSX ShowWithEffect() delay to 200ms
Change the animation delay from ridiculously long (half a second) to
somewhat more reasonable 200ms to bring it in line with Windows per the
comment in this code. Feels more similar to native macOS animations now
too.
2016-10-21 17:44:24 +02:00
Václav Slavík
7546989c44 Fix wxMarkupParserAttr's unwinding of colors
Fix the logic for restoring previous span's colors to account for the
possibility of spans that don't change the color, such as in "<i><span
color='red'>...</span></i>foo". Previously, "foo" would always be
rendered black, because unwinding the attributes stack would encounter
an invalid color (which has r=g=b=0) and set it, disregarding and
preexisting attributes.

Because there's code in there that checks whether the attributes are
valid, we need to keep track of both the actually specified attributes
and the currently effective ones, and use the latter for restoration.
2016-10-21 17:36:32 +02:00
Václav Slavík
d9df970573 Don't use custom colors in selected wxDVC controls (wxOSX)
Don't use custom color attributes or color markup for rendering of
selected items' text in wxOSX's wxDataViewCtrl and use the selection
text color instead. This is consistent with the other ports and should
be done to improve readability (in absence of selection-specific
attributes).
2016-10-21 17:36:32 +02:00
Václav Slavík
5e5ffad0b8 Respect item font when rendering markup (wxOSX)
Respect per-item attributes and namely the font (which may differ from
the control's font) when rendering markup items in wxDataViewCtrl.
2016-10-21 17:36:32 +02:00
Václav Slavík
58fc33d7c2 Support ellipsizing of markup text in wxDVC
Fix wxDataViewTextRenderer to at least partially respect ellipsize mode
when using markup text. Generic implementation only supports
wxELLIPSIZE_END and wxELLIPSIZE_NONE at the moment, but the wxOSX and
wxGTK ones have full support.
2016-10-21 17:36:32 +02:00
Václav Slavík
92a1f643ba Set HDS_NOSIZING in wxHeaderCtrl when appropriate
Native Windows header control doesn't have the ability to show
per-column resizing cursor and it's only possible to enable or disable
it for the entire control, so we can't fully support the wxHeaderColumn
API. But we can at least hide the resizing cursor if none of the columns
are resizable.
2016-10-21 17:08:54 +02:00
Vadim Zeitlin
0afb95d2f4 Escape double dashes in Doxygen input to preserve them
By default double dashes are converted to en-dashes in the output (and triple
ones -- to em-dashes), but this is undesirable when double dashes are used not
as a punctuation mark but in command line options or as C++ decrement
operator, so escape them to avoid such conversion in this case.
2016-10-20 21:47:37 +02:00
Václav Slavík
73f6bf7b6f Allow wxDataViewCtrl to gain focus in wxOSX
Fix numerous focus-handling bugs in wxOSX in combination with
NSScrollView (which cannot get focus by itself and which was already
treated specially in many, but not all, places), including

- inability to set the focus
- loss of wxEVT_SET_FOCUS events
- loss of wxWindow<->NSView association after clearing wxDVC columns
2016-10-19 17:11:49 +02:00
Václav Slavík
f3b8dac3b7 Fix wxNullVariant handling in wxDataViewBitmapRenderer
In both the generic and GTK+ implementations, setting the value of a
bitmap column to wxNullVariant resulted in the bitmap, if set for some
rows, being repeated on the rows with null value.
2016-10-19 16:46:54 +02:00
TcT2k
065135adcc Remove QTKit support from wxMediaCtrl for OS X
QTKit has been removed from OS X 10.12 SDK.
QTKit has been superseded by AVFoundation since OS X 10.7.
Since wxWidgets >= 3.1 requires 10.7 anyway there is no reason to support the old API.

Additionally the AVFoundation implementation may use AVKit (available since 10.9). It will be used when available and the deployment target is met.

Closes https://github.com/wxWidgets/wxWidgets/pull/337
2016-10-19 13:56:29 +02:00
Václav Slavík
ec45fc5ae0 Return IAccessible from GetIAccessibleStd()
There's no reason to return an untyped void* pointer when we can
forward-declare IAccessible.
2016-10-19 10:36:07 +02:00
Vadim Zeitlin
dda1c7cfd4 Merge branch 'fix_osx_qtkit' of https://github.com/TcT2k/wxWidgets
Compilation fix for OS X 10.12 SDK.

Closes https://github.com/wxWidgets/wxWidgets/pull/336
2016-10-18 00:28:21 +02:00
JulianSmart
682d53fdaa Use correct selection after editing cell properties 2016-10-17 12:42:00 +01:00
JulianSmart
7505ccfd6d Find focus for comboboxes 2016-10-17 12:41:58 +01:00
Tobias Taschner
ce7bf5e539 Add typecast for C++11 compilation of OS X wxMediaCtrl
When compiling in C++11 mode the typecast of AVPlayerStatus in the callback is required to avoid a compiler error.
2016-10-17 11:44:16 +02:00
Tobias Taschner
281610142b Fix building wxMediaCtrl with OS X 10.12 SDK
Since OS X Sierra 10.12 QTKit has been removed. wxMediaCtrl for OS X already had a fallback to AVFoundation implemented. This makes sure this will be used and the correct media Frameworks are used for linking.
2016-10-17 11:29:48 +02:00
Artur Wieczorek
cfe0eaa7f2 Create wxAccessible object on demand in wxDVC
Create wxAccessible objects only in response to calls to GetOrCreateAccessible() to save resources.
2016-10-16 23:48:27 +02:00
Václav Slavík
90e1769569 Add API to control OS X wxTextCtrl’s smart behavior
Allow the user to customize smart quotes and dashes substutions on OS X
and also provide the OSXDisableAllSmartSubstitutions() method for
disabling them all at once.
2016-10-16 16:49:18 +02:00
Václav Slavík
3028fd40a0 Re-enable automatic substitutions in wxTextCtrl on OS X
This reverts ill-advised commits
c07523734f and
8d42890df4 that disabled native OS X
behavior of substituting dashes and quotes with typographically correct
characters if the user has this feature enabled.

This was a bad idea for two reasons:

1. It made wx applications behave non-natively, and thus be worse, in a
   highly noticeable area.

2. It made it impossible for applications that want to behave correctly
   to restore the native behavior, because once
   setAutomaticDashSubstitutionEnabled or
   setAutomaticQuoteSubstitutionEnabled is called (as wxTextCtrl
   constructor does), it's no longer possible to obtain its original,
   default setting.

It's not better to disable native functionality by default, it's better to
be native and make customizations possible. wxWindow API exposes access
to the native control and if an application desires to disable
substitution behavior, it can easily do so from user code.

See also #186 and #241.
2016-10-16 16:49:18 +02:00
Artur Wieczorek
d8b2da0334 Remove wxUSE_VARIANT guards
wxDataViewCtrl requires wxVariant so these guards are not necessary.
2016-10-15 21:02:05 +02:00
Artur Wieczorek
d5880dcfd9 Make output string localization-friendly 2016-10-15 21:02:04 +02:00
Vadim Zeitlin
ca3e63656c Remove unwanted flag from sizer in the help sample
This resulted in an assert failure as wxALIGN_CENTER_VERTICAL has no chance of
working for an element of a vertical wxBoxSizer.
2016-10-15 13:41:31 +02:00
Artur Wieczorek
a88cdfb49b Make strings localization-friendly
Reorganize string literals and add comments to make string more friendly  for translators.
2016-10-14 23:59:44 +02:00