Commit Graph

265 Commits

Author SHA1 Message Date
Vadim Zeitlin
842dd1cfd9 Add wxWindow::EnableTouchEvents()
Don't request touch event generation for all windows by default, this
has an inherent overhead and is not needed for 99% of the application
windows, so require calling EnableTouchEvents() explicitly to do it
instead.

Note that this requires properly initializing gesture recognizers in
wxOSX now that they're not always allocated, otherwise releasing them
when destroying the window would crash.
2017-11-22 02:24:24 +01:00
Vadim Zeitlin
bb2887930f Use wxPoint instead of (x,y) pair in wxPanGestureEvent
Using higher level objects makes the code generating and using this
event shorter and more clear.
2017-11-21 17:45:34 +01:00
prashantkn94
261b04b5a3 Merge multi-touch gestures event branch
This is a squashed commit of the SOC2017_GESTURES branch from
https://github.com/prashantkn94/wxWidgets.git

Closes https://github.com/wxWidgets/wxWidgets/pull/551
2017-11-17 18:06:06 +01:00
Artur Wieczorek
f34a6253c7 Fix compilation with wxUSE_ACCEL==0 2017-10-08 10:38:54 +02:00
Stefan Csomor
37191f6f16 Only set font color if explicitly set
Otherwise eg the default button doesn't get its white font color.
2017-09-07 19:00:43 +02:00
Artur Wieczorek
723650d51d Honour text alignment while formatting window label
Take into account text alignment while formatting NSAttributedString containing the text of the label.

Closes #17933.
2017-08-03 11:57:47 +02:00
Vadim Zeitlin
de3087c0de Tab navigation improvements for wxOSX
Closes https://github.com/wxWidgets/wxWidgets/pull/493
2017-07-16 15:52:38 +02:00
Steve Browne
31ba2d4ca3 Fix setting foreground color for several controls in wxOSX
This allows setting color of wxStaticBox, wxCheckBox, wxRadioButton and
any other controls that use NSBox and NSButton to work.

Closes #16284.

Closes https://github.com/wxWidgets/wxWidgets/pull/489
2017-07-11 23:51:30 +02:00
Vadim Zeitlin
a5bcf1dafd Fix wxOSX view comparison callback signature for older SDKs
Take NSView* in the callback used by [NSView sortSubviewsUsingFunction:context:]
only when using 10.12 SDK, but not when using earlier ones, as the callback
was still taking just "id" in them.
2017-07-11 23:16:28 +02:00
Stefan Csomor
e2e99f5c91 removing deprecated APIs 2017-06-15 20:51:14 +02:00
Stefan Csomor
2f4b249fcf analyzer warning: setAttributedTitle has copy semantics, therefore we have to release what we allocated 2017-06-07 14:05:30 +02:00
Stefan Csomor
4312de64c7 analyzer warnings: assign [super init] to self and check for nil 2017-06-07 10:21:18 +02:00
Steve Browne
8bca6deda3 Properly handle tab navigation for most controls on wxOSX #17341. 2017-06-05 01:10:53 -04:00
Václav Slavík
1a1a2ffdf8 Don't reset firstResponder when a window is deactivated
Don't call makeFirstResponder:nil from windowDidResignKey: because it's
not a native behavior and subtly breaks some things (e.g. paste managers
or keyboard switched under some settings).

This was done to provide the illusion of Windows-like focus behavior
when a TLW is deactivated. macOS separates the concept of active ("key")
window and focus ("first responder") within it and it's possible and
normal to have the latter assigned even in inactive (non-key) windows.
wxOSX reset the responder to trigger wxEVT_KILL_FOCUS.

Instead, keep the first responder untouched and only run wx-side code to
handle focus lost as well as focus set in windowDidBecomeKey: This would
preserve behavior compatibility with other ports, while also playing
nice with macOS.
2017-01-11 12:42:42 +01:00
Vadim Zeitlin
dcb1229f41 Don't send mouse events to disabled windows in wxOSX
Disabled controls are not supposed to accept any input, so don't send any
mouse events to them.

This fixes the behaviour of wxSlider which could be moved (and generated the
corresponding events) even when it was disabled.

Closes #17194.
2016-11-22 02:10:40 +01: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
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
Vadim Zeitlin
bc4798c7df Avoid warnings about incompatible pointers with Xcode 7
Use __kindof NSView instead of id when __kindof is supported to avoid warnings
about casting between incompatible point types.
2016-03-20 19:26:14 +01:00
Vadim Zeitlin
5300caf385 No significant changes, just get rid of hard TABs
Replace TABs with spaces, get rid of trailing whitespace.
2016-03-20 19:18:46 +01:00
Vadim Zeitlin
e4c6385824 Get rid of pre-Leopard (10.5) compatibility code in wxOSX
Just use NSComparisonResult directly, we don't care about anything < 10.7.
2016-03-20 19:17:08 +01:00
Daniel Kulp
cb3ac0e6fc Support underlined/strikethrough fonts for window labels in wxOSX
Use setAttributedTitle: to take into account font underline/strikethrough
attributes when using it for the window label.

See https://github.com/wxWidgets/wxWidgets/pull/187
2016-02-22 23:19:18 +01:00
Vadim Zeitlin
bcd16394df Use wxColour::OSXGetNSColor() instead of reproducing it
No real changes, just simplify wxOSX code by using the existing
wxColour::OSXGetNSColor() method instead of reproducing it in many places.
2015-11-26 23:54:28 +01:00
Tobias Taschner
8bd14648cd Remove Cocoa code and precompiler defines targeting OS X versions prior to OS X 10.7. 2015-08-07 16:25:28 +02:00
Tobias Taschner
ab065e1ad9 Removed OS X code targeted at versions prior to OS X 10.7.
At least 10.7 is required in 3.1 anyhow, so don't check for it needlessly.

See https://github.com/wxWidgets/wxWidgets/pull/55
2015-08-02 03:05:51 +02:00
John Roberts
4f69410cd8 Fix generating events for WXK_NUMPAD_ENTER in wxOSX.
This allows to properly detected numeric keypad "Enter" key in the code,
notably in wxTextCtrl inside wxWidgets itself.

See #16415.
2015-07-18 02:29:17 +02:00
Dimitri Schoolwerth
3f94084e29 Add DND move support on OS X
The drag mask passed by Cocoa is conservative and doesn't include
NSDragOperationMove which was added later. Override
draggingSourceOperationMaskForLocal to include that flag if it's wanted.

This also moving of text the default behaviour.

Closes #13819.
Closes #14726.
2015-05-27 20:20:17 +04:00
Dimitri Schoolwerth
143a8203bd Fix dragging always resulting in wxDragLink on OS X
Commit f40e8bf uncovered a problem with dragging where when the
NSDragOperationLink bit is set in the drag mask (which by default always
is the case) the result is a wxDragLink operation instead of wxDragCopy
or wxDragMove. To fix this give priority to move and copy instead when
converting the drag mask to a wxDrag result.

This fixes copying through DND in wxRichTextCtrl.

See #13819.
2015-05-27 20:20:12 +04:00
Dimitri Schoolwerth
f40e8bff69 Fix mouse cursor not changing on OS X during DND
The cursor almost always looks like the one used for copying. Add
missing breaks in a switch statement to fix this.

See #14726.
2015-05-27 20:10:39 +04:00
Dimitri Schoolwerth
ddbfe5720e Refactor some DND code in wxOSX/Cocoa
To reduce duplication of the same changes, merge the nearly identical
wxWidgetCocoaImpl::draggingEntered and draggingUpdated into private
function wxOnDraggingEnteredOrUpdated.
2015-05-27 19:08:22 +04:00
ARATA Mizuki
a266a0a446 Generate correct wxEVT_CHAR for non-BMP characters in wxOSX.
Since [NSString characterAtIndex:] return UTF-16 values, it can't be used as a
"character", convert the entire NSString to wxString and iterate over it to
obtain the real characters that should be sent in wxEVT_CHAR events.

Closes #16979.
2015-05-09 18:18:12 +02:00
Dimitri Schoolwerth
8f8d58d193 Use wx-prefixed macros throughout the repository.
Change {DECLARE,IMPLEMENT}_*CLASS and {DECLARE,BEGIN,END}_EVENT_TABLE
occurrences to use the wx-prefixed version of the macros.
2015-04-23 22:00:35 +04:00
Steve Browne
7f0963dcf7 Implement wxWindow::Disable() for non-native controls in wxOSX.
Previously disabling generic window simply didn't do anything.

Fix this by explicitly refusing to generate mouse/keyboard events for it.

Closes #13155.
2015-03-12 13:37:17 +01:00
Vadim Zeitlin
ea47af08cb Add wxEVT_MAGNIFY mouse event.
Currently this is implemented for wxOSX only.

Closes #14322.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78274 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-16 13:59:26 +00:00
Tim Kosse
1124c57a6d Revision 59305 broke click count adjustment with the result that a right-click after a left-click is reported as double-click.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77492 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-08-28 12:29:21 +00:00
Vadim Zeitlin
a8d5d7cdba Don't assert in wxOSX if a shaped window doesn't define a valid shape.
A window with wxFRAME_SHAPED style can still not defined any valid shape
actually, in which case wxFRAME_SHAPED should be just ignored.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76681 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-06-10 00:38:38 +00:00
Stefan Csomor
1b3cba17e8 guarding against deleted 'self' during the mouse handler, setting peer ptr to NULL during destruction
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76579 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-05-19 16:58:18 +00:00
Stefan Csomor
2b99f92872 refactoring to common code for focus set and lost events, so that changes can be made a single place, see #14269
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76575 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-05-18 10:44:24 +00:00
Paul Cornett
3dcb256bea build fix for wxUSE_DRAG_AND_DROP==0
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76310 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-04-11 04:48:37 +00:00
Stefan Csomor
a20a842791 getting rid of clang warning due to variable size array
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76239 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-03-31 15:46:05 +00:00
Stefan Csomor
ebd4460c42 fixing extra semicola
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76228 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-03-31 06:02:58 +00:00
Stefan Csomor
633b5c691b make sure a frozen control calls a native 'thaw' on the tlw during destruction, otherwise tlws might end up unresponsive, see #16011
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75966 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-02-21 19:05:22 +00:00
Stefan Csomor
87eb540094 moving special characters handling for EVT_CHAR into SetupKeyEvent, fixes #15784
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75489 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-12-29 11:49:40 +00:00
Stefan Csomor
45bb71b485 routing to common code, see #15784
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75488 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-12-29 10:39:12 +00:00
Stefan Csomor
26f22d609f copy over all modifiers for single char events, fixes shift-tabs for single line controls, see #15784
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75487 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-12-29 09:04:13 +00:00
Stefan Csomor
b0a5f5ac18 - one single method for sending char events from a NSString
- adding insertText override for multiline fields as char events went missing after r74945

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75405 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-12-21 14:59:50 +00:00
Stefan Csomor
a74dfdb74d fixing non-unicode compile
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75200 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-11-16 07:11:35 +00:00
Vadim Zeitlin
8155d71a7d Improve handling of keyboard entry using IME.
Pass the keyboard events to the IME before generating our events for them, the
IME may need them for its own use.

Closes #15384.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74945 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-10-05 23:30:45 +00:00
Stefan Csomor
a672d82a64 first attempt at adding the minimal set needed for dead-key support, see #15345
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74613 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-28 17:36:23 +00:00
Vadim Zeitlin
3f66f6a5b3 Remove all lines containing cvs/svn "$Id$" keyword.
This keyword is not expanded by Git which means it's not replaced with the
correct revision value in the releases made using git-based scripts and it's
confusing to have lines with unexpanded "$Id$" in the released files. As
expanding them with Git is not that simple (it could be done with git archive
and export-subst attribute) and there are not many benefits in having them in
the first place, just remove all these lines.

If nothing else, this will make an eventual transition to Git simpler.

Closes #14487.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-26 16:02:46 +00:00
Stefan Csomor
5b0c463561 adapt to wx conventions for scroll wheel differences between horizontal and vertical directions, fixes #15269
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74487 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-11 19:31:21 +00:00