DE112010001143T5 - Ereigniserkennung - Google Patents

Ereigniserkennung Download PDF

Info

Publication number
DE112010001143T5
DE112010001143T5 DE112010001143T DE112010001143T DE112010001143T5 DE 112010001143 T5 DE112010001143 T5 DE 112010001143T5 DE 112010001143 T DE112010001143 T DE 112010001143T DE 112010001143 T DE112010001143 T DE 112010001143T DE 112010001143 T5 DE112010001143 T5 DE 112010001143T5
Authority
DE
Germany
Prior art keywords
event
view
sub
views
events
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112010001143T
Other languages
English (en)
Inventor
Allen Moore Bradford
Joshua H. Shaffer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Publication of DE112010001143T5 publication Critical patent/DE112010001143T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0416Control or interface arrangements specially adapted for digitisers
    • G06F3/04166Details of scanning methods, e.g. sampling time, grouping of sub areas or time sharing with display driving
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04808Several contacts: gestures triggering a specific function, e.g. scrolling, zooming, right-click, when the user establishes several contacts with the surface simultaneously; e.g. using several fingers or a combination of fingers and pen

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)

Abstract

Ein Verfahren führt Software aus, die eine Ansichtshierarchie mit einer Mehrzahl von Ansichten enthält, die eine oder mehrere Ansichten der Ansichtshite aus, die mit einer bestimmten Ansicht assoziiert sind, wobei jede bestimmte Ansicht Ereigniserkenner enthält. Jeder Ereigniserkenner hat eine Ereignisdefinition, die auf Unterereignissen basiert, und einen Ereignishandler, der eine Aktion für ein Ziel spezifiziert, und ist konfiguriert, um eine Aktion an das Ziel in Antwort auf eine Ereigniserkennung zu senden. Das Verfahren detektiert eine Reihenfolge von Unterereignissen, und identifiziert eine der Ansichten der Ansichtshierarchie als eine Schlagansicht, die festlegt, welche Ansichten in der Hierarchie aktiv involvierte Ansichten sind. Das Verfahren schickt jeweils ein Unterereignis an Ereigniserkenner für jede aktiv involvierte Ansicht, wobei jeder Ereigniserkenner für aktiv involvierte Ansichten in der Ansichtshierarchie das jeweilige Unterereignis vor Bearbeitung eines nächsten Unterereignisses in der Reihenfolge von Unterereignissen bearbeitet.

