Touch event model
First Claim
1. A method for handling touch events at a multi-touch device, comprising:
- displaying a user interface including a plurality of views, each view corresponding to a respective portion of the user interface;
executing one or more software elements, each software element being associated with a particular view;
associating a multi-touch flag with a first view of the plurality of views;
associating an exclusive touch flag with a respective view comprising the first view or a second view, distinct from the first view, of the plurality of views;
receiving two or more concurrent touches in at least the respective view and another view of the plurality of views;
sending one or more touch events, each touch event describing a received touch of the two or more concurrent touches, to one or more of the software elements associated with the views at which the two or more concurrent touches were received based on at least one of the values of the multi-touch and exclusive touch flags;
in accordance with a determination that the multi-touch flag associated with the first view indicates that the first view is a multi-touch view, enabling the first view to receive multiple concurrent touch events within the first view;
in accordance with a determination that the multi-touch flag associated with the first view indicates that the first view is not a multi-touch view, conditionally allowing the first view to receive only one touch event describing a respective touch, of the two or more concurrent touches, within the first view;
in accordance with a determination that the exclusive touch flag associated with the respective view indicates that the respective view is an exclusive touch view, preventing any view other than the respective view from receiving touch events while the respective view is receiving a touch event; and
,in accordance with a determination that the exclusive touch flag associated with the respective view indicates that the respective view is not an exclusive touch view, conditionally allowing views other than the respective view to receive touch events while the respective view is receiving a touch event.
1 Assignment
0 Petitions
Accused Products
Abstract
Embodiments of the present invention are directed to methods, software, devices and APIs for defining touch events for application level software. Furthermore, some embodiments are directed to simplifying the recognition of single and multiple touch events for applications running in multi-touch enabled devices. To simplify the recognition of single and multiple touch events, each view within a particular window can be configured as either a multi-touch view or a single touch view. Furthermore, each view can be configured as either an exclusive or a non-exclusive view. Depending on the configuration of a view, touch events in that and other views can be either ignored or recognized. Ignored touches need not be sent to the application. Selectively ignoring touches can allow for simpler software elements that do not take advantage of advanced multi touch features to be executed at the same device and time as more complex software elements.
-
Citations
40 Claims
-
1. A method for handling touch events at a multi-touch device, comprising:
-
displaying a user interface including a plurality of views, each view corresponding to a respective portion of the user interface; executing one or more software elements, each software element being associated with a particular view; associating a multi-touch flag with a first view of the plurality of views; associating an exclusive touch flag with a respective view comprising the first view or a second view, distinct from the first view, of the plurality of views; receiving two or more concurrent touches in at least the respective view and another view of the plurality of views; sending one or more touch events, each touch event describing a received touch of the two or more concurrent touches, to one or more of the software elements associated with the views at which the two or more concurrent touches were received based on at least one of the values of the multi-touch and exclusive touch flags; in accordance with a determination that the multi-touch flag associated with the first view indicates that the first view is a multi-touch view, enabling the first view to receive multiple concurrent touch events within the first view; in accordance with a determination that the multi-touch flag associated with the first view indicates that the first view is not a multi-touch view, conditionally allowing the first view to receive only one touch event describing a respective touch, of the two or more concurrent touches, within the first view; in accordance with a determination that the exclusive touch flag associated with the respective view indicates that the respective view is an exclusive touch view, preventing any view other than the respective view from receiving touch events while the respective view is receiving a touch event; and
,in accordance with a determination that the exclusive touch flag associated with the respective view indicates that the respective view is not an exclusive touch view, conditionally allowing views other than the respective view to receive touch events while the respective view is receiving a touch event. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for recognizing one or more touch events at a multi-touch device, comprising:
-
displaying a user interface including a plurality of views, each view corresponding to a respective portion of the user interface; assigning at least one of an exclusive touch flag and a multi-touch flag to one or more views, wherein the assigning includes; assigning a multi-touch flag to a first view of the plurality of views; and assigning an exclusive touch flag to a respective view comprising the first view or a second view, distinct from the first view, of the plurality of views; determining whether at least one of the exclusive touch flag and the multi-touch flag is set for one or more respective views; and processing one or more touch events in accordance with at least one of the exclusive touch flag and the multi-touch flag, including; in accordance with a determination that the multi-touch flag associated with the first view indicates that the first view is a multi-touch view, enabling the first view to process multiple concurrent touch events within the first view; in accordance with a determination that the multi-touch flag associated with the first view indicates that the first view is not a multi-touch view, conditionally allowing the first view to process only one touch event at a time within the first view; in accordance with a determination that the exclusive touch flag associated with the respective view indicates that the respective view is an exclusive touch view, preventing any view other than the respective view from processing touch events while the respective view is receiving a touch event; and
,in accordance with a determination that the exclusive touch flag associated with the respective view indicates that the respective view is not an exclusive touch view, conditionally allowing views other than the respective view to process touch events while the respective view is receiving a touch event.
-
-
12. A non-transitory computer readable medium comprising a plurality of instructions configured for execution at a multi-touch device, the instructions being configured to cause the multi-touch device to:
-
display a user interface including a plurality of views, each view corresponding to a respective portion of the user interface; execute one or more software elements, each software element being associated with a particular view; associate a multi-touch flag with a first view of the plurality of views; associate an exclusive touch flag with a respective view comprising the first view or a second view, distinct from the first view, of the plurality of views; receive two or more concurrent touches in at least the respective view and another view of the plurality of views; send one or more touch events, each touch event describing a received touch of the two or more concurrent touches, to one or more of the software elements associated with the views at which the two or more concurrent touches were received based on at least one of the values of the multi-touch and exclusive touch flags; in accordance with a determination that the multi-touch flag associated with the first view indicates that the first view is a multi-touch view, enable the first view to receive multiple concurrent touch events within the first view; in accordance with a determination that the multi-touch flag associated with the first view indicates that the first view is not a multi-touch view, conditionally allow the first view to receive only one touch event describing a respective touch, of the two or more concurrent touches, within the first view; in accordance with a determination that the exclusive touch flag associated with the respective view indicates that the respective view is an exclusive touch view, prevent any view other than the respective view from receiving touch events while the respective view is receiving a touch event; and
,in accordance with a determination that the exclusive touch flag associated with the respective view indicates that the respective view is not an exclusive touch view, conditionally allow views other than the respective view from receiving to receive touch events while the respective view is receiving a touch event. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A non-transitory computer readable medium comprising a plurality of instructions configured for execution at a multi-touch device, the instructions being configured to cause the multi-touch device to:
-
display a user interface including a plurality of views, each view corresponding to a respective portion of the user interface; assign at least one of an exclusive touch flag and a multi-touch flag to one or more views, wherein the device is caused to; assign a multi-touch flag to a first view of the plurality of views; and assign an exclusive touch flag to a respective view comprising the first view or a second view, distinct from the first view, of the plurality of views; determine whether at least one of the exclusive touch flag and the multi-touch flag is set for one or more respective views; and process one or more touch events in accordance with at least one of the exclusive touch flag and the multi-touch flag, including; in accordance with a determination that the multi-touch flag associated with the first view indicates that the first view is a multi-touch view, enabling the first view to process multiple concurrent touch events within the first view; in accordance with a determination that the multi-touch flag associated with the first view indicates that the first view is not a multi-touch view, conditionally allowing the first view to process only one touch event at a time within the first view; in accordance with a determination that the exclusive touch flag associated with the respective view indicates that the respective view is an exclusive touch view, preventing any view other than the respective view from processing touch events while the respective view is receiving a touch event; and
,in accordance with a determination that the exclusive touch flag associated with the respective view indicates that the respective view is not an exclusive touch view, conditionally allowing views other than the respective view from to process touch events while the respective view is receiving a touch event.
-
-
23. A method for recognizing point events at a multi-point device, comprising:
-
displaying a user interface including a plurality of views, each view corresponding to a respective portion of the user interface; executing one or more software elements, each software element being associated with a particular view; associating a multi-point flag with a first view of the plurality of views; associating an exclusive point flag with a respective view comprising the first view or a second view, distinct from the first view, of the plurality of views; receiving two or more concurrent point inputs in at least the respective view and another view of the plurality of views; and sending one or more point events, each point event describing a received point input of the two or more concurrent point inputs, to one or more of the software elements associated with the plurality of views at which the two or more concurrent point inputs were received based on at least one of the values of the multi-point and exclusive point flags; in accordance with a determination that the multi-point flag associated with the first view indicates that the first view is a multi-point view, enabling the first view to receive multiple concurrent point events within the first view; in accordance with a determination that the multi-point flag associated with the first view indicates that the first view is not a multi-point view, conditionally allowing the first view to receive only one point event describing a respective point input, of the two or more concurrent point inputs, within the first view; in accordance with a determination that the exclusive point flag associated with the respective view indicates that the respective view is an exclusive point view, preventing any view other than the respective view from receiving point events while the respective view is receiving a point event; and
,in accordance with a determination that the exclusive point flag associated with the respective view indicates that the respective view is not an exclusive point view, conditionally allowing views other than the respective view to receive point events while the respective view is receiving a point event.
-
-
24. A method for recognizing one or more point events at a multi-point device, comprising:
-
display a user interface, including a plurality of views, each view corresponding to a respective portion of the user interface; assigning at least one of an exclusive point flag and a multi-point flag to one or more views, wherein the assigning includes; assigning a multi-point flag to a first view of the plurality of views; and assigning an exclusive point flag to a respective view comprising the first view or a second view, distinct from the first view, of the plurality of views; determine whether at least one of the exclusive point flag and the multi-point flag is set for one or more respective views; and processing one or more point events in accordance with at least one of the exclusive point flag and the multi-point flag, including; in accordance with a determination that the multi-point flag associated with the first view indicates that the first view is a multi-point view, enabling the first view to process multiple concurrent point events within the first view; in accordance with a determination that the multi-point flag associated with the first view indicates that the first view is not a multi-point view, conditionally allowing the first view to process only one point event at a time within the first view; in accordance with a determination that the exclusive point flag associated with the respective view indicates that the respective view is an exclusive point view, preventing any view other than the respective view from processing point events while the respective view is receiving a point event; and
,in accordance with a determination that the exclusive point flag associated with the respective view indicates that the respective view is not an exclusive point view, conditionally allowing views other than the respective view to process point events while the respective view is receiving a point event.
-
-
25. A non-transitory computer readable medium comprising a plurality of instructions configured for execution at a multi-point device, the instructions being configured to cause the multi-point device to:
-
display a user interface including a plurality of views, each view corresponding to a respective portion of the user interface; execute one or more software elements, each software element being associated with a particular view; associate a multi-point flag with a first view of the plurality of views; associate an exclusive point flag with a respective view comprising the first view or a second view, distinct from the first view, of the plurality of views; receive two or more concurrent point inputs in at least the respective view and another view of the plurality of views; send one or more point events, each point event describing a received point input of the two or more concurrent point inputs, to one or more of the software elements associated with the views at which the two or more concurrent point inputs were received based on at least one of the values of the multi-point and exclusive point flags; in accordance with a determination that the multi-point flag associated with the first view indicates that the first view is a multi-point view, enable the first view to receive multiple concurrent point events within the first view; in accordance with a determination that the multi-point flag associated with the first view indicates that the first view is not a multi-point view, conditionally allow the first view to receive only one point event describing a respective point input, of the two or more concurrent point inputs, within the first view; in accordance with a determination that the exclusive point flag associated with the respective view indicates that the respective view is an exclusive pointview, prevent any view other than the respective view from receiving point events while the respective view is receiving a point event; and in accordance with a determination that the exclusive point flag associated with the respective view indicates that the respective view is not an exclusive point view, conditionally allow views other than the respective view to receive point events while the respective view is receiving a point event.
-
-
26. A non-transitory computer readable medium comprising a plurality of instructions configured for execution at a multi-point device, the instructions being configured to cause the multi-point device to:
-
display a user interface including a plurality of views, each view corresponding to a respective portion of the user interface; assign at least one of an exclusive point flag and a multi-point flag to one or more views, wherein the device is caused to; assign a multi-point flag to a first view of the plurality of views; and assign an exclusive point flag to a respective view comprising the first view or a second view of the plurality of views; determine whether at least one of the exclusive point flag and the multi-point flag is set for one or more respective views; and process one or more point events in accordance with at least one of the exclusive point flag and the multi-point flag, including; in accordance with a determination that the multi-point flag associated with the first view indicates that the first view is a multi-point view, enabling the first view to process multiple concurrent point events within the first view; in accordance with a determination that the multi-point flag associated with the first view indicates that the first view is not a multi-point view, allowing the first view to process only one point event at a time within the first view; in accordance with a determination that the exclusive point flag associated with the respective view indicates that the respective view is an exclusive point view, preventing any view other than the respective view from processing point events while the respective view is receiving a point event; and
,in accordance with a determination that the exclusive point flag associated with the respective view indicates that the respective view is not an exclusive point view, conditionally allowing views other than the respective view to process point events while the respective view is receiving a point event.
-
-
27. A multi-touch enabled mobile telephone including a computer readable medium comprising a plurality of instructions configured for execution at the mobile telephone, the instructions being configured to cause the mobile telephone to:
-
display a user interface including a plurality of views, each view corresponding to a respective portion of the user interface; execute one or more software elements, each software element being associated with a particular view; associate a multi-touch flag with a first view of the plurality of views; associate an exclusive touch flag with a respective view comprising the first view or a second view, distinct from the first view, of the plurality of views; receive two or more concurrent touches in at least the respective view and another view of the plurality of views; send one or more touch events, each touch event describing a received touch of the two or more concurrent touches, to one or more of the software elements associated with the views at which the two or more concurrent touches were received based on at least one of the values of the multi-touch and exclusive touch flags; in accordance with a determination that the multi-touch flag associated with the first view indicates that the first view is a multi-touch view, enable the first view to receive multiple concurrent touch events within the first view; in accordance with a determination that the multi-touch flag associated with the first view indicates that the first view is not a multi-touch view, conditionally allow the first view to receive only one touch event describing a respective touch, of the two or more concurrent touches, within the first view; in accordance with a determination that the exclusive touch flag associated with the respective view indicates that the respective view is an exclusive touch view, prevent any view other than the respective view from receiving touch events while the respective view is receiving a touch event; and in accordance with a determination that the exclusive touch flag associated with the respective view indicates that the respective view is not an exclusive touch view, conditionally allow views other than the respective view to receive touch events while the respective view is receiving a touch event.
-
-
28. A multi-touch enabled digital media player including a computer readable medium comprising a plurality of instructions configured for execution at the digital media player, the instructions being configured to cause the digital media player to:
-
display a user interface including a plurality of views, each view corresponding to a respective portion of the user interface; execute one or more software elements, each software element being associated with a particular view; associate a multi-touch flag with a first view of the plurality of views; associate an exclusive touch flag with a respective view comprising the first view or a second view of the plurality of views distinct from the first view; receive two or more concurrent touches in at least the respective view and another view of the plurality of views; send one or more touch events, each touch event describing a received touch of the two or more concurrent touches, to one or more of the software elements associated with the views at which the two or more concurrent touches were received based on at least one of the values of the multi-touch and exclusive touch flags; in accordance with a determination that the multi-touch flag associated with the first view indicates that the first view is a multi-touch view, enable the first view to receive multiple concurrent touch events within the first view; in accordance with a determination that the multi-touch flag associated with the first view indicates that the first view is not a multi-touch view, conditionally allow the first view to receive only one touch event describing a respective touch, of the two or more concurrent touches, within the first view; in accordance with a determination that the exclusive touch flag associated with the respective view indicates that the respective view is an exclusive touch view, prevent any view other than the respective view from receiving touch events while the respective view is receiving a touch event; and in accordance with a determination that the exclusive touch flag associated with the respective view indicates that the respective view is not an exclusive touch view, conditionally allow views other than the respective view to receive touch events while the respective view is receiving a touch event.
-
-
29. A method for handling touch events at a multi-touch device, comprising:
-
displaying two or more views; executing one or more software elements, each software element being associated with a particular view of the two or more views; associating an exclusive touch flag with a first view of the two or more views; receiving one or more touches at the first view; while receiving the one or more touches at the first view, receiving one or more touches at a second view distinct from the first view; determining whether a value of the exclusive touch flag associated with the first view indicates that the first view is an exclusive view; and sending one or more touch events, each touch event describing a respective touch of the one or more touches at the second view, to at least one of one or more software elements associated with the second view at which the respective touch was received, wherein, in accordance with a determination that the value of the exclusive touch flag associated with the first view indicates that the first view is not an exclusive view, the one or more touch events are processed by at least one of the one or more software elements associated with the second view; and
,wherein, in accordance with a determination that the value of the exclusive touch flag associated with the first view indicates that the first view is an exclusive view, the one or more touch events are not processed by any one of the one or more software elements associated with the second view. - View Dependent Claims (30)
-
-
31. A multi-touch device, comprising memory storing one or more programs, the one or more programs for execution at the multi-touch device, the one or more programs including instructions configured to cause the multi-touch device to:
-
display two or more views; execute one or more software elements, each software element being associated with a particular view of the two or more views; associate an exclusive touch flag with a first view of the two or more views; receive one or more touches at the first view; while receiving the one or more touches at the first view, receive one or more touches at a second view distinct from the first view; determine whether a value of the exclusive touch flag associated with the first view indicates that the first view is an exclusive view; and send one or more touch events, each touch event describing a respective touch of the one or more touches at the second view, to at least one of one or more software elements associated with the second view at which the respective touch was received, wherein, in accordance with a determination that value of the exclusive touch flag associated with the first view indicates that the first view is not an exclusive view, the one or more touch events are processed by at least one of the one or more software elements associated with the second view; and
,wherein, in accordance with a determination that the value of the exclusive touch flag associated with the first view indicates that the first view is an exclusive view, the one or more touch events are not processed by any one of the one or more software elements associated with the second view. - View Dependent Claims (32)
-
-
33. A non-transitory computer readable storage medium storing one or more programs for execution by a multi-touch device, the one or more programs including instructions for:
-
displaying two or more views; executing one or more software elements, each software element being associated with a particular view of the two or more views; associating an exclusive touch flag with a first view of the two or more views; receiving one or more touches at the first view; while receiving the one or more touches at the first view, receiving one or more touches at a second view distinct from the first view; determining whether a value of the exclusive touch flag associated with the first view indicates that the first view is an exclusive view; and sending one or more touch events, each touch event describing a respective touch of the one or more touches at the second view, to at least one of one or more software elements associated with the second view at which the respective touch was received, wherein, in accordance with a determination that the value of the exclusive touch flag associated with the first view indicates that the first view is not an exclusive view, the one or more touch events are processed by at least one of the one or more software elements associated with the second view; and
,wherein, in accordance with a determination that the value of the exclusive touch flag associated with the first view indicates that the first view is an exclusive view, the one or more touch events are not processed by any one of the one or more software elements associated with the second view. - View Dependent Claims (34)
-
-
35. A method for handling touch events at a multi-touch device, comprising:
-
displaying two or more views; executing one or more software elements, each software element being associated with a particular view of the two or more views; associating an exclusive touch flag with a first view of the two or more views; receiving one or more touches at the first view; while receiving the one or more touches at the first view, receiving one or more touches at a second view distinct from the first view; determining whether a value of the exclusive touch flag associated with the first view indicates that the first view is an exclusive view; conditionally, in accordance with a determination that the value of the exclusive touch flag associated with the first view indicates that the first view is not an exclusive view, sending one or more touch events, each touch event describing a respective touch of the one or more touches at the second view, to at least one of one or more software elements associated with the second view at which the respective touch was received; and
,in accordance with a determination that the value of the exclusive touch flag associated with the first view indicates that the first view is an exclusive touch view, preventing the one or more touch events describing the one or more touches at the second view from being sent to any of the one or more software elements associated with any view other than the first view. - View Dependent Claims (36)
-
-
37. A multi-touch device, comprising memory storing one or more programs, the one or more programs for execution at the multi-touch device, the one or more programs including instructions configured to cause the multi-touch device to:
-
display two or more views; execute one or more software elements, each software element being associated with a particular view of the two or more views; associate an exclusive touch flag with a first view of the two or more views; receive one or more touches at the first view; while receiving the one or more touches at the first view, receive one or more touches at a second view distinct from the first view; determine whether a value of the exclusive touch flag associated with the first view indicates that the first view is an exclusive view; conditionally, in accordance with a determination that the value of the exclusive touch flag associated with the first view indicates that the first view is not an exclusive view, send one or more touch events, each touch event describing a respective touch of the one or more touches at the second view, to at least one of one or more software elements associated with the second view at which the respective touch was received; and
,in accordance with a determination that the value of the exclusive touch flag associated with the first view indicates that the first view is an exclusive touch view, preventing the one or more touch events describing the one or more touches at the second view from being sent to any of the one or more software elements associated with any view other than the first view. - View Dependent Claims (38)
-
-
39. A non-transitory computer readable storage medium storing one or more programs for execution by a multi-touch device, the one or more programs including instructions for:
-
displaying two or more views; executing one or more software elements, each software element being associated with a particular view of the two or more views; associating an exclusive touch flag with a first view of the two or more views; receiving one or more touches at the first view; while receiving the one or more touches at the first view, receiving one or more touches at a second view distinct from the first view; determining whether a value of the exclusive touch flag associated with the first view indicates that the first view is an exclusive view; conditionally, in accordance with a determination that the value of the exclusive touch flag associated with the first view indicates that the first view is not an exclusive view, sending one or more touch events, each touch event describing a respective touch of the one or more touches at the second view, to at least one of one or more software elements associated with the second view at which the respective touch was received; and
,in accordance with a determination that the value of the exclusive touch flag associated with the first view indicates that the first view is an exclusive touch view, preventing the one or more touch events describing the one or more touches at the second view from being sent to any of the one or more software elements associated with any view other than the first view. - View Dependent Claims (40)
-
Specification