KR20050084748A - 컴퓨터 장치들과 인터페이싱하기 위한 시스템들 및 방법들 - Google Patents
컴퓨터 장치들과 인터페이싱하기 위한 시스템들 및 방법들 Download PDFInfo
- Publication number
- KR20050084748A KR20050084748A KR1020047008326A KR20047008326A KR20050084748A KR 20050084748 A KR20050084748 A KR 20050084748A KR 1020047008326 A KR1020047008326 A KR 1020047008326A KR 20047008326 A KR20047008326 A KR 20047008326A KR 20050084748 A KR20050084748 A KR 20050084748A
- Authority
- KR
- South Korea
- Prior art keywords
- logical button
- command
- button
- logical
- manner different
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/02—Input arrangements using manually operated switches, e.g. using keyboards or dials
- G06F3/023—Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/02—Input arrangements using manually operated switches, e.g. using keyboards or dials
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0489—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using dedicated keyboard keys or combinations thereof
- G06F3/04892—Arrangements for controlling cursor position based on codes indicative of cursor displacements from one discrete location to another, e.g. using cursor control keys associated to different directions or using the tab key
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Input From Keyboards Or The Like (AREA)
Abstract
본 발명은 강력한 네비게이션 인터페이스(navigation interface)를 제공함으로써, 컴퓨터 키보드 및 마우스를 보완하는(반드시 이들을 대체하지는 않음) 향상된 사용자 네비게이션을 위한 시스템 및 방법들을 제공한다. 본 발명은 무엇보다도, 최소한도로 필요한 명령들의 그룹; 적어도 두 개의 명령 호출들의 집합의 기능을 단일한 논리적 버튼(logical button)으로 결합하는 단계; 단일한 버튼에 대해, 처음부터 마지막까지 명령 호출들의 집합의 우선 순위를 정하는 단계 및 그리고 나서 하나가 수용될 때까지 각각을 호출하는 단계; 물리적으로 회전 가능한 디스플레이 장치에 연결된 네비게이션 장치에 대한 버튼들에 명령들을 논리적으로 재매핑(remapping)하는 단계; 및 대체 명령(substitute command)이 사실상 발생될 수 있도록 하기 위해, 논리적 버튼이 사용되는 주요 방식{예컨대, 더블 클릭킹(double-clicking), 플릭킹(flicking), 누름-및-유지(press-and-hold) 등}과는 다른 미리 설정된 방식으로 버튼이 사용되는 때에 대해 대체 명령을 논리적 버튼에 매핑하는 단계를 포함할 수 있다.
Description
본 발명은 일반적으로 사용자 인터페이스(user interface) 분야에 관한 것으로, 특히, 컴퓨터 환경에서의 네비게이션(navigation)을 위한 사용자 인터페이스에 관한 것이다. 그러나, 본 발명은 컴퓨터에서의 사용에 한정되지는 않는다. 반면에, 본 발명은 매우 다양한 상용 장치들 또는 본 명세서에서 개시된 본 발명의 다양한 실시예들을 이용하는 다른 시스템에서 이용될 수 있다.
<관련 발명>
본 출원은, 2002년 12월 16일에 출원되고 명칭이 "SYSTEMS AND METHODS FOR INTERFACING WITH COMPUTER DEVICES"인 미국 가출원 제60/433,914호(변호사 사건 번호 MSFT-1643)의 이익을 주장하는데, 상기 가출원의 전체의 내용은 본 명세서에 참조로서 포함된다.
본 출원은 발명의 대상으로 인해, 전술된 가출원에 대해 역시 우선권을 주장하는, 일반적으로 배정된 다음의 출원들에 개시된 발명들에 관련된다; 즉, 본 출원과 동일자에 출원되고 명칭이 "SYSTEMS AND METHODS FOR INTERFACING WITH COMPUTER DEVICES"인 미국 특허 출원(아직 배정 안됨)(변호사 사건 번호 MSFT-1820); 본 출원과 동일자에 출원되고 명칭이 "SYSTEMS AND METHODS FOR INTERFACING WITH COMPUTER DEVICES"인 미국 특허 출원(아직 배정 안됨)(변호사 사건 번호 MSFT-1821); 본 출원과 동일자에 출원되고 명칭이 "SYSTEMS AND METHODS FOR INTERFACING WITH COMPUTER DEVICES"인 미국 특허 출원(아직 배정 안됨)(변호사 사건 번호 MSFT-1822); 및 본 출원과 동일자에 출원되고 명칭이 "SYSTEMS AND METHODS FOR INTERFACING WITH COMPUTER DEVICES"인 미국 특허 출원(아직 배정 안됨)(변호사 사건 번호 MSFT-1823)이 그것들이다.
컴퓨터 산업은 네비게이션(navigation)을 위해 오랫동안 키(key), 휠(wheel), 및 온 스크린(on-screen) 버튼의 사용에 매우 많이 집중해왔으며, 그로 인해, 현재 사용되고 있는 다양하고 상이한 네비게이션 모델들을 지원하기 위해서 표준 크기의 키보드, 애플리케이션에 특유한 명령 버튼들(application-specific command buttons), 마우스 및 여러 개의 온 스크린 인터페이스들이 모두 필요하게 되었다. 그러나, 현재의 네비게이션 장치들은 새롭고 혁신적인 컴퓨터화된 기술들(이를테면 랩탑(laptop)의 진화된 계승자가 되려고 하는 테블릿 PC(Tablet PC))에 대해 적합하지 않으며, 이러한 새롭고 발전적인 기술들을 네비게이팅하는 것은 키보드, 마우스 또는 다른 기존의 장치들이나 이들의 조합들에 의해 완전하거나 적절하게 지원되지 않는다. 요컨대, 컴퓨터 산업은 다른 기존의 모델들을 보완하거나 대체하는 네비게이션을 위한 더욱 단순한 모델에 대한 당해 기술 분야의 아주 명백한 필요성을 적절히 다루지 못해왔다.
도 1은 본 발명의 태양들이 포함될 수 있는 컴퓨터 시스템을 나타낸 블록도.
도 2는 본 발명의 태양들이 포함될 수 있는 네트워크를 나타낸 개략도.
도 3a는 본 발명의 소정의 실시예들에서의 ENTER 버튼(button)에 대한 논리(logic)를 기술하는 흐름도.
도 3b는 본 발명의 소정의 실시예들에서의 ENTER 버튼에 대한 논리의 변형을 기술하는 흐름도.
도 4a는 본 발명의 소정의 실시예들에서의 UP 버튼에 대한 논리를 기술하는 흐름도.
도 4b는 본 발명의 소정의 실시예들에서의 UP 버튼에 대한 논리의 변형을 기술하는 흐름도.
도 5a는 본 발명의 소정의 실시예들에서의 DOWN 버튼에 대한 논리를 기술하는 흐름도.
도 5b는 본 발명의 소정의 실시예들에서의 DOWN 버튼에 대한 논리의 변형을 기술하는 흐름도.
도 6a는 본 발명의 소정의 실시예들에서의 OUT 버튼의 방법에 대한 논리를 기술하는 흐름도.
도 6b는 본 발명의 소정의 실시예들에서의 OUT 버튼의 방법에 대한 더욱 복잡한 논리를 기술하는 흐름도.
도 7a는 본 발명의 소정의 실시예들에서의 4 버튼 장비를 나타낸 도면.
도 7b는 유사한 방위를 가지나 네 개의 버튼들이 수직으로 배열된 본 발명의 대체 실시예를 나타낸 도면.
도 7c는 수평으로 배열된 버튼들을 보여주는 본 발명의 다른 대체 실시예를 나타낸 도면.
도 7d는 수정된 수직 방식으로 배열된 버튼들을 나타내는 본 발명의 다른 실시예를 나타낸 도면.
도 7e는 본 발명의 소정의 실시예들에서의 대체 4 버튼 장비를 나타낸 도면.
도 8a는 본 발명의 소정의 실시예들에서의 휠(wheel)/버튼 결합을 나타낸 도면.
도 8b는 본 발명의 소정의 실시예들에서의 휠/버튼 결합의 실시예에 대한 대체 레이아웃을 나타낸 도면.
도 8c는 본 발명의 소정의 실시예들에서의 휠/버튼 결합의 실시예에 대한 대체 레이아웃을 나타낸 도면.
도 9는 클릭킹 휠(clicking wheel)을 나타낸 도면.
도 10은 진동 휠(rocking wheel)을 나타낸 도면.
도 11a는 본 발명의 소정의 실시예들에서의 도그본(dogbone)/버튼 결합을 나타낸 도면.
도 11b는 본 발명의 소정의 실시예들에서의 도그본/버튼 결합의 실시예에 대한 대체 레이아웃을 나타낸 도면.
도 11c는 본 발명의 소정의 실시예들에서의 도그본/버튼 결합의 실시예에 대한 대체 레이아웃을 나타낸 도면.
도 12는 클릭킹 도그본(clicking dogbone)을 나타낸 도면.
도 13은 진동 도그본(rocking dogbone)을 나타낸 도면.
도 14a는 수퍼 휠(super wheel)을 사용하는 본 발명의 일 실시예를 나타낸 도면.
도 14b는 수퍼 도그본(super dogbone)을 사용하는 본 발명의 일 실시예를 나타낸 도면.
도 15a는 9-버튼 장치를 나타낸 도면.
도 15b는 8-버튼 장치를 나타낸 도면.
도 15c는 도 15a의 각각의 버튼에 대한 직접 명령들(direct commands)(또는 논리적 입력)을 열거하는 테이블.
도 16a는 진동 도그본이 우측 측면에 부착된 "오른손의 세로 방향(right-handed portrait)" 방위의 디스플레이 장치를 나타낸 도면.
도 16b는 "하단 가로 방향(bottom landscape)" 방위를 달성하기 위해 우측으로 90도(4분의 1) 회전된 후의 도 16a의 장치를 나타낸 도면.
도 16c는 "왼손의 세로 방향(left-handed portrait)"를 형성하며 다시 우측으로 90도(현재 총 180도, 즉 우측으로 2분의 1) 회전된 도 16b의 장치를 나타낸 도면.
도 16d는 "상단 가로 방향(top landscape)"를 형성하며 또 다시 우측으로 90도(현재 총 270도, 즉 우측으로 4분의 3) 회전된 도 16c의 장치를 나타낸 도면.
도 17은 논리적 버튼들이 그들의 방위에 따라 특정 명령들에 대응되도록 고정된 네비게이션 장치에 대해 논리적 회전 기법(logical rotation scheme)을 사용하는 본 발명의 소정의 실시예들에 대해서, 다양한 방위에서 명령들을 논리적 버튼들에 정확히 매핑하는 것에 대한 대표적인 테이블.
도 18a는 진동 도그본이 장치의 기반에 통합된 "전면 가로 방향(front-end landscape)" 방위의 대체 디스플레이 장치를 나타낸 도면.
도 18b는 우측으로 4분의 1 회전된 도 18a의 장치를 나타낸 도면.
도 18c는 우측으로 2분의 1 회전된 도 18a의 장치를 나타낸 도면.
도 18d는 우측으로 4분의 3 회전된 도 18a의 장치를 나타낸 도면.
도 19a는 오른손의 세로 방향 방위(원래의 방위)에 회전 가능한 네비게이션 장치를 갖는 디스플레이 장치를 나타낸 도면.
도 19b는 회전 가능한 네비게이션 장치가 디스플레이 장치의 관점에서 좌측으로 90도 회전되므로, 동일한 절대 방위(absolute orientation)를 보유하면서, 우측으로 90도 회전된 도 19a의 디스플레이 장치를 나타낸 도면.
도 19c는 추가적으로 90도 회전되지만 네비게이션 장치가 동일한 절대 방위를 보유하는 도 19b의 장치를 나타낸 도면.
도 19d는 추가적으로 90도 회전되지만 네비게이션 장치가 동일한 절대 방위를 보유하는 도 19c의 장치를 나타낸 도면.
도 20a는 마름모 형태의 구성들로 배치된 네 개의 버튼들을 나타낸 도면.
도 20b는 일직선으로 배치된 네 개의 버튼들을 나타낸 도면.
도 20c는 라벨(label)이 없는 도 20a의 버튼들을 나타낸 도면.
도 20d는 라벨이 없는 도 20b의 버튼들을 나타낸 도면.
도 21a는 라벨이 없는 "컴퍼스(compass)" 배치로 배열된 8개의 버튼들을 나타낸 도면.
도 21b는 방향의 라벨을 갖는 도 21a의 버튼들을 나타낸 도면.
도 21c는 컴퍼스 라벨을 갖는 도 21a의 버튼들을 나타낸 도면.
본 발명은 다양한 실시예들에서 컴퓨터 시스템 환경에서의 사용을 위해 매우 적합한 사용자 네비게이션 인터페이스(user navigation interface)에 관한 것이지만, 컴퓨터에서의 사용에 한정되지는 않는다. 본 발명은 마우스보다 더욱 강인(robust)하며 키보드보다는 덜 복잡한 단일 사용자 네비게이션 인터페이스를 제공함으로써, 컴퓨터 키보드 및 마우스를 보완하는(반드시 이들을 대체하지는 않음) 향상된 사용자 네비게이션을 위한 시스템 및 방법들을 제공한다. 다수의 실시예들에 있어서, 본 발명은, (마우스와 같이) 사용하기 위해서 단지 하나의 손만을 요구하지만, 지금까지 컴퓨터 키보드를 통해서만 직접적으로 호출이 가능했었던 중요한 기능을 갖는 장치로서 사용될 것으로 기대된다.
본 발명의 일 실시예에 있어서 사용자로 하여금 객체(object)에 적용되는 명령들의 그룹 중 하나에 대한 논리적인 입력(logical input)을 생성할 수 있도록 하는 인터페이스를 포함한 사용자 인터페이스 시스템이 개시되며, 여기서 상기 명령들의 그룹은 최소한도로 필요한(minimally necessary) 명령들의 그룹을 포함한다. 상기 명령들의 그룹이 개시된다. 대체 일 실시예에 있어서, 상기 최소한도로 필요한 명령들의 그룹은 ENTER, UP, DOWN, 및 OUT과 같은, 사용자 인터페이스 시스템에 대한 네 개의 사용자 명령들을 포함한다. 다른 실시예들에 있어서는, 소정의 명령들이 본 명세서에서 뒤에 설명되는 휠(wheel) 또는 도그본(dogbone) 장치의 변형물의 동작에 의해 구현될 수 있다.
본 발명의 다른 실시예들은 키보드 키들을 포함하나 이들에 한정되지 않는 적어도 두 개의 명령 호출들의 집합의 기능을 단일한 논리적 버튼으로 결합하기 위한 방법들을 개시하는데, 소정의 실시예들에서는 처음부터 마지막까지의 명령 호출들의 집합의 우선 순위를 정하고 난 뒤에, 운영 체제 셸 훅(shell hook)을 이용하여 어느 하나가 "수용(accepted)"(인식되어 수행됨)될 때까지 우선 순위의 순서대로 마지막 명령을 제외한 모든 명령에 대한 애플리케이션 명령을 호출하며, 만약 마지막 명령을 제외한 모든 명령들이 "거부(rejected)"(인식되지 않음)되었다면, 운영 체제 명령으로서 상기 마지막 명령을 발생시킴으로써 단일한 논리적 버튼으로 결합한다. 예를 들어, 소정의 대체 실시예들에서 OUT은 Back 또는 Escape 명령 호출들에 일치할 수 있는데, Back 및 Escape 명령 호출들의 OUT 명령으로의 병합은 본 발명의 다수의 다른 실시예들에서 사용되는 중요한 결합이다. 운영 체제 셸 훅을 이용하여 애플리케이션에 대한 애플리케이션 명령으로서 명령을 발생시키고, 상기 애플리케이션 명령이 거부되는 경우에 직접적으로 운영 체제에 다른 명령을 발생시킴으로써 명령들을 연쇄적 수행하는 이 방법은, 다수의 실시예들에 있어서 상대적으로 단순한, 한 손의(single-handed) 네비게이션 장치의 성공적인 기능에 대한 비결이다. 다른 실시예들은 제한된 개수의 논리적 버튼들에 의해 주어지는 코어 명령(core command) 기능을 확장하기 위해 다른 방법들을 사용한다.
다양한 연쇄적인 실시예들 중에서, 소정의 연쇄적 결합들(cascading combinations)은 본 발명의 다수의 실시예들에 대해서 특히 유용하다. 이벤트들의 논리적 버튼 이름 및 그 이벤트들에 대응하는 연쇄적 명령들에 의해 표시된 연쇄적 이벤트들의 일부(높은 우선 순위 명령들부터 점진적으로 낮은 우선 순위 명령까지)는 다음과 같다:
●UP: APPCOMMAND_UP UP Arrow Scroll UP Page Up
●DOWN: APPCOMMAND_DOWN Down Arrow Scroll Down Page Down
●NEXT: APPCOMMAND_NEXT Tab Right Arrow
●PREV: APPCOMMAND_PREV Shift-Tab Left Arrow
●ENTER: APPCOMMAND_ENTER Return Enter "재생(Play)"
●OUT: APPCOMMAND_OUT Browser Back Escape "중단(Stop)" Alt-F4
●SWITCH: APPCOMMAND_SWITCH Alt-Escape Alt-Tab 윈도즈 키(Windows Key) Home
●Menu: APPCOMMAND_MENU Shift-F10 "세팅(Settings)"
본 명세서에서 사용된 용어로서, "재생(Play)" 및 "중단(Stop)"은 매체 애플리케이션들과 같은 특정 문맥들을 위한 특별한 명령들이며, "세팅(Settings)"도 다른 특정 문맥들에서의 세팅 메뉴 등을 위한 특별한 명령이다.
다른 대체 실시예들은 먼저 디스플레이 장치의 방위(orientation)를 결정하고, 그 다음에 상기 디스플레이 장치의 방위를 기반으로 하여 명령들을 논리적 버튼들에 논리적으로 재매핑(remapping)함으로써, 물리적으로 회전 가능한 디스플레이 장치에 연결된 네비게이션 장치에 대한 버튼들에 명령들을 논리적으로 재매핑하기 위한 방법들 및 시스템들을 개시한다. 소정의 실시예들에서는, 만약 아마도 디스플레이 장치의 물리적 방위의 변경에 부합하기 위하여 디스플레이 장치 상의 디스플레이가 다른 방위로 변경된다면, 명령들의 논리적 버튼들에의 논리적 매핑이 자동적으로 발생하게 된다. 다른 실시예들에서, 디스플레이의 방위의 결정은 디스플레이 장치 자체 상의 디스플레이의 방위를 기반으로 한다. 네비게이션 인터페이스가 수평 대 수직이 비대칭적인 어떤 특수화된 실시예들에서, 논리적 재매핑은 최종 사용자에 의한 논리적 사용에 일치하는 미리 설정된 방식으로 명령들을 논리적 버튼들에 재매핑한다.
부가적인 대체 실시예들은 논리적 버튼이 사용되는 주요 방식{예컨대, 더블 클릭킹(double-clicking), 플릭킹(flicking), 누름-및-유지(press-and-hold) 등}과는 다른 미리 설정된 방식으로 버튼이 사용되는 경우에 대해 대체 명령(substitute command)을 논리적 버튼에 매핑하여 대체 명령이 사실상 발생될 수 있도록 함으로써, 네비게이션 제어 장치의 기능을 확장하기 위한 시스템들 및 물품들을 개시한다.
전술한 상세한 설명뿐만 아니라 이하의 실시예들은 첨부된 도면들과 함께 읽는 경우에 더욱 잘 이해된다. 본 발명을 설명하기 위한 목적으로, 본 발명의 예시적인 구조들이 도면들에 도시된다. 그러나, 본 발명은 개시된 특정 방법들 및 수단들에 한정되지는 않는다.
서설
본 발명의 대상은 법정 요구 사항들을 충족시키는 특성으로 설명된다. 그러나, 설명 그 자체는 본 발명의 범위를 제한하고자 의도되지는 않는다. 오히려, 본 출원의 발명자들은 청구된 발명의 대상이 현재 또는 미래의 다른 기술들과 함께 다른 방법들로 구현되어, 상이한 요소들 또는 본 명세서에서 설명된 것들과 유사한 요소들의 조합들을 포함할 수도 있다고 생각해왔다.
컴퓨터 환경
본 발명의 다수의 실시예들은 컴퓨터 상에서 실행될 수 있다. 도 1 및 이하의 논의는 본 발명이 구현될 수 있는 적합한 컴퓨팅 환경에 대한 간단한 일반적인 설명을 제공하고자 의도된다. 불가피한 것은 아니지만, 본 발명은 컴퓨터 실행 가능 명령어들(computer executable instructions), 이를테면 클라이언트 워크스테이션(client workstation)이나 서버와 같은 컴퓨터되어 실행되는 프로그램 모듈들의 일반적인 관계에서 설명될 것이다. 일반적으로, 프로그램 모듈들은 특정한 작업들을 수행하거나 특정한 추상 데이터 타입들(abstract data types)을 구현하는 루틴, 프로그램, 객체(object), 컴포넌트(component), 데이터 구조 등을 포함한다. 더욱이, 당해 기술 분야의 당업자는 본 발명이 핸드 헬드 장치(hand held device), 멀티프로세서 시스템(multi processor system), 마이크로 프로세서 기반 또는 프로그램 가능(programmable) 소비자 전자제품, 네트워크 PC, 미니 컴퓨터, 메인프레임(mainframe) 컴퓨터 등을 포함한 다른 컴퓨터 시스템 구성으로 실시될 수 있음을 인식할 것이다. 본 발명은 작업들이 통신 네트워크를 통해 링크된 원격 처리 장치들에 의해 수행되는 분산 컴퓨팅 환경에서 실시될 수도 있다. 분산 컴퓨팅 환경에서는, 프로그램 모듈들이 로컬 및 원격 메모리 저장 장치들 모두에 위치할 수 있다.
도 1에 도시된 바와 같이, 예시적인 범용 컴퓨팅 시스템은 처리 장치(21), 시스템 메모리(22), 및 시스템 메모리를 포함한 다양한 시스템 컴포넌트들을 처리 장치(21)에 연결하는 시스템 버스(23)를 포함한 전통적인 개인용 컴퓨터(20) 등을 포함한다. 시스템 버스(23)는 메모리 버스 또는 메모리 제어기, 주변 장치 버스, 및 임의의 다양한 버스 아키텍처들을 사용하는 로컬 버스를 포함한 수 개의 유형들의 버스 구조들 중에서 임의의 것이 될 수 있다. 시스템 메모리는 판독 전용 메모리(ROM)(24) 및 임의 액세스 메모리(RAM)(25)를 포함한다. 이를테면 초기 시동(start-up) 중에, 개인용 컴퓨터(20) 내의 요소들 간에 정보를 전달하는데 도움이 되는 기본 루틴들을 포함하는 기본 입력/출력 시스템(basic input/output system; BIOS)(26)은 ROM(24)에 저장된다. 개인용 컴퓨터(20)는, 하드디스크(도시되지 않음)로부터 판독하고 이에 기록하기 위한 하드디스크 드라이브(27), 착탈식(removable) 자기 디스크(29)로부터 판독하거나 이에 기록하기 위한 자기 디스크 드라이브(28), 및 CD ROM이나 다른 광 매체와 같은 착탈식 광 디스크(31)로부터 판독하거나 이에 기록하기 위한 광 디스크 드라이브(30)를 더 포함할 수 있다. 하드디스크 드라이브(27), 자기 디스크 드라이브(28), 및 광 디스크 드라이브(30)는 하드디스크 드라이브 인터페이스(32), 자기 디스크 드라이브 인터페이스(33), 및 광 드라이브 인터페이스(34) 각각에 의해 시스템 버스(23)에 접속된다. 상기 드라이브들 및 그들에 관련된 컴퓨터 판독 가능 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 및 개인용 컴퓨터(20)에 대한 그 밖의 데이터의 비휘발성 기억 장소를 제공한다. 본 명세서에서 설명된 상기 예시적인 환경이 하드디스크, 착탈식 자기 디스크(29) 및 착탈식 광 디스크(31)를 사용하고 있지만, 당해 기술 분야의 당업자는 컴퓨터에 액세스 가능한 데이터를 저장할 수 있는 다른 유형들의 컴퓨터 판독 가능 매체, 이를테면 자기 카세트, 플래시 메모리 카드, 디지털 비디오 디스크, 베르누이 카트리지(Bernoulli catridge), RAM, ROM 등이 상기 예시적인 동작 환경에서 사용될 수도 있음을 인식하여야 한다.
운영 체제(35), 하나 이상의 애플리케이션 프로그램들(36), 그 밖의 프로그램 모듈들(37) 및 프로그램 데이터(38)를 포함하는 다수의 프로그램 모듈들은 하드디스크, 자기 디스크(29), 광 디스크(31), ROM(24) 또는 RAM(25) 상에 저장될 수 있다. 사용자는 키보드(40)와 포인팅 장치(pointing device)(42)와 같은 입력 장치들을 통해 명령 및 정보를 개인용 컴퓨터(20)에 입력할 수 있다. 다른 입력 장치들(도시되지 않음)은 마이크로폰, 조이스틱, 게임 패드(game pad), 위성 디스크(satellite disk), 스캐너 등을 포함할 수 있다. 이러한 입력 장치들 및 다른 입력 장치들은 종종 시스템 버스에 연결된 직렬 포트 인터페이스(46)를 통해 처리 장치(21)에 접속되나, 다른 인터페이스들, 이를테면 병렬 포트, 게임 포트, 또는 범용 직렬 버스(universal serial bus; USB)에 의해 접속될 수 있다. 모니터(47) 또는 다른 유형의 디스플레이 장치가 인터페이스, 이를테면 비디오 어댑터(video adapter)(48)를 통해 시스템 버스(23)에 접속될 수도 있다. 모니터(47) 외에, 개인용 컴퓨터는 전형적으로 다른 주변 출력 장치들(도시되지 않음), 이를테면 스피커 및 프린터를 포함한다. 도 1의 예시적인 시스템은 호스트 어댑터(55), 소형 컴퓨터 시스템 인터페이스(Small Computer System Interface; SCSI) 버스(56), 및 SCSI 버스(56)에 접속된 외부 저장 장치(62)도 포함한다.
개인용 컴퓨터(20)는 하나 이상의 원격 컴퓨터들, 이를테면 원격 컴퓨터(49)에의 논리적 접속(logical connection)을 이용하여 네트워크화된 환경(networked environment)에서 동작할 수 있다. 원격 컴퓨터(49)는 다른 개인용 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치(peer device) 또는 다른 공통 네트워크 노드(common network node)가 될 수 있으며, 메모리 저장 장치(50)만이 도 1에 도시되었으나 전형적으로 개인용 컴퓨터(20)에 관하여 상술된 요소들의 다수 또는 전부를 포함한다. 도 1에 기술된 논리적 접속들은 근거리 통신망(local area network; LAN)(51) 및 광역 통신망(wide area network; WAN)(52)을 포함한다. 이러한 네트워킹 환경들은 사무실, 기업 광역(enterprise wide) 컴퓨터 네트워크, 인트라넷(intranet) 및 인터넷에서 흔한 것이다.
LAN 네트워킹 환경에서 사용되는 경우, 개인용 컴퓨터(20)는 네트워크 인터페이스나 네트워크 어댑터(53)를 통해 LAN(51)에 접속된다. WAN 네트워킹 환경에서 사용되는 경우, 개인용 컴퓨터(20)는 전형적으로 모뎀(54) 또는 인터넷과 같은 광역 통신망(52)을 통해 통신들을 설정하기 위한 다른 수단을 포함한다. 내장형이나 외장형일 수 있는 모뎀(54)은 직렬 포트 인터페이스(46)를 통해 시스템 버스(23)에 접속된다. 네트워크화된 환경에서, 개인용 컴퓨터(20)에 대하여 기술된 프로그램 모듈들 또는 이들의 부분들은 원격 메모리 저장 장치에 저장될 수 있다. 도시된 상기 네트워크 접속들은 예시적인 것이며, 컴퓨터들 간의 통신 링크를 설정하는 다른 수단이 사용될 수 있음이 인식될 것이다.
본 발명의 다수의 실시예들이 특히 컴퓨터화된 시스템(computerized system)에 적합하다고 생각되더라도, 본 명세서 내의 어느 것도 본 발명을 그러한 실시예들에 한정하고자 의도되지 않는다. 이와 반대로, 본 명세서에서 사용된 용어로서 "컴퓨터 시스템"이라는 용어는 누름 버튼(press button)을 포함하거나 버튼 누름(button press) 또는 버튼 누름에 상당하는 것을 판정할 수 있는 임의의 모든 장치들을, 그러한 장치들이 본래 전자식, 기계식, 논리적, 또는 가상적인지 여부에 관계없이 포괄하는 것으로 의도된다.
네트워크 환경
도 2는 본 발명의 태양들이 사용되는 예시적인 네트워크 환경을 나타낸다. 물론, 실제의 네트워크 및 데이터베이스 환경들은 다양한 구성들로 배치될 수 있으나, 본 명세서에서 도시된 예시적인 환경은 본 발명이 동작하는 환경의 유형을 이해하기 위한 프레임워크를 제공한다.
네트워크는 클라이언트 컴퓨터들(20a), 서버 컴퓨터(20b), 데이터 소스 컴퓨터들(data source computers)(20c), 및 데이터베이스들(70, 72a, 및 72b)을 포함할 수 있다. 클라이언트 컴퓨터들(20a) 및 데이터 소스 컴퓨터들(20c)은 통신 네트워크(80), 예컨대 인트라넷을 통해 서버 컴퓨터(20b)와 전자적 통신(electronic communication)을 한다. 클라이언트 컴퓨터들(20a) 및 데이터 소스 컴퓨터들(20c)은 통신 인터페이스들(82)을 통해 통신 네트워크에 접속된다. 통신 인터페이스들(82)은 이더넷(Ethernet) 접속, 모뎀 접속 등과 같은 주지의 통신 인터페이스들 중에 임의의 하나가 될 수 있다.
서버 컴퓨터(20b)는 데이터베이스 서버 시스템 소프트웨어를 통한 데이터베이스(70)의 관리를 제공하는데, 이하에서 더욱 완전하게 설명된다. 그러한 것으로서, 서버(20b)는 다양한 데이터 소스들로부터의 데이터의 저장소(storehouse)로서 동작하며 그러한 데이터를 다양한 데이터 소비자들(data consumers)에게 제공한다.
도 2의 예에 있어서, 데이터 소스들은 데이터 소스 컴퓨터들(20c)에 의해 제공된다. 데이터 소스 컴퓨터들(20c)은 통신 네트워크(80)를 통해 데이터를 서버 컴퓨터(20b)에게 통신하는데, 상기 통신 네트워크(80)는 LAN, WAN, 인트라넷, 인터넷 등이 될 수 있다. 데이터 소스 컴퓨터들(20c)은 데이터를 지역적으로 데이터베이스들(72a 및 72b) 내에 저장하는데, 상기 데이터베이스들은 관계형 데이터베이스 서버(relational database server), 엑셀 스프레드시트(excel spreadsheet), 파일 등이 될 수 있다. 예를 들어, 데이터베이스(72a)는 테이블(150, 152, 및 154) 내에 저장된 데이터를 보여준다. 데이터 소스들(20c)에 의해 제공된 데이터는 결합되어 서버(20b)에 의해 유지되는 데이터 웨어하우스(data warehouse)와 같은 대형 데이터베이스 내에 저장된다. 서버 컴퓨터(20b)에 의해 저장된 데이터를 사용하고자 하는 클라이언트 컴퓨터들(20a)은 통신 네트워크(80)를 통해 데이터베이스(70)에 액세스할 수 있다. 클라이언트 컴퓨터들(20a)은 데이터베이스(70) 내에 저장된 데이터에 대한 SQL 질의(예컨대, 업데이트, 삽입, 및 삭제)를 통해 데이터를 요청한다.
개요
이하의 본 발명의 소정의 실시예들에 대해 본 명세서에서 기술된 "객체(object)"는 대화 상자(dialog box), 메뉴, 웹 페이지, 텍스트 페이지, 이동 드로잉 객체(movable drawing object), 또는 당해 기술 분야의 당업자에 의해 공지되고 인식되는 컴퓨터 시스템의 소정의 다른 그러한 아이템들을 구성하는데, 이들에 한정되지 않는다. 본 발명을 설명하기 위해서, 모든 객체들은 편의적으로 네 개의 카테고리들, 즉 (1) 사용자가 복수의 요소들 중에서 하나의 요소를 선택하는 대화 상자, 메뉴 등과 같은 선택 객체(selection object); (2) 편집 가능한 텍스트 객체와 같은 컨텐트 객체(content object); (3) 이동 드로잉 객체(MDO); 및 (4) 오디오 객체의 카테고리들 중의 어느 하나로 분류될 수 있다고 가정할 것이다. 실제로는 보다 많은 카테고리들이 가능하고 바람직한데, 관련 기술 분야에서 충분한 기술을 가진 자가 그러한 추가적인 객체 그룹들의 고유의 특성들을 수용하기 위해 단지 본 명세서에서 설명된 논리(logic)를 확장함으로써 그러한 카테고리들을 포함할 수 있으므로, 그러한 확장들은 본 발명에 의해 예기되며 개시되는 것으로 간주되어야 한다.
버튼이 눌리거나 휠(wheel) 또는 도그본(dogbone)(본 명세서에서 뒤에 설명됨)이 입력 장치 상에서 롤링되거나(rolled), 돌려지거나(turned), 진동되는(rocked) 경우에는 언제든지 그러한 요소의 물리적 상호 작용들이 본 명세서에서 설명된 발명에서 사용하기 위한 논리적 입력을 구성하는 적절한 전자 신호들을 생성한다(그러한 논리적 입력들은 관련 기술 분야의 충분한 기술을 가진 자에 의해 널리 공지되고 인식됨). 물론, 버튼, 휠, 또는 도그본 이외의 입력 장치들과의 물리적 상호 작용으로부터 발생된 논리적 입력들(예컨대, 음성 인식 입력, 적외선 신호 입력, 특허 인식 입력 등 제한 없음)이 본 명세서에서 개시된 본 발명의 다양한 실시예들에서 사용하기에 적합할 것이므로, 본 명세서의 어느 것도 논리적 입력들을 단지 본 명세서에서 명시적으로 개시된 장치들의 그룹으로 한정하는 것으로 해석되어서는 안 된다. 그러나, 편의상 물리적 상호 작용들을 위해 이용 가능한 요소들(예컨대, 버튼)에 대한 참조들은 각각의 그러한 물리적 상호 작용으로부터 발생한 논리적 입력에 대한 직접적인 참조를 구성할 것이다. 다시 말해서, 입력 장치 요소들(버튼, 휠, 도그본, 및 다른 그러한 장치들을 포함함)은, 물리적으로 작동되는 경우에 본 명세서에서 설명된 실시예들에 대한 논리적 입력들을 구성할 것이다. 따라서, 한정되지 않는 단순한 예로서, "ENTER 버튼"은 "ENTER에 대한 논리적 입력"의 일 형태가 된다.
본 발명의 다양한 실시예들의 핵심에는, 사용자가 즉시 식별할 수 있으며, 단순하면서 일관적인 방법으로 정보를 네비게이팅하는데 사용할 수 있는 인터페이스 장치에 대한 기초를 제공하는 주요 버튼/휠/도그본 그룹이 있다. 실시예들은 일반적으로 최소한도로 필요한 명령들{코어 명령들(core commands)}의 그룹에 대한 논리적 버튼들의 코어 그룹 및, 소정의 실시예들에서의 네비게이션 명령들{보조 명령들(secondary commands)}의 보조 세트에 대한 추가적인 논리적 버튼들을 포함한다. 논리적 버튼들은 다양한 실시예들에 의해 이용되어 코어 명령들 및 보조 명령들을 생성하는데, 상기 논리적 버튼들은 개별적인 버튼들 또는 휠이나 도그본으로부터의 별개의 입력 이벤트들의 논리적 등가물(equivalent)(본 명세서에서 뒤에 더욱 완전하게 정의되고 설명됨), 또는 논리적 버튼들의 조합까지도 포함할 수 있다. 다른 실시예들에 있어서는, 상대적으로 소수의 물리적 컴포넌트들을 포함하지만 상당수의 논리적 버튼을 처리하도록 하는, 코어 명령들 및 보조 명령들의 범위를 넘어서는 대단한 네비게이션 기능이 가능한데, 소정의 경우들에 있어서 객체, 애플리케이션이 될 수 있거나 장치에 특유하고 그리고/또는 가변적일 수 있는 일반 명령들을 포함할 수도 있다.
본 발명의 다수의 실시예들의 코어 명령들은 대략 Up, Down, Enter 및 Escape 키보드 키 이벤트들에 상응하는데, 이는 이러한 것들이 스캐닝(scanning)과 선택(selecting), 즉 네비게이션의 가장 기본적인 두 개의 기능들{말하자면, 뷰(view) 및 선택(choice)의 스캐닝, 및 뷰 및 선택 사이에서 수락 또는 거부}에 가장 일반적으로 연관된 명령 호출들이기 때문이다. Up 및 Down 화살표 키들이 스캐닝을 하는 유일한 방법을 아니지만, 메뉴, 리스트 및 스크롤링(scrolling) 뷰는 모두 수직 축을 따라 배치되어 있고 항상 이들 두 개의 키들의 사용에 응답하기 때문에, 이 두 개의 키들이 이러한 기본적인 사용자 작업을 위해 가장 확립되어 있다. 역으로, 이러한 관념은 스캐닝 축에 관한 본 발명에서의 사용자 개념적 모델(user's conceptual model)에 대한 기초를 형성한다. 마찬가지로, Enter 키는 현재 스크린(그래픽 사용자 인터페이스, 즉 GUI) 상에서 선택되는 모든 기능을 활성화하거나 수행하는 상당히 신뢰할 수 있는 방법으로 컴퓨터 사용자들에 의해 이미 보편적으로 알려져 있고, Escape는 Enter에 상반된 의미를 갖는 것으로서 일반적으로 간주되는데, 메일 메시지들을 닫거나 대화 상자들을 닫는 것과 같은 통상적인 백 아웃(back out) 시나리오들을 다룬다. 그러나, 본 발명의 다수의 실시예들에 대해 중요한 면은 네비게이션 기능들이 네비게이팅되는 애플리케이션 객체 및 문맥에 따라 다를 수 있으며, 네비게이션의 추가적인 기능들이 보조 명령들을 통해 구현될 수 있다는 점이다.
Escape 기능에 관해서, 본 명세서에서 설명된 본 발명의 다양한 실시예들의 다른 중요한 면은, 전통적인 Escape 기능이 현재까지 충분했다는 사실에도 불구하고, 오랫동안 계속되는 Escape 기능의 구현은 실제적으로 상당히 제한된다는 점이다(사실상, 본 명세서에서 설명된 실시예들의 다수에 대한 코어 명령으로서 기능하도록 제한됨). 예를 들어, 애플리케이션의 윈도우(window) 객체를 닫는데 있어서, 대부분의 윈도우들은 사실상 Escape 키에 응답하지 않고, 대신에 'Alt-F4' 키보드 키를 누르는 것에만 응답한다는 점이 널리 알려져 있다. 또한, 네비게이션의 "히스토리(history)"(즉 네비게이션이, 종종 임의의 종류의 트리 구조의 데이터나 다른 그러한 객체들을 네비게이팅한 결과가 되는 소정의 종류의 논리적 경로를 따름)를 갖는 애플리케이션에 관해서, 윈도우를 닫는 동작은 결코 뒤로(Back){즉, 윈도우를 열린 상태로 두고, 표시 히스토리(viewing history)를 기반으로 하여 현재의 문맥 내에서 이전의 컨텐트 또는 상이한 컨텐트로 복귀하는 것} 가고자 하는 사용자의 필요 및 요청만큼 중요하지도 널리 사용되지도 않는다. 그러므로, 본 발명의 다수의 실시예들에 있어서, Escape의 개념을 보다 강력한 OUT 버튼에 대한 "Out"(본 명세서에서 뒤에 상세하게 설명됨)으로 대체하였는데, 다른 실시예들은 적절한 경우에 계속해서 Escape 또는 Back을 Out에 매핑할 것이다.
이러한 이론적 근거를 기반으로 하여, 본 발명의 다양한 실시예들은 집합적으로 코어 네비게이션 명령들을 나타내는 OUT, UP, DOWN, 및 ENTER에 대한 네 개의 논리적 버튼들을 갖는 장치를 위한 것이며, 이 주요한 기능의 그룹은 보조 명령들을 이용하는 본 발명의 다수의 확장된 실시예들의 토대가 된다. 코어 명령들에 관한 이러한 기본적인 버튼들의 그룹 및 이에 대응하는 기능은 무한히 다양한 사용자 애플리케이션들에 맞춰질 수 있다. 예를 들어, 네 개의 기본적인 네비게이션 버튼 기능들, 즉 "나브버튼들(navbuttons)"은 무선 디스플레이, 원격 제어, 키 포브(key fob), 손목 시계, 스마트 폰, 음악 장치, 및 다른 그러한 사용자 애플리케이션들과 같은 다양하고 상이한 제어 표면들(control surfaces)(그러한 것들이 전통적인 컴퓨팅 장치들로 간주되는지 여부는 관계없음)에 적용될 수 있는데, 이들에 한정되지 않는다.
더욱이, 사실상 시각적인 결과, 이를테면 디스플레이 모니터 상에서 볼 수 있는 결과를 나타내는 실시예들에 대해서, 비시각적인 결과들(non-visual effects)도 예기되고 포함된다. 예를 들어, 만약 한 세트의 버튼들이 디스플레이 장치 상에서 커서(cursor)를 위로 또는 아래로 이동시키는 것으로 기술된다면, 들을 수 있는 결과(예컨대, 볼륨의 증가 또는 감소) 또는 촉각으로 알 수 있는 결과(예컨대, 난방 장치 표면 온도의 증가 또는 감소)와 같이 결과가 비시각적인 대체 실시예가 예기된다. 그러므로, 본 명세서에서 비시각적인 결과들이 충분히 예기되기 때문에, 본 명세서에서의 어느 것도 본 발명의 다양한 실시예들을 시각 지향적인(visually-oriented) 결과들로 한정하는 것으로 해석되어서는 안 된다.
마지막으로, 본 명세서에서 개시된 실시예들의 대다수가 자립형 장치(stand-alone device)에 이상적이더라도, 보다 큰 장치의 일부로서 편입될 수도 있다. 예를 들어, 다수의 실시예들은 그들 자신들을 (다른 버튼들 및 인터페이스들과 함께) 디스플레이 장치의 옆에 있는 키보드 상의 {가능한 일단의 화살표 키들 및 페이징 키들(paging keys) 사이의} 일단의 버튼들, 터치 스크린의 가상 버튼(또는 임의의 다른 가상 구현물) 등으로 제한 없이 명시할 수 있다는 점이 예기된다. 어떠한 경우든지, 본 명세서의 어느 것도 본 발명의 임의의 태양을 자립형 실시예들로 한정하는 것으로 해석되어서는 안 된다.
코어 명령들 및 관련 실시예들
이하의 명령들은 본 명세서를 통하여 사용되는 키 코어 명령들 중의 일부 및 특정 문맥에서 그러한 명령들이 시스템에 의해서 해석될 수 있는 방법을 포함한다.
●UP : 한 단위(unit), 라인, 셀(cell), 스크롤 증분(scroll increment), 페이지, 또는 스크린 위로 이동하기(올리기); MS 윈도즈(MS Windows) APPCOMMAND_NAVPAD_UP 이벤트; 또는 USB HID NAVPAD_UP 이벤트.
●DOWN : 한 단위, 라인, 셀, 스크롤 증분, 페이지, 또는 스크린 아래로 이동하기(내리기); MS 윈도즈 APPCOMMAND_NAVPAD_DOWN 이벤트; 또는 USB HID NAVPAD_DOWN 이벤트.
●NEXT : 다음 객체, 필드, 링크 또는 패인(pane)으로 이동하기(뛰어넘기); MS 윈도즈 APPCOMMAND_NAVPAD_NEXT 이벤트; 또는 USB HID NAVPAD_DOWN 이벤트.
●PREV : 이전 객체, 필드, 링크 또는 패인으로 이동하기(뛰어넘기); MS 윈도즈 APPCOMMAND_NAVPAD_PREV 이벤트; 또는 USB HID NAVPAD_PREV 이벤트.
●ENTER : 현재의 객체에 대해 동작을 취하기(수행하기)(키보드 상의 Enter 키 또는 다른 문맥에서의 OK 버튼과 유사함); MS 윈도즈 APPCOMMAND_NAVPAD_ENTER 이벤트; 또는 USB HID NAVPAD_ENTER 이벤트.
●CENTER : 현재의 객체에 대해 동작을 취하기(수행하기)(키보드 상의 Enter 키와 유사하나 상이함); MS 윈도즈 APPCOMMAND_NAVPAD_CENTER 이벤트; 또는 USB HID NAVPAD_CENTER 이벤트.
●OUT : 이전에 열렸던 객체, 페이지, 또는 뷰로 복귀하기; 활성 객체(active object)를 닫기{문맥에 적절한 Esc, Back, 또는 본 명세서의 다른 곳에서 기술된 연쇄적(cascading) Esc/Back 조합과 유사함}; MS 윈도즈 APPCOMMAND_NAVPAD_OUT 이벤트; 또는 USB HID NAVPAD_OUT 이벤트.
●MORE : 현재의 객체에 대해 가용한 옵션들에 대한 세부 사항들을 표시하기 또는 상기 옵션들을 수행하기; MS 윈도즈 APPCOMMAND_NAVPAD_MORE 이벤트; USB HID NAVPAD_MORE 이벤트.
●SWITCH : 다음 윈도우, 스크린, 페이지, 애플리케이션, 또는 기능적 제공물(functional offering)로 전환하기; MS 윈도즈 APPCOMMAND_NAVPAD_SWITCH 이벤트; 또는 USB HID NAVPAD_SWITCH 이벤트.
도 3a는 본 발명의 소정의 실시예들에서의 ENTER 버튼에 대한 논리를 기술하는 흐름도이다. 블록(302)에서 ENTER 버튼이 눌리는 경우에, 블록(304)에서 ENTER 버튼 시스템은 객체가 (컨텐트 객체나 이동 드로잉 객체가 아니고) 선택 객체(selection object)인지 여부를 판정하는데, 만약 그렇지 않다면, 본 실시예에 대해 다른 어떠한 이벤트도 발생하지 않으며 블록(350)에서 시스템은 복귀한다(컨텐트 객체들 및 이동 드로잉 객체들에 대해 본 발명의 널 이벤트(null event) 이외의 이벤트들이 확실히 가능한데, 이는 관련 기술 분야의 통상의 기술을 가진 자에 의해 인식될 것임). 반면에, 만약 객체가 사실상 선택 객체라면, 블록(306)에서 시스템은 상기 객체 내의 활성 요소(active element)가 이미 선택되어 있는지 여부를 판정한다. 만약 활성 요소가 이미 선택되었다면, 블록(312)에서 키보드 상의 Enter 키를 누르는 것에 상응하는 "수행(execute)" 이벤트가 발생하고(그리고 이것은 적절하게 선택된 요소의 Open, Accept, 또는 OK 이벤트를 발생시키는데, 그러한 이벤트들은 당해 기술 분야의 당업자에 의해 알려지고 인식됨), 그리고 나서 블록(350)에서 시스템은 복귀한다. 반면에, 만약 활성 요소가 아직까지 선택되지 않았다면, 그 다음에 블록(308)에서 시스템은 상기 객체의 요소가 초기 포커스(Initial Focus)로서(즉 디폴트 선택 요소로서) 표시되어 있는지 여부에 대해 판정하고, 만약 표시되어 있다면 블록(314)에서 초기 포커스로 표시된 요소가 선택되고, 그 후에 블록(350)에서 시스템은 복귀한다. 마지막으로, 만약 어떠한 초기 포커스도 존재하지 않는다면, 블록(316)에서 시스템은 객체의 첫 번째 열거된 요소를 선택하고 블록(350)에서 복귀한다.
물론, 소정의 상황 하에서는 도 3b에서 기술된 논리 흐름에 대한 변형들이 바람직할 수 있고, 바람직할 것이다. 예를 들어, 도 3a에서 기술된 ENTER 버튼에 대한 논리의 그러한 변형을 단순히 기술하는 흐름도인 도 3b를 살펴보자. 이 실시예에서는{(a) 블록(304)에서 객체가 선택 객체이고, (b) 블록(306)에서 활성 요소가 아직 선택되지 않았으며, (c) 블록(308)에서 상기 객체가 초기 포커스를 갖지 않는다고 이미 판정한 후임(도 3a의 방법과 동일함)}, 블록(310)에서, 도 3b의 시스템은 또한 임의의 활성 요소들이 가시적인지(visible)를 판정하고, 만약 가시적이면, 그 다음에 블록(318)에서 시스템은 첫 번째 가시 요소(visible element)를 선택할 것이고, 만약 볼 수 없다면, 블록(316)에서 시스템은 첫 번째 열거된 요소를 선택할 것이다. 논리에 있어서의 이러한 미묘한 변형들 및 다른 그러한 변형들이 본 명세서에서 본 발명에 의해 개시된다.
이들 특정 실시예들의 방법들뿐만 아니라 본 명세서의 다른 방법들을 이용함으로써, 소정의 상황들에서 사용자는 (어느 요소도 아직 선택되지 않는 경우) ENTER 버튼을 한번 눌러서 요소를 선택할 수 있으며, 그리고 나서 다시 ENTER 버튼을 눌러서 상기 요소를 수행할 수 있는 것으로(키보드 상의 Enter 키를 누르는 것에 상응함) 예기된다는 점에 유의해야 한다.
도 4a는 본 발명의 소정의 실시예들에서의 UP 버튼에 대한 논리를 기술하는 흐름도이다. 블록(402)에서 UP 버튼이 눌리는 때에, 블록(404)에서 UP 버튼 시스템은 객체가 선택 객체인지 여부를 판정한다. 만약 그렇지 않다면, 블록(422)에서 시스템은 객체가 컨텐트 객체인지 아니면 이동 드로잉 객체인지 여부를 판정한다. 만약 객체가 이동 드로잉 객체라면, 블록(432)에서 시스템은 단순히 객체를 미리 설정된 거리만큼(예컨대, 1 픽셀) 위로 조금씩 움직이거나(이동하거나), 또는 본 명세서에서(그리고 도면들의 다른 부분들에서) 추정되듯이, 만약 그 방향으로의 더 이상의 이동이 가능하지 않거나 허용되지 않는다면 아무런 일도 하지 않는다. 지금은 상기 원하는 방향으로의 이동이 가능하지 않거나 허용되지 않는 경우의 그러한 "널 이벤트(null event)"의 취급에 대한 논리가 설명되지 않지만, 그러한 논리의 실례가 파선 블록들에 의해 도면에 도시되며, 본 명세서에서 뒤에 컨텐트 객체들에 대해서만 설명되는데, 그러한 논리는 적절한 경우에 나머지 도면들에 대해 추정되고 내포될 수 있으며, 그래야만 한다.
상기 도면을 다시 살펴보면, 만약 객체가 사실상 컨텐트 객체라면, 블록(424)에서 시스템은 객체 내의 텍스트가 하나의 라인으로 구성되는지 아니면 하나 보다 많은 수의 라인들로 구성되는지 여부를 판정한다. 만약 텍스트 객체가 하나 보다 많은 수의 라인들로 구성된다면, {본 명세서에서 이전에 언급되었듯이, 원하는 방향으로의 이동이 가능하지 않거나 허용되지 않는 경우의 "널 이벤트"의 처리에 대한 논리를 설명하기 위해} 블록(426)에서 시스템은 또한 삽입 지점(insertion point)이 현재 첫 번째 라인 상에 있는지의 여부를 판정하고, 만약 그렇다면 시스템은 아무런 일도 하지 않고 블록(450)에서 복귀한다. 그렇지 않다면, 블록(434)에서 시스템은 삽입 지점을 하나의 라인만큼 위로 이동하고 나서 블록(450)에서 복귀한다. 반대로, 만약 텍스트 객체가 오직 하나의 라인으로만 구성된다면, 블록(428)에서 시스템은 현재 삽입 지점이 라인의 첫 번째 문자 앞에 있는지 여부를 판정하고, 만약 그렇다면 시스템은 아무런 일도 하지 않고 블록(450)에서 복귀한다. 그렇지 않다면, 블록(436)에서 시스템은 삽입 지점을 좌측으로 하나의 문자만큼 이동하고 나서 블록(450)에서 복귀한다.
만약 블록(404)에서 시스템이 상기 객체가 실제로 선택 객체라고 판정한다면, 블록(406)에서 시스템은 객체 내의 활성 요소가 이미 선택되었는지를 판정한다. 만약 활성 요소가 이미 선택되었다면, 블록(412)에서 시스템은 리스트 내의 이전 요소를 선택하며(그리고 암시적으로, 상기 이전에 선택된 요소는 선택이 해제됨), 그리고 나서 블록(450)에서 시스템은 복귀한다. 반면에, 만약 활성 요소가 아직 선택되지 않았다면, 블록(408)에서 시스템은 객체의 요소가 초기 포커스로서(디폴트 선택 요소로서) 표시되었는지 여부에 대해 판정하고, 만약 그렇다면, 블록(414)에서 초기 포커스로 표시된 요소가 선택되고 그 후에 블록(450)에서 시스템은 복귀한다. 마지막으로 만약 어떠한 초기 포커스도 존재하지 않는다면, 블록(416)에서 시스템은 객체의 첫 번째 열거된 요소를 선택하고 블록(450)에서 복귀한다.
도 4b는 도 3b와 도 3a를 구별하기 위해서 본 명세서에서 이전에 도입되었던 유사한 변형을 기반으로 하여 도 4a에서 기술된 UP 버튼에 대한 논리의 변형을 기술하는 흐름도이다. 도 4b의 실시예에 있어서{다시 한번, (a) 블록(404)에서 객체가 선택 객체이고, (b) 블록(406)에서 활성 요소가 아직 선택되지 않았으며, (c) 블록(408)에서 상기 객체가 초기 포커스를 갖지 않는다고 이미 판정한 후임(도 4a의 방법과 동일함)}, 블록(410)에서 도 4b의 시스템은 또한 임의의 활성 요소들이 가시적인지 여부를 판정하고, 만약 가시적이면, 그 다음에 블록(418)에서 시스템은 첫 번째 가시 요소를 선택할 것이고, 만약 그렇지 않다면, 블록(416)에서 시스템은 첫 번째 열거된 요소를 선택할 것이다.
도 5a는 본 발명의 소정의 실시예들에서의 DOWN 버튼에 대한 논리를 기술하는 흐름도이다. 블록(502)에서 DOWN 버튼이 눌려지는 때에, 블록(504)에서 DOWN 버튼 시스템은 객체가 선택 객체인지 여부를 판정한다. 만약 그렇지 않다면, 블록(522)에서 시스템은 객체가 컨텐트 객체인지 아니면 이동 드로잉 객체인지 여부를 판정한다. 만약 객체가 이동 드로잉 객체라면, 블록(532)에서 시스템은 단순히 객체를 미리 설정된 거리만큼(예컨대, 1 픽셀) 아래로 조금씩 움직이거나(이동하거나), 또는 본 명세서에서(그리고 도면들의 다른 부분들에서) 추정되듯이, 만약 그 방향으로의 더 이상의 이동이 가능하지 않거나 허용되지 않는다면 아무런 일도 하지 않는다. 반면에, 만약 객체가 컨텐트 객체라면, 블록(524)에서 시스템은 객체 내의 텍스트가 하나의 라인으로 구성되는지 아니면 하나 보다 많은 수의 라인들로 구성되는지 여부를 판정한다. 만약 텍스트 객체가 하나 보다 많은 수의 라인들로 구성된다면, 블록(526)에서 시스템은 또한 현재 삽입 지점이 마지막 라인 상에 있는지 여부를 판정하고, 만약 그렇다면 시스템은 아무런 일도 하지 않고 블록(550)에서 복귀한다. 그렇지 않다면, 블록(534)에서 시스템은 삽입 지점을 하나의 라인만큼 아래로 이동하고 나서 블록(550)에서 복귀한다. 반대로, 만약 텍스트 객체가 오직 하나의 라인으로만 구성된다면, 블록(528)에서 시스템은 현재 삽입 지점이 라인의 마지막 문자 뒤에 있는지 여부를 판정하고, 만약 그렇다면 시스템은 아무런 일도 하지 않고 블록(550)에서 복귀한다. 그렇지 않다면, 블록(536)에서 시스템은 삽입 지점을 우측으로 하나의 문자만큼 이동하고 나서 블록(550)에서 복귀한다.
만약 블록(504)에서 시스템이 상기 객체가 실제로 선택 객체라고 판정한다면, 블록(506)에서 시스템은 객체 내의 활성 요소가 이미 선택되었는지 여부를 판정한다. 만약 활성 요소가 이미 선택되었다면, 블록(512)에서 시스템은 리스트 내의 다음 요소를 선택하며(그리고 암시적으로, 상기 이전에 선택된 요소는 선택이 해제됨), 그리고 나서 블록(550)에서 시스템은 복귀한다. 반면에, 만약 활성 요소가 아직 선택되지 않았다면, 블록(508)에서 시스템은 객체의 요소가 초기 포커스로서(디폴트 선택 요소로서) 표시되었는지 여부에 대해 판정하고, 만약 그렇다면, 블록(514)에서 초기 포커스로 표시된 요소가 선택되고, 그 후에 블록(550)에서 시스템은 복귀한다. 마지막으로 만약 어떠한 초기 포커스도 존재하지 않는다면, 블록(516)에서 시스템은 객체의 마지막 열거된 요소를 선택하고 블록(550)에서 복귀한다.
도 5b는 도 3b와 도 3a 및 도 4b와 도 4a를 구별하기 위해서 본 명세서에서 이전에 도입되었던 유사한 변형을 기반으로 하여 도 5a에서 기술된 DOWN 버튼에 대한 논리의 변형을 기술하는 흐름도이다. 도 5b의 실시예에 있어서{다시 한번, (a) 블록(504)에서 객체가 선택 객체이고, (b) 블록(506)에서 활성 요소가 아직 선택되지 않았으며, (c) 블록(508)에서 상기 객체가 초기 포커스를 갖지 않는다고 이미 판정한 후임(도 5a의 방법과 동일함)}, 블록(510)에서 도 5b의 시스템은 또한 임의의 활성 요소들이 가시적인지 여부를 판정하고, 만약 가시적이면, 블록(518)에서 시스템은 마지막 가시 요소를 선택할 것이고, 만약 그렇지 않다면, 블록(516)에서 시스템은 마지막 열거된 요소를 선택할 것이다.
전통적인 Escape 기능이 오랫동안 사용되어왔다는 사실에도 불구하고, 그것은 그럼에도 상당히 제한적이며 매우 한정되어 있다. 예를 들어, 윈도우를 닫는데 있어서, 대부분의 윈도우들은 사실상 Escape 키에 전혀 응답하지 않고, 대신에 'Alt-F4' 키를 누르는 것에만 응답한다. 또한, 네비게이션의 "히스토리(history)"(즉 네비게이션이 소정의 종류의 논리적 경로를 따름)를 갖는 애플리케이션들에 관해서, 윈도우를 닫는 동작은 결코 뒤로(Back){즉, 윈도우를 열린 상태로 두고, 표시 히스토리(viewing history)를 기반으로 하여 현재의 문맥 내에서 이전의 컨텐트 또는 상이한 컨텐트로 복귀하는 것} 가고자 하는 사용자의 필요와 요청만큼 중요하지 않다(또한 널리 사용되지도 않음). 그러므로, OUT 버튼과 관련하여, 본 발명의 소정의 실시예에 대해서는 Escape 또는 Back의 개념을 보다 강력한 "Out"의 개념으로 대체한다.
소정의 연쇄적 실시예들에 있어서, OUT은 Back 및 Escape 쌍방의 명령 호출들에 의해 제공되는 기능의 논리적인, 관리된 조합일 수 있다. 모든 윈도우들이 Escape에 응답하는 운영 체제에서, 이들 키들은 다양한 애플리케이션 문맥들에서 좀처럼 완전하고 일관적으로 사용되지 않기 때문에, 이들 두 개의 버튼들을 병합하는 것은 매우 유용하다. 물론, Back 및 Escape가 모두 이용되고, 각각이 구별 가능한 기능들을 갖는 소수의 애플리케이션 문맥들에서는, 사용자가 OUT 버튼이 어느 키보드 키를 복제할 것인지 추측할 것으로 기대하는 것은 비현실적이며 비효율적일 것이다. 본 발명의 소정의 실시예들에 의해 제공되는 한가지 해법은 Back 키 명령이 발생되는 때에, 그 명령이 애플리케이션에 의해 이해되는 경우에는 Back 키 명령을 생성하고, Back 키 명령이 애플리케이션에 의해 이해되지 않는 경우에는 Escape 키 명령을 대신 생성하도록 OUT 버튼을 사용하는 것이다(즉, Back 명령에 이어 Escape 명령을 연쇄적으로 수행하는 것). 이러한 방법으로, 히스토리를 갖는 애플리케이션들(및 그러한 것으로서, 뒤로(Back) 이동하는 능력이 Escape를 통해 윈도우를 닫는 것보다 더욱 빈번하면서 중요한 경우)은 Back 키 기능이라는 더욱 큰 이익을 얻는 반면에, Back 키 기능을 갖지 않는 애플리케이션들은 자동적으로 Escape 키에 의해 부여되는 모든 기능을 얻는다. OUT 버튼을 통한 Back/Escape 키 선택의 이러한 방법론을 구현하기 위해서, 본 명세서에서 개시된 본 발명의 소정의 실시예들은 먼저 운영 체제 셸 훅(shell hook)을 사용하여 "App 명령(App Command)"(애플리케이션 프로그램에 대한 애플리케이션 명령)으로서 Back 키 명령을 생성하고 나서, 만약 이 Back 명령이 애플리케이션에 의해 거부되면, 키보드 상의 Escape 키를 누르는 것에 상응하는 Escape 명령을 생성한다. 물론, 다른 실시예들은 단순히 Escape나 Back을 OUT에 적절하게 매핑할 수 있는데, 본 명세서에 포함된 어떤 것도 OUT의 근본적인 기능을 제한하고자 의도되지는 않는다. 그럼에도 불구하고, 본 명세서에서는 OUT이 Back/Escape의 연쇄적(cascading) 기능을 나타낸다고 가정할 것이다.
도 6a는 본 발명의 소정의 실시예들에서의 OUT 버튼의 방법에 대한 논리를 기술하는 흐름도이다. 블록(602)에서 OUT 버튼이 눌리는 때에, 블록(604)에서 OUT 버튼 시스템은 운영 체제 셸 훅을 이용하여, 사용자가 키보드 상의 Back 키{상기 키는 때때로 브라우저(Browser) Back 키 또는 소정의 다른 등가물이라고도 하며, 상기 키의 동작은 때때로 마우스 상의 오른쪽 클릭(click)으로 구현되기도 함}를 누름으로써 생성되는 명령에 상응하는 애플리케이션 명령을 애플리케이션에게 발생시킨다. 그리고 나서, 블록(606)에서 시스템은 Back 애플리케이션 명령이 거부되었는지 아닌지 여부를 판정하고, 만약 거부되지 않았다면, 블록(650)에서 시스템은 복귀한다. 그렇지 않다면, 블록(608)에서 시스템은 Escape 명령을 발생시키고 나서 블록(650)에서 복귀한다.
도 6b는 도 6a에 도시된 방법론을 기반으로 하여 OUT 버튼의 방법에 대한 보다 복잡한 논리를 기술하는 흐름도이다. 도 6b에 있어서, 블록(602)에서 OUT 버튼이 눌리는 경우에, 블록(610)에서 시스템은 먼저 윈도우가 그 윈도우의 히스토리의 시작점에 있는지{따라서 "뒤로(back)" 갈 곳이 없음} 여부를 확인한다. 바로 그러한 경우에, 상기 방법은 다음의 두 가지 중에 하나의 일을 할 수 있다: 즉 (a) OUT 버튼을 무시하고(널 이벤트) 즉시 복귀하거나, 아니면 보다 바람직하게는, (b) Escape를 통해 윈도우를 닫을 수 있다. 이런 후자의 선택을 구현하기 위해서는, 다음의 두 가지 방법 중에서 하나가 사용될 수 있다: 즉 (i) 시스템이 계속하여 Back 명령을 보낼 수 있는데, {"뒤로(back)" 갈 곳이 없기 때문에} 이 애플리케이션 명령이 아마도 애플리케이션에 의해서 거부될 경우, 시스템은 계속하여 Escape 명령을 보내거나(이는 도 6a에 반영된 방법론임), 또는 (ii) 시스템이 바로 Escape 명령을 보낼 수 있는데, 이는 현재의 도면에서 기술된다. 따라서, 블록(610)에서 만약 시스템이 실제로 윈도우가 그 윈도우의 히스토리의 시작점에 있다고 판정한다면, 시스템은 바로 블록(608)으로 진행하여 Escape 명령을 발생시키고 나서 블록(650)에서 복귀한다. 그렇지 않다면, 블록(604)에서 시스템은 다시 운영 체제 셸 훅을 이용하여 애플리케이션에게 Back에 대한 애플리케이션 명령을 발생시키고, 그 다음에 블록(606)에서 시스템은 상기 Back 애플리케이션 명령이 거부되었는지 아닌지 여부를 판정하며, 만약 거부되지 않았다면, 블록(650)에서 시스템은 복귀하며, 그렇지 않다면, 블록(608)에서 시스템은 Escape 명령을 발생시키고 나서 블록(650)에서 복귀한다.
본 발명의 수 개의 상이한 물리적 실시예들이 틀림없이 가능하다. 도 7a에 도시된 하나의 그러한 실시예는 패드(pad)나 장치 상에 있는 것과 같은 네 개의 버튼 장비인데, 상기 장비는 도시된 바와 같이 마름모 형태로 배치된 ENTER(702), OUT(704), UP(706), 및 DOWN(708) 버튼들을 포함한다. 도 7b는 유사한 방위(orientation)를 가지지만 네 개의 버튼들이 수직으로 배치된, 이를테면 컴퓨팅 장치의 우측 가장자리를 따라 배치된 본 발명의 대체 실시예이다. 도 7c는 수평으로 배치된, 이를테면 컴퓨팅 장치의 전면 가장자리를 따라 배치된 버튼들을 보여주는 본 발명의 다른 대체 실시예이다. 반면에, 도 7d는 ENTER(702)가 중앙에 있고, UP(706) 및 DOWN(708)이 각각 ENTER(702)의 위와 아래에 수직으로 위치하며, OUT(704)은 선형으로 배치된 상기 세 개의 버튼들의 좌측 위 편에 있도록 하는 수정된 수직 방식으로 배치된 버튼을 나타내는 본 발명의 또 다른 실시예이다. 물론, 명령들의 상이한 조합이 소정의 4-버튼(four-button) 장치들에 대해 적절할 수 있는데, 도 7e의 장치는 이 장치의 네 개의 버튼들이 UP, DOWN, PREV, 및 NEXT 명령에 대응된다는 점을 제외하고는 도 7a의 장치와 유사한 장치를 나타낸다.
그러나, 본 명세서에서 개시된 4-버튼 설계는 논리적이지만 물리적이지 않기 때문에, 본 발명의 소정의 실시예들은 상이한 물리적 구성 요소들을 이용할 수도 있다. 예를 들어, 도 8a에 도시된 바와 같이, 본 발명의 일 실시예는 하나의 수직 휠(802)과 두 개의 버튼들(804 및 806)을 갖는 휠/버튼 조합을 포함하는데, 상기 휠(802)은 휠이 돌려지는 방향(도면에 도시된 바와 같이 각각 위로 또는 아래로)을 기반으로 하여 UP 및 DOWN 기능들 모두와 논리적으로 일치하는 반면에, 버튼들(804 및 806)은 눌리는 경우 각각 ENTER 및 OUT에 상호 관련된다. 이 실시예에서의 휠(802)은, 휠의 각각의 경미한 상하로의 롤링이 입력을 구성하도록 된 마우스 장치 상의 휠과 유사한 방식으로 동작할 수 있는데, 이는 당해 기술 분야에서 잘 알려져 있으며 인식되어 있다. 도8b는 휠/버튼 조합의 일 실시예에 대한 대체 레이아웃을 나타내며, 일 실시예에 대한 또 다른 그러한 레이아웃이 도 8c에 도시되어 있다.
도 9는 휠(902)이 UP 및 DOWN에 대응하는 상하 이동을 지원할 뿐만 아니라, 미리 설정된 최소의 임계값의 압력이 적용되는 경우에 ENTER에 대한 버튼으로서도 동작하는 본 발명의 다른 대체 실시예를 나타낸다. 이 압력 입력(press entry) 특징은 휠(902){본 명세서에서는 클릭킹 휠(clicking wheel)이라고 함}로 하여금 세 개의 별개의 입력들을 수신할 수 있도록 하는데, 제4 입력인 OUT은 클릭킹 휠(902)에 가까이 근접한 버튼(904)에 대응한다.
도 10에 도시된 바와 같이, 본 발명의 다른 실시예에서는, 단일 물리적 요소인 진동 휠(rocking wheel)(1002)이 4-버튼 설계를 사용한다. 진동 휠(1002)은 수직의 롤링 동작(rolling movement)을 양보하지 않으면서 좌우로의 진동 동작(rocking movement)을 더 지원하는 점을 제외하고는 보통의 휠과 유사하다. 이러한 능력에 의해, 좌측으로의 진동은 ENTER와 상호 관련되며, 우측으로의 진동은 OUT과 상호 관련되는데, UP 및 DOWN은 계속해서 휠(1002)의 상하로의 롤링으로부터 파생된다(도면에 도시된 바와 같음). 더욱이, 만약 본 실시예에 대해 도시된 진동 휠이 도 9의 클릭킹 휠의 압력 입력을 더 포함한다면, 그러한 실시예는 본 명세서에서 뒤에 상세하게 논의되는 소정의 부가적인 흥미로운 실시예들을 제공하는 5+ 버튼 구성들의 일부에서 사용될 수 있는 제5 버튼 능력을 얻을 것이다.
도 11a는 도 8a에서 개시된 본 발명과 유사하지만, 전통적인 휠 대신에 도그본(dogbone)(1102)이 이용되는 본 발명의 대체 실시예를 나타낸다. 도그본(1102)은 본질적으로 특히 엄지손가락에 의한 사용에 적합한, 인간 공학적으로 수정된 휠 장치인 반면에, 전통적인 휠은 집게손가락에 의한 사용에 대해 더욱 적합하다. 이 실시예에 있어서, 도그본(1102)의 수직의 상하 롤링 동작은 (도면에 도시된 바와 같이) 쌍방의 UP 및 DOWN 기능들 각각에 논리적으로 일치하는 반면, 버튼들(1104 및 1106)은 눌리는 경우에 ENTER 및 OUT 각각에 상호 관련된다. 도 11b는 도그본/버튼 조합의 실시예에 대한 대체 레이아웃을 나타내며, 실시예에 대한 또 다른 그러한 레이아웃이 도 11c에 도시되어 있다.
도 12는 도그본(1202)이 UP 및 DOWN에 대응하는 상하 이동을 지원할 뿐만 아니라, 미리 설정된 최소의 임계값의 압력이 적용되는 경우에 ENTER에 대한 버튼으로서도 동작하는 본 발명의 다른 대체 실시예를 나타낸다. 이 압력 입력(press entry) 특징은 도그본(1202){본 명세서에서는 클릭킹 도그본(clicking dogbone)이라고 함}으로 하여금 세 개의 별개의 입력들을 수신할 수 있도록 하는데, 제4 입력인 OUT은 클릭킹 도그본(1202)에 가까이 근접한 버튼(1204)에 대응한다.
마지막으로, 도 13에 도시된 본 발명의 또 다른 실시예에서는, 단일 물리적 요소인 진동 도그본(rocking dogbone)(1302)이 4-버튼 설계를 사용한다. 진동 도그본(1302)은 수직의 롤링 동작(rolling movement)을 양보하지 않으면서 좌우로의 진동 동작(rocking movement)을 더 지원함으로써 도 10에 도시된 진동 휠(1002)과 유사하다. 이러한 능력에 의해, 도그본(1302)의 좌측으로의 진동은 ENTER와 상호 관련되며, 우측으로의 진동은 OUT과 상호 관련되는데, UP 및 DOWN은 계속해서 도그본(1302)의 상하로의 롤링으로부터 파생된다(도면에 도시된 바와 같음). 더욱이, 만약 본 실시예에 대해 도시된 진동 도그본이 도 12의 클릭킹 도그본의 압력 입력을 더 포함한다면, 그러한 실시예는 본 명세서에서 뒤에 상세하게 논의되는 소정의 부가적인 흥미로운 실시예들을 제공하는 5+ 버튼 구성들의 일부에서 사용될 수 있는 제5 버튼 능력을 얻을 것이다.
확장 명령들 및 관련 실시예들
본 명세서에서 지금까지 개시된 본 발명의 실시예들은 네 개의 기본적인 명령들인 ENTER, UP, DOWN, 및 OUT에 직접 매핑되는 네 개의 버튼들(또는 휠 및 도그본의 경우에 버튼들에 대한 논리적 등가물들)을 포함하는 설계를 중점적으로 다루었다. 객체들을 네비게이팅하는데 있어 가장 유용한 명령들을 포함하는 그러한 단순 설계의 위력을 부인할 수는 없으나, 네 개의 방법들, 즉 물리적, 시간적, 논리적, 및 이들의 조합의 방법들 중의 하나의 방법으로 버튼들의 기능을 확장함으로써 보다 광범위한 범위의 기능을 이용할 수 있게 된다. 예를 들어, 소정의 실시예들에서의 부가적인 명령들은, 네 개의 기본적인 명령들인 ENTER, UP, DOWN, 및 OUT 이외에, 6-논리적 버튼(six-logical-button) 구현예에 대해서는 PREV와 NEXT를 포함하고, 8-논리적 버튼(eight-logical-button) 구현예에 대해서는 PREV, NEXT, MORE, 및 SWITCH를 포함할 수 있다.
논리적 4-명령 장비를 확장하는 한가지 방법은, 단순히 더 많은 버튼들(또는 버튼의 논리적 등가물들)을 추가하고 부가적인 명령들을 매핑함으로써 물리적 4-버튼 장비를 확장하는 것이다. 예를 들어, 만약 도 10에서 도시된 진동 휠의 4-버튼 기능이 도 9의 클릭킹 휠의 압력 입력 기능을 더 포함한다면, 이 확장 휠{지금부터는 수퍼 휠(super wheel)이라고 함}은 논리적으로 제5 버튼을 명시하게 되고, 따라서 제5 명령을 직접 사용할 수 있다(또는 본 명세서에서 뒤에 논의되는 논리적 또는 조합적 설계에서 이용될 수 있음). 마찬가지로, 만약 도 13에 도시된 진동 도그본의 4-버튼 기능이 도 12의 클릭킹 도그본의 압력 입력 기능을 더 포함한다면, 이 확장 도그본{지금부터는 수퍼 도그본(super dogbone)이라고 함}은 논리적으로 제5 버튼을 명시하게 되고, 따라서 제5 명령을 직접 사용할 수 있다(또는 다시, 본 명세서에서 뒤에 논의되는 논리적 또는 조합적 설계에서 이용될 수 있음). 도 14a는 수퍼 휠을 사용하는 본 발명의 일 실시예를 나타내며, 도 14b는 수퍼 도그본을 사용하는 본 발명의 일 실시예를 나타낸다.
수퍼 휠 또는 수퍼 도그본이 부가적인 버튼들과 결합되는 경우, 한 손(또는 심지어 한 개의 손가락이나 엄지손가락)에 의해 동작될 수 있는 강력한 네비게이션 장치가 된다. 예를 들어, 소정의 실시예들에서는, 장치가 진동 도그본에 더하여 두 개의 버튼들(총 6개의 논리적 버튼들)을 사용하거나 진동 도그본에 더하여 네 개의 버튼들(총 8개의 버튼들)을 사용할 수 있는데, 각각은 논리적 버튼들에 매핑되는 대응 명령들을 갖는다. 마찬가지로, 이들 실시예들의 각각에서 진동 도그본 대신에 수퍼 도그본을 대용함으로써, 각각 7-버튼 장치와 9-버튼 장치를 얻는다.
도 15a는 장비의 중앙에 수퍼 도그본이 위치하면서, 수직으로 배치된 수퍼 도그본과 네 개의 부가적인 물리적 버튼들을 이용하는 네비게이션 장치의 그러한 일 실시예를 나타낸다. 지금부터 그러한 9-버튼 장치들을 나이너(niner)라고 하며, 도 15a에 도시된 특정 9-버튼 장치는 수직 나이너(vertical niner)라고 할 것이다. 도 15a를 참조하자면, 수직 나이너(1502)는 상위의 두 개의 버튼들(1506 및 1508) 및 하위의 두 개의 버튼들(1510 및 1512)을 갖는 수퍼 도그본(1504)을 포함한다. 각각의 버튼에 대한 직접 명령들(또는 논리적 입력)은 도 15c의 테이블에서 열거된다. 이 실시예에서, ENTER, UP, DOWN, 및 OUT은 본 명세서에서 이전에 개시된 것과 같은 동일한 기능을 가지며, ENTER는 두 개의 논리적 버튼들(필수적이지는 않으나 허용됨)에 대응된다는 점에 주목해야 한다. 마찬가지로, 대체 실시예는, 유사한 명령 매핑들을 갖지만 ENTER가 단일 논리적 버튼에만 대응되는, 도 15b에 도시된 것과 같은 8-버튼 장치를 포함할 수 있다. 또한 네비게이션의 문맥에서는 PREV 및 NEXT 기능이 보다 유용하기 때문에, Tab 및 Alt-Tab 명령 호출에 대응되는 PREV와 NEXT가 Left Arrow 및 Right Arrow 기능들 대신에 구현된다는 점에도 주목해야 한다. 그럼에도 불구하고, 소정의 상황들에서는 OUT 명령에서의 Escape와 Back의 조합과 유사한 방식으로, 말하자면 PREV와 Left Arrow 명령을 함께 결합하는 것이 바람직할 수 있다.
논리적 버튼들의 기능을 확장하기 위한 다른 방법은, 버튼이 눌려지고 미리 설정된 시간 구간 동안에 "눌린 상태를 유지(held down)"하는 경우에 특별한 기능을 제공하는 것이다. 예를 들어, 사용자가 UP 버튼을 누르고, 누른 상태를 유지하는 경우, 본 발명의 소정의 실시예들이 그것을 상이한 명령, 예컨대 키보드 상의 PageUp 키를 복제하는 PAGEUP 명령으로 해석하는 것은 논리적일 것이다. 대안적으로, 키보드 상의 UP Arrow 키를 누르고, 누른 상태를 유지하는 결과와 유사하게, 시스템은 자동으로 신속하게 UP 명령을 반복할 수도 있다.
본 명세서에서 설명된 버튼 설계들에 대한 기능을 확장하는 다른 방법은, 마우스가 싱글 클릭(single click)과 더블 클릭(double click)을 구별하는 방법과 유사하게, "모션(motion)"의 상이한 종류들을 구별하는 것이다. 예를 들어, 휠 또는 도그본 설계를 이용하는 경우에, 위 또는 아래로의 휠의 플릭(flick)(플릭은 단시간 내에서의 큰 이동임)을 별개의 논리적 버튼으로 간주하는 것은 논리적 확장이 될 것이다. 예를 들어, 위 또는 아래로의 도그본의 보통의 진동은 각각 UP 또는 DOWN 명령을 가져오는데 반해서, 위 또는 아래로의 휠의 플릭은 PAGEUP 또는 PAGEDOWN 명령 각각을 가져오는데, 이것들은 이번에는 각각 키보드 상의 Page UP 및 Page Down 키들에 일치한다.
버튼의 기능을 확장하는 다른 강력한 수단은, 동시에 눌리는 경우에 통상적으로 개별적인 버튼들에 연관된 명령들과는 상이한 명령을 의미하는데 사용될 수 있는 버튼들의 다양한 조합들을 고려하는 것이다. 예를 들어, 본 발명의 일 실시예는 네 개의 물리적 네비게이션 버튼들, 진동 도그본, 또는 진동 휠을 주요 네비게이션 논리적 버튼 그룹으로 포함할 뿐만 아니라, 아마도 상기 네 개의 논리적 버튼들로 하여금 제2의 매핑들을 가질 수 있도록 하는 변경자 버튼(modifier button)을 포함할 수도 있다. 변경자 버튼은 다수의 방법들에서 랩탑(laptop), 테블릿 PC(Tablet PC) 등과 같은 다수의 컴퓨터 장치들 상의 'Fn' 키에 상응할 것이다. 더욱이, 상기 변경자는 그것이 구현되는 특정 컴퓨터 장치에 대해 특히 유용할 수 있는 특별한 메뉴{예컨대, 그러한 기능이 특히 적절하고 유용할 장치 상에서 세로 방향(portrait) 방위와 가로 방향(landscape) 방위 사이에서 디스플레이를 회전시키기 위한 메뉴(이하에서 보다 상세하게 논의됨)}의 호출과 같은 부가적인 명령을 구현하기 위하여 "더블 태핑(double-tapped)"될 수도 있다.
지금까지 설명된 실시예들은 주로 주어진 문맥 내의 상이한 물리적 사용자 상호 작용을 기반으로 하여 상이한 논리적 결과들을 매핑하는 것을 기초로 한다. 그러나, 대체 실시예들은 또한 단일한 특정 물리적 상호 작용으로 하여금 상이한 문맥들{예컨대, 텍스트 문서, 가상 책(virtual book), 슬라이드 쇼(slide show) 각각}에서 상이한 논리적 결과들(예컨대, 스텝, 스크롤, 또는 페이지)을 가져올 수 있도록 할 것이다. 예를 들어, 진동 도그본을 사용하는 경우에, 아래로의 롤링(rolling down)은 어떤 문맥에서는 밑으로 한 라인 스테핑(stepping)하는 것과 동일할 수 있고, 다른 문맥에서는 밑으로 한 페이지 스크롤링(scrolling)하는 것과 동일할 수 있으며, 또 다른 문맥에서는 밑으로 문서를 페이징(paging)하는 것과 동일 할 수 있는데, 위로의 롤링(rolling up)은 각각의 그러한 문맥에서 대응하는 상반된 논리적 결과들을 갖는다. 마찬가지로, 다시 진동 도그본을 이용하는 경우에, 좌측으로의 진동은 어떤 문맥에서는 패인(pane) 간에 점프할 수 있고, 다른 문맥에서는 링크들 간의 뛰어넘기(skip)를 할 수 있으며, 또 다른 문맥에서는 트리 유형의 계층 구조(tree-type hierarchy)에서 하위 가지(branch)로 진입할 수 있는데, 우측으로의 진동은 다시 각각의 그러한 문맥에서 대응하는 상반된 논리적 결과들을 갖는다. 이러한 방침들을 따르는 다른 실시예들은 제한 없이 진동 휠, 수퍼 도그본, 수퍼 휠, 마름모 형태로 구성된 네 개의 버튼들, 컴퍼스(compass)의 점들과 같이 원을 따라 동등하게 구성된 8 개의 버튼들, 조이스틱, D-패드(D-Pad), 터치 패드, 터치 스트립(touch strip) 등을 이용하여 유사하게 동작한다. 스텝(step), 스크롤 및 페이지 외에 다른 명령들은 ("액세스"와 함께) ENTER 및 OUT뿐만 아니라 임의의 다른 두 개 부분으로 된 추상적 상반된 명령들{일반적으로 "추상(abstract)"}을 포함할 수 있다.
유연한 방위(Flexible Orientation)
세로 방향(portrait) 방위와 가로 방향(landscape) 방위 사이에서 디스플레이를 회전시키기 위한 메뉴가 특히 적절하고 유용할 장치들에 대해서, 그것에 관한 다양한 실시예들에 포함되는 본 발명의 다른 중요한 요소는 물리적 버튼들에 대해 논리적 버튼들의 방향을 변경하는 능력이다. 예를 들어, 진동 도그본(1604)이 장치의 우측 측면에 부착되는 "오른손의 세로 방향(right-handed portrait)" 방위의 테블릿 PC와 같은 디스플레이 장치(1602)를 나타내는 도 16a의 장치를 고려해 보자. 편의상, 진동 도그본(1604)에 대한 각각의 논리적 버튼의 기능, 즉 위로의 롤링(rolling up), 아래로의 롤링(rolling down), 좌측으로의 진동(rocking left) 및 우측으로의 진동(rocking right)은 A, B, C, 및 D (라벨들) 각각으로 표시되며, 진동 도그본(1604)에 대해 일관성을 유지하는 반면에, UP, DOWN, PREV 및 NEXT 명령들 각각에 대해 U, D, P, N으로 표시된 진동 도그본(1604)의 각각의 논리적 버튼에 대한 명령들은 사실상 이러한 특정 물리적 방위(즉, 오른손의 세로 방향 방위)에 있는 진동 도그본(1604)에 관련되며, 명령들에 대한 논리적 버튼들의 논리적 매핑은 다음과 같이 표현될 수 있다(라벨들은 좌측, 명령들은 우측).
A=U
B=D
C=P
D=N
그러나, 본 발명의 소정의 실시예들에 대해서, 디스플레이 장치(1602)가 회전되는 경우에, 논리적 버튼 지정들은 적절하게 재매핑(remapping)된다. 예를 들어, "하단 가로 방향(bottom landscape)" 방위에 대해 우측으로 90도(4분의 1) 회전된 후의 장치(1602)를 나타내는 도 16b를 고려해 보자. 이것은 사용자가 장치로 하여금 디스플레이의 방위를 변경하도록 지시한 후에 발생할 수 있으며, 논리적 버튼들에 대한 명령들의 후속적인 재매핑(remapping)이 자동적으로 발생할 수도 있다. 이 회전된 방위에 있어서, 진동 도그본(1604)에 대한 논리적 매핑은 다음과 같이 표현될 수 있다(라벨들은 좌측, 명령들은 우측).
A=D
B=U
C=P
C=N
논리적 버튼들 A 및 B에 대한 명령들은 교환되었는데(즉, UP 및 DOWN 명령들이 교환되었음), 논리적 버튼 C 및 D에 대한 명령들은 동일하게 남아있다는 점에 주목해야 한다. 이에 대한 원인은, 도그본(1604)은 실제로 단지 하나의 축을 따라 롤링하고(여기서는 처음에 수직으로 향하도록 도시됨), 수직의 디스플레이 이동이 일반적으로 수평 디스플레이 이동보다 더욱 중요하고 더욱 자주 이용되기 때문에 그 축은 바람직하게는 디스플레이 상의 수직 방위로 매핑되어야 하며, 따라서 롤링하는 도그본(1604)의 능력은 항상 수직 이동에 논리적으로 매핑되어야 하므로, 이러한 경우에 우측으로의 롤링 동작(rolling movement)이 디스플레이 상에서의 아래로의 이동(downward movement)에 일치하는 것(또는 적어도 텍스트 문서들이 판독되는 방식 및 다른 방위들에 일치함)은 당연하다는 점이다. 마찬가지로, 진동의 재매핑의 경우에도 이러한 경우에 위로의 진동이 디스플레이 상에서의 좌측으로의 이동에 일치하는 것(또는 적어도 텍스트 문서들이 판독되는 방식 및 다른 방위들에 일치함)은 당연한 것이다. 논리적 버튼들과 그들이 호출하는 명령들 간의 논리적 관계를 재매핑함으로써(실제적으로는, 부분적으로 재매핑함), 사용자는 장치의 방위를 변경할 수 있으며, 그럼에도 불구하고 방위 간에 대체로 일관적인 방식으로 사용자 인터페이스를 이용할 수 있다.
도 16c는 우측으로 다시 90도(현재 총 180도, 즉 우측으로 2분의 1) 회전된 동일한 장치, 및 디스플레이가 이러한 장치 방위에서 바라볼 수 있도록 자동적으로 또는 수동적으로 자체의 방향이 변경된 경우에 발생하는 결과적인 재매핑의 실례이다. 이 방위에 있어서, 진동 도그본(1604)에 대한 논리적 매핑은 다음과 같이 표현될 수 있다(라벨들은 좌측, 명령들은 우측).
A=D
B=U
C=N
D=P
이 방위, 즉 "왼손의 세로 방향(left-handed portrait)" 방위는 특히 왼손 사용자들에게 유용하다. 또한, 이전의 방위와 비교해 봤을 때, 현재 논리적 버튼들 C 및 D에 대한 명령들은 교환된 반면에, 논리적 버튼 A 및 B에 대한 명령들은 동일하게 남아있다는 점에 주목해야 한다. 또한, 이 재매핑(180 도)은 사실상 단지 이전 방위(우측으로 90도)로부터의 부분적인 재매핑임에 반하여, 그것은 원래의 방위로부터의 완전한 재매핑이기도 하다.
도 16d는 "상단 가로 방향" 방위를 형성하면서 우측으로 또 다시 90도(현재 총 270도, 즉 우측으로 4분의 3) 회전된 동일한 장치, 및 디스플레이가 이 장치 방위에서 바라볼 수 있도록 자동적으로 또는 수동적으로 자체의 방향이 변경된 경우에 발생하는 결과적인 재매핑의 실례이다. 이 방위에 있어서, 진동 도그본(1604)에 대한 논리적 매핑은 다음과 같이 표현될 수 있다(라벨들은 좌측, 명령들은 우측).
A=U
B=D
C=N
D=P
이전의 방위와 비교해 봤을 때, 현재 논리적 버튼들 A 및 B에 대한 명령들은 교환된 반면에, 논리적 버튼 C 및 D에 대한 명령들은 동일하게 남아있다는 점에 주목해야 한다. 만약, 원래의 위치로 돌아가도록 장치가 한 번 더 회전되었다면, 논리적 버튼들 C 및 D에 대한 명령들은 교환될 것인 반면에, 논리적 버튼 A 및 B에 대한 명령들은 동일하게 남아있게 될 것이다. 요컨대, 본 발명의 소정의 실시예들은 고정된 네비게이션 장치에 대해 논리적 회전 기법을 사용하여 논리적 버튼들이 그들의 방위에 따라 특정 명령들에 대응하도록 하는데, 이것의 정확한 매핑이 도 17의 테이블에 도시되어 있다. 이러한 매핑은 휠과 도그본의 경우와 같이 하나의 물리적 축을 따라 대칭적인 장치들에 대해 가장 적합하다.
도 18a는 진동 도그본(1804)이 장치의 기반에 통합된 "전면 가로 방향(front-end landscape)" 방위의 디스플레이 장치(1802)(본 명세서에서 제한되지 않는 예로서 포켓 크기의 디스플레이 장치)를 나타내는데, 상기 장치는 그 다음에 세 번 이어서 우측으로 90도 회전되며, 상기 장치는 도시된 도 16a 내지 도 16d의 장치와 유사한 방식으로 논리적 명령들을 재매핑한다.
디스플레이 장치를 회전시키는 딜레마(dilemma)에 대한 다른 해법은 물리적 사용자 인터페이스 자체 또한 회전시키는 것이다. 도 19a는 회전 가능한 네비게이션 장치(1904)를 갖는 디스플레이 장치(1902)를 나타내는데, 상기 디스플레이 장치는 오른손의 세로 방향 방위이다. 도 19b는 우측으로 90도 회전된 디스플레이 장치(1902)를 나타내는데, 상기 회전 가능한 네비게이션 장치(1904)는 디스플레이 장치(1902)의 관점에서 좌측으로 90도 회전되므로, 동일한 절대 방위(absolute orientation)를 보유한다. 도 19c 및 도 19d는 각각 추가적으로 90도 회전된 동일한 장치를 나타낸다. 각각의 경우에 있어서, 네비게이션 장치(1904)는 동일한 절대 방위를 보유한다.
유사한 방식으로, 회전되는 경우에 물리적으로 구별할 수 없는 소정의 네비게이션 장치들에 대해서는 회전이 가상적일 수도 있으므로, 논리적 회전만이 발생될 필요가 있다. 이 방법론은 주요 롤링 축(primary rolling axis)을 갖는 휠이나 도그본을 이용하는 네비게이션 장치들에 대해서는 적합하지 않으나, 다른 실시예들, 이를테면 버튼들이 마름모 형태로 배치된 도 7a에 도시된 4-버튼 네비게이션 장치는 물리적 버튼들 사이에 (논리적 회전을) 용이하게 직접 재매핑함으로써, 도 19a 내지 도 19d에 개시된 것들과 같은 회전 가능한 네비게이션 장치들을 구비한 디스플레이 장치들에 대해 달성될 수 있는 것과 유사한 회전된 장치의 기능을 달성할 수 있도록 한다. 물리적 버튼들 사이의 명령들의 이러한 회전은 이전에 논의된 마름모 형태 장비의 경우에서와 같이 수직적으로 및 수평적으로 모두 대칭적인 임의의 네비게이션 장치에 대해 적합하다.
관련없는 차원의 네비게이팅(Navigating Unrelated Dimensions)
지금까지 설명된 실시예들의 대부분에 있어서, 특히 대칭적인 복수의 버튼들을 포함하는 실시예들에 있어서, 논리적 버튼들의 기능은 그러한 버튼들의 물리적 위치에 대응된다(즉, 논리적 차원(dimension)이 물리적 차원을 반영함). 그러나, 본 발명의 대체 실시예들은 그러한 사용자 인터페이스 장치들의 기능을 더욱 확장하기 위해 물리적인 것과 논리적인 것 사이의 이러한 연관성을 깨뜨린다.
대칭적인 복수의 버튼들은 논리적 버튼들(이것은 장치의 모든 논리적 버튼들을 포함하거나 포함하지 않을 수 있음) 및 그들의 물리적 등가물들{예컨대, 누름 버튼(push button), 휠, 또는 도그본)의 집합인데, 후자는 버튼들의 기능이 물리적 레이아웃으로부터 결정될 수 있고, 논리적으로 상호 관련된다는 점을 암시하기 위해서 장치 상에 다차원 방식으로 물리적으로 배치된다. 예를 들어, 상이한 물리적 구성들로 배치된 네 개의 버튼들을 포함하는 도 20a 및 도 20b를 고려해 보자{즉 이들 실시예들은 모두 동일한 버튼들을 가지나, 도 20a의 버튼들은 두 개의 축을 따라 다차원적으로 배치되는 반면에(UP 및 DOWN은 수직적으로 배치되는데, LEFT 및 RIGHT는 수평적으로 배치됨), 도 20b의 버튼들은 단일 수평축을 따라 일차원적으로 배치됨}. 도 20a의 각각의 버튼의 기능은 물리적 레이아웃으로 인한 버튼들 간의 상호 관련성에 의해 암시되나, 도 20b의 버튼들의 기능은 대부분 확인할 수 없다. 예를 들어, 도 20a의 레이아웃과 유사하지만 명확한 라벨이 없는 도 20c의 버튼 레이아웃과 관해서, 이들 버튼들의 각각의 기능은, 상호 관련되고(A와 C가 마주보고 있고, B와 D가 마주보고 있는데, 전자는 수칙 축에 관련되는 반면에, 후자는 수평 축에 관련됨), 나아가, 각각의 버튼의 상대적인 방향으로의 이동에 대응된다고 당연히 추정될 수 있다. 그러나, 도 20d의 버튼 레이아웃(이는 도 20b의 배치와 유사하지만 명확한 라벨이 없음)은 관계(relationship) 또는 기능이 이차원으로의 이동에 관련된다는 사실에 대한 아무런 그러한 암시도 제공하지 않는다.
실제로, 도 20a 및 도 20c의 4-버튼 "마름모"형태의 장비 및 그들의 등가물(예컨대, 진동 휠 및 진동 도그본을 포함함)은 수평 축 및 수직 축을 따르는 다차원의 이동을 매우 강하게 암시하여 그러한 기능이 종종 자동적으로 추정된다. 나아가, (수평 장비 및 수직 장비와 같은) 버튼들 간의 임의의 그러한 물리적 관계들은 (수평 이동 및 수직 이동과 같은) 그들 장치들의 근본적인 기능에 대응된다고 쉽게 추정되므로, 종래의 기술은 (X, Y, 및 축들, 및 다양한 대각선들과 관련한) 공간으로의 다차원 이동으로 자동적으로 추정되는 (그리고 이에 한정되는) 다차원들 투성이다. 예를 들어, 라벨 없이도 도 21b 및 도 21c의 유사 장비들에 의해 명시적으로 암시되는 바와 같이 이차원 공간의 네 개의 축을 따르는 방향들에 관련된다고 당연히 추정될 도 21a의 "컴퍼스(compass)" 버튼 장비를 살펴보자. 그러나, 다수의 사용자 네비게이션 문맥들에서, 수직 이동은 중요하지만 수평 이동은 중요하지 않거나 그 반대의 경우와 같은 때에는, 버튼들의 물리적 관계들만을 기반으로 하는 그러한 상호 관련된 기능이 최대로 효율적인 것이 아닐 수 있다.
다양한 상이한 문맥들에서 단일 사용자 인터페이스 장치의 융통성 및 적응성을 극대화하기 위해서, 본 발명의 부가적인 실시예들은 (대칭적으로가 아니고) 비대칭적으로 관련된(즉, 논리적으로 상호 관련 없음) 논리적 버튼들에 대응되는 대칭적인 복수의 버튼들(물리적으로 상호 관련됨)을 포함한다. 예를 들어, 도 7a 장비와 같은 4-버튼 다차원의 장비를 갖는 본 발명의 일 실시예에 있어서, 수직 버튼들은 수직 이동에 대응되는 반면에, 수평 버튼들은 수직 이동 이외에 어떤 것에 대응된다(이 경우에는, ENTER 및 OUT). 마찬가지로, 수평 버튼들이 수평 이동에 대응되는 본 발명의 다른 그러한 실시예에서는, 수직 버튼들은 수직 이동 이외의 어떤 것에 대응된다. 물론, 또 다른 그러한 실시예에서는, 수평 버튼들이 수평 이동 이외의 어떤 것에 대응되고, 수직 버튼들이 수직 이동 이외의 어떤 것에 대응된다. 이 방법을 사용하는 부가적인 실시예들은, 제한 없이 4-버튼 마름모 형태의 장비, 및 8-버튼 컴퍼스 장비를 포함한 다양한 대칭적인 다수, 진동 도그본(뿐만 아니라 수퍼 도그본), 진동 휠(뿐만 아니라 수퍼 휠), D-패드, 조이스틱, 다양한 버튼 장비들, 및/또는 전술한 것들 및 그들의 등가물들 중의 임의의 것의 조합물들을 포함할 수 있다. 더욱이, 상기 방법은 이차원의 물리적 또는 논리적 실시예들에 한정되지 않으며, 실로 논리적 기능뿐만 아니라 물리적 요소들에 관하여 다차원적이다.
결론
본 명세서에서 설명된 다양한 기술들은 하드웨어나 소프트웨어, 또는 적절한 경우에 양자 모두의 조합으로 구현될 수 있다. 따라서, 본 발명의 방법들 및 기구들, 또는 그것들의 소정의 태양 또는 부분들은 유형의 매체, 이를테면 플로피 디스켓(floppy diskette), CD-ROM, 하드 드라이브, 또는 임의의 다른 기계 판독(machine-readable) 저장 매체 내에 포함된 프로그램 코드(즉 명령어들)의 형태를 취할 수 있는데, 상기 프로그램 코드가 컴퓨터와 같은 기계에 적재되어 상기 기계에 의해 실행되는 경우에, 상기 기계는 본 발명을 실시하는 기구가 된다. 프로그램 가능한(programmable) 컴퓨터들 상에서 프로그램 코드가 실행되는 경우에, 컴퓨터는 일반적으로 프로세서, 프로세서에 의해 판독 가능한 저장 매체(휘발성 및 비휘발성 메모리 및/또는 저장 소자들을 포함함), 적어도 하나의 입력 장치, 및 적어도 하나의 출력 장치를 포함할 것이다. 하나 이상의 프로그램들은 바람직하게는 고급 절차형 또는 객체 지향형 프로그래밍 언어로 구현되어 컴퓨터 시스템과 통신한다. 그러나, 프로그램(들)은 필요에 따라, 어셈블리(assembly)나 기계어로 구현될 수 있다. 어느 경우에 있어서나, 언어는 컴파일러형 언어(compiled language) 또는 해석형 언어(interpreted language)가 될 수 있으며, 하드웨어 구현물들과 결합될 수도 있다.
본 발명의 방법들 및 기구들은 소정의 전송 매체를 통해, 이를테면 전기 결선(wiring) 또는 케이블링(cabling)을 통하거나 광섬유(fiber optics)를 통해, 또는 임의의 다른 전송 형태를 통해 전송되는 프로그램 코드 형태로 구현될 수도 있는데, 프로그램 코드가 EPROM, 게이트 어레이(gate array), 프로그램 가능 논리 장치(PLD), 클라이언트 컴퓨터, 비디오 레코더 등과 같은 기계에 의해 수신되고 적재되어 실행되는 경우에, 상기 기계는 본 발명을 실시하는 기구가 된다. 범용 프로세서 상에서 구현되는 경우에, 프로그램 코드는 프로세서와 결합되어 본 발명의 인덱싱(indexing) 기능을 수행하도록 동작하는 고유의 기구를 제공한다.
본 발명은 다양한 도면들의 실시예들과 관련되어 설명되었는데, 다른 유사한 실시예들이 사용될 수 있거나, 본 발명의 범위를 벗어나지 않으면서 본 발명의 동일한 기능을 수행하기 위해, 설명된 실시예에 수정 및 추가를 할 수 있는 것으로 이해되어야 한다. 예를 들어, 본 발명의 예시적인 실시예들은 개인용 컴퓨터의 기능을 에뮬레이팅(emulating)하는 디지털 장치들의 문맥에서 설명되나, 당해 기술 분야의 당업자는 본 발명이 본 명세서에서 설명된 그러한 디지털 장치들에 한정되지 않으며, 기존의 또는 신생의 다수의 컴퓨팅 장치들이나 환경들, 이를테면 유선이든 무선이든 상관없이, 게이밍 콘솔(gaming console), 핸드 헬드(handheld) 컴퓨터, 휴대용 컴퓨터, 이동 전화기, 시계, 음악 플레이어, 소정의 기계식 장치들 등에 적용될 수 있으며, 통신 네트워크를 통해 접속되어 상기 네트워크를 통하여 인터페이싱하는 다수의 그러한 컴퓨팅 장치들에 적용될 수 있다. 또한 예를 들어, "버튼들"(및 본 명세서에서 사용된 다른 물리적 장치들)은 소정의 인간 공학적 장점들을 달성하기 위해서 다양한 크기, 모양, 간격(spacing) 등을 가질 수 있다. 마찬가지로, 각각의 버튼은 단어(word), 심벌로 표시되거나, 전혀 표시되지 않을 수 있으며, 각각의 버튼은 상이한 컬러, 모양, 또는 그것을 다른 것들과 구별시키는 다른 특성을 가질 수 있거나, 갖지 않을 수 있다.
핸드 헬드 장치 운영 체제들 및 다른 애플리케이션에 특유한 운영 체제들을 포함하여 다양한 컴퓨터 플랫폼들이 본 명세서에서 의도된다는 점이 강조되어야 하는데, 특히 무선 네트워크 장치들의 수가 계속적으로 급증함에 따라 더욱 그러하다. 그러므로, 본 발명은 임의의 단일한 실시예에 한정되지 않으며, 오히려 폭 및 범위에 있어 첨부된 청구범위에 따라 해석되어야 한다.
Claims (44)
- 적어도 하나의 논리적 버튼을 포함하는 네비게이션 제어 장치(navigational control device)의 기능을 확장하는 방법에 있어서,상기 논리적 버튼이 제1 문맥(context)에서 제1 명령을 발생시키는(issuing) 단계; 및상기 논리적 버튼이 제2 문맥(context)에서 제 2 명령을 발생시키는 단계를 포함하는 방법.
- 제1항에 있어서,상기 제1 명령은 상기 제2 명령과 동일하지 않으며,상기 제1 문맥은 상기 제2 문맥과 동일하지 않는 방법.
- 제1항에 있어서, 상기 논리적 버튼이 제3 문맥에서 제3 명령을 발생시키는 단계를 더 포함하는 방법.
- 제3항에 있어서, 상기 명령은 스테핑(step)하는 방법.
- 제3항에 있어서, 상기 명령은 스크롤링(scroll)하는 방법.
- 제3항에 있어서, 상기 명령은 페이징(page)하는 방법.
- 제3항에 있어서, 상기 명령은 액세스(access)하는 방법.
- 제3항에 있어서, 상기 명령은 추상화(abstract)하는 방법.
- 제1항에 있어서, 상기 논리적 버튼이 n번째 문맥에서 n번째 명령을 발생시키는 단계를 더 포함하는 방법.
- 제1항의 방법을 구현하는 시스템.
- 제1항의 방법을 구현하는 컴퓨터 판독 가능 명령어들(computer-readable instructions)을 포함하는 컴퓨터 판독 가능 매체.
- 제1항의 방법을 구현하기 위한 하드웨어 제어 장치.
- 적어도 하나의 논리적 버튼을 포함하는 하드웨어 제어 장치에 있어서,상기 논리적 버튼은, 눌려져서 사용되는 경우에 명령을 발생시키며,상기 하드웨어 장치는상기 논리적 버튼이 제1 문맥에서 제1 명령을 발생시키는 수단; 및상기 논리적 버튼이 제2 문맥에서 제2 명령을 발생시키는 수단을 포함하는 하드웨어 제어 장치.
- 적어도 하나의 논리적 버튼을 포함하는 네비게이션 제어 장치의 기능을 확장하는 방법에 있어서,상기 논리적 버튼은 눌려져서 사용되는 때에 명령을 발생시키고,상기 방법은상기 논리적 버튼이 누름(pressing)과는 다른 미리 설정된 방식으로 사용되는 때에 대해 대체 명령(substitute command)을 상기 논리적 버튼에 매핑하는 단계; 및상기 논리적 버튼이 누름과는 다른 미리 설정된 방식으로 사용되는 때에 상기 대체 명령을 발생시키는 단계를 포함하는 방법.
- 제14항에 있어서, 상기 논리적 버튼이 누름과는 다른 미리 설정된 방식으로 사용되는 때는, 상기 대체 명령을 발생시키기 위해서 상기 논리적 버튼이 미리 설정된 시간 프레임(timeframe) 내에 두 번 눌리는 방법.
- 제14항에 있어서, 상기 논리적 버튼이 누름과는 다른 미리 설정된 방식으로 사용되는 때는, 상기 대체 명령을 발생시키기 위해서 상기 논리적 버튼이 미리 설정된 시간 구간 동안에 눌려지고 눌린 상태가 유지되는 방법.
- 적어도 하나의 논리적 버튼을 포함하는 네비게이션 제어 장치의 기능을 확장하는 방법에 있어서,상기 논리적 버튼은 롤링(rolling)되어 사용되는 때에 명령을 발생시키고,상기 방법은상기 논리적 버튼이 롤링과는 다른 미리 설정된 방식으로 사용되는 때에 대해 대체 명령(substitute command)을 상기 논리적 버튼에 매핑하는 단계; 및상기 논리적 버튼이 롤링과는 다른 미리 설정된 방식으로 사용되는 때에 상기 대체 명령을 발생시키는 단계를 포함하는 방법.
- 제17항에 있어서, 상기 논리적 버튼이 롤링과는 다른 미리 설정된 방식으로 사용되는 때는, 상기 대체 명령을 발생시키기 위해서 상기 논리적 버튼이 플릭킹(flicking)되는 방법.
- 적어도 하나의 논리적 버튼을 포함하는 네비게이션 제어 장치의 기능을 확장하는 방법에 있어서,상기 논리적 버튼은 진동(rocking)되어 사용되는 때에 명령을 발생시키고,상기 방법은상기 논리적 버튼이 진동과는 다른 미리 설정된 방식으로 사용되는 때에 대해 대체 명령(substitute command)을 상기 논리적 버튼에 매핑하는 단계; 및상기 논리적 버튼이 진동과는 다른 미리 설정된 방식으로 사용되는 때에 상기 대체 명령을 발생시키는 단계를 포함하는 방법.
- 제19항에 있어서, 상기 논리적 버튼이 진동과는 다른 미리 설정된 방식으로 사용되는 때는, 상기 대체 명령을 발생시키기 위해서 상기 논리적 버튼이 진동되고 진동된 상태가 유지되는 방법.
- 적어도 하나의 논리적 버튼을 포함하는 네비게이션 제어 장치의 기능을 확장하는 방법을 구현하는 시스템에 있어서,상기 논리적 버튼은 눌려져서 사용되는 때에 명령을 발생시키고,상기 방법은,상기 논리적 버튼이 누름과는 다른 미리 설정된 방식으로 사용되는 때에 대해 대체 명령(substitute command)을 상기 논리적 버튼에 매핑하는 단계; 및상기 논리적 버튼이 누름과는 다른 미리 설정된 방식으로 사용되는 때에 상기 대체 명령을 발생시키는 단계를 포함하는 시스템.
- 제21항에 있어서, 상기 논리적 버튼이 누름과는 다른 미리 설정된 방식으로 사용되는 때는, 상기 대체 명령을 발생시키기 위해서 상기 논리적 버튼이 미리 설정된 시간 프레임(timeframe) 내에 두 번 눌리는 시스템.
- 제21항에 있어서, 상기 논리적 버튼이 누름과는 다른 미리 설정된 방식으로 사용되는 때는, 상기 대체 명령을 발생시키기 위해서 상기 논리적 버튼이 미리 설정된 시간 구간 동안에 눌려지고 눌린 상태가 유지되는 시스템.
- 적어도 하나의 논리적 버튼을 포함하는 네비게이션 제어 장치의 기능을 확장하는 방법을 구현하는 시스템에 있어서,상기 논리적 버튼은 롤링(rolling)되어 사용되는 때에 명령을 발생시키고,상기 방법은상기 논리적 버튼이 롤링과는 다른 미리 설정된 방식으로 사용되는 때에 대해 대체 명령(substitute command)을 상기 논리적 버튼에 매핑하는 단계; 및상기 논리적 버튼이 롤링과는 다른 미리 설정된 방식으로 사용되는 때에 상기 대체 명령을 발생시키는 단계를 포함하는 시스템.
- 제24항에 있어서, 상기 논리적 버튼이 롤링과는 다른 미리 설정된 방식으로 사용되는 때는, 상기 대체 명령을 발생시키기 위해서 상기 논리적 버튼이 플릭킹(flicking)되는 시스템.
- 적어도 하나의 논리적 버튼을 포함하는 네비게이션 제어 장치의 기능을 확장하는 시스템에 있어서,상기 논리적 버튼은 진동(rocking)되어 사용되는 때에 명령을 발생시키고,상기 방법은상기 논리적 버튼이 진동과는 다른 미리 설정된 방식으로 사용되는 때에 대해 대체 명령(substitute command)을 상기 논리적 버튼에 매핑하는 단계; 및상기 논리적 버튼이 진동과는 다른 미리 설정된 방식으로 사용되는 때에 상기 대체 명령을 발생시키는 단계를 포함하는 시스템.
- 제26항에 있어서, 상기 논리적 버튼이 진동과는 다른 미리 설정된 방식으로 사용되는 때는, 상기 대체 명령을 발생시키기 위해서 상기 논리적 버튼이 진동되고 진동된 상태가 유지되는 시스템.
- 적어도 하나의 논리적 버튼을 포함하는 네비게이션 제어 장치의 기능을 확장하는 방법에 관한 컴퓨터 판독 가능 명령어들을 포함하는 컴퓨터 판독 가능 매체에 있어서,상기 논리적 버튼은 눌려져서 사용되는 때에 명령을 발생시키고,상기 방법은상기 논리적 버튼이 누름과는 다른 미리 설정된 방식으로 사용되는 때에 대해 대체 명령(substitute command)을 상기 논리적 버튼에 매핑하는 단계; 및상기 논리적 버튼이 누름과는 다른 미리 설정된 방식으로 사용되는 때에 상기 대체 명령을 발생시키는 단계를 포함하는 컴퓨터 판독 가능 매체.
- 제28항에 있어서, 상기 논리적 버튼이 누름과는 다른 미리 설정된 방식으로 사용되는 때는, 상기 대체 명령을 발생시키기 위해서 상기 논리적 버튼이 미리 설정된 시간 프레임(timeframe) 내에 두 번 눌리는 방법에 관한 컴퓨터 판독 가능 명령어들을 포함하는 컴퓨터 판독 가능 매체.
- 제28항에 있어서, 상기 논리적 버튼이 누름과는 다른 미리 설정된 방식으로 사용되는 때는, 상기 대체 명령을 발생시키기 위해서 상기 논리적 버튼이 미리 설정된 시간 구간 동안에 눌려지고 눌린 상태가 유지되는 방법에 관한 컴퓨터 판독 가능 명령어들을 포함하는 컴퓨터 판독 가능 매체.
- 적어도 하나의 논리적 버튼을 포함하는 네비게이션 제어 장치의 기능을 확장하는 방법에 관한 컴퓨터 판독 가능 명령어들을 포함하는 컴퓨터 판독 가능 매체에 있어서,상기 논리적 버튼은 롤링(rolling)되어 사용되는 때에 명령을 발생시키고,상기 방법은상기 논리적 버튼이 롤링과는 다른 미리 설정된 방식으로 사용되는 때에 대해 대체 명령(substitute command)을 상기 논리적 버튼에 매핑하는 단계; 및상기 논리적 버튼이 롤링과는 다른 미리 설정된 방식으로 사용되는 때에 상기 대체 명령을 발생시키는 단계를 포함하는 컴퓨터 판독 가능 매체.
- 제31항에 있어서, 상기 논리적 버튼이 롤링과는 다른 미리 설정된 방식으로 사용되는 때는, 상기 대체 명령을 발생시키기 위해서 상기 논리적 버튼이 플릭킹(flicking)되는 방법에 관한 컴퓨터 판독 가능 명령어들을 포함하는 컴퓨터 판독 가능 매체.
- 적어도 하나의 논리적 버튼을 포함하는 네비게이션 제어 장치의 기능을 확장하는 방법에 관한 컴퓨터 판독 가능 명령어들을 포함하는 컴퓨터 판독 가능 매체에 있어서,상기 논리적 버튼은 진동(rocking)되어 사용되는 때에 명령을 발생시키고,상기 방법은상기 논리적 버튼이 진동과는 다른 미리 설정된 방식으로 사용되는 때에 대해 대체 명령(substitute command)을 상기 논리적 버튼에 매핑하는 단계; 및상기 논리적 버튼이 진동과는 다른 미리 설정된 방식으로 사용되는 때에 상기 대체 명령을 발생시키는 단계를 포함하는 컴퓨터 판독 가능 매체.
- 제33항에 있어서, 상기 논리적 버튼이 진동과는 다른 미리 설정된 방식으로 사용되는 때는, 상기 대체 명령을 발생시키기 위해서 상기 논리적 버튼이 진동되고 진동된 상태가 유지되는 방법에 관한 컴퓨터 판독 가능 명령어들을 포함하는 컴퓨터 판독 가능 매체.
- 적어도 하나의 논리적 버튼을 포함하는 네비게이션 제어 장치의 기능을 확장하는 방법을 위한 하드웨어 제어 장치에 있어서,상기 논리적 버튼은 눌려져서 사용되는 때에 명령을 발생시키고,상기 방법은상기 논리적 버튼이 누름과는 다른 미리 설정된 방식으로 사용되는 때에 대해 대체 명령(substitute command)을 상기 논리적 버튼에 매핑하는 단계; 및상기 논리적 버튼이 누름과는 다른 미리 설정된 방식으로 사용되는 때에 상기 대체 명령을 발생시키는 단계를 포함하는 하드웨어 제어 장치.
- 제35항에 있어서, 상기 논리적 버튼이 누름과는 다른 미리 설정된 방식으로 사용되는 때는, 상기 대체 명령을 발생시키기 위해서 상기 논리적 버튼이 미리 설정된 시간 프레임(timeframe) 내에 두 번 눌리는 하드웨어 제어 장치.
- 제35항에 있어서, 상기 논리적 버튼이 누름과는 다른 미리 설정된 방식으로 사용되는 때는, 상기 대체 명령을 발생시키기 위해서 상기 논리적 버튼이 미리 설정된 시간 구간 동안에 눌려지고 눌린 상태가 유지되는 하드웨어 제어 장치.
- 적어도 하나의 논리적 버튼을 포함하며,상기 논리적 버튼은 눌려져서 사용되는 때에 명령을 발생시키며,상기 논리적 버튼이 누름과는 다른 미리 설정된 방식으로 사용되는 때에 대해 대체 명령(substitute command)을 상기 논리적 버튼에 매핑하기 위한 수단; 및상기 논리적 버튼이 누름과는 다른 미리 설정된 방식으로 사용되는 때에 상기 대체 명령을 발생시키기 위한 수단을 포함하는 하드웨어 제어 장치.
- 적어도 하나의 논리적 버튼을 포함하는 네비게이션 제어 장치의 기능을 확장하는 방법을 위한 하드웨어 제어 장치에 있어서,상기 논리적 버튼은 롤링되어 사용되는 때에 명령을 발생시키며,상기 방법은,상기 논리적 버튼이 롤링과는 다른 미리 설정된 방식으로 사용되는 때에 대해 대체 명령(substitute command)을 상기 논리적 버튼에 매핑하는 단계; 및상기 논리적 버튼이 롤링과는 다른 미리 설정된 방식으로 사용되는 때에 상기 대체 명령을 발생시키는 단계를 포함하는 하드웨어 제어 장치.
- 제39항에 있어서, 상기 논리적 버튼이 롤링과는 다른 미리 설정된 방식으로 사용되는 때는, 상기 대체 명령을 발생시키기 위해서 상기 논리적 버튼이 플릭킹(flicking)되는 하드웨어 제어 장치.
- 적어도 하나의 논리적 버튼을 포함하며,상기 논리적 버튼은 롤링되어 사용되는 때에 명령을 발생시키며,상기 논리적 버튼이 롤링과는 다른 미리 설정된 방식으로 사용되는 때에 대해 대체 명령(substitute command)을 상기 논리적 버튼에 매핑하기 위한 수단; 및상기 논리적 버튼이 롤링과는 다른 미리 설정된 방식으로 사용되는 때에 상기 대체 명령을 발생시키기 위한 수단을 포함하는 하드웨어 제어 장치.
- 적어도 하나의 논리적 버튼을 포함하는 네비게이션 제어 장치의 기능을 확장하는 방법을 위한 하드웨어 제어 장치에 있어서,상기 논리적 버튼은 진동되어 사용되는 때에 명령을 발생시키며,상기 방법은,상기 논리적 버튼이 진동과는 다른 미리 설정된 방식으로 사용되는 때에 대해 대체 명령(substitute command)을 상기 논리적 버튼에 매핑하는 단계; 및상기 논리적 버튼이 진동과는 다른 미리 설정된 방식으로 사용되는 때에 상기 대체 명령을 발생시키는 단계를 포함하는 하드웨어 제어 장치.
- 제42항에 있어서, 상기 논리적 버튼이 진동과는 다른 미리 설정된 방식으로 사용되는 때는, 상기 대체 명령을 발생시키기 위해서 상기 논리적 버튼이 진동되고 진동된 상태가 유지되는 하드웨어 제어 장치.
- 적어도 하나의 논리적 버튼을 포함하며,상기 논리적 버튼은 진동되어 사용되는 때에 명령을 발생시키며,상기 방법은상기 논리적 버튼이 진동과는 다른 미리 설정된 방식으로 사용되는 때에 대해 대체 명령(substitute command)을 상기 논리적 버튼에 매핑하기 위한 수단; 및상기 논리적 버튼이 진동과는 다른 미리 설정된 방식으로 사용되는 때에 상기 대체 명령을 발생시키기 위한 수단을 포함하는 하드웨어 제어 장치.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US43391402P | 2002-12-16 | 2002-12-16 | |
US60/433,914 | 2002-12-16 | ||
US43060903A | 2003-05-05 | 2003-05-05 | |
US10/430,609 | 2003-05-05 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20050084748A true KR20050084748A (ko) | 2005-08-29 |
Family
ID=32685245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020047008326A KR20050084748A (ko) | 2002-12-16 | 2003-12-15 | 컴퓨터 장치들과 인터페이싱하기 위한 시스템들 및 방법들 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20040220723A1 (ko) |
EP (1) | EP1573494A4 (ko) |
JP (1) | JP2006510137A (ko) |
KR (1) | KR20050084748A (ko) |
AU (1) | AU2003297172A1 (ko) |
WO (1) | WO2004059423A2 (ko) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10051298B2 (en) * | 1999-04-23 | 2018-08-14 | Monkeymedia, Inc. | Wireless seamless expansion and video advertising player |
WO2004059424A2 (en) * | 2002-12-16 | 2004-07-15 | Microsoft Corporation | Systems and methods for interfacing with computer devices |
JP2006510136A (ja) * | 2002-12-16 | 2006-03-23 | マイクロソフト コーポレーション | ナビゲーション制御装置のイベント処理 |
AU2003297076A1 (en) * | 2002-12-16 | 2004-07-29 | Microsoft Corporation | Systems and methods for interfacing with computer devices |
KR20050083542A (ko) * | 2002-12-16 | 2005-08-26 | 마이크로소프트 코포레이션 | 컴퓨터 장치들과 인터페이싱하기 위한 시스템들 및 방법들 |
KR100955955B1 (ko) * | 2002-12-16 | 2010-05-04 | 마이크로소프트 코포레이션 | 컴퓨터 장치들과 인터페이싱하기 위한 시스템들 및 방법들 |
US7164410B2 (en) * | 2003-07-28 | 2007-01-16 | Sig G. Kupka | Manipulating an on-screen object using zones surrounding the object |
US8983775B2 (en) * | 2008-09-03 | 2015-03-17 | Flextronics Ap, Llc | Systems and methods for connecting and operating portable GPS enabled devices in automobiles |
US8245143B2 (en) * | 2008-10-08 | 2012-08-14 | Research In Motion Limited | Method and handheld electronic device having a graphical user interface which arranges icons dynamically |
US9513783B1 (en) * | 2014-03-17 | 2016-12-06 | Amazon Technologies, Inc. | Determining available screen area |
CN106104446A (zh) * | 2014-03-20 | 2016-11-09 | 日本电气株式会社 | 信息处理设备、信息处理方法和信息处理程序 |
CN109388250B (zh) * | 2017-08-04 | 2022-11-22 | 北京搜狗科技发展有限公司 | 一种信息推荐方法、装置及电子设备 |
US11682391B2 (en) | 2020-03-30 | 2023-06-20 | Motorola Solutions, Inc. | Electronic communications device having a user interface including a single input interface for electronic digital assistant and voice control access |
US11449961B2 (en) | 2020-03-30 | 2022-09-20 | Motorola Solutions, Inc. | Voice interface alert management |
US11328723B2 (en) | 2020-03-30 | 2022-05-10 | Motorola Solutions, Inc. | Talk group management using voice control |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4656654A (en) * | 1984-04-11 | 1987-04-07 | The United States Of America As Represented By The Secretary Of The Army | Computer assisted graphic teleconferencing method and apparatus |
US6347997B1 (en) * | 1997-10-01 | 2002-02-19 | Brad A. Armstrong | Analog controls housed with electronic displays |
JPH0764749A (ja) * | 1993-08-25 | 1995-03-10 | Fujitsu Ltd | コマンド実行処理装置 |
US5659694A (en) * | 1994-06-30 | 1997-08-19 | Canon Kabushiki Kaisha | Method and system for displaying context sensitive child windows independently of their parent window |
US5737557A (en) * | 1995-05-26 | 1998-04-07 | Ast Research, Inc. | Intelligent window user interface for computers |
US5724106A (en) * | 1995-07-17 | 1998-03-03 | Gateway 2000, Inc. | Hand held remote control device with trigger button |
US6466783B2 (en) * | 1995-12-11 | 2002-10-15 | Openwave Systems Inc. | Visual interface to mobile subscriber account services |
US5966671A (en) * | 1996-01-03 | 1999-10-12 | Motorola, Inc. | Radiotelephone having an auxiliary actuator and method for operating said radiotelephone |
US5807175A (en) * | 1997-01-15 | 1998-09-15 | Microsoft Corporation | Dynamic detection of player actuated digital input devices coupled to a computer port |
US6686931B1 (en) * | 1997-06-13 | 2004-02-03 | Motorola, Inc. | Graphical password methodology for a microprocessor device accepting non-alphanumeric user input |
US6097964A (en) * | 1997-09-04 | 2000-08-01 | Nokia Mobile Phones Limited | Navigation key for a handset |
US6496181B1 (en) * | 1997-10-03 | 2002-12-17 | Siemens Information And Communication Mobile Llc | Scroll select-activate button for wireless terminals |
JPH11187443A (ja) * | 1997-12-25 | 1999-07-09 | Sony Corp | 携帯無線情報端末装置、画面操作方法、記録媒体およびマイクロコンピュータ装置 |
AU6040999A (en) * | 1998-09-14 | 2000-04-03 | Microsoft Corporation | Input device with forward/backward control |
US7256770B2 (en) * | 1998-09-14 | 2007-08-14 | Microsoft Corporation | Method for displaying information responsive to sensing a physical presence proximate to a computer input device |
US7358956B2 (en) * | 1998-09-14 | 2008-04-15 | Microsoft Corporation | Method for providing feedback responsive to sensing a physical presence proximate to a control of an electronic device |
US6198473B1 (en) * | 1998-10-06 | 2001-03-06 | Brad A. Armstrong | Computer mouse with enhance control button (s) |
KR100547767B1 (ko) * | 1999-04-02 | 2006-02-01 | 삼성전자주식회사 | 휴대폰에서 다기능키 이용방법 |
US6545629B1 (en) * | 1999-06-14 | 2003-04-08 | Siemens Vdo Automotive Corporation | FOB command mechanization |
US7146005B1 (en) * | 1999-09-06 | 2006-12-05 | Siemens Aktiengesellschaft | Input element for a telephone |
GB2355141B (en) * | 1999-10-08 | 2004-07-14 | Nokia Mobile Phones Ltd | A device |
DE19955678A1 (de) * | 1999-11-19 | 2001-05-23 | Eberhard Floegel | Scrollrad mit zusätzlichen Funktionen |
US7319743B1 (en) * | 2000-01-10 | 2008-01-15 | Cisco Technology, Inc. | Method for enabling a user interface for a network telephone |
US6556150B1 (en) * | 2000-03-24 | 2003-04-29 | Microsoft Corporation | Ergonomic computer input device |
US6917373B2 (en) * | 2000-12-28 | 2005-07-12 | Microsoft Corporation | Context sensitive labels for an electronic device |
US6546263B1 (en) * | 2000-06-12 | 2003-04-08 | Ericsson Inc. | Apparatus and method for compact icon display |
US6738045B2 (en) * | 2001-02-26 | 2004-05-18 | Microsoft Corporation | Method and system for accelerated data navigation |
US6762773B2 (en) * | 2001-05-23 | 2004-07-13 | Digeo, Inc. | System and method for providing a context-sensitive instructional user interface icon in an interactive television system |
US6703550B2 (en) * | 2001-10-10 | 2004-03-09 | Immersion Corporation | Sound data output and manipulation using haptic feedback |
FI20020847A (fi) * | 2002-05-03 | 2003-11-04 | Nokia Corp | Menetelmä ja laite valikkotoimintojen käyttämiseksi |
US20030214484A1 (en) * | 2002-05-20 | 2003-11-20 | Haywood Chad Christian | Convertible mouse |
US7546548B2 (en) * | 2002-06-28 | 2009-06-09 | Microsoft Corporation | Method and system for presenting menu commands for selection |
US20040135819A1 (en) * | 2002-10-28 | 2004-07-15 | Shalong Maa | Computer remote control |
-
2003
- 2003-12-15 JP JP2005509970A patent/JP2006510137A/ja active Pending
- 2003-12-15 WO PCT/US2003/040017 patent/WO2004059423A2/en active Application Filing
- 2003-12-15 AU AU2003297172A patent/AU2003297172A1/en not_active Abandoned
- 2003-12-15 EP EP03810326A patent/EP1573494A4/en not_active Withdrawn
- 2003-12-15 KR KR1020047008326A patent/KR20050084748A/ko not_active Application Discontinuation
-
2004
- 2004-01-30 US US10/768,779 patent/US20040220723A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
AU2003297172A8 (en) | 2004-07-22 |
AU2003297172A1 (en) | 2004-07-22 |
EP1573494A2 (en) | 2005-09-14 |
JP2006510137A (ja) | 2006-03-23 |
WO2004059423A3 (en) | 2005-01-06 |
EP1573494A4 (en) | 2011-11-02 |
US20040220723A1 (en) | 2004-11-04 |
WO2004059423A2 (en) | 2004-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100955954B1 (ko) | 명령들을 연쇄적으로 수행하기 위한 방법, 컴퓨터 판독가능 저장 매체 및 메모리를 포함하는 장치 | |
KR100955955B1 (ko) | 컴퓨터 장치들과 인터페이싱하기 위한 시스템들 및 방법들 | |
JP5922598B2 (ja) | マルチタッチ利用、ジェスチャ及び実装 | |
JP2009282996A (ja) | コンピュータ装置とインタフェースをとるシステム及び方法 | |
US9395906B2 (en) | Graphic user interface device and method of displaying graphic objects | |
KR20050084748A (ko) | 컴퓨터 장치들과 인터페이싱하기 위한 시스템들 및 방법들 | |
KR20050074268A (ko) | 컴퓨터 장치들과 인터페이싱하기 위한 시스템들 및 방법들 | |
KR20050074269A (ko) | 네비게이션 제어 장치를 위한 이벤트 처리 | |
US7119795B2 (en) | Information processing unit, control method for information processing unit for performing operation according to user input operation, and computer program | |
KR20060118821A (ko) | 포인팅디바이스를 이용한 애플리케이션 실행 방법, 장치 및애플리케이션 실행 프로그램을 기록한 컴퓨터로 읽을 수있는 매체 | |
CN100485576C (zh) | 与计算机设备对接的***和方法 | |
KR102087042B1 (ko) | 조작시스템 및 이를 포함하는 단말기 | |
US20200293157A1 (en) | Method for operating a computing device and computing device implementing the latter | |
Wigdor | 57.4: Invited paper: The breadth—depth dichotomy: Opportunities and crises in expanding sensing capabilities |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |