KR20110130484A - 이벤트 인식 - Google Patents

이벤트 인식 Download PDF

Info

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
Application number
KR1020117024288A
Other languages
English (en)
Other versions
KR101278346B1 (ko
Inventor
브래드포드 알렌 무어
조슈아 에이치. 샤퍼
Original Assignee
애플 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 애플 인크. filed Critical 애플 인크.
Publication of KR20110130484A publication Critical patent/KR20110130484A/ko
Application granted granted Critical
Publication of KR101278346B1 publication Critical patent/KR101278346B1/ko

Links

Images

Classifications

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

Landscapes

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

Abstract

방법은 뷰 계층구조의 하나 이상의 뷰를 디스플레이하는 복수의 뷰를 갖는 뷰 계층구조를 포함하는 소프트웨어를 실행한다. 이 방법은 특정의 뷰와 연관된 소프트웨어 요소를 실행하고, 각각의 특정의 뷰는 이벤트 인식기를 포함한다. 각각의 이벤트 인식기는 서브-이벤트에 기초한 이벤트 정의, 및 대상에 대한 동작을 지정하고, 이벤트 인식에 응답하여 동작을 대상으로 전송하도록 구성되어 있는 이벤트 핸들러를 가진다. 이 방법은 서브-이벤트의 시퀀스를 검출하고, 뷰 계층구조의 뷰들 중 하나의 뷰를, 계층구조 내의 어느 뷰가 적극적으로 관여된 뷰인지를 설정하는 히트 뷰로서 식별한다. 이 방법은 각자의 서브-이벤트를 각각의 적극적으로 관여된 뷰에 대한 이벤트 인식기로 전달하고, 뷰 계층구조 내의 적극적으로 관여된 뷰에 대한 각각의 이벤트 인식기는 서브-이벤트의 시퀀스에서의 그 다음 서브-이벤트를 처리하기 전에 각자의 서브-이벤트를 처리한다.

Description

이벤트 인식{EVENT RECOGNITION}
개시된 실시예는 일반적으로 사용자 인터페이스 처리에 관한 것이다. 보다 상세하게는, 개시된 실시예는 사용자 인터페이스 이벤트를 인식하는 장치 및 방법에 관한 것이다.
컴퓨팅 장치는 통상적으로 컴퓨팅 장치와 상호작용하는 데 사용될 수 있는 사용자 인터페이스를 포함한다. 사용자 인터페이스는 사용자 인터페이스의 다양한 양태와 상호작용하기 위해 디스플레이 및/또는 키보드, 마우스 및 터치-감응 표면과 같은 입력 장치를 포함할 수 있다. 터치-감응 표면을 입력 장치로서 갖는 일부 장치에서, 제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는 일부 실시예에 따른 이벤트 인식 방법 흐름도이다.
첨부 도면에 걸쳐 유사한 참조 번호는 대응하는 부분을 가리킨다.
이제부터, 실시예에 대해 상세히 언급할 것이며, 이들 실시예의 예가 첨부 도면에 예시되어 있다. 이하의 상세한 설명에서, 본 발명의 완전한 이해를 제공하기 위해 다수의 구체적인 상세가 기술되어 있다. 그러나, 본 발명이 이들 구체적인 상세 없이도 실시될 수 있다는 것이 당업자에게는 명백할 것이다. 다른 경우들에, 이 실시예의 양태를 불필요하게 모호하게 하지 않기 위해 공지의 방법, 절차, 구성요소, 회로 및 네트워크에 대해서는 상세히 설명하지 않고 있다.
또한, 제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)가 설정되었기 때문이다.
Figure pct00001
도 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)의 전달을 요약된 표 형식으로 제공한다.
Figure pct00002
도 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)의 전달을 요약된 표 형식으로 제공한다.
Figure pct00003
도 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)의 전달을 요약된 표 형식으로 제공한다.
Figure pct00004
다른 실시예에서, 도 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)

  1. 복수의 뷰를 갖는 뷰 계층구조를 포함하는 소프트웨어를 실행하도록 구성된 전자 장치에서,
    상기 뷰 계층구조의 하나 이상의 뷰를 디스플레이하는 단계;
    하나 이상의 소프트웨어 요소를 실행하는 단계 - 각각의 소프트웨어 요소는 특정의 뷰와 연관되어 있으며, 각각의 특정의 뷰는 하나 이상의 이벤트 인식기를 포함하고, 각각의 이벤트 인식기는,
    하나 이상의 서브-이벤트에 기초한 이벤트 정의, 및
    이벤트 핸들러를 갖고, 상기 이벤트 핸들러는,
    대상(target)에 대한 동작을 지정하고,
    상기 이벤트 인식기가 상기 이벤트 정의에 대응하는 이벤트를 검출한 것에 응답하여 상기 대상으로 상기 동작을 전송하도록 구성됨 - ;
    하나 이상의 서브-이벤트의 시퀀스를 검출하는 단계;
    상기 뷰 계층구조의 뷰들 중 하나의 뷰를 히트 뷰로서 식별하는 단계 - 상기 히트 뷰는 상기 뷰 계층구조 내의 어느 뷰가 적극적으로 관여된 뷰인지를 설정함 - ; 및
    각자의 서브-이벤트를 상기 뷰 계층구조 내의 각각의 적극적으로 관여된 뷰에 대한 이벤트 인식기로 전달하는 단계
    를 포함하며,
    상기 뷰 계층구조 내의 적극적으로 관여된 뷰에 대한 각각의 이벤트 인식기는 상기 서브-이벤트의 시퀀스에서 다음 서브-이벤트를 처리하기 전에 상기 각자의 서브-이벤트를 처리하는 방법.
  2. 제1항에 있어서,
    상기 뷰 계층구조 내의 적극적으로 관여된 뷰에 대한 각각의 이벤트 인식기는 상기 하나 이상의 서브-이벤트의 시퀀스를 동시에 처리하는 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 뷰 계층구조 내의 제1 적극적으로 관여된 뷰는 상기 각자의 서브-이벤트를 상기 제1 적극적으로 관여된 뷰와 연관된 이벤트 인식기로 전달하는 것을 방지하도록 구성되어 있는 방법.
  4. 제1항 또는 제2항에 있어서,
    상기 뷰 계층구조 내의 제1 적극적으로 관여된 뷰는, 상기 제1 적극적으로 관여된 뷰가 상기 히트 뷰가 아닌 경우, 상기 각자의 서브-이벤트를 상기 제1 적극적으로 관여된 뷰와 연관된 이벤트 인식기로 전달하는 것을 방지하도록 구성되어 있는 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 뷰 계층구조 내의 제2 적극적으로 관여된 뷰는 상기 각자의 서브-이벤트를 상기 제2 적극적으로 관여된 뷰와 연관된 이벤트 인식기 및 상기 제2 적극적으로 관여된 뷰의 선조(ancestor)와 연관된 이벤트 인식기로 전달하는 것을 방지하도록 구성되어 있는 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 복수의 이벤트 인식기 중 적어도 하나의 이벤트 인식기는 제스처 정의 및 제스처 핸들러를 갖는 제스처 인식기인 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 이벤트 정의는 사용자 제스처를 정의하는 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 전자 장치는 멀티-터치 제스처를 검출하도록 구성된 터치 감응 표면을 더 포함하는 방법.
  9. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 전자 장치는 멀티-터치 제스처를 검출하도록 구성된 터치 스크린을 더 포함하는 방법.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 하나 이상의 서브-이벤트의 시퀀스는 원시(primitive) 터치 이벤트를 포함하는 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서,
    각각의 이벤트 인식기는 적어도 이벤트 가능 상태, 이벤트 불가능 상태, 및 이벤트가 인식된 상태를 포함하는 이벤트 인식 상태의 세트를 갖는 방법.
  12. 제11항에 있어서,
    상기 이벤트 인식기가 상기 이벤트 가능 상태에 들어가는 경우, 상기 이벤트 핸들러가 상기 대상으로 전달하기 위해 그에 대응하는 동작의 준비를 시작하는 단계를 더 포함하는 방법.
  13. 제12항에 있어서,
    상기 이벤트 인식기가 상기 이벤트가 인식된 상태에 들어가는 경우, 상기 이벤트 핸들러가 상기 대상으로 전달하기 위해 그에 대응하는 동작의 준비를 완료하는 단계를 더 포함하는 방법.
  14. 제13항에 있어서,
    상기 이벤트 핸들러가 그에 대응하는 동작을 상기 대상으로 전달하는 단계를 더 포함하는 방법.
  15. 제1항 내지 제14항 중 어느 한 항에 있어서,
    상기 복수의 이벤트 인식기는 병렬로 하나 이상의 서브-이벤트의 시퀀스를 독립적으로 처리하는 방법.
  16. 제1항 내지 제15항 중 어느 한 항에 있어서,
    상기 복수의 이벤트 인식기 중 하나 이상의 이벤트 인식기는 상기 이벤트 인식기가 상기 이벤트를 인식한 후가 될 때까지 상기 서브-이벤트의 시퀀스의 하나 이상의 서브-이벤트의 전달을 지연시키도록 구성되어 있는 방법.
  17. 제1항 내지 제16항 중 어느 한 항에 있어서,
    배타적 이벤트 인식기를 포함하는 상기 복수의 이벤트 인식기의 하나 이상의 이벤트 인식기가 배타적 이벤트 인식을 수행하도록 구성되어 있고,
    이벤트 전달 시스템은 상기 배타적 이벤트 인식기 중 임의의 인식기가 이벤트를 인식한 후에 상기 뷰 계층구조 내의 적극적으로 관여된 뷰에 대한 임의의 비배타적 이벤트 인식기가 각자의 이벤트를 인식하는 것을 방지하는 방법.
  18. 제17항에 있어서,
    상기 하나 이상의 배타적 이벤트 인식기는 이벤트 예외 목록을 포함하는 방법.
  19. 제18항에 있어서,
    상기 이벤트 예외 목록은 그에 대응하는 이벤트 정의가 반복적 서브-이벤트를 갖는 이벤트를 포함하는 방법.
  20. 제1항 내지 제19항 중 어느 한 항에 있어서,
    상기 이벤트 정의는 사용자 입력 동작을 정의하는 방법.
  21. 제1항 내지 제20항 중 어느 한 항에 있어서,
    상기 하나 이상의 서브-이벤트의 시퀀스의 각자의 서브-이벤트는 키 누름, 키 누름 유지, 키 누름 해제, 버튼 누름, 버튼 누름 유지, 버튼 누름 해제, 조이스틱 움직임, 마우스 움직임, 마우스 버튼 누름, 마우스 버튼 해제, 펜 스타일러스 터치, 펜 스타일러스 움직임, 펜 스타일러스 해제, 구두 명령, 검출된 눈 움직임, 생체 인식 입력, 및 사용자에서의 검출된 생리학적 변화로 이루어지는 그룹으로부터 선택되는 방법.
  22. 복수의 뷰를 갖는 뷰 계층구조를 포함하는 소프트웨어를 실행하도록 구성된 전자 장치에서,
    상기 뷰 계층구조의 하나 이상의 뷰를 디스플레이하는 단계;
    하나 이상의 소프트웨어 요소를 실행하는 단계 - 각각의 소프트웨어 요소는 특정의 뷰와 연관되어 있으며, 각각의 특정의 뷰는 하나 이상의 이벤트 인식기를 포함함 - 각각의 이벤트 인식기는,
    하나 이상의 서브-이벤트에 기초한 이벤트 정의, 및
    이벤트 핸들러를 갖고, 상기 이벤트 핸들러는,
    대상에 대한 동작을 지정하고,
    상기 이벤트 인식기가 상기 이벤트 정의에 대응하는 이벤트를 검출한 것에 응답하여 상기 대상으로 상기 동작을 전송하도록 구성됨 -;
    하나 이상의 서브-이벤트의 시퀀스를 검출하는 단계;
    상기 뷰 계층구조의 뷰들 중 하나의 뷰를 히트 뷰로서 식별하는 단계 - 상기 히트 뷰는 상기 뷰 계층구조 내의 어느 뷰가 적극적으로 관여된 뷰인지를 설정함 -;
    각자의 서브-이벤트를 상기 뷰 계층구조 내의 각각의 적극적으로 관여된 뷰에 대한 이벤트 인식기로 전달하는 단계; 및
    상기 뷰 계층구조 내의 적극적으로 관여된 뷰에 대한 이벤트 인식기에서, 상기 각자의 서브-이벤트를 처리하는 동안 서브-이벤트 인식 결정을 하는 단계
    를 포함하는 방법.
  23. 제22항에 있어서,
    상기 뷰 계층구조 내의 적극적으로 관여된 뷰에 대한 각각의 이벤트 인식기는 상기 하나 이상의 서브-이벤트의 시퀀스를 병렬로 처리하는 방법.
  24. 컴퓨터 시스템 또는 장치의 하나 이상의 프로세서에서 실행하기 위한 하나 이상의 프로그램을 저장하는 컴퓨터 판독가능 저장 매체로서, 상기 하나 이상의 프로그램은,
    복수의 뷰를 갖는 뷰 계층구조의 하나 이상의 뷰를 디스플레이하는 하나 이상의 응용 프로그램 -
    상기 하나 이상의 응용 프로그램은 하나 이상의 소프트웨어 요소를 포함하고, 각각의 소프트웨어 요소는 특정의 뷰와 연관되어 있으며, 각각의 특정의 뷰는 하나 이상의 이벤트 인식기를 포함하고, 각각의 이벤트 인식기는,
    하나 이상의 서브-이벤트에 기초한 이벤트 정의, 및
    이벤트 핸들러를 가지고, 상기 이벤트 핸들러는,
    대상에 대한 동작을 지정하고,
    상기 이벤트 인식기가 상기 이벤트 정의에 대응하는 이벤트를 검출한 것에 응답하여 상기 대상으로 상기 동작을 전송하도록 구성되어 있음 -; 및
    상기 컴퓨터 시스템 또는 장치의 하나 이상의 프로세서에 의해 실행될 때, 상기 컴퓨터 시스템 또는 장치로 하여금
    하나 이상의 서브-이벤트의 시퀀스를 검출하고;
    상기 뷰 계층구조의 뷰들 중 하나의 뷰를 히트 뷰로서 식별하며 - 상기 히트 뷰는 상기 뷰 계층구조 내의 어느 뷰가 적극적으로 관여된 뷰인지를 설정함 -;
    각자의 서브-이벤트를 상기 뷰 계층구조 내의 각각의 적극적으로 관여된 뷰에 대한 이벤트 인식기로 전달하게 하는 이벤트 관리 명령어를 포함하며,
    상기 뷰 계층구조 내의 적극적으로 관여된 뷰에 대한 각각의 이벤트 인식기는 상기 서브-이벤트의 시퀀스에서의 그 다음 서브-이벤트를 처리하기 전에 상기 각자의 서브-이벤트를 처리하는 컴퓨터 판독가능 저장 매체.
  25. 제24항에 있어서,
    상기 하나 이상의 프로그램은, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 컴퓨터 시스템 또는 장치로 하여금 제1항 내지 제23항 중 어느 한 항의 방법을 수행하게 하는 명령어를 포함하는 컴퓨터 판독가능 저장 매체.
  26. 디스플레이;
    하나 이상의 프로세서;
    메모리; 및
    복수의 뷰를 갖는 뷰 계층구조의 하나 이상의 뷰를 디스플레이하도록 구성되어 있는, 상기 메모리에 저장된 하나 이상의 프로그램을 포함하며,
    상기 하나 이상의 프로그램은 하나 이상의 소프트웨어 요소를 포함하고, 각각의 소프트웨어 요소는 특정의 뷰와 연관되어 있으며, 각각의 특정의 뷰는 하나 이상의 이벤트 인식기를 포함하고, 각각의 이벤트 인식기는,
    하나 이상의 서브-이벤트에 기초한 이벤트 정의, 및
    이벤트 핸들러를 가지고, 상기 이벤트 핸들러는,
    대상에 대한 동작을 지정하고,
    상기 이벤트 인식기가 상기 이벤트 정의에 대응하는 이벤트를 검출한 것에 응답하여 상기 대상으로 상기 동작을 전송하도록 구성되어 있고;
    상기 하나 이상의 프로그램은 상기 장치의 하나 이상의 프로세서에 의해 실행될 때, 상기 장치로 하여금
    하나 이상의 서브-이벤트의 시퀀스를 검출하고;
    상기 뷰 계층구조의 뷰들 중 하나의 뷰를 히트 뷰로서 식별하며 - 상기 히트 뷰는 상기 뷰 계층구조 내의 어느 뷰가 적극적으로 관여된 뷰인지를 설정함 -;
    각자의 서브-이벤트를 상기 뷰 계층구조 내의 각각의 적극적으로 관여된 뷰에 대한 이벤트 인식기로 전달하고;
    상기 뷰 계층구조 내의 적극적으로 관여된 뷰에 대한 이벤트 인식기가 상기 각자의 서브-이벤트를 처리하는 동안 서브-이벤트 인식 결정을 하게 하는 이벤트 전달 프로그램을 포함하는 장치.
  27. 제26항에 있어서,
    상기 메모리에 저장된 상기 하나 이상의 프로그램은, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 컴퓨터 시스템 또는 장치로 하여금 제1항 내지 제23항 중 어느 한 항의 방법을 수행하게 하는 명령어를 포함하는 장치.
KR1020117024288A 2009-03-16 2010-03-12 이벤트 인식 KR101278346B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9256356B2 (en) * 2001-03-29 2016-02-09 International Business Machines Corporation Method and system for providing feedback for docking a content pane in a host window
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1517521A (en) 1975-09-01 1978-07-12 Tilgate Pallets Ltd Pallets
US4455452A (en) 1982-09-13 1984-06-19 Touch Activated Switch Arrays, Inc. Touch activated controller for generating X-Y output information
US4674066A (en) 1983-02-18 1987-06-16 Houghton Mifflin Company Textual database system using skeletonization and phonetic replacement to retrieve words matching or similar to query words
JPH02140822A (ja) 1988-11-22 1990-05-30 Nec Corp マルチウインドディスプレイ方式
US5252951A (en) 1989-04-28 1993-10-12 International Business Machines Corporation Graphical user interface with gesture recognition in a multiapplication environment
JP2862626B2 (ja) 1990-03-22 1999-03-03 株式会社東芝 電子辞書及び情報検索方法
US5046434A (en) 1990-05-02 1991-09-10 Penda Corporation Plastic reinforced thermoformed pallet
JP3145735B2 (ja) 1991-07-17 2001-03-12 富士通株式会社 入力制御方式
JPH05197573A (ja) 1991-08-26 1993-08-06 Hewlett Packard Co <Hp> タスク指向パラダイムによるタスク管理システム
JP2827612B2 (ja) 1991-10-07 1998-11-25 富士通株式会社 タッチパネル装置およびタッチパネル装置におけるオブジェクトの表示方法。
US5233547A (en) 1991-11-12 1993-08-03 Ncr Corporation Electronic checking account apparatus and method having a digitizer to receive information as a check is being written
JP2787523B2 (ja) 1992-04-15 1998-08-20 沖電気工業株式会社 キーボード
US5880411A (en) 1992-06-08 1999-03-09 Synaptics, Incorporated Object position detector with edge motion feature and gesture recognition
US5488204A (en) 1992-06-08 1996-01-30 Synaptics, Incorporated Paintbrush stylus for capacitive touch sensor pad
JPH0816314B2 (ja) 1992-09-12 1996-02-21 グンゼ株式会社 筒状編地の連続染色法
US7084859B1 (en) 1992-09-18 2006-08-01 Pryor Timothy R Programmable tactile touch screen displays and man-machine interfaces for improved vehicle instrumentation and telematics
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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11372538B2 (en) 2012-06-22 2022-06-28 Sony Corporation Detection device and detection method
KR20180006614A (ko) * 2016-07-07 2018-01-18 삼성디스플레이 주식회사 멀티-터치 디스플레이 패널 및 이를 제어하는 방법

Also Published As

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

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