본 발명은 제스처 및 터치 감지 장치로 제스처를 구현하는 방법에 관한 것이다. 터치 감지 장치의 예로는 터치 스크린 및 터치 패드가 있다. 본 발명은 또한 사용자 인터페이스 및 디스플레이를 갖는 사용자 인터페이스를 구현하는 방법에 관한 것이다. 본 발명의 한 측면은 하나 이상의 조건에 기초하여 사용자 인터페이스 모드를 판정하는 것에 관한 것이다. 본 발명의 다른 측면은 사용자 인터페이스 모드에 기초하여 하나 이상의 GUI 요소를 활성화시키는 것(예를 들어, GUI 요소를 디스플레이하는 것)에 관한 것이다. 본 발명의 다른 측면은 가상 스크롤 휠에 관한 것이다.
본 발명의 이들 및 다른 측면은 도 1 내지 도 38j를 참조하여 이하에서 기술된다. 그렇지만, 당업자라면, 본 발명이 이들 제한된 실시예를 넘어 확장되기 때문에, 이들 도면과 관련하여 본 명세서에 주어진 상세한 설명이 예시를 위한 것임을 용이하게 잘 알 것이다.
도 1은 본 발명의 일 실시예에 따른 예시적인 컴퓨터 시스템(50)의 블록도이다. 컴퓨터 시스템(50)은 데스크톱, 랩톱, 태블릿 또는 핸드헬드 컴퓨터 등의 퍼스널 컴퓨터 시스템에 대응할 수 있다. 컴퓨터 시스템은 또한 셀 전화, PDA, 전용 미디어 플레이어, 가전 기기, 기타 등등의 컴퓨팅 장치에 대응할 수 있다.
도 1에 도시된 예시적인 컴퓨터 시스템(50)은 명령어를 실행하고 또 컴퓨터 시스템(50)과 연관된 동작을 수행하도록 구성되어 있는 프로세서(56)를 포함한다. 예를 들면, 예를 들어 메모리로부터 검색된 명령어를 사용하여, 프로세서(56)는 컴 퓨터 시스템(50)의 컴포넌트들 간의 입력 및 출력 데이터의 수신 및 처리를 제어할 수 있다. 프로세서(56)는 단일 칩, 다수의 칩 또는 다수의 전기 부품 상에 구현될 수 있다. 예를 들어, 전용 또는 임베디드 프로세서, 단일 목적 프로세서, 컨트롤러, ASIC, 기타 등등을 비롯하여 여러가지 아키텍처가 프로세서(56)에 대해 사용될 수 있다.
대부분의 경우에, 프로세서(56)는, 운영 체제와 함께, 컴퓨터 코드를 실행하고 데이터를 생성 및 사용하는 동작을 한다. 운영 체제는 일반적으로 공지되어 있으며 이에 대해 보다 상세히 기술하지 않는다. 예로서, 운영 체제는 OS/2, DOS, Unix, Linux, Palm OS, 기타 등등에 대응할 수 있다. 운영 체제는 또한 제한된 목적의 기기형 컴퓨팅 장치에 사용될 수 있는 것 등의 특수 목적 운영 체제일 수 있다. 운영 체제, 다른 컴퓨터 코드 및 데이터는 프로세서(56)와 연결되어 동작하는 메모리 블록(58) 내에 존재할 수 있다. 메모리 블록(58)은 일반적으로 컴퓨터 시스템(50)에 의해 사용되는 컴퓨터 코드 및 데이터를 저장하는 장소를 제공한다. 예로서, 메모리 블록(58)은 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 하드 디스크 드라이브 및/또는 기타 등등을 포함할 수 있다. 정보는 또한 분리형 저장 매체 상에 존재하고, 필요할 때, 컴퓨터 시스템(50) 상으로 로드 또는 설치될 수 있다. 분리형 저장 매체는, 예를 들어, CD-ROM, PC-CARD, 메모리 카드, 플로피 디스크, 자기 테이프, 및 네트워크 컴포넌트를 포함한다.
컴퓨터 시스템(50)은 또한 프로세서(56)에 연결되어 동작하는 디스플레이 장치(68)를 포함한다. 디스플레이 장치(68)는 액정 디스플레이(LCD)(예를 들어, 능 동 매트릭스, 수동 매트릭스, 기타 등등)일 수 있다. 다른 대안으로서, 디스플레이 장치(68)는 단색 디스플레이, CGA(color graphics adapter) 디스플레이, EGA(enhanced graphics adapter) 디스플레이, VGA(variable-graphics-array) 디스플레이, 수퍼 VGA 디스플레이, CRT(cathode ray tube), 기타 등등의 모니터일 수 있다. 디스플레이 장치는 또한 플라즈마 디스플레이 또는 전자적 링크로 구현되는 디스플레이에 대응할 수 있다.
디스플레이 장치(68)는 일반적으로 컴퓨터 시스템의 사용자와 운영 체제 또는 운영 체제 상에서 실행 중인 애플리케이션 간의 사용하기 쉬운 인터페이스를 제공하는 그래픽 사용자 인터페이스(GUI)(69)를 디스플레이하도록 구성되어 있다. 일반적으로 말하면, GUI(69)는 프로그램, 파일, 및 동작 옵션들을 그래픽 이미지로 표현한다. 그래픽 이미지는 윈도우, 필드, 대화상자, 메뉴, 아이콘, 버튼, 커서, 스크롤 바, 기타 등등을 포함할 수 있다. 이러한 이미지는 미리 정의된 레이아웃으로 정렬될 수 있거나, 사용자가 취하고 있는 특정의 조치를 돕기 위해 동적으로 생성될 수 있다. 동작 동안에, 사용자는 여러가지 그래픽 이미지와 연관된 기능 및 작업을 개시하기 위해 그 이미지를 선택 및 활성화할 수 있다. 예로서, 사용자는 윈도우의 열기, 닫기, 최소화, 또는 최대화를 행하는 버튼, 또는 특정 프로그램을 기동시키는 아이콘을 선택할 수 있다. GUI(69)는, 그에 부가하여 또는 다른 대안으로서, 사용자를 위해 디스플레이 장치(68) 상에 비대화형 텍스트 및 그래픽 등의 정보를 디스플레이할 수 있다.
컴퓨터 시스템(50)은 또한 프로세서(56)에 연결되어 동작하는 입력 장치(70) 를 포함한다. 입력 장치(70)는 외부 세계로부터 컴퓨터 시스템(50) 내로 데이터를 전송하도록 구성되어 있다. 입력 장치(70)는, 예를 들어, 추적을 수행하고 또 디스플레이(68) 상에서 GUI(69)와 관련하여 선택을 하기 위해 사용될 수 있다. 입력 장치(70)는 또한 컴퓨터 시스템(50)에서 명령을 발행하는 데 사용될 수 있다. 입력 장치(70)는 사용자의 터치로부터 입력을 수신하고 이 정보를 프로세서(56)로 전송하도록 구성되어 있는 터치 감지 장치를 포함할 수 있다. 예로서, 터치 감지 장치는 터치 패드 또는 터치 스크린에 대응할 수 있다. 많은 경우에, 터치-감지 장치는 터치는 물론, 터치 감지 표면 상에서의 터치의 위치 및 크기를 인식한다. 터치 감지 수단은 이 터치를 프로세서(56)에 보고하고, 프로세서(56)는 그의 프로그래밍에 따라 이 터치를 해석한다. 예를 들어, 프로세서(56)는 특정의 터치에 따라 작업을 개시할 수 있다. 터치를 로컬적으로 처리하고 컴퓨터 시스템의 메인 프로세서에 대한 요구를 감소시키기 위해 전용 프로세서가 사용될 수 있다. 터치 감지 장치는 용량성 감지, 저항성 감지, 표면 탄성파 감지, 압력 감지, 광학 감지, 및/또는 기타 등등(이에 한정되는 것은 아님)을 비롯한 감지 기술에 기초할 수 있다. 게다가, 터치 감지 수단은 단일점 감지 또는 다중점 감지에 기초할 수 있다. 단일점 감지는 단일의 터치만을 구별할 수 있는 반면, 다중점 감지는 동시에 일어나는 다수의 터치를 구별할 수 있다.
입력 장치(70)는 디스플레이(68) 상에 또는 그 전방에 배치되어 있는 터치 스크린일 수 있다. 터치 스크린(70)은 디스플레이 장치(68)와 일체로 되어 있을 수 있거나 별개의 구성요소일 수 있다. 터치 스크린(70)은 터치 패드, 마우스, 기 타 등등의 다른 입력 기술보다 몇가지 이점을 갖는다. 한가지 이점으로서, 터치 스크린(70)은 디스플레이(68)의 전방에 배치되며, 따라서 사용자가 GUI(69)를 직접 조작할 수 있다. 예를 들어, 사용자는 단지 제어될 객체 상에 그의 손가락을 올려 놓을 수 있다. 터치패드에서는, 이것과 같은 일대일 관계가 없다. 터치패드에 있어서, 터치패드는 디스플레이로부터 떨어져 일반적으로 다른 평면에 놓여 있다. 예를 들어, 디스플레이는 일반적으로 수직 평면에 위치해 있고, 터치패드는 일반적으로 수평 평면에 위치해 있다. 이것은 그의 사용을 덜 직관적이게 하며, 따라서 터치 스크린과 비교할 때 더 어렵다. 터치 스크린인 것에 부가하여, 입력 장치(70)는 다중점 입력 장치일 수 있다. 다중점 입력 장치는, 이들이 2개 이상의 객체(손가락)를 구별할 수 있다는 점에서, 종래의 단일점 장치보다 이점을 갖는다. 단일점 장치는 다수의 객체를 전혀 구별할 수 없다. 예로서, 본 명세서에서 사용될 수 있는 다중점 터치 스크린은, 동시 계류 중이고 공동 양도된, 미국 특허 출원 제10/840,862호에 보다 상세히 도시되고 기술되어 있으며, 이는 여기에 인용함으로써 그 전체 내용이 본 명세서에 포함된다.
컴퓨터 시스템(50)은 또한 하나 이상의 I/O 장치(80)에 연결하기 위한 기능을 포함한다. 예로서, I/O 장치(80)는 키보드, 프린터, 스캐너, 카메라, 스피커, 및/또는 기타 등등에 대응할 수 있다. I/O 장치(80)는 컴퓨터 시스템(50)과 일체로 되어 있을 수 있거나, 별개의 구성요소(예를 들어, 주변 장치)일 수 있다. 어떤 경우에, I/O 장치(80)는 유선 연결(예를 들어, 케이블/포트)을 통해 컴퓨터 시스템(50)에 연결될 수 있다. 다른 경우에, I/O 장치(80)는 무선 연결을 통해 컴퓨 터 시스템(50)에 연결될 수 있다. 예로서, 데이터 링크는 PS/2, USB, IR, RF, 블루투스 또는 기타 등등에 대응할 수 있다.
본 발명의 일 실시예에 따르면, 컴퓨터 시스템(50)은 입력 장치(70)에 가해지는 제스처(85)를 인식하고 이 제스처(85)에 기초하여 컴퓨터 시스템(50)의 측면들을 제어하도록 설계되어 있다. 어떤 경우에, 제스처는 하나 이상의 특정의 컴퓨팅 동작에 매핑되는, 입력장치와의 양식화된 상호작용으로서 정의된다. 제스처(85)는 여러가지 손을 통해, 보다 상세하게는 손가락 움직임을 통해 행해질 수 있다. 다른 대안으로서 또는 그에 부가하여, 제스처는 스타일러스로 행해질 수 있다. 이들 경우 모두에서, 입력 장치(70)는 제스처(85)를 수신하고, 프로세서(56)는 제스처(85)와 연관된 동작들을 수행하는 명령어들을 실행한다. 게다가, 메모리 블록(58)은 운영 체제 또는 별도의 애플리케이션의 일부일 수 있는 제스처 작동 프로그램(88)을 포함할 수 있다. 제스처 작동 프로그램(88)은 일반적으로 제스처(85)의 발생을 인식하고 그 제스처(85) 및/또는 제스처(85)에 응답하여 무슨 조치(들)이 취해져야 하는지를 하나 이상의 소프트웨어 에이전트에게 알려주는 일련의 명령어를 포함한다.
사용자가 하나 이상의 제스처를 행할 때, 입력 장치(70)는 제스처 정보를 프로세서(56)로 전달한다. 메모리(58)로부터의 명령어, 보다 상세하게는 제스처 작동 프로그램(88)을 사용하여, 프로세서(56)는 제스처(85)를 해석하고 메모리(58), 디스플레이(68) 및 I/O 장치(80) 등의 컴퓨터 시스템(50)의 서로 다른 컴포넌트를 제어한다. 제스처(85)는 메모리(58)에 저장된 애플리케이션에서의 동작을 수행하 고, 디스플레이(68) 상에 나타난 GUI 객체를 수정하며, 메모리(58)에 저장된 데이터를 수정하고, 및/또는 I/O 장치(80)에서의 동작을 수행하는 명령으로서 식별될 수 있다. 예로서, 이들 명령은 줌잉, 패닝, 스크롤링, 페이지 넘김, 회전, 크기조정, 기타 등등과 연관되어 있을 수 있다. 추가의 예로서, 명령은 또한 특정의 프로그램을 기동시키는 것, 파일 또는 문서를 여는 것, 메뉴를 보는 것, 선택을 하는 것, 명령어를 실행하는 것, 컴퓨터 시스템에 로그온하는 것, 인가된 개인에게 컴퓨터 시스템의 제한된 영역에의 액세스를 허용하는 것, 컴퓨터 바탕화면의 사용자 선호 배열과 연관된 사용자 프로파일을 로드하는 것, 및/또는 기타 등등과 연관되어 있을 수 있다.
광범위한 서로 다른 제스처가 이용될 수 있다. 예로서, 제스처는 단일점(single point) 또는 다중점(multipoint) 제스처, 정적 또는 동적 제스처, 연속적(continuous) 또는 구분된(segmented) 제스처, 및/또는 기타 등등일 수 있다. 단일점 제스처는 단일의 접촉점으로 수행되는 제스처이다, 예를 들어, 이 제스처는 예를 들어 하나의 손가락, 손바닥 또는 스타일러스로부터와 같이 단일의 터치로 수행된다. 다중점 제스처는 다수의 점으로 수행될 수 있는 제스처이다, 예를 들어, 이 제스처는 예를 들어 다수의 손가락, 손가락과 손바닥, 손가락과 스타일러스, 다수의 스타일러스 및/또는 이들의 임의의 조합으로부터와 같이 다수의 터치로 수행된다. 정적 제스처는 움직임을 포함하지 않는 제스처이고, 동적 제스처는 움직임을 포함하는 제스처이다. 연속적 제스처는 단일의 스트로크로 수행되는 제스처이고, 구분된 제스처는 별개의 스텝 또는 스트로크의 시퀀스로 수행되는 제스처이다.
일 실시예에서, 컴퓨터 시스템(50)은 다수의 제스처를 동시에 등록하도록 구성되어 있다, 즉 다수의 제스처가 동시에 수행될 수 있다. 예로서, 줌 제스처는 회전 제스처와 동시에 수행될 수 있거나, 회전 제스처는 팬 제스처와 동시에 수행될 수 있다. 한 특정의 구현에서, 줌잉, 회전, 및 패닝을 동시에 수행하기 위해, 줌, 회전 및 팬 제스처 전부가 동시에 일어날 수 있다.
다른 실시예에서, 이 시스템은, 제스처와 연관된 동작이 제스처와 동시에 실시될 수 있도록, 제스처를 즉각 인식하도록 구성되어 있다, 즉 제스처와 동작이, 2-단계 프로세스가 아니라, 나란히 동시에 일어날 수 있다. 예로서, 스크롤링 제스처 동안에, 손가락 움직임으로 화면이 이동한다.
다른 실시예에서, 디스플레이(68) 상에 제공된 객체는 연속적으로 터치 스크린 상에서 행해지는 제스처를 따라간다. 수행되는 제스처와 디스플레이(68) 상에 나타난 객체 간에 일대일 관계가 있다. 예를 들어, 제스처가 수행될 때, 제스처 아래에 위치한 객체들에 동시에 수정이 행해진다. 예를 들어, 줌잉 제스처 동안에, 디스플레이(68) 상에 나타난 객체가, 벌려지는 동안에는 줌 인(zoom in)하고 좁혀지는 동안에는 줌 아웃(zoom out)되게 하기 위해, 손가락이 떨어지게 벌려지거나 서로 좁혀질 수 있다. 이 동작 동안에, 컴퓨터 시스템(50)은 사용자 입력을 줌 제스처로서 인식하고, 어느 조치가 취해져야 하는지를 결정하며, 적절한 장치로, 이 경우에 디스플레이(68)로 제어 데이터를 출력한다.
다른 실시예에서, 컴퓨터 시스템(50)은, 제스처가 입력 장치(70)의 서로 다른 영역 상에서 실시될 때 서로 다른 것을 의미하는 경우, 영역 감도(region sensitivity)를 제공한다. 예를 들어, 볼륨 손잡이 상에서의 회전 제스처는 볼륨 증가/감소를 야기하는 반면, 사진 상에서의 회전 제스처는 사진의 회전을 야기한다.
다른 실시예에서, 터치 스크린과 접촉하고 있는 손가락의 수는 입력 모드를 나타낼 수 있다. 예를 들어, 예를 들어 하나의 손가락에 의한 것같은 단일의 터치는 추적, 즉 포인터 또는 커서 이동 또는 선택을 수행하려고 하는 것임을 나타낼 수 있는 반면, 예를 들어 일군의 손가락에 의한 것같은 다수의 터치는 제스처를 수행하려고 한 것임을 나타낼 수 있다. 제스처를 실시하기 위한 손가락의 수는 광범위하게 변할 수 있다. 예로서, 2개의 손가락은 제1 제스처 모드를 나타낼 수 있고, 3개의 손가락은 제3 제스처 모드를 나타낼 수 있으며, 이하 마찬가지이다. 다른 대안으로서, 임의의 수의 손가락, 즉 2개 이상이 하나 이상의 제스처 컨트롤을 포함할 수 있는 동일한 제스처 모드에 대해 사용될 수 있다. 손가락의 배향도 이와 유사하게 원하는 모드를 나타내기 위해 사용될 수 있다. 사용자가 예를 들어 그의 엄지손가락 또는 검지 손가락을 사용했는지에 기초하여 서로 다른 모드 동작을 가능하게 해주기 위해 손가락의 프로파일이 검출될 수 있다.
다른 실시예에서, 입력 장치 상에서 스트로크를 중단하지 않고(예를 들어, 터치 감지 표면으로부터 들어올리지 않고) 연속적인 스트로크를 하는 동안에 입력이 변경될 수 있다. 한 구현에서, 사용자는, 스트로크가 행해지고 있는 동안, 추적(또는 선택) 모드에서 제스처 모드로 전환할 수 있다. 예를 들어, 추적 또는 선택은 하나의 손가락과 연관될 수 있고, 제스처는 다수의 손가락과 연관될 수 있으 며, 따라서 사용자는, 터치 스크린 상에서 제2 손가락을 들어올렸다 내려 놓음으로써, 추적/선택과 제스처 간에 토글할 수 있다. 다른 구현에서, 사용자는, 스트로크가 행해지고 있는 동안, 한 제스처 모드에서 다른 제스처 모드로 전환할 수 있다. 예를 들어, 줌잉은 한쌍의 손가락을 벌리는 것과 연관될 수 있고, 회전은 한쌍의 손가락을 회전시키는 것과 연관될 수 있으며, 따라서 사용자는 벌리는 것과 회전하는 것 간에 그의 손가락들의 움직임을 번갈아함으로써 줌잉과 회전 간에 토글할 수 있다. 또다른 구현에서, 스트로크가 행해지고 있는 동안에 제스처 입력의 수가 변경될 수 있다(예를 들어, 가산되거나 감산될 수 있다). 예를 들어, 손가락들이 떨어지게 벌리는 줌잉 동안에, 사용자는 또한 줌잉과 회전 둘다를 개시하기 위해 그의 손가락을 회전시킬 수 있다. 게다가, 줌잉 및 회전 동안에, 사용자는, 회전만이 행해지도록, 그의 손가락을 벌리게 하는 것을 중단할 수 있다. 환언하면, 제스처 입력이 동시에 또는 연속적으로 입력될 수 있다.
한 특정의 실시예에서, 하나의 손가락은 추적(또는 선택)을 개시하고, 서로에 근접해 있는 2개 이상의 손가락은 스크롤링 또는 패닝을 개시한다. 하나의 손가락과 2개의 손가락 사이의 용이한 토글을 제공하기 위해 2개의 손가락이 일반적으로 선호된다, 즉 사용자는, 단지 부가의 손가락을 들거나 놓음으로써, 아주 용이하게 모드들 간에 전환할 수 있다. 이것은 다른 형태의 모드 토글링보다 직관적이라는 이점을 갖는다. 추적 동안에, 커서 움직임은 사용자가 터치 감지 장치의 터치 감지 표면 상에서 하나의 손가락을 움직이는 것에 의해 제어된다. 센서 감지 장치의 센서 배열은 손가락 움직임을 해석하고 디스플레이 상에서의 커서의 대응하 는 이동을 생성하는 신호를 발생한다. 스크롤링 동안에, 화면 이동은 사용자가 터치 감지 장치의 터치 감지 표면 상에서 손가락 2개를 움직이는 것에 의해 제어된다. 결합된 손가락이 수직 방향으로 이동될 때, 그 움직임은 수직 스크롤 이벤트로서 해석되고, 결합된 손가락이 수평 방향으로 이동될 때, 그 움직임은 수평 스크롤 이벤트로서 해석된다. 패닝이 단지 수평 방향 및 수직 방향이 아니라 모든 방향으로 일어날 수 있지만 패닝에 대해서도 동일하다고 할 수 있다.
본 명세서에서 사용되는 바와 같이, 용어 "스크롤링"은 일반적으로, 새로운 일련의 데이터(예를 들어, 한 라인의 텍스트 또는 그래픽)가 뷰잉 영역에서 보이게 되도록, 디스플레이 화면 상에서 뷰잉 영역을 가로질러 디스플레이된 데이터 또는 이미지(예를 들어, 텍스트 또는 그래픽)를 이동시키는 것에 관한 것이다. 대부분의 경우에, 뷰잉 영역이 차게 되면, 각각의 새로운 일련의 데이터가 뷰잉 영역의 가장자리에 나타나며, 다른 일련의 데이터 전부는 한 위치 옆으로 이동된다. 즉, 새로운 일련의 데이터가 뷰잉 영역 밖으로 이동하는 각각의 일련의 데이터 대신에 나타난다. 본질적으로, 스크롤링 기능은 사용자가 현재 뷰잉 영역 밖에 있는 계속되는 일련의 데이터를 볼 수 있게 해준다. 뷰잉 영역은 디스플레이 화면의 전체 뷰잉 영역일 수 있거나 디스플레이 화면의 일부분만(예를 들어, 윈도우 프레임)일 수 있다.
상기한 바와 같이, 스크롤링은 수직으로(위쪽으로 또는 아래쪽으로) 또는 수평으로(좌측으로 또는 우측으로) 구현될 수 있다. 수직 스크롤링의 경우, 사용자가 아래쪽으로 스크롤할 때, 각각의 새로운 일련의 데이터가 뷰잉 영역의 하단에 나타나며, 모든 다른 일련의 데이터가 한 위치 위쪽으로 이동한다. 뷰잉 영역이 차있는 경우, 상단의 일련의 데이터는 뷰잉 영역 밖으로 이동한다. 이와 유사하게, 사용자가 위쪽으로 스크롤할 때, 각각의 새로운 일련의 데이터는 뷰잉 영역의 상단에 나타나고, 모든 다른 일련의 데이터는 한 위치 아래쪽으로 이동한다. 뷰잉 영역이 차있는 경우, 하단의 일련의 데이터는 뷰잉 영역 밖으로 이동한다.
예로서, 디스플레이 화면은, 동작 동안에, 미디어 항목(예를 들어, 노래)의 리스트를 디스플레이할 수 있다. 사용자는 터치 스크린을 가로질러 그의 손가락을 이동시킴으로써 미디어 항목의 리스트를 통해 선형적으로 스크롤할 수 있다. 손가락이 터치 스크린을 가로질러 이동함에 따라, 사용자가 미디어 항목의 리스트 전체에 걸쳐 효과적으로 스크롤할 수 있도록, 미디어 항목의 리스트로부터의 디스플레이된 항목들이 변경된다. 대부분의 경우에, 사용자는 그의 손가락을 더 높은 속도로 이동시킴으로써 미디어 항목의 리스트의 횡단을 가속시킬 수 있다. 상기 예와 관련되어 있을 수 있는 다른 실시예에 대해 이하에서 보다 상세히 기술한다. 예를 들어, 도 6, 도 23 및 도 27을 참조하기 바란다.
도 2는 본 발명의 일 실시예에 따른 다중점 프로세싱 방법(100)이다. 다중 프로세싱 방법(100)은, 예를 들어, 도 1에 나타낸 시스템에서 수행될 수 있다. 다중점 프로세싱 방법(100)은 일반적으로 다중점 입력 장치, 보다 상세하게는 다중점 터치 스크린으로부터 이미지가 판독되는 블록(102)에서 시작한다. 예로서, 다중점 터치 스크린은 일반적으로 동시 계류 중인 미국 특허 출원 제10/840,862호(이는 여기에 인용함으로써 그 전체 내용이 본 명세서에 포함됨)에 개시된 다중점 터치 스 크린에 대응할 수 있다. 용어 "이미지"가 사용되고 있지만, 유의해야 할 점은 다른 형태로 데이터가 올 수 있다는 것이다. 대부분의 경우에, 터치 스크린으로부터 판독된 이미지는 터치 스크린의 각각의 감지점 또는 픽셀에 대한 위치(x 및 y)의 함수로서 크기(Z)를 제공한다. 크기는, 예를 들어, 각 점에서 측정된 커패시턴스를 반영할 수 있다.
블록(102)에 뒤이어서, 다중점 프로세싱 방법(100)은 이미지가 특징들의 집합체 또는 리스트로 변환되는 블록(104)으로 진행한다. 각각의 특징은 터치 등의 별개의 입력을 나타낸다. 대부분의 경우에, 각각의 특징은 그 자신의 고유 식별자(ID), x 좌표, y 좌표, Z 크기, 각도 θ, 면적 A, 기타 등등을 포함한다. 예로서, 도 3a 및 도 3b는 특정의 이미지(120)를 시간에 따라 나타낸 것이다. 이미지(120)에서, 2개의 별개의 터치에 기초한 2개의 특징(122)이 있다. 터치는, 예를 들어, 터치 스크린을 터치하는 한쌍의 손가락으로부터 형성될 수 있다. 도시된 바와 같이, 각각의 특징은 고유의 식별자(ID), x 좌표, y 좌표, Z 크기, 각도 θ, 및 면적 A를 포함한다. 보다 상세하게는, 제1 특징(122A)은 ID1, x1, y1, Z1, θ1, A1으로 표현되고, 제2 특징(122B)은 ID2, x2, y2, Z2, θ2, A2로 표현된다. 이 데이터는, 예를 들어, 다중터치 프로토콜을 사용하여 출력될 수 있다.
데이터 또는 이미지로부터 특징으로의 변환은 동시 계류 중인 미국 특허 출원 제10/840,862호(이는 여기에 인용함으로써 그 전체 내용이 본 명세서에 포함됨)에 기술된 방법을 사용하여 달성될 수 있다. 상기 출원에 개시되어 있는 바와 같 이, 원시 데이터가 수신된다. 이 원시 데이터는 일반적으로 디지털화된 형태이고, 터치 스크린의 각 노드에 대한 값을 포함한다. 이들 값은 0과 256 사이에 있을 수 있으며, 여기서 0은 터치 압력이 없음을 나타내고 256은 최고 터치 압력을 나타낸다. 그 후에, 원시 데이터는 노이즈를 감소시키기 위해 필터링된다. 필터링되었으면, 각 그룹의 연결된 점들의 토폴로지를 나타내는 구배 데이터(gradient data)가 발생된다. 그 후에, 구배 데이터에 기초하여 터치 영역의 경계가 계산된다, 즉 각각의 터치 영역을 형성하기 위해 어느 점들이 함께 그룹화되는지에 관한 판정이 행해진다. 예로서, 워터쉐드 알고리즘(watershed algorithm)이 사용될 수 있다. 경계가 판정되었으면, 터치 영역 각각에 대한 데이터가 계산된다(예를 들어, x, y, Z, θ, A).
블록(104)에 뒤이어서, 다중점 프로세싱 방법(100)은 특징 분류 및 그룹화가 수행되는 블록(106)으로 진행한다. 분류 동안에, 각 특징의 정체가 판정된다. 예를 들어, 특징들은 특정의 손가락, 엄지 손가락, 손바닥 또는 다른 객체로서 분류될 수 있다. 분류되었으면, 그 특징들은 그룹화될 수 있다. 그룹이 형성되는 방식은 아주 다양할 수 있다. 대부분의 경우에, 특징들은 어떤 기준에 기초하여 그룹화된다(예를 들어, 특징들은 유사한 속성을 갖는다). 예를 들어, 도 3a 및 도 3b에 도시된 2개의 특징은 함께 그룹화될 수 있는데, 그 이유는 이들 특징 각각이 서로에 근접하여 위치하고 있거나 동일한 손으로부터 나온 것이기 때문이다. 이 그룹화는 터치 이벤트의 일부가 아닌 특징들을 필터링 제거하기 위한 어떤 레벨의 필터링을 포함할 수 있다. 필터링 시에, 하나 이상의 특징들이 제거될 수 있는데 그 이유는 이들 특징이 어떤 사전 정의된 기준을 만족시키거나 어떤 기준을 만족시키지 않기 때문이다. 예로서, 특징들 중 하나는 태블릿 PC의 가장자리에 위치한 엄지 손가락으로 분류될 수 있다. 엄지 손가락이 작업을 수행하는 데 사용되기 보다는 오히려 장치를 잡고 있는 데 사용되기 때문에, 그로부터 발생된 특징은 제거된다, 즉 처리되는 터치 이벤트의 일부로서 간주되지 않는다.
블록(106)에 뒤이어서, 다중점 프로세싱 방법(100)은 특징 그룹에 대한 주요 파라미터가 계산되는 블록(108)으로 진행한다. 이 주요 파라미터는 특징들 간의 거리, 모든 특징의 x/y 중심(centroid), 특징 회전, 그룹의 총 압력(예를 들어, 중심에서의 압력), 기타 등등을 포함할 수 있다. 도 4에 나타낸 바와 같이, 이 계산은 중심 C를 구하는 단계, 이 중심 C로부터 각각의 특징으로의 가상선(130)을 그리는 단계, 각각의 가상선에 대한 거리 D를 정의하는 단계(D1, D2), 및 이어서 이 거리(D1, D2)의 평균을 구하는 단계를 포함할 수 있다. 파라미터가 계산되었으면, 파라미터 값들이 보고된다. 파라미터 값은 일반적으로 그룹 식별자(GID) 및 각 그룹 내에서의 특징의 수(이 경우에, 3개)와 함께 보고된다. 대부분의 경우에, 초기 파라미터 값 및 현재 파라미터 값 둘다가 보고된다. 초기 파라미터 값은 셋 다운(set down), 즉 사용자가 그의 손가락을 터치 스크린 상에 놓을 때에 기초할 수 있고, 현재 값은 셋 다운 이후에 행해지는 스트로크 내에서의 임의의 점에 기초할 수 있다. 잘 알고 있는 바와 같이, 블록(102-108)은 사용자 스트로크 동안에 반복적으로 수행되며, 그에 의해 복수의 순차적으로 구성된 신호를 발생한다. 초기 파 라미터 및 현재 파라미터는, 시스템에서의 동작들을 수행하기 위해, 나중의 단계들에서 비교될 수 있다.
블록(108)에 뒤이어서, 프로세스 흐름은 그룹이 사용자 인터페이스(UI) 요소에 연관되는 블록(110)으로 진행한다. UI 요소는 버튼 박스, 리스트, 슬라이더, 휠, 손잡이(knob), 기타 등등이다. 각각의 UI 요소는 사용자 인터페이스의 컴포넌트 또는 컨트롤을 나타낸다. UI 요소(들)의 배후에 있는 애플리케이션은 블록(108)에서 계산된 파라미터 데이터에 액세스한다. 한 구현에서, 애플리케이션은 그에 대응하는 UI 요소에 대한 터치 데이터의 관련성에 순위를 매긴다. 이 순위 결정은 어떤 미리 정해진 기준에 기초할 수 있다. 이 순위 결정은 감도 지수(figure of merit)를 생성하는 단계, 및 어느 UI 요소든지 최고의 감도 지수를 갖는 것에 그룹에의 독점적 액세스를 제공하는 단계를 포함할 수 있다. 심지어 어느 정도의 히스테리시스도 역시 있을 수 있다(UI 요소 중 하나가 그 그룹의 제어를 요구하는 경우, 다른 UI 요소가 훨씬 더 높은 순위를 가질 때까지 그 그룹은 이 UI 요소를 고집한다). 예로서, 이 순위 결정은 UI 요소와 연관된 GUI 객체에 대한 중심(또는 특징)의 근접성을 판정하는 단계를 포함할 수 있다.
블록(110)에 뒤이어서, 다중점 프로세싱 방법(100)은 블록(112, 114)으로 진행한다. 블록(112, 114)은 거의 동시에 수행될 수 있다. 사용자 관점에서 볼 때, 일 실시예에서, 블록(112, 114)은 동시에 수행되는 것으로 보인다. 블록(112)에서, 초기 파라미터 값과 현재 파라미터 값 간의 차이는 물론, 이들이 연관되어 있는 UI 요소에 기초하여 하나 이상의 동작이 수행된다. 블록(114)에서, 수행되는 하나 이상의 동작에 관한 사용자 피드백이 제공된다. 예로서, 사용자 피드백은 디스플레이, 오디오, 촉각 피드백 및/또는 기타 등등을 포함할 수 있다.
도 5는 본 발명의 일 실시예에 따른 파라미터 계산 방법(150)이다. 파라미터 계산 방법(150)은 예를 들어 도 2에 나타낸 블록(108)에 대응할 수 있다. 파라미터 계산 방법(150)은 일반적으로 일군의 특징들이 수신되는 블록(152)에서 시작한다. 블록(152)에 뒤이어서, 파라미터 계산 방법(150)은 일군의 특징들 내의 특징들의 수가 변했는지 여부에 관하여 판정이 행해지는 블록(154)으로 진행한다. 예를 들어, 사용자가 부가의 손가락을 들어올리거나 놓음으로써 특징들의 수가 변할 수 있다. 다른 제어(예를 들어, 추적, 제스처)를 수행하기 위해 다른 손가락이 필요할 수 있다. 특징들의 수가 변한 경우, 파라미터 계산 방법(150)은 초기 파라미터 값이 계산되는 블록(156)으로 진행한다. 이 수가 동일한 채로 있는 경우, 파라미터 계산 방법(150)은 현재 파라미터 값이 계산되는 블록(158)으로 진행한다. 그 후에, 파라미터 계산 방법(150)은 초기 파라미터 값 및 현재 파라미터 값이 보고되는 블록(160)으로 진행한다. 예로서, 초기 파라미터 값은 점들 간의 평균 초기 거리(즉 Distance(AVG) initial)를 포함할 수 있고, 현재 파라미터 값은 점들 간의 평균 현재 거리(즉 Distance(AVG) current)를 포함할 수 있다. 이들은, 컴퓨터 시스템의 여러가지 측면들을 제어하기 위해, 차후의 단계들에서 비교될 수 있다.
상기 방법들 및 기술들은 임의의 수의 GUI 인터페이스 객체 및 동작을 구현하는 데 사용될 수 있다. 예를 들어, 윈도우를 크기조정하고, 디스플레이를 스크 롤하며, 객체를 회전시키고, 디스플레이된 뷰를 줌인 또는 줌아웃하며, 텍스트 또는 다른 객체를 삭제 또는 삽입시키고, 기타 등등을 하기 위한 사용자 명령을 검출 및 실행하기 위해 제스처가 생성될 수 있다. 제스처는 또한 컴퓨팅 시스템과의 사람 상호작용을 용이하게 해주기 위해 생성될 수 있는 볼륨 손잡이, 스위치, 슬라이더, 핸들, 손잡이(knob), 도어 및 다른 위젯 등의 가상 제어 인터페이스를 호출 및 조작하기 위해 사용될 수 있다.
상기 방법들을 사용하는 예를 들기 위해, 도 6a 내지 도 6g를 참조하면, 태블릿 PC(175)의 디스플레이(174)의 GUI 인터페이스(172) 상의 가상 볼륨 손잡이(170)를 제어하기 위한 회전 제스처에 대해 기술한다. 손잡이(170)를 작동시키기 위해, 사용자는 그의 손가락들(176)을 다중점 터치 스크린(178) 상에 올려놓는다. 가상 컨트롤 손잡이는 이미 디스플레이되어 있을 수 있거나, 또는 셋 다운 시의 특정의 수, 배향 또는 프로파일의 손가락들, 또는 그 직후의 손가락들의 움직임, 또는 사용자의 상호작용의 이들 및 다른 특성의 어떤 조합이 디스플레이될 가상 컨트롤 손잡이를 호출할 수 있다. 어느 경우든지, 컴퓨팅 시스템은 손가락 그룹을 가상 컨트롤 손잡이와 연관시키며, 사용자가 가상 볼륨 손잡이를 사용하고자 하는 것으로 판정을 한다. 이 연관은 또한 입력 시의 컴퓨팅 장치의 모드 또는 현재 상태에 부분적으로 기초할 수 있다. 예를 들어, 동일한 제스처가, 다른 대안으로서, 노래가 현재 컴퓨팅 장치 상에서 재생되고 있는 경우 볼륨 손잡이 제스처로서 해석될 수 있거나, 또는 객체 편집 애플리케이션이 실행되고 있는 경우 회전 명령으로서 해석될 수 있다. 예를 들어, 청각 또는 촉각 피드백을 비롯하여, 다른 사용자 피드백이 제공될 수 있다.
손잡이(170)가 도 6a에 나타낸 바와 같이 디스플레이될 때, 사용자의 손가락(176)은 손잡이(170)가 실제의 손잡이 또는 다이얼인 것처럼 그 손잡이 근방에 위치될 수 있고, 그 후에 손잡이(170)를 돌리는 것을 시뮬레이션하기 위해 손잡이(170) 근방에서 회전될 수 있다. 다시 말하면, 손잡이(170)가 "회전"될 때, 예를 들어, 클릭하는 소리 형태의 청각 피드백 또는 진동 형태의 촉각 피드백이 제공될 수 있다. 사용자는 또한 그의 다른 손을 사용하여 태블릿 PC(175)를 잡고 있을 수 있다.
도 6b에 도시한 바와 같이, 다중점 터치 스크린(178)은 적어도 한쌍의 이미지를 검출한다. 상세하게는, 제1 이미지(180)는 셋 다운 시에 생성되고, 적어도 하나의 다른 이미지(182)는 손가락(176)이 회전될 때 생성된다. 단지 2개의 이미지만이 도시되어 있지만, 대부분의 경우에, 이들 2개의 이미지 사이에 더 많은 이미지가 증가하게 된다. 각각의 이미지는 특정의 순간에 터치 스크린과 접촉하고 있는 손가락의 프로파일을 나타낸다. 이들 이미지는 또한 터치 이미지라고 할 수 있다. 용어 "이미지"가 그 프로파일이 스크린(178) 상에 디스플레이되어 있음을 의미하지 않는다는 것을 잘 알 것이다(오히려 터치 감지 장치에 의해 촬상된 것임). 또한, 유의할 점은 용어 "이미지"가 사용되고 있지만, 데이터가 다양한 때에 터치 평면을 나타내는 다른 형태로 되어 있을 수 있다는 것이다.
도 6c에 나타낸 바와 같이, 이미지(180, 182) 각각은 특징들(184)의 집합체로 변환된다. 각각의 특징(184)은, 손잡이(170)를 둘러싸고 있는 손가락들(176) 각각의 끝은 물론, 태블릿 PC(175)를 잡고 있기 위해 사용되는 다른쪽 손(177)의 엄지손가락으로부터와 같이, 특정의 터치와 연관되어 있다.
도 6d에 나타낸 바와 같이, 특징들(184)은 분류되고, 즉 각각의 손가락/엄지손가락이 식별되고, 이미지(180, 182) 각각에 대해 그룹화된다. 이 특정의 경우에서, 손잡이(170)와 연관된 특징들(184A)은 그룹(188)을 형성하기 위해 함께 그룹화되고, 엄지손가락과 연관된 특징(184B)은 필터링 제거된다. 대안의 구성에서, 엄지손가락 특징(184B)은, 예를 들어 입력 또는 시스템의 동작 모드를 변경하기 위하여 또는 다른 제스처, 예를 들어, 화면 상에서 엄지손가락(또는 다른 손가락)의 영역에 디스플레이되는 이퀄라이저 슬라이더와 연관된 슬라이더 제스처를 구현하기 위해, 그것만으로(또는 다른 그룹 내의) 별개의 특징으로서 취급된다.
도 6e에 나타낸 바와 같이, 각각의 이미지(180, 182)에 대해 특징 그룹(188)의 주요 파라미터가 계산된다. 제1 이미지(180)와 연관된 주요 파라미터는 초기 상태를 나타내고, 제2 이미지(182)의 주요 파라미터는 현재 상태를 나타낸다.
또한, 도 6e에 나타낸 바와 같이, 손잡이(170)는 손잡이(170)에 근접함으로 인해 특징 그룹(188)과 연관된 UI 요소이다. 그 다음에, 도 6f에 나타낸 바와 같이, 회전 벡터, 즉 초기 상태에서 현재 상태로 시계 방향으로 5도 회전된 특징들의 그룹을 구하기 위해 각각의 이미지(180, 182)로부터의 특징 그룹(188)의 주요 파라미터 값이 비교된다. 도 6f에서, 초기 특징 그룹(이미지(180))은 점선으로 나타내어져 있는 반면, 현재 특징 그룹(이미지(182))은 실선으로 나타내어져 있다.
도 6g에 나타낸 바와 같이, 회전 벡터에 기초하여, 태블릿 PC(175)의 스피 커(192)는 손가락(176)의 회전량에 따라 그의 출력을 증가(또는 감소)시킨다, 즉 5도의 회전에 기초하여 5%만큼 볼륨을 증가시킨다. 태블릿 PC의 디스플레이(174)는 또한 손가락(176)의 회전량에 따라 손잡이(170)의 회전을 조절할 수 있다, 즉 손잡이(170)의 위치가 5도 회전된다. 대부분의 경우에, 손잡이의 회전은 손가락의 회전과 동시에 일어난다, 즉 손가락의 1도 회전마다, 손잡이가 1도 회전된다. 본질적으로, 가상 컨트롤 손잡이는 화면 상에서 일어나는 제스처를 따른다. 또한, 태블릿 PC의 오디오 유닛(194)은 각 단위의 회전에 대해 클릭하는 소리를 제공할 수 있다, 예를 들어 5도의 회전에 기초하여 5번의 클릭을 제공할 수 있다. 또한, 태블릿 PC(175)의 촉각 유닛(196)은 각각의 클릭에 대해 어떤 양의 진동 또는 다른 촉각 피드백을 제공함으로써 실제 손잡이를 시뮬레이션할 수 있다.
유의할 점은 부가의 제스처가 가상 컨트롤 손잡이 제스처와 동시에 수행될 수 있다는 것이다. 예를 들어, 2개 이상의 가상 컨트롤 손잡이가 양손을 사용하여 동시에 제어될 수 있다, 즉 각각의 가상 컨트롤 손잡이에 대해 하나의 손을 사용한다. 다른 대안으로서 또는 그에 부가하여, 하나 이상의 슬라이더 바가 가상 컨트롤 손잡이와 동시에 제어될 수 있다, 즉 한쪽 손이 가상 컨트롤 손잡이를 조작하는 반면, 반대쪽 손의 적어도 하나의 손가락, 아마도 2개 이상의 손가락은 적어도 하나의 슬라이더, 아마도 2개 이상의 슬라이더 바, 예를 들어 각각의 손가락에 대한 슬라이더 바를 조작한다.
또한, 유의할 점은, 이 실시예가 가상 컨트롤 손잡이를 사용하여 기술되어 있지만, 다른 실시예에서는, UI 요소가 가상 스크롤 휠일 수 있다는 것이다. 예로 서, 가상 스크롤 휠은 미국 특허 공개 번호 2003/0076303A1, 2003/0076301A1, 2003/0095096A1(이들 모두는 여기에 인용함으로써 그 전체 내용이 본 명세서에 포함됨)에 기술된 것 등의 실제 스크롤 휠과 흡사할 수 있다. 예를 들어, 사용자가 그의 손가락을 가상 스크롤 휠의 표면 상에 올려놓고, 빙빙 돌리는 회전 또는 접선방향의 제스처 움직임을 할 때, 윈도우에 디스플레이된 항목들의 리스트에 대해 스크롤링 동작이 수행될 수 있다.
도 7은 본 발명의 일 실시예에 따른 터치-기반 방법(200)을 나타낸 도면이다. 이 방법은 일반적으로 다중점 감지 장치 상에서 행해지는 사용자 입력이 검출되는 블록(202)에서 시작한다. 사용자 입력은 하나 이상의 터치 입력을 포함하며, 각각의 터치 입력은 고유의 식별자를 갖는다. 블록(202)에 뒤이어서, 터치-기반 방법(200)은 사용자 입력이 하나의 고유 식별자(하나의 터치 입력)를 포함할 때 사용자 입력이 추적 또는 선택으로서 분류되거나 또는 사용자 입력이 적어도 2개의 고유 식별자(2개 이상의 터치 입력)를 포함할 때 제스처 입력으로서 분류되는 블록(204)으로 진행한다. 사용자 입력이 추적 입력으로서 분류되는 경우, 터치-기반 방법(200)은 사용자 입력에 대응하여 추적이 수행되는 블록(206)으로 진행한다. 사용자 입력이 제스처 입력으로서 분류되는 경우, 터치-기반 방법(200)은 사용자 입력에 대응하여 하나 이상의 제스처 제어 동작이 수행되는 블록(208)으로 진행한다. 제스처 제어 동작은 적어도 2개의 고유 식별자로 또는 이들 사이에 일어나는 변화에 적어도 부분적으로 기초한다.
도 8은 본 발명의 일 실시예에 따른 터치-기반 방법(250)을 나타낸 도면이 다. 터치-기반 방법(250)은 일반적으로 터치 감지 표면 상에서의 입력 스트로크 동안에 초기 이미지가 캡처되는 블록(252)에서 시작한다. 블록(252)에 뒤이어서, 터치-기반 방법(250)은 초기 이미지에 기초하여 터치 모드가 판정되는 블록(254)으로 진행한다. 예를 들어, 초기 이미지가 하나의 고유 식별자를 포함하는 경우, 터치 모드는 추적 또는 선택 모드에 대응할 수 있다. 반면에, 그 이미지가 2개 이상의 고유 식별자를 포함하는 경우, 터치 모드는 제스처 모드에 대응할 수 있다. 블록(254)에 뒤이어서, 터치-기반 방법(250)은 터치 감지 표면 상에서의 입력 스트로크 동안에 그 다음 이미지가 캡처되는 블록(256)으로 진행한다. 이미지는 일반적으로 스트로크 동안에 순차적으로 캡처되며, 따라서 복수의 이미지가 스트로크와 연관되어 있을 수 있다. 블록(256)에 뒤이어서, 터치-기반 방법(250)은 초기 이미지의 캡처와 그 다음 이미지의 캡처 사이에서 터치 모드가 변했는지 여부에 관해 판정이 행해지는 블록(258)으로 진행한다. 터치 모드가 변한 경우, 터치-기반 방법(250)은 그 다음 이미지가 초기 이미지로서 설정되는 블록(260)으로 진행하고, 그 후에 블록(254)에서 새로운 초기 이미지에 기초하여 터치 모드가 다시 판정된다. 터치 모드가 동일한 채로 있는 경우, 터치-기반 방법(250)은 초기 이미지 및 그 다음 이미지가 비교되고 이 비교에 기초하여 하나 이상의 제어 신호가 발생되는 블록(262)으로 진행한다.
도 9는 본 발명의 일 실시예에 따른 터치-기반 방법(300)을 나타낸 도면이다. 터치-기반 방법(300)은 GUI 객체가 출력되는 블록(302)에서 시작한다. 예를 들어, 프로세서는 특정의 GUI 객체를 디스플레이하도록 디스플레이에 지시할 수 있 다. 블록(302)에 뒤이어서, 터치-기반 방법(300)은 GUI 객체를 거쳐 제스처 입력이 수신되는 블록(304)으로 진행한다. 예를 들어, 사용자는 터치 스크린의 표면 상에서 제스처 방식으로 또한 디스플레이된 GUI 객체 상에 그의 손가락을 두거나 이동시킬 수 있다. 제스처 입력은 연속적으로 행해지는 하나 이상의 단일 제스처 또는 동시에 행해지는 다수의 제스처를 포함할 수 있다. 제스처들 각각은 일반적으로 특정의 시퀀스, 움직임 또는 그와 연관된 배향을 갖는다. 예를 들어, 제스처는 손가락을 떨어지게 벌리는 것, 손가락을 서로 좁히는 것, 손가락을 회전시키는 것, 손가락을 병진 이동시키는 것, 및/또는 기타 등등을 포함할 수 있다.
블록(304)에 뒤이어서, 터치-기반 방법(300)은 제스처 입력에 기초하여 또한 그에 일치하여 GUI 객체가 수정되는 블록(306)으로 진행한다. '수정된다'는 것은, GUI 객체가 수행되는 특정의 제스처 또는 제스처들에 따라 변한다는 것을 의미한다. '일치하여'라는 것은 그 변화가 거의 제스처 또는 제스처들이 수행되는 동안에 일어난다는 것을 의미한다. 대부분의 경우에, 제스처(들)와 GUI 객체에 일어나는 변화 사이에 일대일 관계가 있으며, 이들은 거의 동시에 일어난다. 본질적으로, GUI 객체는 손가락의 움직임을 따른다. 예를 들어, 손가락을 벌리는 것은 동시에 객체를 확대시킬 수 있고, 손가락을 좁히는 것은 동시에 GUI 객체를 축소시킬 수 있으며, 손가락을 회전시키는 것은 동시에 객체를 회전시킬 수 있고, 손가락을 병진 이동시키는 것은 GUI 객체의 동시적인 패닝 또는 스크롤링을 가능하게 해줄 수 있다.
일 실시예에서, 블록(306)은 어느 GUI 객체가 수행되는 제스처와 연관되어 있는지를 판정하고 그 후에 GUI 객체가 제스처 입력에 따라 변하도록 그 위에 배치된 손가락에 디스플레이된 객체를 로크시키는 단계를 포함할 수 있다. 손가락을 GUI 객체에 로크 또는 연관시킴으로써, GUI 객체는 손가락이 터치 스크린 상에서 하고 있는 것에 따라 그 자신을 연속적으로 조절할 수 있다. 종종, 이 판정 및 로크는 셋 다운 시에, 즉 손가락이 터치 스크린 상에 위치될 때 행해진다.
도 10은 본 발명의 일 실시예에 따른 줌 제스처 방법(350)을 나타낸 도면이다. 줌 제스처는 다중점 터치 스크린 상에서 수행될 수 있다. 줌 제스처 방법(350)은 일반적으로 적어도 제1 손가락 및 제2 손가락의 존재가 터치 감지 표면 상에서 동시에 검출되는 블록(352)에서 시작한다. 적어도 2개의 손가락의 존재는 터치가 하나의 손가락에 기초한 추적 터치라기보다는 오히려 제스처 터치임을 나타내도록 구성되어 있다. 어떤 경우에, 단지 2개의 손가락의 존재는 터치가 제스처 터치임을 나타낸다. 다른 경우에, 3개 이상의 임의의 수의 손가락은 터치가 제스처 터치임을 나타낸다. 실제로, 제스처 터치는 2개, 3개, 4개 또는 그 이상의 손가락이 터치하고 있는지에 상관없이, 또한 그 수가 제스처 동안에 변하더라도, 동작하도록 구성되어 있다, 즉 제스처 동안의 임의의 때에 최소 2개의 손가락만 있으면 된다.
블록(352)에 뒤이어서, 줌 제스처 방법(350)은 적어도 2개의 손가락 간의 거리가 비교되는 블록(354)으로 진행한다. 이 거리는 손가락에서 손가락까지이거나, 각각의 손가락에서, 예를 들어, 중심 등의 어떤 다른 참조점까지일 수 있다. 2개의 손가락 간의 거리가 증가하면(떨어져 벌려지면), 블록(356)에 나타낸 바와 같이 줌인 신호가 발생된다. 2개의 손가락 간의 거리가 감소되면(서로 좁혀지면), 블록(358)에 나타낸 바와 같이 줌아웃 신호가 발생된다. 대부분의 경우에, 손가락의 셋 다운은 그 손가락을 디스플레이되고 있는 특정의 GUI 객체에 연관 또는 로크시킨다. 예를 들어, 터치 감지 표면은 터치 스크린일 수 있고, GUI 객체는 터치 스크린 상에 디스플레이될 수 있다. 이것은 일반적으로 손가락들 중 적어도 하나가 GUI 객체 상에 위치될 때 일어난다. 그 결과, 손가락이 서로 멀어지게 움직이면, GUI 객체의 내장된 기능의 크기를 증가시키기 위해 줌인 신호가 사용될 수 있고, 손가락들이 서로 조여져 있는 경우, 객체에서의 내장된 기능의 크기를 감소시키기 위해 줌아웃 신호가 사용될 수 있다. 줌잉은 일반적으로 디스플레이의 주변부, 윈도우의 주변부, GUI 객체의 가장자리, 및/또는 기타 등등의 미리 정해진 경계 내에서 일어난다. 내장된 기능은 복수의 레이어 상에 형성될 수 있으며, 각각의 레이어는 서로 다른 레벨의 줌을 나타낸다. 대부분의 경우에, 줌잉의 양은 2개의 객체 간의 거리에 따라 변한다. 게다가, 줌잉은 일반적으로 객체의 움직임과 거의 동시에 일어날 수 있다. 예를 들어, 손가락이 떨어져 벌려지거나 서로 좁혀질 때, 객체는 동시에 줌인 또는 줌아웃된다. 이 방법이 줌잉에 관한 것이지만, 유의할 점은 이 방법이 확대 또는 축소에도 사용될 수 있다는 것이다. 줌 제스처 방법(350)은 출판, 사진, 및 드로잉 프로그램 등의 그래픽 프로그램에서 특히 유용할 수 있다. 게다가, 줌잉은 카메라 등의 주변 장치를 제어하는 데 사용될 수 있다, 즉 손가락이 떨어져 벌려질 때, 카메라는 줌아웃되고, 손가락이 좁혀질 때, 카메라는 줌인된다.
도 11a 내지 도 11h는 상기한 방법을 사용하는 줌잉 시퀀스를 나타낸 것이다. 도 11a는 줌잉될 수 있는 내장된 레벨을 갖는 북아메리카의 지도 형태의 GUI 객체(364)를 제공하는 디스플레이를 나타낸 것이다. 어떤 경우에, 도시된 바와 같이, GUI 객체는 GUI 객체(364)의 경계를 형성하는 윈도우 내부에 위치되어 있다. 도 11b는 사용자가 북아메리카(368), 상세하게는 미국(370), 보다 상세하게는 캘리포니아(372) 지역 상에 그의 손가락(366)을 위치시키는 것을 나타낸 것이다. 캘리포니아(372) 상에서 줌인하기 위해, 도 11c에 나타낸 바와 같이, 사용자는 그의 손가락(366)을 떨어지게 벌리기 시작한다. 손가락(366)이 더 떨어지게 벌려짐에 따라(거리가 증가함에 따라), 지도는 북캘리포니아(374) 상에서 북캘리포니아(374)의 특정 지역으로, 이어서 만(Bay) 지역(376)으로, 이어서 반도(378)(예를 들어, 샌프란시스코와 산호세(San Jose) 지역 사이의 지역)로, 또 이어서 샌프란시스코와 산호세 사이에 위치한 산카를로스(San Carlos)시(380)로 더 줌인한다. 산카를로스(380)로부터 다시 북아메리카(368)로 줌아웃하기 위해, 역순으로 상기한 시퀀스를 따라 손가락(366)이 다시 서로 좁혀진다.
도 12는 본 발명의 일 실시예에 따른 팬 방법(400)을 나타낸 도면이다. 팬 제스처는 다중점 터치 스크린 상에서 수행될 수 있다. 팬 방법(400)은 일반적으로 적어도 제1 객체 및 제2 객체의 존재가 터치 감지 표면 상에서 동시에 검출되는 블록(402)에서 시작한다. 적어도 2개의 손가락의 존재는 그 터치가 하나의 손가락에 기초한 추적이라기 보다는 오히려 제스처 터치임을 나타내도록 구성되어 있다. 어떤 경우에, 단지 2개의 손가락의 존재는 그 터치가 제스처 터치임을 나타낸다. 다 른 경우에, 3개 이상의 임의의 수의 손가락은 그 터치가 제스처 터치임을 나타낸다. 실제로, 제스처 터치는 2개, 3개, 4개 또는 그 이상의 손가락이 터치하고 있는지에 상관없이 또한 그 수가 제스처 동안에 변하더라도 동작하도록 구성될 수 있다, 즉 최소 2개의 손가락만 있으면 된다. 블록(402)에 뒤이어서, 팬 방법(400)은 2개의 객체가 터치 스크린을 가로질러 함께 이동할 때 그 객체들의 위치가 모니터링되는 블록(404)으로 진행한다. 블록(404)에 뒤이어서, 팬 방법(400)은 2개의 객체의 위치가 초기 위치에 대해 변할 때 팬 신호가 발생되는 블록(406)으로 진행한다. 대부분의 경우에, 손가락의 셋 다운은 손가락을 터치 스크린 상에 디스플레이된 특정의 GUI 객체에 연관 또는 로크시킨다. 일반적으로, 손가락 중 적어도 하나가 GUI 객체 상의 이미지 상에 위치될 때이다. 그 결과, 손가락이 터치 스크린을 가로질러 함께 이동될 때, 손가락의 방향으로 이미지를 병진 이동시키기 위해 팬 신호가 사용될 수 있다. 대부분의 경우에서, 패닝의 양은 2개의 객체가 이동하는 거리에 따라 다르다. 게다가, 패닝은 일반적으로 객체의 움직임과 거의 동시에 일어날 수 있다. 예를 들어, 손가락이 움직임에 따라, 객체는 동시에 손가락과 함께 움직인다.
도 13a 내지 도 13d는 상기한 팬 방법(400)에 기초한 패닝 시퀀스를 나타낸 것이다. 도 11의 지도를 사용하여, 도 13a는 사용자가 이 지도 상에 그의 손가락(366)을 위치시키는 것을 나타낸 것이다. 셋 다운 시에, 손가락(366)은 지도에 로크된다. 도 13b에 나타낸 바와 같이, 손가락(366)이 수직으로 위쪽으로 이동될 때, 전체 지도(364)가 위쪽으로 이동함으로써 지도(364)의 이전에 보여진 부분이 뷰잉 영역 밖에 배치되고 지도(364)의 보이지 않은 부분이 뷰잉 영역 내부에 배치되게 된다. 도 13c에 나타낸 바와 같이, 손가락(366)이 수평으로 옆으로 이동될 때, 전체 지도(364)는 옆으로 이동되며, 그에 의해 지도(364)의 이전에 보인 부분이 뷰잉 영역 밖에 배치되고 지도의 보이지 않은 부분이 뷰잉 영역 내에 배치되게 된다. 도 13d에 나타낸 바와 같이, 손가락(366)이 대각선 방향으로 이동될 때, 전체 지도(364)는 대각선 방향으로 이동되고, 그에 의해 지도(364)의 이전에 보인 부분이 뷰잉 영역 밖에 배치되고 지도의 보이지 않은 부분이 뷰잉 영역 내에 배치되게 된다. 잘 알고 있는 바와 같이, 지도(364)의 움직임은 손가락(366)의 움직임을 따라간다. 이 프로세스는 테이블을 따라 종이를 슬라이딩시키는 것과 유사하다. 손가락이 종이에 가하는 압력은 그 종이를 손가락에 로크시키고, 손가락이 테이블을 가로질러 슬라이드될 때, 그 종이는 그와 함께 이동된다.
도 14는 본 발명의 일 실시예에 따른 회전 방법(450)을 나타낸 도면이다. 이 회전 제스처는 다중점 터치 스크린 상에서 수행될 수 있다. 회전 방법(450)은 일반적으로 제1 객체 및 제2 객체의 존재가 동시에 검출되는 블록(452)에서 시작한다. 적어도 2개의 손가락의 존재는 그 터치가 하나의 손가락에 기초한 추적 터치라기보다는 오히려 제스처 터치임을 나타내도록 구성되어 있다. 어떤 경우에, 단지 2개의 손가락의 존재는 그 터치가 제스처 터치임을 나타낸다. 다른 경우에, 3개 이상의 임의의 수의 손가락은 그 터치가 제스터 터치임을 나타낸다. 실제로, 제스처 터치는 2개, 3개, 4개 또는 그 이상의 손가락이 터치하고 있더라도, 심지어 그 수가 제스처 도중에 변하더라도 동작하도록 구성될 수 있다, 즉 최소 2개의 손 가락만 있으면 된다.
블록(452)에 뒤이어서, 회전 방법(450)은 각각의 손가락의 각도가 설정되는 블록(454)으로 진행한다. 이 각도는 일반적으로 참조점에 대해 판정된다. 블록(454)에 뒤이어서, 회전 방법(450)은 객체들 중 적어도 하나의 각도가 참조점에 대해 변할 때 회전 신호가 발생되는 블록(456)으로 진행한다. 대부분의 경우에, 손가락의 셋 다운은 그 손가락을 터치 스크린 상에 디스플레이되어 있는 특정의 GUI 객체에 연관 또는 로크시킨다. 일반적으로, 손가락들 중 적어도 하나가 GUI 객체 상의 이미지 상부에 위치될 때, GUI 객체는 그 손가락과 연관되거나 그에 로크된다. 그 결과, 손가락이 회전될 때, 손가락 회전의 방향으로 (예를 들어, 시계 방향으로, 시계 반대 방향으로) 객체를 회전시키는 데 회전 신호가 사용될 수 있다. 대부분의 경우에, 객체 회전의 양은 손가락 회전의 양에 따라 변한다, 즉 손가락이 5도 움직이면, 객체도 그렇게 한다. 게다가, 회전은 일반적으로 손가락의 움직임과 거의 동시에 일어날 수 있다. 예를 들어, 손가락이 회전할 때, 객체는 동시에 손가락과 함께 회전한다.
도 15a 내지 도 15c는 상기한 방법에 기초한 회전 시퀀스를 나타낸 것이다. 도 11의 지도를 사용하여, 도 15a는 사용자가 지도(364) 상에 그의 손가락(366)을 위치시키는 것을 나타낸 것이다. 셋 다운 시에, 손가락(366)은 지도(364)에 로크된다. 도 15b에 나타낸 바와 같이, 손가락(366)이 시계 방향으로 회전될 때, 전체 지도(364)는 회전하는 손가락(366)을 따라 시계 방향으로 회전된다. 도 15c에 도시한 바와 같이, 손가락(366)이 시계 반대 방향으로 회전될 때, 전체 지도(364)는 회전하는 손가락(366)에 따라 시계 반대 방향으로 회전된다.
유의할 점은 도 10 내지 도 15에 나타낸 방법들이 동일한 제스처 스트로크를 사용하여 구현될 수 있다는 것이다. 즉, 줌잉, 회전, 및 패닝은 전부가, 벌려지는, 회전하는 또한 슬라이딩하는 손가락을 포함할 수 있는, 제스처 스트로크 동안에 수행될 수 있다. 예를 들어, 적어도 2개의 손가락의 셋 다운 시에, 디스플레이된 객체(지도)는 이 2개의 손가락에 연관 또는 로크된다. 줌잉하기 위해, 사용자는 그의 손가락을 벌리거나 좁힐 수 있다. 회전하기 위해, 사용자는 그의 손가락을 회전시킬 수 있다. 패닝하기 위해, 사용자는 그의 손가락을 슬라이드시킬 수 있다. 이들 동작 각각은 연속적인 움직임으로 동시에 행해질 수 있다. 예를 들어, 사용자는, 터치 스크린을 가로질러 그의 손가락을 회전 및 슬라이딩하면서, 그의 손가락을 벌리거나 좁힐 수 있다. 다른 대안으로서, 사용자는 제스처 스트로크를 리셋시킬 필요없이 이들 움직임 각각을 분할할 수 있다. 예를 들어, 사용자는 먼저 그의 손가락을 벌리고, 이어서 그의 손가락을 회전시키며, 이어서 그의 손가락을 좁히고, 이어서 그의 손가락을 슬라이딩시키며, 기타 등등을 할 수 있다.
도 16은 본 발명의 일 실시예에 따른 GUI 동작 방법(500)을 나타낸 도면이다. GUI 동작 방법(500)은 GUI에서의 플로팅 컨트롤을 기동시키도록 구성되어 있다. GUI 동작 방법(500)은 일반적으로 손가락 또는 엄지손가락 등의 객체의 존재가 검출되는 블록(502)에서 시작한다. 이것은 예를 들어 터치 스크린을 사용하여 달성될 수 있다. 블록(502)에 뒤이어서, GUI 동작 방법(500)은 객체가 인식되는(객체의 정체가 밝혀지는) 블록(504)으로 진행한다. 객체가 복수의 객체 중에서 인식될 수 있다. 예를 들어, 상기 도 2의 블록(104)을 참조하기 바란다.
블록(504)에 뒤이어서, GUI 동작 방법(500)은 객체의 근방에 이미지가 생성되는 블록(506)으로 진행한다. 이 이미지는 일반적으로 인식된 객체에 기초한다. 이 이미지는 윈도우, 필드, 대화상자, 메뉴, 아이콘, 버튼, 커서, 스크롤 바, 기타 등등을 포함할 수 있다. 어떤 경우에, 사용자는 함수 및 작업을 기동시키기 위해 이미지(또는 그 안에 내장된 기능)를 선택하여 활성화시킬 수 있다. 예로서, 이 이미지는 사용자 인터페이스 요소 또는 사용자 인터페이스 요소들의 그룹(예를 들어, 윈도우의 열기, 닫기, 최대화 또는 최소화를 행하는 하나 이상의 버튼)일 수 있다. 이 이미지는 또한 선택될 때 열리는 특정의 프로그램 또는 파일을 기동시키는 하나 이상의 아이콘일 수 있다. 이 이미지는 게다가 비대화형 텍스트 및 그래픽에 대응할 수 있다. 대부분의 경우에, 객체가 검출되는 한 이미지가 디스플레이되거나, 어떤 사전 설정된 양의 시간 동안 이미지가 디스플레이될 수 있다, 즉 어떤 시간 후에 그 이미지가 타임아웃되고 제거된다.
한 특정의 실시예에서, 이 이미지는 사용자에 의해 선택될 수 있는 하나 이상의 제어 옵션을 포함한다. 이 제어 옵션은 여러가지 작업을 구현하기 위한 하나 이상의 컨트롤 버튼을 포함할 수 있다. 예를 들어, 이 제어 옵션 박스는 예를 들어 재생, 일시정지, 탐색 및 메뉴 등의 음악 청취 컨트롤 버튼을 포함할 수 있다.
도 17a 내지 도 17e는 상기한 방법을 사용하는 플로팅 컨트롤 시퀀스를 나타낸 것이다. 도 17a에 나타낸 바와 같이, 사용자(510)는 태블릿 PC(512)를 사용하고 있으며, 따라서 한쪽 손(514)으로 태블릿 PC(512)를 잡고 있으면서 다른쪽 손(516)으로 내비게이션(예를 들어, 추적, 제스처)을 하고 있다. 사용자가 태블릿 PC(512)를 잡고 있는 것을 클로즈업한 것인 도 17b에 나타낸 바와 같이, 잡고 있는 손(514)의 엄지손가락의 일부분이 터치 스크린(520) 상에 위치하고 있다. 도 17c에 나타낸 바와 같이, 태블릿 PC(512)는 엄지손가락을 인식하고 엄지손가락에 인접하여 컨트롤 박스(522)를 디스플레이한다. 이 컨트롤 박스(522)는 태블릿 PC(512)에서 작업을 개시하기 위해 사용자의 엄지손가락에 의해 선택될 수 있는 여러가지 버튼(524)을 포함한다. 도 17d에 도시한 바와 같이, 태블릿 PC(512)를 잡고 있으면서, 엄지손가락을 버튼들(524) 중 하나 상으로 뻗고 그 다음에 태핑함으로써 버튼(524)과 연관된 작업을 선택할 수 있다. 예로서, 이 작업은 프로그램을 기동시키는 것 또는 네트워크에 액세스하는 것 또는 장치의 동작 모드를 변경시키는 것과 연관될 수 있다. 컨트롤 박스(522) 및 버튼(524)은, 예를 들어 사용자의 다른쪽 손의 손가락으로 행해진 동일한 제스처가 버튼(524) 중 어느 것이 선택되었는지에 따라 다수의 의미를 가질 수 있도록, 터치 스크린(520)의 입력 모드를 변경하는 데 사용될 수 있다. 도 17e에 도시한 바와 같이, 엄지손가락이 터치 스크린(520)으로부터 멀리 이동될 때, 컨트롤 박스(522)는 타임아웃되어 사라질 수 있다. 다른 대안으로서, 컨트롤 박스는 종래의 닫기 아이콘 또는 버튼을 사용하여 닫힐 수 있다.
도 18은 본 발명의 일 실시예에 따른 GUI 동작 방법(550)을 나타낸 도면이다. GUI 동작 방법(550)은 타겟의 줌잉을 개시하도록 구성되어 있다. GUI 동작 방법(550)은 일반적으로 컨트롤 박스 GUI 요소가 디스플레이되는 블록(552)에서 시작된다. 이 컨트롤 박스는 얼마간 서로 가깝고 또 동작을 수행하는 데 사용될 수 있는 하나 이상의 컨트롤 버튼을 포함한다. 이 컨트롤 박스는, 예를 들어, 최대화, 최소화, 닫기, 기타 등등의 컨트롤 버튼을 포함할 수 있다. 블록(552)에 뒤이어서, GUI 동작 방법(550)은 컨트롤 박스 또는 컨트롤 버튼들 중 하나 상에서 객체의 존재가 검출될 때 어떤 기간 동안 컨트롤 박스가 확대되는 또는 컨트롤 버튼들 중 적어도 하나가 확대되는 블록(554)으로 진행한다. 컨트롤 박스가 확대되어 있는 경우에, 컨트롤 버튼 각각이 확대되고 그에 따라 그의 선택이 훨씬 더 쉽게 된다. 컨트롤 버튼만이 확대되어 있는 경우, 사용자는 이것이 정확한 버튼인지 여부를 결정하고, 그러한 경우 그 확대된 컨트롤 버튼을 선택하거나, 또는 적절한 컨트롤 버튼이 제공되도록 그 프로세스를 재시작한다. 대부분의 경우에, 컨트롤 버튼의 크기는, 이들 버튼이 객체에 의해 쉽게 선택될 수 있도록, 손가락의 크기에 대응한다. 블록(554)에 뒤이어서, GUI 동작 방법(550)은 확대된 컨트롤 버튼 중 하나 상에서 객체의 존재가 검출될 때 선택된 컨트롤 버튼과 연관된 제어 신호가 발생되는 블록(556)으로 진행한다.
도 19a 내지 도 19d는 상기한 GUI 동작 방법(550)을 사용하는 타겟 줌잉 시퀀스를 나타낸 것이다. 도 19a에 나타낸 바와 같이, 사용자(510)는 그의 손가락(576)을 컨트롤 박스(578) 상에 올려놓는다. 그 안에 포함되어 있는 컨트롤 박스(578)의 버튼들(580)이 손가락(576)보다 작고 또 서로 가깝게 위치되어 있기 때문에, 사용자(510)가, 아마도 바람직하지 않은 버튼(580), 예를 들어 원하는 버튼에 인접한 버튼을 누르지 않고, 직접 선택을 하는 것이 어렵다. 예로서, 손가락(576)은 버튼들(580) 중 2개 이상을 덮을 수 있다. 도 19b에 나타낸 바와 같이, 사용자가 그의 엄지손가락을 컨트롤 박스 상에 놓을 때 그 안에 포함된 버튼(580)을 포함하여 컨트롤 박스(578)의 적어도 일부분이 확대된다. 도 19c에 나타낸 바와 같이, 컨트롤 박스가 그의 확대된 상태에 도달하면, 사용자는, 이제 엄지손가락의 크기에 더 가까운, 확대된 버튼들 중 하나를 선택할 수 있다. 예로서, 사용자는 원하는 컨트롤 버튼 상에서 태핑할 수 있다. 도 19d에 나타낸 바와 같이, 컨트롤 박스는, 버튼이 선택된 후에 또는 선택이 행해지지 않은 미리 정해진 기간 후에(예를 들어, 타임아웃 후에) 또는 사용자가 그의 손가락을 컨트롤 박스로부터 멀리 이동시킬 때, 그의 초기 크기로 축소된다.
도 20은 본 발명의 일 실시예에 따른 GUI 동작 방법(600)을 나타낸 도면이다. GUI 동작 방법(600)은 페이지 넘기기를 개시하도록 구성되어 있다. GUI 동작 방법(600)은 일반적으로 다수의 페이지 중의 페이지가 GUI에 디스플레이되는 블록(602)에서 시작한다. 예로서, 이들 페이지는 전자책(electronic book)과 연관되어 있을 수 있다. 블록(602)에 뒤이어서, GUI 동작 방법(600)은 페이지 상의 미리 정해진 영역에서 객체(또는 객체들)의 존재가 검출되는 블록(604)으로 진행한다. 이 미리 정해진 영역은, 예를 들어, 페이지 번호가 디스플레이되는 영역에 대응한다. 블록(604)에 뒤이어서, GUI 동작 방법(600)은 미리 정해진 영역에서 객체(또는 객체들)가 병진 이동될 때 페이지 넘김 신호가 발생되는 블록(606)으로 진행한다. 이 병진 운동은 실제의 종이 제본 책에서 손가락이 페이지를 넘기는 것을 시뮬레이션하도록 구성되어 있다. 병진 운동의 방향은 페이지의 리스트에서 다음 페이지로 갈지 이전 페이지로 갈지를 나타낸다. 예를 들어, 손가락이 우측에서 좌측 으로 지나갈 때, 한 페이지 뒤로 신호가 발생되고, 손가락이 좌측에서 우측으로 지나갈 때, 한 페이지 위로 신호가 발생된다. 이 GUI 동작 방법(600)은 몇가지 방식으로 개선될 수 있다. 예를 들어, 다수의 손가락이 지나가는 경우, 이것은 한 페이지를 넘는 페이지 넘김 신호를 생성할 수 있다. 예를 들어, 2개 손가락 지나감은 2 페이지 넘김에 해당하고, 3개 손가락 지나감은 3 페이지 넘김에 해당하며, 이하 마찬가지이다. 또는, 2개 손가락 지나감은 10 페이지 넘김에 해당하고, 3개 손가락 지나감은 50 페이지 넘김에 해당하며, 이하 마찬가지이다.
도 21a 내지 도 21d는 상기한 GUI 동작 방법(600)을 사용하는 페이지 넘김 시퀀스를 나타낸 것이다. 사용자(510)가 태블릿 PC(512)를 잡고 있는 것의 클로즈업인 도 21a에 나타낸 바와 같이, 사용자는 페이지(630)의 좌측으로의 방향으로 그의 손가락이 페이지 번호 상을 지나가게 한다. 도 21b에 나타낸 바와 같이, 태블릿 PC(512)는 페이지 번호의 영역에서 이 지나감 및 지나감의 방향을 인식하고, 따라서 태블릿 PC(512)는 일군의 페이지들에서 그 다음 페이지를 디스플레이한다. 이것은 그 일군의 페이지 전체에 걸쳐 지나가기 위해 반복하여 수행될 수 있다. 도 21c에 나타낸 바와 같이, 사용자는 그의 손가락(576)이 페이지 번호 상을 페이지(630)의 우측으로의 방향으로 지나가게 한다. 도 21d에 도시한 바와 같이, 태블릿 PC(512)는 페이지 번호의 영역에서 이 지나감 및 이 지나감의 방향을 인식하고, 따라서 태블릿 PC(512)는 일군의 페이지에서 이전 페이지를 디스플레이하다. 이것은 일군의 페이지 전체에 걸쳐 지나가기 위해 반복하여 수행될 수 있다.
도 22는 본 발명의 일 실시예에 따른 GUI 동작 방법(650)을 나타낸 도면이 다. 이 GUI 동작 방법(650)은 일반적으로 스크롤링 또는 패닝 동작 동안에 관성을 기동시키도록 구성되어 있다. 관성은 일반적으로 정지해 있는 물체가 계속 정지해 있으려는 경향 또는 움직이는 물체가, 외력에 의해 방해되지 않는 한, 계속 직선으로 움직이려는 경향으로 정의된다. 이 특정의 실시예에서, GUI 또는 그의 어떤 일부분은, 움직임의 변화율에 대한 그의 저항인, 관성 속성과 연관되어 있다. 높은 관성 특성을 갖는 GUI에 있어서, GUI의 가속도는 주어진 입력에 대해 작게 된다. 반면에, GUI가 낮은 관성 특성을 갖는 경우, 가속도는 주어진 입력에 대해 크게 된다.
GUI 동작 방법(650)은 일반적으로 그래픽 이미지가 GUI 상에 디스플레이되는 블록(652)에서 시작한다. 블록(652)에 뒤이어서, GUI 동작 방법(650)은 터치 감지 표면 상에서의 스크롤링 또는 패닝 스트로크가 검출되는 블록(654)으로 진행한다. 예로서, 이 스트로크는 직선 또는 회전 스트로크일 수 있다. 직선 스트로크 동안에, 스크롤링 또는 패닝의 방향은 일반적으로 스트로크의 방향을 따라간다. 회전 스트로크(도 6 참조) 동안에, 회전 스트로크는 일반적으로, 시계 방향 움직임이 수직 상방에 대응할 수 있고 시계 반대 방향 움직임이 수직 하방에 대응할 수 있는 경우, 직선 입력으로 변환된다. 블록(654)에 뒤이어서, 프로세스 흐름은 스크롤링 또는 패닝 스트로크의 속도 및 방향이 결정되는 블록(656)으로 진행한다. 블록(656)에 뒤이어서, GUI 동작 방법(650)은 스크롤링 또는 패닝 스트로크의 속도 및 방향은 물론 연관된 관성 특성에 따라 이미지가 이동되는 블록(658)으로 진행한다. 블록(658)에 뒤이어서, GUI 동작 방법(650)은 패닝 또는 스크롤링 스트로크가 더 이상 검출되지 않을 때에도 이미지의 움직임이 계속되는 블록(660)으로 진행한다. 예를 들어, 사용자가 그의 손가락을 터치 감지 표면으로부터 들어올릴 때, 스크롤링 또는 패닝 스트로크가 여전히 행해지고 있는 것처럼 스크롤링 또는 패닝 기능이 계속된다. 어떤 경우에, 어떤 브레이킹(정지 또는 감속) 컨트롤이 수행될 때까지 이미지의 움직임이 무한히 계속된다. 이 특정의 방법은 중력가속도 0을 시뮬레이션한다. 다른 경우들에, 이미지의 움직임이 연관된 관성 GUI 동작 방법(650)에 따라 감속된다. 비유적으로 말하면, 이미지는 종이가 책상위를 움직이는 것에 대응할 수 있다. 종이를 이동시키기 위해, 사용자는 원하는 방향으로 종이에 힘을 가한다. 사용자가 종이에서 그의 손가락을 들어올릴 때, 종이는 어떤 기간 동안 계속하여 원하는 방향으로 책상위를 따라 슬라이딩한다. 손가락을 들어올린 후에 종이가 슬라이딩하는 양은 일반적으로, 그 중에서도 특히, 그의 질량, 손가락에 의해 가해지는 힘, 종이와 책상면 간에 발견되는 마찰력, 기타 등등에 의존한다. 잘 알고 있는 바와 같이, 종래에 스크롤링 및 패닝이 구현될 때, 스크롤링 또는 패닝은 손가락이 들어올려질 때 멈춘다. 이와 반대로, 상기한 기술을 사용하면, 손가락이 들어올려질 때 스크롤링 또는 패닝이 계속 움직인다.
GUI 동작 방법(650)은 그 밖에도 블록 A 및 B를 포함할 수 있다. 블록 A에서, 이미지가 객체의 도움 없이 이동하고 있을 때 터치 감지 표면 상에서 손가락 등의 객체가 검출된다(블록 660). 블록 B에서, 객체가 검출될 때 이미지의 움직임이 멈춘다, 즉 새로운 터치가 브레이킹 수단으로서 역할한다. 상기의 비유를 사용하면, 종이가 책상위를 가로질러 슬라이딩하고 있는 동안에, 사용자는 그의 손가락 으로 종이를 누름으로써 그의 움직임을 정지시킨다.
도 23a 내지 도 23d는 상기한 방법을 사용하는 관성 시퀀스를 나타낸 것이다. 도 23a는 미디어 항목(681)의 리스트(680)를 갖는 윈도우(679)를 포함하는 GUI(678)를 제공하는 디스플레이를 나타낸 것이다. 윈도우(679) 및 리스트(680)는, 예를 들어, 미국 캘리포니아 쿠퍼티노 소재의 애플 컴퓨터사에 의해 제작된 iTunes
에서 발견되는 컨트롤 윈도우 및 음악 리스트에 대응할 수 있다. 도 23b에 나타낸 바와 같이, 사용자가 터치 스크린(520) 상에서 그의 손가락 또는 손가락들(576)을 슬라이딩시킬 때, 윈도우 전체에 걸쳐 미디어 항목을 위쪽으로 또는 아래쪽으로 이동시키는 수직 스크롤링이 구현된다. 스크롤링의 방향은 (도시된 바와 같이) 손가락 이동과 동일한 방향을 따라가거나, 반대 방향으로 갈 수 있다. 한 특정의 실시예에서, 리스트로부터 미디어 항목을 선택하기 위해 하나의 손가락이 사용되고, 리스트를 통해 스크롤하기 위해 2개의 손가락이 사용된다.
스크롤링은 일반적으로, 새로운 일련의 데이터(예를 들어, 미디어 항목(681))가 뷰잉 영역에 보여지도록, 디스플레이된 데이터 또는 이미지(예를 들어, 미디어 항목(681))를 디스플레이 화면 상에서 뷰잉 영역을 가로질러 이동시키는 것에 관한 것이다. 대부분의 경우에, 뷰잉 영역이 차있으면, 각각의 새로운 일련의 데이터는 뷰잉 영역의 가장자리에 나타나고, 모든 다른 일련의 데이터는 한 위치 옆으로 이동한다. 즉, 새로운 일련의 데이터가 뷰잉 영역 밖으로 이동하는 각각의 일련의 데이터 대신에 나타난다. 본질적으로, 이들 기능은 사용자가 현재 뷰잉 영역 밖에 있는 연속적인 일련의 데이터를 볼 수 있게 해준다. 대부분의 경우에, 사 용자는, 그의 손가락을 더 높은 속도로 이동시킴으로써, 데이터 세트를 통한 그의 횡단을 가속시킬 수 있다. 리스트를 통한 스크롤링의 예는 미국 특허 공개 번호 2003/0076303A1, 2003/0076301A1, 2003/0095096A1에서 찾아볼 수 있으며, 이들은 여기에 인용함으로써 그 전체 내용이 본 명세서에 포함된다.
도 23c에 나타낸 바와 같이, 심지어 손가락이 터치 스크린으로부터 제거될 때에도 디스플레이된 데이터는 계속하여 이동한다. 이 연속적인 움직임은 적어도 부분적으로 이전의 움직임에 기초한다. 예를 들어, 스크롤링은 동일한 방향 및 속도로 계속될 수 있다. 어떤 경우에, 스크롤링은 시간의 경과에 따라 감속된다, 즉 스크롤링이 궁극적으로 정지하여 그에 따라 정적 리스트를 남겨 놓을 때까지 미디어 항목들을 통한 횡단 속도가 점점 더 느려지게 된다. 예로서, 뷰잉 영역으로 들어온 각각의 새로운 미디어 항목은 점차적으로 속도를 감소시킬 수 있다. 다른 대안으로서 또는 그에 부가하여, 도 23d에 도시한 바와 같이, 디스플레이된 데이터는, 손가락(576)이 다시 터치 스크린(520) 상에 놓여질 때, 움직임을 중단한다. 즉, 손가락을 다시 터치 스크린 상에 놓는 것은, 연속적인 동작 움직임을 정지 또는 감속시키는, 브레이킹을 구현할 수 있다. 이 시퀀스가 수직 스크롤링에 관한 것이지만, 유의할 점은 이것이 제한이 아니며 수평 스크롤링은 물론 패닝도 상기한 방법을 사용하여 수행될 수 있다는 것이다.
도 24는 본 발명의 일 실시예에 따른 GUI 동작 방법(700)을 나타낸 도면이다. 이 방법(700)은 키보드를 시뮬레이션하도록 구성되어 있다. 이 방법은 일반적으로 디스플레이 상에 키보드가 제공되는 블록(702)에서 시작한다. 블록(702)에 뒤이어서, 이 프로세스 흐름은 제1 키 상에서의 제1 객체의 존재 및 제2 키 상에서의 제2 객체의 존재가 터치 스크린 상에서 동시에 검출되는 블록(704)으로 진행한다. 터치 스크린은 디스플레이 상에 또는 그 전방에 배치된다. 예로서, 디스플레이는 LCD일 수 있고, 터치 스크린은 다중점 터치 스크린일 수 있다. 블록(704)에 뒤이어서, 이 프로세스 흐름은 제1 키 상에서 제1 객체가 검출될 때 또 제2 키 상에서 제2 객체가 동시에 검출될 때 하나 이상의 동시적인 제어 신호가 발생되는 블록(706)으로 진행한다.
일 실시예에서, 제1 키 상에서 제1 객체가 검출될 때 또 제2 키 상에서 제2 객체가 동시에 검출될 때 단지 하나의 제어 신호가 발생된다. 예로서, 제1 키는 시프트 키일 수 있고, 제2 키는 심볼 키(예를 들어, 문자, 숫자)일 수 있다. 이와 같이, 키보드는 종래의 키보드처럼 기능한다, 즉 사용자는 심볼, 즉 대문자/소문자를 변경하기 위해 다수의 키를 동시에 선택할 수 있다. 이들 키는 또는 Ctrl 키, Alt 키, Esc 키, 함수키, 및 기타 등등에 대응할 수 있다.
다른 실시예에서, 동시에 일어나는 각각의 작동된 키(키 터치)에 대해 제어 신호가 발생된다. 예를 들어, 일군의 문자가 동시에 타이핑될 수 있다. 어떤 경우에, 키보드 배후에서 실행되는 애플리케이션은 어떤 미리 정해진 기준에 기초하여 문자의 순서를 판정하도록 구성될 수 있다. 예를 들어, 문자들이 엉클어져 있을 수 있지만, 애플리케이션은 스펠링, 용법, 문맥, 기타 등등에 기초하여 문자들의 정확한 순서를 판정할 수 있다.
단지 2개의 키가 기술되어 있지만, 유의할 점은 2개의 키가 제한이 아니며 하나 이상의 제어 신호를 생성하기 위해 2개 이상의 키가 동시에 작동될 수 있다는 것이다. 예를 들어, Ctrl-Alt-Delete 기능이 구현될 수 있거나 더 많은 일군의 문자들이 동시에 타이핑될 수 있다.
도 25a 내지 도 25d는 상기한 방법을 사용하는 키보드 시퀀스를 나타낸 것이다. 도 25a는 키보드 형태의 GUI 객체(730)를 제공하는 디스플레이를 나타낸 것이다. 도 25b에 나타낸 바와 같이, 사용자는 워드 프로세싱 프로그램에 데이터를 입력하기 위해 다중점 터치 스크린(520) 상에서 키보드(730) 상에 그의 손가락(576)을 위치시킨다. 예로서, 사용자는 워드 프로세싱 프로그램에서 소문자 "q"를 생성하기 위해 그의 손가락들 중 하나(576A)를 Q 키 상에 놓을 수 있다. 도 25c에 나타낸 바와 같이, 사용자가 문자가 대문자이어야만 하는 것으로 정하는 경우, 사용자는 하나의 손가락(576B)을 시프트 키 상에 올려놓고 다른 손가락(576A)을 원하는 문자 상에 올려 놓는다(화살표로 나타냄). 도 25d에 나타낸 바와 같이, 계속하여 소문자로 타이핑하기 위해, 사용자는 단지 시프트 키로부터 그의 손가락(576B)을 제거하고 그의 손가락(576A)을 원하는 문자 상에 놓는다(화살표로 나타냄).
도 26은 본 발명의 일 실시예에 따른 GUI 동작 방법(750)을 나타낸 도면이다. 이 방법(750)은 미국 특허 공개 번호 2003/0076303A1, 2003/0076301A1, 2003/0095096A1에 기술된 것 등의 스크롤 휠을 시뮬레이션하도록 구성되어 있으며, 이들 전부는 여기에 인용함으로써 그 전체 내용이 본 명세서에 포함된다. 이 방법은 일반적으로 디스플레이 상에 가상 스크롤 휠이 제공되는 블록(752)에서 시작한다. 어떤 경우에, 가상 스크롤 휠은 그의 중앙에 가상 버튼을 포함할 수 있다. 가상 스크롤 휠은, 예를 들어, 리스트 전체에 걸쳐 스크롤링을 구현하도록 구성되어 있으며, 버튼은, 예를 들어, 리스트에 저장된 항목들 등의 선택을 구현하도록 구성되어 있다. 블록(752)에 뒤이어서, 이 방법은 적어도 하나의 손가락, 어떤 경우에 가상 스크롤 휠 상에서의 제1 손가락 및 제2 손가락 등의 2개 이상의 손가락의 존재가 터치 스크린 상에서 검출되는 블록(754)으로 진행한다. 이 터치 스크린은 디스플레이 상에 또는 그 전방에 배치된다. 예로서, 이 디스플레이는 LCD일 수 있으며, 이 터치 스크린은 다중점 터치 스크린일 수 있다. 블록(754)에 뒤이어서, 이 방법은 가상 스크롤 휠 상에서의 손가락의 초기 위치가 설정되는 블록(756)으로 진행한다. 예로서, 참조점에 대한 손가락의 각도(예를 들어, 12시, 6시, 기타 등등)가 결정될 수 있다. 대부분의 경우에, 손가락(들)의 셋 다운은, 손가락들이 가상 스크롤 휠 상에 배치될 때, 그 손가락들(또는 손가락)을 가상 스크롤 휠에 연관, 링크 또는 로크시킨다.
블록(756)에 뒤이어서, 이 방법(750)은 손가락들의 각도가 참조점에 대해 변할 때 회전 신호가 발생되는 블록(758)으로 진행한다. 예를 들어 복수의 미디어 항목들을 통한 스크롤링, 및 아마도 손가락(들)으로 가상 스크롤 휠을 움직이는 것을 비롯하여 몇가지 동작을 수행하기 위해 이 회전 신호가 사용될 수 있다. 예로서, 신호들의 조합 및 주파수는 미디어 항목들을 통해 셀렉터를 이동시키는 것은 물론 가상 스크롤 휠을 그의 축을 중심으로 이동시키는 데 필요한 거리, 방향 및 속도로 변환될 수 있다. 대부분의 경우에, 스크롤링 및 휠 회전의 양은 손가락 회전의 양에 따라 변한다. 예로서, 손가락들이 5도 움직이면, 휠도 그렇게 한다. 게다가, 휠의 스크롤링 및 회전은 일반적으로 손가락의 움직임과 거의 동시에 일어난다. 예를 들어, 손가락이 회전할 때, 휠의 스크롤링 및 회전 둘다가 동시에 수행된다. 게다가, 요건은 아니지만, 휠의 스크롤링 및 회전의 방향은 일반적으로 손가락 움직임의 방향과 동일하다. 예를 들어, 가상 스크롤 휠은 손가락 회전의 방향으로(예를 들어, 시계 방향, 시계 반대 방향, 기타 등등으로) 회전한다.
어떤 경우에, 상기한 관성의 원리가 가상 스크롤 휠에 적용될 수 있다. 이것들 등의 경우에, 손가락(또는 손가락들 중 하나)이 가상 스크롤 휠로부터 들어올려질 때 가상 스크롤 휠은 계속하여 회전하고 가상 마찰을 통해 서서히 정지한다. 다른 대안으로서 또는 그에 부가하여, 손가락들(또는 제거된 손가락)을 다시 스크롤 휠 상에 놓음으로써 가상 스크롤 휠의 회전을 브레이킹하는 것에 의해 연속적인 회전이 정지될 수 있다.
주목할 점은 회전하는 가상 스크롤 휠이 제한이 아니고, 어떤 경우에 가상 스크롤 휠은 기계적 회전 휠이라기보다는 오히려 터치 표면을 시뮬레이션하기 위해 정지된 채로 있을 수 있다(예를 들어, 손가락으로 회전하지 않음)는 것이다.
도 27a 내지 도 27d는 상기한 방법을 사용하는 가상 스크롤 시퀀스를 나타낸 것이다. 도 27a는 스크롤 휠을 제공하는 디스플레이를 나타낸 것이다. 스크롤 휠은 프로그램의 일부로서 자동적으로 디스플레이될 수 있거나, 특정의 제스처가 수행될 때 디스플레이될 수 있다. 예로서, 음악 프로그램(미국 캘리포니아 쿠퍼티노 소재의 애플 컴퓨터사에 의해 제작된 iTunes
등)의 동작 동안에, 음악 프로그램에서 일반적으로 추적을 위해 사용되는 하나의 손가락이 아니라 오히려 2개의 손가 락이 터치 스크린 상에 놓여질 때, 가상 스크롤 휠은 음악 프로그램의 GUI 상에 나타날 수 있다. 어떤 경우에, 가상 스크롤 휠은 GUI의 미리 정해진 영역 상에 2개의 손가락이 놓여 있을 때만 나타난다. 다른 대안으로서, 가상 스크롤 휠이 나타나는 것은 손가락의 수 이외의 또는 그에 부가한 어떤 것에 기초할 수 있다. 예를 들어, 가상 스크롤 휠은 음악 프로그램이 실행 중에 있을 때 나타나는 어떤 터치에 응답하여 나타날 수 있다.
도 27b에 나타낸 바와 같이, 사용자는 그의 손가락들을 다중점 터치 스크린(520) 상에서 스크롤 휠 상에 위치시킨다. 어떤 지점에서, 이 손가락들은 스크롤 휠에 로크된다. 이것은 예를 들어 셋 다운 시에 일어날 수 있다. 도 27c에 나타낸 바와 같이, 손가락들이 시계 방향으로 회전될 때, 스크롤 휠이 회전하는 손가락을 따라 시계 방향으로 회전된다. 도 27d에 나타낸 바와 같이, 손가락이 시계 반대 방향으로 회전될 때, 가상 스크롤 휠은 회전하는 손가락을 따라 시계 반대 방향으로 회전된다. 다른 대안으로서, 가상 스크롤 휠의 회전은 또한 접선 방향 방식으로 손가락의 직선 운동으로 회전될 수 있다.
도 28은 본 발명의 일 실시예에 따른 사용자 인터페이스 방법(800)을 나타낸 것이다. 이 사용자 인터페이스 방법(800)은, 예를 들어, 디스플레이 및 터치 스크린 등의 터치 감지 입력 장치를 갖는 컴퓨팅 장치 상에서 수행될 수 있다. 이 사용자 인터페이스 방법(800)은 터치가 검출되는 블록(802)에서 시작한다. 이것은, 스타일러스 또는 하나 이상의 손가락 등의 객체가 터치 감지 입력 장치의 터치 감지 표면 상에 놓여질 때, 터치 감지 입력 장치로 달성될 수 있다.
터치가 검출되면, 사용자 인터페이스 방법(800)은 사용자 인터페이스(UI) 모드가 그 터치에 응답하여 판정되는 블록(804)으로 진행한다. 사용자 인터페이스 모드는 광범위하게 변할 수 있다. 사용자 인터페이스 모드는 내비게이션 모드, 스크롤 모드, 데이터 입력 모드, 편집 모드, 제어 모드, 정보 모드, 디스플레이 모드, 기타 등등을 포함할 수 있다. 각각의 모드는 일반적으로 그와 연관된 하나 이상의 GUI 인터페이스 요소를 갖는다. 예로서, 가상 스크롤 휠(예를 들어, 도 27) 또는 슬라이더 바는 스크롤 모드와 연관될 수 있고, 키보드(예를 들어, 도 25) 또는 키패드는 데이터 입력 모드와 연관될 수 있으며, 포맷팅 툴 바 또는 드로잉 툴 바 등의 툴 바는 편집 모드와 연관될 수 있고, 버튼들을 포함하는 컨트롤 패널은 제어 모드와 연관될 수 있으며, 윈도우는 정보 모드와 연관될 수 있고, 기타 등등이 있다.
사용자 인터페이스 모드는 블록(804)에서 예를 들어 컴퓨팅 시스템 상에서 현재 실행 중인 하나 이상의 애플리케이션, 하나 이상의 애플리케이션의 현재 상태 또는 모드, 및/또는 터치와 연관된 터치 특성을 비롯한 하나 이상의 조건에 기초하여 판정될 수 있다. 실제로, 블록(804)에서 사용자 인터페이스 모드를 판정하는 것은 하나 이상의 조건을 모니터링하고 분석하는 단계를 포함할 수 있다.
현재의 애플리케이션은 예를 들어 운영 체제(예를 들어, Mac OS), 워드 프로세싱 프로그램, 스프레드쉬트 프로그램, 드로잉 편집 프로그램, 이미지 편집 프로그램, 게임 프로그램, 사진 관리 프로그램(예를 들어, iPhoto), 음악 관리 프로그램(예를 들어, iTunes), 비디오 편집 프로그램(예를 들어, iMovie), 영화 관리 프 로그램(예를 들어, QuickTime), 음악 편집 프로그램(예를 들어, GarageBand), 인터넷 인터페이스 프로그램 및/또는 기타 등등을 포함할 수 있다.
애플리케이션의 현재 상태 또는 모드는 애플리케이션의 활성 부분(예를 들어, 현재 윈도우 또는 윈도우 내의 윈도우)에 대응할 수 있다. 예를 들어, 음악 관리 프로그램의 활성 부분은 음악 제어 모드, 재생목록 선택 모드, 메뉴 모드, 및/또는 기타 등등에 대응할 수 있다. 게다가, 사진 관리 프로그램의 활성 부분은 사진 브라우징 모드 또는 사진 편집 모드에 대응할 수 있다. 게다가, 인터넷 인터페이스 프로그램의 활성 부분은 웹 모드 또는 이메일 모드에 대응할 수 있다.
반면에, 터치 특성은, 상기한 실시예들 중 다수에 기술되어 있는 바와 같이, 예를 들어 터치 장소, 터치 ID, 터치 횟수, 기타 등등에 대응할 수 있다.
애플리케이션과 관련하여, 서로 다른 애플리케이션은 서로 다른 UI 모드를 나타낼 수 있다. 예를 들어, 워드 프로세싱 또는 스프레드쉬트 애플리케이션은 데이터 입력 모드를 나타낼 수 있는 반면, 음악 관리 프로그램은 제어 또는 스크롤링 모드를 나타낼 수 있다. 애플리케이션의 현재 상태와 관련하여, 애플리케이션의 서로 다른 모드는 서로 다른 UI 모드를 나타낼 수 있다. 예를 들어, 음악 관리 프로그램에서, 메뉴 윈도우는 하나의 UI 모드를 나타낼 수 있는 반면, 재생목록 윈도우는 다른 UI 모드를 나타낼 수 있다.
터치와 관련하여, 손가락의 수는 서로 다른 UI 모드를 나타낼 수 있다. 예를 들어, 하나의 손가락은 제1 모드를 나타낼 수 있는 반면, 2개의 손가락은 제2 모드를 나타낼 수 있다. 게다가, 터치의 ID는 다른 UI 모드를 나타낼 수 있다. 예를 들어, 엄지손가락은 제1 UI 모드를 나타낼 수 있고, 검지 손가락은 제2 UI 모드를 나타낼 수 있다. 게다가, 터치의 장소는 다른 UI 모드를 나타낼 수 있다. 예를 들어, 제1 터치 장소는 제1 UI 모드를 나타낼 수 있는 반면, 제2 터치 장소는 제2 UI 모드를 나타낼 수 있다(터치가 음악 프로그램의 경계 상에 위치되는 경우, 제1 UI 모드가 구현될 수 있고, 터치가 음악 프로그램에서 노래의 재생목록 또는 리스트 상에 위치되는 경우, 제2 UI 모드가 구현될 수 있다).
일 실시예에서, 사용자 인터페이스 모드는 조건들 중 단지 하나에 기초한다. 예를 들어, 사용자 인터페이스 모드는 애플리케이션, 애플리케이션의 현재 상태, 또는 상기한 바와 같은 여러가지 터치 특성 중 하나에만 기초한다. 다른 실시예에서, 사용자 인터페이스 모드는 다수의 조건에 기초한다. 예를 들어, 사용자 인터페이스 모드는 애플리케이션, 애플리케이션의 현재 상태 및 여러가지 터치 특성으로부터 선택된 적어도 2개의 조합에 기초할 수 있다. 예로서, 제1 터치 특성과 결합된 애플리케이션은 제1 UI 모드를 나타낼 수 있고, 제2 터치 특성과 결합된 동일 애플리케이션은 제2 UI 모드를 나타낼 수 있다.
몇가지 예를 들면, 애플리케이션이 워드 프로세싱 또는 스프레드쉬트 프로그램인 경우, 이 모드는, 데이터가 스프레드쉬트에 입력될 수 있도록, 데이터 입력 모드인 것으로 판정될 수 있다(예를 들어, 키보드). 애플리케이션이 음악 관리 프로그램이고 재생 목록이 현재 보여지고 있는 경우(활성 부분), 이 모드는, 리스트 내의 항목들이 원하는 항목을 찾기 위해 스크롤될 수 있도록, 스크롤 모드인 것으로 판정될 수 있다(예를 들어, 스크롤 휠). 다른 대안으로서, 노래가 재생 중인 경우(활성 부분), 이 모드는, 노래가 재생되는 방식이 제어될 수 있도록, 제어 모드인 것으로 판정될 수 있다(예를 들어, 재생, 정지, 탐색 및 볼륨 제어 옵션). 게다가, 애플리케이션이 사진 관리 프로그램이고 특정의 사진이 디스플레이되어 있는 경우(활성 부분), 이 모드는, 사진이 수정될 수 있도록, 제어 모드인 것으로 판정될 수 있다(예를 들어, 흑백으로 변환하는 것, 적색 눈을 제거하는 것, 및 회전 옵션).
사용자 인터페이스 모드(804)를 판정한 후에, 사용자 인터페이스 방법(800)은 사용자 인터페이스 모드에 기초하여 또 터치(들)에 응답하여 하나 이상의 GUI 요소가 디스플레이되는 블록(806)으로 진행한다. 어떤 경우에, 단지 하나의 GUI 요소만이 디스플레이되고, 다른 경우들에, 다수의 GUI 요소들이 디스플레이된다. GUI 요소는 일반적으로 특정의 모드와 연관되어 있다. 예를 들어, 슬라이더 바 또는 스크롤 휠은 스크롤 모드에서 디스플레이될 수 있고, 키보드 또는 키패드는 데이터 입력 모드에서 디스플레이될 수 있으며, 툴 바는 편집 모드에서 디스플레이될 수 있고, 여러가지 버튼 또는 컨트롤 패널은 제어 모드에서 디스플레이될 수 있으며, 정보 윈도우는 정보 모드에서 디스플레이될 수 있다.
GUI 요소는 여러가지 방식으로 디스플레이될 수 있다. 예를 들어, 이는 현재 디스플레이된 그래픽 이미지 상에 위치될 수 있거나, 현재 디스플레이된 그래픽 이미지를 대체할 수 있다(예를 들어, 최소화, 천이(shift), 기타 등등). 어떤 경우에, GUI 요소는, GUI 요소 아래에 배치된 현재의 그래픽 이미지가 보일 수 있도록, 반투명으로 되어 있다(그에 의해 최소화 및 천이가 필요없게 된다). 이것은, 스크롤 휠 아래에 배치된 리스트를 통해 순회하기 위해 스크롤 휠을 사용할 때, 도움이 될 수 있다. 게다가, GUI 요소는 터치의 근방에 배치될 수 있거나, 어떤 미리 정해진 장소에 배치될 수 있다. 미리 정해진 장소는 인간 공학, 즉 사용자에게 최상의 장소가 무엇인지에 기초할 수 있다.
상기한 것 이외에, GUI 요소는 증대(growing), 페이딩 인(fading in), 팝업(popping up) 등의 전환 효과를 사용하여 디스플레이될 수 있고, 어떤 경우에는 심지어 진동하거나, 떨리거나, 기타 등등을 할 수도 있다. 이 효과가 팝업하는 것인 경우, GUI 요소는 즉각 보이게 된다. 이 효과가, 도 29a 내지 도 29d에 도시한 바와 같이, 증대인 경우, 작은 GUI 요소(820A)(스크롤 휠)가 처음에 디스플레이되고, 그 후에 GUI 요소(820A)는, 그의 원하는 크기(820D)에 도달할 때까지, 여러가지 크기(820B, 820C)를 거쳐 계속하여 확대된다. 이 증대의 속도는 터치의 압력에 기초할 수 있다. 예를 들어, 터치 압력이 낮은 경우, GUI 요소는 느리게 증대될 수 있고, 터치 압력이 높은 경우, GUI 요소는 보다 빠르게 증대될 수 있다. 게다가, GUI 요소의 최종 크기는 터치의 길이에 기초할 수 있다. 예를 들어, GUI 요소는, 터치가 더 이상 검출되지 않을 때, 증대를 멈춘다. 다른 대안으로서, 속도 및 크기는 예를 들어 컨트롤 패널을 통해 사용자 조정가능할 수 있다. 도 30a 내지 도 30d에 나타낸 바와 같이, 이 효과가 페이딩인 경우, GUI 요소(822)는, 여러가지 레벨의 왜곡 또는 투명도(822A-822C)를 통해, 아무것도 없는 것으로부터 최종의 완전한 이미지(822D)로 느리게 보인다. 페이딩은 증대와 유사하게 제어될 수 있다. 예를 들어, 페이드의 속도 및 레벨은 터치의 압력 및 길이에 의해 제어될 수 있다.
전환 효과는 현재 디스플레이된 이미지, 즉 터치가 검출되기 이전에 현재 디스플레이된 이미지에까지 미칠 수 있다. 일 실시예에서, 현재 디스플레이된 이미지에 정반대 효과가 일어난다. 예를 들어, 도 31a 내지 도 31d에 나타낸 바와 같이, GUI 요소(820)가 점점 더 커짐에 따라 현재 디스플레이된 그래픽 이미지(826)가 점점 더 작게 최소화된다. 다른 대안으로서, GUI 요소가 즉각 팝인(pop in)되는 경우, 현재 디스플레이된 그래픽 이미지는 즉각 팝아웃(pop out)되거나 즉각 최소화될 수 있다.
GUI 요소가 디스플레이되면(806), 사용자 인터페이스 방법(800)은 GUI 요소의 기능이 인에이블되는 블록(808)으로 진행한다. 예를 들어, GUI 요소에 대해 터치 이벤트가 모니터링되고, 터치 이벤트와 연관된 동작이 수행된다. 디스플레이되면, 사용자가 GUI 요소를 즉각 사용하기 시작하도록, GUI 요소의 인에이블이 GUI 요소의 디스플레이와 동시에 일어날 수 있다. 예로서, 스크롤 모드에서, 가상 스크롤 휠이 디스플레이될 수 있고, 인에이블될 때, 스크롤 휠에 대해 터치 이벤트가 모니터링된다. 모니터링 동안에, 손가락이 가상 스크롤 휠 주변을 지나감에 따라, 스크롤 휠 상에서의 손가락의 위치와 연관된 제어 신호가 발생된다. 이들 신호가 스크롤링을 수행하는 데 사용될 수 있다. 예를 들어, 신호의 수, 조합 및 주파수는 리스트를 통해 선택 바를 이동시키는 데 필요한 거리, 방향 및 속도로 변환될 수 있다. 예로서, 가상 스크롤 휠 및 이들이 어떻게 동작하는지에 대한 보다 상세한 설명에 대해서는 도 6, 도 26 및 도 27을 참조하기 바란다.
GUI 요소를 인에이블하여 디스플레이한 후의 어떤 시점에, GUI 요소를 비활 성화시킬지 여부에 관해 판정(812)이 행해진다. 예를 들어, 1) 터치가 더 이상 검출되지 않는 것, 2) 터치가 사전 설정된 양의 시간 동안 검출되지 않았음, 3) 타임아웃이 발생함(GUI 요소가 처음으로 디스플레이/인에이블된 이후로 사전 설정된 양의 시간이 경과하였음), 또는 4) 사용자 선택(예를 들어, 사용자가 GUI 요소를 닫는 버튼을 선택함)을 비롯하여, 다양한 방식으로 판정(812)이 행해질 수 있다.
이 판정이 비활성화를 나타내는 경우, 이 방법은 GUI 요소가 디스에이블되고 디스플레이로부터 제거되는 블록(814)으로 진행한다. 디스에이블되면, 터치 이벤트가 일어날 때 동작이 더 이상 수행되지 않는다. 디스플레이로부터 GUI 요소를 제거하는 것은, GUI 요소가 서서히 페이딩 아웃하는 것, 축소되는 것 또는 즉각 사라지는 것(팝 아웃) 등의 전환 효과를 사용하여 제거될 수 있다는 점에서, GUI 요소를 디스플레이하는 것과 유사하게 기능할 수 있다. 제거 전환 효과는 디스플레이 전환 효과와 정반대로 동작할 수 있다. 예를 들어, GUI 요소는 페이딩 인과 유사하게 페이딩 아웃되고, 증대와 유사하게 축소되며, 팝 인과 유사하게 팝 아웃된다. 게다가, GUI 요소는 서서히 물러나 뷰로부터 사라질 수 있는 반면, 대체된 또는 축소된 현재의 그래픽 이미지는 서서히 다시 그의 원래의 크기 및 형상으로 증대될 수 있다. 이 판정이 비활성화를 나타내지 않는 경우, 이 방법은 GUI 요소의 디스플레이는 물론 그의 인에이블을 유지한다.
도 32는 본 발명의 일 실시예에 따른 판정 방법(850)을 나타낸 것이다. 이 판정 방법은 예를 들어 도 28에서의 블록(804)에 대응할 수 있다. 이 판정 방법은 현재 애플리케이션이 판정되는 블록(852)에서 시작한다. 이 판정 방법은 애플리케 이션의 현재 상태가 판정되는 블록(854)으로 진행한다. 블록(854)에 뒤이어서, 이 판정 방법은 터치와 연관된 터치 특성이 판정되는 블록(856)으로 진행한다. 이 판정 방법은 블록(852 내지 858)으로부터의 결과에 기초하여 UI 모드가 선택되는 블록(860)으로 진행한다. 예로서, 일련의 규칙이 특정의 일련의 조건에 대한 적절한 UI 모드를 나타낼 수 있다.
도 33은 본 발명의 일 실시예에 따른 사용자 인터페이스 방법(900)이다. 이 방법은, 예를 들어, 디스플레이 및 터치 스크린 등의 터치 감지 입력 장치를 갖는 컴퓨팅 장치 상에서 수행될 수 있다. 이 인터페이스 방법(900)은 노래의 리스트가 디스플레이되는 블록(902)에서 시작한다. 도 34a는 노래의 리스트(932A)를 포함하는 윈도우(930A)의 일례를 나타낸 것이고, 도 35a는 노래의 리스트(932B)를 포함하는 윈도우(930B)의 다른 예를 나타낸 것이다. 도 34a는, 예를 들어, 미국 캘리포니아 쿠퍼티노 소재의 애플 컴퓨터사에 의해 제작된 iPod
상에 디스플레이되는 그래픽 사용자 인터페이스일 수 있고, 도 35a는, 예를 들어, 미국 캘리포니아 쿠퍼티노 소재의 애플 컴퓨터사에 의해 제작된 iTunes
등의 음악 관리 프로그램과 연관된 그래픽 사용자 인터페이스일 수 있다.
블록(902)에 뒤이어서, 사용자 인터페이스 방법(900)은 디스플레이된 노래의 리스트(또는 윈도우 또는 전체 GUI) 상에서 터치가 검출되는 블록(904)으로 진행한다. 이것은, 스타일러스 또는 하나 이상의 손가락 등의 객체가 터치 스크린 등의 터치 감지 입력 장치의 터치 감지 표면 상에 놓일 때, 터치 감지 입력 장치로 달성 될 수 있다. 도 34b 및 도 35b는 손가락(925)이 노래의 리스트(932)를 포함하는 윈도우(930) 상에 놓여 있는 것을 나타낸 것이다.
터치가 검출되면, 사용자 인터페이스 방법(900)은 가상 스크롤 휠이 활성화되는 블록(906)으로 진행한다. 즉, 노래의 리스트에 부가하여 가상 스크롤 휠이 디스플레이되고, 그의 기능이 인에이블된다. 본질적으로, 이 노래 리스트가 터치되었기 때문에, 사용자가 노래의 리스트에서의 노래들에 걸쳐 순회할 수 있게 해주는 스크롤 휠이 제공된다. 어떤 경우에서, 가상 스크롤 휠은 미디어 항목들을 대체한다, 즉 가상 스크롤 휠을 위한 공간을 만들기 위해 미디어 항목이 최소화 또는 천이된다. 다른 경우들에서, 가상 스크롤 휠은 미디어 항목 상에 배치되거나 또는 놓여진다(미디어 항목은 그의 현재 크기, 형상 및 위치를 유지한다). 가상 스크롤 휠은 미디어 항목이 가상 스크롤 휠을 통해 보일 수 있도록 반투명으로 될 수 있다. 도 34c 및 도 35c는 노래의 리스트(932)를 포함하는 윈도우(930) 상에 배치된 투명한 가상 스크롤 휠(936)을 나타낸 것이다. 다른 대안으로서, 가상 슬라이더 바가 디스플레이될 수 있다.
디스플레이되면, 가상 스크롤 휠에 대해 스크롤링 터치 이벤트(또는 제스처)가 수행되는지 여부에 관하여 판정(908)이 행해진다. 예를 들어, 손가락이 스크롤 휠 상에 배치되는지 여부 및 손가락이 스크롤 휠 주변에서 빙빙 돌며 이동되는지 여부에 대해 판정이 행해진다.
스크롤링 터치 이벤트가 사용자에 의해 수행되는 경우, 사용자 인터페이스 방법(900)은 스크롤링 터치 이벤트에 따라 노래의 리스트에 걸쳐 스크롤링이 구현 되는 블록(910)으로 진행한다. 예로서, 손가락이 가상 스크롤 휠 주위에서 빙빙 돌 때 한 노래에서 다른 노래로 셀렉터 바가 이동될 수 있다. 도 34d 및 도 35d는 손가락(925)이 가상 스크롤 휠(936) 주위를 빙빙 돌고 있는 것, 및 셀렉터 바(938)가 빙빙 도는 손가락(925)에 따라 노래의 리스트(932)에 걸쳐 직선으로 이동하는 것을 나타낸 것이다. 예시된 실시예에서, 셀렉터 바는, 손가락이 시계 방향으로 빙빙 돌 때, 직선으로 위쪽으로 이동되고, 또 손가락이 시계 반대 방향으로 빙빙 돌 때, 직선으로 아래쪽으로 이동된다. 그렇지만, 유의할 점은 이것이 제한이 아니라는 것이다. 예를 들어, 셀렉터 바는, 손가락이 시계 방향으로 빙빙돌 때, 직선으로 아래쪽으로 이동될 수 있고 또 손가락이 시계 반대 방향으로 빙빙돌 때, 직선으로 위쪽으로 이동될 수 있다.
스크롤링 또는 선택 터치 이벤트가 수행되지 않는 경우, 사용자 인터페이스 방법(900)은 가상 스크롤 휠이 비활성화되는 블록(916)으로 진행한다. 즉, 가상 스크롤 휠이 디스에이블되어 디스플레이로부터 제거된다. 도 34e 및 도 35e는 가상 스크롤 휠(936)이 없는 디스플레이(928)를 나타낸 것이다. 가상 스크롤 휠(936)이 제거되어 있지만, 노래의 리스트, 즉 셀렉터 바(938)의 위치에 행해진 변경은 일반적으로 남아 있다.
어떤 경우에, 가상 스크롤 휠은 그의 표면에 걸쳐 버튼 구역을 포함하거나 그의 중심에 또는 그의 측면 주변에 가상 버튼을 할 수 있다. 이 버튼 및 버튼 구역은, 예를 들어, 메뉴, 재생, 탐색, 일시정지, 및/또는 기타 등등에 대응할 수 있다. 이 특정의 실시예에서, 상기한 방법은 블록(416) 이전에 행해지는 부가적인 단계들을 포함할 수 있다. 예를 들어, 스크롤링 터치 이벤트가 수행되지 않는 경우, 사용자 인터페이스 방법(900)은 가상 스크롤 휠에 대해 선택 터치 이벤트(또는 제스처)가 수행되는지 여부에 관해 판정이 행해지는 부가의 블록을 포함할 수 있다. 이 선택 터치 이벤트는, 가상 스크롤 휠의 표면에서 빙빙도는 것보다는 오히려, 버튼을 태핑함으로써 또는 버튼에 증가된 또는 감소된 압력을 가함으로써 구현될 수 있다(도 34f 및 도 35f 참조). 버튼이 노래 선택 또는 엔터 버튼인 경우, 이 방법은 그 위에 셀렉터 바가 배치된 노래가 선택되는 또하나의 블록을 포함한다. 즉, 가상 버튼이 태핑되거나 다른 방식으로 선택될 때, 현재 셀렉터 바로 덮여 있는 노래가 재생되고 사용자가 즐기기 위해 출력된다.
유의할 점은 상기한 방법들이 노래의 리스트를 통해 스크롤링하는 것에 제한되지 않는다는 것이다. 임의의 미디어 항목은 물론 임의의 그룹의 요소가 상기한 기술의 사용을 통해 스크롤링될 수 있다. 예를 들어, 도 36a 내지 도 36c에 나타낸 바와 같은 사진 레이아웃(942)에서, 사용자가 그의 손가락(925)을 사진 레이아웃(942) 상에 올려 놓을 때(즉, 그룹화) 가상 스크롤 휠(936)이 나타날 수 있으며, 그 후에 이는 레이아웃(942)에서의 여러가지 사진들(943)을 지나 하이라이터(944)를 이동시키는 데 사용될 수 있다. 예로서, 사진은 많은 수의 이미지를 통해 순회하는 것을 보다 쉽게 해주는 썸네일 이미지일 수 있다.
도 37은 본 발명의 일 실시예에 따른 방법(950)이다. 이 방법은 터치가 검출되는지를 판정하는 블록(952)에서 시작한다. 터치가 검출되면, 이 방법은 현재의 동작 조건이 모니터링되고 분석되는 블록(954)으로 진행한다. 이 조건은, 예를 들어, 현재 애플리케이션, 애플리케이션의 상태, 및/또는 터치와 연관된 터치 특성에 대응할 수 있다.
제1 일련의 조건이 구현되는 경우, 이 방법은 제1 GUI 요소가 활성화되는 블록(956)으로 진행한다. 예를 들어, 도 38a 및 도 38b에 나타낸 바와 같이, 음악 관리 프로그램의 활성 윈도우(960)에서, 사용자가 활성 윈도우(960)의 재생목록 부분(964)을 터치할 때, 스크롤 휠(962)이 활성화될 수 있다.
제2 일련의 조건이 구현될 때, 이 방법은 제2 GUI 요소가 활성화되는 블록(958)으로 진행한다. 예를 들어, 도 38b 및 도 38c에 나타낸 바와 같이, 음악 관리 프로그램의 활성 윈도우(960)에서, 사용자가 또한 활성 윈도우(960)의 경계(968)를 터치할 때, 음악 컨트롤 패널(966)이 활성화될 수 있다. 이들이 서로 독립적으로 동작하지만, 제1 및 제2 조건이 동시에 일어나는 경우, 제1 및 제2 GUI 요소는 동시에 활성화될 수 있다(도 34c).
블록(956)에 뒤이어서, 이 방법은 제1 GUI 요소가 비활성화되어야만 하는지가 판정되는 블록(960)으로 진행한다. 그러한 경우, 이 방법은 GUI 요소가 비활성화되는 블록(962)으로 진행한다. 예를 들어, 도 38d에 나타낸 바와 같이, 손가락(925)이 재생목록(962) 상에서 더 이상 검출되지 않을 때, 제1 GUI 요소(스크롤 휠(962))는 디스에이블되어 디스플레이로부터 제거된다. 그렇지 않은 경우, 이 방법은 블록(956)을 계속한다.
이와 유사하게 그렇지만 독립적으로, 블록(958)에 뒤이어서, 이 방법은 제2 GUI 요소가 비활성화되어야만 하는지가 판정되는 블록(964)으로 진행한다. 그러한 경우, 이 방법은 GUI 요소가 비활성화되는 블록(966)으로 진행한다. 예를 들어, 도 38e에 나타낸 바와 같이, 손가락(925)이 경계(968) 상에서 더 이상 검출되지 않을 때, 제2 GUI 요소(컨트롤 패널(966))는 디스에이블되어 디스플레이로부터 제거된다. 그렇지 않은 경우, 이 방법은 블록(958)을 계속한다.
유의할 점은 이 방법이 단지 2개의 GUI 요소로 제한되지 않으며 또한 다른 조건들이 구현되는 경우 다른 GUI 요소들이 활성화될 수 있다는 것이다. 예를 들어, 제3 일련의 조건이 일어나는 경우 제3 GUI 요소가 활성화될 수 있고, 이하 마찬가지이다. 예로서, 도 38f에 나타낸 바와 같이, 사용자는 그의 손가락(925)을 경계(968)로부터 활성 윈도우(960)의 메뉴 부분(970)으로 슬라이딩시킬 수 있으며, 그에 의해 컨트롤 패널(966)로부터 스크롤 휠(972)로의 변경을 개시할 수 있다(예를 들어, 제2 GUI 요소가 비활성화되고 있는 동안에, 제3 GUI 요소는 활성화되고 있다).
게다가, 도 38g에 나타낸 바와 같이, 사용자는 또하나의 손가락(925)을 현재의 터치에 추가할 수 있으며, 그에 의해 제1 컨트롤 패널(966)로부터 제2 컨트롤 패널(982)로의 변경을 개시할 수 있다. 제1 컨트롤 패널(966)은 재생, 정지, 탐색 및 볼륨 옵션 등의 제1 일련의 제어 옵션을 포함할 수 있으며, 제2 컨트롤 패널(982)은 노래 재생 순서, 노래 정보, 광 효과 옵션 등의 제2 일련의 제어 옵션을 포함할 수 있다.
게다가, 도 38h에 나타낸 바와 같이, 사용자는 하나의 손가락(925A)을 경계(968) 상에, 또하나의 손가락(925B)을 메뉴 부분(970) 상에, 또한 또하나의 손가 락(925C)을 재생목록 부분(964) 상에 올려놓을 수 있으며, 그에 의해 3개의 서로 다른 GUI 요소, 특히 컨트롤 패널(966), 메뉴(970)를 통해 스크롤하기 위한 제1 스크롤 휠(972), 및 재생목록(964)을 통해 스크롤하기 위한 제2 스크롤 휠(962)을 기동시킨다.
게다가, 다수의 GUI 요소가 동일한 부분에서 활성화될 수 있다. 예를 들어, 도 38i 및 도 38j에 나타낸 바와 같이, 사용자가 재생목록(964)에서 특정의 박스(990)를 선택하는 경우, 사용자가 노래와 연관된 데이터(예를 들어, 제목, 음악가, 장르, 기타 등등)를 입력할 수 있도록 키보드(992)가 활성화될 수 있다. 스크롤 휠(962)이 키보드(992)와 동시에 활성인 경우, 스크롤 휠(962)은 도시된 바와 같이 키보드(992)를 수용하기 위해 최소화될 수 있다. 키보드(992)가 비활성화되면, 스크롤 휠(962)은 다시 그의 원래의 크기로 되돌아간다.
본 발명의 여러가지 측면, 실시예, 구현 또는 특징들이 개별적으로 또는 임의의 조합으로 사용될 수 있다.
본 발명은 양호하게는 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합으로 구현된다. 이 소프트웨어는 또한 컴퓨터 판독가능 매체 상의 컴퓨터 판독가능 코드로서 구현될 수 있다. 컴퓨터 판독가능 매체는 나중에 컴퓨터 시스템에 의해 판독될 수 있는 데이터를 저장할 수 있는 임의의 데이터 저장 장치이다. 컴퓨터 판독가능 매체의 예는 판독 전용 메모리, 랜덤 액세스 메모리, CD-ROM, DVD, 자기 테이프, 광학 데이터 저장 장치, 및 반송파를 포함한다. 컴퓨터 판독가능 매체는 또한, 컴퓨터 판독가능 코드가 분산된 방식으로 저장 및 실행되도록, 네 트워크-연결 컴퓨터 시스템들에 걸쳐 분산되어 있을 수 있다.
본 발명이 몇가지 양호한 실시예의 관점에서 기술되어 있지만, 변경, 치환 및 등가물은 본 발명의 범위 내에 속한다. 예를 들어, 본 발명이 주로 터치 스크린에 관한 것이지만, 유의할 점은 어떤 경우에 터치 패드도 역시 터치 스크린 대신에 사용될 수 있다는 것이다. 다른 유형의 터치 감지 장치도 역시 이용될 수 있다. 또한, 유의할 점은 본 발명의 방법 및 장치를 구현하는 많은 대안의 방식이 있다는 것이다. 따라서, 이하의 첨부된 청구항이 본 발명의 진정한 정신 및 범위 내에 속하는 이러한 변경, 치환 및 등가물 전부를 포함하는 것으로 해석되어야만 한다.