Table Of Contents
Our input system is wide and simple at the same time. We are currently able to natively support :
- Windows multitouch events (pencil and finger)
- OS X touchpads
- Linux multitouch events (kernel and mtdev)
- Linux wacom drivers (pencil and finger)
All the input management is configurable in the Kivy
can easily use many multitouch devices in one Kivy application.
When the events have been read from the devices, they are dispatched through a post processing module before being sent to your application. We also have several default modules for :
- Double tap detection
- Decreasing jittering
- Decreasing the inaccuracy of touch on “bad” DIY hardware
- Ignoring regions
MotionEvent(device, id, args)¶
Abstract class that represents an input event (touch or non-touch).
- id: str
unique ID of the MotionEvent
- args: list
list of parameters, passed to the depack() function
Apply a transformation on x, y, z, px, py, pz, ox, oy, oz, dx, dy, dz
Copy some attribute to another touch object.
Depack args into attributes of the class
Return the distance between the current touch and another touch.
Return delta between last position and current position, in the screen coordinate system (self.dx, self.dy)
def on_touch_down(self, touch): touch.grab(self) def on_touch_move(self, touch): if touch.grab_current is self: # I received my grabbed touch else: # it's a normal touch def on_touch_up(self, touch): if touch.grab_current is self: # I receive my grabbed touch, I must ungrab it! touch.ungrab(self) else: # it's a normal touch pass
Returns True if the touch is a mousewheel scrolling
New in version 1.6.0.
Move the touch to another position
Return the initial position of the touch in the screen coordinate system (self.ox, self.oy)
Pop attributes values from the stack
Return the previous position of the touch in the screen coordinate system (self.px, self.py)
Push attribute values in attrs onto the stack
scale_for_screen(w, h, p=None, rotation=0, smode='None', kheight=0)¶
Scale position for the screen
Return the position in the 0-1 coordinate system (self.sx, self.sy)
Ungrab a previously grabbed touch
Base class for a provider.
Start the provider. This method is automatically called when the application is started and if the configuration uses the current provider.
Stop the provider.
Update the provider and dispatch all the new touch events though the dispatch_fn argument.
MotionEvent factory is a class that registers all availables input factories. If you create a new input factory, you need to register it here:
Get a provider class from the provider id
Get a list of all available providers
Register a input provider in the database
- Input Postprocessing
- Android Joystick Input Provider
- Auto Create Input Provider Config Entry for Available MT Hardware (linux only).
- Common definitions for a Windows provider
- Leap Motion - finger only
- Mouse provider implementation
- Native support for HID input from the linux kernel
- Native support for Multitouch devices on Linux, using libmtdev.
- Native support of MultitouchSupport framework for MacBook (MaxOSX platform)
- Native support of Wacom tablet from linuxwacom driver
- Support for WM_PEN messages (Windows platform)
- Support for WM_TOUCH messages (Windows platform)
- TUIO Input Provider
- Android Joystick Input Provider
- Input recorder
- Motion Event
- Motion Event Factory
- Motion Event Provider
- Motion Event Shape