KR20110130484A - 이벤트 인식 - Google Patents
이벤트 인식 Download PDFInfo
- Publication number
- KR20110130484A KR20110130484A KR1020117024288A KR20117024288A KR20110130484A KR 20110130484 A KR20110130484 A KR 20110130484A KR 1020117024288 A KR1020117024288 A KR 1020117024288A KR 20117024288 A KR20117024288 A KR 20117024288A KR 20110130484 A KR20110130484 A KR 20110130484A
- Authority
- KR
- South Korea
- Prior art keywords
- event
- view
- sub
- recognizer
- touch
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction 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/0488—Interaction 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/04883—Interaction 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
- G06F3/0416—Control or interface arrangements specially adapted for digitisers
- G06F3/04166—Details of scanning methods, e.g. sampling time, grouping of sub areas or time sharing with display driving
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/048—Indexing scheme relating to G06F3/048
- G06F2203/04808—Several 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
방법은 뷰 계층구조의 하나 이상의 뷰를 디스플레이하는 복수의 뷰를 갖는 뷰 계층구조를 포함하는 소프트웨어를 실행한다. 이 방법은 특정의 뷰와 연관된 소프트웨어 요소를 실행하고, 각각의 특정의 뷰는 이벤트 인식기를 포함한다. 각각의 이벤트 인식기는 서브-이벤트에 기초한 이벤트 정의, 및 대상에 대한 동작을 지정하고, 이벤트 인식에 응답하여 동작을 대상으로 전송하도록 구성되어 있는 이벤트 핸들러를 가진다. 이 방법은 서브-이벤트의 시퀀스를 검출하고, 뷰 계층구조의 뷰들 중 하나의 뷰를, 계층구조 내의 어느 뷰가 적극적으로 관여된 뷰인지를 설정하는 히트 뷰로서 식별한다. 이 방법은 각자의 서브-이벤트를 각각의 적극적으로 관여된 뷰에 대한 이벤트 인식기로 전달하고, 뷰 계층구조 내의 적극적으로 관여된 뷰에 대한 각각의 이벤트 인식기는 서브-이벤트의 시퀀스에서의 그 다음 서브-이벤트를 처리하기 전에 각자의 서브-이벤트를 처리한다.
Description
개시된 실시예는 일반적으로 사용자 인터페이스 처리에 관한 것이다. 보다 상세하게는, 개시된 실시예는 사용자 인터페이스 이벤트를 인식하는 장치 및 방법에 관한 것이다.
컴퓨팅 장치는 통상적으로 컴퓨팅 장치와 상호작용하는 데 사용될 수 있는 사용자 인터페이스를 포함한다. 사용자 인터페이스는 사용자 인터페이스의 다양한 양태와 상호작용하기 위해 디스플레이 및/또는 키보드, 마우스 및 터치-감응 표면과 같은 입력 장치를 포함할 수 있다. 터치-감응 표면을 입력 장치로서 갖는 일부 장치에서, 제1 터치-기반 제스처 집합[예를 들어, 탭핑, 더블 탭핑, 수평 스와이프(horizontal swipe), 수직 스와이프(vertical swipe), 핀치(pinch), 디핀치(depinch), 두 손가락 스와이프(two finger swipe) 중 2개 이상]이 특정의 컨텍스트에서(예를 들어, 제1 응용 프로그램의 특정 모드에서) 적절한 입력으로서 인식되고, 다른 상이한 터치-기반 제스처 집합이 다른 컨텍스트(예를 들어, 다른 응용 프로그램 및/또는 제1 응용 프로그램 내에서의 다른 모드 또는 컨텍스트)에서 적절한 입력으로서 인식된다. 그 결과, 터치-기반 제스처를 인식하고 그에 응답하기 위해 필요한 소프트웨어 및 논리가 복잡하게 될 수 있고, 응용 프로그램이 업데이트될 때마다 또는 컴퓨팅 장치에 새로운 응용 프로그램이 추가될 때마다 수정을 필요로 할 수 있다. 이들 및 유사한 문제가 터치-기반 제스처 이외의 입력 소스를 이용하는 사용자 인터페이스에서 일어날 수 있다.
따라서, 터치-기반 제스처 및 이벤트는 물론 다른 입력 소스로부터의 제스처 및 이벤트를 인식하는, 컴퓨팅 장치 상의 모든 응용 프로그램의 거의 모든 컨텍스트 또는 모드에 쉽게 적응가능하며, 응용 프로그램이 업데이트되거나 새로운 응용 프로그램이 컴퓨팅 장치에 추가될 때 거의 또는 전혀 수정을 필요로 하지 않는 포괄적인 프레임워크 또는 메커니즘을 갖는 것이 바람직할 것이다.
상기한 단점을 해결하기 위해, 일부 실시예는, 복수의 뷰를 갖는 뷰 계층구조(view hierarchy)를 포함하는 소프트웨어를 실행하도록 구성된 전자 장치에서, 뷰 계층구조의 하나 이상의 뷰를 디스플레이하고 하나 이상의 소프트웨어 요소 - 각각의 소프트웨어 요소는 특정의 뷰와 연관되어 있으며, 각각의 특정의 뷰는 하나 이상의 이벤트 인식기를 포함함 - 를 실행하는 방법을 제공한다. 각각의 이벤트 인식기는 하나 이상의 서브-이벤트에 기초한 이벤트 정의, 및 이벤트 핸들러를 가지며, 이벤트 핸들러는 대상에 대한 동작을 지정하고, 이벤트 인식기가 이벤트 정의에 대응하는 이벤트를 검출한 것에 응답하여 대상으로 동작을 전송하도록 구성되어 있다. 이 방법은 또한 하나 이상의 서브-이벤트의 시퀀스를 검출하고, 뷰 계층구조의 뷰들 중 하나의 뷰를 히트 뷰(hit view)로서 식별하며, 히트 뷰는 뷰 계층구조 내의 어느 뷰가 적극적으로 관여된 뷰(actively involved view)인지를 설정한다. 이 방법은 또한 각자의 서브-이벤트를 뷰 계층구조 내의 각각의 적극적으로 관여된 뷰에 대한 이벤트 인식기로 전달하고, 뷰 계층구조 내의 적극적으로 관여된 뷰에 대한 각각의 이벤트 인식기는 서브-이벤트의 시퀀스에서의 그 다음 서브-이벤트를 처리하기 전에 각자의 서브-이벤트를 처리한다.
일부 실시예는 복수의 뷰를 갖는 뷰 계층구조를 포함하는 소프트웨어를 실행하도록 구성된 전자 장치에서, 뷰 계층구조의 하나 이상의 뷰를 디스플레이하고 하나 이상의 소프트웨어 요소 - 각각의 소프트웨어 요소는 특정의 뷰와 연관되어 있고 각각의 특정의 뷰는 하나 이상의 이벤트 인식기를 포함함 - 를 실행하는 방법을 제공한다. 각각의 이벤트 인식기는 하나 이상의 서브-이벤트에 기초한 이벤트 정의, 및 이벤트 핸들러를 가지고, 이벤트 핸들러는 대상에 대한 동작을 지정하고, 이벤트 인식기가 이벤트 정의에 대응하는 이벤트를 검출한 것에 응답하여 대상으로 동작을 전송하도록 구성되어 있다. 이 방법은 또한 하나 이상의 서브-이벤트의 시퀀스를 검출하고, 뷰 계층구조의 뷰들 중 하나의 뷰를 히트 뷰로서 식별하며, 히트 뷰는 뷰 계층구조 내의 어느 뷰가 적극적으로 관여된 뷰인지를 설정한다. 이 방법은 또한 각자의 서브-이벤트를 뷰 계층구조 내의 각각의 적극적으로 관여된 뷰에 대한 이벤트 인식기로 전달하고, 뷰 계층구조 내의 적극적으로 관여된 뷰에 대한 이벤트 인식기에서 각자의 서브-이벤트를 처리하는 동안 서브-이벤트 인식 결정을 한다.
일부 실시예는 컴퓨터 시스템 또는 장치의 하나 이상의 프로세서에서 실행하기 위한 하나 이상의 프로그램을 저장하는 컴퓨터 판독가능 저장 매체를 제공하고, 하나 이상의 프로그램은 복수의 뷰를 갖는 뷰 계층구조의 하나 이상의 뷰를 디스플레이하는 하나 이상의 응용 프로그램을 포함한다. 하나 이상의 응용 프로그램은 하나 이상의 소프트웨어 요소를 포함하고, 각각의 소프트웨어 요소는 특정의 뷰와 연관되어 있으며, 각각의 특정의 뷰는 하나 이상의 이벤트 인식기를 포함한다. 각각의 이벤트 인식기는 하나 이상의 서브-이벤트에 기초한 이벤트 정의, 및 이벤트 핸들러를 가지고, 이벤트 핸들러는 대상에 대한 동작을 지정하고, 이벤트 인식기가 이벤트 정의에 대응하는 이벤트를 검출한 것에 응답하여 대상으로 동작을 전송하도록 구성되어 있으며; 이벤트 관리 명령어는, 컴퓨터 시스템 또는 장치의 하나 이상의 프로세서에 의해 실행될 때, 컴퓨터 시스템 또는 장치로 하여금 하나 이상의 서브-이벤트의 시퀀스를 검출하고, 뷰 계층구조의 뷰들 중 하나의 뷰를 히트 뷰로서 식별하며 - 히트 뷰는 뷰 계층구조 내의 어느 뷰가 적극적으로 관여된 뷰인지를 설정함 -, 각자의 서브-이벤트를 뷰 계층구조 내의 각각의 적극적으로 관여된 뷰에 대한 이벤트 인식기로 전달하게 하며, 뷰 계층구조 내의 적극적으로 관여된 뷰에 대한 각각의 이벤트 인식기는 서브-이벤트의 시퀀스에서의 그 다음 서브-이벤트를 처리하기 전에 각자의 서브-이벤트를 처리한다.
일부 실시예는 디스플레이, 하나 이상의 프로세서, 메모리, 및 복수의 뷰를 갖는 뷰 계층구조의 하나 이상의 뷰를 디스플레이하도록 구성되어 있는, 메모리에 저장된 하나 이상의 프로그램을 포함하는 장치를 제공한다. 하나 이상의 프로그램은 하나 이상의 소프트웨어 요소를 포함하고, 각각의 소프트웨어 요소는 특정의 뷰와 연관되어 있으며, 각각의 특정의 뷰는 하나 이상의 이벤트 인식기를 포함한다. 이벤트 인식기는 하나 이상의 서브-이벤트에 기초한 이벤트 정의, 및 이벤트 핸들러를 가지고, 이벤트 핸들러는 대상에 대한 동작을 지정하고, 이벤트 인식기가 이벤트 정의에 대응하는 이벤트를 검출한 것에 응답하여 대상으로 동작을 전송하도록 구성되어 있다. 장치의 프로그램은 또한, 장치의 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 하나 이상의 서브-이벤트의 시퀀스를 검출하고, 뷰 계층구조의 뷰들 중 하나의 뷰를 히트 뷰로서 식별하며 - 히트 뷰는 뷰 계층구조 내의 어느 뷰가 적극적으로 관여된 뷰인지를 설정함 -, 뷰 계층구조 내의 적극적으로 관여된 뷰에 대한 이벤트 인식기가 각자의 서브-이벤트를 처리하는 동안 서브-이벤트 인식 결정을 하게 하는 이벤트 전달 프로그램을 포함한다.
일부 실시예에서, 하나 이상의 프로세서, 메모리, 및 복수의 프로그램 계층을 갖는 프로그램 계층구조의 하나 이상의 프로그램 계층의 실행을 괸리하도록 구성되어 있는, 메모리에 저장된 하나 이상의 프로그램을 포함하는 장치가 제공된다. 하나 이상의 프로그램은 하나 이상의 소프트웨어 요소를 포함하고, 각각의 소프트웨어 요소는 특정의 프로그램 계층과 연관되어 있으며, 각각의 특정의 프로그램 계층은하나 이상의 이벤트 인식기를 포함한다. 이벤트 인식기는 하나 이상의 서브-이벤트에 기초한 이벤트 정의, 및 이벤트 핸들러를 가지고, 이벤트 핸들러는 대상에 대한 동작을 지정하고, 이벤트 인식기가 이벤트 정의에 대응하는 이벤트를 검출한 것에 응답하여 대상으로 동작을 전송하도록 구성되어 있다. 장치는 또한 장치의 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 하나 이상의 서브-이벤트의 시퀀스를 검출하고, 프로그램 계층구조의 프로그램 계층들 중 하나의 프로그램 계층을 히트 계층으로서 식별하며 - 히트 계층은 프로그램 계층구조 내의 어느 프로그램 계층이 적극적으로 관여된 프로그램 계층인지를 설정함 -, 각자의 서브-이벤트를 프로그램 계층구조 내의 각각의 적극적으로 관여된 프로그램 계층에 대한 이벤트 인식기로 전달하게 하는 이벤트 전달 프로그램을 포함하고, 프로그램 계층구조 내의 적극적으로 관여된 계층에 대한 각각의 이벤트 인식기는 서브-이벤트의 시퀀스에서의 그 다음 서브-이벤트를 처리하기 전에 각자의 서브-이벤트를 처리한다.
도 1a 및 도 1b는 일부 실시예에 따른 전자 장치를 나타낸 블록도이다.
도 2는 일부 실시예에 따른 예시적인 전자 장치의 입력/출력 처리 스택을 나타낸 도면이다.
도 3a는 일부 실시예에 따른 예시적인 뷰 계층구조를 나타낸 도면이다.
도 3b 및 도 3c는 일부 실시예에 따른 예시적인 이벤트 인식기 메서드 및 데이터 구조를 나타낸 블록도이다.
도 4a 및 도 4b는 일부 실시예에 따른 예시적인 상태 머신을 나타낸 플로우차트이다.
도 4c는 일부 실시예에 따른 예시적인 서브-이벤트 집합에 대한 도 4a 및 도 4b의 예시적인 상태 머신을 나타낸 도면이다.
도 5a 내지 도 5c는 일부 실시예에 따른 예시적인 이벤트 인식기 상태 머신을 갖는 예시적인 서브-이벤트 시퀀스를 나타낸 도면이다.
도 6a 및 도 6b는 일부 실시예에 따른 이벤트 인식 방법 흐름도이다.
첨부 도면에 걸쳐 유사한 참조 번호는 대응하는 부분을 가리킨다.
도 2는 일부 실시예에 따른 예시적인 전자 장치의 입력/출력 처리 스택을 나타낸 도면이다.
도 3a는 일부 실시예에 따른 예시적인 뷰 계층구조를 나타낸 도면이다.
도 3b 및 도 3c는 일부 실시예에 따른 예시적인 이벤트 인식기 메서드 및 데이터 구조를 나타낸 블록도이다.
도 4a 및 도 4b는 일부 실시예에 따른 예시적인 상태 머신을 나타낸 플로우차트이다.
도 4c는 일부 실시예에 따른 예시적인 서브-이벤트 집합에 대한 도 4a 및 도 4b의 예시적인 상태 머신을 나타낸 도면이다.
도 5a 내지 도 5c는 일부 실시예에 따른 예시적인 이벤트 인식기 상태 머신을 갖는 예시적인 서브-이벤트 시퀀스를 나타낸 도면이다.
도 6a 및 도 6b는 일부 실시예에 따른 이벤트 인식 방법 흐름도이다.
첨부 도면에 걸쳐 유사한 참조 번호는 대응하는 부분을 가리킨다.
이제부터, 실시예에 대해 상세히 언급할 것이며, 이들 실시예의 예가 첨부 도면에 예시되어 있다. 이하의 상세한 설명에서, 본 발명의 완전한 이해를 제공하기 위해 다수의 구체적인 상세가 기술되어 있다. 그러나, 본 발명이 이들 구체적인 상세 없이도 실시될 수 있다는 것이 당업자에게는 명백할 것이다. 다른 경우들에, 이 실시예의 양태를 불필요하게 모호하게 하지 않기 위해 공지의 방법, 절차, 구성요소, 회로 및 네트워크에 대해서는 상세히 설명하지 않고 있다.
또한, 제1, 제2 등과 같은 용어가 본 명세서에서 다양한 요소를 기술하는 데 사용될 수 있지만, 이들 용어에 의해 이들 요소가 제한되어서는 안 된다는 것을 잘 알 것이다. 이들 용어는 단지 한 요소를 다른 요소와 구별하는 데만 사용된다. 예를 들어, 본 발명의 범위를 벗어나지 않고, 제1 접점은 제2 접점이라고 할 수 있고, 유사하게 제2 접점은 제1 접점이라고 할 수 있다. 제1 접점 및 제2 접점 둘다는 접점이지만, 이들이 동일한 접점은 아니다.
본 명세서에서 발명을 설명하는 데 사용된 용어들은 단지 특정의 실시예들을 설명하기 위한 것이며 본 발명을 제한하기 위한 것이 아니다. 본 발명의 설명 및 첨부된 특허청구범위에서 사용되는 바와 같이, 단수 형태 "하나" 및 "그"는, 문맥이 명확하게 다른 것을 말하지 않는 한, 복수 형태를 포함하는 것으로 보아야 한다. 또한, 용어 "및/또는"은, 본 명세서에서 사용되는 바와 같이, 열거된 관련 항목들 중 하나 이상의 항목의 모든 가능한 조합을 말하고 또한 포괄한다는 것을 잘 알 것이다. 또한, 용어 "포함한다" 및/또는 "포함하는"이 본 명세서에서 사용될 때 언급한 특징, 정수, 단계, 동작, 요소, 및/또는 구성요소가 존재함을 명시하는 것이고 하나 이상의 다른 특징, 정수, 단계, 동작, 요소, 구성요소 및/또는 이들의 그룹의 존재 또는 추가를 배제하지 않는다는 것을 잘 알 것이다.
본 명세서에서 사용되는 바와 같이, "~인 경우"라는 용어는, 문맥에 따라, "~일 때" 또는 "~ 시에" 또는 "~라고 판정한 것에 응답하여" 또는 '~을 검출한 것에 응답하여'를 의미하는 것으로 해석될 수 있다. 유사하게, "~라고 판정되는 경우" 또는 "[언급된 조건 또는 이벤트가] 검출되는 경우"는, 문맥에 따라, "판정할 시에" 또는 "판정하는 것에 응답하여" 또는 "(언급된 조건 또는 이벤트를) 검출할 시에" 또는 "(언급된 조건 또는 이벤트를) 검출한 것에 응답하여"를 의미하는 것으로 해석될 수 있다.
앞서 살펴본 바와 같이, 터치-감응 표면을 입력 장치로서 갖는 일부 장치에서, 제1 터치-기반 제스처 집합[예를 들어, 탭핑, 더블 탭핑, 수평 스와이프, 수직 스와이프 중 2개 이상]이 특정의 컨텍스트에서(예를 들어, 제1 응용 프로그램의 특정 모드에서) 적절한 입력으로서 인식되고, 다른 상이한 터치-기반 제스처 집합이 다른 컨텍스트(예를 들어, 다른 응용 프로그램 및/또는 제1 응용 프로그램 내에서의 다른 모드 또는 컨텍스트)에서 적절한 입력으로서 인식된다. 그 결과, 터치-기반 제스처를 인식하고 그에 응답하기 위해 필요한 소프트웨어 및 논리가 복잡하게 될 수 있고, 응용 프로그램이 업데이트될 때마다 또는 컴퓨팅 장치에 새로운 응용 프로그램이 추가될 때마다 수정을 필요로 할 수 있다.
이하에 기술되는 실시예에서, 터치-기반 제스처는 이벤트이다. 소정의 이벤트, 예를 들어, 응용 프로그램의 현재의 컨텍스트에서 적절한 입력에 대응하는 이벤트를 인식할 시에, 이벤트에 관한 정보가 응용 프로그램으로 전달한다. 본 문서와 관련하여, 모든 터치-기반 제스처가 이벤트에 대응한다. 게다가, 각자의 이벤트 각각은 서브-이벤트의 시퀀스로서 정의된다. 멀티-터치 디스플레이 장치(종종 본 명세서에서 "스크린"이라고 함) 또는 다른 멀티-터치 감응 표면을 가지며 멀티-터치 기반 제스처를 받는 장치에서, 멀티-터치 기반 이벤트를 정의하는 서브-이벤트는 (2개 이상의 손가락이 장치의 터치-감응 표면과 동시에 접촉하고 있을 것을 필요로 함) 멀티-터치 서브-이벤트를 포함할 수 있다. 예를 들어, 멀티-터치 감응 디스플레이를 갖는 장치에서, 사용자의 손가락이 스크린을 처음으로 터치할 때 각자의 멀티-터치 서브-이벤트 시퀀스가 시작될 수 있다. 하나 이상의 부가의 손가락이 순차적으로 또는 동시에 스크린을 터치할 때 부가의 서브-이벤트가 일어날 수 있고, 스크린을 터치하는 손가락들 전부가 스크린을 가로질러 이동할 때 또 다른 서브-이벤트가 일어날 수 있다. 사용자의 손가락들 중 마지막 손가락이 스크린으로부터 들어올려질 때 시퀀스가 끝난다.
터치-감응 표면을 갖는 장치에서 실행되는 응용 프로그램을 제어하기 위해 터치-기반 제스처를 사용할 때, 터치는 시간 측면 및 공간 측면 둘다를 가진다. 단계(phase)라고 하는 시간 측면은 터치가 막 시작되었을 때, 터치가 이동하고 있는지 정지해 있는지, 및 터치가 끝날 때 - 즉, 손가락이 스크린으로부터 들어올려질 때 - 를 나타낸다. 터치의 공간 측면은 터치가 일어나는 일련의 뷰 또는 사용자 인터페이스 창이다. 터치가 검출되는 뷰 또는 창은 프로그램 또는 뷰 계층구조 내에서의 프로그램 레벨에 대응할 수 있다. 예를 들어, 터치가 검출되는 최저 레벨 뷰는 히트 뷰라고 칭할 수 있으며, 적절한 입력으로서 인식되는 이벤트의 집합은 터치-기반 제스처를 시작하는 초기 터치의 히트 뷰에 적어도 부분적으로 기초하여 결정될 수 있다.
도 1a 및 도 1b는 일부 실시예에 따른 전자 장치(102, 104)를 나타낸 블록도이다. 전자 장치(102, 104)는 데스크톱 컴퓨터 시스템, 랩톱 컴퓨터 시스템, 휴대폰, 스마트폰, PDA(personal digital assistant), 또는 내비게이션 시스템(이들로 제한되지 않음)을 비롯한 임의의 전자 장치일 수 있다. 전자 장치는 또한 사용자 인터페이스를 제공하도록 구성된 터치 스크린 디스플레이[예를 들어, 도 1b의 디스플레이(156)]를 갖는 휴대용 전자 장치, 사용자 인터페이스를 제공하도록 구성된 터치 스크린 디스플레이를 갖는 컴퓨터, 터치 감응 표면 및 사용자 인터페이스를 제공하도록 구성된 디스플레이를 갖는 컴퓨터, 또는 가전 제품 장치, 휴대폰, 비디오 게임 시스템, 전자 음악 플레이어, 태블릿 PC, 전자 북 읽기 시스템, e-북, PDA, 전자 수첩, 이메일 장치, 랩톱 또는 기타 컴퓨터, 키오스크 컴퓨터, 자동 판매기, 스마트 가전기기(이들로 제한되지 않음) 등을 비롯한 임의의 다른 형태의 컴퓨팅 장치일 수 있다. 전자 장치(102, 104)는 각각 사용자 인터페이스(113-A, 113-B)를 포함할 수 있다.
일부 실시예에서, 전자 장치(102, 104)는 터치 스크린 디스플레이를 포함한다. 이들 실시예에서, 사용자 인터페이스(113)(즉, 113-A 또는 113-B)는 전자 장치(102, 104)와 상호작용하기 위해 사용자에 의해 사용되는 온-스크린 키보드(도시되지 않음)를 포함할 수 있다. 대안으로서, 키보드는 전자 장치(102, 104)와 별개로 분리되어 있을 수 있다. 예를 들어, 키보드는 전자 장치(102 또는 104)에 결합된 유선 또는 무선 키보드일 수 있다.
일부 실시예에서, 전자 장치(102)는 디스플레이(126) 및 전자 장치(102)에 결합되어 있는 하나 이상의 입력 장치(128-A)(예를 들어, 키보드, 마우스, 트랙볼, 마이크, 물리적 버튼(들), 터치패드 등)를 포함한다. 이들 실시예에서, 입력 장치들(128-A) 중 하나 이상의 입력 장치가 선택적으로 전자 장치(102)와 별개로 분리되어 있을 수 있다. 예를 들어, 하나 이상의 입력 장치가 키보드, 마우스, 트랙패드, 트랙볼, 및 전자 펜(이들 중 임의의 것이 선택적으로 전자 장치와 분리되어 있을 수 있음) 중 하나 이상을 포함할 수 있다. 선택적으로, 장치(102 또는 104)는 하나 이상의 가속도계, 자이로스코프, GPS 시스템, 스피커, IR(infrared) 센서, 생체 인식 센서, 카메라 등과 같은 하나 이상의 센서(130)를 포함할 수 있다. 이상에서 다양한 예시적인 장치를 입력 장치(128)로서 또는 센서(130)로서 설명하는 것이 본 명세서에 기술된 실시예의 동작에 중요하지 않으며, 본 명세서에 입력 장치로서 기술된 임의의 입력 또는 센서 장치가 똑같이 센서로서 기술될 수 있고, 그 반대도 마찬가지라는 것에 유의한다. 일부 실시예에서, 하나 이상의 센서(130)에 의해 생성되는 신호가 이벤트를 검출하는 입력 소스로서 사용된다.
일부 실시예에서, 전자 장치(104)는 터치 감응 디스플레이(156)(즉, 터치-감응 표면을 갖는 디스플레이) 및 전자 장치(104)에 결합되어 있는 하나 이상의 입력 장치(128-B)를 포함한다. 일부 실시예에서, 터치-감응 디스플레이(156)는 2개 이상의 상이한, 동시적인(또는 부분적으로 동시적인) 터치를 검출할 수 있고, 이들 실시예에서, 디스플레이(156)는 때때로 본 명세서에서 멀티-터치 디스플레이 또는 멀티-터치 감응 디스플레이라고 한다.
본 명세서에서 논의된 전자 장치(102 또는 104)의 일부 실시예에서, 입력 장치(128)는 전자 장치(102 또는 104)에 배치되어 있다. 다른 실시예에서, 입력 장치들(128) 중 하나 이상의 입력 장치는 전자 장치(102 또는 104)와 개별로 분리되어 있고, 예를 들어, 입력 장치들(128) 중 하나 이상의 입력 장치는 케이블(예를 들어, USB 케이블) 또는 무선 연결(예를 들어, 블루투스 연결)에 의해 전자 장치(102 또는 104)와 결합되어 있을 수 있다.
입력 장치(128)를 사용할 때 또는 전자 장치(102 또는 104) 각각의 터치 감응 디스플레이(156) 상에서 터치-기반 제스처를 수행할 때, 사용자는 전자 장치(102 또는 104)의 하나 이상의 CPU(110)에 의해 처리되는 서브-이벤트의 시퀀스를 발생한다. 일부 실시예에서, 전자 장치(102 또는 104)의 하나 이상의 CPU(110)는 이벤트를 인식하기 위해 서브-이벤트의 시퀀스를 처리한다.
전자 장치(102 또는 104)는 통상적으로 하나 이상의 단일-코어 또는 다중-코어 처리 유닛("CPU" 또는 "CPU들")(110)은 물론, 하나 이상의 네트워크 또는 다른 통신 인터페이스(112)를 각각 포함한다. 전자 장치(102 또는 104)는 메모리(111) 및 이들 구성요소를 상호연결시키는 하나 이상의 통신 버스(115)를 각각 포함한다. 통신 버스(115)는 시스템 구성요소(본 명세서에 설명되어 있지 않음) 간의 통신을 상호연결시키고 제어하는 회로(때때로 칩셋이라고 함)를 포함할 수 있다. 이상에서 간략히 논의된 바와 같이, 전자 장치(102, 104)는 선택적으로 디스플레이(126) 및 멀티-터치 디스플레이(156)를 각각 포함하는 사용자 인터페이스(113)를 포함한다. 게다가, 전자 장치(102, 104)는 통상적으로 입력 장치(128)(예를 들어, 키보드, 마우스, 터치 스크린, 터치 감응 표면, 멀티-터치 스크린, 키패드 등)를 포함한다. 일부 실시예에서, 입력 장치는 온-스크린 입력 장치(예를 들어, 디스플레이 장치의 터치-감응 표면)를 포함한다. 메모리(111)는 DRAM, SRAM, DDR RAM, 또는 기타 랜덤 액세스 고상 메모리 장치와 같은 고속 랜덤 액세스 메모리를 포함할 수 있고, 하나 이상의 자기 디스크 저장 장치, 광 디스크 저장 장치, 플래시 메모리 장치, 또는 기타 비휘발성 고상 저장 장치와 같은 비휘발성 메모리를 포함할 수 있다. 메모리(111)는 선택적으로 CPU(들)(110)로부터 원격지에 위치한 하나 이상의 저장 장치를 포함할 수 있다. 메모리(111) 또는 대안으로서 메모리(111) 내의 비휘발성 메모리 장치(들)는 컴퓨터 판독가능 저장 매체를 포함한다. 일부 실시예에서, 메모리(111)는 다음과 같은 프로그램, 모듈 및 데이터 구조, 또는 이들의 부분집합을 저장한다:
ㆍ 다양한 기본 시스템 서비스를 처리하고 하드웨어 의존적인 작업을 수행하는 프로시저를 포함하는 운영 체제(118),
ㆍ 하나 이상의 각자의 통신 인터페이스(112)(유선 또는 무선) 및 하나 이상의 통신 네트워크[인터넷, 다른 WAN(wide area network), LAN(local area network), MAN(metropolitan area network) 등]를 통해 전자 장치(102 또는 104)를 각각 다른 장치에 연결하는 데 사용되는 [전자 장치(102, 104) 각각 내의] 통신 모듈(120) 등,
ㆍ 다양한 대안의 실시예에서 운영 체제(118) 내에 또는 응용 프로그램 소프트웨어(124)에 구현될 수 있는 [전자 장치(102, 104) 각각 내의] 이벤트 전달 시스템(122) - 그러나, 일부 실시예에서, 이벤트 전달 시스템(122)의 일부 양태는 운영 체제(118)에 구현될 수 있는 반면, 다른 양태는 응용 프로그램 소프트웨어(124)에 구현됨 -, 및
ㆍ 응용 프로그램 소프트웨어(124) 내의 하나 이상의 응용 프로그램 각각(예를 들어, 이메일 응용 프로그램, 웹 브라우저 응용 프로그램 텍스트 메시징 응용 프로그램 등).
상기 식별된 요소 각각은 앞서 언급한 메모리 장치 중 하나 이상에 저장될 수 있고, 본 명세서에 기술된 기능을 수행하는 일련의 명령어에 대응한다. 일련의 명령어는 하나 이상의 프로세서[예를 들어, 하나 이상의 CPU(110)]에 의해 실행될 수 있다. 상기 식별된 모듈 또는 프로그램(즉, 일련의 명령어)은 별도의 소프트웨어 프로그램, 프로시저 또는 모듈로서 구현될 필요가 없고, 따라서 다양한 실시예에서 이들 모듈의 다양한 부분집합이 결합되거나 다른 방식으로 재배열될 수 있다. 일부 실시예에서, 메모리(111)는 앞서 언급한 모듈 및 데이터 구조의 부분집합을 저장할 수 있다. 게다가, 메모리(111)는 앞서 기술하지 않은 부가의 모듈 및 데이터 구조를 저장할 수 있다.
도 2는 본 발명의 일부 실시예에 따른, 예시적인 전자 디바이스 또는 장치[예를 들어, 장치(102 또는 104)]의 입력/출력 처리 스택(200)의 다이어그램이다. 장치의 하드웨어(예를 들어, 전자 회로)(212)는 입력/출력 처리 스택(200)의 베이스 레벨에 있다. 하드웨어(212)는 도 1a 및/또는 도 1b에 도시된 구성요소와 같은 다양한 하드웨어 인터페이스 구성요소를 포함할 수 있다. 하드웨어(212)는 또한 상기 언급한 센서(130) 중 하나 이상을 포함할 수 있다. 입력/출력 처리 스택(200)의 모든 다른 요소(202-210)는 하드웨어(212)로부터 수신된 입력을 처리하고 하드웨어 사용자 인터페이스(예를 들어, 디스플레이, 스피커, 장치 진동 작동기 중 하나 이상)를 통해 제공되는 다양한 출력을 발생하는 소프트웨어 프로시저 또는 소프트웨어 프로시저의 일부분이다.
드라이버 또는 일련의 드라이버(210)는 하드웨어(212)와 통신하고 있다. 드라이버(210)는 하드웨어(212)로부터 수신된 입력 데이터를 수신하고 처리할 수 있다. 코어 운영 체제("OS")(208)는 드라이버(들)(210)와 통신할 수 있다. 코어 OS(208)는 드라이버(들)(210)로부터 수신된 원시 입력 데이터를 처리할 수 있다. 일부 실시예에서, 드라이버(210)는 코어 OS(208)의 일부인 것으로 간주될 수 있다.
일련의 OS 응용 프로그래밍 인터페이스("OS API")(206)는 코어 OS(208)와 통신하는 소프트웨어 프로시저이다. 일부 실시예에서, API(206)는 코어 OS(208) 상부의 레벨에서 장치의 운영 체제에 포함되어 있다. API(206)는 본 명세서에서 논의된 전자 디바이스 또는 장치 상에서 실행되는 응용 프로그램에서 사용되도록 설계되어 있다. 사용자 인터페이스(UI) API(204)는 OS API(206)를 이용할 수 있다. 장치 상에서 실행되는 응용 프로그램 소프트웨어("응용 프로그램")(202)는 사용자와 통신하기 위해 UI API(204)를 이용할 수 있다. UI API(204)는 또한 하위 레벨 요소와 통신할 수 있고, 궁극적으로 다양한 사용자 인터페이스 하드웨어, 예를 들어, 멀티-터치 디스플레이(156)와 통신할 수 있다.
각각의 계층의 입력/출력 처리 스택(200)이 그 아래의 계층을 이용할 수 있는 반면, 그것이 항상 필요한 것은 아니다. 예를 들어, 일부 실시예에서, 응용 프로그램(202)은 때때로 OS API(206)와 통신할 수 있다. 일반적으로, OS API 계층(206)에 있거나 그 상부에 있는 계층은, 이들 계층이 비공개인 것으로 간주되기 때문에, 코어 OS(208) 드라이버(들)(210) 또는 하드웨어(212)에 직접 액세스할 수 없다. 계층(202) 및 UI API(204)에 있는 응용 프로그램은 보통 호출을 OS API(206)로 보내고, 이는 차례로 계층들 코어 OS(208), 드라이버(들)(210) 및 하드웨어(212)에 액세스한다.
달리 말하면, 전자 장치(102 또는 104)의 하나 이상의 하드웨어 요소(212) 및 장치 상에서 실행되는 소프트웨어[예를 들어, 드라이버(210)(도 2에 도시됨), 코어 OS(운영 체제)(208)(도 2에 도시됨), 운영 체제 API 소프트웨어(206)(도 2에 도시됨) 그리고 응용 프로그램 및 사용자 인터페이스 API 소프트웨어(204)(도 2에 도시됨)]는 하나 이상의 입력 장치(들)(128) 및/또는 터치 감응 디스플레이(156)에서 (제스처에서의 서브-이벤트에 대응할 수 있는) 입력 이벤트를 검출하고, 입력 이벤트가 응용 프로그램(202)으로 전달될 이벤트에 대응하는지와 그 때를 판정하기 위해 일련의 현재 활성인 이벤트 인식기에 의해 사용되는 [장치(102 또는 104)의 메모리에 저장된] 다양한 데이터 구조를 발생하거나 업데이트한다. 이벤트 인식 방법, 장치 및 컴퓨터 프로그램 제품의 실시예에 대해 이하에서 더 상세히 기술한다.
도 3a는, 이 예에서, 가장 바깥쪽 뷰(302)에 디스플레이되는 검색 프로그램인, 예시적인 뷰 계층구조(300)를 나타낸 것이다. 가장 바깥쪽 뷰(302)는 일반적으로 사용자와 직접 상호작용할 수 있는 전체 사용자 인터페이스를 포함하고 있고, 다음과 같은 종속 뷰를 포함하고 있다:
ㆍ 검색 결과를 그룹화하고 수직으로 스크롤될 수 있는 검색 결과 패널(304),
ㆍ 텍스트 입력을 받는 검색 필드(306), 및
ㆍ 빠른 액세스를 위해 응용 프로그램을 그룹화하는 홈 열(home row)(310).
이 예에서, 각각의 종속 뷰는 하위-레벨 종속 뷰를 포함한다. 다른 예에서, 계층구조(300)에서의 뷰 레벨의 수가 계층구조의 다른 분기에서 다를 수 있고, 하나 이상의 종속 뷰가 하위-레벨 종속 뷰를 가지고, 하나 이상의 다른 종속 뷰가 임의의 이러한 하위-레벨 종속 뷰를 가지지 않는다. 계속하여 도 3a에 도시된 예에서, 검색 결과 패널(304)는 각각의 검색 결과에 대해 별개의 종속 뷰(305)[패널(304)에 종속되어 있음]를 포함하고 있다. 여기서, 이 예는 지도 뷰(maps view)(305)라고 하는 종속 뷰에 하나의 검색 결과를 보여주고 있다. 검색 필드(306)는 사용자가 뷰(307) 내의 콘텐츠 삭제 아이콘 상에서 특정의 동작(예를 들어, 단일 터치 또는 탭핑 제스처)을 수행할 때 검색 필드의 콘텐츠를 삭제하는, 본 명세서에서 콘텐츠 삭제 아이콘 뷰(307)라고 하는 종속 뷰를 포함한다. 홈 열(310)은 연락처 응용 프로그램, 이메일 응용 프로그램, 웹 브라우저 및 iPod 음악 인터페이스에 각각 대응하는 종속 뷰(310-1, 310-2, 310-3, 310-4)를 포함한다.
터치 서브-이벤트(301-1)는 가장 바깥쪽 뷰(302)에 표현된다. 검색 결과 패널(304) 및 지도 뷰(305) 둘다에서의 터치 서브-이벤트(301-1)의 위치가 주어지면, 터치 서브-이벤트는 또한 이들 뷰 상에서 301-2 및 301-3으로서 각각 표현된다. 터치 서브-이벤트의 적극적으로 관여된 뷰는 뷰 검색 결과 패널(304), 지도 뷰(305) 및 가장 바깥쪽 뷰(302)를 포함한다. 서브-이벤트 전달 및 적극적으로 관여된 뷰에 관한 부가의 정보가 도 3b 및 도 3c를 참조하여 이하에 제공된다.
뷰(및 대응하는 프로그램 레벨)이 중첩(nested)될 수 있다. 환언하면, 뷰는 다른 뷰들을 포함할 수 있다. 결과적으로, 제1 뷰와 연관된 소프트웨어 요소(들)(예를 들어, 이벤트 인식기)는 제1 뷰 내의 뷰들과 연관된 하나 이상의 소프트웨어 요소를 포함하거나 그에 링크될 수 있다. 일부 뷰가 응용 프로그램과 연관되어 있을 수 있는 반면, 다른 뷰는 그래픽 사용자 인터페이스, 창 관리자 등과 같은 상위 레벨 OS 요소와 연관되어 있을 수 있다.
이후의 논의를 단순화하기 위해, 일반적으로 뷰 및 뷰 계층구조만을 참조할 것이고, 일부 실시예에서, 이 방법이 복수의 프로그램 계층을 갖는 프로그램 계층구조, 및/또는 뷰 계층구조로 동작할 수 있다는 것을 이해해야 한다.
도 3b 및 도 3c는 이벤트 인식기에 관련된 예시적인 메서드 및 구조를 나타낸 것이다. 도 3b는 이벤트 핸들러가 뷰의 계층구조 내의 특정의 뷰와 연관되어 있을 때 이벤트 핸들링을 위한 메서드 및 데이터 구조를 나타낸 것이다. 도 3c는 이벤트 핸들러가 프로그램 레벨의 계층구조 내의 특정의 레벨과 연관되어 있을 때 이벤트 핸들링을 위한 메서드 및 데이터 구조를 나타낸 것이다. 이벤트 인식기 전역 메서드(312, 350)는 히트 뷰 및 히트 레벨 판정 모듈(314, 352), 활성 이벤트 인식기 판정 모듈(316, 354), 및 서브-이벤트 전달 모듈(318, 356)를 각각 포함한다.
히트 뷰 및 히트 레벨 판정 모듈(314, 352) 각각은 하나 이상의 뷰, 예를 들어, 3개의 주 분기(main branch)를 갖는 도 3a에 나타낸 예시적인 뷰 계층구조(300) 내에서 서브-이벤트가 일어난 곳을 판정하는 소프트웨어 프로시저를 제공한다.
도 3b의 히트 뷰 판정 모듈(314)은 서브-이벤트에 관련된 정보, 예를 들어, 가장 바깥쪽 뷰(302) 상에, 검색 결과[지도 뷰(305)] 및 검색 결과 패널 뷰(304) 상에 301-1로서 표현된 사용자 터치를 수신한다. 히트 뷰 판정 모듈(314)은 히트 뷰를 서브-이벤트를 처리해야만 하는 계층구조 내의 최하위 뷰로서 식별한다. 대부분의 상황에서, 히트 뷰는 초기 서브-이벤트(즉, 이벤트 또는 잠재적인 이벤트를 형성하는 서브-이벤트의 시퀀스에서의 첫번째 서브-이벤트)가 일어나는 최하위 레벨 뷰이다. 히트 뷰가 식별되면, 히트 뷰는 히트 뷰가 식별된 동일한 터치 또는 입력 소스에 관련된 모든 서브-이벤트를 수신할 것이다.
일부 실시예에서, 도 3c의 히트 레벨 판정 모듈(352)은 유사한 프로세스를 이용할 수 있다.
이벤트 인식기 전역 메서드(312, 350) 각각의 활성 이벤트 인식기 판정 모듈(316, 354)는 뷰 계층구조 내의 어느 뷰 또는 뷰들이 특정의 서브-이벤트 시퀀스를 수신해야 하는지를 판정한다. 도 3a는 서브-이벤트(301)를 수신하는 예시적인 일련의 활성 뷰(302, 304, 305)를 나타내고 있다. 도 3a의 예에서, 활성 이벤트 인식기 판정 모듈(304)은 최상위 레벨 뷰(302), 검색 결과 패널(304) 및 지도 뷰(305)가 적극적으로 관여된 뷰라고 판정할 것이며, 그 이유는 이들 뷰가 서브-이벤트(301)로 표현되는 터치의 물리적 위치를 포함하기 때문이다. 터치 서브-이벤트(301)가 지도 뷰(305)와 연관된 영역으로 완전히 한정되더라도, 검색 결과 패널(304) 및 최상위 레벨 뷰(302)가 여전히 적극적으로 관여된 뷰에 유지되는데, 그 이유는 검색 결과 패널(304) 및 최상위 레벨(302)이 지도 뷰(305)의 선조이기 때문이라는 것에 유의한다.
일부 실시예에서, 활성 이벤트 인식기 판정 모듈(316, 354)은 유사한 프로세스를 이용한다.
서브-이벤트 전달 모듈(318)은 서브-이벤트를 적극적으로 관여된 뷰에 대한 이벤트 인식기에 전달한다. 도 3a의 예를 사용하여, 사용자의 터치는 터치 마크(301-1, 301-2, 301-3)에 의해 계층구조의 상이한 뷰에 표현된다. 일부 실시예에서, 이 사용자의 터치를 표현하는 서브-이벤트 데이터는 서브-이벤트 전달 모듈(318)에 의해 적극적으로 관여된 뷰[즉, 최상위 레벨 뷰(302), 검색 결과 패널(304) 및 지도 뷰(305)]에 있는 이벤트 인식기로 전달된다. 게다가, 뷰의 이벤트 인식기는 (예를 들어, 초기 서브-이벤트가 뷰 내에서 일어날 때) 뷰 내에서 시작하는 이벤트의 후속하는 서브-이벤트를 수신할 수 있다. 다른 방식으로 말하면, 뷰는, 사용자 상호작용이 뷰 밖에서 계속되더라도, 뷰에서 시작하는 사용자 상호작용과 연관된 서브-이벤트를 수신할 수 있다.
일부 실시예에서, 서브-이벤트 전달 모듈(318)에 의해 사용되는 것과 유사한 프로세스에서 서브-이벤트 전달 모듈(356)은 서브-이벤트를 적극적으로 관여된 프로그램 레벨에 대한 이벤트 인식기로 전달한다.
일부 실시예에서, 개별적인 이벤트 인식기 구조(320 또는 360)가 발생되고 각각의 적극적으로 관여된 이벤트 인식기에 대한 장치의 메모리에 저장된다. 이벤트 인식기 구조(320, 360)는 각각 통상적으로 이벤트 인식기 상태(334, 374)(도 4a 및 도 4b를 참조하여 아래에서 상술됨) 및 상태 머신(340, 380)을 각각 갖는 이벤트 인식기 관련 코드(338, 378)를 각각 포함한다. 이벤트 인식기 구조(320)는 또한 뷰 계층구조 참조(336)를 포함하는 반면, 이벤트 인식기 구조(360)는 프로그램 계층구조 참조(376)를 포함한다. 특정의 이벤트 인식기의 각각의 인스턴스는 정확히 하나의 뷰 또는 프로그램 레벨을 참조한다. (특정의 이벤트 인식기에 대한) 뷰 계층구조 참조(336) 또는 프로그램 계층구조 참조(376)는 어느 뷰 또는 프로그램 레벨이 각자의 이벤트 인식기에 논리적으로 결합되는지를 설정하는 데 사용된다.
뷰 메타데이터(341) 및 레벨 메타데이터(381)는 각각 뷰 또는 레벨에 관한 데이터를 포함할 수 있다. 뷰 또는 레벨 메타데이터는 이벤트 인식기로의 서브-이벤트 전달에 영향을 줄 수도 있는 다음과 같은 속성을 적어도 포함할 수 있다:
ㆍ 뷰 또는 프로그램 레벨에 대해 설정될 때, 뷰 또는 프로그램 레벨은 물론 뷰 또는 프로그램 계층구조에서의 그의 선조와 연관된 이벤트 인식기로의 서브-이벤트 전달을 방지하는 정지 속성(342, 382).
ㆍ 뷰 또는 프로그램 레벨에 대해 설정될 때, 그 뷰 또는 프로그램 레벨과 연관된 이벤트 인식기로의 서브-이벤트 전달을 방지하지만 뷰 또는 프로그램 계층구조에서의 그의 선조로의 서브-이벤트 전달을 허용하는 건너뛰기 속성(343, 383).
ㆍ 뷰에 대해 설정될 때, 뷰가 히트 뷰가 아닌 한, 뷰와 연관된 이벤트 인식기로의 서브-이벤트 전달을 방지하는 히트없음 건너뛰기 속성(344, 384). 앞서 논의된 바와 같이, 히트 뷰 판정 모듈(314)은 히트 뷰(또는 히트 레벨 판정 모듈(352)의 경우 히트 레벨)를 서브-이벤트를 처리해야 하는 계층구조에서의 최하위 뷰로서 식별한다.
이벤트 인식기 구조(320, 360)는 각각 메타데이터(322, 362)를 포함할 수 있다. 일부 실시예에서, 메타데이터(322, 362)는 이벤트 전달 시스템이 적극적으로 관여된 이벤트 인식기로의 서브-이벤트 전달을 어떻게 수행해야 하는지를 나타내는 구성가능한 속성, 플래그, 및 목록을 포함한다. 일부 실시예에서, 메타데이터(322, 362)는 이벤트 인식기가 서로 어떻게 상호작용할 수 있는지를 나타내는 구성가능한 속성, 플래그, 및 목록을 포함할 수 있다. 일부 실시예에서, 메타데이터(322, 362)는 서브-이벤트가 뷰 또는 프로그램 계층구조에서의 다양한 레벨로 전달되는지를 나타내는 구성가능한 속성, 플래그, 및 목록을 포함할 수 있다. 일부 실시예에서, 이벤트 인식기 메타데이터(322, 362) 및 뷰 또는 레벨 메타데이터(제각기 341, 381)의 조합 둘다는 a) 적극적으로 관여된 이벤트 인식기로의 서브-이벤트 전달을 수행하고, b) 이벤트 인식기가 서로 어떻게 상호작용할 수 있는지를 나타내며, c) 서브-이벤트가 뷰 또는 프로그램 계층구조에서의 다양한 레벨로 전달되는지와 언제 전달되는지를 나타내도록 이벤트 전달 시스템을 구성하는 데 사용된다.
일부 실시예에서, 각자의 이벤트 인식기가 이벤트 인식 동작(333, 373)을, 이벤트 인식기의 구조(320, 360)의 필드에 의해 지정되는 그 각자의 대상(335, 375)으로 전송한다는 것에 유의한다. 동작을 대상으로 전송하는 것은 서브-이벤트를 각자의 히트 뷰 또는 레벨로 전송하는 것(지연하여 전송하는 것)과 다르다.
대응하는 이벤트 인식기의 각자의 이벤트 인식기 구조(320, 360)에 저장된 메타데이터 속성은 적어도 하기의 것을 포함한다:
ㆍ 이벤트 인식기에 대해 설정될 때, 이벤트 인식기에 의한 이벤트의 인식 시에, 이벤트 전달 시스템이 [예외 목록(326, 366)에 열거된 임의의 다른 이벤트 인식기를 제외한] 서브-이벤트를 적극적으로 관여된 뷰 또는 프로그램 레벨의 임의의 다른 이벤트 인식기로 전달하는 것을 중단해야 한다는 것을 나타내는 배타성 플래그(exclusivity flag)(324, 364). 서브-이벤트의 수신이 특정의 이벤트 인식기로 하여금, 그의 대응하는 배타성 플래그(324 또는 364)에 의해 나타낸 바와 같이, 배타적 상태에 들어가게 할 때, 차후의 서브-이벤트는 배타적 상태에 있는 이벤트 인식기[이는 물론 예외 목록(326, 366)에 열거된 임의의 다른 이벤트 인식기]로만 전달된다.
ㆍ 일부 이벤트 인식기 구조(320, 360)는 배타성 예외 목록(326, 366)을 포함할 수 있다. 각자의 이벤트 인식기에 대한 이벤트 인식기 구조(320, 360)에 포함되어 있을 때, 목록(326, 366)은 심지어 각자의 이벤트 인식기가 배타적 상태에 들어간 후에도 서브-이벤트를 계속하여 수신해야 하는 일련의 이벤트 인식기(있는 경우)를 나타낸다. 예를 들어, 싱글 탭 이벤트에 대한 이벤트 인식기가 배타적 상태에 들어가고 현재 관여된 뷰가 더블 탭 이벤트에 대한 이벤트 인식기를 포함하는 경우, 심지어 싱글 탭 이벤트가 검출된 후에도 더블 탭 이벤트가 인식될 수 있도록 목록(320, 360)은 더블 탭 이벤트 인식기를 열거할 것이다. 그에 따라, 배타성 예외 목록(326, 366)은 이벤트 인식기가 공통의 서브-이벤트 시퀀스를 공유하는 상이한 이벤트를 인식할 수 있게 하며, 예를 들어, 싱글 탭 이벤트 인식은 다른 이벤트 인식기에 의한 차후의 두번 또는 세번 탭 이벤트의 인식을 배제하지 않는다.
ㆍ 일부 이벤트 인식기 구조(320, 360)는 대기 목록(wait-for list)(327, 367)을 포함할 수 있다. 각자의 이벤트 인식기에 대한 이벤트 인식기 구조(320, 360)에 포함되어 있을 때, 목록(327, 367)은 각자의 이벤트 인식기가 각자의 이벤트를 인식할 수 있기 전에 이벤트 불가능 또는 이벤트 취소됨 상태에 들어가야만 하는 일련의 이벤트 인식기(있는 경우)를 나타낸다. 사실상, 열거된 이벤트 인식기는 대기 목록(327, 367)을 갖는 이벤트 인식기보다 높은 이벤트 인식 우선순위를 가진다.
ㆍ 이벤트 인식기에 대해 설정될 때, 이벤트 인식기로 하여금, 서브-이벤트 시퀀스가 이 이벤트 인식기의 이벤트 유형에 대응하지 않는 것으로 판정된 후가 될 때까지, 서브-이벤트(터치 시작 또는 손가락 아래로 서브-이벤트, 및 후속 이벤트를 포함함)를 이벤트 인식기의 각자의 히트 뷰 또는 레벨로 전송하는 것을 지연시키게 하는 터치 시작 지연 플래그(328, 368). 이 플래그는 제스처가 인식되는 경우에 히트 뷰 또는 레벨이 서브-이벤트들 중 임의의 서브-이벤트를 알지 못하게 하는 데 사용될 수 있다. 이벤트 인식기가 이벤트를 인식하지 못할 때, 터치 시작 서브-이벤트(및 후속하는 터치 종료 서브-이벤트)가 히트 뷰 또는 레벨에 전달될 수 있다. 한 예에서, 이러한 서브-이벤트를 히트 뷰 또는 레벨에 전달하는 것은 사용자 인터페이스로 하여금 객체와 연관된 동작을 호출할 필요없이 그 객체를 잠시 하이라이트하게 한다.
ㆍ 이벤트 인식기에 대해 설정될 때, 이벤트 인식기로 하여금, 서브-이벤트 시퀀스가 이 이벤트 인식기의 이벤트 유형에 대응하지 않는 것으로 판정될 때까지, 서브-이벤트(예를 들어, 터치 종료 서브-이벤트)를 이벤트 인식기의 각자의 히트 뷰 또는 레벨로 전송하는 것을 지연시키게 하는 터치 종료 지연 플래그(330, 370). 이것은, 제스처가 늦게 인식되는 경우, 히트 뷰 또는 레벨이 터치 종료 서브-이벤트에 작용하지 못하게 하는 데 사용될 수 있다. 터치 종료 서브-이벤트가 전송되지 않는 한, 터치 취소됨(touch canceled)이 히트 뷰 또는 레벨로 전송될 수 있다. 이벤트가 인식되는 경우, 응용 프로그램에 의한 대응하는 동작이 수행되고, 터치 종료 서브-이벤트가 히트 뷰 또는 레벨에 전달된다.
ㆍ 이벤트 인식기에 대해 설정될 때, 이벤트 인식기로 하여금, 서브-이벤트 시퀀스가 이 이벤트 인식기의 이벤트 유형에 대응하지 않는 것으로 판정될 때, 터치 또는 입력 취소를 이벤트 인식기의 각자의 히트 뷰 또는 히트 레벨로 전송하게 하는 터치 취소 플래그(332, 372). 히트 뷰 또는 레벨로 전송되는 터치 또는 입력 취소는 이전의 서브-이벤트(예를 들어, 터치 시작 서브-이벤트)가 취소되었다는 것을 나타낸다. 터치 또는 입력 취소는 입력 소스 핸들러의 상태(도 4b 참조)가 입력 시퀀스 취소됨(input sequence cancelled) 상태(460)(이하에서 논의함)에 들어가게 할 수 있다.
일부 실시예에서, 예외 목록(326, 366)이 또한 비배타적 이벤트 인식기에 의해 사용될 수 있다. 상세하게는, 비배타적 이벤트 인식기가 이벤트를 인식할 때, 후속하는 서브-이벤트가, 이벤트를 인식한 이벤트 인식기의 예외 목록(326, 366)에 열거된 그 배타적 이벤트 인식기를 제외하고는, 현재 활성인 뷰와 연관된 배타적 이벤트 인식기에 전달되지 않는다.
일부 실시예에서, 이벤트 인식기는 원하지 않는 서브-이벤트가 히트 뷰에 전달되지 않도록 하기 위해 터치 종료 지연 플래그와 관련하여 터치 취소 플래그를 이용하도록 구성될 수 있다. 예를 들어, 싱글 탭 제스처와 더블 탭 제스처의 전반부의 정의가 동일하다. 싱글 탭 이벤트 인식기가 싱글 탭을 성공적으로 인식하면, 원하지 않는 동작이 일어날 수 있다. 터치 종료 지연 플래그가 설정되어 있는 경우, 싱글 탭 이벤트가 인식될 때까지 싱글 탭 이벤트 인식기는 서브-이벤트를 히트 뷰로 전송하지 못한다. 또한, 싱글 탭 이벤트 인식기의 대기 목록이 더블 탭 이벤트 인식기를 식별할 수 있으며, 그로써 더블 탭 이벤트 인식기가 이벤트 불가능 상태에 들어갈 때까지 싱글 탭 이벤트 인식기가 싱글 탭을 인식하지 못하게 된다. 대기 목록의 사용은 더블 탭 제스처가 수행될 때 싱글 탭과 연관된 동작의 실행을 방지한다. 그 대신에, 더블 탭 이벤트의 인식에 응답하여, 더블 탭과 연관된 동작만이 실행될 것이다.
앞서 살펴본 바와 같이, 터치-감응 표면 상에서의 여러 형태의 사용자 터치를 상세히 참조하면, 터치 및 사용자 제스처는 순간적일 필요가 없는 동작을 포함할 수 있고, 예를 들어, 터치는 일정 기간 동안 디스플레이에 대해 손가락을 움직이거나 유지하고 있는 동작을 포함할 수 있다. 그러나, 터치 데이터 구조는 특정의 때의 터치의 상태(또는 보다 일반적으로 임의의 입력 소스의 상태)를 정의한다. 따라서, 터치 데이터 구조에 저장된 값이 싱글 터치 동안에 변할 수 있고, 이로 인해 상이한 시점에서의 한번 터치의 상태가 응용 프로그램으로 전달될 수 있다.
각각의 터치 데이터 구조는 다양한 필드를 포함할 수 있다. 일부 실시예에서, 터치 데이터 구조는 적어도 도 3b에서의 터치 관련 필드(339) 또는 도 3c에서의 입력 소스 관련 필드(379)에 대응하는 데이터를 포함할 수 있다.
예를 들어, 도 3b에서의 "뷰에 대한 첫번째 터치" 필드(345)[도 3c에서의 "레벨에 대한 첫번째 터치"에 대해서는 385]는 터치 데이터 구조가 (뷰를 구현하는 소프트웨어 요소가 인스턴스화된 이후로) 특정의 뷰에 대한 첫번째 터치를 정의하는지를 나타낼 수 있다. "타임 스탬프" 필드(346, 386)는 터치 데이터 구조와 관련된 특정의 때를 나타낼 수 있다.
선택적으로, "정보" 필드(347, 387)는 터치가 기본 제스처인지를 나타내는 데 사용될 수 있다. 예를 들어, "정보" 필드(347, 387)는 터치가 스와이프인지, 그렇다면, 스와이프가 어느 방향으로 배향되어 있는지를 나타낼 수 있다. 스와이프는 하나 이상의 손가락을 직선 방향으로 빠르게 드래그하는 것이다. API 구현(이하에서 논의함)은 터치가 스와이프인지를 판정할 수 있고 그 정보를 "정보" 필드(347, 387)를 통해 응용 프로그램으로 전달할 수 있으며, 따라서 응용 프로그램으로부터 터치가 스와이프인 경우에 필요하게 될 일부 데이터 처리를 경감시켜 준다.
선택적으로, 도 3b에서의 "탭핑 횟수" 필드(348)[도 3c의 "이벤트 횟수" 필드(388)]는 초기 터치의 위치에서 탭핑이 순차적으로 몇번 수행되었는지를 나타낼 수 있다. 탭핑은 특정의 위치에서 터치 감응 패널에 대해 손가락을 빠르게 눌렀다가 들어올리는 것으로서 정의될 수 있다. 패널의 동일한 위치에서 손가락을 또 다시 빠르게 연속적으로 눌러졌다 놓는 경우 다중 순차 탭핑(multiple sequential tap)이 행해질 수 있다. 이벤트 전달 시스템(124)은 탭핑을 카운트하고 이 정보를 "탭핑 횟수" 필드(348)를 통해 응용 프로그램으로 중계할 수 있다. 동일한 위치에서의 다중 탭핑은 때때로 터치-지원 인터페이스에 대한 유용하고 기억하기 쉬운 명령으로 간주된다. 따라서, 탭핑을 카운트함으로써, 이벤트 전달 시스템(124)은 또 다시 응용 프로그램으로부터 일부 데이터 처리를 경감할 수 있다.
"단계" 필드(349, 389)는 터치-기반 제스처가 현재 있는 특정의 단계를 나타낼 수 있다. 단계 필드(349, 389)는 터치 데이터 구조가 이전의 터치 데이터 구조에 의해 참조되지 않았던 새로운 터치를 정의한다는 것을 나타낼 수 있는 "터치 단계 시작"과 같은 다양한 값을 가질 수 있다. "터치 단계 움직임" 값은 정의되는 터치가 이전의 위치로부터 움직였음을 나타낼 수 있다. "터치 단계 움직이지 않음" 값은 터치가 동일한 위치에 머물러 있었음을 나타낼 수 있다. "터치 단계 종료됨" 값은 터치가 종료되었음(예를 들어, 사용자가 멀티-터치 디스플레이의 표면으로부터 손가락을 들어올렸음)을 나타낼 수 있다. "터치 단계 취소됨" 값은 터치가 장치에 의해 취소되었음을 나타낼 수 있다. 취소된 터치는 꼭 사용자에 의해 종료될 필요는 없고 장치가 무시하기로 결정한 터치일 수 있다. 예를 들어, 장치는 터치가 부주의로(예를 들어, 휴대용 멀티 터치 지원 장치를 호주머니에 넣어둔 결과로서) 발생되고 있는 것으로 판정하고 그 이유로 터치를 무시할 수 있다. "단계 필드"(349, 389)의 각각의 값은 정수일 수 있다.
따라서, 각각의 터치 데이터 구조는 특정의 때에 터치(또는 다른 입력 소스)에 의해 무엇이 일어날 것인지(예를 들어, 터치가 정지해 있는지, 움직이고 있는지 등)는 물론 터치와 연관된 다른 정보(위치 등)를 정의할 수 있다. 그에 따라, 각각의 터치 데이터 구조는 특정의 순간에서의 특정의 터치의 상태를 정의할 수 있다. 특정의 뷰가 어떤 순간에 수신하고 있는 모든 터치의 상태를 정의할 수 있는 터치 이벤트 데이터 구조에 동일한 때를 참조하는 하나 이상의 터치 데이터 구조가 추가될 수 있다(앞서 살펴본 바와 같이, 일부 터치 데이터 구조는 또한 종료되어 더 이상 수신되지 않는 터치를 참조할 수 있다). 뷰에서 일어나고 있는 터치를 기술하는 연속적인 정보를 소프트웨어에 제공하기 위해, 시간이 지남에 따라 다수의 터치 이벤트 데이터 구조가 뷰를 구현하는 소프트웨어로 전송될 수 있다.
선택적으로 멀티-터치 제스처를 비롯한, 복잡한 터치-기반 제스처를 처리하는 기능은 다양한 소프트웨어 요소의 복잡성을 증가시킬 수 있다. 일부 경우에, 이러한 부가의 복잡성이 진보된 바람직한 인터페이스 특징을 구현하는 데 필요할 수 있다. 예를 들어, 게임이 종종 동시에 다수의 버튼을 누르는 것 또는 가속도계 데이터를 터치-감응 표면 상에서의 터치와 결합하는 것을 필요로 하기 때문에, 게임은 상이한 뷰에서 일어나는 다수의 동시적인 터치를 처리하는 기능을 필요로 할 수 있다. 그러나, 일부 보다 간단한 응용 프로그램 및/또는 뷰(그리고 그의 연관된 소프트웨어 요소)는 진보된 인터페이스 특징을 필요로 하지 않는다. 예를 들어, 간단한 소프트 버튼(즉, 터치 감응 디스플레이 상에 디스플레이되는 버튼)은 멀티 터치 기능보다는 싱글 터치로 만족스럽게 동작할 수 있다. 이들 경우에, 기반을 이루는 OS는 불필요하거나 과도한 터치 데이터(예를 들어, 멀티-터치 데이터)를, 싱글 터치(예를 들어, 소프트 버튼 상에서의 싱글 터치 또는 탭핑)에 의해서만 동작하도록 의도되어 있는 뷰와 연관된 소프트웨어 요소로 전송할 수 있다. 소프트웨어 요소는, 이 데이터를 처리할 필요가 있을 수도 있기 때문에, 비록 그것이 단지 싱글 터치와 관련되어 있는 뷰와 연관되어 있을지라도, 다수의 터치를 처리하는 소프트웨어 요소의 모든 복잡성을 가질 필요가 있을 수 있다. 이것은 장치에 대한 소프트웨어의 개발 비용을 증가시킬 수 있는데, 그 이유는 종래에 마우스 인터페이스 환경(즉, 다양한 버튼 등)에서 프로그램하기 쉬웠던 소프트웨어 요소가 멀티 터치 환경에서 훨씬 더 복잡할 수 있기 때문이다.
그러나, 터치-감응 표면 상에서의 사용자 터치를 평가하고 처리하는 것의 복잡성에 관한 이상의 설명이 또한 입력 장치(128, 158)를 각각 갖는 전자 장치(102, 104)를 조작하는 모든 형태의 사용자 입력(이들 모두가 터치 스크린 상에서 시작되는 것은 아님)에 적용된다는 것을 잘 알 것이며, 예를 들어, 한번 또는 여러번 키보드 누름 또는 유지를 갖거나 갖지 않는 공동 작용하는 마우스 움직임 및 마우스 버튼 누름, 터치 패드 상에서의 사용자 움직임, 탭핑, 드래그, 스크롤 등, 펜 스타일러스 입력, 구두 명령, 검출된 눈동자 움직임, 생체 인식 입력, 검출된 사용자의 생리학적 변화, 및/또는 이들의 임의의 조합이 인식될 이벤트를 정의하는 서브-이벤트에 대응하는 입력으로서 이용될 수 있다.
도 4a는 4개의 상태를 포함하는 이벤트 인식기 상태 머신(400)을 나타낸 것이다. 수신된 서브-이벤트에 기초하여 이벤트 인식기 상태 머신(400)에서의 상태 천이를 관리함으로써, 이벤트 인식기는 이벤트 정의를 효과적으로 표현한다. 예를 들어, 탭핑 제스처가 2개 또는, 선택적으로, 3개의 서브-이벤트의 시퀀스에 의해 효과적으로 정의될 수 있다. 첫째, 터치가 검출되어야 하고, 이것은 서브-이벤트 1이 될 것이다. 예를 들어, 터치 서브-이벤트는 사용자의 손가락이 상태 머신(400)을 갖는 이벤트 인식기를 포함하는 뷰에서 터치-감응 표면을 터치하는 것일 수 있다. 둘째, 터치가 임의의 주어진 방향에서 실질적으로 움직이지 않고[예를 들어, 터치 위치의 임의의 움직임이 디스플레이 상에서 거리(예를 들어, 5 mm)로서 또는 픽셀의 수(예를 들어, 5 픽셀)로서 측정될 수 있는 소정의 임계값보다 작고] 지연이 충분히 짧은 경우의 선택적인 측정된 지연은 서브-이벤트 2로서 역할할 것이다. 마지막으로, 터치의 종료(예를 들어, 터치-감응 표면으로부터의 사용자 손가락의 떨어짐)는 서브-이벤트 3으로서 역할할 것이다. 이들 서브-이벤트를 수신하는 것에 기초하여 상태들 사이에서 천이하도록 이벤트 인식기 상태 머신(400)을 코딩함으로써, 이벤트 인식기 상태 머신(400)은 탭핑 제스처 이벤트 정의를 효과적으로 표현한다.
이벤트 유형에 상관없이, 이벤트 인식기 상태 머신(400)은 이벤트 인식 시작 상태(405)에서 시작하고, 어느 서브-이벤트가 수신되는지에 따라 나머지 상태들 중 임의의 상태로 진행할 수 있다. 이벤트 인식기 상태 머신(400)의 설명을 용이하게 하기 위해, 이벤트 인식 시작 상태(405)로부터 이벤트 인식됨 상태(415), 이벤트 가능 상태(410) 및 이벤트 불가능 상태(420)로의 직접 경로에 대해 설명한 다음에, 이벤트 가능 상태(410)로부터 나오는 경로에 대해 설명할 것이다.
이벤트 인식 시작 상태(405)로부터 시작하여, 그 자체로 이벤트에 대한 이벤트 정의를 포함하는 서브-이벤트가 수신되면, 이벤트 인식기 상태 머신(400)은 이벤트 인식됨 상태(415)로 천이할 것이다.
이벤트 인식 시작 상태(405)로부터 시작하여, 이벤트 정의에서의 첫번째 서브-이벤트가 아닌 서브-이벤트가 수신되면, 이벤트 인식기 상태 머신(400)은 이벤트 불가능 상태(420)로 천이할 것이다.
이벤트 인식 시작 상태(405)로부터 시작하여, 주어진 이벤트 정의에서의 마지막 서브-이벤트가 아니라 첫번째 서브-이벤트인 서브-이벤트가 수신되면, 이벤트 인식기 상태 머신(400)은 이벤트 가능 상태(410)로 천이할 것이다. 수신된 그 다음 서브-이벤트가 주어진 이벤트 정의에서 마지막 서브-이벤트가 아니라 두번째 서브-이벤트인 경우, 이벤트 인식기 상태 머신(400)은 여전히 이벤트 가능 상태(410)에 있을 것이다. 수신된 서브-이벤트의 시퀀스가 계속하여 이벤트 정의의 일부인 한, 이벤트 인식기 상태 머신(400)은 여전히 이벤트 가능 상태(410)에 있을 수 있다. 임의의 때에 이벤트 인식기 상태 머신(400)이 이벤트 가능 상태(410)에 있고 이벤트 인식기 상태 머신(400)이 이벤트 정의의 일부가 아닌 서브-이벤트를 수신하는 경우, 이벤트 인식기 상태 머신은 이벤트 불가능 상태(420)로 천이할 것이고, 그로써 현재 이벤트(있는 경우)가 이 이벤트 인식기[즉, 상태(400)에 대응하는 이벤트 인식기]에 대응하는 유형의 이벤트가 아니라고 판정할 것이다. 한편, 이벤트 인식기 상태 머신(400)이 이벤트 가능 상태(410)에 있고 이벤트 인식기 상태 머신(400)이 이벤트 정의에서의 마지막 서브-이벤트를 수신하는 경우, 이벤트 인식기 상태 머신은 이벤트 인식됨 상태(415)로 천이할 것이며, 그로써 성공적인 이벤트 인식을 완료한다.
도 4b는 뷰가 각각의 입력에 관한 정보를 어떻게 수신하는지를 나타내는 유한 상태 머신을 갖는 입력 소스 처리 프로세스(440)의 실시예를 나타낸 것이다. 장치의 터치-감응 표면 상에 다수의 터치가 있을 때, 이들 터치 각각이 그 자신의 유한 상태 머신을 갖는 개별 입력 소스라는 것에 유의한다. 이 실시예에서, 입력 소스 처리 프로세스(440)는 4개의 상태, 즉 입력 시퀀스 시작(445), 입력 시퀀스 계속(450), 입력 시퀀스 종료됨(455) 및 입력 시퀀스 취소됨(460)을 포함한다. 예를 들어, 입력 시퀀스의 완료가 검출된 이후에만 입력이 응용 프로그램으로 전달되어야 할 때, 각각의 이벤트 인식기에 의해 입력 소스 처리 프로세스(440)가 사용될 수 있다. 응용 프로그램으로 전달되는 입력 시퀀스에 응답하여 행해진 변경을 취소하거나 실행 취소할 수 없는 응용 프로그램에서 입력 소스 처리 프로세스(440)가 사용될 수 있다.
입력 시퀀스 시작(445)으로부터 시작하여, 그 자체로 입력 시퀀스를 완료하는 입력이 수신되면, 입력 소스 처리 프로세스(440)는 입력 시퀀스 종료됨(455)으로 천이할 것이다.
입력 시퀀스 시작(445)으로부터 시작하여, 입력 시퀀스 종료됨을 나타내는 입력이 수신되면, 입력 소스 처리 프로세스(440)는 입력 시퀀스 취소됨(460)으로 천이할 것이다.
입력 시퀀스 시작(445)으로부터 시작하여, 입력 시퀀스에서 마지막 입력이 아니라 첫번째 입력인 입력이 수신되면, 입력 소스 처리 프로세스(440)는 입력 시퀀스 계속 상태(450)로 천이할 것이다. 수신된 그 다음 입력이 입력 시퀀스에서의 두번째 입력인 경우, 입력 처리 프로세스(440)는 여전히 입력 시퀀스 계속 상태(450)에 있을 것이다. 전달되는 서브-이벤트의 시퀀스가 계속하여 주어진 입력 시퀀스의 일부인 한, 입력 소스 처리 프로세스(440)는 여전히 입력 시퀀스 계속 상태(450)에 있을 것이다. 임의의 때에, 입력 소스 처리 프로세스(440)가 입력 시퀀스 계속 상태(450)에 있고 입력 소스 처리 프로세스(440)가 입력 시퀀스의 일부가 아닌 입력을 수신하는 경우, 입력 소스 처리 프로세스는 입력 시퀀스 취소됨 상태(460)로 천이할 것이다. 한편, 입력 소스 처리 프로세스(440)가 입력 시퀀스 계속(450)에 있고 입력 처리 프로세스(440)가 주어진 입력 정의에서의 마지막 입력을 수신하는 경우, 입력 소스 처리 프로세스는 입력 시퀀스 종료됨(455)으로 천이할 것이고, 그로써 일군의 서브-이벤트를 성공적으로 수신한다.
일부 실시예에서, 입력 소스 처리 프로세스(440)는 특정의 뷰 또는 프로그램 레벨에 대해 구현될 수 있다. 그 경우에, 특정 서브-이벤트 시퀀스로 인해 입력 취소됨 상태(460)로 천이할 수도 있다.
예로서, 적극적으로 관여된 뷰 입력 소스 핸들러(480)로만 표현되는 적극적으로 관여된 뷰[이후부터 "뷰(480)"라고 함]를 가정하는 도 4c를 생각해보자. 뷰(480)는 그의 이벤트 인식기들 중 하나로서 수직 스와이프 이벤트 인식기(468)[이후부터 "인식기(468)"라고 함]로만 표현되는 수직 스와이프 이벤트 인식기를 포함한다. 이 경우에, 인식기(468)는 그의 정의의 일부로서 1) 손가락 아래로(465-1), 2) 선택적인 짧은 지연(465-2), 3) 적어도 N개의 픽셀의 수직 스와이프(465-3), 및 4) 손가락 떨어짐(465-4)을 검출하는 것을 필요로 할 수 있다.
이 예에서, 인식기(468)는 또한 그의 터치 시작 지연 플래그(328) 및 터치 취소 플래그(332)가 설정되어 있다. 이제부터, 다음과 같은 서브-이벤트의 시퀀스를 인식기(468)는 물론 뷰(480)에 전달하는 것을 생각해보자.
ㆍ 서브-이벤트 시퀀스(465-1): 인식기(468)의 이벤트 정의에 대응하는 손가락 아래로를 검출함
ㆍ 서브-이벤트 시퀀스(465-2): 인식기(468)의 이벤트 정의에 대응하는 지연을 측정함
ㆍ 서브-이벤트 시퀀스(465-3): 손가락이 수직 스크롤과 호환되지만, N 픽셀보다 작고, 따라서 인식기(468)의 이벤트 정의에 대응하지 않는 수직 스와이프 움직임을 수행한다.
ㆍ 서브-이벤트 시퀀스(465-4): 인식기(468)의 이벤트 정의에 대응하는 손가락 떨어짐(finger liftoff)을 검출함
여기서, 인식기(468)는 서브-이벤트 1 및 2를 그의 이벤트 정의의 일부로서 성공적으로 인식할 것이며, 그에 따라 서브-이벤트 3의 전달 직전에 이벤트 가능 상태(472)에 있을 것이다. 인식기(468)의 터치 시작 지연 플래그(328)가 설정되어 있기 때문에, 초기 터치 서브-이벤트가 히트 뷰로 전송되지 않는다. 그에 대응하여, 뷰(480)의 입력 소스 처리 프로세스(440)는 서브-이벤트 3의 전달 직전에 여전히 입력 시퀀스 시작 상태에 있을 것이다.
인식기(468)로의 서브-이벤트 3의 전달이 완료되면, 인식기(468)의 상태가 이벤트 불가능(476)으로 천이하고, 중요한 것은, 인식기(468)가 이제 서브-이벤트의 시퀀스가 그의 특정의 수직 스와이프 제스처 이벤트 유형에 대응하지 않는 것으로 판정했다는 것이다[즉, 인식기는 이벤트가 수직 스와이프가 아닌 것으로 결정했다. 환언하면, 이 예에서 수직 스와이프로 인식되는 일(474)이 일어나지 않는다.] 뷰 입력 소스 핸들러(480)에 대한 입력 소스 처리 시스템(440)은 또한 그의 상태를 업데이트할 것이다. 일부 실시예에서, 이벤트 인식기가 이벤트를 인식하기 시작했다는 것을 나타내는 상태 정보를 전송할 때, 뷰 입력 소스 핸들러(480)의 상태는 입력 시퀀스 시작 상태(482)로부터 입력 시퀀스 계속 상태(484)로 진행할 것이다. 이벤트 인식기의 터치 취소 플래그(322)가 설정되어 있기 때문에 이벤트가 인식되지 않고 터치 또는 입력이 종료할 때, 뷰 입력 소스 핸들러(480)는 입력 시퀀스 취소됨 상태(488)로 진행한다. 대안으로서, 이벤트 인식기의 터치 취소 플래그(322)가 설정되어 있지 않은 경우, 입력의 터치가 종료할 때 뷰 입력 소스 핸들러(480)는 입력 시퀀스 종료됨 상태(486)로 진행한다.
이벤트 인식기(468)의 터치 취소 플래그(332)가 설정되어 있기 때문에, 이벤트 인식기(468)가 이벤트 불가능 상태(476)로 천이할 때, 인식기는 터치 취소 서브-이벤트 또는 메시지를 이벤트 인식기에 대응하는 히트 뷰로 전송할 것이다. 그 결과, 뷰 입력 소스 핸들러(480)는 입력 시퀀스 취소됨 상태(488)로 천이할 것이다.
일부 실시예에서, 서브-이벤트(465-4)의 전달이 인식기(468)에 의해 행해진 임의의 이벤트 인식 결정에 관련이 없지만, 뷰 입력 소스 핸들러(480)의 다른 이벤트 인식기(있는 경우)는 서브-이벤트의 시퀀스를 계속하여 분석할 수도 있다.
이하의 표는, 뷰 입력 소스 핸들러(480)의 상태와 함께, 상기한 이벤트 인식기(468)의 상태와 관련되어 있는 이 예시적인 서브-이벤트 시퀀스(465)의 처리를 요약된 표 형식으로 제공한다. 이 예에서, 뷰 입력 소스 핸들러(480)의 상태는 입력 시퀀스 시작(445)으로부터 입력 시퀀스 취소됨(488)으로 진행하는데, 그 이유는 인식기(468)의 터치 취소 플래그(332)가 설정되었기 때문이다.
도 5a를 참조하면, 복수의 이벤트 인식기를 포함하는 뷰에 의해 수신되고 있는 서브-이벤트 시퀀스(520)의 예에 주목하고 있다. 이 예에서, 도 5a에 2개의 이벤트 인식기, 즉 스크롤 이벤트 인식기(580) 및 탭 이벤트 인식기(590)가 도시되어 있다. 예시를 위해, 도 3a의 뷰 검색 결과 패널(304)은 서브-이벤트 시퀀스(520)의 수신과, 스크롤 이벤트 인식기(580) 및 탭 이벤트 인식기(590)에서의 상태 천이에 관계되어 있을 것이다. 이 예에서, 서브-이벤트 시퀀스(520)가 터치 감응 디스플레이 또는 트랙패드 상에서의 탭핑 손가락 제스처를 정의하지만, 동일한 이벤트 인식 기법이 수많은 상황(예를 들어, 마우스 버튼 누름을 검출하는 것)에서 및/또는 프로그램 레벨의 프로그램 계층구조을 이용하는 실시예에서 적용될 수 있다는 것에 유의한다.
첫번째 서브-이벤트가 뷰 검색 결과 패널(304)로 전달되기 전에, 이벤트 인식기(580, 590)는 각각 이벤트 인식 시작 상태(582, 592)에 있다. 터치 서브-이벤트(301-2)로서 뷰 검색 결과 패널(304)에 대한 적극적으로 관여된 이벤트 인식기에[또한 터치 서브-이벤트(301-3)로서 지도 뷰(305)에 대한 적극적으로 관여된 이벤트 인식기에] 손가락 아래로 검출 서브-이벤트(521-1)로서 전달되는 터치(301) 이후에, 스크롤 이벤트 인식기(580)는 이벤트 가능 상태(584)로 천이하고, 유사하게, 탭 이벤트 인식기(590)도 이벤트 가능 상태(594)로 천이한다. 이러한 이유는 탭핑 및 스크롤 둘다의 이벤트 정의가 터치-감응 표면 상에서의 손가락 아래로를 검출하는 것과 같은 터치로 시작하기 때문이다.
탭핑 및 스크롤 제스처의 일부 정의는 선택적으로 이벤트 정의에서의 초기 터치와 임의의 그 다음 단계 사이의 지연을 포함할 수 있다. 여기서 논의된 모든 예에서, 탭핑 및 스크롤 제스처 둘다에 대한 예시적인 이벤트 정의는 첫번째 터치 서브-이벤트(손가락 아래로 검출) 이후의 지연 서브-이벤트를 인식한다.
그에 따라, 지연 측정 서브-이벤트(521-2)가 이벤트 인식기(580, 590)에 전달될 때, 둘다는 여전히 각각 이벤트 가능 상태(584, 594)에 있다.
마지막으로, 손가락 떨어짐 검출 서브-이벤트(521-3)는 이벤트 인식기(580, 590)에 전달된다. 이 경우에, 이벤트 인식기(580, 590)에 대한 상태 천이가 다른데, 그 이유는 탭핑 및 스크롤에 대한 이벤트 정의가 다르기 때문이다. 스크롤 이벤트 인식기(580)의 경우에, 여전히 이벤트 가능 상태에 있는 그 다음 서브-이벤트는 움직임을 검출할 것이다. 그러나, 전달된 서브-이벤트가 손가락 떨어짐 검출(521-3)이기 때문에, 스크롤 이벤트 인식기(580)는 이벤트 불가능 상태(588)로 천이한다. 그러나, 탭 이벤트 정의는 손가락 떨어짐 서브-이벤트로 마무리된다. 그에 따라, 손가락 떨어짐 검출 서브-이벤트(521-3)가 전달된 후에, 탭 이벤트 인식기(590)는 이벤트 인식됨 상태(596)로 천이한다.
일부 실시예에서, 도 4b 및 도 4c와 관련하여 앞서 논의된 바와 같이, 도 4b에서 논의된 입력 소스 처리 프로세스(440)가 뷰 레벨에서 다양한 목적을 위해 사용될 수 있다는 것에 유의한다. 이하의 표는 이벤트 인식기(580, 590) 및 입력 소스 처리 프로세스(440)에 관련되어 있는 서브-이벤트 시퀀스(520)의 전달을 요약된 표 형식으로 제공한다.
도 5b를 참조하면, 복수의 이벤트 인식기를 포함하는 뷰에 의해 수신되고 있는 서브-이벤트 시퀀스(530)의 다른 예에 주목하고 있다. 이 예에서, 도 5b에 2개의 이벤트 인식기, 즉 스크롤 이벤트 인식기(580) 및 탭 이벤트 인식기(590)가 도시되어 있다. 예시를 위해, 도 3a의 뷰 검색 결과 패널(304)은 서브-이벤트 시퀀스(530)의 수신과, 스크롤 이벤트 인식기(580) 및 탭 이벤트 인식기(590)에서의 상태 천이에 관계되어 있을 것이다. 이 예에서, 서브-이벤트 시퀀스(530)가 터치 감응 디스플레이 상에서의 스크롤 손가락 제스처를 정의하지만, 동일한 이벤트 인식 기법이 수많은 상황(예를 들어, 마우스 버튼 누름, 마우스 움직임, 및 마우스 버튼 놓기(mouse button release)를 검출하는 것)에서 및/또는 프로그램 레벨의 프로그램 계층구조을 이용하는 실시예에서 적용될 수 있다는 것에 유의한다.
첫번째 서브-이벤트가 뷰 검색 결과 패널(304)에 대한 적극적으로 관여된 이벤트 인식기로 전달되기 전에, 이벤트 인식기(580, 590)는 각각 이벤트 인식 시작 상태(582, 592)에 있다. (전술한 바와 같이) 터치(301)에 대응하는 서브-이벤트의 전달 이후에, 스크롤 이벤트 인식기(580)는 이벤트 가능 상태(584)로 천이하고, 유사하게, 탭 이벤트 인식기(590)는 이벤트 가능 상태(594)로 천이한다.
지연 측정 서브-이벤트(531-2)가 이벤트 인식기(580, 590)에 전달될 때, 둘다는 각각 이벤트 가능 상태(584, 594)로 천이한다.
그 다음에, 손가락 움직임 검출 서브-이벤트(531-3)는 이벤트 인식기(580, 590)에 전달된다. 이 경우에, 이벤트 인식기(580, 590)에 대한 상태 천이가 다른데, 그 이유는 탭핑 및 스크롤에 대한 이벤트 정의가 다르기 때문이다. 스크롤 이벤트 인식기(580)의 경우에, 여전히 이벤트 가능 상태에 있는 그 다음 서브-이벤트는 움직임 검출이고, 따라서 스크롤 이벤트 인식기(580)는, 손가락 움직임 검출 서브-이벤트(531-3)를 수신할 때, 여전히 이벤트 가능 상태(584)에 있다. 그러나, 앞서 논의된 바와 같이, 탭핑에 대한 정의는 손가락 떨어짐 서브-이벤트로 마무리되며, 따라서 탭 이벤트 인식기(590)는 이벤트 불가능 상태(598)로 천이한다.
마지막으로, 손가락 떨어짐 검출 서브-이벤트(531-4)가 이벤트 인식기(580, 590)에 전달된다. 탭 이벤트 인식기는 이미 이벤트 불가능 상태(598)에 있고, 상태 천이가 일어나지 않는다. 스크롤 이벤트 인식기(580)의 이벤트 정의는 손가락 떨어짐의 검출로 마무리된다. 전달된 서브-이벤트가 손가락 떨어짐 검출(531-4)이기 때문에, 스크롤 이벤트 인식기(580)는 이벤트 인식됨 상태(586)로 천이한다. 터치 감응 표면 상에서의 손가락 움직임이 다수의 움직임 서브-이벤트를 발생할 수 있고, 따라서 스크롤이 떨어짐 이전에 인식되고 떨어짐이 있을 때까지 계속될 수 있다는 것에 유의한다.
이하의 표는 이벤트 인식기(580, 590) 및 입력 소스 처리 프로세스(440)에 관련되어 있는 서브-이벤트 시퀀스(530)의 전달을 요약된 표 형식으로 제공한다.
도 5c를 참조하면, 복수의 이벤트 인식기를 포함하는 뷰에 의해 수신되고 있는 서브-이벤트 시퀀스(540)의 다른 예에 주목하고 있다. 이 예에서, 도 5c에 2개의 이벤트 인식기, 즉 더블 탭 이벤트 인식기(570) 및 탭 이벤트 인식기(590)가 도시되어 있다. 예시를 위해, 도 3a의 지도 뷰(305)는 서브-이벤트 시퀀스(540)의 수신과, 더블 탭 이벤트 인식기(570) 및 탭 이벤트 인식기(590)에서의 상태 천이에 관계되어 있을 것이다. 이 예에서, 서브-이벤트 시퀀스(540)가 터치 감응 디스플레이 상에서의 더블 탭 제스처를 정의하지만, 동일한 이벤트 인식 기법이 수많은 상황(예를 들어, 마우스 두번 클릭을 검출하는 것)에서 및/또는 프로그램 레벨의 프로그램 계층구조을 이용하는 실시예에서 적용될 수 있다는 것에 유의한다.
첫번째 서브-이벤트가 지도 뷰(305)에 대한 적극적으로 관여된 이벤트 인식기로 전달되기 전에, 이벤트 인식기(570, 590)는 각각 이벤트 인식 시작 상태(572, 592)에 있다. (상기한 바와 같이) 터치 서브-이벤트(301)에 관련된 서브-이벤트의 지도 뷰(304)로의 전달 이후에, 더블 탭 이벤트 인식기(570) 및 탭 이벤트 인식기(590)는 각각 이벤트 가능 상태(574, 594)로 천이한다. 이러한 이유는 탭핑 및 더블 탭 둘다의 이벤트 정의가 터치-감응 표면 상에서의 손가락 아래로를 검출하는 것과 같은 터치로 시작하기 때문이다.
지연 측정 서브-이벤트(541-2)는 이벤트 인식기(570, 590)에 전달될 때, 둘다는 여전히 각각 이벤트 가능 상태(574, 594)에 있다.
그 다음에, 손가락 떨어짐 검출 서브-이벤트(541-3)가 이벤트 인식기(570, 590)에 전달된다. 이 경우에, 이벤트 인식기(580, 590)에 대한 상태 천이가 다른데, 그 이유는 탭핑 및 더블 탭에 대한 예시적인 이벤트 정의가 다르기 때문이다. 탭 이벤트 인식기(590)의 경우에, 이벤트 정의에서의 마지막 서브-이벤트는 손가락 떨어짐 검출이고, 따라서 탭 이벤트 인식기(590)는 이벤트 인식됨 상태(596)로 천이된다.
그러나, 더블 탭 인식기(570)는 여전히 이벤트 가능 상태(574)에 있는데, 그 이유는 사용자가 궁극적으로 무엇을 할 것인지에 상관없이, 지연이 시작되었기 때문이다. 더블 탭에 대한 이벤트 인식 정의 전체는 또 다른 지연 및 그에 뒤이은 탭핑 서브-이벤트 시퀀스 전체를 필요로 한다. 이것은 이미 이벤트 인식됨 상태(576)에 있는 탭 이벤트 인식기(590)와 여전히 이벤트 가능 상태(574)에 있는 더블 탭 인식기(570) 사이와 같은 불명료한 상태를 야기한다.
그에 따라, 일부 실시예에서, 이벤트 인식기는 도 3b 및 도 3c와 관련하여 전술한 배타성 플래그 및 배타성 예외 목록을 구현할 수 있다. 여기서, 탭 이벤트 인식기(590)에 대한 배타성 플래그(324)가 설정될 것이고, 또한, 탭 이벤트 인식기(590)에 대한 배타성 예외 목록(326)은, 탭 이벤트 인식기(590)가 이벤트 인식됨 상태(596)에 들어간 후에, 일부 이벤트 인식기[더블 탭 이벤트 인식기(570) 등]로의 서브-이벤트의 전달을 계속 허용하도록 구성될 것이다.
탭 이벤트 인식기(590)가 여전히 이벤트 인식됨 상태(596)에 있는 동안에, 서브-이벤트 시퀀스(540)가 더블 탭 이벤트 인식기(570)로 계속하여 전달될 것이며, 여기서 지연 측정 서브-이벤트(541-4), 손가락 아래로 검출 서브-이벤트(541-5), 및 지연 측정 서브-이벤트(541-6)는 더블 탭 이벤트 인식기(570)를 이벤트 가능 상태(574)에 유지할 것이고, 시퀀스(540)의 마지막 서브-이벤트인 손가락 떨어짐 검출(541-7)의 전달은 탭 이벤트 인식기(570)를 이벤트 인식됨 상태(576)로 천이시킨다.
이 시점에서, 지도 뷰(305)는 탭 이벤트 인식기(590)에 의해 인식된 싱글 탭 이벤트보다는 이벤트 인식기(570)에 의해 인식된 더블 탭 이벤트를 받는다. 탭 이벤트 인식기(590)의 배타성 플래그(324)가 설정되어 있는 것, 탭 이벤트 인식기(590)의 배타성 예외 목록(326)이 더블 탭 이벤트를 포함하는 것, 그리고 탭 이벤트 인식기(590) 및 더블 탭 이벤트 인식기(570) 둘다가 그 각자의 이벤트 유형을 성공적으로 인식했다는 사실의 조합을 고려하여 더블 탭 이벤트를 받기로 하는 결정이 행해진다.
이하의 표는 이벤트 인식기(570, 590) 및 서브-이벤트 처리 프로세스(440)에 관련되어 있는 서브-이벤트 시퀀스(540)의 전달을 요약된 표 형식으로 제공한다.
다른 실시예에서, 도 5c의 이벤트 시나리오에서, 싱글 탭 제스처가 인식되지 않는데, 그 이유는 싱글 탭 이벤트 인식기가 더블 탭 이벤트 인식기를 식별하는 대기 목록을 가지기 때문이다. 그 결과, (있다 하더라도) 더블 탭 이벤트 인식기가 이벤트 불가능 상태에 들어갈 때까지 싱글 탭 제스처가 인식되지 않는다. 더블 탭 제스처가 인식되는 이 예에서, 더블 탭 제스처가 인식될 때까지 싱글 탭 이벤트 인식기는 여전히 이벤트 가능 상태에 있을 것이고, 더블 탭 제스처가 인식될 때 싱글 탭 이벤트 인식기는 이벤트 불가능 상태로 천이할 것이다.
이제부터, 일부 실시예에 따른 이벤트 인식 방법을 나타낸 흐름도인 도 6a 및 도 6b에 주목할 것이다. 방법(600)은, 일부 실시예에서, 상기한 바와 같은 전자 장치(102 또는 104)일 수 있는 전자 장치에서 수행된다. 일부 실시예에서, 전자 장치는 멀티-터치 제스처를 검출하도록 구성된 터치 감응 표면을 포함할 수 있다. 대안으로서, 전자 장치는 멀티-터치 제스처를 검출하도록 구성된 터치 스크린을 포함할 수 있다.
방법(600)은 복수의 뷰를 갖는 뷰 계층구조를 포함하는 소프트웨어를 실행하도록 구성되어 있다. 방법(600)은 뷰 계층구조의 하나 이상의 뷰를 디스플레이하고(608), 하나 이상의 소프트웨어 요소를 실행한다(610). 각각의 소프트웨어 요소는 특정의 뷰와 연관되어 있고, 각각의 특정의 뷰는 도 3b 및 도 3c에서 각각 이벤트 인식기 구조(320, 360)로서 기술되어 있는 것과 같은 하나 이상의 이벤트 인식기를 포함한다.
각각의 이벤트 인식기는 일반적으로 하나 이상의 서브-이벤트에 기초한 이벤트 정의를 포함하고, 여기서 이벤트 정의는 상태 머신[예를 들어, 도 3b의 상태 머신(340)]으로서 구현될 수 있다. 이벤트 인식기는 또한 일반적으로 대상에 대한 동작을 지정하는 이벤트 핸들러를 포함하고, 이벤트 인식기가 이벤트 정의에 대응하는 이벤트를 검출한 것에 응답하여 동작을 대상으로 전송하도록 구성되어 있다.
일부 실시예에서, 도 6a의 단계(612)에 나타낸 바와 같이, 복수의 이벤트 인식기 중 적어도 하나의 이벤트 인식기가 제스처 정의 및 제스처 핸들러를 갖는 제스처 인식기이다.
일부 실시예에서, 도 6a의 단계(614)에 나타낸 바와 같이, 이벤트 정의는 사용자 제스처를 정의한다.
대안으로서, 이벤트 인식기는 일련의 이벤트 인식 상태를 가진다(616).
이들 이벤트 인식 상태는 적어도 이벤트 가능 상태, 이벤트 불가능 상태, 및 이벤트 인식됨 상태를 포함할 수 있다.
일부 실시예에서, 이벤트 인식기가 이벤트 가능 상태에 들어가는 경우 이벤트 핸들러는 대상으로 전달하기 위한 그의 대응하는 동작의 준비를 시작한다(618). 도 4a 및 도 5a 내지 도 5c의 예와 관련하여 전술한 바와 같이, 각각의 이벤트 인식기에 대해 구현된 상태 머신은 일반적으로 초기 상태, 예를 들어, 이벤트 인식 시작 상태(405)를 포함한다. 이벤트 정의의 초기 부분을 형성하는 서브-이벤트를 수신하는 것은 이벤트 가능 상태(410)에 대한 상태 변경을 트리거한다. 그에 따라, 일부 실시예에서, 이벤트 인식기가 이벤트 인식 시작 상태(405)로부터 이벤트 가능 상태(410)로 천이할 때, 이벤트 인식기의 이벤트 핸들러는, 이벤트가 성공적으로 인식된 후에, 이벤트 인식기의 대상으로 전달할 그의 특정의 동작을 준비하기 시작할 수 있다.
한편, 일부 실시예에서, 이벤트 인식기가 이벤트 불가능 상태(420)에 들어가는 경우, 이벤트 핸들러는 그의 대응하는 동작의 준비를 종료할 수 있다(620). 일부 실시예에서, 대응하는 동작을 종료하는 것은 이벤트 핸들러의 대응하는 동작의 임의의 준비를 취소하는 것을 포함한다.
탭 이벤트 인식기(590)가 그의 동작의 준비를 시작했을 수 있지만(618), 이어서 손가락 움직임 검출 서브-이벤트(531-3)가 탭 이벤트 인식기(590)에 전달되면, 인식기(590)가 이벤트 불가능 상태(598, 578)로 천이할 것이기 때문에, 도 5b의 예는 이 실시예에 대한 정보를 제공한다. 그 시점에서, 탭 이벤트 인식기(590)는 618에서 준비하기 시작했던 동작의 준비를 종료할 수 있다(620).
일부 실시예에서, 이벤트 인식기가 이벤트 인식됨 상태에 들어가는 경우, 이벤트 핸들러가 대상으로 전달하기 위한 그의 대응하는 동작의 준비를 완료한다(622). 지도 뷰(305)에 대한 적극적으로 관여된 이벤트 인식기에 의해 더블 탭이 인식되고, 일부 구현예에서, 이는 지도 뷰(305)가 나타내는 검색 결과를 선택하는 것 및/또는 실행하는 것에 연계된 이벤트일 것이기 때문에, 도 5c의 예는 이 실시예를 나타낸 것이다. 여기서, 더블 탭 이벤트 인식기(570)가 서브-이벤트 시퀀스(540)로 이루어진 더블 탭 이벤트를 성공적으로 인식한 후에, 지도 뷰(305)의 이벤트 핸들러는 그의 동작의 준비를 완료하며(622), 이는 곧 이벤트 핸들러가 활성화 명령을 수신한 것을 나타낸다.
일부 실시예에서, 이벤트 핸들러는 그의 대응하는 동작을 이벤트 인식기와 연관된 대상으로 전달한다(624). 계속하여 도 5c의 예에서, 준비된 동작, 즉 지도 뷰(305)의 활성화 명령이, 임의의 적당한 프로그램가능 메서드 또는 객체일 수 있는, 지도 뷰(305)와 연관된 특정의 대상으로 전달될 것이다.
대안으로서, 복수의 이벤트 인식기는 병렬로 하나 이상의 서브-이벤트의 시퀀스를 독립적으로 처리할 수 있다(626).
일부 실시예에서, 도 3b 및 도 3c 각각의 배타성 플래그(324, 364)와 관련하여 전술한 바와 같이, 하나 이상의 이벤트 인식기는 배타적 이벤트 인식기(628)로서 구성될 수 있다. 이벤트 인식기가 배타적 이벤트 인식기로서 구성될 때, 이벤트 전달 시스템은, 배타적 이벤트 인식기가 이벤트를 인식한 후에, [이벤트를 인식하는 이벤트 인식기의 예외 목록(326, 366)에 열거된 것을 제외한] 뷰 계층구조 내의 적극적으로 관여된 뷰에 대한 임의의 다른 이벤트 인식기가 (동일한 서브-이벤트 시퀀스의) 후속하는 서브-이벤트를 수신하지 못하게 한다. 게다가, 비배타적 이벤트 인식기가 이벤트를 인식할 때, 이벤트 전달 시스템은, (있는 경우) 이벤트를 인식하는 이벤트 인식기의 예외 목록(326, 366)에 열거된 것을 제외한, 뷰 계층구조 내의 적극적으로 관여된 뷰에 대한 임의의 배타적 이벤트 인식기가 후속하는 서브-이벤트를 수신하지 못하게 한다.
일부 실시예에서, 도 3b 및 도 3c 각각의 배타성 예외 목록(326, 366)과 관련하여 전술한 바와 같이, 배타적 이벤트 인식기는 이벤트 예외 목록을 포함할 수 있다(630). 상기 도 5c의 설명에서 언급한 바와 같이, 그 각자의 이벤트 정의를 이루고 있는 서브-이벤트의 시퀀스가 중복할 때에도, 이벤트 인식기가 이벤트 인식을 계속할 수 있게 하기 위해 이벤트 인식기의 배타성 예외 목록이 사용될 수 있다. 그에 따라, 일부 실시예에서, 이벤트 예외 목록은 그의 대응하는 이벤트 정의가, 도 5c의 싱글 탭/더블 탭 이벤트 예와 같은 반복적 서브-이벤트를 갖는 이벤트를 포함한다(632).
대안으로서, 이벤트 정의는 사용자 입력 동작을 정의할 수 있다(634).
일부 실시예에서, 하나 이상의 이벤트 인식기는 이벤트가 인식된 후가 될 때까지 서브-이벤트 시퀀스의 모든 서브-이벤트의 전달을 지연시키도록 구성될 수 있다.
방법(600)은 하나 이상의 서브-이벤트의 시퀀스를 검출하고(636), 일부 실시예에서, 하나 이상의 서브-이벤트의 시퀀스는 원시 터치 이벤트를 포함할 수 있다(638). 원시 터치 이벤트는, 초기 손가락 또는 스타일러스 터치 다운에 관련된 데이터, 터치-감응 표면을 가로지르는 다중-손가락 또는 스타일러스 움직임의 시작, 반대 방향으로의 두 손가락 움직임, 터치-감응 표면으로부터의 스타일러스 떨어짐 등에 관련된 데이터와 같은, 터치-감응 표면 상에서의 터치-기반 제스처의 기본 구성요소를 포함할 수 있지만, 이들로 제한되지 않는다.
하나 이상의 서브-이벤트의 시퀀스에서의 서브-이벤트는, 그 중에서도 특히, 키 누름, 키 누름 유지, 키 누름 놓기, 버튼 누름, 버튼 누름 유지, 버튼 누름 놓기, 조이스틱 움직임, 마우스 움직임, 마우스 버튼 누름, 마우스 버튼 놓기, 펜 스타일러스 터치, 펜 스타일러스 움직임, 펜 스타일러스 놓기, 구두 명령, 검출된 눈동자 움직임, 생체 인식 입력, 및 검출된 사용자에서의 생리학적 변화(이들로 제한되지 않음)를 비롯한 많은 형태를 포함할 수 있다.
방법(600)은 뷰 계층구조의 뷰들 중 하나의 뷰를 히트 뷰로서 식별한다(640). 히트 뷰는 뷰 계층구조 내의 어느 뷰가 적극적으로 관여된 뷰인지를 설정한다. 예가 도 3a에 도시되어 있으며, 여기서 적극적으로 관여된 뷰(306)는 검색 결과 패널(304) 및 지도 뷰(305)를 포함하는데, 그 이유는 터치 서브-이벤트(301)가 지도 뷰(305)와 연관된 영역에 접촉해 있기 때문이다.
일부 실시예에서, 뷰 계층구조 내의 제1 적극적으로 관여된 뷰는 각자의 서브-이벤트를 그 제1 적극적으로 관여된 뷰와 연관된 이벤트 인식기로 전달하는 것을 방지하도록 구성되어 있을 수 있다(642). 이 거동은 도 3b 및 도 3c(각각 330 및 370)와 관련하여 전술한 건너뛰기 특성을 구현할 수 있다. 이벤트 인식기에 대해 건너뛰기 특성이 설정되어 있을 때, 뷰 계층구조 내의 다른 적극적으로 관여된 뷰와 연관된 이벤트 인식기에 대해 각자의 서브-이벤트의 전달이 여전히 수행된다.
대안으로서, 뷰 계층구조 내의 제1 적극적으로 관여된 뷰는, 제1 적극적으로 관여된 뷰가 히트 뷰가 아닌 경우, 각자의 서브-이벤트를 그 제1 적극적으로 관여된 뷰와 연관된 이벤트 인식기로 전달하는 것을 방지하도록 구성되어 있을 수 있다(644). 이 거동은 도 3b 및 도 3c(각각 332 및 372)와 관련하여 전술한 조건부 건너뛰기 특성을 구현할 수 있다.
일부 실시예에서, 뷰 계층구조 내의 제2 적극적으로 관여된 뷰는 각자의 서브-이벤트를 제2 적극적으로 관여된 뷰와 연관된 이벤트 인식기 및 제2 적극적으로 관여된 뷰의 선조와 연관된 이벤트 인식기로 전달하는 것을 방지하도록 구성되어 있다(646). 이 거동은 도 3b 및 도 3c(각각 328 및 368)와 관련하여 전술한 정지 특성을 구현할 수 있다.
방법(600)은 각자의 서브-이벤트를 뷰 계층구조 내의 각각의 적극적으로 관여된 뷰에 대한 이벤트 인식기로 전달한다(648). 일부 실시예에서, 뷰 계층구조 내의 적극적으로 관여된 뷰에 대한 이벤트 인식기는 서브-이벤트의 시퀀스에서의 그 다음 서브-이벤트를 처리하기 전에 각자의 서브-이벤트를 처리한다. 대안으로서, 뷰 계층구조 내의 적극적으로 관여된 뷰에 대한 이벤트 인식기는, 각자의 서브-이벤트를 처리하는 동안, 그의 서브-이벤트 인식 결정을 한다.
일부 실시예에서, 뷰 계층구조 내의 적극적으로 관여된 뷰에 대한 이벤트 인식기가 하나 이상의 서브-이벤트의 시퀀스를 동시에 처리하고(650), 대안으로서, 뷰 계층구조 내의 적극적으로 관여된 뷰에 대한 이벤트 인식기가 하나 이상의 서브-이벤트의 시퀀스를 병렬로 처리할 수 있다.
일부 실시예에서, 하나 이상의 이벤트 인식기는, 이벤트 인식기가 이벤트를 인식한 후가 될 때까지, 서브-이벤트 시퀀스의 하나 이상의 서브-이벤트의 전달을 지연시키도록 구성될 수 있다(652). 이 거동은 지연된 이벤트를 반영한다. 예를 들어, 다중 탭핑 제스처가 가능한 뷰에서의 싱글 탭 제스처를 생각해보자. 그 경우에, 탭 이벤트는 "탭핑 + 지연" 인식기가 된다. 본질적으로, 이벤트 인식기가 이 거동을 구현할 때, 서브-이벤트의 시퀀스가 실제로 그의 이벤트 정의에 대응하는 것이 확실할 때까지, 이벤트 인식기는 이벤트 인식을 지연시킬 것이다. 수신자 뷰가 취소된 이벤트에 적절히 응답할 수 없을 때, 이 거동이 적절할 수 있다. 일부 실시예에서, 이벤트 인식기는, 서브-이벤트의 시퀀스가 그의 이벤트 정의에 대응하지 않는다고 확신할 때까지, 그 각자의 적극적으로 관여된 뷰에 대한 그의 이벤트 인식 상태를 업데이트하는 것을 지연시킬 것이다. 도 3b 및 도 3c와 관련하여 전술한 바와 같이, 서브-이벤트 전달 기법은 물론, 특정의 필요에 따라 이벤트 인식기 및 뷰 상태 정보 업데이트를 조정하기 위해 터치 시작 지연 플래그(328, 368), 터치 종료 지연 플래그(330, 370) 및 터치 취소 플래그(332, 372)가 제공된다.
이상의 기재 내용은, 설명을 위해, 특정의 실시예를 참조하여 기술되어 있다. 그러나, 상기 예시적인 설명은 총망라한 것이 아니며 또한 본 발명을 개시된 정확한 형태로 제한하기 위한 것도 아니다. 이상의 개시 내용을 고려하여 많은 수정 및 변형이 가능하다. 본 발명의 원리 및 그의 실제 응용을 가장 잘 설명함으로써 당업자가 본 발명 및 생각되는 특정의 용도에 적합한 다양한 수정을 갖는 다양한 실시예를 가장 잘 이용할 수 있게 하도록 이들 실시예가 선택되어 기술되었다.
Claims (27)
- 복수의 뷰를 갖는 뷰 계층구조를 포함하는 소프트웨어를 실행하도록 구성된 전자 장치에서,
상기 뷰 계층구조의 하나 이상의 뷰를 디스플레이하는 단계;
하나 이상의 소프트웨어 요소를 실행하는 단계 - 각각의 소프트웨어 요소는 특정의 뷰와 연관되어 있으며, 각각의 특정의 뷰는 하나 이상의 이벤트 인식기를 포함하고, 각각의 이벤트 인식기는,
하나 이상의 서브-이벤트에 기초한 이벤트 정의, 및
이벤트 핸들러를 갖고, 상기 이벤트 핸들러는,
대상(target)에 대한 동작을 지정하고,
상기 이벤트 인식기가 상기 이벤트 정의에 대응하는 이벤트를 검출한 것에 응답하여 상기 대상으로 상기 동작을 전송하도록 구성됨 - ;
하나 이상의 서브-이벤트의 시퀀스를 검출하는 단계;
상기 뷰 계층구조의 뷰들 중 하나의 뷰를 히트 뷰로서 식별하는 단계 - 상기 히트 뷰는 상기 뷰 계층구조 내의 어느 뷰가 적극적으로 관여된 뷰인지를 설정함 - ; 및
각자의 서브-이벤트를 상기 뷰 계층구조 내의 각각의 적극적으로 관여된 뷰에 대한 이벤트 인식기로 전달하는 단계
를 포함하며,
상기 뷰 계층구조 내의 적극적으로 관여된 뷰에 대한 각각의 이벤트 인식기는 상기 서브-이벤트의 시퀀스에서 다음 서브-이벤트를 처리하기 전에 상기 각자의 서브-이벤트를 처리하는 방법. - 제1항에 있어서,
상기 뷰 계층구조 내의 적극적으로 관여된 뷰에 대한 각각의 이벤트 인식기는 상기 하나 이상의 서브-이벤트의 시퀀스를 동시에 처리하는 방법. - 제1항 또는 제2항에 있어서,
상기 뷰 계층구조 내의 제1 적극적으로 관여된 뷰는 상기 각자의 서브-이벤트를 상기 제1 적극적으로 관여된 뷰와 연관된 이벤트 인식기로 전달하는 것을 방지하도록 구성되어 있는 방법. - 제1항 또는 제2항에 있어서,
상기 뷰 계층구조 내의 제1 적극적으로 관여된 뷰는, 상기 제1 적극적으로 관여된 뷰가 상기 히트 뷰가 아닌 경우, 상기 각자의 서브-이벤트를 상기 제1 적극적으로 관여된 뷰와 연관된 이벤트 인식기로 전달하는 것을 방지하도록 구성되어 있는 방법. - 제1항 내지 제4항 중 어느 한 항에 있어서,
상기 뷰 계층구조 내의 제2 적극적으로 관여된 뷰는 상기 각자의 서브-이벤트를 상기 제2 적극적으로 관여된 뷰와 연관된 이벤트 인식기 및 상기 제2 적극적으로 관여된 뷰의 선조(ancestor)와 연관된 이벤트 인식기로 전달하는 것을 방지하도록 구성되어 있는 방법. - 제1항 내지 제5항 중 어느 한 항에 있어서,
상기 복수의 이벤트 인식기 중 적어도 하나의 이벤트 인식기는 제스처 정의 및 제스처 핸들러를 갖는 제스처 인식기인 방법. - 제1항 내지 제6항 중 어느 한 항에 있어서,
상기 이벤트 정의는 사용자 제스처를 정의하는 방법. - 제1항 내지 제7항 중 어느 한 항에 있어서,
상기 전자 장치는 멀티-터치 제스처를 검출하도록 구성된 터치 감응 표면을 더 포함하는 방법. - 제1항 내지 제7항 중 어느 한 항에 있어서,
상기 전자 장치는 멀티-터치 제스처를 검출하도록 구성된 터치 스크린을 더 포함하는 방법. - 제1항 내지 제9항 중 어느 한 항에 있어서,
상기 하나 이상의 서브-이벤트의 시퀀스는 원시(primitive) 터치 이벤트를 포함하는 방법. - 제1항 내지 제10항 중 어느 한 항에 있어서,
각각의 이벤트 인식기는 적어도 이벤트 가능 상태, 이벤트 불가능 상태, 및 이벤트가 인식된 상태를 포함하는 이벤트 인식 상태의 세트를 갖는 방법. - 제11항에 있어서,
상기 이벤트 인식기가 상기 이벤트 가능 상태에 들어가는 경우, 상기 이벤트 핸들러가 상기 대상으로 전달하기 위해 그에 대응하는 동작의 준비를 시작하는 단계를 더 포함하는 방법. - 제12항에 있어서,
상기 이벤트 인식기가 상기 이벤트가 인식된 상태에 들어가는 경우, 상기 이벤트 핸들러가 상기 대상으로 전달하기 위해 그에 대응하는 동작의 준비를 완료하는 단계를 더 포함하는 방법. - 제13항에 있어서,
상기 이벤트 핸들러가 그에 대응하는 동작을 상기 대상으로 전달하는 단계를 더 포함하는 방법. - 제1항 내지 제14항 중 어느 한 항에 있어서,
상기 복수의 이벤트 인식기는 병렬로 하나 이상의 서브-이벤트의 시퀀스를 독립적으로 처리하는 방법. - 제1항 내지 제15항 중 어느 한 항에 있어서,
상기 복수의 이벤트 인식기 중 하나 이상의 이벤트 인식기는 상기 이벤트 인식기가 상기 이벤트를 인식한 후가 될 때까지 상기 서브-이벤트의 시퀀스의 하나 이상의 서브-이벤트의 전달을 지연시키도록 구성되어 있는 방법. - 제1항 내지 제16항 중 어느 한 항에 있어서,
배타적 이벤트 인식기를 포함하는 상기 복수의 이벤트 인식기의 하나 이상의 이벤트 인식기가 배타적 이벤트 인식을 수행하도록 구성되어 있고,
이벤트 전달 시스템은 상기 배타적 이벤트 인식기 중 임의의 인식기가 이벤트를 인식한 후에 상기 뷰 계층구조 내의 적극적으로 관여된 뷰에 대한 임의의 비배타적 이벤트 인식기가 각자의 이벤트를 인식하는 것을 방지하는 방법. - 제17항에 있어서,
상기 하나 이상의 배타적 이벤트 인식기는 이벤트 예외 목록을 포함하는 방법. - 제18항에 있어서,
상기 이벤트 예외 목록은 그에 대응하는 이벤트 정의가 반복적 서브-이벤트를 갖는 이벤트를 포함하는 방법. - 제1항 내지 제19항 중 어느 한 항에 있어서,
상기 이벤트 정의는 사용자 입력 동작을 정의하는 방법. - 제1항 내지 제20항 중 어느 한 항에 있어서,
상기 하나 이상의 서브-이벤트의 시퀀스의 각자의 서브-이벤트는 키 누름, 키 누름 유지, 키 누름 해제, 버튼 누름, 버튼 누름 유지, 버튼 누름 해제, 조이스틱 움직임, 마우스 움직임, 마우스 버튼 누름, 마우스 버튼 해제, 펜 스타일러스 터치, 펜 스타일러스 움직임, 펜 스타일러스 해제, 구두 명령, 검출된 눈 움직임, 생체 인식 입력, 및 사용자에서의 검출된 생리학적 변화로 이루어지는 그룹으로부터 선택되는 방법. - 복수의 뷰를 갖는 뷰 계층구조를 포함하는 소프트웨어를 실행하도록 구성된 전자 장치에서,
상기 뷰 계층구조의 하나 이상의 뷰를 디스플레이하는 단계;
하나 이상의 소프트웨어 요소를 실행하는 단계 - 각각의 소프트웨어 요소는 특정의 뷰와 연관되어 있으며, 각각의 특정의 뷰는 하나 이상의 이벤트 인식기를 포함함 - 각각의 이벤트 인식기는,
하나 이상의 서브-이벤트에 기초한 이벤트 정의, 및
이벤트 핸들러를 갖고, 상기 이벤트 핸들러는,
대상에 대한 동작을 지정하고,
상기 이벤트 인식기가 상기 이벤트 정의에 대응하는 이벤트를 검출한 것에 응답하여 상기 대상으로 상기 동작을 전송하도록 구성됨 -;
하나 이상의 서브-이벤트의 시퀀스를 검출하는 단계;
상기 뷰 계층구조의 뷰들 중 하나의 뷰를 히트 뷰로서 식별하는 단계 - 상기 히트 뷰는 상기 뷰 계층구조 내의 어느 뷰가 적극적으로 관여된 뷰인지를 설정함 -;
각자의 서브-이벤트를 상기 뷰 계층구조 내의 각각의 적극적으로 관여된 뷰에 대한 이벤트 인식기로 전달하는 단계; 및
상기 뷰 계층구조 내의 적극적으로 관여된 뷰에 대한 이벤트 인식기에서, 상기 각자의 서브-이벤트를 처리하는 동안 서브-이벤트 인식 결정을 하는 단계
를 포함하는 방법. - 제22항에 있어서,
상기 뷰 계층구조 내의 적극적으로 관여된 뷰에 대한 각각의 이벤트 인식기는 상기 하나 이상의 서브-이벤트의 시퀀스를 병렬로 처리하는 방법. - 컴퓨터 시스템 또는 장치의 하나 이상의 프로세서에서 실행하기 위한 하나 이상의 프로그램을 저장하는 컴퓨터 판독가능 저장 매체로서, 상기 하나 이상의 프로그램은,
복수의 뷰를 갖는 뷰 계층구조의 하나 이상의 뷰를 디스플레이하는 하나 이상의 응용 프로그램 -
상기 하나 이상의 응용 프로그램은 하나 이상의 소프트웨어 요소를 포함하고, 각각의 소프트웨어 요소는 특정의 뷰와 연관되어 있으며, 각각의 특정의 뷰는 하나 이상의 이벤트 인식기를 포함하고, 각각의 이벤트 인식기는,
하나 이상의 서브-이벤트에 기초한 이벤트 정의, 및
이벤트 핸들러를 가지고, 상기 이벤트 핸들러는,
대상에 대한 동작을 지정하고,
상기 이벤트 인식기가 상기 이벤트 정의에 대응하는 이벤트를 검출한 것에 응답하여 상기 대상으로 상기 동작을 전송하도록 구성되어 있음 -; 및
상기 컴퓨터 시스템 또는 장치의 하나 이상의 프로세서에 의해 실행될 때, 상기 컴퓨터 시스템 또는 장치로 하여금
하나 이상의 서브-이벤트의 시퀀스를 검출하고;
상기 뷰 계층구조의 뷰들 중 하나의 뷰를 히트 뷰로서 식별하며 - 상기 히트 뷰는 상기 뷰 계층구조 내의 어느 뷰가 적극적으로 관여된 뷰인지를 설정함 -;
각자의 서브-이벤트를 상기 뷰 계층구조 내의 각각의 적극적으로 관여된 뷰에 대한 이벤트 인식기로 전달하게 하는 이벤트 관리 명령어를 포함하며,
상기 뷰 계층구조 내의 적극적으로 관여된 뷰에 대한 각각의 이벤트 인식기는 상기 서브-이벤트의 시퀀스에서의 그 다음 서브-이벤트를 처리하기 전에 상기 각자의 서브-이벤트를 처리하는 컴퓨터 판독가능 저장 매체. - 제24항에 있어서,
상기 하나 이상의 프로그램은, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 컴퓨터 시스템 또는 장치로 하여금 제1항 내지 제23항 중 어느 한 항의 방법을 수행하게 하는 명령어를 포함하는 컴퓨터 판독가능 저장 매체. - 디스플레이;
하나 이상의 프로세서;
메모리; 및
복수의 뷰를 갖는 뷰 계층구조의 하나 이상의 뷰를 디스플레이하도록 구성되어 있는, 상기 메모리에 저장된 하나 이상의 프로그램을 포함하며,
상기 하나 이상의 프로그램은 하나 이상의 소프트웨어 요소를 포함하고, 각각의 소프트웨어 요소는 특정의 뷰와 연관되어 있으며, 각각의 특정의 뷰는 하나 이상의 이벤트 인식기를 포함하고, 각각의 이벤트 인식기는,
하나 이상의 서브-이벤트에 기초한 이벤트 정의, 및
이벤트 핸들러를 가지고, 상기 이벤트 핸들러는,
대상에 대한 동작을 지정하고,
상기 이벤트 인식기가 상기 이벤트 정의에 대응하는 이벤트를 검출한 것에 응답하여 상기 대상으로 상기 동작을 전송하도록 구성되어 있고;
상기 하나 이상의 프로그램은 상기 장치의 하나 이상의 프로세서에 의해 실행될 때, 상기 장치로 하여금
하나 이상의 서브-이벤트의 시퀀스를 검출하고;
상기 뷰 계층구조의 뷰들 중 하나의 뷰를 히트 뷰로서 식별하며 - 상기 히트 뷰는 상기 뷰 계층구조 내의 어느 뷰가 적극적으로 관여된 뷰인지를 설정함 -;
각자의 서브-이벤트를 상기 뷰 계층구조 내의 각각의 적극적으로 관여된 뷰에 대한 이벤트 인식기로 전달하고;
상기 뷰 계층구조 내의 적극적으로 관여된 뷰에 대한 이벤트 인식기가 상기 각자의 서브-이벤트를 처리하는 동안 서브-이벤트 인식 결정을 하게 하는 이벤트 전달 프로그램을 포함하는 장치. - 제26항에 있어서,
상기 메모리에 저장된 상기 하나 이상의 프로그램은, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 컴퓨터 시스템 또는 장치로 하여금 제1항 내지 제23항 중 어느 한 항의 방법을 수행하게 하는 명령어를 포함하는 장치.
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 (2)
Publication Number | Publication Date |
---|---|
KR20110130484A true KR20110130484A (ko) | 2011-12-05 |
KR101278346B1 KR101278346B1 (ko) | 2013-06-25 |
Family
ID=42731388
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020117024288A KR101278346B1 (ko) | 2009-03-16 | 2010-03-12 | 이벤트 인식 |
Country Status (9)
Country | Link |
---|---|
US (5) | US8285499B2 (ko) |
EP (2) | EP2413237B1 (ko) |
JP (5) | JP5594914B2 (ko) |
KR (1) | KR101278346B1 (ko) |
CN (4) | CN104035717B (ko) |
AU (1) | AU2010226120B2 (ko) |
CA (4) | CA2909730C (ko) |
DE (1) | DE112010001143T5 (ko) |
WO (1) | WO2010107669A2 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180006614A (ko) * | 2016-07-07 | 2018-01-18 | 삼성디스플레이 주식회사 | 멀티-터치 디스플레이 패널 및 이를 제어하는 방법 |
US11372538B2 (en) | 2012-06-22 | 2022-06-28 | Sony Corporation | Detection device and detection method |
Families Citing this family (82)
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 |
US20080168478A1 (en) | 2007-01-07 | 2008-07-10 | Andrew Platzer | Application Programming Interfaces for Scrolling |
US20080168402A1 (en) | 2007-01-07 | 2008-07-10 | Christopher Blumenberg | Application Programming Interfaces for Gesture Operations |
US7844915B2 (en) | 2007-01-07 | 2010-11-30 | Apple Inc. | Application programming interfaces for scrolling operations |
US8645827B2 (en) * | 2008-03-04 | 2014-02-04 | Apple Inc. | Touch event model |
US8416196B2 (en) | 2008-03-04 | 2013-04-09 | Apple Inc. | Touch event model programming interface |
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 |
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 |
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 |
US8285499B2 (en) | 2009-03-16 | 2012-10-09 | Apple Inc. | Event recognition |
US8566045B2 (en) | 2009-03-16 | 2013-10-22 | 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 |
KR101754908B1 (ko) * | 2010-12-20 | 2017-07-07 | 애플 인크. | 이벤트 인식 |
CN203287883U (zh) * | 2010-12-20 | 2013-11-13 | 苹果公司 | 电子设备及其信息处理装置 |
EP2659336B1 (en) * | 2010-12-30 | 2019-06-26 | InterDigital CE Patent Holdings | 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 |
US8713482B2 (en) * | 2011-07-28 | 2014-04-29 | National Instruments Corporation | Gestures for presentation of different views of a system diagram |
US8782525B2 (en) | 2011-07-28 | 2014-07-15 | National Insturments Corporation | Displaying physical signal routing in a diagram of a system |
US9417754B2 (en) | 2011-08-05 | 2016-08-16 | P4tents1, LLC | User interface system, method, and computer program product |
US20130036377A1 (en) * | 2011-08-05 | 2013-02-07 | Nokia Corporation | Controlling responsiveness to user inputs |
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 |
US9348668B2 (en) | 2011-09-15 | 2016-05-24 | Oracle International Corporation | System and method for supporting a server-side event model 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 |
JP6182207B2 (ja) | 2012-05-09 | 2017-08-16 | アップル インコーポレイテッド | ユーザインタフェースオブジェクトのアクティブ化状態を変更するためのフィードバックを提供するためのデバイス、方法、及びグラフィカルユーザインタフェース |
AU2013259630B2 (en) | 2012-05-09 | 2016-07-07 | Apple Inc. | Device, method, and graphical user interface for transitioning between display states in response to gesture |
CN105260049B (zh) | 2012-05-09 | 2018-10-23 | 苹果公司 | 用于响应于用户接触来显示附加信息的设备、方法和图形用户界面 |
EP3594797A1 (en) | 2012-05-09 | 2020-01-15 | Apple Inc. | Device, method, and graphical user interface for providing tactile feedback for operations performed in a user interface |
US20130325832A1 (en) * | 2012-05-31 | 2013-12-05 | Microsoft Corporation | Presenting search results with concurrently viewable targets |
AU2013290495B2 (en) * | 2012-07-15 | 2016-07-07 | 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 |
WO2014105276A1 (en) | 2012-12-29 | 2014-07-03 | Yknots Industries Llc | 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 |
CN107250954A (zh) * | 2015-01-15 | 2017-10-13 | 夏普株式会社 | 信息处理装置、信息处理装置的控制方法及控制程序 |
CN104596037B (zh) * | 2015-01-16 | 2019-11-29 | 珠海格力电器股份有限公司 | 空调器、空调控制器及其控制方法和装置 |
WO2016121620A1 (ja) * | 2015-01-27 | 2016-08-04 | 三菱電機株式会社 | ユーザーインターフェイス装置、ユーザーインターフェイス表示方法および制御プログラム |
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 |
US9860451B2 (en) | 2015-06-07 | 2018-01-02 | Apple Inc. | Devices and methods for capturing and interacting with enhanced digital images |
US9891811B2 (en) | 2015-06-07 | 2018-02-13 | Apple Inc. | Devices and methods for navigating between user interfaces |
CN105100916B (zh) * | 2015-07-09 | 2019-03-08 | 北京奇虎科技有限公司 | 一种视频播放器的制作方法和装置 |
US10235035B2 (en) | 2015-08-10 | 2019-03-19 | Apple Inc. | Devices, methods, and graphical user interfaces for content navigation and manipulation |
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 |
CN105549824A (zh) * | 2015-12-26 | 2016-05-04 | 魅族科技(中国)有限公司 | 一种显示控制方法及移动终端 |
CN106126355A (zh) * | 2016-06-22 | 2016-11-16 | 百度在线网络技术(北京)有限公司 | 基于iOS系统的事件传递方法和装置 |
CN106250229B (zh) * | 2016-08-16 | 2020-01-24 | 东软集团股份有限公司 | 事件处理的方法及装置 |
CN106896987B (zh) * | 2017-02-27 | 2019-06-25 | 网易(杭州)网络有限公司 | 实现界面元素跟随的方法及装置 |
WO2018213414A1 (en) * | 2017-05-16 | 2018-11-22 | Apple Inc. | Devices, methods, and graphical user interfaces for touch input processing |
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 |
US20190287003A1 (en) * | 2018-03-14 | 2019-09-19 | Scaled Inference, Inc. | Methods and systems for integrating speculative decision-making in cross-platform real-time decision-making systems |
CN108711185B (zh) * | 2018-05-15 | 2021-05-28 | 清华大学 | 联合刚性运动和非刚性形变的三维重建方法及装置 |
US10877660B2 (en) * | 2018-06-03 | 2020-12-29 | Apple Inc. | Devices and methods for processing inputs using gesture recognizers |
US10921975B2 (en) | 2018-06-03 | 2021-02-16 | Apple Inc. | Devices, methods, and user interfaces for conveying proximity-based and contact-based input events |
JP6709255B2 (ja) | 2018-07-27 | 2020-06-10 | 本田技研工業株式会社 | 内燃機関の冷却構造 |
CN110111812B (zh) * | 2019-04-15 | 2020-11-03 | 深圳大学 | 一种键盘击键内容的自适应识别方法和系统 |
CN110989888B (zh) * | 2019-12-13 | 2021-03-02 | 广州方硅信息技术有限公司 | 一种触摸事件分发方法及设备 |
Family Cites Families (510)
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 |
US5583543A (en) | 1992-11-05 | 1996-12-10 | Sharp Kabushiki Kaisha | Pen input processing apparatus |
JP2999335B2 (ja) | 1992-11-05 | 2000-01-17 | シャープ株式会社 | ジェスチャー処理装置およびジェスチャー処理方法 |
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 |
US5581670A (en) | 1993-07-21 | 1996-12-03 | Xerox Corporation | User interface having movable sheet with click-through tools |
CA2124505C (en) | 1993-07-21 | 2000-01-04 | William A. S. Buxton | User interface having simultaneously movable tools and cursor |
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 |
EP0742918B1 (en) * | 1994-03-21 | 1997-10-15 | Object Technology Licensing Corp. | Apparatus and method for document processing |
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 |
ES2115166T3 (es) | 1994-11-15 | 1998-06-16 | Uop Inc | Separacion por adsorcion mejorada de meta-xileno a partir de hidrocarburos aromaticos. |
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 |
IL136465A0 (en) | 1997-12-01 | 2001-06-14 | Cedara Software Corp | Architecture for an application framework |
US7663607B2 (en) | 2004-05-06 | 2010-02-16 | Apple Inc. | Multipoint touchscreen |
US7614008B2 (en) | 2004-07-30 | 2009-11-03 | Apple Inc. | Operation of a computer with touch screen interface |
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 |
US9292111B2 (en) | 1998-01-26 | 2016-03-22 | Apple Inc. | Gesturing with a multipoint sensing device |
US7840912B2 (en) | 2006-01-30 | 2010-11-23 | Apple Inc. | Multi-touch gesture dictionary |
EP1717677B1 (en) | 1998-01-26 | 2015-06-17 | Apple Inc. | Method and apparatus for integrating manual input |
US20070177804A1 (en) | 2006-01-30 | 2007-08-02 | Apple Computer, Inc. | Multi-touch gesture dictionary |
EP2256607A3 (en) * | 1998-01-26 | 2011-12-14 | Apple Inc. | Method and apparatus for integrating manual input |
US7834855B2 (en) | 2004-08-25 | 2010-11-16 | Apple Inc. | Wide touchpad on a portable computer |
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 |
US6061063A (en) | 1998-06-30 | 2000-05-09 | Sun Microsystems, Inc. | Method and apparatus for providing feedback while scrolling |
US6570594B1 (en) | 1998-06-30 | 2003-05-27 | Sun Microsystems, Inc. | User interface with non-intrusive display element |
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 | 富士通株式会社 | オブジェクト指向業務システムおよび方法 |
JP2000163443A (ja) | 1998-11-25 | 2000-06-16 | Seiko Epson Corp | 携帯情報機器及び情報記憶媒体 |
JP4542637B2 (ja) | 1998-11-25 | 2010-09-15 | セイコーエプソン株式会社 | 携帯情報機器及び情報記憶媒体 |
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 |
DE60001496T2 (de) | 1999-04-21 | 2003-12-18 | Barrie Weatherall | Stabilisiervorrichtung für leitern |
JP4939682B2 (ja) | 1999-04-27 | 2012-05-30 | エーユー オプトロニクス コーポレイション | 表示装置 |
AUPQ439299A0 (en) | 1999-12-01 | 1999-12-23 | Silverbrook Research Pty Ltd | Interface system |
US6714936B1 (en) * | 1999-05-25 | 2004-03-30 | Nevin, Iii Rocky Harry W. | Method and apparatus for displaying data stored in linked nodes |
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 |
US6664989B1 (en) | 1999-10-18 | 2003-12-16 | Honeywell International Inc. | Methods and apparatus for graphical display interaction |
KR100747421B1 (ko) | 1999-10-20 | 2007-08-09 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 영상 콜렉션을 브라우징하는 장치 및 방법 |
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 |
US6856326B1 (en) | 2000-01-28 | 2005-02-15 | International Business Machines Corporation | Smooth scrolling system and method |
WO2001056007A1 (en) | 2000-01-28 | 2001-08-02 | Intersense, Inc. | Self-referenced tracking |
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 |
CA2402543C (en) | 2000-03-17 | 2010-10-26 | 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 |
EP1273154A2 (en) | 2000-03-30 | 2003-01-08 | QUALCOMM Incorporated | Method and apparatus for notifying a mobile station application of specified events |
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 |
EP1285330B1 (en) | 2000-05-11 | 2006-08-30 | 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 |
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 |
US6704024B2 (en) | 2000-08-07 | 2004-03-09 | Zframe, Inc. | Visual content browsing using rasterized representations |
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 |
US6707449B2 (en) | 2000-08-30 | 2004-03-16 | Microsoft Corporation | Manual controlled scrolling |
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 |
WO2002059868A1 (en) * | 2001-01-24 | 2002-08-01 | Interlink Electronics, Inc. | Game and home entertainment device remote control |
US6677932B1 (en) | 2001-01-28 | 2004-01-13 | Finger Works, Inc. | System and method for recognizing touch typing under limited tactile feedback conditions |
US7030861B1 (en) | 2001-02-10 | 2006-04-18 | Wayne Carl Westerman | System and method for packing multi-touch gestures onto a hand |
US6570557B1 (en) | 2001-02-10 | 2003-05-27 | Finger Works, Inc. | Multi-touch system and method for emulating modifier keys via fingertip chords |
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 |
JP2004533641A (ja) | 2001-05-02 | 2004-11-04 | ビットストリーム インコーポレーティッド | 非線形カラー・バランスを使用して副画素最適化フォント・ビットマップを生成及び表示するための方法、システム、及びプログラム |
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 |
US6972749B2 (en) | 2001-08-29 | 2005-12-06 | Microsoft Corporation | Touch-sensitive device for scrolling a document on a display |
US6690365B2 (en) | 2001-08-29 | 2004-02-10 | Microsoft Corporation | Automatic scrolling |
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 |
US7345671B2 (en) | 2001-10-22 | 2008-03-18 | Apple Inc. | Method and apparatus for use of rotational user inputs |
US7046230B2 (en) | 2001-10-22 | 2006-05-16 | Apple Computer, Inc. | Touch pad handheld device |
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 |
WO2003081458A1 (en) | 2002-03-19 | 2003-10-02 | 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 |
KR100980902B1 (ko) | 2002-05-16 | 2010-09-07 | 소니 주식회사 | 입력 방법 및 입력 장치 |
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 (en) | 2002-08-05 | 2004-03-03 | Alcatel | Method, terminal, browser application, and mark-up language for multimodal interaction between a user and a 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 (en) | 2002-11-20 | 2006-07-05 | Nokia Corporation | Method and user interface for entering characters |
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 |
CN1742252A (zh) | 2003-05-21 | 2006-03-01 | 株式会社日立高新技术 | 内置指纹传感器的便携式终端装置 |
WO2004111816A2 (en) | 2003-06-13 | 2004-12-23 | University Of Lancaster | User interface |
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 | 検査用チップ |
EP1656660A4 (en) | 2003-08-21 | 2006-09-13 | Microsoft Corp | FOCUSING MANAGEMENT USING POINTS IN THE EMPTY |
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 |
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 |
GB2411331A (en) | 2004-02-19 | 2005-08-24 | Trigenix Ltd | Rendering user interface using actor attributes |
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 | 入力軌跡処理装置および入力軌跡処理方法 |
EP1735733A1 (en) | 2004-04-02 | 2006-12-27 | Nokia Corporation | Apparatus and method for handwriting recognition |
US7623119B2 (en) | 2004-04-21 | 2009-11-24 | Nokia Corporation | Graphical functions by gestures |
EP1625513B1 (en) * | 2004-04-30 | 2018-04-18 | Microsoft Technology Licensing, LLC | Rules framework for definition and execution of end-user rules logic |
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 |
WO2005124526A2 (en) | 2004-06-17 | 2005-12-29 | Koninklijke Philips Electronics N.V. | Use of a two finger input on touch screens |
US7519223B2 (en) | 2004-06-28 | 2009-04-14 | Microsoft Corporation | Recognizing gestures and using gestures for interacting with software applications |
US20080284799A1 (en) | 2004-06-29 | 2008-11-20 | Koninklijke Philips Electronics, N.V. | Discontinous Zoom |
JP2008505381A (ja) | 2004-06-29 | 2008-02-21 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 表示装置の汚れを防ぐ方法及び装置 |
JP4903371B2 (ja) | 2004-07-29 | 2012-03-28 | 任天堂株式会社 | タッチパネルを用いたゲーム装置およびゲームプログラム |
US7506799B2 (en) | 2004-07-30 | 2009-03-24 | Nokia Corporation | Method for the monitoring of system security in electronic devices |
EP2000893B1 (en) | 2004-07-30 | 2016-09-21 | Apple Inc. | Mode-based graphical user interfaces for touch sensitive input devices |
EP1774427A2 (en) | 2004-07-30 | 2007-04-18 | Apple Computer, Inc. | Mode-based graphical user interfaces for touch sensitive input devices |
US7653883B2 (en) | 2004-07-30 | 2010-01-26 | Apple Inc. | Proximity detector in handheld device |
US7728821B2 (en) | 2004-08-06 | 2010-06-01 | Touchtable, Inc. | Touch detecting interactive display |
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 |
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 |
JP4366695B2 (ja) | 2004-09-13 | 2009-11-18 | 日本ビクター株式会社 | メニュー画像表示方法及び電子情報機器 |
US7761814B2 (en) | 2004-09-13 | 2010-07-20 | Microsoft Corporation | Flick gesture |
US20060055669A1 (en) | 2004-09-13 | 2006-03-16 | Mita Das | Fluent user interface for text entry on touch-sensitive display |
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 |
WO2007037806A1 (en) | 2005-09-15 | 2007-04-05 | 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 | 盛群半导体股份有限公司 | 触控感应装置的判读方法 |
CA2594428A1 (en) | 2005-01-05 | 2006-07-13 | Jaewoo Ahn | Method and apparatus for inputting character through pointing device |
WO2006074267A2 (en) | 2005-01-05 | 2006-07-13 | Hillcrest Laboratories, Inc. | Distributed software construction for user interfaces |
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 | 学校法人 名城大学 | 半導体基板の製造方法 |
KR102058832B1 (ko) | 2005-03-04 | 2019-12-23 | 애플 인크. | 다기능 휴대용 장치 |
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 | 株式会社土井製作所 | 地中埋設ケーブル等に対する地盤変動時の保護方法及びその保護装置 |
DE112006001209T5 (de) | 2005-05-16 | 2008-04-30 | General Motors Global Technology Operations, Inc., Detroit | Katalysator für Brennstoffzellenelektrode |
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 |
US20090049388A1 (en) | 2005-06-02 | 2009-02-19 | Ronnie Bernard Francis Taib | 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 |
EP1908051A4 (en) | 2005-07-22 | 2012-01-25 | Matthew G Pallakoff | SYSTEM AND METHOD FOR A THUMB-OPTIMIZED USER INTERFACE OF A TOUCH SCREEN |
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 |
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 |
WO2007066168A1 (en) | 2005-12-08 | 2007-06-14 | Nokia Corporation | Improved text entry for electronic devices |
US20070132789A1 (en) | 2005-12-08 | 2007-06-14 | Bas Ording | List scrolling in response to moving contact over list of index symbols |
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 |
US7786975B2 (en) | 2005-12-23 | 2010-08-31 | Apple Inc. | Continuous scrolling list with acceleration |
US7650137B2 (en) | 2005-12-23 | 2010-01-19 | Apple Inc. | Account information display for portable communication device |
US20070152983A1 (en) | 2005-12-30 | 2007-07-05 | Apple Computer, Inc. | Touch pad with symbols based on mode |
US7509588B2 (en) | 2005-12-30 | 2009-03-24 | Apple Inc. | Portable electronic device with interface reconfiguration mode |
US7812826B2 (en) | 2005-12-30 | 2010-10-12 | Apple Inc. | Portable electronic device with multi-touch input |
US8018440B2 (en) | 2005-12-30 | 2011-09-13 | Microsoft Corporation | Unintentional touch rejection |
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 |
US8077153B2 (en) | 2006-04-19 | 2011-12-13 | Microsoft Corporation | Precise selection techniques for multi-touch screens |
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 |
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 |
US8269725B2 (en) | 2006-06-28 | 2012-09-18 | Microsoft Corporation | Input simulation system for touch based devices |
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 |
RU2008149112A (ru) | 2006-06-30 | 2010-06-20 | Теле Атлас Норт Америка, Инк. (Us) | Способ и система для сбора пользовательских запросов на обновление относительно географических данных для поддержки автоматизированного анализа, обработки и обновлений географических данных |
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 | キヤノン株式会社 | 情報処理装置およびユーザインタフェース制御方法 |
DE202007018940U1 (de) | 2006-08-15 | 2009-12-10 | N-Trig Ltd. | Bewegungserkennung für einen Digitalisierer |
US20080043020A1 (en) | 2006-08-18 | 2008-02-21 | Microsoft Corporation | User interface for viewing street side imagery |
US7864163B2 (en) | 2006-09-06 | 2011-01-04 | Apple Inc. | Portable electronic device, method, and graphical user interface for displaying structured electronic documents |
US7941760B2 (en) | 2006-09-06 | 2011-05-10 | Apple Inc. | Soft keyboard display for a portable multifunction device |
US8253695B2 (en) | 2006-09-06 | 2012-08-28 | Apple Inc. | Email client for a portable multifunction device |
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 | 苹果公司 | 用于照片管理的便携式电子装置 |
US8106856B2 (en) * | 2006-09-06 | 2012-01-31 | Apple Inc. | Portable electronic device for photo management |
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 |
US8214768B2 (en) | 2007-01-05 | 2012-07-03 | Apple Inc. | Method, system, and graphical user interface for viewing multiple application windows |
US8656295B2 (en) | 2007-01-05 | 2014-02-18 | Apple Inc. | Selecting and manipulating web content |
US7907125B2 (en) | 2007-01-05 | 2011-03-15 | Microsoft Corporation | Recognizing multiple input point gestures |
US7966578B2 (en) | 2007-01-07 | 2011-06-21 | Apple Inc. | Portable multifunction device, method, and graphical user interface for translating displayed content |
US7844915B2 (en) | 2007-01-07 | 2010-11-30 | Apple Inc. | Application programming interfaces for scrolling operations |
US7671756B2 (en) * | 2007-01-07 | 2010-03-02 | Apple Inc. | Portable electronic device with alert silencing |
US20080168402A1 (en) | 2007-01-07 | 2008-07-10 | Christopher Blumenberg | Application Programming Interfaces for Gesture Operations |
US7903115B2 (en) | 2007-01-07 | 2011-03-08 | Apple Inc. | Animations |
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 |
US8665225B2 (en) | 2007-01-07 | 2014-03-04 | Apple Inc. | Portable multifunction device, method, and graphical user interface for interpreting a finger gesture |
US20080168395A1 (en) | 2007-01-07 | 2008-07-10 | Bas Ording | Positioning a Slider Icon on a Portable Multifunction Device |
US7872652B2 (en) | 2007-01-07 | 2011-01-18 | Apple Inc. | Application programming interfaces for synchronization |
US20080168478A1 (en) | 2007-01-07 | 2008-07-10 | Andrew Platzer | Application Programming Interfaces for Scrolling |
US8091045B2 (en) | 2007-01-07 | 2012-01-03 | Apple Inc. | System and method for managing lists |
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 (en) | 2007-03-15 | 2017-08-16 | LG Electronics Inc. | Electronic device and method of controlling mode thereof and mobile communication terminal |
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 |
WO2009018314A2 (en) | 2007-07-30 | 2009-02-05 | 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 | 삼성전자주식회사 | 하이퍼링크 선택 방법 및 이를 이용하는 이동통신 단말기 |
WO2009049331A2 (en) | 2007-10-08 | 2009-04-16 | Van Der Westhuizen Willem Mork | 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 | 情報処理装置、ランチャー起動制御プログラムおよびランチャー起動制御方法 |
AU2008323700B2 (en) | 2007-11-09 | 2014-01-16 | 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 |
US8717305B2 (en) | 2008-03-04 | 2014-05-06 | Apple Inc. | Touch event model for web pages |
US8289283B2 (en) | 2008-03-04 | 2012-10-16 | Apple Inc. | Language input interface on a device |
US8645827B2 (en) | 2008-03-04 | 2014-02-04 | Apple Inc. | Touch event model |
US8416196B2 (en) | 2008-03-04 | 2013-04-09 | Apple Inc. | Touch event model programming interface |
US8174502B2 (en) | 2008-03-04 | 2012-05-08 | Apple Inc. | Touch event processing for web pages |
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 |
US8584048B2 (en) | 2008-05-29 | 2013-11-12 | 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 | 엘지전자 주식회사 | 단말기 및 그 제어 방법 |
JP5009422B2 (ja) | 2009-02-10 | 2012-08-22 | シャープ株式会社 | 認証装置、認証方法及びそれをコンピュータに実行させるためのプログラム |
US9311112B2 (en) | 2009-03-16 | 2016-04-12 | Apple Inc. | Event recognition |
US8566045B2 (en) | 2009-03-16 | 2013-10-22 | Apple Inc. | Event recognition |
US8566044B2 (en) | 2009-03-16 | 2013-10-22 | Apple Inc. | Event recognition |
US9684521B2 (en) | 2010-01-26 | 2017-06-20 | Apple Inc. | Systems having discrete and continuous gesture recognizers |
US8285499B2 (en) | 2009-03-16 | 2012-10-09 | 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 |
US9524085B2 (en) | 2009-05-21 | 2016-12-20 | Sony Interactive Entertainment Inc. | Hand-held device with ancillary touch activated transformation of active element |
US8493344B2 (en) | 2009-06-07 | 2013-07-23 | 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 | 삼성전자주식회사 | 휴대용 단말기의 터치 입력 장치 및 방법 |
US8839122B2 (en) | 2010-04-07 | 2014-09-16 | Apple Inc. | Device, method, and graphical user interface for navigation of multiple applications |
US9052926B2 (en) | 2010-04-07 | 2015-06-09 | Apple Inc. | Device, method, and graphical user interface for managing concurrently open software applications |
US8131898B2 (en) | 2010-05-27 | 2012-03-06 | Adobe Systems Incorporated | Event handling in an integrated execution environment |
EP2390766B1 (en) | 2010-05-28 | 2013-09-25 | BlackBerry Limited | Electronic device including touch-sensitive display and method of controlling same |
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 |
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 |
-
2009
- 2009-09-24 US US12/566,660 patent/US8285499B2/en active Active
-
2010
- 2010-03-12 AU AU2010226120A patent/AU2010226120B2/en active Active
- 2010-03-12 EP EP11184186.2A patent/EP2413237B1/en active Active
- 2010-03-12 CA CA2909730A patent/CA2909730C/en active Active
- 2010-03-12 JP JP2012500844A patent/JP5594914B2/ja active Active
- 2010-03-12 CN CN201410299324.XA patent/CN104035717B/zh active Active
- 2010-03-12 CA CA2755443A patent/CA2755443C/en active Active
- 2010-03-12 CN CN201410299325.4A patent/CN104035718B/zh active Active
- 2010-03-12 CN CN201080020598.0A patent/CN102422264B/zh active Active
- 2010-03-12 CN CN201410299526.4A patent/CN104049975B/zh active Active
- 2010-03-12 KR KR1020117024288A patent/KR101278346B1/ko active IP Right Grant
- 2010-03-12 DE DE112010001143T patent/DE112010001143T5/de active Pending
- 2010-03-12 CA CA2817648A patent/CA2817648C/en active Active
- 2010-03-12 CA CA2817890A patent/CA2817890C/en active Active
- 2010-03-12 WO PCT/US2010/027118 patent/WO2010107669A2/en active Application Filing
- 2010-03-12 EP EP10712825A patent/EP2409222A2/en active Pending
-
2011
- 2011-08-30 US US13/221,830 patent/US8428893B2/en active Active
-
2012
- 2012-09-14 US US13/620,390 patent/US8682602B2/en active Active
-
2014
- 2014-02-13 US US14/180,267 patent/US9285908B2/en active Active
- 2014-06-24 JP JP2014129689A patent/JP5879395B2/ja active Active
-
2016
- 2016-02-01 JP JP2016017396A patent/JP6180563B2/ja active Active
- 2016-02-17 US US15/046,252 patent/US9965177B2/en active Active
-
2017
- 2017-07-18 JP JP2017139218A patent/JP6408085B2/ja active Active
-
2018
- 2018-09-19 JP JP2018175226A patent/JP6695395B2/ja active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11372538B2 (en) | 2012-06-22 | 2022-06-28 | Sony Corporation | Detection device and detection method |
KR20180006614A (ko) * | 2016-07-07 | 2018-01-18 | 삼성디스플레이 주식회사 | 멀티-터치 디스플레이 패널 및 이를 제어하는 방법 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101278346B1 (ko) | 이벤트 인식 | |
US20230244317A1 (en) | Proxy Gesture Recognizer | |
US11755196B2 (en) | Event recognition | |
US8566044B2 (en) | Event recognition | |
US9311112B2 (en) | Event recognition | |
KR20130111615A (ko) | 이벤트 인식 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160517 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20170522 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20180516 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20190515 Year of fee payment: 7 |