Description

  • TECHNISCHES GEBIET
  • Die offenbarten Ausführungsformen beziehen sich generell auf Benutzerschnittstellen-Verarbeitung. Insbesondere beziehen sich die offenbarten Ausführungsformen auf Vorrichtungen oder Verfahren zum Erkennen von Benutzerschnittstellenereignissen.
  • HINTERGRUND
  • Ein Rechengerät enthält typischerweise eine Benutzerschnittstelle, die verwendet werden kann, um mit dem Rechengerät zu interagieren. Die Benutzerschnittstelle kann ein Anzeige- und/oder Eingabegerät wie zum Beispiel eine Tastatur, Mäuse und berührungsempfindliche Oberflächen zum Interagieren mit verschiedenen Aspekten der Benutzerschnittstelle enthalten. Bei einigen Geräten mit einer berührungsempfindlichen Oberfläche als einem Eingabegerät wird ein erster Satz von berührungsbasierten Gesten (zum Beispiel zwei oder mehrere von: Schlag, Doppelschlag, horizontales Streichen, vertikales Streichen, Kneifen, Spreizen, Zwei-Finger-Streichen) erkannt als geeignete Eingabe in einem bestimmten Kontext (zum Beispiel in einem bestimmten Modus einer ersten Anwendung), und andere, unterschiedliche Sätze von berührungsbasierten Gesten werden als geeignete Eingaben in anderen Kontexten (zum Beispiel unterschiedliche Anwendungen und/oder unterschiedliche Modi oder Kontexte innerhalb der ersten Anwendung) erkannt. Als Ergebnis können die Software und Logik, die für die Erkennung von und Antwort auf berührungsbasierte Gesten erforderlich sind, kompliziert werden, und können eine Nachprüfung erfordern, jedes Mal wenn eine Anwendung aktualisiert wird oder eine neue Anwendung zu dem Rechengerät hinzugefügt wird. Diese und ähnliche Angelegenheiten können sich bei Benutzerschnittstellen ergeben, die Eingabequellen benutzen, die anders als berührungsbasierte Gesten sind.
  • Daher ist es wünschenswert, ein umfangreiches Rahmenwerk oder einen Mechanismus zum Erkennen von berührungsbasierten Gesten und Ereignissen, sowie Gesten und Ereignissen von anderen Eingabequellen zu haben, das für fast alle Kontexte oder Modi anderer Anwendungsprogramme auf einem Rechengerät anpassungsfähiger ist und das weniger oder keine Nachprüfung erfordert, wenn eine Anwendung aktualisiert wird oder eine neue Anwendung zu dem Rechengerät hinzugefügt wird.
  • ZUSAMMENFASSUNG
  • Um auf die zuvor erwähnten Nachteile einzugehen, stellen einige Ausführungsformen ein Verfahren bereit, das, bei einem elektronischen Gerät, das konfiguriert ist, um Software auszuführen, die eine Ansichtshierarchie mit einer Mehrzahl von Ansichten enthält: eine oder mehrere Ansichten der Ansichtshierarchie zeigt; eines oder mehrere Softwareelemente ausführt, wobei jedes Softwareelement mit einer bestimmten Ansicht assoziiert ist, wobei jede bestimmte Ansicht einen oder mehrere Ereigniserkenner enthält. Jeder Ereigniserkenner hat eine Ereignisdefinition, die auf einem oder mehreren besonderen Ereignissen basiert, und einen Ereigniserkenner, wobei der Ereigniskenner eine Aktion für ein Ziel spezifiziert, und ist konfiguriert, um die Aktion an das Ziel in Antwort auf das Detektieren eines Ereignisses entsprechend der Ereignisdefinition durch den Ereigniserkenner zu senden. Das Verfahren detektiert auch eine Reihenfolge von einem oder mehreren Unterereignissen, oder identifiziert eine der Ansichten der Ansichtshierarchie als eine Schlagansicht, wobei die Schlagansicht feststellt, welche Ansichten in der Ansichtshierarchie aktiv involvierte Ansichten sind. Das Verfahren liefert auch ein jeweiliges Unterereignis an den Ereigniserkenner für jede aktiv involvierte Ansicht innerhalb der Ansichtshierarchie, wobei jeder Ereigniserkenner für aktiv involvierte Ansichten in der Ansichtshierarchie das jeweilige Unterereignis vor Bearbeitung eines nächsten Unterereignisses in der Reihenfolge von Unterereignissen bearbeitet.
  • Einige Ausführungsformen stellen ein Verfahren bereit, das bei einem elektronischen Gerät, das konfiguriert ist, um Software auszuführen, die eine Ansichtshierarchie mit einer Mehrzahl von Ansichten enthält: eine oder mehrere Ansichten der Ansichtshierarchie zeigt; eines oder mehrere Softwareelemente ausführt, wobei jedes Softwareelement mit einer bestimmten Ansicht assoziiert ist, wobei jede bestimmte Ansicht einen oder mehrere Ereigniserkenner enthält. Jeder Ereigniserkenner hat eine Ereignisdefinition, die auf einem oder mehreren Unterereignissen basiert, und einen Ereignishandler, wobei der Ereignishandler eine Aktion für ein Ziel spezifiziert, und ist konfiguriert, um die Aktion an das Ziel in Antwort auf das Detektieren eines Ereignisses entsprechend der Ereignisdefinition durch den Ereigniserkenner zu senden. Das Verfahren detektiert auch eine Reihenfolge von einem oder mehreren Unterereignissen, und identifiziert eine der Ansichten der Ansichtshierarchie als eine Schlagansicht, wobei die Schlagansicht feststellt, welche Ansichten in der Ansichtshierarchie aktiv involvierte Ansichten sind. Das Verfahren liefert auch ein jeweiliges Unterereignis an den Ereigniserkenner für jede aktiv involvierte Ansicht innerhalb der Ansichtshierarchie, und trifft eine Unterereigniserkennungsentscheidung während der Bearbeitung des jeweiligen Unterereignisses bei Ereigniserkennern für die aktiv involvierten Ansichten in der Ansichtshierarchie.
  • Einige Ausführungsformen stellen ein computerlesbares Speichermedium bereit, das eines oder mehrere Programme zum Ausführen durch einen oder mehrere Prozessoren eines Computersystems oder -gerätes speichert, wobei das eine oder mehrere Programme eines oder mehrerer Anwendungsprogramme zum Anzeigen einer oder mehreren Ansichten einer Ansichtshierarchie mit einer Mehrzahl von Ansichten enthalten. Das eine oder mehrere Anwendungsprogramme enthalten eines oder mehrere Softwareelemente, wobei jedes Softwareelement mit einer bestimmten Ansicht assoziiert ist, wobei jede bestimmte Ansicht einen oder mehrere Ereigniserkenner enthält. Jeder Ereigniserkenner hat eine Ereignisdefinition, die auf einem oder mehreren Unterereignissen basiert, und einen Ereignishandler, wobei der Ereignishandler eine Aktion für ein Ziel spezifiziert, und ist konfiguriert, um die Aktion an das Ziel in Antwort auf das Detektieren eines Ereignisses entsprechend der Ereignisdefinition durch den Ereigniserkenner zu senden; Ereignisverwaltungsanweisungen, wenn sie durch einen oder mehrere Prozessoren des Computersystems oder -gerätes ausgeführt werden, veranlassen das Computersystem oder -gerät dazu: eine Reihenfolge von einem oder mehreren Unterereignissen zu detektieren; eine der Ansichten der Ansichtshierarchie als eine Schlagansicht zu identifizieren, wobei die Schlagansicht feststellt, welche Ansichten in der Ansichtshierarchie aktiv involvierte Ansichten sind; und ein jeweiliges Unterereignis an den Ereigniserkenner für jede aktiv involvierte Ansicht innerhalb der Ansichtshierarchie zu liefern, wobei jeder Ereigniserkenner für aktiv involvierte Ansichten in der Ansichtshierarchie das jeweilige Unterereignis vor Bearbeitung eines nächsten Unterereignis in der Reihenfolge von Unterereignissen bearbeitet.
  • Einige Ausführungsformen stellen eine Vorrichtung bereit, die eine Anzeige, einen oder mehrere Prozessoren, Speicher, und eines oder mehrere in dem Speicher gespeicherte Programme, die konfiguriert ist, eine oder mehrere Ansichten einer Ansichtshierarchie mit einer Mehrzahl von Ansichten anzuzeigen, aufweist. Das eine oder mehrere Programme enthalten eines oder mehrere Softwareelemente, wobei jedes Softwareelement mit einer bestimmten Ansicht assoziiert ist, wobei jede bestimmte Ansicht einen oder mehrere Ereigniserkenner enthält. Die Ereigniserkenner haben eine Ereignisdefinition, die auf einem oder mehreren Unterereignissen basiert, und einen Ereigniserkenner, wobei der Ereignishandler eine Aktion für ein Ziel spezifiziert, und ist konfiguriert, die Aktion an das Ziel in Antwort auf das Detektieren eines Ereignisses entsprechend der Ereignisdefinition durch den Ereigniserkenner zu senden. Die Programme der Vorrichtung enthalten auch ein Ereignislieferprogramm, das, wenn durch den einen oder mehrere Prozessoren die Vorrichtung ausgeführt wird, die Vorrichtung dazu veranlasst, eine Reihenfolge von einem oder mehreren Unterereignissen zu detektieren; eine der Ansichten der Ansichtshierarchie als eine Schlagansicht zu identifizieren, wobei die Schlagansicht feststellt, welche Ansichten in der Ansichtshierarchie aktiv involvierte Ansichten sind; und eine Unterereigniserkennungsentscheidung zu treffen, während der Ereigniserkenner für die aktiv involvierten Ansichten in der Ansichtshierarchie das jeweilige Unterereignis bearbeitet.
  • In einigen Ausführungsformen wird eine Vorrichtung bereitgestellt, die einen oder mehrere Prozessoren, Speicher, und eines oder mehrere in dem Speicher gespeicherten Programme, die konfiguriert sind, die Ausführung von einer oder mehreren programmatischen Schichten einer programmatischen Hierarchie mit einer Mehrzahl von programmatischen Schichten zu verwalten. Das eine oder mehrere Programme enthalten eines oder mehrere Softwareelemente, wobei jedes Softwareelement mit einer bestimmten programmatischen Schicht assoziiert ist, wobei jede bestimmte programmatische Schicht einen oder mehrere Ereigniserkenner enthält. Die Ereigniserkenner haben eine Ereignisdefinition, die auf einem oder mehreren Unterereignissen basiert, und einen Ereignishandler, wobei der Ereignishandler eine Aktion für ein Ziel spezifiziert und konfiguriert ist, die Aktion an das Ziel in Antwort auf das Detektieren eines Ereignisses entsprechend der Ereignisdefinition durch den Ereigniserkenner zu senden. Die Vorrichtung enthält auch ein Ereignislieferprogramm, das, wenn durch den einen oder mehrere Prozessoren die Vorrichtung ausgeführt wird, die Vorrichtung dazu veranlasst, eine Reihenfolge von einem oder mehreren Unterereignissen zu detektieren; eine der programmatischen Schichten der programmatischen Hierarchie als eine Schlagschicht zu identifizieren, wobei die Schlagschicht feststellt, welche programmatische Schichten in der programmatischen Hierarchie aktiv involvierte programmatische Schichten sind; und ein jeweiliges Unterereignis an den Ereigniserkenner für jede aktiv involvierte programmatische Schicht innerhalb der programmatischen Hierarchie zu liefern, wobei jeder Ereigniserkenner für aktiv involvierte Schichten in der programmatischen Hierarchie das jeweilige Unterereignis vor Bearbeitung eines nächsten Unterereignisses in der Reihenfolge von Unterereignissen bearbeitet.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1A und 1B sind Blockdiagramme, die elektronische Geräte nach einigen Ausführungsformen darstellen.
  • 2 ist ein Diagramm eines Eingabe/Ausgabe-Verarbeitungsstacks eines beispielhaften elektronischen Gerätes nach einigen Ausführungsformen.
  • 3A stellt eine beispielhafte Ansichtshierarchie nach einigen Ausführungsformen dar.
  • 3B und 3C sind Blockdiagramme, die beispielhafte Ereigniserkennungsverfahren und Datenstrukturen nach einigen Ausführungsformen darstellen.
  • 4A und 4B sind Flussdiagramme, die beispielhafte Zustandsmaschinen nach einigen Ausführungsformen darstellen.
  • 4C stellt die beispielhaften Zustandsmaschinen von 4A und 4B zu einem beispielhaften Satz von Unterereignissen nach einigen Ausführungsformen dar.
  • 5A5C stellen beispielhafte Unterereignisreihenfolgen mit beispielhaften Ereigniserkenner-Zustandsmaschinen nach einigen Ausführungsformen dar.
  • 6A und 6B sind Ereigniserkennungs-Verfahrensflussdiagramme nach einigen Ausführungsformen.
  • Gleiche Bezugszeichen beziehen sich auf entsprechende Teile in den ganzen Zeichnungen.
  • BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
  • Der Bezug wird nun ausführlich auf Ausführungsformen genommen, deren Beispiele in den begleitenden Zeichnungen dargestellt werden. In der folgenden ausführlichen Beschreibung werden zahlreiche spezifische Details vorgelegt, um ein gründliches Verständnis der vorliegenden Erfindung bereitzustellen. Es liegt dem Fachmann dennoch auf der Hand, dass die vorliegende Erfindung ohne diese spezifischen Details praktiziert werden kann. In anderen Beispielen sind bekannte Verfahren, Prozeduren, Komponenten, Schaltungen, oder Netzwerke nicht im Detail beschrieben worden, um Aspekte der Ausführungen nicht unnötigerweise zu verdunkeln.
  • Es wird auch verstanden werden, dass, obwohl die Begriffe erste, zweite usw. hier verwendet werden können, um verschiedene Elemente zu beschreiben, diese Elemente nicht auf diese Begriffe beschränkt werden sollen. Diese Begriffe werden nur verwendet, um ein Element von dem anderen zu unterscheiden. Zum Beispiel kann ein erster Kontakt als ein zweiter Kontakt bezeichnet, und ebenso ein zweiter Kontakt als ein erster Kontakt bezeichnet werden, ohne den Umfang der vorliegenden Erfindung zu verlassen. Der erste Kontakt und der zweite Kontakt sind beide Kontakte, aber sie sind nicht derselbe Kontakt.
  • Die in der Beschreibung der Erfindung verwendete Terminologie ist nur zum Zweck der Beschreibung von bestimmten Ausführungsformen gedacht und ist nicht dazu gedacht, die Erfindung zu beschränken. Wie in der Beschreibung der Erfindung und den beigefügten Ansprüchen verwendet, sind die Singularformen „ein” usw. und „der” usw. beabsichtigt, auch die Pluralformen zu enthalten, sofern der Kontext nichts anderes deutlich angibt. Es wird auch verstanden werden, dass der Begriff „und/oder”, wie hier verwendet, alle möglichen Kombinationen des einen oder der mehreren assoziierten aufgelisteten Elemente betrifft und einschließt. Weiterhin wird es verstanden werden, dass die Begriffe „aufweist” und/oder „aufweisende”, wenn in dieser Spezifikation verwendet, das Vorliegen von angegebenen Merkmalen, Ganzzahlen, Schritten, Operationen, Elementen, und/oder Komponenten spezifizieren, aber das Vorliegen oder die Hinzufügung von einem oder mehreren anderen Merkmalen, Ganzzahlen, Schritten, Operationen, Elementen, Komponenten, und/oder Gruppen davon nicht ausschließen.
  • Wie hier verwendet, kann der Begriff „wenn” so ausgelegt werden, dass es, abhängig vom Kontext, „falls” oder „bei” oder „in Antwort auf Entscheiden” oder „in Antwort auf Detektieren” bedeutet. Ebenso kann der Ausdruck „wenn es entschieden wird” oder „wenn [eine angegebene Bedingung oder Ereignis] detektiert wird”, so ausgelegt werden, dass er, abhängig vom Kontext, „beim Entscheiden” oder „Im Antwort auf Entscheiden” oder „bei Detektieren (der angegebenen Bedingung oder des Ereignisses)” oder „in Antwort auf Detektieren (der angegebenen Bedingung oder des Ereignisses) bedeutet.
  • Wie oben erwähnt werden bei einigen Geräten mit einer berührungsempfindlichen Oberfläche eines Eingabegerätes ein erster Satz von berührungsbasierten Gesten (z. B. zwei oder mehr von: Schlag, Doppelschlag, horizontales Streichen, vertikales Streichen) als geeignete Eingabe in einem bestimmten Kontext (z. B. in einem bestimmtne Modus einer ersten Anwendung) erkannt, und andere, unterschiedliche Sätze von berührungsbasierten Gesten werden als geeignete Eingabe in anderen Kontexten (z. B. unterschiedliche Anwendungen und/oder unterschiedliche Modi oder Kontexte innerhalb der ersten Anwendung) erkannt. Als Ergebnis können die Software und Logik, die für die Erkennung von und die Antwort auf berührungsbasierte Gesten erforderlich sind, komplex werden, und können Nachprüfung erfordern jedes Mal, wenn eine Anwendung aktualisiert wird oder eine neue Anwendung zu dem Rechengerät hinzugefügt wird.
  • In den unten beschriebenen Ausführungsformen sind berührungsbasierte Gesten Ereignisse. Bei Erkennen eines vorbestimmten Ereignisses, z. B. eines Ereignisses, das einer vorherigen Eingabe im gegenwärtigen Kontext einer Anwendung entspricht, wird Information bezüglich des Ereignisses an die Anwendung geliefert. Im Kontext des Dokuments entsprechen alle berührungsbasierten Gesten Ereignissen. Ferner wird jedes jeweilige Ereignis als eine Reihenfolge von Unterereignissen definiert. Bei Geräten, die ein Multitouch-Anzeigegerät (oft hier als „Bildschirme” bezeichnet) oder andere multitouch-empfindliche Oberflächen aufweisen, und die multitouch-basierte Gesten annehmen, können die Unterereignisse, die ein multitouch-basiertes Ereignis definieren, Multitouch-Unterereignisse (zwei oder mehrere Finger sind erforderlich, um gleichzeitig in Kontakt mit der berührungsempfindlichen Oberfläche des Gerätes zu sein) enthalten. Zum Beispiel bei einem Gerät mit einer multitouch-empfindlichen Anzeige kann eine jeweilige Multitouch-Reihenfolge von Unterereignissen beginnen, wenn ein Finger des Benutzers den Bildschirm zuerst berührt. Zusätzliche Unterereignisse können geschehen, wenn ein oder mehrere zusätzliche Finger nacheinander folgend oder gleichzeitig den Bildschirm berühren, und andere Unterereignisse können jedoch geschehen, wenn alle diese Finger, die den Bildschirm berühren, sich quer durch den Bildschirm bewegen. Die Reihenfolge wird beendet, wenn der letzte der Finger des Benutzers von dem Bildschirm abgehoben wird.
  • Wenn berührungsbasierten Gesten verwendet werden, um eine Anwendung zu steuern, die auf einem Gerät mit einer berührungsempfindlichen Oberfläche läuft, haben Berührungen sowohl zeitliche als auch räumliche Aspekte. Der zeitliche Aspekt, als eine Phase genannt, weist darauf hin, wann eine Berührung gerade begonnen hat, ob es sich bewegt oder stehend ist, und wann es beendet wird – d. h. wann der Finger von dem Bildschirm abgehoben wird. Ein räumlicher Aspekt einer Berührung ist der Satz von Ansichten oder Benutzerschnittstellen-Fenstern, in denen die Berührung geschieht. Die Ansichten oder Fenster, in denen eine Berührung detektiert wird, können programmatischen Niveaus innerhalb einer programmatischen oder Ansichtenhierarchie entsprechen. Zum Beispiel kann die niedrigste Niveauansicht, in der eine Berührung detektiert wird, als die Schlagansicht genannt, und der Satz von Ereignissen, die als geeignete Eingabe erkannt werden, können basierend, mindestens zum Teil, auf der Schlagansicht der Anfangsberührung, die eine berührungsbasierte Geste beginnt, entschieden.
  • Die 1A und 1B sind Blockdiagramme, die elektronische Geräte 102 und 104 nach einigen Ausführungsformen darstellen. Die elektronischen Geräte 102 und 104 können jedes elektronische Gerät sein, das ein Desktop Computersystem, ein Laptop-Computersystem, Mobiltelefon, ein Smartphone, ein PDA oder ein Navigationssystem einschließt, aber sind nicht auf diese beschränkt. Das elektronische Gerät kann auch ein tragbares elektronisches Gerät mit einer Berührungsbildschirmanzeige (z. B. Anzeige 156, 1B), die konfiguriert ist, eine Benutzerschnittstelle darzustellen, ein Computer mit einer Berührungsbildschirmanzeige, die konfiguriert ist, eine Benutzerschnittstelle darzustellen, ein Computer mit einer berührungsempfindlichen Oberfläche und einer Anzeige, die konfiguriert ist, eine Benutzerschnittstelle darzustellen, oder jede andere Form von Rechengerät sein, einschließlich unterhaltungselektronischer Geräte, Mobiltelefone, Videospielsysteme, elektronischer Musikabspieler, Tablet-PCs, elektronischem Buchlesesystem, E-Büchern, PDAs, elektronischer Organizer, Email-Geräte, Laptops oder anderen Computern, Kiosk-Computern, Verkaufsautomaten, intelligenten Geräten usw., ohne darauf beschränkt zu werden. Die elektronischen Geräte 102 und 104 können jeweils Benutzerschnittstellen 113-A und 113-B enthalten.
  • In einigen Ausführungsformen enthalten die elektronischen Geräte 102 und 104 eine Berührungsbildschirmanzeige. In diesen Ausführungsformen kann die Benutzerschnittstelle 113 (z. B. 113-A oder 113-B) eine Bildschirmtastatur (nicht dargestellt) enthalten, die von einem Benutzer verwendet wird, um mit den elektronischen Geräten 102 und 104 zu interagieren. Alternativ kann eine Tastatur von den elektronischen Geräten 102 und 104 getrennt und unterschieden werden. Zum Beispiel kann eine Tastatur eine verdrahtete oder drahtlose Tastatur sein, die an die elektronischen Geräte gekoppelt ist.
  • In einigen Ausführungsformen enthält ein elektronisches Gerät 102 eine Anzeige 126 und eines oder mehrere Eingabegeräte 128-A (z. B. Tastatur, Maus, Track-Ball, Mikrofon, physikalische Taste(n), Berührungsfeld, usw.), die an das elektronische Gerät 102 gekoppelt sind. In diesen Ausführungsformen können eine oder mehrere der Eingabegeräte 128-A wahlweise von dem elektronischen Gerät 102 getrennt oder unterschieden werden. Zum Beispiel können das eine oder die mehreren Eingabegeräte ein oder mehrere enthalten von: eine Tastatur, eine Maus, ein Track-Feld, ein Track-Ball, einen elektronischen Stift, jeder von denen wahlweise von dem elektronischen Gerät getrennt werden kann. Wahlweise kann das Gerät 102 oder 104 einen oder mehrere Sensoren 130 enthalten, z. B. einen oder mehrere Beschleunigungsmesser, Gyroskope, GPS-Systeme, Lautsprecher, Infrarot(IR)-Sensoren, biometrische Sensoren, Kameras, usw. Es wird darauf hingewiesen, dass die obige Beschreibung von verschiedenen beispielhaften Geräten als Eingabegeräte 128 oder als Sensoren 130 für die Operationen der hier beschriebenen Ausführungsformen von keiner Bedeutung ist, und dass jedes Eingabe- oder Sensorgerät, das hier als Eingabegerät beschrieben wird, ebenso als ein Sensor beschrieben werden kann, und umgekehrt. In einigen Ausführungsformen werden Signale, die durch einen oder mehrere Sensoren 130 erzeugt werden, als Eingabequellen zum Detektieren von Ereignissen verwendet.
  • In einigen Ausführungsformen enthält das elektronische Gerät 104 eine berührungsempfindliche Anzeige 156 (z. B. eine Anzeige mit einer berührungsempfindlichen Oberfläche) und ein oder mehrere Eingabegeräte 128-B, die zu dem elektronischen Gerät 104 gekoppelt sind. In einigen Ausführungsformen ist die berührungsempfindliche Anzeige 156 in der Lage, zwei oder mehrere unterschiedliche, gleichzeitige (oder zum Teil gleichzeitige) Berührungen zu detektieren, und in diesen Ausführungsformen wird die Anzeige 156 manchmal als eine Multitouch-Anzeige oder Multitouch-empfindliche Anzeige genannt.
  • In einigen Ausführungsformen des hier diskutierten elektronischen Gerätes 102 oder 104, werden die Eingabegeräte 128 in dem elektronischen Gerät 102 oder 104 eingerichtet. In einigen Ausführungsformen ist eines oder mehrere der Eingabegeräte 128 von dem elektronischen Gerät 102 oder 104 getrennt und unterschieden; z. B. ein oder mehrere Eingabegeräte 128 können zu den elektronischen Geräten 102 oder 104 durch ein Kabel (z. B. USB-Kabel) oder drahtlose Verbindung (z. B. Bluetooth-Verbindung) gekoppelt werden.
  • Wenn die Eingabegeräte 128 verwendet werden, oder wenn eine berührungsbasierte Geste auf der berührungsempfindlichen Anzeige 156 eines elektronischen Gerätes 102 oder 104 durchgeführt wird, erzeugt der Benutzer jeweils eine Reihenfolge von Unterereignissen, die durch einen oder mehrere CPUs 110 des elektronischen Gerätes 102 oder 104 bearbeitet werden. In einigen Ausführungsformen bearbeiten der eine oder die mehreren CPUs 110 des elektronischen Gerätes 102 oder 104 die Reihenfolge von Unterereignissen, um Ereignisse zu erkennen.
  • Das elektronische Gerät 102 oder 104 enthält typischerweise jeweils eine oder mehrere Einzel- oder Multikernverarbeitungseinheiten („CPU” oder „CPUs”) 110 sowie eines oder mehrere Netzwerke oder andere Kommunikationsschnittstellen 112. Das elektronische Gerät 102 oder 104 enthält jeweils Speicher 111 und einen oder mehrere Kommunikationsbusse 115 zum Miteinander-Verbinden von diesen Komponenten. Die Kommunikationsbusse 115 können Schaltungen (manchmal als ein Chip-Satz genannt) enthalten, die die Kommunikation zwischen Systemkomponenten (hier nicht dargestellt) miteinander verbindet und steuert. Wie oben kurz diskutiert, enthalten die elektronischen Geräte 102 oder 104 wahlweise Benutzerschnittstelle 113, die jeweils eine Anzeige 126 und Multitouch-Anzeige 156 enthalten. Ferner enthalten die elektronischen Geräte 102 und 104 typischerweise Eingabegeräte 128 (z. B. Tastatur, Maus, Berührungsbildschirme, berührungsempfindliche Oberfläche, Multiberührungsbildschirme, Tastenfelder, usw.). In einigen Ausführungsformen enthalten die Eingabegeräte ein Bildschirmeingabegerät (z. B. eine berührungsempfindliche Oberfläche eines Anzeigegerätes). Speicher 111 kann Hochgeschwindigkeits-RAM enthalten, z. B. D-RAM, S-RAM, DDR-RAM oder andere Festkörper RAM-Geräte; und können nichtflüchtige Speicher enthalten, wie zum Beispiel ein oder mehrere Magnetplattenspeichergeräte, optische Plattenspeichergeräte, Flash-Speichergeräte oder andere nichtflüchtige Festkörperspeichergeräte. Speicher 111 kann wahlweise ein oder mehrere Speichergeräte, die von den CPU(s) 110 entfernt gelegen sind, enthalten. Speicher 111 oder alternativ das nichtflüchtige Speichergeräte) innerhalb des Speichers 111, weisen ein computerlesbares Speichermedium auf. In einigen Ausführungsformen speichert der Speicher 111 die folgenden Programme, Module und Datenstrukturen, oder einen Untersatz davon:
    • • ein Betriebssystem 118, das Prozeduren zum Handhaben von verschiedenen grundlegenden Systemdienstleistungen und zum Durchführen von Hardware-abhängigen Aufgaben enthält;
    • • ein Kommunikationsmodul 120 (jeweils in elektronischen Geräten 102 und 104), das verwendet wird, um das elektronische Gerät 102 oder 104 jeweils mit anderen Geräten über ihre eine oder mehrere jeweilige Kommunikationsschnittstelle 112 (verdrahtet oder drahtlos) und eines oder mehrere Kommunikationsnetzwerke, wie zum Beispiel das Internet, andere Wide Area Networks, Local Area Networks, Metropolitan Area Networks, usw. zu verbinden;
    • • ein Ereignisliefersystem 122 (jeweils in den elektronischen Geräten 102 und 104) das in verschiedenen alternativen Ausführungsformen innerhalb des Betriebssystems 118 oder in der Anwendungs-Software 124 implementiert werden kann;
    • • in einigen Ausführungsformen werden dennoch einige Aspekte des Ereignisliefersystems 122 in dem Betriebssystem 118 implementiert, während andere Aspekte in Anwendungs-Software 124 implementiert werden;
    • • eine oder mehrere Anwendungen jeweils in Anwendungs-Software 124 (z. B. eine Email-Anwendung, eine Webbrowser-Anwendung, eine Textnachrichtenanwendung, usw.).
  • Jedes der oben identifizierten Elemente kann in einem oder mehreren der zuvor erwähnten Speichergeräte gespeichert werden, und entspricht einem Satz von Anweisungen zum Durchführen von hier beschriebenen Funktionen. Der Satz von Anweisungen kann durch einen oder mehreren Prozessoren (z. B. den einen oder die mehreren CPUs 110) durchgeführt werden. Die oben identifizierten Module oder Programme (d. h. Sätze von Anweisungen) brauchen nicht als separate Software-Programme, Prozeduren oder Module implementiert zu werden und daher können verschiedene Untersätze von diesen Modulen kombiniert oder anderenfalls in verschiedenen Ausführungsformen neu arrangiert werden. In einigen Ausführungsformen kann Speicher 111 einen Untersatz der oben identifizierten Module und Datenstrukturen speichern. Ferner kann Speicher 111 zusätzliche Module und Datenstrukturen, die oben nicht beschrieben sind, speichern.
  • 2 ist ein Diagramm eines Eingabe-/Ausgabeverarbeitungsstacks 200 eines beispielhaften Gerätes oder Vorrichtung (z. B. Gerät 102 oder 104) nach einigen Ausführungsformen der Erfindung. Die Hardware (z. B. elektronische Schaltung) 212 des Gerätes befindet sich auf dem Basisniveau des Eingabe-/Ausgabeverarbeitungsstacks 200. Hardware 212 kann verschiedene Hardwareschnittstellenkomponenten, wie z. B. die in 1A und/oder 1B dargestellten Komponenten enthalten. Hardware 212 kann auch einen oder mehrere der oben erwähnten Sensoren 130 enthalten. Alle diese anderen Elemente (202210) des Eingabe-/Ausgabeverarbeitungsstacks 200 sind Softwareprozeduren, oder Teile von Softwareprozeduren, die die von der Hardware 212 empfangene Eingabe bearbeiten und verschiedene Ausgaben erzeugen, die durch eine Hardwarebenutzerschnittstelle (z. B. eine oder mehrere von einer Anzeige, Lautsprechern, Geräteschwingungsauslöser) dargestellt werden.
  • Ein Treiber oder ein Satz von Treibern 210 kommuniziert mit der Hardware 212. Die Treiber 210 können die von der Hardware 212 empfangenen Eingabedaten empfangen und bearbeiten. Ein Kernbetriebssystem („OS”) 208 kann mit dem Treiber (den Treibern) 210 kommunizieren. Das Kern-OS 208 kann die von dem Treiber (den Treibern) 210 empfangenen Roheingabedaten verarbeiten. In einigen Ausführungsformen können die Treiber 210 als ein Teil des Kern-OS 208 gedacht werden.
  • Ein Satz von OS-Anwendungsprogrammierschnittstellen („OS APIs”) 206 sind Softwareprozeduren, die mit dem Kern-OS 208 kommunizieren. In einigen Ausführungsformen sind die APIs 206 in dem Betriebssystem des Gerätes enthalten, aber auf einem Niveau oberhalb des Kern-OS 208. Die APIs 206 werden für die Verwendung durch Anwendungen, die auf den hier diskutierten elektronischen Geräten oder Vorrichtungen laufen, entworfen. Benutzerschnittstelle (UI) APIs 204 können die OS APIs 206 benutzen. Anwendungssoftware („Anwendungen”) 202, die auf dem Gerät läuft, kann die UI APIs 204 benutzen, um mit dem Benutzer zu kommunizieren. Die UI APIs 204 können wiederum mit Niedrigniveauelementen kommunizieren, schließlich mit verschiedener Benutzerschnittstellenhardware z. B. Multitouch-Anzeige 156.
  • Während jede Schicht des Eingabe-/Ausgabeverarbeitungsstacks 200 die darunterliegende Schicht benutzen kann, ist dies nicht immer erforderlich. Z. B. in einigen Ausführungsformen können Anwendungen 202 gelegentlich mit OS APIs 206 kommunizieren. Im Allgemeinen können Schichten bei oder oberhalb der OS-API-Schicht 206 nicht direkt auf das Kern-OS 208, Treiber 210, oder Hardware 212 zugreifen, weil diese Schichten als privat gedacht werden. Anwendungen in Schicht 202 und der UI API 204 rufen normalerweise die OS API 206 direkt auf, welche wiederum auf die Schichten Kern-OS 208, Treiber 210, und Hardware 212 zugreift.
  • Auf andere Weise erläutert, detektieren ein oder mehrere Hardwareelemente 212 des elektronischen Gerätes 102 oder 104, und Software, die auf dem Gerät läuft, wie z. B. Treiber 212 (in 2 dargestellt), Kern-OS (Betriebssystem) 208 (in 2 dargestellt, Betriebssystem API Software 206 (in 2 dargestellt), Anwendung und Benutzerschnittstellen API Software 204 (in 2 dargestellt) Eingabeereignisse (die Unterereignissen in einer Geste entsprechen können) bei einem oder mehreren des Eingabegerätes (der Eingabegeräte) 128 und/oder einer berührungsempfindlichen Anzeige 156, und erzeugen oder aktualisieren verschiedene Datenstrukturen (im Speicher des Gerätes 102 oder 104 gespeichert), die durch einen Satz von gegenwärtig aktiven Ereigniserkennern verwendet werden, um festzustellen, ob und wann die Eingabeereignisse einem Ereignis entsprechen, das an Anwendung 202 zu liefern ist. Ausführungsformen von Ereigniserkennungsmethodologien, Vorrichtungen und Computerprogrammprodukten sind unten ausführlicher beschrieben.
  • 3A stellt eine beispielhafte Ansichtshierarchie 300 dar, die in diesem Beispiel ein Suchprogramm ist, das in äußerster Ansicht 302 angezeigt wird. Äußerste Ansicht 302 schließt normalerweise die Gesamtbenutzerschnittstelle ein, mit der ein Benutzer direkt interagieren kann, und enthält untergeordnete Ansichten, z. B.
    • • Suchergebnisfeld 304, das Suchergebnisse gruppiert und vertikal gescrollt werden kann;
    • • Suchfeld 306, das Texteingabe entfernt;
    • • eine Homezeile 310, die Anwendungen für Schnellzugriff gruppiert.
  • In diesem Beispiel enthält jede untergeordnete Ansicht Niedrigniveau untergeordnete Ansichten. In anderen Beispielen kann die Anzahl der Ansichtenniveaus in der Hierarchie 300 in unterschiedlichen Abzweigen der Hierarchie unterscheiden, wobei eine oder mehrere untergeordnete Ansichten Niedrigniveau untergeordnete Ansichten haben, und eine oder mehrere andere untergeordnete Ansichten haben keine solchen Niedrigniveau untergeordnete Ansichten. Mit diesem in 3A dargestellten Beispiel fortgesetzt, enthält das Suchergebnisfeld 304 getrennt untergeordnete Ansichten 305 (dem Feld 304 untergeordnet) für jedes Suchergebnis. Hier zeigt das Beispiel ein Suchergebnis in einer untergeordneten Ansicht, die die Kartenansicht 305 genannt wird. Suchfeld 306 enthält eine untergeordnete Ansicht, die hier die Läsche-Inhalte-Icon Ansicht 307 genannt wird, die die Inhalte des Suchfelds löscht, während der Benutzer eine bestimmte Aktion (z. B. eine Einzelberührung oder Schlaggeste) auf dem Lösche-Inhalte-Icon in der Ansicht 307 durchführt. Homezeile 310 enthält untergeordnete Ansichten 310-1, 310-2, 310-3, und 310-4, die jeweils einer Kontaktanwendung, einer Emailanwendung, einem Webbrowser, und einer iPod-Musikschnittstelle entsprechen.
  • Ein Berührungsunterereignis 301-1 wird in der äußersten Ansicht 302 dargestellt. Ist die Position des Berührungsunterereignisses 301-1 über sowohl dem Suchergebnisfeld 304, als auch Kartenansicht 305 gegeben, wird das Berührungsunterereignis auch über diesen Ansichten jeweils als 301-2 und 301-3 dargestellt. Aktiv involvierte Ansichten des Berührungsunterereignisses enthalten die Ansichten-Suchergebnis-Felder 304, Kartenansicht 305 und äußerste Ansichten 302. Zusätzliche Informationen bezüglich Unterereignislieferung und aktiv involvierter Ansichten werden unten bezugnehmend auf 3B und 3C bereitgestellt.
  • Ansichten (und entsprechende programmatische Niveaus) können verschachtelt werden. Mit anderen Worten können Ansichten andere Ansichten enthalten. Folglich kann das Softwareelement (die Softwareelemente) (z. B. Ereigniserkenner), die mit einer ersten Ansicht assoziiert ist, ein oder mehrere Softwareelemente, die mit Ansichten innerhalb der ersten Ansicht assoziiert sind, enthalten oder mit diesen verbunden werden. Während einige Ansichten mit Anwendungen assoziiert werden können, können andere mit Hochniveau-OS-Elementen, wie z. B. graphischen Benutzerschnittstellen, Fenstermanagern, usw. assoziiert werden.
  • Um folgende Diskussion zu vereinfachen, wird Bezug allgemein nur auf Ansichten und die Ansichtshierarchie genommen, aber es muss verstanden werden, dass in einigen Ausführungsformen das Verfahren mit einer programmatischen Hierarchie mit einer Mehrzahl von programmatischen Schichten, und/oder einer Ansichtshierarchie funktionieren kann.
  • 3B und 3C stellen beispielhafte Verfahren und Strukturen dar, die zu Ereigniserkennern relevant sind. 3B stellt Verfahren und Datenstrukturen für Ereignishandhabung dar, wenn Ereignishandler mit bestimmten Ansichten innerhalb einer Hierarchie von Ansichten assoziiert sind. 3C stellt Verfahren und Datenstrukturen für Ereignishandhabung dar, wenn Ereignishandler mit bestimmten Niveaus innerhalb einer Hierarchie von programmatischen Niveaus assoziiert sind. Ereigniserkenner-Globalverfahren 312 und 350 enthalten jeweils Schlagansichten und Schlagniveauentscheidungsmodule 314 und 352, aktive Ereigniserkenner-Entscheidungsmodule 316 und 354, und Unterereignisliefermodule 318 und 356.
  • Schlagansicht und Schlagniveauentscheidungsmodule 314 und 352 stellen jeweils Softwareprozeduren bereit, um festzustellen, wo ein Unterereignis innerhalb einer oder mehrerer Ansichten, z. B. der in 3A dargestellten beispielhaften Ansichtshierarchie 300, die drei Hauptabzweige hat, geschehen ist.
  • Das Schlagansicht-Entscheidungsmodul 314 der 3B empfängt Information bezüglich eines Unterereignisses, z. B. einer Benutzerberührung, die als 301-1 auf der äußersten Ansicht 302, auf einem Suchergebnis (Kartenansicht 305) und der Suchergebnisfeldansicht 304 dargestellt wird. Das Schlagansicht-Entscheidungsmodul 314 identifiziert eine Schlagansicht als die niedrigste Ansicht in der Hierarchie, die das Unterereignis handhaben soll. In meisten Umständen ist die Schlagansicht die niedrigste Niveauansicht, in der ein beginnendes Unterereignis (z. B. das erste Unterereignis in der Reihenfolge von Unterereignissen, die ein Ereignis oder potenzielles Ereignis bilden) geschieht. Sobald Die Schlagansicht identifiziert wird, wird es alle untergeordneten Ereignisse bezüglich der gleichen Berührung oder Eingabequelle empfangen, für die die Schlagansicht identifiziert wird.
  • In einigen Ausführungsformen kann das Schlagniveauentscheidungsmodul 352 der 3C einen ähnlichen Prozess benutzen.
  • Aktive Ereigniserkenner-Entscheidungsmodule 316 und 354 der Ereigniserkenner-Globalverfahren 312 und 350 entscheiden jeweils, welche Ansicht oder Ansichten innerhalb einer Ansichtshierarchie eine bestimmte Reihenfolge von Unterereignissen empfangen sollen. 3A stellt einen beispielhaften Satz von aktiven Ansichten 302, 304, und 305 dar, die das Unterereignis 301 empfangen. In dem Beispiel von 3A wird das aktive Ereigniserkenner-Entscheidungsmodul 304 entscheiden, dass die höchste Niveauansicht 302, Suchergebnisfelder 304 und Kartenansicht 305 aktiv involvierte Ansichten sind, weil diese Ansichten die physikalische Position der Berührung enthalten, die durch Unterereignis 301 dargestellt wird. Es wird darauf hingewiesen, dass selbst wenn Berührungsunterereignis 301 insgesamt auf das Gebiet eingeschränkt wird, das mit Kartenansicht 305 assoziiert ist, Suchergebnisfelder 304 und höchste Niveauansicht 302 noch in den aktiv involvierten Ansichten bleiben werden, weil das Suchergebnisfeld 304 und die höchste Niveauansicht 302 Vorläufer der Kartenansicht 305 sind.
  • In einigen Ausführungsformen benutzen aktive Ereigniserkenner-Entscheidungsmodule 316 und 354 ähnliche Prozesse.
  • Unterereignisliefermodul 318 liefert Unterereignisse an Ereigniserkenner für aktiv involvierte Ansichten. Benutzen wir das Beispiel von 3A, wird eine Berührung des Benutzers in unterschiedlichen Ansichten der Hierarchie durch Berührungsmarken 301-1, 301-2, und 301-3 repräsentiert. In einigen Ausführungsformen werden Unterereignisdaten, die diese Berührung des Benutzers repräsentieren, durch das Unterereignisliefermodul 318 an Ereigniserkenner bei den aktiv involvierten Ansichten, d. h. höchste Niveauansicht 302, Suchergebnisfeld 304, und Kartenansicht 305 geliefert. Ferner können Ereigniserkenner einer Ansicht nachfolgende Unterereignisse eines Ereignisses empfangen, das mit der Ansicht (z. B. wenn ein Anfangsunterereignis innerhalb der Ansicht geschieht) beginnt. Auf andere Weise erläutert, kann eine Ansicht Unterereignisse empfangen, die mit Benutzerinteraktionen assoziiert sind, die in der Ansicht beginnen, selbst wenn es außerhalb der Ansicht fortgesetzt wird.
  • In einigen Ausführungsformen liefert Unterereignisliefermodul 356 Unterereignisse an Ereigniserkenner für aktiv involvierte programmatische Niveaus in einem Prozess, der ähnlich zu dem ist, der durch Unterereignisliefermodul 318 verwendet wird.
  • In einigen Ausführungsformen wird eine getrennte Ereigniserkennerstruktur 320 oder 360 für jeden aktiv involvierten Ereigniserkenner erzeugt und im Speicher des Gerätes gespeichert. Ereigniserkennerstrukturen 320 und 360 enthalten typischerweise jeweils einen Ereigniserkennerzustand 334, 374 (wird unten ausführlicher diskutiert, wenn Bezug auf 4A und 4B genommen wird), und jeweils ereigniserkennerspezifische Codes 338, 378, die jeweils Zustandsmaschinen 340, 380 aufweisen. Ereigniserkennerstruktur 320 enthält auch einen Ansichtshierarchieverweis 336, während Ereigniserkennerstruktur 360 einen programmatischen Hierarchieverweis 376 enthält. Jedes Beispiel eines bestimmten Ereigniserkenners bezieht sich exakt auf eine Ansicht oder ein programmatisches Niveau. Ansichtshierarchieverweis 336 oder programmatischer Hierarchieverweis 376 (für einen bestimmten Ereigniserkenner) werden verwendet, um festzulegen, welche Ansicht oder welches programmatische Niveau logisch an den jeweiligen Ereigniserkenner gekoppelt ist.
  • Ansichts-Metadaten 341 und Niveau-Metadaten 381 können jeweils Daten bezüglich einer Ansicht oder eines Niveaus enthalten. Ansichts- oder Niveau-Metadaten können mindestens die folgenden Eigenschaften erhalten, die die Unterereignislieferung an Ereigniserkenner beeinflussen können:
    • • Eine Stopeigenschaft 342, 382, die, wenn für eine Ansicht oder programmatisches Niveau eingestellt, Unterereignislieferung an Ereigniskenner verhindert, die mit der Ansicht oder programmatischem Niveau sowie ihren Vorläufern in der Ansicht oder programmatischen Hierarchie assoziiert sind.
    • • Eine Sprungeigenschaft 343, 383, die, wenn für eine Ansicht oder programmatisches Niveau eingestellt, Unterereignislieferung an Ereigniserkenner verhindert, die mit dieser Ansicht oder diesem programmatischen Niveau assoziiert sind, aber Unterereignislieferung an ihre Vorläufer in der Ansicht oder programmatischen Hierarchie erlaubte.
    • • Eine Kein-Schlag-Sprungeigenschaft 344, 384, die, wenn für eine Ansicht eingestellt, Lieferung von Unterereignissen an Ereigniserkenner verhindert, die mit der Ansicht assoziiert sind, sofern die Ansicht keine Schlagansicht ist. Wie oben diskutiert, identifizierte das Schlagansicht-Entscheidungsmodul eine Schlagansicht (oder Schlagniveau im Fall des Schlag-Niveau-Entscheidungsmoduls 352) als die niedrigste Ansicht in der Hierarchie, die das untere Ereignis handhaben soll.
  • Ereigniserkennungsstrukturen 320 und 360 können Metadaten 322, 362, jeweils enthalten. In einigen Ausführungsformen enthalten die Metadaten 322, 362 konfigurierbare Eigenschaften, Flags, und Listen, die angeben, wie das Ereignisliefersystem Unterereignislieferer an aktiv involvierte Ereigniserkenner durchführen soll. In einigen Ausführungsformen können Metadaten 322, 362 konfigurierbare Eigenschaften, Flags, und Listen enthalten, die angeben, wie Ereigniserkenner miteinander interagieren können. In einigen Ausführungsformen können Metadaten 322, 362 konfigurierbare Eigenschaften, Flags, und Listen enthalten, die angeben, ob Unterereignisse an verschiedenen Niveaus in der Ansicht oder programmatischen Hierarchie geliefert werden. In einigen Ausführungsformen werden die Kombination von Ereigniserkenner-Metadaten 322, 362 als auch Ansichts- oder Niveau-Metadaten (341, 381 jeweils) verwendet, um das Ereignisliefersystem zu konfigurieren: a) Unterereignislieferung an aktiv involvierte Ereigniserkenner durchzuführen, b) anzugeben, wie Ereigniserkenner miteinander interagieren können und c) anzugeben, ob und wann Unterereignisse an verschiedenen Niveaus in der Ansicht oder programmatischen Hierarchie geliefert werden.
  • Es wird darauf hingewiesen, dass in einigen Ausführungsformen ein jeweiliger Ereigniserkenner eine Ereigniserkennungsaktion 333, 373 an sein jeweiliges Ziel 335, 375 sendet, wie durch Felder der Ereigniserkennerstruktur 320, 360 spezifiziert wird. Das Senden einer Aktion an ein Ziel unterscheidet sich von dem Senden (und verzögertem Senden) von Unterereignissen an eine jeweilige Schlagansicht oder – Niveau.
  • Die Metadaten-Eigenschaften, die in einer jeweiligen Ereigniserkennerstruktur 320, 360 eines entsprechenden Ereigniserkenners gespeichert sind, enthalten mindestens:
    • • ein Ausschließlichkeits-Flag 324, 364, das, wenn für einen Ereigniserkenner eingestellt, angibt, dass beim Erkennen eines Ereignisses durch den Ereigniserkenner das Ereignisliefersystem die Lieferung von Unterereignissen an irgendwelche Ereigniserkenner der aktiv involvierten Ansichten oder programmatischen Niveaus (mit der Ausnahme von irgendwelchen Ereigniserkennern, die in einer Ausnahmeliste 326, 366 aufgelistet sind) stoppen soll. Wenn der Empfang eines Unterereignisses einen bestimmten Ereigniserkenner dazu veranlasst, in den ausschließlichen Zustand einzutreten, wie durch sein entsprechendes Ausschließlichkeits-Flag 324 oder 364 angegeben wird, werden dann nachfolgende Unterereignisse nur an den Ereigniserkenner in den ausschließlichen Zustand (sowie irgendwelche andere Ereigniserkenner, die in einer Ausnahmeliste 326, 366 aufgelistet sind) geliefert.
    • • einige Ereigniserkennerstrukturen 320, 360 können eine Ausschließlichkeits-Ausnahmeliste 326, 366 aufweisen. Wenn in der Ereigniserkennerstruktur 320, 360 für einen jeweiligen Ereigniserkenner enthalten wird, gibt diese Liste 326, 366 den Satz von Ereigniserkennern an, wenn irgendwelche, die mit dem Empfang von Unterereignissen fortzusetzen sind, selbst wenn der jeweilige Ereigniserkenner in den Ausschließlichkeitszustand eingetreten ist. Zum Beispiel, wenn der Ereigniserkenner für ein Einzelschlagereignis in den ausschließlichen Zustand eintritt, und die gegenwärtig involvierten Ansichten einen Ereigniserkenner für ein Doppelschlagereignis enthalten, würde die Liste 320, 360 dann den Doppelschlag Ereigniserkenner auflisten, sodass ein Doppelschlagereignis erkannt werden kann, selbst wenn ein Einzelschlagereignis detektiert worden ist. Daher erlaubt die Ausschließlichkeits-Ausnahmeliste 326, 366 es den Ereigniserkennern, unterschiedliche Ereignisse zu erkennen, die gleiche Reihenfolgen von Unterereignissen teilen, zum Beispiel eine Einzelschlagereigniserkennung schließt nachfolgende Erkennung eines Doppel- bzw. Triple-Schlagereignisses durch andere Ereigniserkenner nicht aus.
    • • einige Ereigniserkennerstrukturen 320, 360 können eine Warteliste 327, 367 enthalten. Wenn in der Ereigniserkennerstruktur 320, 360 für einen jeweiligen Ereigniserkenner enthalten wird, gibt diese Liste 327, 367 den Satz von Ereigniserkennern an, wenn irgendwelche, die in den Ereignis-unmöglich- oder Ereignis-gelöscht-Zustand eintreten müssen, bevor der jeweilige Ereigniserkenner ein jeweiliges Ereignis erkenne kann. In der Tat haben die aufgelisteten Ereigniserkenner höhere Priorität für die Erkennung eines Ereignisses als die Ereigniserkenner mit der Warteliste 327, 367.
    • • ein Verzögerungsberührung-beginnt-Flag 328, 368, das, wenn für einen Ereigniserkenner eingestellt, den Ereigniserkenner dazu veranlasst, das Senden von Unterereignissen (einschließlich eines Berührung-beginnt oder Finger-nach-unten Unterereignisses, und nachfolgender Ereignisse) an die jeweilige Schlagansicht oder -Niveau des Ereigniserkenners zu verzögern, bis es festgestellt worden ist, dass die Reihenfolge von Unterereignissen der Ereignisart dieses Ereigniserkenners nicht entspricht. Dieses Flag kann verwendet werden, um zu verhindern, dass die Schlagansicht oder -Niveau jemals irgendwelche der Unterereignisse im Fall, dass die Liste erkannt wird, sieht. Wenn es dem Ereigniserkenner nicht gelungen ist, ein Ereignis zu erkennen, kann das Berührungsbeginn-Unterereignis (und nachfolgende Berührungsende-Unterereignis) an die Schlagansicht oder -Niveau geliefert werden. In einem Beispiel veranlasst die Lieferung solcher Unterereignisse an die Schlagansicht oder -Niveau die Benutzerschnittstelle dazu, ein Objekt kurz hervorzuheben, ohne die mit diesem Objekt assoziierte Aktion auszulösen.
    • • ein Verzögerungsberührungs-Endflag 330, 370, das, wenn für einen Ereigniserkenner eingestellt, den Ereigniserkenner dazu veranlasst, das Senden eines Unterereignisses (zum Beispiel eines Berührungsende-Unterereignisses) an die jeweilige Schlagansicht oder -Niveau des Ereigniserkenners zu verzögern, bis festgestellt worden ist, dass die Reihenfolge von Unterereignissen dieser Ereignisart des Ereigniserkenners nicht entspricht. Dies kann verwendet werden, um zu verhindern, dass die Schlagansicht oder -Niveau bei einem Berührungsende-Unterereignis, im Fall, dass die Liste später erkannt wird, agiert. Solange das Berührungsende-Unterereignis nicht gesendet wird, kann eine gelöschte Berührung an die Schlagansicht- oder Niveau gesendet werden. Wenn ein Ereignis erkannt wird, wird die entsprechende Aktion durch eine Anwendung durchgeführt, und das Berührungsende-Unterereignis wird an die Schlagansicht oder -Niveau geliefert.
    • • ein Berührungslöschungs-Flag 332, 372, das, wenn für einen Ereigniserkenner eingestellt, den Ereigniserkenner dazu veranlasst, Berührung- oder Eingabelöschung an die jeweilige Schlagansicht oder Schlagniveau des Ereigniserkenners zu senden, wenn es festgestellt worden ist, dass die Reihenfolge von Unterereignissen der Ereignisart dieses Ereigniserkenners nicht entspricht. Die Berührungs- und Eingabelöschung, die an die Schlagansicht oder -niveau gesendet wird, zeigt, dass ein vorhergehendes Unterereignis (zum Beispiel ein Berührungsbeginn-Unterereignis) gelöscht worden ist. Die Berührungs- oder Eingabelöschung kann den Eingabequelle-Handlerzustand (siehe 4b) dazu veranlassen, in den Eingabereihenfolge-gelöscht-Zustand 460 (wird unten diskutiert) einzutreten.
  • In einigen Ausführungsformen kann die Ausnahmeliste 326, 366 auch durch nicht ausschließliche Ereigniserkenner verwendet werden. Insbesondere, wenn ein nicht ausschließlicher Ereigniserkenner ein Ereignis erkennt, werden nachfolgende Unterereignisse nicht an die ausschließlichen Ereigniserkenner, die mit den gegenwärtigen aktiven Ansichten assoziiert sind, geliefert, bis auf diese ausschließlichen Ereigniserkenner, die in der Ausnahmeliste 326, 366 des Ereigniserkenners aufgelistet sind, der das Ereignis erkennt.
  • In einigen Ausführungsformen können Ereigniserkenner konfiguriert werden, um das Berührungslöschungs-Flag in Verbindung mit dem Verzögerungsberührungs-Endflag zu benutzen, um zu verhindern, dass unerwünschte nachfolgende Ereignisse an die Schlagansicht geliefert werden. Zum Beispiel sind die Definition einer Einzelschlaggeste und die erste Hälfte einer Doppelschlaggeste identisch. Sobald ein Ereigniserkenner einen Einzelschlag erfolgreich erkennt, kann eine unerwünschte Aktion geschehen. Wenn das Verzögerungsberührungs-Endflag eingestellt wird, wird verhindert, dass der Einzelschlag-Ereigniserkenner Unterereignisse an die Schlagansicht sendet, bis ein Einzelschlagereignis erkannt wird. Zusätzlich kann die Warteliste eines Einzelschlagereigniserkenners den Doppelschlagereigniserkenner identifizieren, wobei es folglich verhindert wird, dass der Einzelschlag-Ereigniserkenner einen Einzelschlag erkennt, bis der Doppelschlag-Ereigniserkenner in den Ereignis-unmöglich-Zustand eingetreten ist. Die Verwendung der Warteliste vermeidet die Ausführung von Aktionen, die mit einem Einzelschlag assoziiert sind, wenn eine Doppelschlaggeste durchgeführt wird. Stattdessen werden nur Aktionen, die mit einem Doppelschlag assoziiert werden, in Antwort auf Erkennung des Doppelschlagereignisses ausgeführt.
  • Wenden wir uns insbesondere an Formen der Benutzerberührungen auf berührungsempfindlichen Oberflächen, wie oben erläutert, Berührungen und Benutzergesten können eine Aktion enthalten, die nicht sofort sein muss, zum Beispiel kann eine Berührung einen Akt von Bewegung oder Halten eines Fingers gegen eine Anzeige für eine Zeitdauer enthalten. Eine Berührungsdatenstruktur definiert dennoch den Zustand einer Berührung (oder allgemeiner den Zustand jeder Eingabequelle) zu einer bestimmten Zeit. Daher können sich die in einer Berührungsdatenstruktur gespeicherten Felder über den Ablauf einer Einzelberührung ändern, wobei es ermöglicht wird, dass der Zustand der Einzelberührung zu unterschiedlichen Zeitpunkten an eine Anwendung zu übermitteln ist.
  • Jede Berührungsdatenstruktur kann verschiedene Felder aufweisen. In einigen Ausführungsformen können Berührungsdatenstrukturen Daten enthalten, die mindestens den Berührungs-spezifischen Feldern 339 in 3b oder den Eingabequelle-spezifischen Feldern 379 in 3c entsprechen.
  • Zum Beispiel kann ein „erste Berührung für Ansicht” Feld 345 in 3b (385 für „erste Berührung für Niveau” in 3c) zeigen, ob die Berührungsdatenstruktur die erste Berührung für die bestimmte Ansicht definiert (weil das Softwareelement, das die Ansicht implementiert, instantiiert wird). Ein „Zeitstempel” Feld 346, 386 kann die besondere Zeit zeigen, auf die sich die Berührungsdatenstruktur bezieht.
  • Wahlweise kann ein „Info”-Feld 347, 387 verwendet werden, um zu zeigen, ob eine Berührung eine rudimentäre Geste ist. Zum Beispiel kann das „Info”-Feld 347, 387 zeigen, ob die Berührung ein Streichen ist, und, wenn ja, in welche Richtung das Streichen ausgerichtet ist. Ein Streichen ist ein schnelles Schleppen eines oder mehrerer Finger in eine geradlinige Richtung. API-Implementationen (werden unten diskutiert) können bestimmen, ob eine Berührung ein Streichen ist, und diese Information an die Anwendung durch das „Info”-Feld 347, 387 übermitteln, daher wird der Einsatz einiger Datenverarbeitungen verringert, die notwendig gewesen wären, wenn die Berührung ein Streichen wäre.
  • Wahlweise kann ein „Schlagzähler”-Feld 348 in 3B („Ereigniszähler”-Feld 388 in 3C) zeigen, wie viele Schläge nacheinander folgend bei der Position der Anfangsberührung durchgeführt worden sind. Ein Schlag kann als ein schnelles Drücken und Abheben eines Fingers gegen ein berührungsempfindliches Feld bei einer bestimmten Position definiert werden. Mehrere nacheinander folgende Schläge können geschehen, wenn der Finger in schneller Folge bei der gleichen Position des Feldes wieder gedrückt und freigegeben wird. Ein Ereignisliefersystem 124 kann Schläge zählen und diese Information an eine Anwendung durch das „Schlagzähler”-Feld 348 übermitteln. Mehrere Schläge bei der gleichen Position werden manchmal als ein nützlicher und einfach zu merkender Befehl für Berührungsfelderschnittstellen gedacht. Daher kann durch Zählen von Schlägen das Ereignisliefersystem wieder einige Datenverarbeitung von der Anwendung verringern.
  • Ein „Phase”-Feld 349, 389 kann eine bestimmte Phase zeigen, in der sich die berührungsbasierte Geste gegenwärtig befindet. Das „Phase”-Feld 349, 389 kann verschiedene Werte haben, wie zum Beispiel „Berührungsphase begann”, die zeigen kann, dass die Berührungsdatenstruktur eine neue Berührung definiert, auf die kein Bezug durch vorherige Berührungsdatenstrukturen genommen worden ist. Ein „Berührungsphase bewegt”-Wert kann zeigen, dass die definierte Berührung von einer vorherigen Position sich bewegt hat. Ein „Berührungsphase stehend”-Wert kann zeigen, dass die Berührung in der gleichen Position geblieben ist. Ein „Berührungsphase beendet”-Wert kann zeigen, dass die Berührung beendet wird (z. B. der Benutzer hat seinen bzw. ihren Finger von der Oberfläche einer Multiberührungsanzeige abgehoben). Ein „Berührungsphase gelöscht”-Wert kann zeigen, dass die Berührung durch das Gerät gelöscht worden ist. Eine gelöschte Berührung kann eine Berührung sein, die nicht durch einen Benutzer beendet werden muss, aber die das Gerät entschieden hat zu ignorieren. Zum Beispiel kann das Gerät bestimmen, dass die Berührung unabsichtlich erzeugt wird (d. h. als Ergebnis vom Legen eines tragbaren multiberührungsfähigen Gerätes in jemandes Tasche) und die Berührung für diesen Grund ignorieren. Jeder Wert des „Phase”-Feldes 349, 389 kann eine ganze Zahl sein.
  • Daher kann jede Berührungsdatenstruktur definieren, was mit einer Berührung (oder anderen Eingabequelle) zu einer bestimmten Zeit geschieht (z. B. ob die Berührung stehend ist, bewegt wird, usw.) sowie andere Information, die mit der Berührung (wie z. B. Position) assoziiert ist. Folglich kann jede Berührungsdatenstruktur den Zustand einer bestimmten Berührung zu einem bestimmten Zeitpunkt definieren. Eine oder mehrere Berührungsdatenstruktur, die sich auf die gleiche Zeile beziehen, können in eine Berührungsereignisdatenstruktur hinzugefügt werden, die die Zustände aller Berührungen definiert, die eine bestimmte Ansicht zu einem bestimmten Zeitpunkt empfängt (wie oben bemerkt, können sich einige Berührungsdatenstrukturen auch auf Berührungen beziehen, die beendet sind und nicht mehr empfangen werden). Multitouch-Ereignisstrukturen können im Laufe der Zeit an die Software gesendet werden, die eine Ansicht implementiert, um die Software mit kontinuierlichen Informationen auszustatten, die die Berührungen beschreiben, die in der Ansicht geschehen.
  • Die Fähigkeit, komplexe berührungsbasierte Gesten handzuhaben, wahlweise Multi-Touch-Gesten aufweisende, können Komplexität zu den verschiedenen Software-Elementen hinzufügen. In einigen Fällen kann solche zusätzliche Komplexität notwendig sein, um fortgeschrittene und gewünschte Schnittstellenmerkmale zu implementieren. Zum Beispiel kann ein Spiel die Fähigkeit erfordern, mehrere gleichzeitige Berührungen handzuhaben, die in unterschiedlichen Ansichten geschehen, weil Spiele oft das Drücken von mehreren Tasten zur gleichen Zeit oder das Kombinieren von Beschleunigungsmessdaten mit Berührungen auf einer berührungsempfindlichen Oberfläche erfordern. Einige einfacheren Anwendungen und/oder Ansichten (und ihre assoziierten Software-Elemente) brauchen dennoch keinen fortgeschrittenen Schnittstellenmerkmale. Zum Beispiel kann eine einfache Soft-Taste (d. h. eine Taste, die auf einer berührungsempfindlichen Anzeige angezeigt wird) in zufriedenstellender Weise mit Einzelberührungen funktionieren, statt Multi-Touch-Funktionalität. In diesen Fällen kann das unten liegende OS unnötige oder exzessive Berührungsdaten (z. B. Multi-Touch-Daten) an ein Software-Element senden, das mit einer Ansicht assoziiert ist, die beabsichtigt wird, nur durch Einzelberührungen (z. B. eine Einzelberührung oder Schlag auf eine Soft-Taste) zu funktionieren. Weil das Software-Element die Verarbeitung dieser Daten brauchen kann, kann es an Komplexität eines Software-Elements brauchen, das mehrere Berührungen handhabt, obwohl es mit einer Ansicht assoziiert ist, für die nur Einzelberührungen relevant sind. Dies kann die Kosten der Entwicklung von Software für dieses Gerät erhöhen, weil Software-Elemente, die traditionell in einer Mausschnittstellenumgebung (z. B. verschiedene Tasten usw.) einfach zu programmieren gewesen sind, in einer Multi-Touch-Umgebung viel komplizierter sind.
  • Es sollte noch verstanden werden, dass die vorherige Diskussion bezüglich der Komplexität von Evaluierung und Verarbeitung von Benutzerberührungen auf berührungsempfindlichen Oberflächen auch auf alle Formen von Benutzereingaben angewandt werden kann, um elektronische Geräte 102 und 104 mit Eingabegeräten, jeweils 128 und 158 zu bedienen, nicht alle von denen auf Berührungsbildschirmen initiiert werden, z. B. koordinierende Mausbewegungen oder Maustaste drücken mit oder ohne einzelne oder mehrere Tastaturdrücken oder Anhalten, Benutzerbewegungsschläge, Schleppen, Scrollen, usw. auf Berührungsfeldern, Stifteingabe, mündliche Anweisungen, detektierte Augenbewegungen, biometrische Eingabe, detektierte physiologische Änderung in einem Benutzer, und/oder irgendeine Kombination davon, die als Eingabe benutzt werden können, die Unterereignissen entsprechen, die ein zu erkennendes Ereignis definieren.
  • 4A stellt eine Ereigniserkennerzustandsmaschine 400 dar, die vier Zustände enthält. Durch Verwaltung von Zustandsübergängen in Ergniserkennerzustandsmaschine 400 basierend auf empfangenen Unterereignissen, drückt ein Ereigniserkenner effektiv eine Ereignisdefinition aus. Zum Beispiel kann eine Schlaggeste effektiv durch eine Reihenfolge von zwei, oder wahlweise drei Unterereignisse definiert werden. Zuerst soll eine Berührung detektiert werden, und das wird Unterereignis 1. Zum Beispiel das Berührungsunterereignis kann die Berührung einer berührungsempfindlichen Oberfläche durch einen Finger des Benutzers in einer Ansicht sein, die den Ereigniserkenner mit Zustandsmaschine 400 enthält. Zweitens wird eine wahlweise gemessene Verzögerung, wobei die Berührung nicht wesentlich in irgendwelche gegebenen Richtungen bewegt wird (z. B. irgendeine Bewegung der Berührungsposition ist kleiner als eine vorbestimmte Schwelle, die aus einer Entfernung (z. B. 5 mm) oder als eine Anzahl von Pixeln (z. B. 5 Pixel) auf der Anzeige gemessen werden kann), und die Verzögerung genügend kurz ist, als Unterereignis 2 dienen. Letztendlich wird die Beendigung der Berührung (z. B. Abheben des Fingers des Benutzers von der berührungsempfindlichen Oberfläche) als Unterereignis 3 dienen. Durch Kodierung der Ereigniserkennerzustandsmaschine 400 zum Übergehen zwischen Zuständen basierend auf Empfangen von diesen Unterereignissen, drückt die Ereigniserkennerzustandsmaschine 400 effektiv eine Schlaggesten-Ereignisdefinition aus.
  • Ungeachtet der Ereignisart beginnt die Ereigniserkennerzustandsmaschine 400 in einem Ereigniserkennung-beginnt-Zustand 405, und kann zu irgendeinem der gebliebenen Zustände, abhängig davon, was für ein Unterereignis empfangen wird, fortschreiten. Um die Diskussion der Ereigniserkennerzustandsmaschine 400 zu vereinfachen, werden die direkten Wege von dem Ereigniserkennung-beginnt-Zustand 405 zu dem Ereignis-erkannt-Zustand 415, dem Ereignis-möglich-Zustand 410 und Ereignis-unmöglich-Zustand 420 diskutiert, gefolgt durch eine Beschreibung der Wege, die von dem Ereignis-möglich-Zustand 410 führen.
  • Von Ereigniserkennung-beginnt-Zustand 405 ausgehend, wenn ein Unterereignis empfangen wird, das selbst die Ereignisdefinition für ein Ereignis aufweist, wird die Ereigniserkennerzustandsmaschine 400 auf Ereignis-erkannt-Zustand 415 übergehen.
  • Vom Zustand Ereigniserkennung beginnt 405 ausgehend, wenn ein Unterereignis empfangen wird, das nicht das erste Unterereignis in einer Ereignisdefinition ist, wird die Ereigniserkenner-zustandsmaschine 400 auf Ereignis-unmöglich-Zustand 420 übergehen.
  • Vom Ereigniserkennung-beginnt-Zustand 405 ausgehend, wenn ein Unterereignis empfangen wird, das das erste und nicht das letzte Unterereignis in einer gegebenen Ereignisdefinition ist, wird die Ereigniserkennerzustandsmaschine 400 auf Ereignismöglich-Zustand 410 übergehen. Wenn das nächste empfange Unterereignis ein zweites Unterereignis, aber nicht das letzte Unterereignis in der gegebenen Ereignisdefinition ist, wird die Ereigniserkennerzustandsmaschine 400 im Zustand Ereignis möglich 410 bleiben. Die Ereigniserkennerzustandsmaschine 400 kann im Zustand Ereignis möglich 410 solang bleiben, wie die Reihenfolge von empfangenen Unterereignissen weiter Teil der Ereignisdefinition ist. Wenn zu irgendeiner Zeit die Ereigniserkennerzustandsmaschine 400 im Ereignis-möglich-Zustand 410 ist, und die Ereigniserkennerzustandsmaschine 400 ein Unterereignis empfängt, das nicht Teil der Ereignisdefinition ist, wird es auf Zustand Ereignis unmöglich 420 übergehen, wobei es bestimmt wird, dass das gegenwärtige Ereignis (wenn irgendwelche) nicht die Art des Ereignisses ist, das diesem Ereigniserkenner entspricht (d. h. der Ereigniserkenner Zustand 400 entspricht). Wenn auf der anderen Seite die Ereigniserkennerzustandsmaschine 400 in den Ereignis-möglich-Zustand 410 ist, und die Ereigniserkennerzustandsmaschine 400 das letzte Unterereignis in einer Ereignisdefinition empfängt, wird es auf den Ereignis-erkannt-Zustand 415 übergehen, wobei eine erfolgreiche Ereigniserkennung folglich fertiggestellt wird.
  • 4B stellt eine Ausführungsform eines Eingabequelle-Handhabungsprozesses 440 dar, der eine finite Zustandsmaschine hat, die repräsentiert, wie Ansichten Informationen über eine jeweilige Eingabe empfangen. Es wird darauf hingewiesen, dass, wenn es mehrere Berührungen auf der berührungsempfindlichen Oberfläche eines Gerätes gibt, ist jede dieser Berührungen eine getrennte Eingabequelle mit ihrer eigenen finiten Zustandsmaschine. In dieser Ausführungsform enthält der Eingabequelle-Handhabungsprozess 440 vier Zustände: Eingabereihenfolge beginnt 445, Eingabereihenfolge dauert fort 450, Eingabereihenfolge beendet 455, und Eingabereihenfolge gelöscht 460. Eingabequelle-Handhabungsprozess 440 kann durch einen jeweiligen Ereigniserkenner verwendet werden, zum Beispiel wenn eine Eingabe an eine Anwendung zu liefern ist, aber nur nachdem die Fertigstellung einer Eingabereihenfolge detektiert wird. Eingabequellen-Handhabungsprozess 440 kann mit einer Anwendung verwendet werden, die nicht in der Lage ist, Änderungen zu löschen oder annullieren, die in Antwort auf eine an die Anwendung gelieferte Eingabereihenfolge gemacht werden.
  • Von Eingabereihenfolge beginnt 445 ausgehend, wenn eine Eingabe empfangen wird, die sich selbst eine Eingabereihenfolge fertigstellt, wird der Eingabequelle-Handhabungsprozess 440 auf Eingabereihenfolge beendet 455 übergehen.
  • Von Eingabereihenfolge beginnt 445 ausgehend, wenn eine Eingabe empfangen wird, die die beendete Eingabereihenfolge zeigt, wird Eingabequelle-Handhabungsprozess 440 auf Eingabereihenfolge gelöscht 460 übergehen.
  • Von Eingabereihenfolge beginnt 445 ausgehend, wenn eine Eingabe empfangen wird, die die erste und nicht die letzte Eingabe in einer Eingabereihenfolge ist, wird die Eingabequelle-Handhabungsprozess 440 auf Zustand Eingabereihenfolge dauert fort 450 übergehen. Wenn die nächste empfangene Eingabe die zweite Eingabe in einer Eingabereihenfolge ist, wird der Eingabe-Handhabungsprozess 440 in Zustand Eingabereihenfolge dauert fort 450 bleiben. Eingabequelle-Handhabungsprozess 440 kann in Zustand Eingabereihenfolge dauert fort 450 so lange bleiben, wie die Reihenfolge von Unterereignissen, die geliefert werden, weiter Teil einer gegebenen Eingabereihenfolge ist. Wenn zu irgendeiner Zeit Eingabequelle-Handhabungsprozess 440 in Zustand Eingabereihenfolge dauert fort 450 ist, und Eingabequelle-Handhabungsprozess 440 eine Eingabe empfängt, die nicht Teil der Reihenfolge ist, wird er auf Zustand Eingabequelle gelöscht 460 übergehen. Wenn auf der anderen Seite Eingabequelle-Handhabungsprozess 440 in Eingabereihenfolge dauert fort 450 ist und der Eingabe-Handhabungsprozess 440 die letzte Eingabe in einer gegebenen Eingabedefinition empfängt, wird er auf Eingabereihenfolge beendet 455 übergehen, wobei eine Gruppe von Unterereignissen folglich erfolgreich empfangen wird.
  • In einigen Ausführungsformen kann Eingabequelle-Handhabungsprozess 440 für bestimmte Ansichten oder programmatische Niveaus implementiert werden. In diesem Fall können bestimmte Reihenfolgen von Unterereignissen zu Übergang auf Zustand Eingabe gelöscht 460 führen.
  • Als ein Beispiel betrachten wir 4C, die eine aktiv involvierte Ansicht annimmt, repräsentiert nur durch aktiv-involvierte-Ansicht-Eingabequellen-Handler 480 (nachfolgend ”Ansicht 480”). Ansicht 480 enthält einen vertikal-Streichen-Ereigniserkenner, repräsentiert nur durch vertikal-Streichen-Ereigniserkenner 468 (nachfolgend ”Erkenner 468”) als einem seiner Ereigniserkenner. In diesem Fall kann der Erkenner 468 als Teil seiner Definition detektieren erfordern: 1) ein Finger nach unten 465-1; 2) eine optionale kurze Verzögerung 465-2; 3), vertikales Streichen von mindestens N Pixeln 465-3; und 4) ein Finger-Abheben 465-4.
  • Für dieses Beispiel hat der Erkenner 468 auch seinen Verzögerung-Berührung-beginnt-Flag 328 und Berührung-gelöscht Flag 332 gesetzt. Nun betrachten wir die Lieferung der folgenden Reihenfolge von Unterereignissen an Erkenner 468, sowie die Ansicht 480:
    • • Unterereignis Reihenfolge 465-1: detektiere Finger nach unten, was der Ereignisdefinition des Erkenners 468 entspricht.
    • • Unterereignisreihenfolge 465-2: Messe Verzögerung, was der Ereignisdefinition des Erkenners 468 entspricht.
    • • Unterereignisreihenfolge 465-3: Finger führt eine vertikale Streichbewegung durch, die mit dem vertikalen Scrollen kompatibel ist, aber weniger als N Pixel ist und daher der Ereignisdefinition des Erkenners 468 nicht entspricht.
    • • Unterereignisreihenfolge 465-4: Detektiere Fingerabheben, was der Ereignisdefinition des Erkenners 468 entspricht.
  • Hier wird Erkenner 468 Unterereignisse 1 und 2 als Teil seiner Ereignisdefinition erfolgreich erkennen, und folglich wird im Zustand Ereignis möglich 472 sein unmittelbar vor der Lieferung des Unterereignisses 3. Da Erkenner 468 seinen Verspätung-Berührung-beginnt-Flag 328 eingerichtet hat, würde das Anfangs-Berührungsereignis nicht an die Schlagansicht gesendet. Dementsprechend wird der Eingabequelle-Handhabungsprozess 440 der Ansicht 480 noch im Zustand Eingabequelle beginnt unmittelbar vor der Lieferung des Unterereignisses 3 sein.
  • Sobald die Lieferung des Unterereignisses 3 an Erkenner 468 fertiggestellt wird, geht der Zustand des Erkenners 468 auf Ereignis unmöglich 476 über, und, was wichtig ist, der Erkenner 468 stellt nun fest, dass die Reihenfolge von Unterereignissen seiner spezifischen vertikal-Streichen-Geste-Ereignisart nicht entspricht (d. h., es hat entschieden, dass das Ereignis kein vertikales Streichen ist). Mit anderen Worten geschieht Erkennung 474 als ein vertikales Streichen nicht in diesem Beispiel). Das Eingabequelle-Handhabungssystem 440 für Ansicht-Eingabequelle-Handler 480 wird auch seinen Zustand aktualisieren. In einigen Ausführungsformen wird der Zustand des Ansicht-Eingabequelle-Handlers 480 vorn Eingabereihenfolge-beginnt-Zustand 482 zu dem Eingabereihenfolge-dauert-fort-Zustand 484 fortschreiten, wenn der Ereigniserkenner Statusinformation sendet, die zeigt, dass es begonnen hat, ein Ereignis zu erkennen. Der Ansicht-Eingabequelle-Handler 480 schreitet zu dem Eingabereihenfolge-gelöscht-Zustand 488 fort, wenn die Berührung oder Eingabe beendet wird ohne dass ein Ereignis erkannt wird, da das Berührung-gelöscht-Flag 322 des Ereigniserkenners eingerichtet worden ist. Alternativ, wenn das Berührungs-Löschungs-Flag 322 des Ereigniserkenners nicht eingerichtet worden war, schreitet der Ansicht-Eingabequelle-Handler 480 zu dem Eingabereihenfolge-beendet-Zustand 486 fort, wenn die Berührung von Eingabe beendet wird.
  • Da das Berührungs-Löschungs-Flag 332 des Ereigniserkenners 468 eingerichtet wird, wenn der Ereigniserkenner 468 auf den Ereignis-unmöglich-Zustand 476 übergeht, wird der Erkenner ein Berührungs-Löschungs-Unterereignis oder Nachricht an die Schlagansicht entsprechend dem Ereigniserkenner senden. Als Ergebnis wird der Ansicht-Eingabequellen-Handler 480 auf den Zustand Eingabereihenfolge gelöscht übergehen.
  • In einigen Ausführungsformen ist die Lieferung von Unterereignis 465-4 unrelevant zu irgendwelchen Ereigniserkennungsentscheidungen, die durch Erkenner 468 gemacht werden, obwohl die anderen Ereigniserkenner des Ansicht-Eingabequelle-Handlers 480, wenn irgendwelche, weiter die Reihenfolge von Unterereignissen analysieren können.
  • Die folgende Tabelle stellt in zusammenfassendem tabellarischen Format die Bearbeitung dieser beispielhaften Unterereignis-Reihenfolge 465 dar als relevant zu dem oben beschriebenen Zustand des Ereigniserkenners 468, zusammen mit dem Zustand des Ansicht-Eingabequelle-Handlers 480. In diesem Beispiel schreitet der Zustand des Ansicht-Eingabequelle-Handlers 480 von Eingabereihenfolge beginnt 445 zu Eingabereihenfolge gelöscht 488 fort, weil das Berührungs-Löschungs-Flag 332 des Erkenners 468 eingerichtet wurde:
    Unterereignisreihenfolge 465 Zustand: Erkenner 468 Zustand: Ansicht 480
    Vor Lieferungsbeginn Ereigniserkennung beginnt 470
    Detektiere Finger nach unten 465-1 Ereignis möglich 472 Eingabereihenfolge beginnt 482
    Messe Verzögerung 465-2 Ereignis möglich 472 Eingabereihenfolge dauert fort 484
    Detektiere Finger vertikales Streichen 465-3 Ereignis unmöglich 476 Eingabereihenfolge dauert fort 484
    Detektiere Finger abheben 465-4 Ereignis unmöglich 476 Eingabereihenfolge gelöscht 488
  • Wenden wir uns an 5A, Aufmerksamkeit ist auf ein Beispiel einer Unterereignisreihenfolge 520 gerichtet, die durch eine Ansicht empfangen wird, die eine Mehrzahl von Ereigniserkennern enthält. Für dieses Beispiel werden zwei Ereigniserkenner in 5A dargestellt, Scrollen-Ereigniserkenner 580 und Schlag-Ereigniserkenner 590. Zum Zweck der Darstellung wird das Ansicht-Suchergebnis-Feld 304 in 3A den Empfang der Unterereignis-Reihenfolge 520, und die Zustandsübergänge im Scrollen-Ereigniserkenner 580 und Schlag-Ereigniserkenner 590 betreffen. Es ist in diesem Beispiel zu bemerken, dass die Reihenfolge von Unterereignissen 520 eine Schlag-Finger-Geste auf einer berührungsempfindlichen Anzeige oder Trackfeld definiert, aber die gleiche Ereigniserkennungstechnik in unzähligen Kontexten verwendet werden kann, z. B. detektieren eines Maustasten-Drückens und/oder in Ausführungsformen, die programmatische Hierarchien von programmatischen Niveaus benützen.
  • Bevor das erste Unterereignis an Ansicht-Suchergebnis-Feld 304 geliefert wird, sind Ereigniserkenner 580 und 590 jeweils in den Ereigniserkennung-beginnt-Zuständen 582 und 592. Der Berührung 301 folgend, die als Unterereignis Finger-nach-unten 520-1 an aktiv involvierte Ereigniserkenner für Ansicht-Suchergebnis-Feld 304 als Berührungs-Unterereignis 301-2 (sowie an aktiv involvierte Ereigniserkenner für Kartenansicht 305 als Berührungsunterereignis 301-3) geliefert wird, geht Scrollen-Ereigniserkenner auf Zustand Ereignis möglich 584 über, und in ähnlicher Weise geht Schlag-Ereigniserkenner 590 auf Zustand Ereignis möglich 594 über. Der Grund liegt darin, dass die Ereignisdefinition eines Schlags und eines Scrollens beide mit einer Berührung wie Finger nach unten auf einer berührungsempfindlichen Oberfläche beginnt.
  • Einige Definitionen von Schlag- und Scroll-Gesten können wahlweise eine Verzögerung zwischen einer Anfangsberührung und irgendeinem nächsten Schritt in der Ereignisdefinition enthalten. In allen hier diskutierten Beispielen erkennen die beispielhaften Ereignisdefinitionen für sowohl Schlag- als auch Scroll-Gesten eine Verzögerungs-Unterereignis, das dem ersten Unterereignis (Detektiere Finger nach unten) folgt.
  • Folglich, weil Unterereignis-Messungs-Verzögerung 521-2 an Ereigniserkenner 580 und 590 geliefert wird, bleiben beide jeweils in Ereignis-möglich-Zuständen 584 und 594.
  • Am Ende wird Unterereignis Detektiere Finger abheben 521-3 an Ereigniserkenner 580 und 590 geliefert. In diesem Fall sind die Zustandsübergänge für Ereigniserkenner 580 und 590 unterschiedlich, weil die Ereignisdefinitionen für Schlag und Scrollen unterschiedlich sind. Im Fall des Scrollen-Ereigniserkenners 580, das nächste Unterereignis zum Verbleiben im Zustand Ereignis möglich wird das Detektieren von Bewegung sein. Weil das gelieferte Unterereignis Detektiere Finger abheben 521-3 ist, geht der Scroll-Ereigniserkenner dennoch auf Zustand Ereignis unmöglich 588 über. Obwohl eine Schlag-Ereignisdefinition mit einem Finger-abheben-Unterereignis zum Schluss kommt. Folglich geht der Schlag-Ereigniserkenner 590 auf Zustand Ereignis erkannt 596 über, nachdem Ereignis Detektiere Finger abheben 521-3 geliefert wird.
  • Es ist in einigen Ausführungsformen zu bemerken, wie bezugnehmend auf 4B und 4C oben diskutiert, der in 4B diskutierte Eingabequellen-Handhabungsprozess 440 zu verschiedenen Zwecken auf dem Ansichten-Niveau verwendet werden kann. Die folgende Tabelle stellt in zusammenfassendem tabellarischen Format die Lieferung von Unterereignisreihenfolge 520 als relevant zu Ereigniserkennern 580, 590 und Eingabequelle-Handhabungsprozess 440 dar:
    Unterereignis-Reihenfolge 520 Zustand: Scroll-Ereigniserkerner 580 Zustand: Schlag-Ereigniserkenner 590 Zustand: Eingabequelle-Handhabungsprozess 440
    Vor Lieferungsst art Ereigniserkennung beginnt 582 Ereigniserkern ung beginnt 592
    Detektiere Finger nach unten 521-1 Ereignis möglich 584 Ereignis möglich 594 Eingabereihenfolge beginnt 445
    Messe Verzögerung 521-2 Ereignis möglich 584 Ereignis möglich 594 Eingabereihenfolge dauert fort 450
    Detektiere Finger abheben 521-3 Ereignis unmöglich 588 Ereignis erkannt 596 Eingabereihenfolge beendet 455
  • Bei 5B ist die Aufmerksamkeit auf ein anderes Beispiel einer Unterereignisreihenfolge 530 gerichtet, die durch eine Ansicht empfangen wird, die eine Mehrzahl von Ereigniserkennern enthält. Für dieses Beispiel werden 2 Ereigniserkenner in 5B dargestellt, Scroll-Ereigniserkenner 580 und Schlag-Ereigniserkenner 590. Zum Zwecke der Darstellung wird das Ansicht-Such-Ergebnisfeld 304 in 3A den Empfang der Unterereignisreihenfolge 530, und die Zustandsübergänge in Scroll-Ereigniserkenner 580 und Schlag-Ereigniserkenner 590 betreffen. Es ist in diesem Beispiel zu bemerken, dass die Reihenfolge von Unterereignissen 530 eine Scroll-Fingergeste auf einer berührungsempfindlichen Anzeige definiert, aber die gleiche Ereigniserkennungstechnik in unzähligen Kontexten verwendet werden kann, zum Beispiel Detektieren eines Maustaste-Drückens, Maus-Bewegen und Maustaste-Freigeben, und/oder in Ausführungsformen, die programmatische Hierarchien von programmatischen Niveaus benutzen.
  • Vor der Lieferung des ersten Unterereignisses an aktiv involvierte Ereigniserkenner für Ansichtssuchergebnisfeld 304 sind Ereigniserkenner 580 und 590 jeweils in den Ereigniserkennungsbeginn-Zuständen 582 und 592. Der Lieferung von Unterereignissen entsprechend und der Berührung 301 (wie oben diskutiert) folgend, geht der Scroll-Ereigniserkenner 580 auf Zustand Ereignis möglich 584 über, und auf ähnliche Weise geht der Schlag-Ereigniserkenner 590 auf Zustand Ereignis möglich 594 über.
  • Da die Unterereignis-Messungsverzögerung 531-1 an Ereigniserkenner 580 und 590 geliefert wird, gehen die beiden jeweils auf die Ereignis-möglich-Zustände 584 und 594 über.
  • Als nächstes wird Unterereignis detektiere Fingerbewegung 531-3 an Ereigniserkenner 580 und 590 geliefert. In diesem Fall sind die Zustandsübergänge für Ereigniserzeuger 580 und 590 unterschiedlich, weil die Ereignisdefinitionen für Schlag und Scroll unterschiedlich sind.
  • Im Fall von Scroll-Ereigniserkenner 580 ist das nächste Unterereignis, das im Zustandsereignis bleiben kann, das Detektieren von Bewegung, daher bleibt der Scroll-Ereigniserkenner 580 in dem Ereignis-möglich-Zustand 584, wenn es die Unterereignis detektiere Fingerbewegung 513-3 empfängt. Wie oben diskutiert, kommt dennoch die Definition für eine Schlag mit einem Finger-abheben-Ereignis zum Schluss, sodass der Schlag-Ereigniserkenner 590 auf den Zustand Ereignis möglich 598 übergeht.
  • Letztendlich wird Unterereignis detektiere Finger abheben 531-4 an Ereigniserkenner 580 und 590 geliefert. Der Schlag-Ereigniserkenner ist bereits im Ereignis-unmöglich-Zustand 598, und kein Zustandsübergang geschieht. Die Ereignisdefinition des Scroll-Ereigniserkenners 580 kommt mit dem Detektieren eines Fingerabhebens zum Schluss. Weil das gelieferte Unterereignis Detektiere Finger abheben 531-4 ist, geht der Scroll-Ereigniserkenner 580 auf den Zustandsereigniserkenner 586 über. Es wird bemerkt, dass eine Fingerbewegung auf einer berührungsempfindlichen Oberfläche mehrere Bewegungsunterereignisse erzeugen kann, daher kann ein Scroll vor Abheben erkannt werden und bis Abheben fortdauern.
  • Die folgende Tabelle stellt in zusammenfassenden tabellarischem Format die Lieferung von Unterereignisreihenfolge 530 dar als relevant zu Ereigniserkennern 580, 590 und Eingabequelle-Handlerprozess 440:
    Unterereignisreihenfolge 530 Zustand: Scroll-Ereigniserkenner 580 Zustand: Schlag-Ereigniserkenner 590 Zustand: Eingabequelle Handhabungsprozess 540
    Vor Lieferungsstart Ereigniserkennung beginnt 582 Ereigniserkennung beginnt 592
    Detektiere Finger nach unten 531-1 Ereignis möglich 584 Ereignis möglich 594 Eingabereihenfolge beginnt 445
    Messungsverzögerung 531-2 Ereignis möglich 584 Ereignis möglich 594 Eingabereihenfolge dauert fort 450
    Detektiere Fingerbewegung 531-3 Ereignis möglich 584 Ereignis unmöglich 598 Eingabereihenfolge dauert fort 450
    Detektiere Finger abheben 531-4 Ereignis erkannt 586 Ereignis unmöglich 598 Eingabe Reihenfolge beendet 455
  • Bei 5C ist die Aufmerksamkeit auf ein anderes Beispiel einer Unterereignisreihenfolge 540 gerichtet, die durch eine Ansicht empfangen wird, die eine Mehrzahl von Ereigniserkennern enthält. Für dieses Beispiel werden zwei Ereigniserkenner in 5C dargestellt, Doppelschlagereigniserkenner 570 oder Schlag-Ereigniserkenner 590. Zu Zwecken der Darstellung wird die Kartenansicht 305 in 3A den Empfang der Unterereignisreihenfolge 540, und die Zustandsübergange in Doppelschlagereigniserkenner 580 und Schlag-Ereigniserkenner 590 betreffen. Es ist in diesem Beispiel zu bemerken, dass die Reihenfolge von Unterereignis 540 eine Doppelschlaggeste auf einer berührungsempfindlichen Anzeige definiert, aber die gleiche Ereigniserkennungstechnik in unzähligen Kontexten verwendet werden kann, zum Beispiel Detektieren eines Mausdoppelklicks und/oder in Ausführungsformen, die programmatische Hierarchien von programmatischen Niveaus benutzen.
  • Vor der Lieferung des ersten Unterereignisses an aktiv involvierte Ereigniserkenner für die Kartenansicht 305, sind Ereigniserkenner 570 und 590 jeweils in den Ereigniserkennungs-Beginnzuständen 572 und 592. Nach der Lieferung von Berührungsunterereignissen 301 relevanten Unterereignissen an Kartenansicht 304 (wie oben beschrieben) gehen Doppelschlagereigniserkenner 570 und Schlag-Ereigniserkenner 590 auf den Zustand Ereignis möglich 574 und 594 jeweils über. Der Grund liegt darin, dass die Ereignisdefinitionen des Schlags und eines Doppelschlags beide mit einer Berührung wie dem Detektieren eines Fingers nach unten auf einer berührungsempfindlichen Oberfläche beginnen.
  • Da die Unterereignismessungsverzögerung 541-2 an die Ereigniserkenner 570 und 590 geliefert wird, bleiben die beiden jeweils in den Zuständen Ereignis möglich 574 und 594.
  • Als nächstes wird Unterereignis detektiere Finger abheben 541-3 an Ereigniserkenner 570 und 590 geliefert. In diesem Fall sind die Zustandsübergange für Ereigniserkenner 580 und 590 unterschiedlich, weil die beispielhaften Ereignisdefinitionen für Schlag oder Doppelschlag unterschiedlich sind. In dem Fall von Schlag-Ereigniserkenner 590 ist das letzte Unterereignis in der Ereignisdefinition Detektieren von Fingerabheben, sodass der Schlag-Ereigniserkenner 590 auf den Ereignis-erkannt Zustand 596 übergeht.
  • Doppelschlagerkenner 570 bleibt dennoch in dem Zustand Ereignis möglich 574, weil eine Verzögerung begonnen hat, ungeachtet dessen, was der Benutzer letztendlich machen kann. Die Gesamtereigniserkennungsdefinition für einen Doppelschlag erfordert eine andere Verzögerung, obwohl gefolgt durch eine vollständige Schlagunterereignisreihenfolge. Das erzeugt eine unklare Situation zwischen dem Schlag-Ereigniserkenner 590, der bereits in Zustand Ereignis-erkannt 576 ist, und dem Doppelschlagerkenner 580, der noch im Zustand Ereignis möglich 574 ist.
  • Folglich können in einigen Ausführungsformen Ereigniserkenner Ausschließlichkeits-Flags und Ausschließlichkeits-Ausnahmelisten wie oben mit Bezug auf 3B und 3C diskutiert, implementieren. Hier wird das Ausschließlichkeits-Flag 324 für den Schlag-Ereigniserkenner 590 eingerichtet, und zusätzlich wird die Ausschließlichkeits-Ausnahmeliste 326 für den Schlag-Ereigniserkenner 590 konfiguriert, um die Lieferung von Unterereignissen an einige Ereigniserkenner (wie zum Beispiel Doppelschlagereigniserkenner 570) weiterhin zu erlauben, nachdem der Schlag-Ereigniserkenner 590 in den Zustand Ereignis-erkannt 596 eintritt.
  • Während der Schlag-Ereigniserkenner 590 im Zustand Ereignis-erkannt 596 bleibt, wird die Unterereignisreihenfolge 540 weiter an den Doppelschlagereigniserkenner 570 geliefert, wobei die Unterereignis-Messen-Verzögerung 541-4, detektiere Finger nach unten 541-5, und Messen-Verzögerung 541-6 den Doppelschlagereigniserkenner 570 im Zustand Ereignis möglich 574 beibehalten; Lieferung des letzten Unterereignisses der Reihenfolge 540, detektiere Finger abheben 541-7 verschiebt Doppelschlagereigniserkenner 570 in den Zustand Ereignis erkannt 576.
  • Zu diesem Punkt betrachtet die Kartenansicht 305 das Ereignis Doppelschlag durch den Ereigniserkenner als erkannt, statt des Einzelschlagereignisses durch den Schlag-Ereigniserkenner 590 erkannt. Die Entscheidung, das Doppelschlagereignis zu nehmen, wird getroffen im Hinblick auf die Kombination des eingerichteten Ausschließlichkeits-Flag 324 des Schlag-Ereigniserkenners 590, der Ausschließlichkeits-Ausnahmeliste 326 des Schlag-Ereigniserkenners 590 einschließlich eines Doppelschlagereignisses, und der Tatsache, dass sowohl der Schlag-Ereigniserkenner 590 als auch der Doppelschlagereigniserkenner 570 ihre jeweilige Ereignisarten erfolgreich erkannt haben.
  • Die folgende Tabelle stellt in zusammenfassendem tabellarischen Format die Lieferung der Unterereignisreihenfolge 540 dar, als relevant für Ereigniserkenner 570 und 590, und den Unterereignis-Handhabungsprozess 440.
    Unterereignisreihenfolge 540 Zustand: Doppelschlag-Ereigniserkenner 570 Zustand: Schlag-Ereigniserkenner 590 Zustand: Eingabequelle-Handhabungs-Prozess 440
    Vor Lieferungsstart Ereigniserkennung beginnt 572 Ereigniserkennung beginnt 592 Eingabereihenfolge beginnt 445
    Detektiere Finger nach unten 541-1 Ereignis möglich 574 Ereignis möglich 594 Eingabereihenfolge dauert fort 450
    Messungsverzögerung 541-2 Ereignis möglich 574 Ereignis möglich 594 Eingabereihenfolge dauert fort 450
    Detektiere Finger abheben 541-3 Ereignis möglich 574 Ereignis erkannt 596 Eingabereihenfolge dauert fort 450
    Messungsverzögerung 541-4 Ereignis möglich 574 Ereignis erkannt 596 Eingabereihenfolge dauert fort 450
    Detektiere Finger nach unten 541-5 Ereignis möglich 574 Ereignis erkannt 596 Eingabereihenfolge dauert fort 450
    Messungsverzögerung 541-6 Ereignis erkannt 596 Ereignis erkannt 596 Eingabereihenfolge dauert fort 450
    Detektiere Finger abheben 541 Ereignis erkannt 576 Ereignis erkannt 596 Eingabereihenfolge beendet 455
  • In einer anderen Ausführungsform, in dem Ereignisszenario von 5C, wird die Einzelschlaggeste nicht erkannt, weil der Einzelschlagereigniserkenner eine Warteliste hat, die den Doppelschlagereigniserkenner identifiziert. Als Ergebnis wird eine Einzelschlaggeste nicht erkannt, bis (wenn überhaupt) der Doppelschlagereigniserkenner in den Ereignis-unmöglich-Zustand eintritt. In diesem Beispiel, in dem eine Doppelschlaggeste erkannt wird, wird der Einzelschlagerkenner im Ereignis-möglich-Zustand bleiben, bis die Doppelschlaggeste erkannt wird; zu diesem Punkt wird der Einzelschlagereigniserkenner auf den Ereignis-unmöglich-Zustand übergehen.
  • Die Aufmerksamkeit wird nun auf 6A6B gerichtet, die Flussdiagramme enthält, die eigenes Erkennungsverfahren nach einigen Ausführungsformen darstellen. Das Verfahren 600 wird bei einem elektronischen Gerät durchgeführt, das in einigen Ausführungsformen ein elektronisches Gerät 102 oder 104, wie oben diskutiert, sein kann. In einigen Ausführungsformen kann das elektronische Gerät eine berührungsempfindliche Oberfläche enthalten, die konfiguriert ist, um Multi-Touch-Gesten zu detektieren.
  • Alternativ kann das elektronische Gerät einen Berührungsbildschirm enthalten, der konfiguriert ist, um Multi-Touch-Gesten zu detektieren.
  • Das Verfahren 600 ist konfiguriert, Software auszuführen, die e4ine Ansicht der Hierarchie mit einer Vielzahl von Ansichten der Hierarchien und führt 610 ein oder mehrere Softwareelemente aus. Jedes Softwareelement ist mit einer bestimmten Ansicht assoziiert, und jede bestimmte Ansicht enthält einen oder mehrere Ereigniserkenner, wie z. B. diejenigen, die jeweils in 3B und 3c als Ereigniserkennerstrukturen 320 und 360 beschrieben werden.
  • Jeder Ereigniserkenner enthält im Allgemeinen eine Ereignisdefinition basierend auf einem oder mehreren Unterereignissen, wobei die Ereignisdefinition als eine Zustandsmaschine implementiert werden kann, siehe z. B. 3B Zustandsmaschine 340. Ereigniserkenner enthalten auch im Allgemeinen einen Ereignishandler, der eine Aktion für ein Ziel spezifiziert und konfiguriert ist, der Aktion das Ziel in Antwort auf das Detektieren eines Ereignisses entsprechend der Ereignisdefinition durch den Ereigniserkenner zu senden.
  • In einigen Ausführungsformen ist mindestens einer der Mehrzahl von Ereigniserkennern ein Gestenerkenner, der eine Gestendefinition einem Gestenhandler, wie in Schritt 612 der 6A angegeben wird, aufweist.
  • In einigen Ausführungsformen definiert die Ereignisdefinition eine Benutzergeste, wie im Schritt 614 der 6A angegeben wird.
  • Alternativ haben Ereigniserkenner einen Satz von Ereigniserkennungszuständen 616. Diese Ereigniserkennungszustände können mindestens einen Ereignis-Möglich-Zustand, einen Ereignis-Unmöglich-Zustand und einen Ereignis-Erkannt-Zustand enthalten.
  • In einigen Ausführungsform initiiert der Ereignishandler Vorbereitung 618 seiner entsprechenden Aktion für Lieferung an das Ziel, wenn der Ereigniserkenner in den Ereignismoduszustand eintritt. Wie oben Bezug nehmend auf 4A und die Beispiele in 5A5C diskutiert wird, enthalten die Zustandsmaschinen, die für jeden Ereigniserkenner implementiert werden, im Allgemeinen einen Anfangszustand, z. B. Zustandereigniserkennung beginnt 405. Der Empfang eines Unterereignisses, dass den Anfangsteil einer Ereignisdefinition bildet, löst eine Zustandsänderung zum Ereignis-Möglich-Zustand 410 aus. Folglich, in einigen Ausführungsformen, als er Ereigniserkenner vom Zustandsereigniserkennung 405 auf den Zustandereignis-Möglich-410 übergeht, kann der Ereignishandler des Ereigniserkenners die Vorbereitung seiner Sonderaktion zur Lieferung an das Ziel des Ereigniserkenners erkennen, nachdem ein Ereignis erfolgreich erkannt wird.
  • Auf der anderen Seite kann der Ereignishandler in einigen Ausführungsformen Vorbereitung 620 seiner entsprechenden Aktion beenden, wenn der Ereigniserkenner in den Zustand Ereignis-Unmöglich 420 eintritt. In einigen Ausführungsformen enthält die Beendigung der entsprechenden Aktion das Löschen irgendwelcher Vorbereitung der entsprechenden Aktion des Ereignishandlers.
  • Das Beispiel der 5B ist informativ für diese Ausführungsform, da Schlagereigniserkenner 590 die Vorbereitung 618 dieser Aktion initiiert haben kann, aber dann, sobald das Unterereignisdetektierfingerbewegung 531-3 an den Schlagereigniserkenner 590 geliefert wird, wird der Erkenner 590 auf dem Ereignis-Unmöglich-Zustand 598, 578 übergehen. In diesem Moment kann der Schlagereigniserkenner 590 die Vorbereitung 620 dieser Aktion beenden, für den er die Vorbereitung 618 initiiert hat.
  • In einigen Ausführungsformen stellt der Ereignishandler die Vorbereitung 622 seine entsprechende Aktion für Lieferung an das Ziel fertig, wenn der Ereigniserkenner in den Ereignis-Erkannt-Zustand eintritt. Das Beispiel von 5C stellt diese Ausführungsform dar, weil ein Doppelschlag durch Aktivinvolviertansichterkenner für die Kartenansicht 305 erkannt wird, der in einigen Implementationen das Ereignis sein wird, das mit Auswahl und/oder Ausführung des Suchergebnisses, das durch die Kartenansicht 305 dargestellt wird, verbunden ist. Hier, nachdem der Doppelschlagereigniserkenner 570 das Doppelschlagereignis erfolgreich erkennt, das in der Unterereignisreihenfolge 540 enthalten ist, der Ereignishandler der Kartenansicht 305 stellt die Vorbereitung 620 seiner Aktion fertig, es wird nämlich angegeben, dass es einen Aktivierungsbefehl empfangen hat.
  • In einigen Ausführungsformen liefert der Ereignishandler 624 seine entsprechende Aktion an das Ziel, das mit dem Ereigniserkenner assoziiert ist. Fortfahrend mit dem Beispiel von 5C, der Vorbereitungsaktion, d. h. der Aktivierungsbefehl der Kartenansicht 305, wird an das spezifische Ziel geliefert werden, das mit der Kartenansicht 305 assoziiert ist, das jedes geeignete programmatische Verfahren oder Objekt sein kann.
  • Alternativ kann die Mehrzahl der Ereignisserkennungen die Reihenfolge eines oder mehreren Unterereignissen parallel unabhängig bearbeiten 626.
  • In einigen Ausführungsformen können eine oder mehrere Ereigniserkenner als ausschließliche Ereigniserkenner 628 konfiguriert werden, wie oben jeweils mit Bezug auf Ausschließlichkeitsflags 324 oder 364 der 3B und 3C diskutiert wird. Wenn ein Ereigniserkenner als ein Auschließlichereigniserkenner konfiguriert ist, verhindert das Ereignisliefersystem, dass irgendwelche andere Ereigniserkenner für aktiv involvierte Ansichten (bis auf diejenigen, die in der Ausnahmeliste 326, 366 des Ereigniserkenners, der das Ereignis erkennt, aufgelistet sind) in der Ansichthierarchie nachfolgende Ereignisse (von der gleichen Reihenfolge von Unterereignissen) empfangen, nachdem der ausschließliche Ereigniserkenner ein Ereignis erkennt. Weiterhin, wenn ein nicht ausschließlicher Ereigniserkenner ein Ereignis erkennt, verhindert das Ereignisliefersystem, dass irgendwelche ausschließliche Ereigniserkenner für aktuell involvierte Ansichten in der Ansichthierarchie nachfolgende Unterereignisse empfangen, bis auf diejenigen (falls überhaupt), die in der Ausnahmeliste 326, 366 des Ereigniserkenners, der das Ereignis erkennt, aufgelistet sind.
  • In einigen Ausführungsformen können ausschließliche Ereigniserkenner eine Ereignisausnahmeliste enthalten 630, wie oben jeweils mit Bezug auf die Ausschließlichkeitsausnahmelisten 326 und 366 der 3B und 3C diskutiert wird. Wie oben in der Diskussion von 5C angemerkt, kann die Ausschließlichkeitsausnahmeliste eines Ereigniserkenners verwendet werden, um dem Ereigniserkenner zu erlauben, mit der Ereigniserkennung fortzufahren, selbst wenn die Reihenfolge von Unterereignissen, die ihre jeweiligen Ereignisdefinitionen bilden, sich teilweise decken. Folglich enthält die Ereignisausnahmeliste in einigen Ausführungsformen Ereignisse, deren entsprechende Ereignisdefinitionen wiederholt und Ereignisse 632 haben, wie z. B. das Einzelschlag/Doppelschlagereignisbeispiel von 5C.
  • Alternativ kann die Ereignisdefinition eine Benutzereingabeoperation 634 definieren.
  • In einigen Ausführungsformen können ein oder mehrere Ereigniserkenner so angepasst werden, die Lieferung jedes Unterereignisses der Reihenfolge von Unterereignissen zu verzögern, bis das Ereignis erkannt wird.
  • Das Verfahren 600 detektiert 636 eine Reihenfolge eines oder mehrerer Unterereignisse, und in einigen Ausführungsformen kann die Reihenfolge eines oder mehrerer Unterereignisse alternativ Berührungsereignisse 638 enthalten. Primitive Berührungsereignisse können Basiskomponenten einer berührungsbasierten Geste auf einer berührungsempfindlichen Oberfläche, wie z. B. Daten bezüglich eines Anfangsfinger- oder Stiftberührung-nach-unten, Daten bezüglich der Initiierung von Mittelfinger- oder Stiftbewegungen quer durch eine berührungsempfindliche Oberfläche, Doppelfingerbewegungen in entgegengesetzte Richtungen, Stiftabrieb in Form einer berührungsempfindlichen Oberfläche usw. enthalten, ohne darauf beschränkt zu werden.
  • Unterereignisse in der Reihenfolge eines oder mehrerer Untereignisse können viele Formen enthalten, die Tastendrücken, Tastendrückenhalten, Tastendrückenfreigeben, Knopfdrücken, Knopfdrückenhalten, Knopfdrückenfreigeben, Joystickbewegungen, Mausbewegungen, Mausknopfdrücken, Mausknopffreigeben, Stiftbewegungen, Stiftberührungen, Stiftfreigeben, mündliche Anweisungen, detektierte Augenbewegungen, biometrische Eingaben und detektierte physiologische Änderungen eines Benutzers, unter anderem, enthalten, ohne darauf beschränkt zu werden.
  • Das Verfahren identifiziert 640 eine der Ansichten der Ansichtenhierarchie als eine Schlagansicht. Die Schlagansicht stellt fest, welche Ansichten der Ansichtenhierarchie aktiv involvierte Ansichten sind. Ein Beispiel wird in 3A dargestellt, wo die aktiv involvierten Ansichten 306 Suchergebnissfeld 304 und Kartenansichten 305 enthalten, weil das Unterereignis 301 das mit der Kartenansicht 305 assoziierte Gebiet kontaktiert.
  • In einigen Ausführungsformen kann eine erste aktiv involvierte Ansicht innerhalb der Ansichtenhierarchie konfiguriert werden 642, um die Lieferung des jeweiligen Unterereignisses an Ereigniserkenner zu verhindern, die mit der ersten aktiv involvierten Ansicht assoziiert sind. Dieses Verhalten kann den Sprungeigenschaft implementieren, die oben mit Bezug auf 3B und 3C (330 bzw. 370) diskutiert wird. Wenn die Sprungeigenschaft für einen Ereigniserkenner eingerichtet wird, wird die Lieferung des jeweiligen Unterereignisses noch für Ereigniserkenner durchgeführt, die mit anderen aktiv involvierten Ansichten der Ansichtenhierarchie assoziiert sind.
  • Alternativ kann eine erste aktiv involvierte Ansicht innerhalb der Ansichtenhierarchie konfiguriert werden 644, um die Lieferung des jeweiligen Ereignisses an Ereigniserkenner zu verhindern, die mit dieser ersten aktiv involvierten Ansicht assoziiert sind, sofern die erste aktiv involvierte Ansicht keine Schlagansicht ist. Das Verhaken kann die Bedingtsprungeigenschaft implementieren, die oben mit Bezug auf 3B und 3C diskutiert wird (332 bzw. 370).
  • In einigen Ausführungsformen ist eine zweite aktiv involvierte Ansicht innerhalb der Ansichtenhierarchie konfiguriert 646, um die Lieferung des jeweiligen Unterereignisses an Ereigniserkenner, die mit der zweiten aktiv involvierten Ansicht assoziiert sind, und an Ereigniserkenner, die mit Vorläufern der zweiten aktiv involvierten Ansicht assoziiert sind, zu verhindern. Das Verhalten kann die Stoppeigenschaft implementieren, die oben mit Bezug auf 3B und 3C (328 bzw. 368) diskutiert wird.
  • Das Verfahren 600 liefert 648 ein jeweiliges Unterereignis an Ereigniserkenner für jede aktiv involvierte Ansicht innerhalb der Ansichtenhierarchie. In einigen Ausführungsformen bearbeiten Ereigniserkenner für aktiv involvierte Ansichten in der Ansichtenhierarchie das jeweilige Unterereignis vor der Bearbeitung eines möglichen Unterereignisses in der Reihenfolge von Unterereignissen. Alternativ treffen Ereigniserkenner für die aktiv involvierten Ansichten in der Ansichtenhierarchie ihre Unterereigniserkennungsentscheidungen während der Bearbeitung des jeweiligen Unterereignisses.
  • In einigen Ausführungsformen können Ereigniserkenner für aktiv involvierte Ansichten in der Ansichtenhierarchie die Reihenfolge eines oder mehrerer Unterereignissen gleichzeitig bearbeiten 650; alternativ können Ereigniserkenner für aktiv involvierte Ansichten in der Ansichtenhierarchie die Reihenfolge eines oder mehrerer Unterereignisse parallel bearbeiten.
  • In einigen Ausführungsformen können ein oder mehrere Ereigniserkenner dazu geeignet sein, die Lieferung 652 eines oder mehrerer Unterereignisse der Reihenfolge von Unterereignissen zu verzögern, bis der Ereigniserkenner das Ereignis erkennt. Das Verhalten reflektiert ein verzögertes Ereignis. Zum Beispiel denken wir an eine Einzelschlaggeste in einer Ansicht, für die mehrere Schlaggesten möglich sind. In diesem Fall wird ein Schlagereignis ein ”Schlag + Verzögerung” Erkenner. Im Grunde, wenn ein Ereigniserkenner dieses Verhalten implementiert, wird der Ereigniserkenner die Ereigniserkennung verzögern, bis es sicher ist, dass die Reihenfolge von Unterereignissen in der Tat ihre Ereignisdefinition nicht entspricht. Das Verhalten kann geeignet sein, wenn eine Empfangsansicht nicht in der Lage ist, gelöschte Ereignisse in geeigneter Weise zu beantworten. In einigen Ausführungsformen wird ein Ereigniserkenner die Aktualisierung seines Ereigniserkennungsstatus an seine jeweilige aktiv involvierte Ansicht verzögern, bis der Ereigniserkenner sicher ist, dass die Reihenfolge von Unterereignissen seiner Ereignisdefinition nicht entspricht. Wie oben mit Bezug auf 3B und 3C diskutiert wird, werden Verzögerung-Berührung-Beginnt-Flag 328, 368, Verzögerung-Berührung-End-Flag 330, 370, und Berühungslöschungsflag 332, 372 bereitgestellt, um Unterereignislieferungtechniken sowie Ereigniserkennung und Ansichtstatusinformationaktualisierungen auf spezifische Wünsche maßzuschneidern.
  • Die vorhergehende Beschreibung zum Zweck der Erklärung ist mit Bezug auf spezifische Ausführungsformen beschrieben worden. Die oben dargestellten Diskussionen sind jedoch nicht beabsichtigt, erschöpfend zu sein oder die Erfindung auf die offenbarten präzisen Formen zu beschränken. Viele Modifikationen und Änderungen sind im Hinblick auf die obigen Lehren möglich. Die Ausführungsformen wurden ausgewählt und beschrieben, um die Prinzipien der Erfindung und ihre praktischen Anwendungen bestmöglich zu erklären und daher ist den Fachleuten zu erlauben, die Erfindung und verschiedene Ausführungsformen mit verschiedenen Modifikationen, wie sie für die besondere nachgedachte Benutzung geeignet sind, bestmöglich zu benutzen.

Claims (27)

  1. Verfahren, aufweisend: Bei einem elektronischen Gerät, das konfiguriert ist, Software auszuführen, die eine Ansichtshierarchie mit einer Mehrzahl von Ansichten enthält: Anzeigen einer oder mehrerer Ansichten der Ansichtshierarchie; Ausführen eines oder mehrerer Software-Elemente, wobei jedes Software-Element mit einer bestimmten Ansicht assoziiert ist, wobei jede bestimmte Ansicht einen oder mehrere Ereigniserkenner enthält, wobei jeder Ereigniserkenner aufweist: eine auf einem oder mehreren Unterereignissen basierende Ereignisdefinition, und einen Ereignishandler, wobei der Ereignishandler: eine Aktion für ein Ziel spezifiziert, und konfiguriert ist, in Antwort auf das Detektieren eines der Ereignisdefinition entsprechenden Ereignisses durch den Ereigniserkenner die Aktion an das Ziel zu senden Detektieren einer Abfolge von einem oder mehreren Unterereignissen; und Identifizieren einer der Ansichten der Ansichtshierarchie als eine Trefferansicht, wobei die Trefferansicht festlegt, welche Ansichten in der Ansichtshierarchie aktiv involvierte Ansichten sind; für jede aktiv involvierte Ansicht Liefern eines entsprechenden Unterereignisses an einen oder mehrere Ereigniserkenner innerhalb der Ansichtshierarchie; und wobei jeder Ereigniserkenner für aktiv involvierte Ansichten in der Ansichtshierarchie das jeweilige Unterereignis vor Bearbeitung eines nächsten Unterereignisses in der Abfolge von Unterereignissen bearbeitet.
  2. Verfahren nach Anspruch 1, wobei jeder Ereigniserkenner für aktiv involvierte Ansichten in der Ansichtshierarchie die Abfolge von einem oder mehreren Unterereignissen simultan bearbeitet.
  3. Verfahren nach irgendeinem der Ansprüche 1 bis 2, wobei eine erste aktiv involvierte Ansicht innerhalb der Ansichtshierarchie konfiguriert ist, um die Lieferung des jeweiligen Unterereignisses an Ereigniserkenner, die mit der ersten aktiv involvierten Ansicht assoziiert sind, zu verhindern.
  4. Verfahren nach irgendeinem der Ansprüche 1 bis 2, wobei eine erste aktiv involvierte Ansicht innerhalb der Ansichtshierarchie konfiguriert ist, um die Lieferung des jeweiligen Unterereignisses an Ereigniserkenner, die mit der ersten aktiv involvierten Ansicht assoziiert sind, zu verhindern, außer wenn die erste aktiv involvierte Ansicht die Trefferansicht ist.
  5. Verfahren nach irgendeinem der Ansprüche 1 bis 4, wobei eine zweite aktiv involvierte Ansicht innerhalb der Ansichtshierarchie konfiguriert ist, um die Lieferung des jeweiligen Unterereignisses an Ereigniserkenner, die mit der zweiten aktiv involvierten Ansicht assoziiert sind, und an Ereigniserkenner, die mit Vorlgängern der zweiten aktiv involvierten Ansicht assoziiert sind, zu verhindern.
  6. Verfahren nach irgendeinem der Ansprüche 1 bis 5, wobei mindestens einer der Mehrzahl von Ereigniserkennern ein Gesten-Erkenner ist, der eine Gestendefinition und einen Gestenhandler aufweist.
  7. Verfahren nach irgendeinem der Ansprüche 1 bis 6, wobei die Ereignisdefinition eine Benutzergeste definiert.
  8. Verfahren nach irgendeinem der Ansprüche 1 bis 7, wobei das elektronische Gerät weiterhin eine berührungsempfindliche Oberfläche aufweist, die konfiguriert ist, um Multi-Touch-Gesten zu detektieren.
  9. Verfahren nach irgendeinem der Ansprüche 1 bis 7, wobei das elektronische Gerät weiterhin einen Berührungsbildschirm aufweist, der konfiguriert ist, um Multi-Touch-Gesten zu detektieren.
  10. Verfahren nach irgendeinem der Ansprüche 1 bis 9, wobei die Abfolge von einem oder mehreren Unterereignissen primitive Berührungsereignisse enthält.
  11. Verfahren nach irgendeinem der Ansprüche 1 bis 10, wobei jeder Ereigniserkenner eine Satz von Ereigniserkennungszuständen aufweist, die mindestens einen Ereignis-möglich-Zustand, einen Ereignis-unmöglich-Zustand und einen Ereignis-erkannt-Zustand enthalten.
  12. Verfahren nach Anspruch 11, weiterhin aufweisend das Initiieren der Vorbereitung einer entsprechenden Aktion zur Lieferung an das Ziel durch den Ereignishandler, wenn der Ereigniserkenner in den Ereignis-möglich-Zustand eintritt.
  13. Verfahren nach Anspruch 12, weiterhin aufweisend das Fertigstellen der Vorbereitung einer entsprechenden Aktion zur Lieferung an das Ziel durch den Ereignishandler, wenn der Ereigniserkenner in den Ereignis-erkannt-Zustand eintritt.
  14. Verfahren nach Anspruch 13, weiterhin aufweisend die Lieferung seiner entsprechenden Aktion an das Ziel durch den Ereignishandler.
  15. Verfahren nach irgendeinem der Ansprüche 1 bis 14, wobei die Mehrzahl von Ereigniserkennern unabhängig voneinander die Abfolge von einem oder mehreren Unterereignissen parallel bearbeiten.
  16. Verfahren nach irgendeinem der Ansprüche 1 bis 15, wobei einer oder mehrere der Mehrzahl von Ereigniserkennern angepasst sind, die Lieferung eines oder mehrerer Unterereignisse der Abfolge von Unterereignissen zu verzögern, bis der jeweilige Ereigniserkenner das Ereignis erkennt.
  17. Verfahren nach irgendeinem der Ansprüche 1 bis 16, wobei ein oder mehrere der Mehrzahl von Ereigniserkennern, aufweisend ausschließliche Ereigniserkenner, konfiguriert sind, ausschließliche Ereigniserkennung durchzuführen, und das Ereignis-Liefersystem verhindert, dass irgendwelche nicht-ausschließlichen Ereigniserkenner für aktiv involvierte Ansichten in der Ansichtshierarchie jeweilige Ereignisse erkennen, nachdem irgendeiner der ausschließlichen Ereigniserkenner ein Ereignis erkennt.
  18. Verfahren nach Anspruch 17, wobei der eine oder die mehreren ausschließlichen Ereigniserkenner eine Ereignis-Ausnahmeliste enthalten.
  19. Verfahren nach Anspruch 18, wobei die Ereignis-Ausnahmeliste Ereignisse enthält, deren korrespondierende Ereignisdefinitionen sich wiederholende Unterereignisse aufweisen.
  20. Verfahren nach irgendeinem der Ansprüche 1 bis 19, wobei die Ereignisdefinition eine Benutzereingabe-Operation definiert.
  21. Verfahren nach irgendeinem der Ansprüche 1 bis 20, wobei ein jeweiliges Unterereignis der Abfolge von einem oder mehreren Unterereignissen aus der Gruppe ausgewählt wird, die aus einem Taste-Drücken, einem Taste-Drücken-Anhalten, einem Taste-Drücken-Freigeben, einem Knopf-Drücken, einem Knopf-Drücken-Anhalten, einem Knopf-Drücken-Freigeben, einer Joystick-Bewegung, einer Mausbewegung, einem Mausknopf-drücken, einem Mausknopf-Freigeben, einer Stiftberührung, einer Stiftbewegung, einem Stift-Freigeben, einer mündlichen Anweisung, einer detektierten Augenbewegung, einer biometrischen Eingabe, und einer detektierten physiologischen Änderung bei einem Benutzer besteht.
  22. Ein Verfahren, aufweisend: bei einem elektronischen Gerät, das konfiguriert ist, Software auszuführen, die eine Ansichtshierarchie mit einer Mehrzahl von Ansichten enthält: Anzeigen einer oder mehrere Ansichten der Ansichtshierarchie; Ausführen eines oder mehrerer Software-Elemente, wobei jedes Software-Element mit einer bestimmten Ansicht assoziiert ist, wobei jede bestimmte Ansicht einen oder mehrere Ereigniserkenner enthält, wobei jeder Ereigniserkenner aufweist: eine Ereignisdefinition basierend auf einem oder mehreren Unterereignissen, und einen Ereignishandler, wobei der Ereignishandler: eine Aktion für ein Ziel spezifiziert, und konfiguriert ist, in Antwort auf das Detektieren eines der Ereignisdefinition entsprechenden Ereignisses durch den Ereigniserkenner die Aktion an das Ziel zu senden; Detektieren einer Abfolge von einem oder mehreren Unterereignissen; und Identifizieren einer der Ansichten der Ansichtshierarchie als eine Trefferansicht, wobei die Trefferansicht festlegt, welche Ansichten in der Ansichtshierarchie aktiv involvierte Ansichten sind; für jede aktiv involvierte Ansicht Liefern eines entsprechenden Unterereignisses an einen oder mehrere Ereigniserkenner innerhalb der Ansichtshierarchie; und bei Ereigniserkennern für die aktiv involvierten Ansichten in der Ansichtshierarchie, Treffen einer Unterereigniserkennungs-Entscheidung während der Bearbeitung des jeweiligen Unterereignisses.
  23. Verfahren nach Anspruch 22, wobei jeder Ereigniskenner für aktiv involvierte Ansichten in der Ansichtshierarchie die Abfolge von einem oder mehreren Unterereignissen parallel bearbeitet.
  24. Computerlesbares Speichermedium, dass ein oder mehrere Programme zum Ausführen durch einen oder mehrere Prozessoren eines Computersystems oder -gerätes speichert, wobei das eine oder die mehreren Programme aufweisen: ein oder mehrere Anwendungsprogramme zum Anzeigen einer oder mehrerer Ansichten einer Ansichtshierarchie mit einer Mehrzahl von Ansichten; das eine oder die mehreren Anwendungsprogramme, die ein oder mehrere Software-Elemente aufweisen, wobei jedes Software-Element mit einer bestimmten Ansicht assoziiert ist, wobei jede bestimmte Ansicht eine oder mehrere Ereigniserkenner enthält, wobei jeder Ereigniserkenner aufweist: eine Ereignisdefinition basierend auf einem oder mehreren Unterereignissen, und einem Ereignishandler, wobei der Ereignishandler: eine Aktion für ein Ziel spezifiziert, und konfiguriert ist, in Antwort auf das Detektieren eines der Ereignisdefinition entsprechenden Ereignisses durch den Ereigniserkenner die Aktion an das Ziel zu senden; Ereignisverarbeitungsanweisungen, die, wenn durch den einen oder die mehreren Prozessoren des Computersystems oder -Gerätes ausgeführt, das Computersystem oder Gerät dazu veranlassen: eine Abfolge von einem oder mehreren Unterereignissen zu detektieren; eine der Ansichten der Ansichtshierarchie als eine Trefferansicht zu identifizieren, wobei die Trefferansicht festlegt, welche Ansichten in der Ansichtshierarchie aktiv involvierte Ansichten sind; für jede aktiv involvierte Ansicht eine entsprechendes Unterereignis an einen oder mehrere Ereigniserkenner innerhalb der Ansichtshierarchie zu liefern; wobei jeder Ereigniserkenner für aktiv involvierte Ansichten in der Ansichtshierarchie das jeweilige Unterereignis vor Bearbeitung eines nächsten Unterereignisses in der Abfolge von Unterereignissen bearbeitet.
  25. Computerlesbares Speichermedium nach Absatz 24, wobei das eine oder die mehreren Programme Anweisungen enthalten, die, wenn sie durch den einen oder die mehreren Prozessoren ausgeführt werden, das Computersystem oder -gerät zur Durchführung des Verfahrens nach irgendeinem der Ansprüche 1 bis 23 veranlassen.
  26. Vorrichtung, aufweisend: eine Anzeige; einen oder mehrere Prozessoren; Speicher; ein oder mehrere Programme, die in dem Speicher gespeichert sind, die konfiguriert sind, eine oder mehrere Ansichten einer Ansichtshierarchie mit einer Mehrzahl von Ansichten anzuzeigen; das eine oder die mehreren Programme, die ein oder mehrere Software-Elemente enthalten, wobei jedes Software-Element mit einer bestimmten Ansicht assoziiert ist, wobei jede bestimmte Ansicht einen oder mehrere Ereigniserkenner enthält, wobei jeder Ereigniserkenner aufweist: eine Ereignisdefinition basierend auf einem oder mehreren Unterereignissen; einen Ereignishandler, wobei der Ereignishandler: eine Aktion für ein Ziel spezifiziert, und konfiguriert ist, in Antwort auf das Detektieren eines der Ereignisdefinition entsprechenden Ereignisses durch den Ereigniserkenner die Aktion an das Ziel zu senden; das eine oder die mehreren Programme, die ein Ereignis-Lieferprogramm enthalten, die, wenn sie durch den einen oder die mehreren Prozessoren der Vorrichtung ausgeführt werden, die Vorrichtung dazu veranlassen: eine Abfolge von einem oder mehreren Unterereignissen zu detektieren; eine der Ansichten der Ansichtshierarchie als eine Trefferansicht zu identifizieren, wobei die Trefferansicht festlegt, welche Ansichten in der Ansichtshierarchie aktiv involvierte Ansichten sind; ein jeweiliges Unterereignis an Ereigniserkenner für jede aktiv involvierte Ansicht innerhalb der Ansichtshierarchie zu liefern; und eine Unterereignis-Erkennungs-Entscheidung zu treffen, während Ereigniserkenner für die aktiv involvierten Ansichten in der Ansichtshierarchie das jeweilige Unterereignis bearbeiten.
  27. Vorrichtung nach Anspruch 26, wobei das eine oder die mehreren Programme, die in dem Speicher gespeichert sind, Anweisungen enthalten, die, wenn sie durch den einen oder die mehreren Prozessoren ausgeführt werden, das Computersystem oder Gerät zur Durchführung des Verfahrens nach irgendeinem der Ansprüche 1 bis 23 veranlassen.
