Unified Pointer Class for Cross-Device Input Handling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Developers face challenges in writing software that supports diverse human interface devices due to varying data reporting capabilities and coordinate systems, making it difficult to implement unified input handling and gesture recognition across different devices and frameworks.
Innovation Solution
A unified windowing environment that generates input pointers for raw inputs from various human input devices, using a common interface and data types to communicate with applications, allowing transparent handling of inputs from different devices and enabling device-independent pointer messages.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If developers write different sections of code to support different types of devices, then device compatibility is improved, but code complexity increases
Solution Approach 1:
The patent implements a universal pointer class that can handle multiple types of input devices (mouse, touch screen, pen, trackpad) through a single unified interface. The pointer class abstracts device-specific variations, allowing one piece of code to work with all pointer devices without requiring device-specific code sections, thus resolving the contradiction between device compatibility and code complexity.
2Measurement precision
If developers keep track of multiple coordinate systems, then accuracy of input handling is improved, but development time increases
Solution Approach 1:
The patent introduces a coordinate transformation intermediary that automatically converts between different coordinate systems (screen coordinates, client area coordinates, control coordinates). This intermediary layer handles the complexity of coordinate system conversions, providing accurate input handling while reducing development time by eliminating the need for developers to manually track and convert between multiple coordinate systems.
3Measurement precision
If gesture recognizers work on full set of inputs, then gesture recognition accuracy is improved, but flexibility for custom gesture detection decreases
Solution Approach 1:
The patent segments the gesture recognition process into two independent layers: a system-level gesture recognizer that works on the full set of inputs for accurate system gestures, and a custom gesture detector that operates on processed pointer events for application-specific gestures. This segmentation allows both full-input gesture recognition and custom gesture detection to coexist without compromising either accuracy or flexibility.
4Adaptability or versatility
If legacy applications use traditional mouse messages, then backward compatibility is improved, but support for modern unified pointer interfaces decreases
Solution Approach 1:
The patent creates a copy/translation layer that converts unified pointer class messages into traditional mouse messages for legacy applications. This copying mechanism allows legacy applications to continue using traditional mouse messages while the system internally uses the modern unified pointer interface, maintaining backward compatibility without requiring legacy applications to adopt new interfaces.
Data Source
AI summary
Embodiments relate to a computing device having storage, a processor, a display, a first human input device, and a second human input device, where the first human input device is in a first category of human input devices and the second human input device is in a second category of human input devices. The computing device may perform a process involving executing a windowing environment that manages windows of applications executing on the computing device. The windowing environment may receive raw inputs from the first and second human input devices and in turn generate input pointers for the raw inputs, respectively. The input pointers may be or include instances of an input pointer class implemented by the windowing environment, the pointer class used by the windowing environment for arbitrary different types of human input pointer devices including the first human input device and the second human input device.


