| CMakeLists.txt |
|
4414 |
- |
| cocoa.json |
|
28 |
- |
| images |
|
|
- |
| LICENSE.COCOA.txt |
|
1501 |
- |
| main.mm |
|
1020 |
- |
| qcocoa_plugin_pch.h |
|
566 |
- |
| qcocoaaccessibility.h |
Qt Cocoa Accessibility Overview
Cocoa accessibility is implemented in the following files:
- qcocoaaccessibility (this file) : QCocoaAccessibility "plugin", conversion and helper functions.
- qnsviewaccessibility : Root accessibility implementation for QNSView
- qcocoaaccessibilityelement : Cocoa accessibility protocol wrapper for QAccessibleInterface
The accessibility implementation wraps QAccessibleInterfaces in QCocoaAccessibleElements, which
implements the cocoa accessibility protocol. The root QAccessibleInterface (the one returned
by QWindow::accessibleRoot), is anchored to the QNSView in qnsviewaccessibility.mm.
Cocoa explores the accessibility tree by walking the tree using the parent/child
relationships or hit testing. When this happens we create QCocoaAccessibleElements on
demand.
|
2506 |
- |
| qcocoaaccessibility.mm |
|
19487 |
- |
| qcocoaaccessibilityelement.h |
|
984 |
- |
| qcocoaaccessibilityelement.mm |
Converts between absolute character offsets and line numbers of a
QAccessibleTextInterface. Works in exactly one of two modes:
- Pass *line == -1 in order to get a line containing character at the given
*offset
- Pass *offset == -1 in order to get the offset of first character of the
given *line
You can optionally also pass non-NULL `start` and `end`, which will in both
modes be filled with the offset of the first and last characters of the
relevant line.
|
47283 |
- |
| qcocoaapplication.h |
|
828 |
- |
| qcocoaapplication.mm |
|
5229 |
- |
| qcocoaapplicationdelegate.h |
|
1156 |
- |
| qcocoaapplicationdelegate.mm |
From the Cocoa documentation: "A good place to install event handlers
is in the applicationWillFinishLaunching: method of the application
delegate. At that point, the Application Kit has installed its default
event handlers, so if you install a handler for one of the same events,
it will replace the Application Kit version."
|
19592 |
- |
| qcocoabackingstore.h |
|
3066 |
- |
| qcocoabackingstore.mm |
|
26949 |
- |
| qcocoaclipboard.h |
|
1141 |
- |
| qcocoaclipboard.mm |
|
2145 |
- |
| qcocoacolordialoghelper.h |
|
789 |
- |
| qcocoacolordialoghelper.mm |
|
12316 |
- |
| qcocoacursor.h |
|
1059 |
- |
| qcocoacursor.mm |
|
13737 |
- |
| qcocoadrag.h |
to meet NSView dragImage:at guarantees, we need to record the original
event and view when handling an event in QNSView
|
1849 |
- |
| qcocoadrag.mm |
|
11297 |
- |
| qcocoaeventdispatcher.h |
|
4826 |
- |
| qcocoaeventdispatcher.mm |
Timers stuff
*************************************************************************** |
41143 |
- |
| qcocoafiledialoghelper.h |
|
1579 |
- |
| qcocoafiledialoghelper.mm |
|
29337 |
- |
| qcocoafontdialoghelper.h |
|
780 |
- |
| qcocoafontdialoghelper.mm |
|
11120 |
- |
| qcocoaglcontext.h |
|
1964 |
- |
| qcocoaglcontext.mm |
|
23628 |
- |
| qcocoahelpers.h |
|
6994 |
- |
| qcocoahelpers.mm |
!
Returns the view cast to a QNSview if possible.
If the view is not a QNSView, nil is returned, which is safe to
send messages to, effectivly making [qnsview_cast(view) message]
a no-op.
For extra verbosity and clearer code, please consider checking
that the platform window is not a foreign window before using
this cast, via QPlatformWindow::isForeignWindow().
Do not use this method solely to check for foreign windows, as
that will make the code harder to read for people not working
primarily on macOS, who do not know the difference between the
NSView and QNSView cases.
|
17379 |
- |
| qcocoainputcontext.h |
|
964 |
- |
| qcocoainputcontext.mm |
!
\class QCocoaInputContext
\brief Cocoa Input context implementation
Handles input of languages that support character composition,
for example East Asian languages.
\section1 Testing
\list
\o Select input sources like 'Kotoeri' in Language & Text Preferences
\o Compile the \a mainwindows/mdi example and open a text window.
\o In the language bar, switch to 'Hiragana'.
\o In a text editor control, type the syllable \a 'la'.
Underlined characters show up, indicating that there is completion
available. Press the Space key two times. A completion popup occurs
which shows the options.
\endlist
\section1 Interaction
Input method support in Cocoa is based on the NSTextInputClient protocol,
therefore almost all functionality is in QNSView (qnsview_complextext.mm).
|
5124 |
- |
| qcocoaintegration.h |
|
4208 |
- |
| qcocoaintegration.mm |
|
17383 |
- |
| qcocoaintrospection.h |
|
582 |
- |
| qcocoaintrospection.mm |
|
1972 |
- |
| qcocoamenu.h |
|
2744 |
- |
| qcocoamenu.mm |
|
16804 |
- |
| qcocoamenubar.h |
|
1796 |
- |
| qcocoamenubar.mm |
internaCall |
16213 |
- |
| qcocoamenuitem.h |
|
2951 |
- |
| qcocoamenuitem.mm |
|
17134 |
- |
| qcocoamenuloader.h |
|
1147 |
- |
| qcocoamenuloader.mm |
|
10664 |
- |
| qcocoamessagedialog.h |
|
996 |
- |
| qcocoamessagedialog.mm |
Called from QDialogPrivate::setNativeDialogVisible() when the message box
is ready to be shown.
At this point the options() will reflect the specific dialog shown.
Returns true if the helper could successfully show the dialog, or
false if the cross platform fallback dialog should be used instead.
|
17187 |
- |
| qcocoamimetypes.h |
|
392 |
- |
| qcocoamimetypes.mm |
|
2744 |
- |
| qcocoanativeinterface.h |
|
1043 |
- |
| qcocoanativeinterface.mm |
|
2356 |
- |
| qcocoansmenu.h |
|
1414 |
- |
| qcocoansmenu.mm |
|
9324 |
- |
| qcocoascreen.h |
|
4366 |
- |
| qcocoascreen.mm |
Update the list of available QScreens, and the properties of existing screens.
At this point we rely on the NSScreen.screens to be up to date.
|
38987 |
- |
| qcocoaservices.h |
|
754 |
- |
| qcocoaservices.mm |
Callback from macOS that the application should handle a URL |
2014 |
- |
| qcocoasessionmanager.cpp |
|
1254 |
- |
| qcocoasessionmanager.h |
|
1100 |
- |
| qcocoasystemtrayicon.h |
|
1820 |
- |
| qcocoasystemtrayicon.mm |
|
11145 |
- |
| qcocoatheme.h |
|
2296 |
- |
| qcocoatheme.mm |
|
24723 |
- |
| qcocoavulkaninstance.h |
|
1234 |
- |
| qcocoavulkaninstance.mm |
|
2513 |
- |
| qcocoawindow.h |
|
9995 |
- |
| qcocoawindow.mm |
|
100240 |
- |
| qcocoawindowmanager.h |
|
646 |
- |
| qcocoawindowmanager.mm |
|
2967 |
- |
| qiosurfacegraphicsbuffer.h |
|
1223 |
- |
| qiosurfacegraphicsbuffer.mm |
|
5327 |
- |
| qmacclipboard.h |
|
2604 |
- |
| qmacclipboard.mm |
QMacPasteboard code
*************************************************************************** |
17822 |
- |
| qmultitouch_mac.mm |
|
8049 |
- |
| qmultitouch_mac_p.h |
|
1876 |
- |
| qnsview.h |
|
1454 |
- |
| qnsview.mm |
|
14507 |
- |
| qnsview_accessibility.mm |
|
3164 |
- |
| qnsview_complextext.mm |
Inserts the given text, potentially replacing existing text.
The text input management system calls this as a result of:
- A normal key press, via [NSView interpretKeyEvents:] or
[NSInputContext handleEvent:]
- An input method finishing (confirming) composition
- Pressing a key in the Keyboard Viewer panel
- Confirming an inline input area (accent popup e.g.)
\a replacementRange refers to the existing text to replace.
Under normal circumstances this is {NSNotFound, 0}, and the
implementation should replace either the existing marked text,
the current selection, or just insert the text at the current
cursor location.
|
35325 |
- |
| qnsview_dragging.mm |
nativeCursor = [NSCursor operationNotAllowedCursor];
break; |
11601 |
- |
| qnsview_drawing.mm |
This method is called by AppKit when layer-backing is requested by
setting wantsLayer too YES (via -[NSView _updateLayerBackedness]),
or in cases where AppKit itself decides that a view should be
layer-backed.
Note however that some code paths in AppKit will not go via this
method for creating the backing layer, and will instead create the
layer manually, and just call setLayer. An example of this is when
an NSOpenGLContext is attached to a view, in which case AppKit will
create a new layer in NSOpenGLContextSetLayerOnViewIfNecessary.
For this reason we leave the implementation of this override as
minimal as possible, only focusing on creating the appropriate
layer type, and then leave it up to setLayer to do the work of
making sure the layer is set up correctly.
|
14068 |
- |
| qnsview_gestures.mm |
|
5752 |
- |
| qnsview_keys.mm |
Determines if the text represents one of the "special keys" on macOS
As a legacy from OpenStep, macOS reserves the range 0xF700-0xF8FF of the
Unicode private use area for representing function keys on the keyboard:
http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/CORPCHAR.TXT
https://developer.apple.com/documentation/appkit/nsevent/specialkey
These code points are not supposed to have any glyphs associated with them,
but since we can't guarantee that the system doesn't have a font that does
provide glyphs for this range (Arial Unicode MS e.g.) we need to filter
the text of our key events up front.
|
14904 |
- |
| qnsview_menus.mm |
|
6419 |
- |
| qnsview_mouse.mm |
The reason for using this helper is to ensure that QNSView doesn't implement
the NSResponder callbacks for mouseEntered, mouseExited, and mouseMoved.
If it did, we would get mouse events though the responder chain as well,
for example if a subview has a tracking area of its own and calls super
in the handler, which results in forwarding the event though the responder
chain. The same applies if NSWindow.acceptsMouseMovedEvents is YES.
By having a helper as the target for our tracking areas, we know for sure
that the events we are getting stem from our own tracking areas.
FIXME: Ideally we wouldn't need this workaround, and would correctly
interact with the responder chain by e.g. calling super if Qt does not
accept the mouse event
|
29891 |
- |
| qnsview_tablet.mm |
!
\internal
Find the existing QPointingDevice instance representing a particular tablet or stylus;
or create and register a new instance if it was not found.
An instance can be uniquely identified by various properties taken from \a theEvent.
|
8086 |
- |
| qnsview_touch.mm |
|
3685 |
- |
| qnswindow.h |
|
1548 |
- |
| qnswindow.mm |
|
16078 |
- |
| qnswindowdelegate.h |
|
493 |
- |
| qnswindowdelegate.mm |
!
Overridden to ensure that the zoomed state always results in a maximized
window, which would otherwise not be the case for borderless windows.
We also keep the window on the same screen as before; something AppKit
sometimes fails to do using its built in logic.
|
3896 |
- |
| qt_attribution.json |
|
720 |
- |