DE112010001143T 2009-03-16 2010-03-12 Ereigniserkennung Pending DE112010001143T5 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US21033209P 2009-03-16 2009-03-16
US61/210,332 2009-03-16
US12/566,660 2009-09-24
US12/566,660 US8285499B2 (en) 2009-03-16 2009-09-24 Event recognition
PCT/US2010/027118 WO2010107669A2 (en) 2009-03-16 2010-03-12 Event recognition

Publications (1)

Publication Number Publication Date
DE112010001143T5 true DE112010001143T5 (de) 2012-05-16

Family

ID=42731388

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112010001143T Pending DE112010001143T5 (de) 2009-03-16 2010-03-12 Ereigniserkennung

Country Status (9)

Country Link
US (5) US8285499B2 (de)
EP (2) EP2409222A2 (de)
JP (5) JP5594914B2 (de)
KR (1) KR101278346B1 (de)
CN (4) CN104035718B (de)
AU (1) AU2010226120B2 (de)
CA (4) CA2817648C (de)
DE (1) DE112010001143T5 (de)
WO (1) WO2010107669A2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11372538B2 (en) 2012-06-22 2022-06-28 Sony Corporation Detection device and detection method

Families Citing this family (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9256356B2 (en) * 2001-03-29 2016-02-09 International Business Machines Corporation Method and system for providing feedback for docking a content pane in a host window
US7844915B2 (en) 2007-01-07 2010-11-30 Apple Inc. Application programming interfaces for scrolling operations
US20080168402A1 (en) 2007-01-07 2008-07-10 Christopher Blumenberg Application Programming Interfaces for Gesture Operations
US20080168478A1 (en) 2007-01-07 2008-07-10 Andrew Platzer Application Programming Interfaces for Scrolling
US8645827B2 (en) 2008-03-04 2014-02-04 Apple Inc. Touch event model
US8717305B2 (en) 2008-03-04 2014-05-06 Apple Inc. Touch event model for web pages
US8174502B2 (en) 2008-03-04 2012-05-08 Apple Inc. Touch event processing for web pages
US8416196B2 (en) 2008-03-04 2013-04-09 Apple Inc. Touch event model programming interface
US8463430B2 (en) * 2008-10-23 2013-06-11 Utique, Inc Interactive and 3-D multi-senor touch selection interface for an automated retail store, vending machine, digital sign, or retail display
US8566045B2 (en) 2009-03-16 2013-10-22 Apple Inc. Event recognition
US8285499B2 (en) 2009-03-16 2012-10-09 Apple Inc. Event recognition
US9684521B2 (en) 2010-01-26 2017-06-20 Apple Inc. Systems having discrete and continuous gesture recognizers
US9311112B2 (en) * 2009-03-16 2016-04-12 Apple Inc. Event recognition
US8566044B2 (en) 2009-03-16 2013-10-22 Apple Inc. Event recognition
US9223590B2 (en) * 2010-01-06 2015-12-29 Apple Inc. System and method for issuing commands to applications based on contextual information
US20110214092A1 (en) * 2010-02-26 2011-09-01 Siemens Product Lifecycle Management Software Inc. System and Method for Management of User Interactions Using Configurable Listeners in a Data Processing System
US8776091B2 (en) * 2010-04-30 2014-07-08 Microsoft Corporation Reducing feedback latency
US8552999B2 (en) 2010-06-14 2013-10-08 Apple Inc. Control selection approximation
US9104306B2 (en) * 2010-10-29 2015-08-11 Avago Technologies General Ip (Singapore) Pte. Ltd. Translation of directional input to gesture
US20120131513A1 (en) * 2010-11-19 2012-05-24 Microsoft Corporation Gesture Recognition Training
AU2015203638B2 (en) * 2010-12-20 2016-11-17 Apple Inc. Event recognition
KR101645685B1 (ko) * 2010-12-20 2016-08-04 애플 인크. 이벤트 인식
CN203287883U (zh) * 2010-12-20 2013-11-13 苹果公司 电子设备及其信息处理装置
US20130283202A1 (en) * 2010-12-30 2013-10-24 Wei Zhou User interface, apparatus and method for gesture recognition
US20120196540A1 (en) * 2011-02-02 2012-08-02 Cisco Technology, Inc. Method and apparatus for a bluetooth-enabled headset with a multitouch interface
US9298363B2 (en) 2011-04-11 2016-03-29 Apple Inc. Region activation for touch sensitive surface
US9604542B2 (en) * 2011-04-20 2017-03-28 Harman Becker Automotive Systems Gmbh I/O device for a vehicle and method for interacting with an I/O device
US20120278712A1 (en) * 2011-04-27 2012-11-01 Microsoft Corporation Multi-input gestures in hierarchical regions
US8793624B2 (en) * 2011-05-18 2014-07-29 Google Inc. Control of a device using gestures
US8782525B2 (en) 2011-07-28 2014-07-15 National Insturments Corporation Displaying physical signal routing in a diagram of a system
US8713482B2 (en) * 2011-07-28 2014-04-29 National Instruments Corporation Gestures for presentation of different views of a system diagram
US20130036377A1 (en) * 2011-08-05 2013-02-07 Nokia Corporation Controlling responsiveness to user inputs
US9417754B2 (en) 2011-08-05 2016-08-16 P4tents1, LLC User interface system, method, and computer program product
US8971572B1 (en) 2011-08-12 2015-03-03 The Research Foundation For The State University Of New York Hand pointing estimation for human computer interaction
US9621409B2 (en) 2011-09-15 2017-04-11 Oracle International Corporation System and method for handling storage events in a distributed data grid
US20130179844A1 (en) * 2012-01-06 2013-07-11 Mirko Mandic Input Pointer Delay
US9575652B2 (en) 2012-03-31 2017-02-21 Microsoft Technology Licensing, Llc Instantiable gesture objects
WO2013169865A2 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for moving a user interface object based on an intensity of a press input
EP3401773A1 (de) 2012-05-09 2018-11-14 Apple Inc. Vorrichtung, verfahren und grafische benutzerschnittstelle zur anzeige von zusatzinformationen als reaktion auf einen benutzerkontakt
DE112013002412T5 (de) 2012-05-09 2015-02-19 Apple Inc. Vorrichtung, Verfahren und grafische Benutzeroberfläche zum Bereitstellen von Rückmeldung für das Wechseln von Aktivierungszuständen eines Benutzerschnittstellenobjekts
DE112013002387T5 (de) 2012-05-09 2015-02-12 Apple Inc. Vorrichtung, Verfahren und grafische Benutzeroberfläche für die Bereitstellung taktiler Rückkopplung für Operationen in einer Benutzerschnittstelle
WO2013169870A1 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for transitioning between display states in response to gesture
US20130325832A1 (en) * 2012-05-31 2013-12-05 Microsoft Corporation Presenting search results with concurrently viewable targets
WO2014014806A1 (en) * 2012-07-15 2014-01-23 Apple Inc. Disambiguation of multitouch gesture recognition for 3d interaction
US9507513B2 (en) 2012-08-17 2016-11-29 Google Inc. Displaced double tap gesture
JP5700020B2 (ja) * 2012-10-10 2015-04-15 コニカミノルタ株式会社 画像処理装置、プログラム及び操作イベント判別方法
CN103729172A (zh) * 2012-10-12 2014-04-16 英业达科技有限公司 避免触控事件被拦截以触发给多元件执行的系统及其方法
CN103838502B (zh) * 2012-11-22 2018-04-27 腾讯科技(深圳)有限公司 一种滑动识别方法和装置
US20140149916A1 (en) 2012-11-28 2014-05-29 SoMo Audience Corp. Content manipulation using swipe gesture recognition technology
AU2013368443B2 (en) 2012-12-29 2016-03-24 Apple Inc. Device, method, and graphical user interface for transitioning between touch input to display output relationships
US9092527B2 (en) * 2013-01-30 2015-07-28 Quixey, Inc. Performing application search based on entities
TWM471655U (zh) * 2013-02-07 2014-02-01 Asustek Comp Inc 具有多種主題模式的電子裝置
US9733716B2 (en) * 2013-06-09 2017-08-15 Apple Inc. Proxy gesture recognizer
US9280452B1 (en) * 2013-06-26 2016-03-08 Amazon Technologies, Inc. Systems and methods for generating test cases
KR20150017977A (ko) * 2013-08-08 2015-02-23 삼성전자주식회사 지능적 정보 제공 방법 및 장치
US10242315B2 (en) 2013-10-14 2019-03-26 International Business Machines Corporation Finite state machine forming
JP6062351B2 (ja) * 2013-11-28 2017-01-18 京セラ株式会社 電子機器
US9679183B2 (en) * 2013-12-20 2017-06-13 Apple Inc. Finger biometric sensor including drive signal level updating and related methods
US9430142B2 (en) * 2014-07-17 2016-08-30 Facebook, Inc. Touch-based gesture recognition and application navigation
WO2016114288A1 (ja) * 2015-01-15 2016-07-21 シャープ株式会社 情報処理装置、情報処理装置の制御方法および制御プログラム
CN104596037B (zh) * 2015-01-16 2019-11-29 珠海格力电器股份有限公司 空调器、空调控制器及其控制方法和装置
CN107209654B (zh) * 2015-01-27 2020-04-17 三菱电机株式会社 用户接口装置、用户接口显示方法以及控制程序
US10095396B2 (en) 2015-03-08 2018-10-09 Apple Inc. Devices, methods, and graphical user interfaces for interacting with a control object while dragging another object
US9639184B2 (en) 2015-03-19 2017-05-02 Apple Inc. Touch input cursor manipulation
US9891811B2 (en) 2015-06-07 2018-02-13 Apple Inc. Devices and methods for navigating between user interfaces
US9860451B2 (en) 2015-06-07 2018-01-02 Apple Inc. Devices and methods for capturing and interacting with enhanced digital images
CN105100916B (zh) * 2015-07-09 2019-03-08 北京奇虎科技有限公司 一种视频播放器的制作方法和装置
US9880735B2 (en) 2015-08-10 2018-01-30 Apple Inc. Devices, methods, and graphical user interfaces for manipulating user interface objects with visual and/or haptic feedback
US10235035B2 (en) 2015-08-10 2019-03-19 Apple Inc. Devices, methods, and graphical user interfaces for content navigation and manipulation
CN105549824A (zh) * 2015-12-26 2016-05-04 魅族科技(中国)有限公司 一种显示控制方法及移动终端
CN106126355A (zh) * 2016-06-22 2016-11-16 百度在线网络技术(北京)有限公司 基于iOS系统的事件传递方法和装置
US10558288B2 (en) * 2016-07-07 2020-02-11 Samsung Display Co., Ltd. Multi-touch display panel and method of controlling the same
CN106250229B (zh) * 2016-08-16 2020-01-24 东软集团股份有限公司 事件处理的方法及装置
CN106896987B (zh) * 2017-02-27 2019-06-25 网易(杭州)网络有限公司 实现界面元素跟随的方法及装置
CN111026306B (zh) * 2017-05-16 2021-02-02 苹果公司 用于触摸输入处理的设备、方法和图形用户界面
CN107219983B (zh) * 2017-06-20 2020-07-31 武汉斗鱼网络科技有限公司 列表显示方法及装置
US11210684B1 (en) 2018-01-17 2021-12-28 Amazon Technologies, Inc. Accurately estimating causal effects for related events
US20190286995A1 (en) * 2018-03-14 2019-09-19 Scaled Inference, Inc. Methods and systems for optimized policy generation to transform computing analytics frameworks into cross-platform real-time decision-making systems
CN108711185B (zh) * 2018-05-15 2021-05-28 清华大学 联合刚性运动和非刚性形变的三维重建方法及装置
US10921975B2 (en) 2018-06-03 2021-02-16 Apple Inc. Devices, methods, and user interfaces for conveying proximity-based and contact-based input events
US10877660B2 (en) * 2018-06-03 2020-12-29 Apple Inc. Devices and methods for processing inputs using gesture recognizers
JP6709255B2 (ja) 2018-07-27 2020-06-10 本田技研工業株式会社 内燃機関の冷却構造
CN110111812B (zh) * 2019-04-15 2020-11-03 深圳大学 一种键盘击键内容的自适应识别方法和系统
CN110989888B (zh) * 2019-12-13 2021-03-02 广州方硅信息技术有限公司 一种触摸事件分发方法及设备
CN118276856A (zh) * 2024-05-31 2024-07-02 北京搜狐新动力信息技术有限公司 应用状态管理方法、组件库、电子设备及存储介质

Family Cites Families (510)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1517521A (en) 1975-09-01 1978-07-12 Tilgate Pallets Ltd Pallets
US4455452A (en) 1982-09-13 1984-06-19 Touch Activated Switch Arrays, Inc. Touch activated controller for generating X-Y output information
US4674066A (en) 1983-02-18 1987-06-16 Houghton Mifflin Company Textual database system using skeletonization and phonetic replacement to retrieve words matching or similar to query words
JPH02140822A (ja) 1988-11-22 1990-05-30 Nec Corp マルチウインドディスプレイ方式
US5252951A (en) 1989-04-28 1993-10-12 International Business Machines Corporation Graphical user interface with gesture recognition in a multiapplication environment
JP2862626B2 (ja) 1990-03-22 1999-03-03 株式会社東芝 電子辞書及び情報検索方法
US5046434A (en) 1990-05-02 1991-09-10 Penda Corporation Plastic reinforced thermoformed pallet
JP3145735B2 (ja) 1991-07-17 2001-03-12 富士通株式会社 入力制御方式
JPH05197573A (ja) 1991-08-26 1993-08-06 Hewlett Packard Co <Hp> タスク指向パラダイムによるタスク管理システム
JP2827612B2 (ja) 1991-10-07 1998-11-25 富士通株式会社 タッチパネル装置およびタッチパネル装置におけるオブジェクトの表示方法。
US5233547A (en) 1991-11-12 1993-08-03 Ncr Corporation Electronic checking account apparatus and method having a digitizer to receive information as a check is being written
JP2787523B2 (ja) 1992-04-15 1998-08-20 沖電気工業株式会社 キーボード
US5880411A (en) 1992-06-08 1999-03-09 Synaptics, Incorporated Object position detector with edge motion feature and gesture recognition
US5488204A (en) 1992-06-08 1996-01-30 Synaptics, Incorporated Paintbrush stylus for capacitive touch sensor pad
JPH0816314B2 (ja) 1992-09-12 1996-02-21 グンゼ株式会社 筒状編地の連続染色法
US7084859B1 (en) 1992-09-18 2006-08-01 Pryor Timothy R Programmable tactile touch screen displays and man-machine interfaces for improved vehicle instrumentation and telematics
JP2999335B2 (ja) 1992-11-05 2000-01-17 シャープ株式会社 ジェスチャー処理装置およびジェスチャー処理方法
US5583543A (en) 1992-11-05 1996-12-10 Sharp Kabushiki Kaisha Pen input processing apparatus
US5612719A (en) * 1992-12-03 1997-03-18 Apple Computer, Inc. Gesture sensitive buttons for graphical user interfaces
US5463725A (en) 1992-12-31 1995-10-31 International Business Machines Corp. Data processing system graphical user interface which emulates printed material
US5513309A (en) 1993-01-05 1996-04-30 Apple Computer, Inc. Graphic editor user interface for a pointer-based computer system
DE4406668C2 (de) 1993-04-27 1996-09-12 Hewlett Packard Co Verfahren und Vorrichtung zum Betreiben eines berührungsempfindlichen Anzeigegeräts
JP2986047B2 (ja) 1993-04-29 1999-12-06 インターナショナル・ビジネス・マシーンズ・コーポレイション ディジタル入力用表示装置並びに入力処理装置および方法
DE69432199T2 (de) 1993-05-24 2004-01-08 Sun Microsystems, Inc., Mountain View Graphische Benutzerschnittstelle mit Verfahren zur Schnittstellebildung mit fernsteuernden Einrichtungen
US6035343A (en) 1993-06-11 2000-03-07 Fujitsu Limited Method for executing software formed of software components and a system for executing such software
US5818455A (en) * 1993-07-21 1998-10-06 Xerox Corporation Method and apparatus for operating on the model data structure of an image to produce human perceptible output using a viewing operation region having explicit multiple regions
CA2124505C (en) 1993-07-21 2000-01-04 William A. S. Buxton User interface having simultaneously movable tools and cursor
US5581670A (en) 1993-07-21 1996-12-03 Xerox Corporation User interface having movable sheet with click-through tools
US5627959A (en) 1993-09-20 1997-05-06 Oracle Corporation Method for manipulating graphic objects
US5564112A (en) 1993-10-14 1996-10-08 Xerox Corporation System and method for generating place holders to temporarily suspend execution of a selected command
US5454960A (en) 1993-11-10 1995-10-03 Advanced Building Technologies, Inc. Oil change and recycling system
US5534893A (en) 1993-12-15 1996-07-09 Apple Computer, Inc. Method and apparatus for using stylus-tablet input in a computer system
US5588072A (en) 1993-12-22 1996-12-24 Canon Kabushiki Kaisha Method and apparatus for selecting blocks of image data from image data having both horizontally- and vertically-oriented blocks
US5686940A (en) 1993-12-24 1997-11-11 Rohm Co., Ltd. Display apparatus
JPH09510567A (ja) * 1994-03-21 1997-10-21 オブジェクト テクノロジー ライセンシング コーポレイション ドキュメント・プロキシィ・フレームワーク
US5566337A (en) 1994-05-13 1996-10-15 Apple Computer, Inc. Method and apparatus for distributing events in an operating system
JP2939119B2 (ja) 1994-05-16 1999-08-25 シャープ株式会社 手書き文字入力表示装置および方法
US5570113A (en) 1994-06-29 1996-10-29 International Business Machines Corporation Computer based pen system and method for automatically cancelling unwanted gestures and preventing anomalous signals as inputs to such system
US5510061A (en) 1994-07-26 1996-04-23 Norton Chemical Process Products Corp. Non-welded support plate member
CA2154951C (en) 1994-09-12 2004-05-25 John E. Warnock Method and apparatus for viewing electronic documents
DE69408995T2 (de) 1994-11-15 1998-08-06 Uop Inc Verfahren zur adsorptiven Abtrennung von meta-Xylol von aromatischen Kohlenwasserstoffen
US5495566A (en) 1994-11-22 1996-02-27 Microsoft Corporation Scrolling contents of a window
JP2944439B2 (ja) 1994-12-27 1999-09-06 シャープ株式会社 手書き文字入力装置および方法
US5708460A (en) 1995-06-02 1998-01-13 Avi Systems, Inc. Touch screen
US6496182B1 (en) 1995-06-07 2002-12-17 Microsoft Corporation Method and system for providing touch-sensitive screens for the visually impaired
JPH0969037A (ja) 1995-08-31 1997-03-11 Sharp Corp データ処理装置
JP3636792B2 (ja) 1995-10-18 2005-04-06 株式会社リコー ペン先座標入力装置
US5676064A (en) 1996-04-22 1997-10-14 Shuert; Lyle H. Pallet and pallet package
US5903902A (en) 1996-09-09 1999-05-11 Design Intelligence, Inc. Design engine with tree and component structure
US5745116A (en) 1996-09-09 1998-04-28 Motorola, Inc. Intuitive gesture-based graphical user interface
US5995083A (en) 1996-11-20 1999-11-30 Alps Electric Co., Ltd. Coordinates input apparatus
JP3889466B2 (ja) 1996-11-25 2007-03-07 ソニー株式会社 文章入力装置及び方法
US5917477A (en) 1997-02-28 1999-06-29 Samsung Electronics Co., Ltd. Touch screen input apparatus for chip mounter, chip mounter including the same and method for controlling the chip mounter
US6141018A (en) 1997-03-12 2000-10-31 Microsoft Corporation Method and system for displaying hypertext documents with visual effects
JPH1185354A (ja) 1997-09-04 1999-03-30 Internatl Business Mach Corp <Ibm> キーボード組込み型座標指示装置、キーボード・ユニット、及び情報処理機器
US9098297B2 (en) 1997-05-08 2015-08-04 Nvidia Corporation Hardware accelerator for an object-oriented programming language
US5983190A (en) 1997-05-19 1999-11-09 Microsoft Corporation Client server animation system for managing interactive user interface characters
FI115689B (fi) 1997-05-21 2005-06-15 Nokia Corp Menetelmä ja järjestely matkaviestimen näytöllä esitettävän tiedon vierittämiseksi
US6028602A (en) 1997-05-30 2000-02-22 Telefonaktiebolaget Lm Ericsson Method for managing contents of a hierarchical data model
JP3968477B2 (ja) 1997-07-07 2007-08-29 ソニー株式会社 情報入力装置及び情報入力方法
US6034688A (en) 1997-09-15 2000-03-07 Sony Corporation Scrolling navigational display system
US6377965B1 (en) 1997-11-07 2002-04-23 Microsoft Corporation Automatic word completion system for partially entered data
AU1329199A (en) 1997-12-01 1999-06-16 Cedara Software Corp. Architecture for an application framework
US7663607B2 (en) 2004-05-06 2010-02-16 Apple Inc. Multipoint touchscreen
US7834855B2 (en) 2004-08-25 2010-11-16 Apple Inc. Wide touchpad on a portable computer
KR100595926B1 (ko) 1998-01-26 2006-07-05 웨인 웨스터만 수동 입력 통합 방법 및 장치
EP2256606B1 (de) * 1998-01-26 2017-08-09 Apple Inc. Verfahren und Vorrichtung zur Integration einer manuellen Eingabe
US9292111B2 (en) 1998-01-26 2016-03-22 Apple Inc. Gesturing with a multipoint sensing device
US8479122B2 (en) 2004-07-30 2013-07-02 Apple Inc. Gestures for touch sensitive input devices
US7844914B2 (en) 2004-07-30 2010-11-30 Apple Inc. Activating virtual keys of a touch-screen virtual keyboard
US7614008B2 (en) 2004-07-30 2009-11-03 Apple Inc. Operation of a computer with touch screen interface
US7840912B2 (en) 2006-01-30 2010-11-23 Apple Inc. Multi-touch gesture dictionary
US20070177804A1 (en) 2006-01-30 2007-08-02 Apple Computer, Inc. Multi-touch gesture dictionary
US20040080541A1 (en) 1998-03-20 2004-04-29 Hisashi Saiga Data displaying device
US7346850B2 (en) 1998-06-12 2008-03-18 Cygnus Systems, Inc. System and method for iconic software environment management
US6429846B2 (en) 1998-06-23 2002-08-06 Immersion Corporation Haptic feedback for touchpads and other touch controls
US6570594B1 (en) 1998-06-30 2003-05-27 Sun Microsystems, Inc. User interface with non-intrusive display element
US6061063A (en) 1998-06-30 2000-05-09 Sun Microsystems, Inc. Method and apparatus for providing feedback while scrolling
US6188391B1 (en) 1998-07-09 2001-02-13 Synaptics, Inc. Two-layer capacitive touchpad and method of making same
US7559039B2 (en) 1998-07-14 2009-07-07 Brad Ridgley Method and device for finding, collecting and acting upon units of information
CA2244431C (en) 1998-07-30 2002-02-19 Ibm Canada Limited-Ibm Canada Limitee Touchscreen keyboard support for multi-byte character languages
US6068124A (en) 1998-08-27 2000-05-30 Nanya Plastics Plastic pallet and separator for packaging yarn spools
US6628835B1 (en) * 1998-08-31 2003-09-30 Texas Instruments Incorporated Method and system for defining and recognizing complex events in a video sequence
US20020018051A1 (en) 1998-09-15 2002-02-14 Mona Singh Apparatus and method for moving objects on a touchscreen display
US6985178B1 (en) 1998-09-30 2006-01-10 Canon Kabushiki Kaisha Camera control system, image pick-up server, client, control method and storage medium therefor
JP4159674B2 (ja) 1998-10-22 2008-10-01 富士通株式会社 オブジェクト指向業務システムおよび方法
JP4542637B2 (ja) 1998-11-25 2010-09-15 セイコーエプソン株式会社 携帯情報機器及び情報記憶媒体
JP2000163443A (ja) 1998-11-25 2000-06-16 Seiko Epson Corp 携帯情報機器及び情報記憶媒体
US8938688B2 (en) 1998-12-04 2015-01-20 Nuance Communications, Inc. Contextual prediction of user words and user actions
US6963937B1 (en) 1998-12-17 2005-11-08 International Business Machines Corporation Method and apparatus for providing configurability and customization of adaptive user-input filtration
US6259436B1 (en) 1998-12-22 2001-07-10 Ericsson Inc. Apparatus and method for determining selection of touchable items on a computer touchscreen by an imprecise touch
US6643824B1 (en) 1999-01-15 2003-11-04 International Business Machines Corporation Touch screen region assist for hypertext links
US7469381B2 (en) 2007-01-07 2008-12-23 Apple Inc. List scrolling and document translation, scaling, and rotation on a touch-screen display
JP2000222130A (ja) 1999-02-02 2000-08-11 Toshiba Corp 入力装置および方法および記憶媒体
US20060061551A1 (en) 1999-02-12 2006-03-23 Vega Vista, Inc. Motion detection and tracking system to control navigation and display of portable displays including on-chip gesture detection
US6486896B1 (en) 1999-04-07 2002-11-26 Apple Computer, Inc. Scalable scroll controller
WO2000065191A1 (en) 1999-04-21 2000-11-02 Barrie Weatherall Stabiliser for ladders
JP4939682B2 (ja) 1999-04-27 2012-05-30 エーユー オプトロニクス コーポレイション 表示装置
US6714936B1 (en) * 1999-05-25 2004-03-30 Nevin, Iii Rocky Harry W. Method and apparatus for displaying data stored in linked nodes
AUPQ439299A0 (en) 1999-12-01 1999-12-23 Silverbrook Research Pty Ltd Interface system
US7030863B2 (en) 2000-05-26 2006-04-18 America Online, Incorporated Virtual keyboard system with automatic correction
US6631501B1 (en) 1999-06-30 2003-10-07 Microsoft Corporation Method and system for automatic type and replace of characters in a sequence of characters
US6639584B1 (en) 1999-07-06 2003-10-28 Chuang Li Methods and apparatus for controlling a portable electronic device using a touchpad
JP2001027924A (ja) 1999-07-14 2001-01-30 Sharp Corp 表示画面を用いる入力装置
US6636242B2 (en) * 1999-08-31 2003-10-21 Accenture Llp View configurer in a presentation services patterns environment
US6448986B1 (en) 1999-09-07 2002-09-10 Spotware Technologies Llc Method and system for displaying graphical objects on a display screen
EP1094383A3 (de) 1999-10-18 2005-11-02 Honeywell International, Inc. Verfahren und Vorrichtung zur Kursorsteuerung
EP1208476A2 (de) 1999-10-20 2002-05-29 Koninklijke Philips Electronics N.V. Gerät und verfahren zum durchblättern einer bildersammlung
JP2001134382A (ja) 1999-11-04 2001-05-18 Sony Corp 図形処理装置
JP2001167227A (ja) 1999-12-07 2001-06-22 Hitachi Ltd 情報端末装置
US6778992B1 (en) * 1999-12-21 2004-08-17 Lockstream Corporation Flexible and hierarchical user interfaces defined using a data definition language
US6664991B1 (en) 2000-01-06 2003-12-16 Microsoft Corporation Method and apparatus for providing context menus on a pen-based device
US6809724B1 (en) 2000-01-18 2004-10-26 Seiko Epson Corporation Display apparatus and portable information processing apparatus
US6820237B1 (en) 2000-01-21 2004-11-16 Amikanow! Corporation Apparatus and method for context-based highlighting of an electronic document
AU2001233019A1 (en) 2000-01-28 2001-08-07 Intersense, Inc. Self-referenced tracking
US6856326B1 (en) 2000-01-28 2005-02-15 International Business Machines Corporation Smooth scrolling system and method
US7138983B2 (en) 2000-01-31 2006-11-21 Canon Kabushiki Kaisha Method and apparatus for detecting and interpreting path of designated position
JP4803883B2 (ja) 2000-01-31 2011-10-26 キヤノン株式会社 位置情報処理装置及びその方法及びそのプログラム。
US6590595B1 (en) 2000-02-08 2003-07-08 Sun Microsystems, Inc. Mechanism for providing intuitive scrolling feedback
US6922810B1 (en) 2000-03-07 2005-07-26 Microsoft Corporation Grammar-based automatic data completion and suggestion for user input
WO2001069367A2 (en) 2000-03-17 2001-09-20 Vizible.Com Inc. A three dimensional spatial user interface
US7142205B2 (en) 2000-03-29 2006-11-28 Autodesk, Inc. Single gesture map navigation graphical user interface for a personal digital assistant
MXPA02009369A (es) 2000-03-30 2003-02-12 Qualcomm Inc Metodo y aparato para notificar a la aplicacion de una estacion movil eventos especificos.
JP4124402B2 (ja) 2000-03-31 2008-07-23 株式会社リコー 画像入力装置
AU2001251202A1 (en) 2000-04-07 2001-10-23 Rsa Security, Inc. System and method for authenticating a user
US6765557B1 (en) 2000-04-10 2004-07-20 Interlink Electronics, Inc. Remote control having touch pad to screen mapping
US7009626B2 (en) 2000-04-14 2006-03-07 Picsel Technologies Limited Systems and methods for generating visual representations of graphical data and digital document processing
US6459770B1 (en) 2000-04-19 2002-10-01 Analogic Corporation Backlash-resistant drive assembly for collimator in a CT scanner
JP2001299733A (ja) 2000-04-27 2001-10-30 Konica Corp Pci放射線画像処理装置、pci放射線画像検出処理装置、pci放射線画像出力装置及びpci画像診断支援装置
US6559869B1 (en) 2000-05-04 2003-05-06 Microsoft Corporation Adaptive auto-scrolling merge for hand written input
WO2002005081A1 (en) 2000-05-11 2002-01-17 Nes Stewart Irvine Zeroclick
US6446083B1 (en) 2000-05-12 2002-09-03 Vastvideo, Inc. System and method for classifying media items
US6912694B1 (en) 2000-06-28 2005-06-28 Intel Corporation Providing a scrolling function for a multiple frame web page
US6677965B1 (en) 2000-07-13 2004-01-13 International Business Machines Corporation Rubber band graphical user interface control
GB0017793D0 (en) 2000-07-21 2000-09-06 Secr Defence Human computer interface
US6704024B2 (en) 2000-08-07 2004-03-09 Zframe, Inc. Visual content browsing using rasterized representations
US20020015064A1 (en) 2000-08-07 2002-02-07 Robotham John S. Gesture-based user interface to multi-level and multi-modal sets of bit-maps
JP2002062983A (ja) 2000-08-21 2002-02-28 Hitachi Ltd ポインティングデバイス
US6791530B2 (en) 2000-08-29 2004-09-14 Mitsubishi Electric Research Laboratories, Inc. Circular graphical user interfaces
US6562929B2 (en) 2000-08-30 2003-05-13 Jsr Corporation Conjugated diene-based rubber and method of producing the same, oil extended rubber and rubber composition containing the same
US6912462B2 (en) 2000-08-31 2005-06-28 Sony Corporation Information processing apparatus, information processing method and program storage media
US20020138617A1 (en) 2000-09-06 2002-09-26 Jacob Christfort Providing content from multiple services
US6757673B2 (en) 2000-10-09 2004-06-29 Town Compass Llc Displaying hierarchial relationship of data accessed via subject index
US6735583B1 (en) 2000-11-01 2004-05-11 Getty Images, Inc. Method and system for classifying and locating media content
US7072501B2 (en) 2000-11-22 2006-07-04 R2 Technology, Inc. Graphical user interface for display of anatomical information
US7184796B2 (en) 2000-12-04 2007-02-27 International Business Machines Corporation Personal communication device having a built in projection display
US7240291B2 (en) 2000-12-21 2007-07-03 Xerox Corporation Methods, systems, and computer program products for display of information relating to a virtual three-dimensional book
US6976172B2 (en) 2000-12-28 2005-12-13 Intel Corporation System and method for protected messaging
US6839721B2 (en) 2001-01-12 2005-01-04 Hewlett-Packard Development Company, L.P. Integration of a database into file management software for protecting, tracking, and retrieving data
JP2004525675A (ja) * 2001-01-24 2004-08-26 インターリンク エレクトロニクス インコーポレイテッド ゲーム及びホーム・エンターテイメント・デバイス遠隔制御
US6677932B1 (en) 2001-01-28 2004-01-13 Finger Works, Inc. System and method for recognizing touch typing under limited tactile feedback conditions
US6570557B1 (en) 2001-02-10 2003-05-27 Finger Works, Inc. Multi-touch system and method for emulating modifier keys via fingertip chords
US7030861B1 (en) 2001-02-10 2006-04-18 Wayne Carl Westerman System and method for packing multi-touch gestures onto a hand
US20040027398A1 (en) 2001-02-15 2004-02-12 Denny Jaeger Intuitive graphic user interface with universal tools
US6972776B2 (en) 2001-03-20 2005-12-06 Agilent Technologies, Inc. Scrolling method using screen pointing device
GB2373778B (en) 2001-03-30 2003-08-06 Robin Lewis Corner elements for packaging
US6741996B1 (en) 2001-04-18 2004-05-25 Microsoft Corporation Managing user clips
JP2004532430A (ja) 2001-05-02 2004-10-21 ビットストリーム インコーポレーティッド 副画素最適化画像及びその様な画像を含むデジタルコンテンツを生成及び表示するための方法、システム、及びプログラム
US20020194589A1 (en) 2001-05-08 2002-12-19 Cristofalo Michael Technique for optimizing the delivery of advertisements and other programming segments by making bandwidth tradeoffs
US7730401B2 (en) 2001-05-16 2010-06-01 Synaptics Incorporated Touch screen with user interface enhancement
US20050024341A1 (en) 2001-05-16 2005-02-03 Synaptics, Inc. Touch screen with user interface enhancement
US6498590B1 (en) 2001-05-24 2002-12-24 Mitsubishi Electric Research Laboratories, Inc. Multi-user touch surface
TW521205B (en) 2001-06-05 2003-02-21 Compal Electronics Inc Touch screen capable of controlling amplification with pressure
US6868383B1 (en) 2001-07-12 2005-03-15 At&T Corp. Systems and methods for extracting meaning from multimodal inputs using finite-state devices
US6985137B2 (en) 2001-08-13 2006-01-10 Nokia Mobile Phones Ltd. Method for preventing unintended touch pad input due to accidental touching
US6661409B2 (en) 2001-08-22 2003-12-09 Motorola, Inc. Automatically scrolling handwritten input user interface for personal digital assistants and the like
US6690365B2 (en) 2001-08-29 2004-02-10 Microsoft Corporation Automatic scrolling
US6972749B2 (en) 2001-08-29 2005-12-06 Microsoft Corporation Touch-sensitive device for scrolling a document on a display
US6907575B2 (en) 2001-09-06 2005-06-14 Danger, Inc. Method of scrolling a display window
JP2003173237A (ja) 2001-09-28 2003-06-20 Ricoh Co Ltd 情報入出力システム、プログラム及び記憶媒体
US7254775B2 (en) 2001-10-03 2007-08-07 3M Innovative Properties Company Touch panel system and method for distinguishing multiple touch inputs
US20030071850A1 (en) 2001-10-12 2003-04-17 Microsoft Corporation In-place adaptive handwriting input method and system
US7046230B2 (en) 2001-10-22 2006-05-16 Apple Computer, Inc. Touch pad handheld device
US7345671B2 (en) 2001-10-22 2008-03-18 Apple Inc. Method and apparatus for use of rotational user inputs
TW528981B (en) 2001-10-25 2003-04-21 Compal Electronics Inc Portable computer and related method for preventing input interruption by write-tracking input region
US7009599B2 (en) 2001-11-20 2006-03-07 Nokia Corporation Form factor for portable device
CA2366183A1 (en) 2001-12-21 2003-06-21 Ibm Canada Limited-Ibm Canada Limitee Dynamic status tree facility
US6690387B2 (en) 2001-12-28 2004-02-10 Koninklijke Philips Electronics N.V. Touch-screen image scrolling system and method
US7414616B2 (en) 2002-01-03 2008-08-19 Mahesh Jayachandra User-friendly Brahmi-derived Hindi keyboard
US6957392B2 (en) 2002-01-16 2005-10-18 Laszlo Systems, Inc. Interface engine providing a continuous user interface
GB0201074D0 (en) 2002-01-18 2002-03-06 3G Lab Ltd Graphic user interface for data processing device
US7603627B2 (en) 2002-02-05 2009-10-13 Microsoft Corporation Systems and methods for creating and managing graphical user interface lists
JP3951727B2 (ja) 2002-02-06 2007-08-01 松下電器産業株式会社 情報処理装置
US7075512B1 (en) 2002-02-07 2006-07-11 Palmsource, Inc. Method and system for navigating a display screen for locating a desired item of information
AU2003220400A1 (en) 2002-03-19 2003-10-08 America Online, Inc. Controlling content display
US20030184525A1 (en) 2002-03-29 2003-10-02 Mitac International Corp. Method and apparatus for image processing
JP2003296024A (ja) 2002-04-01 2003-10-17 Nec Engineering Ltd タッチパネル制御方式
US7466307B2 (en) 2002-04-11 2008-12-16 Synaptics Incorporated Closed-loop sensor on a solid-state object position detector
US20030197689A1 (en) 2002-04-23 2003-10-23 May Gregory J. Input device that allows multiple touch key input
US7203911B2 (en) 2002-05-13 2007-04-10 Microsoft Corporation Altering a display on a viewing device based upon a user proximity to the viewing device
TWI238348B (en) 2002-05-13 2005-08-21 Kyocera Corp Portable information terminal, display control device, display control method, and recording media
US7158675B2 (en) 2002-05-14 2007-01-02 Microsoft Corporation Interfacing with ink
US20030214531A1 (en) 2002-05-14 2003-11-20 Microsoft Corporation Ink input mechanisms
WO2003098421A1 (en) 2002-05-16 2003-11-27 Sony Corporation Inputting method and inputting apparatus
US7519918B2 (en) 2002-05-30 2009-04-14 Intel Corporation Mobile virtual desktop
FI20021655A (fi) 2002-06-19 2003-12-20 Nokia Corp Menetelmä lukituksen avaamiseksi ja kannettava elektroninen laite
US7023427B2 (en) 2002-06-28 2006-04-04 Microsoft Corporation Method and system for detecting multiple touches on a touch-sensitive screen
US7062090B2 (en) 2002-06-28 2006-06-13 Microsoft Corporation Writing guide for a free-form document editor
US11275405B2 (en) 2005-03-04 2022-03-15 Apple Inc. Multi-functional hand-held device
JP4338364B2 (ja) 2002-07-02 2009-10-07 ソニー株式会社 携帯情報通信端末、プログラムおよび該プログラムを記録した記録媒体
TW591488B (en) 2002-08-01 2004-06-11 Tatung Co Window scrolling method and device thereof
US20040021698A1 (en) 2002-08-05 2004-02-05 Baldwin Amanda K. Intuitive touchscreen interface for a multifunction device and method therefor
EP1394692A1 (de) 2002-08-05 2004-03-03 Alcatel Verfahren, Terminal, Browser und Markierungssprache für multimodale Interaktionen zwischen einem Benutzer und dem Terminal
JP2004084111A (ja) 2002-08-26 2004-03-18 Tsudakoma Corp 織機の情報表示装置
US7739604B1 (en) 2002-09-25 2010-06-15 Apple Inc. Method and apparatus for managing windows
US7002560B2 (en) 2002-10-04 2006-02-21 Human Interface Technologies Inc. Method of combining data entry of handwritten symbols with displayed character data
GB0223883D0 (en) 2002-10-15 2002-11-20 Seamless Display Ltd Visual display screen arrangement
US7281248B2 (en) 2002-11-19 2007-10-09 Microsoft Corporation Virtualized and realized user interface controls
EP1422599B1 (de) 2002-11-20 2006-07-05 Nokia Corporation Verfahren und Benutzerschnittstelle zur Zeicheneingabe
CA2414047A1 (en) 2002-12-09 2004-06-09 Corel Corporation System and method of extending scalable vector graphics capabilities
US6903927B2 (en) 2002-12-17 2005-06-07 Nokia Corporation Convertible mobile computing device
US20040125136A1 (en) 2002-12-30 2004-07-01 Jukka Wallenius Provision of services through a display system
US20040135817A1 (en) 2003-01-14 2004-07-15 Daughtery Joey L. Interface for selecting and performing operations on objects
US7117453B2 (en) 2003-01-21 2006-10-03 Microsoft Corporation Media frame object visualization system
US20040225965A1 (en) 2003-05-06 2004-11-11 Microsoft Corporation Insertion location tracking for controlling a user interface
US7490296B2 (en) 2003-01-31 2009-02-10 Microsoft Corporation Utility object for specialized data entry
US20040155888A1 (en) 2003-02-11 2004-08-12 Padgitt David Gary Method for displaying the contents of a collection of media objects
US20040160419A1 (en) 2003-02-11 2004-08-19 Terradigital Systems Llc. Method for entering alphanumeric characters into a graphical user interface
US7894177B2 (en) 2005-12-29 2011-02-22 Apple Inc. Light activated hold switch
US7088374B2 (en) 2003-03-27 2006-08-08 Microsoft Corporation System and method for managing visual structure, timing, and animation in a graphics processing system
US7187801B2 (en) 2003-03-31 2007-03-06 Microsoft Corporation Multiple handwriting recognition engine selection
KR100465969B1 (ko) 2003-04-11 2005-01-13 (주)모비솔 손가락 표면을 이용한 소형 포인팅 장치
US8484576B2 (en) 2003-04-17 2013-07-09 Supersonic Aerospace International, Llc System and method for customizing multiple windows of information on a display
US7627343B2 (en) 2003-04-25 2009-12-01 Apple Inc. Media player system
US7102626B2 (en) 2003-04-25 2006-09-05 Hewlett-Packard Development Company, L.P. Multi-function pointing device
GB2424535A (en) 2003-04-30 2006-09-27 Hewlett Packard Co Editing an image and associating sound with it
US8555165B2 (en) 2003-05-08 2013-10-08 Hillcrest Laboratories, Inc. Methods and systems for generating a zoomable graphical user interface
US7173623B2 (en) 2003-05-09 2007-02-06 Microsoft Corporation System supporting animation of graphical display elements through animation object instances
WO2004104813A1 (ja) 2003-05-21 2004-12-02 Hitachi High-Technologies Corporation 指紋センサ内蔵携帯端末装置
EP1639439A2 (de) 2003-06-13 2006-03-29 The University Of Lancaster Benutzerschnittstelle
US7567239B2 (en) 2003-06-26 2009-07-28 Motorola, Inc. Method and system for message and note composition on small screen devices
US8373660B2 (en) 2003-07-14 2013-02-12 Matt Pallakoff System and method for a portable multimedia client
US20050027666A1 (en) 2003-07-15 2005-02-03 Vente, Inc Interactive online research system and method
KR100522940B1 (ko) 2003-07-25 2005-10-24 삼성전자주식회사 활성영역을 설정 가능한 터치스크린 시스템 및 그 제어방법
JP2005056286A (ja) 2003-08-07 2005-03-03 Nec Engineering Ltd ウェブブラウザにおける拡大表示方法および拡大表示プログラム
JP2005062086A (ja) 2003-08-19 2005-03-10 Cstec Kk 検査用チップ
WO2005029460A1 (en) 2003-08-21 2005-03-31 Microsoft Corporation Focus management using in-air points
US9024884B2 (en) 2003-09-02 2015-05-05 Apple Inc. Touch-sensitive electronic apparatus for media applications, and methods therefor
JP4360871B2 (ja) 2003-09-10 2009-11-11 富士通テン株式会社 情報端末における入力装置
US7411575B2 (en) 2003-09-16 2008-08-12 Smart Technologies Ulc Gesture recognition method and touch system incorporating the same
US20070124694A1 (en) 2003-09-30 2007-05-31 Koninklijke Philips Electronics N.V. Gesture to define location, size, and/or content of content window on a display
US7034834B2 (en) 2003-10-24 2006-04-25 Microsoft Corporation Communication protocol for synchronizing animation systems
US20050183035A1 (en) 2003-11-20 2005-08-18 Ringel Meredith J. Conflict resolution for graphic multi-user interface
US7962862B2 (en) 2003-11-24 2011-06-14 International Business Machines Corporation Method and data processing system for providing an improved graphics design tool
US7298367B2 (en) 2003-11-25 2007-11-20 3M Innovative Properties Company Light emitting stylus and user input device using same
US7814419B2 (en) 2003-11-26 2010-10-12 Nokia Corporation Changing an orientation of a user interface via a course of motion
JP3962718B2 (ja) 2003-12-01 2007-08-22 キヤノン株式会社 情報処理装置及びその制御方法、プログラム
US7337412B2 (en) 2003-12-15 2008-02-26 International Business Machines Corporation Methods, systems and computer program products for providing multi-dimensional tree diagram graphical user interfaces
US20050162402A1 (en) 2004-01-27 2005-07-28 Watanachote Susornpol J. Methods of interacting with a computer using a finger(s) touch sensing input device with visual feedback
US7366995B2 (en) 2004-02-03 2008-04-29 Roland Wescott Montague Combination tool that zooms in, zooms out, pans, rotates, draws, or manipulates during a drag
FI117308B (fi) 2004-02-06 2006-08-31 Nokia Corp Eleohjausjärjestelmä
US7319457B2 (en) 2004-02-12 2008-01-15 Sentelic Corporation Method of scrolling window screen by means of controlling electronic device
US7358965B2 (en) 2004-02-18 2008-04-15 Microsoft Corporation Tapping to create writing
GB2411331A (en) 2004-02-19 2005-08-24 Trigenix Ltd Rendering user interface using actor attributes
US20050193015A1 (en) 2004-02-19 2005-09-01 Sandraic Logic, Llc A California Limited Liability Company Method and apparatus for organizing, sorting and navigating multimedia content
FR2866726B1 (fr) 2004-02-23 2006-05-26 Jazzmutant Controleur par manipulation d'objets virtuels sur un ecran tactile multi-contact
JP4438448B2 (ja) 2004-02-26 2010-03-24 セイコーエプソン株式会社 構造化文書表示処理装置、構造化文書表示方法、構造化文書表示プログラム
US7327349B2 (en) 2004-03-02 2008-02-05 Microsoft Corporation Advanced navigation techniques for portable devices
JP2005275652A (ja) 2004-03-24 2005-10-06 Canon Inc 入力軌跡処理装置および入力軌跡処理方法
WO2005096217A1 (en) 2004-04-02 2005-10-13 Nokia Corporation Apparatus and method for handwriting recognition
US7623119B2 (en) 2004-04-21 2009-11-24 Nokia Corporation Graphical functions by gestures
US20050246304A1 (en) * 2004-04-30 2005-11-03 Microsoft Corporation End-user application customization using rules
JP4387242B2 (ja) 2004-05-10 2009-12-16 株式会社バンダイナムコゲームス プログラム、情報記憶媒体及びゲーム装置
US7624355B2 (en) 2004-05-27 2009-11-24 Baneth Robin C System and method for controlling a user interface
JP4855654B2 (ja) 2004-05-31 2012-01-18 ソニー株式会社 車載装置、車載装置の情報提供方法、車載装置の情報提供方法のプログラム及び車載装置の情報提供方法のプログラムを記録した記録媒体
US7358962B2 (en) 2004-06-15 2008-04-15 Microsoft Corporation Manipulating association of data with a physical object
US7773950B2 (en) 2004-06-16 2010-08-10 Telefonaktiebolaget Lm Ericsson (Publ) Benign interference suppression for received signal quality estimation
KR101146750B1 (ko) 2004-06-17 2012-05-17 아드레아 엘엘씨 터치 스크린 상에서 2개-손가락에 의한 입력을 탐지하는 시스템 및 방법과, 터치 스크린 상에서 적어도 2개의 손가락을 통한 3-차원 터치를 센싱하는 시스템 및 방법
US7519223B2 (en) 2004-06-28 2009-04-14 Microsoft Corporation Recognizing gestures and using gestures for interacting with software applications
WO2006003591A2 (en) 2004-06-29 2006-01-12 Koninklijke Philips Electronics, N.V. Discontinuous zoom
WO2006003590A2 (en) 2004-06-29 2006-01-12 Koninklijke Philips Electronics, N.V. A method and device for preventing staining of a display device
JP4903371B2 (ja) 2004-07-29 2012-03-28 任天堂株式会社 タッチパネルを用いたゲーム装置およびゲームプログラム
JP4763695B2 (ja) 2004-07-30 2011-08-31 アップル インコーポレイテッド タッチ・センシティブ入力デバイスのためのモード・ベースのグラフィカル・ユーザ・インタフェース
US7506799B2 (en) 2004-07-30 2009-03-24 Nokia Corporation Method for the monitoring of system security in electronic devices
US7653883B2 (en) 2004-07-30 2010-01-26 Apple Inc. Proximity detector in handheld device
EP1774427A2 (de) 2004-07-30 2007-04-18 Apple Computer, Inc. Auf modus basierende graphische benutzeroberflächen für berührungsempfindliche eingabeeinrichtungen
US7724242B2 (en) 2004-08-06 2010-05-25 Touchtable, Inc. Touch driven method and apparatus to integrate and display multiple image layers forming alternate depictions of same subject matter
US20070046643A1 (en) 2004-08-06 2007-03-01 Hillis W Daniel State-Based Approach to Gesture Identification
US7728821B2 (en) 2004-08-06 2010-06-01 Touchtable, Inc. Touch detecting interactive display
US7721197B2 (en) 2004-08-12 2010-05-18 Microsoft Corporation System and method of displaying content on small screen computing devices
US7181373B2 (en) 2004-08-13 2007-02-20 Agilent Technologies, Inc. System and methods for navigating and visualizing multi-dimensional biological data
US7434173B2 (en) 2004-08-30 2008-10-07 Microsoft Corporation Scrolling web pages using direct interaction
US20060055669A1 (en) 2004-09-13 2006-03-16 Mita Das Fluent user interface for text entry on touch-sensitive display
US7761814B2 (en) 2004-09-13 2010-07-20 Microsoft Corporation Flick gesture
JP4366695B2 (ja) 2004-09-13 2009-11-18 日本ビクター株式会社 メニュー画像表示方法及び電子情報機器
JP4355639B2 (ja) 2004-09-15 2009-11-04 キヤノン株式会社 画像処理装置およびその制御方法
US7728823B2 (en) 2004-09-24 2010-06-01 Apple Inc. System and method for processing raw data of track pad device
JP3786669B2 (ja) 2004-10-06 2006-06-14 株式会社バンダイナムコゲームス ゲームシステム、プログラム及び情報記憶媒体
US20060077183A1 (en) 2004-10-08 2006-04-13 Studt Peter C Methods and systems for converting touchscreen events into application formatted data
WO2006045530A2 (en) 2004-10-22 2006-05-04 Novo Nordisk A/S An apparatus and a method of providing information to a user
JP3770499B1 (ja) 2004-11-02 2006-04-26 任天堂株式会社 ゲーム装置及びゲームプログラム
US7925996B2 (en) 2004-11-18 2011-04-12 Microsoft Corporation Method and system for providing multiple input connecting user interface
US7665031B2 (en) 2004-12-08 2010-02-16 Microsoft Corporation Method and system of taskbar button interfaces
US20060136833A1 (en) 2004-12-15 2006-06-22 International Business Machines Corporation Apparatus and method for chaining objects in a pointer drag path
WO2006067711A2 (en) 2004-12-21 2006-06-29 Koninklijke Philips Electronics N.V. Method and device for displaying animated buttons
CN100377055C (zh) 2004-12-22 2008-03-26 盛群半导体股份有限公司 触控感应装置的判读方法
EP1834491A4 (de) 2005-01-05 2010-06-02 Hillcrest Lab Inc Verteilte softwarestruktur für benutzeroberflächen
US20080122806A1 (en) 2005-01-05 2008-05-29 Jaewoo Ahn Method and Apparatus for Inputting Character Through Pointing Device
US20060156249A1 (en) 2005-01-12 2006-07-13 Blythe Michael M Rotate a user interface
US20070185876A1 (en) 2005-02-07 2007-08-09 Mendis Venura C Data handling system
GB0503253D0 (en) 2005-02-17 2005-03-23 Univ Northumbria Newcastle User control of a hand-held device
US8819569B2 (en) 2005-02-18 2014-08-26 Zumobi, Inc Single-handed approach for navigation of application tiles using panning and zooming
JP4613078B2 (ja) 2005-03-01 2011-01-12 学校法人 名城大学 半導体基板の製造方法
KR101651975B1 (ko) 2005-03-04 2016-08-29 애플 인크. 다기능 휴대용 장치
CN1841284A (zh) 2005-03-28 2006-10-04 上海桐港信息科技有限公司 触摸屏式移动设备微浏览器页面显示漂移方法
US20060221061A1 (en) 2005-03-31 2006-10-05 Tyco Electronic Corporation Touch sensor and control with random pulse spacing
US7750893B2 (en) 2005-04-06 2010-07-06 Nintendo Co., Ltd. Storage medium storing input position processing program, and input position processing device
CN1845046A (zh) 2005-04-07 2006-10-11 技嘉科技股份有限公司 具有触控式功能键的键盘和鼠标
US7355595B2 (en) 2005-04-15 2008-04-08 Microsoft Corporation Tactile device for scrolling
US7673255B2 (en) 2005-04-22 2010-03-02 Microsoft Corporation Interface and system for manipulating thumbnails of live windows in a window manager
US7692637B2 (en) 2005-04-26 2010-04-06 Nokia Corporation User input device for electronic device
US7499027B2 (en) 2005-04-29 2009-03-03 Microsoft Corporation Using a light pointer for input on an interactive display surface
JP4490326B2 (ja) 2005-05-09 2010-06-23 株式会社土井製作所 地中埋設ケーブル等に対する地盤変動時の保護方法及びその保護装置
JP2008541399A (ja) 2005-05-16 2008-11-20 ジーエム・グローバル・テクノロジー・オペレーションズ・インコーポレーテッド 燃料電池電極用触媒
US8117540B2 (en) 2005-05-18 2012-02-14 Neuer Wall Treuhand Gmbh Method and device incorporating improved text input mechanism
US20060262104A1 (en) 2005-05-19 2006-11-23 Sullivan Darius M Systems and methods for distinguishing contact-induced plate vibrations from acoustic noise-induced plate vibrations
US20070024646A1 (en) 2005-05-23 2007-02-01 Kalle Saarinen Portable electronic apparatus and associated method
US7487447B1 (en) 2005-05-25 2009-02-03 Google Inc. Web page zoom feature
US20060271520A1 (en) 2005-05-27 2006-11-30 Ragan Gene Z Content-based implicit search query
US7561159B2 (en) 2005-05-31 2009-07-14 Magnifi Group Inc. Control of animation timeline
WO2006128248A1 (en) 2005-06-02 2006-12-07 National Ict Australia Limited Multimodal computer navigation
US7710397B2 (en) 2005-06-03 2010-05-04 Apple Inc. Mouse with improved input mechanisms using touch sensors
US9019209B2 (en) 2005-06-08 2015-04-28 3M Innovative Properties Company Touch location determination involving multiple touch location processes
JP4849300B2 (ja) 2005-06-14 2012-01-11 ソニー株式会社 表示信号処理装置および方法、記録媒体、並びにプログラム
KR20060133389A (ko) 2005-06-20 2006-12-26 엘지전자 주식회사 이동 단말기의 데이터 처리 장치 및 그 방법
TW200701082A (en) 2005-06-23 2007-01-01 Elan Microelectronics Corp Scroll control method used in the touch panel
US8108787B2 (en) * 2005-07-01 2012-01-31 Microsoft Corporation Distributing input events to multiple applications in an interactive media environment
US7463263B2 (en) 2005-07-15 2008-12-09 Sap Portals Israel Ltd. Declarative specification of model visualizations
CN101228570B (zh) 2005-07-22 2010-05-19 马特·帕尔拉科夫 可用拇指操作的触摸屏用户界面的系统和方法
US7808478B2 (en) 2005-08-22 2010-10-05 Samsung Electronics Co., Ltd. Autonomous handheld device having a drawing tool
US7568035B2 (en) 2005-08-30 2009-07-28 Microsoft Corporation Command binding determination and implementation
US20070061126A1 (en) 2005-09-01 2007-03-15 Anthony Russo System for and method of emulating electronic input devices
EP1924900A1 (de) 2005-09-15 2008-05-28 Apple Inc. System und verfahren zur verarbeitung von rohdaten einer trackpadvorrichtung
US7694231B2 (en) 2006-01-05 2010-04-06 Apple Inc. Keyboards for portable electronic devices
US20070152980A1 (en) 2006-01-05 2007-07-05 Kenneth Kocienda Touch Screen Keyboards for Portable Electronic Devices
US20070064004A1 (en) 2005-09-21 2007-03-22 Hewlett-Packard Development Company, L.P. Moving a graphic element
US7633076B2 (en) 2005-09-30 2009-12-15 Apple Inc. Automated response to and sensing of user activity in portable devices
CN1949161B (zh) 2005-10-14 2010-05-26 鸿富锦精密工业(深圳)有限公司 多层次菜单显示装置及显示控制方法
US20070109275A1 (en) 2005-11-16 2007-05-17 Chen-Ting Chuang Method for controlling a touch screen user interface and device thereof
JP2007148927A (ja) 2005-11-29 2007-06-14 Alps Electric Co Ltd 入力装置及びこれを用いたスクロール制御方法
US9069877B2 (en) 2005-12-07 2015-06-30 Ziilabs Inc., Ltd. User interface with variable sized icons
US20070132789A1 (en) 2005-12-08 2007-06-14 Bas Ording List scrolling in response to moving contact over list of index symbols
WO2007066168A1 (en) 2005-12-08 2007-06-14 Nokia Corporation Improved text entry for electronic devices
US7786975B2 (en) 2005-12-23 2010-08-31 Apple Inc. Continuous scrolling list with acceleration
US7480870B2 (en) 2005-12-23 2009-01-20 Apple Inc. Indication of progress towards satisfaction of a user input condition
US7657849B2 (en) 2005-12-23 2010-02-02 Apple Inc. Unlocking a device by performing gestures on an unlock image
US7650137B2 (en) 2005-12-23 2010-01-19 Apple Inc. Account information display for portable communication device
US7509588B2 (en) 2005-12-30 2009-03-24 Apple Inc. Portable electronic device with interface reconfiguration mode
US20070152983A1 (en) 2005-12-30 2007-07-05 Apple Computer, Inc. Touch pad with symbols based on mode
US8018440B2 (en) 2005-12-30 2011-09-13 Microsoft Corporation Unintentional touch rejection
AU2006332488A1 (en) 2005-12-30 2007-07-12 Apple Inc. Portable electronic device with multi-touch input
US7860536B2 (en) 2006-01-05 2010-12-28 Apple Inc. Telephone interface for a portable communication device
US7574672B2 (en) 2006-01-05 2009-08-11 Apple Inc. Text entry interface for a portable communication device
US20070174257A1 (en) 2006-01-18 2007-07-26 Bruce Thomas Howard Systems and methods for providing sorted search results
US20070176903A1 (en) 2006-01-31 2007-08-02 Dahlin Jeffrey J Capacitive touch sensor button activation
US8312479B2 (en) 2006-03-08 2012-11-13 Navisense Application programming interface (API) for sensory events
US20070214436A1 (en) 2006-03-13 2007-09-13 Myers Raymond L Jr Positional navigation graphic link system
US7620901B2 (en) 2006-03-21 2009-11-17 Microsoft Corporation Simultaneous input across multiple applications
US8866750B2 (en) 2006-04-10 2014-10-21 Microsoft Corporation Universal user interface device
US8587526B2 (en) 2006-04-12 2013-11-19 N-Trig Ltd. Gesture recognition feedback for a dual mode digitizer
US20070242607A1 (en) 2006-04-13 2007-10-18 Tellabs Operations, Inc. Method and system for controlling distribution of network topology information
TWI328185B (en) 2006-04-19 2010-08-01 Lg Electronics Inc Touch screen device for potable terminal and method of displaying and selecting menus thereon
US8077153B2 (en) 2006-04-19 2011-12-13 Microsoft Corporation Precise selection techniques for multi-touch screens
KR20070113025A (ko) 2006-05-24 2007-11-28 엘지전자 주식회사 터치스크린 장치 및 이의 작동방법
US9063647B2 (en) 2006-05-12 2015-06-23 Microsoft Technology Licensing, Llc Multi-touch uses, gestures, and implementation
US7844661B2 (en) 2006-06-15 2010-11-30 Microsoft Corporation Composition of local media playback with remotely generated user interface
KR101277256B1 (ko) 2006-06-16 2013-07-05 삼성전자주식회사 사용자 인터페이스를 위한 장치 및 방법
US8169421B2 (en) 2006-06-19 2012-05-01 Cypress Semiconductor Corporation Apparatus and method for detecting a touch-sensor pad gesture
GB0612624D0 (en) 2006-06-26 2006-08-02 Symbian Software Ltd Speed of gesture
US8086971B2 (en) 2006-06-28 2011-12-27 Nokia Corporation Apparatus, methods and computer program products providing finger-based and hand-based gesture commands for portable electronic device applications
US8269725B2 (en) 2006-06-28 2012-09-18 Microsoft Corporation Input simulation system for touch based devices
WO2008005952A2 (en) 2006-06-30 2008-01-10 Tele Atlas North America, Inc. Method and system for collecting user update requests regarding geographic data to support automated analysis, processing and geographic data updates
WO2008007372A2 (en) 2006-07-12 2008-01-17 N-Trig Ltd. Hover and touch detection for a digitizer
JP4762070B2 (ja) 2006-07-19 2011-08-31 富士通株式会社 手書き入力装置、手書き入力方法、及びコンピュータプログラム
JP4280759B2 (ja) 2006-07-27 2009-06-17 キヤノン株式会社 情報処理装置およびユーザインタフェース制御方法
WO2008020446A1 (en) 2006-08-15 2008-02-21 N-Trig Ltd. Gesture detection for a digitizer
US20080043020A1 (en) 2006-08-18 2008-02-21 Microsoft Corporation User interface for viewing street side imagery
US7843427B2 (en) 2006-09-06 2010-11-30 Apple Inc. Methods for determining a cursor position from a finger contact with a touch screen display
CN101356493A (zh) * 2006-09-06 2009-01-28 苹果公司 用于照片管理的便携式电子装置
US8253695B2 (en) 2006-09-06 2012-08-28 Apple Inc. Email client for a portable multifunction device
US8106856B2 (en) * 2006-09-06 2012-01-31 Apple Inc. Portable electronic device for photo management
US7941760B2 (en) 2006-09-06 2011-05-10 Apple Inc. Soft keyboard display for a portable multifunction device
US7864163B2 (en) 2006-09-06 2011-01-04 Apple Inc. Portable electronic device, method, and graphical user interface for displaying structured electronic documents
US8056007B2 (en) 2006-11-15 2011-11-08 Yahoo! Inc. System and method for recognizing and storing information and associated context
US20080114614A1 (en) 2006-11-15 2008-05-15 General Electric Company Methods and systems for healthcare application interaction using gesture-based interaction enhanced with pressure sensitivity
US7694240B2 (en) 2006-11-22 2010-04-06 General Electric Company Methods and systems for creation of hanging protocols using graffiti-enabled devices
JP5191119B2 (ja) 2006-12-06 2013-04-24 株式会社ジャパンディスプレイウェスト 表示装置、表示装置の制御方法、及びプログラム
TW200828089A (en) 2006-12-29 2008-07-01 Inventec Appliances Corp Method for zooming image
US7777732B2 (en) 2007-01-03 2010-08-17 Apple Inc. Multi-event input system
US8489783B2 (en) 2007-01-03 2013-07-16 Apple Inc. Multi buffer asynchronous scheme for processing incoming information
US7924271B2 (en) 2007-01-05 2011-04-12 Apple Inc. Detecting gestures on multi-event sensitive devices
US7956847B2 (en) 2007-01-05 2011-06-07 Apple Inc. Gestures for controlling, manipulating, and editing of media files using touch sensitive devices
US7907125B2 (en) 2007-01-05 2011-03-15 Microsoft Corporation Recognizing multiple input point gestures
US8656295B2 (en) 2007-01-05 2014-02-18 Apple Inc. Selecting and manipulating web content
US8214768B2 (en) 2007-01-05 2012-07-03 Apple Inc. Method, system, and graphical user interface for viewing multiple application windows
US20080168395A1 (en) 2007-01-07 2008-07-10 Bas Ording Positioning a Slider Icon on a Portable Multifunction Device
US8665225B2 (en) 2007-01-07 2014-03-04 Apple Inc. Portable multifunction device, method, and graphical user interface for interpreting a finger gesture
US20080168402A1 (en) 2007-01-07 2008-07-10 Christopher Blumenberg Application Programming Interfaces for Gesture Operations
US8091045B2 (en) 2007-01-07 2012-01-03 Apple Inc. System and method for managing lists
US7966578B2 (en) 2007-01-07 2011-06-21 Apple Inc. Portable multifunction device, method, and graphical user interface for translating displayed content
US7671756B2 (en) * 2007-01-07 2010-03-02 Apple Inc. Portable electronic device with alert silencing
US7903115B2 (en) 2007-01-07 2011-03-08 Apple Inc. Animations
US7844915B2 (en) 2007-01-07 2010-11-30 Apple Inc. Application programming interfaces for scrolling operations
US20080168478A1 (en) 2007-01-07 2008-07-10 Andrew Platzer Application Programming Interfaces for Scrolling
US7872652B2 (en) 2007-01-07 2011-01-18 Apple Inc. Application programming interfaces for synchronization
US8519963B2 (en) 2007-01-07 2013-08-27 Apple Inc. Portable multifunction device, method, and graphical user interface for interpreting a finger gesture on a touch screen display
US7912700B2 (en) 2007-02-08 2011-03-22 Microsoft Corporation Context based word prediction
JP4866262B2 (ja) 2007-02-16 2012-02-01 ソフトバンクモバイル株式会社 操作入力処理方法及び携帯型情報処理装置
JP4793287B2 (ja) 2007-02-28 2011-10-12 ブラザー工業株式会社 通信装置および通信システム
KR101383709B1 (ko) 2007-03-07 2014-04-09 삼성디스플레이 주식회사 표시 장치 및 그의 구동 방법
EP1970799B1 (de) 2007-03-15 2017-08-16 LG Electronics Inc. Elektronische Vorrichtung und Verfahren für einen Steuermodus dafür sowie mobiles Kommunikationsendgerät
US8436815B2 (en) 2007-05-25 2013-05-07 Microsoft Corporation Selective enabling of multi-input controls
JP5117121B2 (ja) 2007-06-18 2013-01-09 パイオニア株式会社 Av機器の操作制御システム
US8350815B2 (en) 2007-06-20 2013-01-08 Sony Mobile Communications Portable communication device including touch input with scrolling function
US8059101B2 (en) 2007-06-22 2011-11-15 Apple Inc. Swipe gestures for touch screen keyboards
US8171432B2 (en) 2008-01-06 2012-05-01 Apple Inc. Touch screen device, method, and graphical user interface for displaying and selecting application options
US8181122B2 (en) 2007-07-30 2012-05-15 Perceptive Pixel Inc. Graphical user interface for large-scale, multi-user, multi-touch systems
JP4465374B2 (ja) 2007-08-14 2010-05-19 株式会社エヌ・ティ・ティ・ドコモ 無線通信システム、基地局装置及び送信方法
US8471823B2 (en) 2007-08-16 2013-06-25 Sony Corporation Systems and methods for providing a user interface
US20090051671A1 (en) 2007-08-22 2009-02-26 Jason Antony Konstas Recognizing the motion of two or more touches on a touch-sensing surface
US7949516B2 (en) 2007-08-31 2011-05-24 Research In Motion Limited Handheld electronic device and method employing logical proximity of characters in spell checking
KR101348721B1 (ko) 2007-09-03 2014-01-08 엘지전자 주식회사 휴대 단말기 및 그 휴대 단말기의 터치 인식 방법
KR20090024541A (ko) 2007-09-04 2009-03-09 삼성전자주식회사 하이퍼링크 선택 방법 및 이를 이용하는 이동통신 단말기
US20110047459A1 (en) 2007-10-08 2011-02-24 Willem Morkel Van Der Westhuizen User interface
US7917584B2 (en) * 2007-10-22 2011-03-29 Xcerion Aktiebolag Gesture-based collaboration
JP2009110286A (ja) 2007-10-30 2009-05-21 Toshiba Corp 情報処理装置、ランチャー起動制御プログラムおよびランチャー起動制御方法
WO2009062124A1 (en) 2007-11-09 2009-05-14 Wms Gaming, Inc. Interface for wagering game environments
JP2009169825A (ja) 2008-01-18 2009-07-30 Kyocera Mita Corp 表示入力装置、電子機器及び表示入力制御プログラム
US20090207140A1 (en) 2008-02-19 2009-08-20 Sony Ericsson Mobile Communications Ab Identifying and responding to multiple time-overlapping touches on a touch panel
TWI352924B (en) 2008-02-21 2011-11-21 Wintek Corp Touch panel and driving method of touch panel
US8174502B2 (en) 2008-03-04 2012-05-08 Apple Inc. Touch event processing for web pages
US8645827B2 (en) 2008-03-04 2014-02-04 Apple Inc. Touch event model
US8717305B2 (en) 2008-03-04 2014-05-06 Apple Inc. Touch event model for web pages
US8416196B2 (en) 2008-03-04 2013-04-09 Apple Inc. Touch event model programming interface
US8289283B2 (en) 2008-03-04 2012-10-16 Apple Inc. Language input interface on a device
US8352877B2 (en) 2008-03-06 2013-01-08 Microsoft Corporation Adjustment of range of content displayed on graphical user interface
US20090231281A1 (en) 2008-03-11 2009-09-17 Microsoft Corporation Multi-touch virtual keyboard
US8289289B2 (en) 2008-04-03 2012-10-16 N-trig, Ltd. Multi-touch and single touch detection
KR101513024B1 (ko) 2008-04-22 2015-04-17 엘지전자 주식회사 단말기 및 이것의 이미지 인식 방법
US8526767B2 (en) 2008-05-01 2013-09-03 Atmel Corporation Gesture recognition
US20100177053A2 (en) 2008-05-09 2010-07-15 Taizo Yasutake Method and apparatus for control of multiple degrees of freedom of a display
US20090282332A1 (en) 2008-05-12 2009-11-12 Nokia Corporation Apparatus, method and computer program product for selecting multiple items using multi-touch
US9268483B2 (en) 2008-05-16 2016-02-23 Microsoft Technology Licensing, Llc Multi-touch input platform
WO2009155092A2 (en) 2008-05-29 2009-12-23 Telcordia Technologies, Inc. Method and system for multi-touch-based browsing of media summarizations on a handheld device
US20090309847A1 (en) 2008-06-12 2009-12-17 You I Labs, Inc. Apparatus and method for providing multi-touch interface capability
US7864037B2 (en) * 2008-06-16 2011-01-04 International Business Machines Corporation Pattern-driven communication architecture
US20090322699A1 (en) 2008-06-25 2009-12-31 Sony Ericsson Mobile Communications Ab Multiple input detection for resistive touch panel
US8754855B2 (en) 2008-06-27 2014-06-17 Microsoft Corporation Virtual touchpad
US20090322700A1 (en) 2008-06-30 2009-12-31 Tyco Electronics Corporation Method and apparatus for detecting two simultaneous touches and gestures on a resistive touchscreen
JP2010015238A (ja) 2008-07-01 2010-01-21 Sony Corp 情報処理装置、及び補助情報の表示方法
US8154428B2 (en) 2008-07-15 2012-04-10 International Business Machines Corporation Gesture recognition control of electronic devices using a multi-touch device
US8237807B2 (en) 2008-07-24 2012-08-07 Apple Inc. Image capturing device with touch screen for adjusting camera settings
US8390577B2 (en) 2008-07-25 2013-03-05 Intuilab Continuous recognition of multi-touch gestures
KR101482120B1 (ko) 2008-08-01 2015-01-21 엘지전자 주식회사 스케줄 관리가 가능한 휴대 단말기 및 그 제어방법
CN101339453B (zh) * 2008-08-15 2012-05-23 广东威创视讯科技股份有限公司 基于交互式输入设备的模拟鼠标输入方法
US8135171B2 (en) 2008-08-19 2012-03-13 Au Optronics Corp. Multipoint tracking method and related device
CN101661361A (zh) 2008-08-27 2010-03-03 比亚迪股份有限公司 多点触摸检测系统
US8279241B2 (en) 2008-09-09 2012-10-02 Microsoft Corporation Zooming graphical user interface
US20100088628A1 (en) 2008-10-07 2010-04-08 Sony Ericsson Mobile Communications Ab Live preview of open windows
US20100107116A1 (en) 2008-10-27 2010-04-29 Nokia Corporation Input on touch user interfaces
JP4853507B2 (ja) 2008-10-30 2012-01-11 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
US8732576B2 (en) 2008-12-04 2014-05-20 Nvidia Corporation Operating system providing multi-touch support for applications in a mobile device
TW201023018A (en) 2008-12-12 2010-06-16 Asustek Comp Inc Touch panel with multi-touch function and multi-touch detecting method thereof
US8217909B2 (en) 2008-12-19 2012-07-10 Cypress Semiconductor Corporation Multi-finger sub-gesture reporting for a user interface device
US8869070B2 (en) 2008-12-30 2014-10-21 T-Mobile Usa, Inc. Handwriting manipulation for conducting a search over multiple databases
KR101521932B1 (ko) 2009-01-19 2015-05-20 엘지전자 주식회사 단말기 및 그 제어 방법
CN102317949A (zh) 2009-02-10 2012-01-11 夏普株式会社 认证设备、认证方法以及用于使计算机执行认证方法的程序
US9311112B2 (en) 2009-03-16 2016-04-12 Apple Inc. Event recognition
US9684521B2 (en) 2010-01-26 2017-06-20 Apple Inc. Systems having discrete and continuous gesture recognizers
US8566045B2 (en) 2009-03-16 2013-10-22 Apple Inc. Event recognition
US8285499B2 (en) 2009-03-16 2012-10-09 Apple Inc. Event recognition
US8566044B2 (en) 2009-03-16 2013-10-22 Apple Inc. Event recognition
KR101510484B1 (ko) 2009-03-31 2015-04-08 엘지전자 주식회사 이동 단말기 및 이동 단말기의 제어 방법
US20100281435A1 (en) 2009-04-30 2010-11-04 At&T Intellectual Property I, L.P. System and method for multimodal interaction using robust gesture processing
US8427440B2 (en) 2009-05-05 2013-04-23 Microsoft Corporation Contact grouping and gesture recognition for surface computing
US10705692B2 (en) 2009-05-21 2020-07-07 Sony Interactive Entertainment Inc. Continuous and dynamic scene decomposition for user interface
US8681106B2 (en) 2009-06-07 2014-03-25 Apple Inc. Devices, methods, and graphical user interfaces for accessibility using a touch-sensitive surface
DE102009024656A1 (de) 2009-06-12 2011-03-24 Volkswagen Ag Verfahren zum Steuern einer grafischen Benutzerschnittstelle und Bedienvorrichtung für eine grafische Benutzerschnittstelle
US20110069021A1 (en) 2009-06-12 2011-03-24 Hill Jared C Reducing false touchpad data by ignoring input when area gesture does not behave as predicted
KR101608532B1 (ko) 2009-08-11 2016-04-01 엘지전자 주식회사 이동 통신 단말기에서의 데이터 표시방법 및 이를 적용한 이동 통신 단말기
US8310459B2 (en) 2009-09-23 2012-11-13 Nokia Corporation Touch detection
US9223590B2 (en) 2010-01-06 2015-12-29 Apple Inc. System and method for issuing commands to applications based on contextual information
TWI400638B (zh) 2009-10-20 2013-07-01 Acer Inc 觸控顯示裝置、觸控顯示系統及其調整觸控區域之方法
KR20110047349A (ko) 2009-10-30 2011-05-09 주식회사 팬택 휴대용 단말기에서 터치와 가압을 이용하는 사용자 인터페이스 장치 및 방법
US8957918B2 (en) 2009-11-03 2015-02-17 Qualcomm Incorporated Methods for implementing multi-touch gestures on a single-touch touch surface
US8390600B2 (en) 2009-11-13 2013-03-05 Microsoft Corporation Interactive display system with contact geometry interface
US20100085323A1 (en) 2009-12-04 2010-04-08 Adam Bogue Segmenting a Multi-Touch Input Region by User
US8432368B2 (en) 2010-01-06 2013-04-30 Qualcomm Incorporated User interface methods and systems for providing force-sensitive input
US8140570B2 (en) 2010-03-11 2012-03-20 Apple Inc. Automatic discovery of metadata
US8296332B2 (en) 2010-04-01 2012-10-23 Apple Inc. Visual manipulation of database schema
KR20110110940A (ko) 2010-04-02 2011-10-10 삼성전자주식회사 휴대용 단말기의 터치 입력 장치 및 방법
US9058186B2 (en) 2010-04-07 2015-06-16 Apple Inc. Device, method, and graphical user interface for managing concurrently open software applications
US20110252364A1 (en) 2010-04-07 2011-10-13 Freddy Allen Anzures Device, Method, and Graphical User Interface for Navigation of Multiple Applications
US8131898B2 (en) 2010-05-27 2012-03-06 Adobe Systems Incorporated Event handling in an integrated execution environment
US8669946B2 (en) 2010-05-28 2014-03-11 Blackberry Limited Electronic device including touch-sensitive display and method of controlling same
US20130120280A1 (en) 2010-05-28 2013-05-16 Tim Kukulski System and Method for Evaluating Interoperability of Gesture Recognizers
EP2390766B1 (de) 2010-05-28 2013-09-25 BlackBerry Limited Elektronische Vorrichtung mit berührungsempfindlicher Anzeige und Verfahren zu deren Steuerung
CN102262890A (zh) 2010-05-31 2011-11-30 鸿富锦精密工业(深圳)有限公司 电子装置及其标记方法
US8552999B2 (en) 2010-06-14 2013-10-08 Apple Inc. Control selection approximation
JP5663980B2 (ja) 2010-06-29 2015-02-04 ブラザー工業株式会社 画像処理装置
TWI407346B (zh) 2010-07-30 2013-09-01 Ind Tech Res Inst 觸控輸入裝置之軌跡補償方法與系統,及其電腦程式產品
US20120133579A1 (en) 2010-11-30 2012-05-31 Microsoft Corporation Gesture recognition management
US20120242584A1 (en) 2011-03-22 2012-09-27 Nokia Corporation Method and apparatus for providing sight independent activity reports responsive to a touch gesture
US9298363B2 (en) 2011-04-11 2016-03-29 Apple Inc. Region activation for touch sensitive surface
AU2011202182B1 (en) 2011-05-11 2011-10-13 Frequency Ip Holdings, Llc Creation and presentation of selective digital content feeds
TWI467463B (zh) 2011-05-27 2015-01-01 Asustek Comp Inc 具觸控式螢幕的電腦系統及其手勢的處理方法
US9071970B2 (en) 2011-12-05 2015-06-30 Sony Corporation Terminal device
US9046958B2 (en) 2012-03-15 2015-06-02 Nokia Technologies Oy Method, apparatus and computer program product for user input interpretation and input error mitigation
US9733716B2 (en) 2013-06-09 2017-08-15 Apple Inc. Proxy gesture recognizer
US9430142B2 (en) 2014-07-17 2016-08-30 Facebook, Inc. Touch-based gesture recognition and application navigation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11372538B2 (en) 2012-06-22 2022-06-28 Sony Corporation Detection device and detection method

Also Published As

Publication number Publication date
CN104035718B (zh) 2017-08-25
JP6408085B2 (ja) 2018-10-17
CN104049975A (zh) 2014-09-17
US20110310047A1 (en) 2011-12-22
US9965177B2 (en) 2018-05-08
WO2010107669A2 (en) 2010-09-23
EP2413237B1 (de) 2019-10-16
US8285499B2 (en) 2012-10-09
JP2017215983A (ja) 2017-12-07
JP5594914B2 (ja) 2014-09-24
CA2817890C (en) 2015-12-29
CA2755443C (en) 2013-08-06
CA2817648A1 (en) 2010-09-23
AU2010226120B2 (en) 2013-10-24
WO2010107669A3 (en) 2010-11-25
CN104049975B (zh) 2017-04-19
CN102422264A (zh) 2012-04-18
CN102422264B (zh) 2014-06-11
AU2010226120A1 (en) 2011-11-03
JP5879395B2 (ja) 2016-03-08
US20140160052A1 (en) 2014-06-12
EP2409222A2 (de) 2012-01-25
US9285908B2 (en) 2016-03-15
JP2016129029A (ja) 2016-07-14
JP2014211889A (ja) 2014-11-13
US8428893B2 (en) 2013-04-23
CN104035717B (zh) 2017-04-12
CA2909730C (en) 2018-06-05
KR101278346B1 (ko) 2013-06-25
JP6180563B2 (ja) 2017-08-16
EP2413237A1 (de) 2012-02-01
CA2909730A1 (en) 2010-09-23
CN104035718A (zh) 2014-09-10
CA2755443A1 (en) 2010-09-23
JP2019032854A (ja) 2019-02-28
JP2012521050A (ja) 2012-09-10
US20160162180A1 (en) 2016-06-09
KR20110130484A (ko) 2011-12-05
CA2817648C (en) 2014-12-30
CA2817890A1 (en) 2010-09-23
JP6695395B2 (ja) 2020-05-20
US8682602B2 (en) 2014-03-25
CN104035717A (zh) 2014-09-10
US20100235118A1 (en) 2010-09-16
US20130016039A1 (en) 2013-01-17

Similar Documents

Publication Publication Date Title
DE112010001143T5 (de) Ereigniserkennung
DE112008004156B4 (de) System und verfahren für einen gestenbasierten editiermodus und computerlesbares medium hierfür
DE112013002409T5 (de) Vorrichtung, Verfahren und grafische Benutzeroberfläche für die Anzeige zusätzlicher Informationen in Reaktion auf einen Benutzerkontakt
CN105339900B (zh) 代理手势识别器
DE102009011687A1 (de) Berührungsereignismodell
DE112013002381T5 (de) Vorrichtung, Verfahren und grafische Benutzeroberfläche für die Bewegung und Ablegen eines Benutzerschnittstellenobjekts
DE202016001516U1 (de) Vorrichtungen und grafische Benutzerschnittstellen zur Interaktion mit einem Steuerobjekt, während ein weiteres Objekt verschoben wird
DE112013002412T5 (de) Vorrichtung, Verfahren und grafische Benutzeroberfläche zum Bereitstellen von Rückmeldung für das Wechseln von Aktivierungszuständen eines Benutzerschnittstellenobjekts
DE202016001024U1 (de) Navigations-Benutzerschnittstelle
CN106095418B (zh) 事件识别
DE202014004555U1 (de) Vorrichtung zur Erzeugung von Benutzerschnittstellen aus einer Vorlage
DE112013002387T5 (de) Vorrichtung, Verfahren und grafische Benutzeroberfläche für die Bereitstellung taktiler Rückkopplung für Operationen in einer Benutzerschnittstelle
DE202014004544U1 (de) Vorrichtung und graphische Benutzerschnittstelle zum Bereitstellen von Navigations- und Suchfunktionalitäten
DE202007013923U1 (de) Mehrfachereignis-Eingabesystem
DE202013011826U1 (de) Vorrichtung und grafische Benutzerschnittstelle zum Zugreifen auf eine Anwendung in einer gesperrten Vorrichtung
DE112010002760T5 (de) Benutzerschnittstelle
DE212015000213U1 (de) Multidimensionale Objektneuordnung
DE112018005206T5 (de) Berührungsempfindliche Benutzeroberfläche einschliesslich konfigurierbarer virtueller Widgets
DE202005021492U1 (de) Elektronische Vorrichtung mit berührungsempfindlicher Eingabeeinrichtung
DE202011110334U1 (de) System zum Orthogonales Ziehen auf Scrollbalken
DE112012006448T5 (de) Umsetzung einer Berührungseingabe in eine lokale Eingabe auf der Grundlage eines Umsetzungsprofils für eine Anwendung
DE112011101422T5 (de) Verfahren zum Interagieren mit einem scrollbaren Bereich auf einer tragbaren elektronischen Vorrichtung
DE202017105614U1 (de) Systeme und Computerprogrammprodukte für eine Touchscreen-Benutzeroberfläche eines kollaborativen Bearbeitungstools
DE112013006066T5 (de) Die Druckempfindlichkeit auf Multi-Touch-Einheiten emulieren
DE112018002775T5 (de) Verfahren und vorrichtung zum erfassen von ebenen und/oder quadtrees zur verwendung als ein virtuelles substrat

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication