KR20130093685A - 데이터 입력 방법 및 데이터 입력 시스템 - Google Patents

데이터 입력 방법 및 데이터 입력 시스템 Download PDF

Info

Publication number
KR20130093685A
KR20130093685A KR1020137019217A KR20137019217A KR20130093685A KR 20130093685 A KR20130093685 A KR 20130093685A KR 1020137019217 A KR1020137019217 A KR 1020137019217A KR 20137019217 A KR20137019217 A KR 20137019217A KR 20130093685 A KR20130093685 A KR 20130093685A
Authority
KR
South Korea
Prior art keywords
symbol
receiving
application
data entry
selection
Prior art date
Application number
KR1020137019217A
Other languages
English (en)
Other versions
KR101319638B1 (ko
Inventor
크리쉬나 브이. 코티팔리
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=38163250&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR20130093685(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20130093685A publication Critical patent/KR20130093685A/ko
Application granted granted Critical
Publication of KR101319638B1 publication Critical patent/KR101319638B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements 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
    • G06F3/0233Character input methods
    • G06F3/0236Character input methods using selection techniques to select from displayed items
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04808Several contacts: gestures triggering a specific function, e.g. scrolling, zooming, right-click, when the user establishes several contacts with the surface simultaneously; e.g. using several fingers or a combination of fingers and pen

Abstract

소프트 키보드를 사용하는 방법이 개시되어 있다. 하나 이상의 소프트 키 - 이 하나 이상의 소프트 키 상에 심볼이 표시되어 있음 - 를 갖는 소프트 키보드가 제공된다. 소프트 키를 선택한 다음에 방향 입력을 제공함으로써 소프트 키들 중 하나에 표시된 심볼들 중 하나에 수정자가 적용될 수 있다. 일 실시예에서, 방향 입력에 따라 서로 다른 심볼이 입력되도록 서로 다른 방향 입력이 서로 다른 수정자와 연관되어 있다. 일 실시예에서, 사용자는 터치 감응 스크린에서의 선택자의 터치 및 방향 드래그로 방향 입력을 증명할 수 있다. 일 실시예에서, 사용자가 어느 방향 입력이 원하는 심볼을 제공하는지를 시각적으로 판정할 수 있도록 소프트 키가 선택된 후에 복수의 수정키와 연관된 복수의 심볼이 보이게 된다.

Description

데이터 입력 방법 및 데이터 입력 시스템{SMART SOFT KEYBOARD}
태블릿 PC, 랩톱, PDA 및 포켓 PC 등의 휴대용 컴퓨터는 다수의 어려운 설계 문제를 가진다. 한편으로는, 이들이 경량이고 휴대하기 쉬우며 사용하기 용이한 것이 바람직하다. 다른 한편으로는, 이들이 긴 배터리 수명을 갖고, 강력하며 대화면 디스플레이(large display)를 제공하는 것이 바람직하다. 이들 상충될지도 모르는 설계 가이드라인은 이상적인 휴대용 컴퓨터를 생성하는 것을 어렵게 한다.
중량 및 공간을 최소화하기 위해, 한 방법은 데이터 입력을 위해 디스플레이 상의 소프트 키보드를 사용하는 것이다. 소프트 키보드를 제공하는 한가지 방법은 터치 감응 특징을 갖는 디스플레이를 제공하는 것이다. 1 내지 1/N(단, N은 양의 정수임) 범위의 일부일 수 있는 디스플레이의 한 부분이 키보드와 비슷한 배열로 알파벳 문자 등의 심볼을 소프트 키(soft key) 상에 디스플레이하도록 구성될 수 있다. 디스플레이 상에서 해당 위치를 누름으로써, 그 심볼이 선택될 수 있다. 반복적으로 심볼을 선택함으로써, 개인은 기지의 방식으로 데이터를 입력할 수 있다.
그렇지만, 잘 알고 있는 바와 같이, 휴대용 장치의 디스플레이 상에서 이용가능한 공간이 제한되어 있다. 디스플레이의 일부분이 사용자의 선택을 디스플레이하는 데 사용되는 경우 이용가능한 공간이 더욱 감소된다. 그에 부가하여, 심볼들의 차이를 시각적으로 구분하기 어렵기 때문에, 어떤 지점 아래에 있는 심볼들의 크기를 감소시키는 것이 불가능하다. 따라서, 그렇지 않았으면 디스플레이되도록 요망될지도 모르는 모든 심볼들을 디스플레이하기가 어려울 수 있다. 이 문제는 액센트를 포함하거나 포함하지 않을 수 있는 심볼들을 포함하는 어떤 언어들에서 더 악화된다.
한가지 해결책은 시프트 키 등의 수정자 키(modifier key)를 제공하는 것이다. 적절한 수정자 키를 선택함으로써, 각각의 소프트키에 대해 이용가능한 선택 항목(choice)이 변할 수 있다. 그렇지만, 이것은 부가의 선택을 필요로 한다. 보통의 하드 키보드(hard keyboard)에서의 수정자 키의 사용은 통상적으로 문제가 되지 않는데, 그 이유는 양손을 동시에 사용할 수 있기 때문이다. 그렇지만, 소프트 키보드는 통상적으로 동일한 손가락 또는 포인팅 장치를 사용하여 그 다음 소프트키를 선택함으로써 동작된다. 따라서, 사용자가 먼저 수정자 키를 선택하고 이어서 원하는 소프트키를 선택해야만 하는 것은 바람직하지 않게도 데이터 입력의 속도를 떨어뜨릴 수 있다.
다수의 소프트키를 갖는 소프트 키보드가 터치 감응 디스플레이 상에 제공될 수 있으며, 각각의 소프트키는 심볼을 포함할 수 있다. 사용자는 터치 감응 스크린 상의 해당 위치에서 선택자(selector)를 누름으로써 소프트키들 중 하나를 선택할 수 있다. 사용자는 선택자를 수정자와 일렬인 방향으로 드래그함으로써 처음에 선택된 심볼의 수정된 버전을 선택할 수 있다. 이 선택은 선택자를 터치 감응 스크린에서 들어올림으로써 종료 또는 입력될 수 있다. 사용자에게 피드백을 제공하기 위해, 처음에 선택된 심볼과 연관되어 있는 가능한 심볼들이, 선택자를 원하는 심볼의 방향으로 드래그함으로써 사용자가 그 심볼을 선택할 수 있도록, 처음에 선택된 것의 주변에 디스플레이될 수 있다.
이 요약은 이하에서 상세한 설명에 더 기술되는 개념들 중 선택된 것을 간단화된 형태로 소개하기 위해 제공된 것이다. 이 요약은 청구된 발명 대상의 주요 특징들 또는 필수적인 특징들을 확인하기 위한 것이 아니며 청구된 발명 대상의 범위를 제한하는 데 사용하기 위한 것도 아니다.
본 발명이 본 발명의 양호한 실시예 및 예시적인 실시예와 관련하여 기술되어 있다. 본 발명이 구조적 특징 및/또는 방법적 작용과 관련하여 기술되어 있지만, 첨부된 청구 범위에 정의된 본 발명이 상기한 특정의 특징 또는 작용으로 반드시 한정될 필요는 없다는 것을 잘 알 것이다. 오히려, 상기한 특정의 특징 및 작용은 청구항들을 구현하는 예시적인 형태로서 개시된 것이다. 첨부된 청구항의 범위 및 정신 내에서의 수많은 다른 실시예, 수정 및 변형들이 이 개시 내용의 검토로부터 당업자에게는 자명할 것이다.
도 1a는 본 발명의 어떤 측면들이 구현될 수 있는 범용 디지털 컴퓨팅 환경의 개략도.
도 1b 내지 도 1m은 본 발명의 하나 이상의 측면들을 지원하는 범용 컴퓨터 환경을 나타낸 도면.
도 2는 본 발명의 하나 이상의 측면들이 구현될 수 있는 태블릿 컴퓨팅 환경의 개략도.
도 3은 본 발명의 하나 이상의 측면들이 구현될 수 있는 휴대용 컴퓨터 환경의 개략도.
도 4는 본 발명의 하나 이상의 측면들이 구현될 수 있는 디스플레이 상의 소프트 키보드의 일 실시예를 나타낸 도면.
도 5는 본 발명의 하나 이상의 측면들이 구현될 수 있는, 심볼을 디스플레이하는 소프트 키(soft key)를 나타낸 도면.
도 6a 및 도 6b는 본 발명의 하나 이상의 측면에 따른 제1 심볼의 주변에 제공된 일련의 심볼들의 실시예들을 나타낸 도면.
도 7 및 도 8은 본 발명의 하나 이상의 측면에 따른 제1 심볼과 연관된 심볼들을 선택하는 방법을 나타낸 도면.
도 9는 본 발명의 하나 이상의 측면에 따른 심볼을 입력하는 방법을 나타낸 도면.
본 발명은 유사한 참조 번호가 유사한 구성요소를 나타내는 첨부 도면에 제한이 아닌 예로서 도시되어 있다.
소프트 키보드의 사용은 어떤 이점들을 갖는다. 한가지는, 다른 애플리케이션들이 온스크린 디스플레이(on screen display)의 사용을 제어 및 모니터링할 수 있게 해주기 위해 API들이 제공될 수 있다. 게다가, 소프트 키보드의 컬러 및 외관이 용이하게 커스터마이즈가능하다. 그에 부가하여, 소프트 키의 디스플레이 크기 및 심볼에 사용되는 폰트 크기에 대한 간단한 수정을 갖는 다양한 애플리케이션 및 하드웨어에 유사한 소프트 키보드가 사용될 수 있다. 이하의 개시 내용을 고려하면 추가의 이점들이 명백하게 될 것이다.
일반 컴퓨팅 환경
도 1a는 본 발명이 구현될 수 있는 적당한 컴퓨팅 시스템 환경(100)의 예를 나타낸 것이다. 컴퓨팅 시스템 환경(100)은 적당한 컴퓨팅 환경의 일례에 불과하며, 본 발명의 사용 또는 기능의 범위에 관한 어떤 제한도 암시하려는 것이 아니다. 또한, 컴퓨팅 환경(100)이 이 예시적인 운영 환경(100)에 도시된 컴포넌트들 중 임의의 하나 또는 이들의 임의의 조합에 관하여 어떤 의존 관계나 요구 사항을 갖는 것으로 해석되어서도 안된다.
본 발명은 수많은 다른 범용 또는 특수 목적의 컴퓨팅 시스템 환경 또는 구성에서 동작한다. 본 발명에서 사용하기에 적합할 수 있는 공지의 컴퓨팅 시스템, 환경 및/또는 구성의 예로는 퍼스널 컴퓨터, 서버 컴퓨터, 핸드헬드 또는 랩톱 장치, 멀티프로세서 시스템, 마이크로프로세서-기반 시스템, 셋톱 박스, 프로그램가능 가전 제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기한 시스템 또는 장치들 중 임의의 것을 포함하는 분산 컴퓨팅 환경, 기타 등등이 있다.
본 발명은 일반적으로 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능 명령어와 관련하여 기술될 것이다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 본 발명은 또한 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 메모리 저장 장치를 비롯한 로컬 및 원격 컴퓨터 저장 매체 둘다에 위치할 수 있다.
도 1a를 참조하면, 본 발명을 구현하는 예시적인 시스템은 컴퓨터(110) 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(110)의 컴포넌트들은 처리 장치(120), 시스템 메모리(130), 및 이 시스템 메모리를 비롯한 여러가지 시스템 컴포넌트들을 처리 장치(120)에 연결시키는 시스템 버스(121)를 포함할 수 있지만, 이에 한정되지 않는다. 시스템 버스(121)는 메모리 버스 또는 메모리 컨트롤러, 주변 장치 버스 및 각종 버스 아키텍처 중 임의의 것을 이용하는 로컬 버스를 비롯한 몇몇 유형의 버스 구조 중 어느 것이라도 될 수 있다. 예로서, 이러한 아키텍처는 ISA(industry standard architecture) 버스, MCA(micro channel architecture) 버스, EISA(Enhanced ISA) 버스, VESA(video electronics standard association) 로컬 버스, 그리고 메자닌 버스(mezzanine bus)로도 알려진 PCI(peripheral component interconnect) 버스 등을 포함하지만 이에 제한되는 것은 아니다.
컴퓨터(110)는 통상적으로 각종 컴퓨터 판독가능 매체를 포함한다. 컴퓨터(110)에 의해 액세스 가능한 매체는 그 어떤 것이든지 컴퓨터 판독가능 매체가 될 수 있고, 이러한 컴퓨터 판독가능 매체는 휘발성 및 비휘발성 매체, 이동식 및 비이동식 매체를 포함한다. 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있지만 이에 제한되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광 디스크 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 컴퓨터(110)에 의해 액세스될 수 있고 원하는 정보를 저장하는 데 사용될 수 있는 임의의 기타 매체를 포함하지만 이에 제한되는 것은 아니다. 통신 매체는 통상적으로 반송파(carrier wave) 또는 기타 전송 메커니즘(transport mechanism)과 같은 피변조 데이터 신호(modulated data signal)에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터 등을 구현하고 모든 정보 전달 매체를 포함한다. "피변조 데이터 신호"라는 용어는, 신호 내에 정보를 인코딩하도록 그 신호의 특성들 중 하나 이상을 설정 또는 변경시킨 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 배선 접속(direct-wired connection)과 같은 유선 매체, 그리고 음향, RF, 적외선, 기타 무선 매체와 같은 무선 매체를 포함한다. 상술된 매체들의 모든 조합이 또한 컴퓨터 판독가능 매체의 영역 안에 포함되는 것으로 한다.
시스템 메모리(130)는 판독 전용 메모리(ROM)(131) 및 랜덤 액세스 메모리(RAM)(132)와 같은 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 시동 중과 같은 때에, 컴퓨터(110) 내의 구성요소들 사이의 정보 전송을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템(BIOS)(133)은 통상적으로 ROM(131)에 저장되어 있다. RAM(132)은 통상적으로 처리 장치(120)가 즉시 액세스 할 수 있고 및/또는 현재 동작시키고 있는 데이터 및/또는 프로그램 모듈을 포함한다. 예로서, 도 1a는 운영 체제(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136) 및 프로그램 데이터(137)를 도시하고 있지만 이에 제한되는 것은 아니다.
컴퓨터(110)는 또한 기타 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장 매체를 포함한다. 단지 예로서, 도 1a는 비이동식·비휘발성 자기 매체에 기록을 하거나 그로부터 판독을 하는 하드 디스크 드라이브(141), 이동식·비휘발성 자기 디스크(152)에 기록을 하거나 그로부터 판독을 하는 자기 디스크 드라이브(151), CD-ROM 또는 기타 광 매체 등의 이동식·비휘발성 광 디스크(156)에 기록을 하거나 그로부터 판독을 하는 광 디스크 드라이브(155)를 도시하고 있다. 예시적인 운영 환경에서 사용될 수 있는 기타 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장 매체로는 자기 테이프 카세트, 플래시 메모리 카드, DVD, 디지털 비디오 테이프, 고상(solid state) RAM, 고상 ROM 등이 있지만 이에 제한되는 것은 아니다. 하드 디스크 드라이브(141)는 통상적으로 인터페이스(140)와 같은 비이동식 메모리 인터페이스를 통해 시스템 버스(121)에 접속되고, 자기 디스크 드라이브(151) 및 광 디스크 드라이브(155)는 통상적으로 인터페이스(150)와 같은 이동식 메모리 인터페이스에 의해 시스템 버스(121)에 접속된다.
위에서 설명되고 도 1a에 도시된 드라이브들 및 이들과 관련된 컴퓨터 저장 매체는, 컴퓨터(110)에 대한 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 기타 데이터를 저장한다. 도 1a에서, 예를 들어, 하드 디스크 드라이브(141)는 운영 체제(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146), 및 프로그램 데이터(147)를 저장하는 것으로 도시되어 있다. 여기서 주의할 점은 이들 컴포넌트가 운영 체제(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136), 및 프로그램 데이터(137)와 동일하거나 그와 다를 수 있다는 것이다. 이에 관해, 운영 체제(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146) 및 프로그램 데이터(147)에 다른 번호가 부여되어 있다는 것은 적어도 이들이 다른 사본(copy)이라는 것을 나타내기 위한 것이다. 사용자는 키보드(162), 마이크(163) 및 통상 마우스, 트랙볼(trackball) 또는 터치 패드라고 하는 포인팅 장치(161) 등의 입력 장치를 통해 명령 및 정보를 컴퓨터(110)에 입력할 수 있다. 다른 입력 장치(도시 생략)로는 마이크, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이들 및 기타 입력 장치는 종종 시스템 버스에 결합된 사용자 입력 인터페이스(160)를 통해 처리 장치(120)에 접속되지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus) 등의 다른 인터페이스 및 버스 구조에 의해 접속될 수도 있다. 모니터(191) 또는 다른 유형의 디스플레이 장치도 비디오 인터페이스(190) 등의 인터페이스를 통해 시스템 버스(121)에 접속될 수 있다. 모니터 외에, 컴퓨터는 스피커(197) 및 프린터(196) 등의 기타 주변 출력 장치를 포함할 수 있고, 이들은 출력 주변장치 인터페이스(195)를 통해 접속될 수 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 사용하여 네트워크화된 환경에서 동작할 수 있다. 원격 컴퓨터(180)는 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치 또는 기타 통상의 네트워크 노드일 수 있고, 통상적으로 컴퓨터(110)와 관련하여 상술된 구성요소들의 대부분 또는 그 전부를 포함하지만, 도 1a에는 메모리 저장 장치(181)만이 도시되어 있다. 도 1a에 도시된 논리적 접속으로는 근거리 통신망(LAN)(171) 및 원거리 통신망(WAN)(173)이 있지만, 기타 네트워크를 포함할 수도 있다. 이러한 네트워킹 환경은 사무실, 전사적 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷, 및 인터넷에서 일반적인 것이다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 네트워크 인터페이스 또는 어댑터(170)를 통해 LAN(171)에 접속된다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 통상적으로 인터넷과 같은 WAN(173)을 통해 통신을 설정하기 위한 모뎀(172) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(172)은 사용자 입력 인터페이스(160) 또는 기타 적절한 메커니즘을 통해 시스템 버스(121)에 접속될 수 있다. 네트워크화된 환경에서, 컴퓨터(110) 또는 그의 일부와 관련하여 기술된 프로그램 모듈은 원격 메모리 저장 장치에 저장될 수 있다. 예로서, 도 1a는 원격 애플리케이션 프로그램(185)이 원격 컴퓨터(180)에 있는 것으로 도시하고 있지만 이에 제한되는 것은 아니다. 도시된 네트워크 접속은 예시적인 것이며 이 컴퓨터들 사이에 통신 링크를 설정하는 기타 수단이 사용될 수 있다는 것을 이해할 것이다.
프로그래밍 환경
프로그래밍 인터페이스(또는 보다 간단히 "인터페이스"라고 함)는 하나 이상의 코드 세그먼트(들)가 하나 이상의 다른 코드 세그먼트(들)와 통신을 하거나 그에 의해 제공되는 기능에 액세스할 수 있게 해주는 임의의 메카니즘, 프로세스, 프로토콜로 볼 수 있다. 다른 대안으로서, 프로그래밍 인터페이스는 다른 컴포넌트(들)의 하나 이상의 메카니즘(들), 메서드(method)(들), 함수 호출(들), 모듈(들), 기타 등등과 통신 연결될 수 있는 시스템의 컴포넌트의 하나 이상의 메카니즘(들), 메서드(들), 함수 호출(들), 모듈(들), 객체(들), 기타 등등으로 볼 수 있다. 이전의 문장에서의 용어 "코드 세그먼트"는 하나 이상의 명령어 또는 코드 라인(line of code)을 포함시키기 위한 것이며, 적용되는 전문 용어 또는 코드 세그먼트가 개별적으로 컴파일되는지 여부 또는 코드 세그먼트가 소스 코드(source code), 중간 코드(intermediate code) 또는 오브젝트 코드(object code)로서 제공되는지, 코드 세그먼트가 런타임 시스템 또는 프로세스에서 이용되는지, 또는 이들이 동일한 또는 서로 다른 기계 상에 위치하는지 또는 다수의 기계에 걸쳐 분산되어 있는지, 또는 코드 세그먼트로 표현된 기능이 전적으로 소프트웨어로, 전적으로 하드웨어로, 또는 하드웨어와 소프트웨어의 조합으로 구현되는지에 상관없이, 예를 들어, 코드 모듈, 객체, 서브루틴, 함수, 기타 등등을 포함한다.
개념상, 프로그래밍 인터페이스는 일반적으로 도 1b 또는 도 1c에 도시된 바와 같이 생각될 수 있다. 도 1b에서는 인터페이스(Interface1)를 도관(conduit)으로 나타내고 있는데, 이 도관을 통해 제1 및 제2 코드 세그먼트가 통신을 한다. 도 1c는 인터페이스를 인터페이스 객체(I1, I2)(제1 및 제2 코드 세그먼트의 일부일 수 있거나 그 일부가 아닐 수 있음)를 포함하는 것으로 나타내고 있으며, 이들 인터페이스 객체는 시스템의 제1 및 제2 코드 세그먼트가 매체(M)를 통해 통신을 할 수 있게 해준다. 도 1c를 보면, 인터페이스 객체(I1, I2)를 동일한 시스템의 개별적인 인터페이스로 볼 수 있으며, 또한 객체(I1, I2)와 매체(M)가 인터페이스를 구성하는 것으로도 볼 수 있다. 도 1b 및 도 1c가 양방향 흐름을 나타내고 이 흐름의 양쪽에 인터페이스를 나타내고 있지만, 어떤 구현은 단지 한쪽 방향으로의 정보 흐름만을 가질 수 있거나(또는 이하에 기술되는 바와 같이 정보 흐름이 없음) 단지 한쪽에만 인터페이스 객체를 가질 수 있다. 제한이 아닌 예로서, 애플리케이션 프로그래밍 인터페이스(API), 진입점(entry point), 메서드, 함수, 서브루틴, 원격 프로시저 호출(remote procedure call), 및 컴포넌트 객체 모델(component object model, COM) 인터페이스 등의 용어는 프로그래밍 인터페이스의 정의 내에 포함된다.
이러한 프로그래밍 인터페이스의 측면들은 제1 코드 세그먼트가 정보를 제2 코드 세그먼트로 전송하는 메서드(여기서, "정보"는 최광의로 사용되며, 데이터, 명령, 요청, 기타 등등을 포함함), 제2 코드 세그먼트가 그 정보를 수신하는 메서드, 및 그 정보의 구조, 시퀀스, 구문(syntax), 구성(organization), 스키마, 타이밍 및 내용을 포함할 수 있다. 이 점에서, 그 정보가 인터페이스에 의해 정의된 방식으로 전송되는 한, 근간이 되는 전송 매체 자체가 - 이 매체가 유선이나 무선이든 또는 이 둘의 조합이든 간에 - 인터페이스의 동작에 중요하지 않을 수 있다. 어떤 상황에서, 정보가 종래의 의미에서 한쪽 방향 또는 양쪽 방향으로 전달되지 않을 수 있는데, 그 이유는 정보 전송이 또 다른 메카니즘을 통하거나(예를 들어, 코드 세그먼트 간의 정보 흐름과 별도로 정보가 버퍼, 파일, 기타 등등에 배치됨), 한 코드 세그먼트가 단지 다른 코드 세그먼트에 의해 수행되는 기능에 액세스하는 때와 같이, 정보 전송이 존재하지 않을 수 있기 때문이다. 이들 측면 중 어느 하나 또는 그 모두가, 예를 들어, 코드 세그먼트가 소결합된 구성(loosely coupled configuration) 또는 밀결합된 구성(tightly coupled configuration)에서 시스템의 일부인지에 따라, 주어진 상황에서 중요할 수 있으며, 따라서 이 리스트는 예시적인 것이지 제한하는 것이 아닌 것으로 보아야 한다.
프로그래밍 인터페이스의 이러한 개념은 당업자에게는 잘 알려져 있으며, 본 발명의 이상의 상세한 설명으로부터 분명하다. 그렇지만, 프로그래밍 인터페이스를 구현하는 다른 방식들이 있으며, 명시적으로 배제되지 않는 한, 이들도 역시 본 명세서의 끝부분에 서술되어 있는 청구 범위에 의해 포함되는 것으로 보아야 한다. 이러한 기타 방식들이 도 1b 및 도 1c에 극도로 단순화하여 나타낸 것보다 더 진보되었거나 복잡할 수 있지만, 이들은 그럼에도 동일한 전체적인 결과를 달성하기 위해 유사한 기능을 수행한다. 이제부터 프로그래밍 인터페이스의 몇몇 예시적인 대안 구현들에 대해 간략하게 기술한다.
A. 인수분해
한 코드 세그먼트로부터 다른 코드 세그먼트로의 통신은 그 통신을 다수의 서로 다른 통신으로 나눔으로써 간접적으로 달성될 수 있다. 이것은 도 1d 및 도 1e에 개략적으로 도시되어 있다. 도시된 바와 같이, 몇몇 인터페이스는 분할가능한 기능 세트의 관점에서 설명될 수 있다. 따라서, 마치 수학적으로 24 또는 2 x 2 x 3 x 2를 제공할 수 있는 것과 같이, 도 1b 및 도 1c의 인터페이스 기능이 동일한 결과를 달성하도록 인수분해될 수 있다. 따라서, 도 1d에 나타낸 바와 같이, 동일한 결과를 달성하면서 인터페이스의 통신을 다수의 인터페이스(Interface1A, Interface1B, Interface1C, 기타)로 변환하기 위해, 인터페이스(Interface1)에 의해 제공되는 기능이 세분될 수 있다. 도 1e에 나타낸 바와 같이, 인터페이스(I1)에 의해 제공되는 기능은 동일한 결과를 달성하면서 다수의 인터페이스(I1a, I1b, I1c, 기타)로 세분될 수 있다. 이와 유사하게, 제1 코드 세그먼트로부터 정보를 수신하는 제2 코드 세그먼트의 인터페이스(I2)는 다수의 인터페이스(I2a, I2b, I2c, 기타)로 인수분해될 수 있다. 인수분해를 할 때, 제1 코드 세그먼트에 포함된 인터페이스의 수가 제2 코드 세그먼트에 포함된 인터페이스의 수와 일치할 필요는 없다. 도 1d 및 도 1e의 경우 중 어느 하나에서, 인터페이스(Interface1, I1)의 기능상 핵심(functional spirit)은 각각 도 1b 및 도 1c에서와 같이 동일하다. 인터페이스의 인수분해는 또한 결합(associative), 교환(commutative) 및 기타 수학적 성질을 따를 수 있으며, 따라서 인수분해를 알아내기가 어려울 수도 있다. 예를 들어, 동작의 순서는 중요하지 않을 수 있으며, 그 결과 인터페이스에 의해 수행되는 기능이 인터페이스에 도달하기 훨씬 이전에 다른 코드 또는 인터페이스에 의해 수행되거나 시스템의 별도의 컴포넌트에 의해 수행될 수 있다. 게다가, 프로그래밍 분야의 당업자라면 동일한 결과를 달성하는 다른 함수 호출을 행하는 다양한 방식이 있다는 것을 잘 알 수 있다.
B. 재정의(redefinition)
어떤 경우에, 의도한 결과를 여전히 달성하면서 프로그래밍 인터페이스의 어떤 측면들(예를 들어, 매개변수)을 무시, 추가 또는 재정의하는 것이 가능할 수 있다. 이것이 도 1f 및 도 1g에 도시되어 있다. 예를 들어, 도 1b의 인터페이스(Interface1)가 함수 호출 Square(input, precision, output)(이 호출은 3개의 매개변수, input(입력), precision(정도(程度)) 및 output(출력)을 포함하고 제1 코드 세그먼트로부터 제2 코드 세그먼트로 발행됨)을 포함하는 것으로 가정하자. 중간 매개변수 precision이 주어진 시나리오에서 중요하지 않은 경우, 도 1f에 도시된 바와 같이, 이것도 역시 무시되거나 심지어 의미없는(이 상황에서) 매개변수로 대체될 수 있다. 또한, 중요하지 않은 부가의 매개변수를 추가할 수도 있다. 여하튼간에, 제2 코드 세그먼트에 의해 입력이 제곱된 후에 출력이 반환되는 한, 제곱의 기능이 달성될 수 있다. precision(정도)가 확실히 컴퓨터 시스템의 어떤 다운스트림(downstream) 또는 다른 부분에는 의미있는 매개변수일 수 있다. 그렇지만, 정도(precision)가 제곱을 계산하는 좁은 목적에 필요하지 않은 것으로 인식되는 경우, 이는 대체되거나 무시될 수 있다. 예를 들어, 유효한 정도(precision) 값을 전달하는 대신에, 결과에 악영향을 주지 않고 생일 등의 의미없는 값이 전달될 수 있다. 이와 유사하게, 도 1g에 도시된 바와 같이, 인터페이스(I1)가 인터페이스(I1')로 대체되고, 매개변수를 무시하거나 매개변수를 인터페이스에 추가하도록 재정의된다. 인터페이스(I2)도 이와 유사하게 인터페이스(I2')로서 재정의될 수 있으며, 불필요한 매개변수 또는 다른 곳에서 처리될 수 있는 매개변수를 무시하도록 재정의될 수 있다. 여기서의 요점은 어떤 경우에 프로그래밍 인터페이스가 어떤 목적에 필요하지 않는 매개변수 등의 측면들을 포함할 수 있으며 따라서 이들이 무시 또는 재정의되거나 다른 목적으로 다른 곳에서 처리될 수 있다는 것이다.
C. 인라인 코딩
또한, 2개의 서로 다른 코드 모듈의 기능의 일부 또는 그 전부를 병합하여 이들 간의 "인터페이스"의 형태가 변경되도록 하는 것이 가능할 수 있다. 예를 들어, 도 1b 및 도 1c의 기능이 도 1h 및 도 1i의 기능으로 각각 변환될 수 있다. 도 1h에서, 도 1b의 이전의 제1 및 제2 코드 세그먼트가 이들 둘다를 포함하는 모듈로 병합된다. 이 경우에, 이들 코드 세그먼트는 여전히 서로 통신을 하고 있을 수 있지만 그 인터페이스는 단일의 모듈에 더 적합한 형태로 개조될 수 있다. 따라서, 예를 들어, 형식상의 Call 및 Return문이 더 이상 필요하지 않을 수 있지만, 인터페이스(Interface1)에 따른 유사한 처리 또는 응답(들)은 여전히 유효할 수 있다. 이와 유사하게, 도 1i에 도시된 바와 같이, 도 1c로부터의 인터페이스(I2)의 일부(또는 그 전부)는 인터페이스(I1) 내에 인라인(inline)으로 작성되어 인터페이스(I1")를 형성할 수 있다. 도시된 바와 같이, 인터페이스(I2)는 I2a 및 I2b로 나누어지고, 인터페이스 부분(I2a)은 인터페이스(I1)에 인라인 코딩되어 인터페이스(I1")를 형성한다. 구체적인 예에 있어서, 도 1c로부터의 인터페이스(I1)가 함수 호출 square(input, output)를 수행하고, 이것이 인터페이스(I2)에 의해 수신되며, 인터페이스(I2)가, 제2 코드 세그먼트에 의해 (input(입력)을 제곱하기 위해) input(입력)으로 전달된 값을 처리한 후에, 제곱된 결과를 output(출력)으로 다시 전달하는 것을 생각해보자. 이러한 경우에, 제2 코드 세그먼트에 의해 수행되는 처리(input을 제곱하는 것)는 인터페이스에 대한 호출 없이 제1 코드 세그먼트에 의해 수행될 수 있다.
D. 분리(divorce)
한 코드 세그먼트로부터 다른 코드 세그먼트로의 통신은 그 통신을 다수의 개별적인 통신으로 나눔으로써 간접적으로 달성될 수 있다. 이것은 도 1j 및 도 1k에 개략적으로 도시되어 있다. 도 1j에 도시된 바와 같이, 제1 인터페이스(Interface1)를 통한 통신을 다른 인터페이스(이 경우에, 인터페이스(Interface2A, Interface2B, Interface2C))에 부합하도록 그 통신을 변환하기 위해, 하나 이상의 미들웨어(들)(분리 인터페이스(divorce interface)(들), 왜냐하면 이들이 기능 및/또는 인터페이스 함수를 원래의 인터페이스로부터 분리시키기 때문임)가 제공된다. 이것은 예를 들어 Interface1 프로토콜에 따라, 이를테면, 운영 체제와 통신을 하도록 설계되어 있는 베이스 애플리케이션(base of application)가 설치되어 있지만 그 운영 체제가 다른 인터페이스(이 경우에, 인터페이스(Interface2A, Interface2B, Interface2C))를 사용하도록 변경되어 있는 경우에 행해질 수 있다. 여기에서 요점은 제2 코드 세그먼트에 의해 사용되는 원래의 인터페이스가 변경되어 제1 코드 세그먼트에 의해 사용되는 인터페이스와 더 이상 호환되지 않게 되고, 따라서 이전의 인터페이스와 새로운 인터페이스가 호환되도록 하기 위해 매개물(intermediary)이 사용된다는 것이다. 이와 유사하게, 도 1k에 도시된 바와 같이, 제3 코드 세그먼트가 인터페이스(I1)로부터 통신을 수신하기 위해 분리 인터페이스(DI1)에 도입될 수 있고 또 인터페이스 기능을 예를 들어 인터페이스(I2a, I2b)(DI2에 대해 동작하지만 동일한 기능상 결과를 제공하도록 재설계되어 있음)로 전송하기 위해 분리 인터페이스(DI2)에 도입될 수 있다. 이와 유사하게, DI1 및 DI2는 협력하여 도 1c의 인터페이스(I1, I2)의 기능을 동일 또는 유사한 기능상 결과를 제공하면서 새로운 운영 체제에 맞게 변환시킬 수 있다.
E. 재작성(rewriting)
또다른 가능한 변형예는 인터페이스 기능을 다른 무언가로 대체시키지만 동일한 전체적인 결과를 달성하는 코드를 동적으로 재작성하는 것이다. 예를 들어, 실행 환경(.Net 프레임워크, Java 런타임 환경 또는 다른 유사한 런타임 유형 환경에 의해 제공되는 것 등)에서 중간 언어(intermediate language)(예를 들어, Microsoft IL, Java ByteCode, 기타)로 제공되는 코드 세그먼트가 JIT(Just-in-Time) 컴파일러 또는 인터프리터(interpreter)에 제공되는 시스템이 있을 수 있다. JIT 컴파일러는 제1 코드 세그먼트로부터의 통신을 제2 코드 세그먼트로 동적으로 변환하도록, 즉 그 통신을 제2 코드 세그먼트(원래의 또는 다른 제2 코드 세그먼트 중 어느 하나)에 의해 필요로 될 수 있는 다른 인터페이스에 부합시키도록 작성될 수 있다. 이것은 도 1l 및 도 1m에 도시되어 있다. 도 1l에서 알 수 있는 바와 같이, 이 방식은 상기한 분리(Divorce) 시나리오와 유사하다. 이는, 예를 들어, 설치된 베이스 애플리케이션이 Interface1 프로토콜에 따라 운영 체제와 통신을 하도록 설계되어 있지만 운영 체제가 다른 인터페이스를 사용하도록 변경되는 경우에 행해질 수 있다. 설치된 베이스 애플리케이션으로부터의 동작 중인 통신을 운영 체제의 새로운 인터페이스에 부합시키기 위해 JIT 컴파일러가 사용될 수 있다. 도 1m에 도시된 바와 같이, 인터페이스(들)를 동적으로 재작성하는 이 방식은 또한 인터페이스(들)를 동적으로 인수분해하거나 다른 방식으로 변경하기 위해 적용될 수 있다.
또한 유의할 점은 대안적인 실시예를 통해 인터페이스와 동일한 또는 유사한 결과를 달성하기 위한 상기한 시나리오들이 또한 여러가지 방식으로, 직렬로 및/또는 병렬로, 또는 다른 중재 코드(intervening code)와 조합될 수 있다는 것이다. 따라서, 이상에 제공된 대안적인 실시예는 상호 배타적이지 않으며, 도 1b 및 도 1c에 제공된 일반적인 시나리오들과 동일한 또는 동등한 시나리오를 생성하기 위해 혼합(mix), 정합(match) 및 결합(combine)될 수 있다. 또한, 유의할 점은, 대부분의 프로그래밍 구조(programming construct)에서와 같이, 본 명세서에 기술되어 있지 않을 수 있지만 그럼에도, 본 발명의 정신 및 범위에 의해 표현되는 인터페이스의 동일 또는 유사한 기능을 달성하는 다른 유사한 방식들이 있다는 것이다. 즉, 유의할 점은 적어도 부분적으로 인터페이스에 의해 표현되는 기능 및 인터페이스에 의해 가능하게 되는 유익한 결과들이 인터페이스의 가치의 근간을 이룬다는 것이다.
휴대용 컴퓨팅 환경
도 2는 본 발명의 여러가지 측면들에 따라 사용될 수 있는 예시적인 태블릿 PC(201)를 나타낸 것이다. 도 1a의 시스템에서의 특징들, 서브시스템들 및 기능들 중 어느 하나 또는 그 모두가 도 2의 컴퓨터에 포함될 수 있다. 태블릿 PC(201)는 큰 디스플레이 표면(202) 복수의 창(203)이 디스플레이되는, 예를 들어, 디지타이징 평판 패널 디스플레이(digitizing flat panel display), 양호하게는 액정 디스플레이(LCD) 화면을 포함한다. 선택자의 일례인 스타일러스(204)를 사용하여, 사용자는 디지타이징 디스플레이 표면(202) 상에서 선택, 하이라이트 및/또는 쓰기를 할 수 있다. 적당한 디지타이징 디스플레이 표면(202)의 예로는 Mutoh 또는 Wacom 펜 디지타이저 등의 전자기 펜 디지타이저(electromagnetic pen digitizer)가 있다. 다른 유형의 펜 디지타이저, 예를 들어, 광 디지타이저도 역시 사용될 수 있다. 태블릿 PC(201)는 데이터를 조작하고, 텍스트를 입력하며, 드로잉(drawing)을 생성하고 및/또는 스프레드쉬트, 워드 프로세싱 프로그램, 기타 등등의 종래의 컴퓨터 애플리케이션 태스크를 실행하기 위해 스타일러스(204)를 사용하여 행해진 제스처를 해석한다.
스타일러스(204)는 그의 선택 능력을 보강시키기 위해 하나 이상의 버튼 또는 다른 특징들을 구비하고 있다. 일 실시예에서, 스타일러스(204)는 "연필" 또는 "펜"으로 구현될 수 있으며, 이 경우 한쪽 단부는 쓰기 부분을 구성하고 다른쪽 단부는 "지우개" 단부를 구성하며, 이 지우개 단부는, 디스플레이에서 이동될 때, 디스플레이의 일부분이 지워져야만 함을 나타낸다. 마우스, 트랙볼, 기타 등등의 다른 유형의 입력 장치들이 사용될 수 있다. 그에 부가하여, 사용자 자신의 손가락이 스타일러스(204)일 수 있고 터치-감응(touch-sensitive) 또는 근접-감응(proximity-sensitive) 디스플레이 상의 디스플레이된 이미지의 일부분을 선택 또는 가리키는 데 사용될 수 있다. 그 결과, 용어 "사용자 입력 장치"는, 본 명세서에서 사용되는 바와 같이, 광의의 정의를 가지며 스타일러스(204) 등의 공지의 입력 장치에 관한 많은 변형들을 포함하는 것으로 보아야 한다. 영역(205)은 사용자가 스타일러스(204)가 어디에서 디스플레이 표면(202)과 접촉하는지를 판정할 수 있게 해주는 피드백 영역 또는 접촉 영역을 나타낸 것이다. 따라서, 스타일러스(204)는 본 발명의 측면들에서 효과적인 선택자로서 사용될 수 있다.
다양한 실시예들에서, 본 시스템은 애플리케이션이 잉크를 포착(capture), 조작(manipulate) 및 저장하는 데 사용할 수 있는 일련의 COM(component object model, 컴포넌트 객체 모델) 서비스로서 잉크 플랫폼(ink platform)을 제공한다. 한 서비스는 애플리케이션이 잉크의 드러난 표현(disclosed representation)을 사용하여 잉크를 읽고 쓸 수 있게 해준다. 잉크 플랫폼은 또한 XML(extensible markup language)과 같은 언어를 비롯한 마크업 언어를 포함할 수 있다. 게다가, 본 시스템은 다른 구현으로서 DCOM을 사용할 수 있다. 마이크로소프트사의 Win32 프로그래밍 모델 및 .Net 프로그래밍 모델을 비롯한 또다른 구현들이 사용될 수 있다.
도 3은 핸드헬드 컴퓨팅 장치("H/PC")(320)의 기능 컴포넌트들을 나타낸 것이다. 도시된 바와 같이, H/PC(320)는 프로세서(360), 메모리(362), 디스플레이(328) 및 키보드(332)를 포함한다. 메모리(362)는 휘발성 메모리(예를 들어, RAM) 및 비휘발성 메모리(예를 들어, ROM, PCMCIA 카드 등) 둘다를 포함할 수 있다. 운영 체제(364)는 메모리(362)에 상주할 수 있고 프로세서(360)에서 실행될 수 있다. 일 실시예에서, H/PC(320)는 마이크로소프트사의 Windows
Figure pat00001
CE 운영 체제 또는 기타 운영 체제 등의 운영 체제를 포함한다.
하나 이상의 애플리케이션 프로그램(366)이 메모리(362)에 로드되어 운영 체제(364) 상에서 실행될 수 있다. 애플리케이션의 예로는 이메일 프로그램, 스케쥴링 프로그램(scheduling program), PIM(personal information management, 개인 정보 관리) 프로그램, 워드 프로세싱 프로그램, 스프레드쉬트 프로그램, 인터넷 브라우저 프로그램, 게임 및 기타 공지의 애플리케이션이 있다. H/PC(320)는 또한 메모리(362)에 로드되는 통지 관리자(notification manager)(368)(이것도 역시 프로세서(360) 상에서 실행될 수 있음)도 포함할 수 있다. 통지 관리자(368)는 애플리케이션(366)으로부터의 통지 요청을 처리할 수 있다.
H/PC(320)는 하나 이상의 배터리 또는 커패시터나 연료 전지 기타 등등의 어떤 다른 전원으로 구현될 수 있는 전원 공급 장치(370)를 포함한다. 전원 공급 장치(370)는 AC 어댑터 또는 전원 도킹 크레이들(powered docking cradle) 등의 내장 배터리(built-in battery)에 우선하거나 내장 배터리를 재충전하는 외부 전원을 더 포함할 수 있다.
도시된 바와 같이, H/PC(320)는 3가지 유형의 외부 통지 메카니즘, 즉 LED(340), 진동 장치(372) 및 오디오 발생기(374)을 포함한다. 이들 장치는 활성화될 때 통지 메카니즘에 의해 좌우되는 지속기간 동안 켜진 채로 있을 수 있도록 전원 공급 장치(370)에 직접 연결될 수 있지만, H/PC 프로세서(360) 및 다른 컴포넌트들이 에너지 소모를 감소시키기 위해 꺼져 있을 수 있다. 일 실시예에서, LED(340)는 사용자가 조치를 취할 때까지 켜진 채로 있을 수 있다. 현재 버전의 진동 장치(372) 및 오디오 발생기(374)가 오늘날의 H/PC 배터리로 보아서는 너무 많은 전력을 사용하며, 따라서 이들은 나머지 시스템이 꺼질 때 또는 활성화 이후의 어떤 유한의 기간에 꺼지도록 구성될 수 있다.
애플리케이션
도 4를 참조하면, 휴대용 컴퓨터(401)의 일 실시예가 도시되어 있다. 상기한 바와 같이 구성될 수 있는 휴대용 컴퓨터는 디스플레이(405)가 제공되어 있는 하우징(402)을 포함한다. 도시된 바와 같이, 소프트 키(410)의 배열(408)을 포함하는 소프트 키보드(406)가 제공된다. 유의할 점은 다른 배열(408)도 역시 제공될 수 있다는 것이다.
원하는 경우, 소프트 키보드(406)의 배열(408)은 상기한 바와 같이 API를 통해 애플리케이션에 의해 제어가능할 수 있다. 일 실시예에서, 소프트 키(410)의 배열(408)을 조정하기 위해 매개변수가 사용될 수 있다. 이 매개변수는 배열(408)을 조정하기 위해 수정될 수 있는 기본값을 포함할 수 있으며, 따라서 다른 애플리케이션들이 원하는 바에 따라 소프트 키(410)의 배열(408)을 조정할 수 있다. 일 실시예에서, 소프트 키보드(406)는 애플리케이션에 의해 선택될 수 있는 일련의 배열(408)을 포함할 수 있으며, 각각의 배열은 서로 다른 미리 정해진 위치에 소프트 키(410)를 배치할 수 있다. 다른 실시예에서, 이 배열(408)은 애플리케이션이 원하는 바에 따라 개개의 소프트 키(410)를 위치시킬 수 있도록 완전히 커스터마이즈가능할 수 있다.
개인이 컴퓨팅 장치에 데이터를 입력할 수 있게 해주기 위해, 각각의 소프트 키(410)는 영어에서 사용되는 문자 "a" 등의 심볼과 연관되어 있을 수 있다. 일 실시예에서, 도 5에 도시된 바와 같이, 소프트 키(410)는 대략 소프트 키(410)의 중심 부근에 배치된 심볼(505)을 포함할 수 있다. 소프트 키(410)가 선택되면(이 선택은 터치 감응 디스플레이의 표면에 선택자를 누름으로써 행해질 수 있음), 소프트 키와 연관된 디스플레이가 조정될 수 있다. 잘 알 수 있는 바와 같이, 소프트 키가 충분히 큰 경우, 2개 이상의 심볼이 소프트 키 상에 디스플레이될 수 있고 소프트 키를 선택함으로써 사용자는 디스플레이되어 있는 심볼들 중 어느 것이 선택되도록 요망되는지를 선택할 수 있다.
일 실시예에서, 도 6a에 도시된 바와 같이, 소프트 키(410)의 선택에 의해 부가의 심볼들(505)이 디스플레이된다. 유의할 점은 선택하는 것이 터치 감응 디스플레이 상의 원하는 소프트 키와 일렬로 있는 위치에서 선택자를 누르는 것일 수 있다는 것이다. 일 실시예에서, 심볼들(505a 내지 505h)이 디스플레이될 수 있다. 심볼(505)은 또한 계속하여 디스플레이될 수 있다. 심볼들(505a - 505h)은 서로 다른 수정자 키와 함께 심볼(505)을 나타낸 것이다. 따라서, 심볼(505a)은 심볼(505) 및 제1 수정자 키와 연관되어 있다.
도 6b는 대안의 실시예를 나타낸 것이다. 심볼(505)은 "5"를 나타낸 것이다. 방향 입력을 제공함으로써, 1 - 4 또는 6 - 9 등의 다른 숫자가 선택될 수 있다. 잘 알 수 있는 바와 같이, 이러한 실시예는 단일의 소프트 키가 0을 제외한 모든 숫자를 제공할 수 있게 해준다. 0을 제공하는 한가지 가능한 방법은 사용자가 먼저 한쪽 방향으로 이어서 그 반대 방향으로 방향 드래그(direction drag)를 제공하게 하는 것이다. 따라서, 잘 알 수 있는 바와 같이, 원하는 경우 복합 움직임(compound movement)이 부가의 수정자 키와 연관될 수 있다. 다른 대안으로서, 다양한 수정자와 연관된 심볼들 중 하나 이상이 지연 기간 후에 변경될 수 있다. 따라서, 일 실시예에서, 방향 입력의 제공 없이 터치가 유지되는 경우, 심볼(505)은 얼마간의 미리 정해진 기간 후에 "5"에서 "0"으로 변경될 수 있다.
일 실시예에서, 사용자는 소프트 키(505)를 선택할 수 있고 여러가지 심볼들이 즉각 보일 수 있다. 대안의 실시예에서, 사용자가 소프트 키(505)와 오랫동안 접촉하는 경우에만 여러가지 심볼들이 나타날 수 있다. 잘 알 수 있는 바와 같이, 부가의 심볼들이 나타나게 하는 데 필요한 소프트 키(505)와의 접촉 기간은 상기한 바와 같이 API를 통해 조정될 수 있다.
일 실시예에서, 심볼(505)에 대한 가장 통상적인 수정을 나타내는 어떤 심볼들이 먼저 나타날 수 있다. 따라서, 계층화된 응답(tiered response)이 제공될 수 있다. 그에 부가하여, 어떤 위치들이 다른 위치들보다 먼저 심볼로 채워질 수 있다. 잘 알 수 있는 바와 같이, 많은 변형이 가능하며, 일 실시예에서, 이들 변형은 API를 통해 조정될 수 있다. 따라서, 제한이 아닌 예로서, 심볼(505a)이 먼저 나타날 수 있고, 이어서 심볼(505e)이 나타날 수 있으며, 이하 마찬가지이다. 잘 알 수 있는 바와 같이, 심볼(505)이 가능한 수정을 충분히 갖지 않는 경우, 디스플레이될 수 있는 심볼들(505a - 505e)의 수는 그에 따라 감소될 수 있다. 게다가, 어떤 심볼들은 사용자 정의 이벤트 및 동작에 할당될 수 있고, 애플리케이션에 의해 또는 사용자에 의해 또는 둘다에 의해 커스터마이즈가능할 수 있다.
일 실시예에서, 소프트 키 상에 디스플레이된 제1 심볼 및 맨먼저 디스플레이된 심볼과 연관된 심볼들이 애플리케이션에 응답하여 결정될 수 있다. 따라서, 어떤 맨먼저 디스플레이되는 심볼들이 더 많은 수의 연관된 심볼을 가질 수 있는 반면, 다른 심볼들은 더 적은 수의 연관된 심볼들을 가질 수 있다. 일 실시예에서, 제1 심볼은 그와 연관된 수정자를 갖는 제1 심볼을 나타낸 단일의 제2 심볼을 가질 수 있다. 이러한 실시예에서, 0보다 큰 임의의 기간일 수 있는 프로그램된 기간보다 더 큰 시간의 접촉에 의해 제2 심볼이 나타나게 될 수 있다. 이러한 심볼과 연관된 옵션의 수를 증가시키기 위해, 사용자는 부가의 심볼들을 제1 심볼과 연관시킬 수 있다. 일 실시예에서, 사용자는 기존의 심볼을 치환함으로써 또는 현재 제1 심볼 및 방향 입력(directional input)과 연관되어 있지 않은 위치를 선택함으로써 부가의 심볼들의 위치를 선택할 수 있다. 대안의 실시예에서, 이 위치는 알고리즘에 따라 애플리케이션에 의해 자동적으로 선택된다. 한가지 이러한 알고리즘은 도 6에서 심볼(505a, 505c, 505e, 505g)로 표시된 위치를 시계 방향으로 먼저 채우는 것일 수 있다. 잘 알 수 있는 바와 같이, 이러한 알고리즘에서의 변형들이 많으며, 사용자의 동작들의 통계적 분석을 포함할 수 있고 또한 유용성 연구(usability study)로부터의 입력도 포함할 수 있다.
심볼을 선택하기 위해, 사용자는 스타일러스 또는 손가락 또는 방향 입력을 제공하기에 적합한 어떤 다른 장치일 수 있는 선택자를 심볼의 방향으로 이동시킬 수 있다. 도 6에 나타낸 바와 같이, 초기 선택 이후의 8개의 이동 방향은 제1 심볼(505)에 관련된 8개의 서로 다른 심볼을 제공할 수 있다. 그렇지만, 사용자가 방향 입력을 제공하지 않은 경우(또는 방향 입력이 미리 정해진 문턱값 미만인 경우), 제1 심볼(505)이 선택된다. 유의할 점은 8개의 서로 다른 심볼이 예시되어 있지만, 부가의 심볼들이 디스플레이될 수 있다는 것이다. 그렇지만, 개인이 9개 이상의 방향으로 정확한 입력을 일관되게 제공하는 데 어려움을 겪을 수 있으며, 따라서 9개 이상의 수정자가 단일의 소프트 키와 연관되는 경우에 어떤 부가적인 단계들이 유용할 수 있다.
일 실시예에서, 부가적인 심볼들이 소프트 키(505)의 경계 밖의 주변에 디스플레이될 수 있고 일정 간격으로 떨어져 있을 수 있다. 사용자가 원하는 심볼을 선택하는 것을 돕기 위해, 심볼 방향으로의 이동은 선택될 가능성이 있는 심볼의 컬러 또는 경사도(gradient)의 변동 등의 그래픽 변동을 야기한다. 사용자는 이어서 주변에 있는 다른 심볼이 하이라이트되게 하기 위해 다른 방향으로 이동할 수 있다. 잘 알 수 있는 바와 같이, 연관된 심볼의 수, 주변의 크기, 피드백의 유형, 및 감도는 소프트 키마다 또한 애플리케이션마다 변동될 수 있는 파라미터들의 일부에 불과하며, 이들 파라미터는 API를 통해 애플리케이션에 의해 제어될 수 있다.
도 7은 본 발명의 한 측면에 따른 심볼을 선택하는 방법을 나타낸 것이다. 예시된 바와 같이, 단계(710)에서, 사용자는 제1 심볼을 선택한다. 일 실시예에서, 이 선택은 선택자로 터치 감응 디스플레이의 표면을 누르는 것을 수반하며, 원하는 소프트 키와 일렬로 터치를 하면 적절한 심볼이 디스플레이된다.
그 다음에, 단계(715)에서, 제1 심볼과 연관된 심볼 세트가 보이게 된다. 일 실시예에서, 이 세트는 하나의 심볼을 포함한다. 대안의 실시예에서, 이 세트는 8개의 심볼을 포함한다. 잘 알 수 있는 바와 같이, 이 세트에 제공되는 심볼의 수의 변동이 원하는 바에 따라 달라질 수 있다. 일 실시예에서, 이들 심볼은 점차적으로 더 보이게 될 수 있거나 오른쪽으로부터 슬라이딩 인(sliding in), 중앙으로부터의 슬라이딩 아웃(sliding out) 또는 단지 갑자기 나타나는 것 등의 어떤 다른 방식으로 나타날 수 있다. 잘 알 수 있는 바와 같이, 심볼들이 어떻게 채워지고 보이게 되는지에 대한 이러한 그래픽 제어가 다양할 수 있으며 API를 통해 제어될 수 있다. 점진적인 페이딩 인(fading in)이 유용할 수 있는데 그 이유는 그에 의해 화면 상에 바람직하지 않은 혼잡을 제공하지 않고 사용자가 어느 심볼이 맨먼저 선택된 심볼과 연관되어 있는지에 관한 알림(reminder)을 수신할 수 있기 때문이다.
단계(720)에서, 사용자는 맨먼저 선택된 심볼과 연관된 심볼 세트로부터 심볼을 선택하기 위해 방향 입력을 제공한다. 이 방향 입력은 원하는 심볼의 방향으로 선택자를 이동시킴으로써 제공될 수 있다. 일 실시예에서, 이 방향 입력은 심볼 세트 내의 심볼과 일렬로 되어 있는 방향으로 터치 감응 디스플레이의 표면을 따라 선택자를 슬라이딩시킴으로써 제공될 수 있다. 이 슬라이딩은 선택자의 방향 드래깅(directional dragging)이라고도 할 수 있다. 상기한 바와 같이, 방향 입력은 특정의 방향 입력과 연관되어 있는 심볼이 하이라이트되게 할 수 있다. 일 실시예에서, 하이라이트된 심볼은 크기를 변경할 수 있거나, 컬러 또는 콘트라스트를 변경할 수 있거나, 또는 애니메이션을 비롯한 어떤 다른 종류의 그래픽 피드백을 제공할 수 있다. 일 실시예에서, 이 세트 내에 다수의 심볼이 제공될 수 있다. 다수의 심볼이 이 세트에 제공되어 있는 실시예에서, 사용자에 의해 제공된 초기 방향 입력은 그 세트 내의 심볼들 중 하나를 선택한다. 그 세트 내에 다수의 심볼을 갖는 대안의 실시예에서, 사용자는 제공된 초기 방향 입력에 기초하여 선택되는 심볼과 다른 심볼들을 하이라이트 및 선택하기 위해 다른 방향으로 자유롭게 이동할 수 있다.
이어서, 단계(725)에서, 원하는 심볼이 하이라이트된 후에, 사용자는 선택을 마무리하여 하이라이트된 심볼이 전송되게 한다(예를 들어, 원하는 심볼을 애플리케이션에 입력한다). 일 실시예에서, 심볼의 선택의 마무리는 디스플레이의 표면으로부터 선택자를 제거하는 것으로 행해질 수 있다. 잘 알 수 있는 바와 같이, 하이라이트된 심볼의 선택을 마무리하기 위해 입력 장치의 작동(actuation) 등의 다른 방법들도 사용될 수 있다. 일 실시예에서, 버튼의 작동에 의해 현재 하이라이트된 심볼의 선택 및 전송의 마무리를 할 수 있다. 이러한 방법은 사용자가 상당한 진동을 겪고 있거나 의료 조건(medical condition) 등의 어떤 다른 이유로 선택자를 안정되게 보유할 수 없는 상황에서 휴대용 장치에 유용할 수 있다.
도 8은 심볼을 선택하는 방법의 다른 실시예를 나타낸 것이다. 잘 알 수 있는 바와 같이, 도 7 및 도 8에 도시된 방법들 간의 차이는 제1 심볼과 연관된 심볼들을 보이게 하는 단계가 생략되어 있다는 것이다. 따라서, 일 실시예에서, 제1 심볼과 연관된 심볼들은 보이지 않게 되고 여전히 사용자에 의해 제공되는 적절한 선택 및 방향 입력에 의해 선택될 수 있다. 대안의 실시예에서, 오랜 지연 기간이 있지 않는 한(예를 들어, 사용자가 오랜 기간 동안 터치 감응 디스플레이를 계속 누르고 있지 않는 한), 심볼의 선택이 연관된 심볼들을 보이게 하지는 않는다. 다른 대안의 실시예에서, 사용자가 제2 입력을 제공하지 않는 한, 연관된 심볼들이 보이지 않게 된다. 잘 알 수 있는 바와 같이, 연관된 심볼들이 보이게 되는지 여부는 애플리케이션에 의해 제어될 수 있고 애플리케이션에서 그 특징을 온 또는 오프함으로써 사용자에 의해 제어되도록 설정될 수 있다.
도 8에 도시된 방법의 이점은 디스플레이가 부가의 심볼들로 혼잡하지 않으며, 디스플레이의 유형에 따라, 디스플레이에 어떤 변경도 행해지지 않기 때문에 더 적은 전력이 필요하게 될 수 있다. 그에 부가하여, 이러한 방법은 그래픽 관점에서 볼 때 덜 복잡하다. 그렇지만, 잘 알 것인 바와 같이, 이러한 방법에서는 사용자가, 원하는 연관된 심볼을 선택하는 데 필요한 이동 방향과 함께, 어떤 심볼들이 제1 선택된 심볼과 연관되어 있는지를 알고 있을 필요가 있다. 제1 심볼과 연관된 많은 제2 심볼들이 있는 어떤 언어들에서, 제2 심볼들을 디스플레이하지 않는 구성이 얼마간 더 어려울 수 있다. 따라서, 이러한 구성은 파워 또는 전문가 사용자에 가장 적합할 수 있다.
이상의 설명으로부터 잘 알 수 있는 바와 같이, 각각의 심볼과 연관된 다수의 심볼이 있을 때, 바람직하지 않게 디스플레이를 혼잡스럽게 하지 않고 사용자에게 충분한 정보를 제공하는 것이 더 어렵게 된다. 본 발명의 여러가지 측면들에 따라 사용될 수 있는 한가지 가능한 해결책은 특정의 수정자 키를 특정의 방향과 연관시키는 것이다. 예를 들어, 가능한 방향들이 0°내지 359°(360°가 0°와 같음) 범위에 있는 값과 연관되어 있는 경우, 0°에 있는 벡터를 따라 이동하는 것은 시프트 키와 연관될 수 있다. 유의할 점은 0°의 방향이 기준점에 의존하며 따라서 원하는 바에 따라 조정될 수 있다는 것이다. 도 6을 다시 참조하면, 0°는 심볼(505a)의 위치와 일렬로 있을 수 있다. 따라서, 일 실시예에서, 선택자를 심볼 위에 갖다 두고 이어서 0°방향(예를 들어, 위쪽 방향)으로 이동하는 것은 "선택" 소프트 키를 누르고 이어서 심볼을 누르는 것과 동등한 것이다. 잘 알 수 있는 바와 같이, 심볼을 누르고 이어서 방향 드래그를 제공하는 것이 더 효율적이며 먼저 시프트 소프트 키를 선택하고 이어서 원하는 키를 선택하는 것보다 더 빠르게 행해질 수 있다. 수많은 변형이 가능하지만, 선택들 간에 충분한 간격이 있도록 사용자가 적어도 45°의 범위를 목표로 하게 하는 것이 도움이 될 수 있다.
일 실시예에서, 위쪽(즉, 0°)은 "shift(시프트)" 수정자 키와 연관될 수 있고, "control(컨트롤)" 수정자 키는 아래쪽(즉, 180°)과 연관될 수 있으며, 우측(즉, 270°)은 "alt" 수정자 키와 연관될 수 있고, 좌측(즉 90°)은 "함수(function)" 수정자 키와 연관될 수 있다. 잘 알 수 있는 바와 같이, 이것의 변형들이 제공될 수 있고 특정의 수정자와 연관된 방향이 사용자 커스터마이즈가능할 수 있다. 그에 부가하여, 위첨자 또는 아래첨자 등의 심볼에 대한 어떤 수정들도 방향 드래그와 연관될 수 있다.
유의할 점은 어떤 소프트 키들이 소프트 키 상에 디스플레이된 심볼과 연관된 모든 방향을 채울 수 있는 충분한 변형들을 갖지 않을 수 있다는 것이다. 예를 들어, 수정자 "alt" 및 영어 심볼 "m"과 연관된 것이 아무 것도 없을 수 있다. 이것이 상기한 바와 같이 애플리케이션에 관련되어 있고 API를 통해 조정가능할 수 있지만, 일 실시예에서, 제1 심볼은 통상적으로 시프트 수정자와 같은 그와 연관된 하나의 수정자만을 가질 수 있지만, 이에 한정되는 것은 아니다. 예를 들어, 일 실시예에서, 영어로 타이핑하는 데 사용하기 위한 키보드는 위쪽 방향을 알파벳의 26개 문자의 대문자와 연관시킬 수 있으며, 임의의 다른 이동은 무시될 수 있다. 따라서, 대문자 "a"는 "a" 소프트 키를 선택한 다음에 0°방향 또는 벡터로 방향 드래그를 제공함으로써 입력될 수 있다. 대안의 실시예에서, 대문자는 입력된 심볼의 통상의 형태일 수 있고 소문자는 대문자를 선택한 다음에 180°벡터를 따라 드래그함으로써 입력될 수 있다.
소프트 키 상에 표시된 심볼과 연관된 심볼들의 수와 상관없이, 상기한 바와 같이, 사용자가 부가의 심볼들을 제1 심볼과 연관시킬 수 있게 해주는 것이 유용할 수 있다. 따라서, 일 실시예에서, 사용자는 심볼을 소프트 키 및 이동 방향에 할당할 수 있다. 이러한 실시예에서, 심볼 "§"은 심볼 "s"를 표시한 소프트 키의 선택 및 하방 이동(downward movement)과 연관될 수 있다. 사용자는 원하는 경우 심지어 부가의 심볼을 가져오기(import)까지도 할 수 있다. 따라서, 잘 알 수 있는 바와 같이, 사용자의 독창성이 가능한 변형의 수에 대한 주요 제한 요인이다.
일 실시예에서, 일련의 동작들도 특정의 선택 및 이동 방향에 할당될 수 있다. 예를 들어, 앞으로의 심볼들을 굵은체로 만드는 매크로가 심볼 "b"의 선택 및 오른쪽으로의 이동과 연관될 수 있다. 굵은체 기능을 끄기 위해서, 동일한 동작이 사용될 수 있거나 사용자가 "b"를 선택하고 좌측으로 이동할 수 있다. 따라서, 잘 알 수 있는 바와 같이, 수많은 변형들이 존재할 수 있으며, 이들 중 일부 또는 그 전부가 애플리케이션에 따라 커스터마이즈가능할 수 있다. 유의할 점은 더 복잡한 매크로도 소프트 키의 선택 및 방향 입력과 연관될 수 있다는 것이다.
유의할 점은 어떤 언어들이 이전에 입력된 것에 기초하여 입력을 제한한다는 것이다. 그에 부가하여, 어떤 언어들은 문자들의 조합을 형성한다. 예를 들어, 일본어 가나(Japanese Kana)에서 "n"의 선택은 사용자에게 na, ni, nu, ne 및 no의 선택 항목을 제공할 수 있다. 따라서, 초기 심볼의 입력 또는 선택 후에, 개인은 이전에 입력된 또는 선택된 심볼의 문맥에 대응하는 어떤 심볼을 입력할 수 있을 뿐이다. 따라서, 일 실시예에서, 특정의 심볼과 연관된 심볼들은 작문 문법 규칙 및 이전에 입력된 심볼(들)에 따라 조정될 수 있다.
도 9는 이러한 방법의 일 실시예를 나타낸 것이다. 먼저, 단계(910)에서, 사용자는 제1 심볼을 입력한다. 심볼의 입력은 스타일러스일 수 있는 선택자를 사용하여 터치 스크린 디스플레이 상의 소프트 키보드에 제공되어 있는 소프트 키를 터치하고 놓는 것에 의해 제공될 수 있다. 그 다음에, 단계(915)에서, 사용자는 제2 심볼을 디스플레이하는 소프트 키를 선택하며, 이 제2 심볼은 제1 심볼에 관련되어 있거나 제1 심볼과 함께 사용되기 위한 것이다. 일 실시예에서, 선택은 선택자로 소프트 키를 계속 누름으로써 달성된다. 제2 심볼이 다수의 가능한 변형들과 연관될 수 있기 때문에, 단계(920)에서, 제2 심볼에서의 가능한 변형들 중 적어도 일부에 관련된 일련의 심볼들이 제2 심볼 주위에 디스플레이된다. 일 실시예에서, 제1 심볼 및 제2 심볼과 연관되어 있는 모든 심볼들이 제2 심볼 주위에 원하는 방식으로 디스플레이된다.
단계(925)에서, 사용자는 방향 입력을 제공한다. 심볼들이 제2 심볼 주위에 제공되기 때문에, 최초 선택점으로부터의 이동은 통상적으로 세트 내의 심볼들 중 하나로 향한다. 일 실시예에서, 방향 입력은 제2 심볼을 디스플레이한 소프트 키를 최초로 누른 후에 터치 감응 디스플레이에서 세트 내의 심볼들 중 하나쪽으로 선택자를 드래그함으로써 제공될 수 있다. 단계(930)에서, 사용자는 선택 및 방향 입력 프로세스를 중단하고 심볼들의 세트로부터 선정된 심볼의 선택이 마무리된다(예를 들어, 입력된다). 워드 프로세싱 애플리케이션에서, 이 입력의 결과 선택된 심볼이 이전에 입력된 심볼 옆에 디스플레이될 수 있다. 일 실시예에서, 사용자는 선택자를 원하는 심볼 방향으로 드래그한 후에 선택자를 터치 감응 스크린으로부터 들어올림으로써 선택을 마무리할 수 있다. 선택의 마무리는 또한 선택된 심볼의 입력(inputting) 또는 넣기(entering) 또는 전송(transmitting)이라고도 할 수 있다. 일 실시예에서, 상기한 바와 같이, 디스플레이는 사용자가 선택자를 디스플레이로부터 들어올리는 경우 그 순간에 어느 심볼이 입력될 것인지에 관하여 사용자에게 피드백을 제공하기 위해 현재 선택된 심볼을 하이라이트할 수 있다.
유의할 점은 애플리케이션이 개시된 특징들을 API를 통해 제어할 수 있지만, 원하는 경우 운영 체제도 그 특징들을 제어할 수 있다는 것이다. 그렇지만, 이 특징들이 API를 통해 애플리케이션에 의해 제어가능한 경우 아마도 증가된 수준의 유연성이 제공된다.

Claims (22)

  1. 터치 감응 스크린을 이용하여 컴퓨터에서 실행하는 애플리케이션에 데이터를 입력하는 방법으로서,
    소프트 키들의 세트를 제1 배열로 디스플레이하는 단계 - 상기 소프트 키들 각각은 대응하는 심볼을 포함하고, 상기 애플리케이션은 복수의 배열 중 소프트 키의 제1 배열을 선택함 - ;
    상기 소프트 키들의 세트 중 제1 심볼을 가진 제1 소프트 키에 대한 선택을 수신하는 단계;
    사전 지정된 시간 후에 상기 제1 심볼 주위에 복수의 제2 심볼을 디스플레이하는 단계;
    제2 심볼에 대한 선택을 수신하는 단계; 및
    상기 제2 심볼을 상기 애플리케이션으로 전송하는 단계를 포함하는
    데이터 입력 방법.
  2. 제1항에 있어서,
    상기 애플리케이션은 이메일 프로그램, 인터넷 브라우저 프로그램, 워드 프로세싱 프로그램, 스프레드시트 프로그램, 스케줄링 프로그램, 개인 정보 관리 프로그램 및 게임 중 하나인
    데이터 입력 방법.
  3. 제2항에 있어서,
    제1 애플리케이션은 상기 제1 배열을 가진 소프트 키들의 세트를 디스플레이하고, 제2 애플리케이션은 제2 배열을 가진 소프트 키들의 세트를 디스플레이하는
    데이터 입력 방법.
  4. 제3항에 있어서,
    상기 제1 애플리케이션은 이메일 프로그램이고, 상기 제2 애플리케이션은 인터넷 브라우저 프로그램인
    데이터 입력 방법.
  5. 컴퓨터로 하여금 제1항 또는 제2항에 따른 방법을 실행하도록 하는 애플리케이션 프로그램을 포함하는 컴퓨터 판독가능한 기록 매체.
  6. 애플리케이션으로 데이터를 입력하는 시스템으로서,
    소프트 키들의 세트를 제1 배열로 디스플레이하는 수단 - 상기 소프트 키들 각각은 대응하는 심볼을 포함하고, 상기 애플리케이션은 복수의 배열 중 상기 소프트 키들의 제1 배열을 선택함 - ;
    상기 소프트 키들의 세트 중 제1 심볼을 가진 제1 소프트 키에 대한 선택을 수신하는 수단;
    사전 지정된 시간 후에 상기 제1 심볼의 주위에 복수의 제2 심볼을 디스플레이하는 수단;
    제2 심볼에 대한 선택을 수신하는 수단; 및
    상기 제2 심볼을 상기 애플리케이션으로 전송하는 수단을 포함하는
    데이터 입력 시스템.
  7. 제6항에 있어서,
    상기 애플리케이션은 이메일 프로그램, 인터넷 브라우저 프로그램, 워드 프로세싱 프로그램, 스프레드시트 프로그램, 스케줄링 프로그램, 개인 정보 관리 프로그램 및 게임 중 하나인
    데이터 입력 시스템.
  8. 제7항에 있어서,
    제1 애플리케이션은 상기 제1 배열을 가진 소프트 키들의 세트를 디스플레이하고, 제2 애플리케이션은 제2 배열을 가진 소프트 키들의 세트를 디스플레이하는
    데이터 입력 시스템.
  9. 제8항에 있어서,
    상기 제1 애플리케이션은 이메일 프로그램이고, 상기 제2 애플리케이션은 인터넷 브라우저 프로그램인
    데이터 입력 시스템.
  10. 제6항 내지 제9항 중 어느 한 항에 있어서,
    상기 시스템은 모바일 정보 처리 시스템인
    데이터 입력 시스템.
  11. 터치 감응 스크린을 이용하여 컴퓨터에서 실행하는 애플리케이션에 데이터를 입력하는 방법으로서,
    소프트 키들의 세트를 디스플레이하는 단계 - 상기 소프트 키들 각각은 대응하는 심볼을 가짐 - ;
    제1 심볼을 가진 제1 소프트 키에 대한 선택을 수신하는 단계;
    상기 제1 심볼과 연관된 방향성 드래그를 수신하는 단계;
    상기 방향성 드래그의 수신에 응답하여 텍스트 강조 모드(text emphasis mode)를 시작하는 단계;
    제2 심볼을 가진 제2 소프트 키에 대한 선택을 수신하는 단계; 및
    상기 제2 심볼의 강조된 버전을 상기 애플리케이션으로 전송하는 단계를 포함하는
    데이터 입력 방법.
  12. 제11항에 있어서,
    상기 제1 심볼은 글자 B이고, 상기 텍스트 강조 모드는 후속 입력되는 심볼을 굵은체(bold)로 만드는
    데이터 입력 방법.
  13. 제11항에 있어서,
    상기 제1 심볼을 가진 상기 제1 소프트 키에 대한 제2 선택을 수신하는 단계;
    상기 제1 심볼과 연관된 제2 방향성 드래그를 수신하는 단계; 및
    상기 제2 방향성 드래그의 수신에 응답하여 상기 텍스트 강조 모드를 종료하는 단계를 더 포함하는
    데이터 입력 방법.
  14. 제13항에 있어서,
    상기 제2 방향성 드래그는 상기 제1 방향성 드래그로부터 반대 방향인
    데이터 입력 방법.
  15. 제11항에 있어서,
    제3 심볼을 가진 제3 소프트 키에 대한 선택을 수신하는 단계;
    상기 제3 심볼과 연관된 방향성 드래그를 수신하는 단계; 및
    상기 제3 심볼과 연관된 방향성 드래그의 수신에 응답하여 상기 애플리케이션 내에서 매크로 동작을 시작하는 단계를 더 포함하는
    데이터 입력 방법.
  16. 컴퓨터로 하여금 제11항 내지 제15항 중 어느 한 항에 따른 방법을 실행하도록 하는 애플리케이션 프로그램을 포함하는 컴퓨터 판독가능 기록 매체.
  17. 애플리케이션에 데이터를 입력하는 시스템으로서,
    소프트 키들의 세트를 디스플레이하는 수단 - 상기 소프트 키들 각각은 대응하는 심볼을 가짐 - ;
    제1 심볼을 가진 제1 소프트 키에 대한 선택을 수신하는 수단;
    상기 제1 심볼과 연관된 방향성 드래그를 수신하는 수단;
    상기 방향성 드래그의 수신에 응답하여 텍스트 강조 모드를 시작하는 수단;
    제2 심볼을 가진 제2 소프트 키에 대한 선택을 수신하는 수단; 및
    상기 제2 심볼의 강조된 버전을 상기 애플리케이션으로 전송하는 수단을 포함하는
    데이터 입력 시스템.
  18. 제17항에 있어서,
    상기 제1 심볼은 글자 B이고, 상기 텍스트 강조 모드는 후속 입력되는 심볼을 굵은체(blod)로 만드는
    데이터 입력 시스템.
  19. 제17항에 있어서,
    상기 제1 심볼을 가진 상기 제1 소프트 키에 대한 제2 선택을 수신하는 수단;
    상기 제1 심볼과 연관된 제2 방향성 드래그를 수신하는 수단; 및
    상기 제2 방향성 드래그의 수신에 응답하여 상기 텍스트 강조 모드를 종료하는 수단을 더 포함하는
    데이터 입력 시스템.
  20. 제19항에 있어서,
    상기 제2 방향성 드래그는 상기 제1 방향성 드래그로부터 반대 방향인
    데이터 입력 시스템.
  21. 제17항에 있어서,
    제3 심볼을 가진 제3 소프트 키에 대한 선택을 수신하는 수단;
    상기 제3 심볼과 연관된 방향성 드래그를 수신하는 수단; 및
    상기 제3 심볼과 연관된 방향성 드래그의 수신에 응답하여 상기 애플리케이션 내에서 매크로 동작을 시작하는 수단을 더 포함하는
    데이터 입력 시스템.
  22. 제17항 내지 제21항 중 어느 한 항에 있어서,
    상기 데이터 입력 시스템은 모바일 정보 처리 시스템인
    데이터 입력 시스템.
KR1020137019217A 2005-12-15 2006-11-17 데이터 입력 방법 및 데이터 입력 시스템 KR101319638B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/304,240 2005-12-15
US11/304,240 US7554529B2 (en) 2005-12-15 2005-12-15 Smart soft keyboard
PCT/US2006/044741 WO2007070223A1 (en) 2005-12-15 2006-11-17 Smart soft keyboard

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020087014286A Division KR101319746B1 (ko) 2005-12-15 2006-11-17 터치 감응 스크린 상의 소프트 키보드로 컴퓨터에서 실행중인 애플리케이션에 데이터를 입력하는 방법 및 컴퓨터판독가능 매체

Publications (2)

Publication Number Publication Date
KR20130093685A true KR20130093685A (ko) 2013-08-22
KR101319638B1 KR101319638B1 (ko) 2013-10-17

Family

ID=38163250

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020087014286A KR101319746B1 (ko) 2005-12-15 2006-11-17 터치 감응 스크린 상의 소프트 키보드로 컴퓨터에서 실행중인 애플리케이션에 데이터를 입력하는 방법 및 컴퓨터판독가능 매체
KR1020137019217A KR101319638B1 (ko) 2005-12-15 2006-11-17 데이터 입력 방법 및 데이터 입력 시스템

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020087014286A KR101319746B1 (ko) 2005-12-15 2006-11-17 터치 감응 스크린 상의 소프트 키보드로 컴퓨터에서 실행중인 애플리케이션에 데이터를 입력하는 방법 및 컴퓨터판독가능 매체

Country Status (8)

Country Link
US (1) US7554529B2 (ko)
EP (1) EP1960860A4 (ko)
JP (4) JP5097121B2 (ko)
KR (2) KR101319746B1 (ko)
CN (1) CN101331440B (ko)
BR (1) BRPI0619245A2 (ko)
RU (1) RU2419833C2 (ko)
WO (1) WO2007070223A1 (ko)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7614008B2 (en) 2004-07-30 2009-11-03 Apple Inc. Operation of a computer with touch screen interface
US8200475B2 (en) 2004-02-13 2012-06-12 Microsoft Corporation Phonetic-based text input method
US7752569B2 (en) * 2005-09-09 2010-07-06 Microsoft Corporation Software key labeling on software keyboards
US20070171196A1 (en) * 2006-01-23 2007-07-26 Thomas Robert Pfingsten Controller user interface and method
US7801722B2 (en) * 2006-05-23 2010-09-21 Microsoft Corporation Techniques for customization of phonetic schemes
KR100782927B1 (ko) * 2006-06-27 2007-12-07 삼성전자주식회사 휴대용 단말기에서 문자 입력 장치 및 방법
US20100289750A1 (en) * 2006-08-04 2010-11-18 Hyung Gi Kim Touch Type Character Input Device
US7619584B2 (en) * 2006-09-08 2009-11-17 Generation One, Inc. Messaging including active response feature
US7978179B2 (en) * 2006-12-06 2011-07-12 International Business Machines Corporation System and method for configuring a computer keyboard
CN101840304A (zh) 2007-01-30 2010-09-22 三星电子株式会社 用于在终端上输入字符的装置和方法
EP1953623B1 (en) 2007-01-30 2018-09-05 Samsung Electronics Co., Ltd. Apparatus and method for inputting characters on touch keyboard
US8018441B2 (en) 2007-06-11 2011-09-13 Samsung Electronics Co., Ltd. Character input apparatus and method for automatically switching input mode in terminal having touch screen
KR100933398B1 (ko) * 2007-06-11 2009-12-22 삼성전자주식회사 터치 스크린을 구비한 단말기에서 입력 모드를 자동으로전환하는 문자 입력 장치 및 방법
US8661340B2 (en) 2007-09-13 2014-02-25 Apple Inc. Input methods for device having multi-language environment
US10126942B2 (en) 2007-09-19 2018-11-13 Apple Inc. Systems and methods for detecting a press on a touch-sensitive surface
US9110590B2 (en) 2007-09-19 2015-08-18 Typesoft Technologies, Inc. Dynamically located onscreen keyboard
US9454270B2 (en) 2008-09-19 2016-09-27 Apple Inc. Systems and methods for detecting a press on a touch-sensitive surface
US9489086B1 (en) 2013-04-29 2016-11-08 Apple Inc. Finger hover detection for improved typing
US10203873B2 (en) 2007-09-19 2019-02-12 Apple Inc. Systems and methods for adaptively presenting a keyboard on a touch-sensitive display
US20120075193A1 (en) * 2007-09-19 2012-03-29 Cleankeys Inc. Multiplexed numeric keypad and touchpad
JP5207699B2 (ja) * 2007-09-28 2013-06-12 京セラ株式会社 文字入力装置、文字入力方法および文字入力プログラム
KR20090042342A (ko) * 2007-10-26 2009-04-30 주식회사 메디슨 소프트 버튼을 포함하는 장치 및 그의 속성 변경 방법
KR20090047257A (ko) * 2007-11-07 2009-05-12 강윤기 소프트웨어 키보드를 이용한 문자입력방법
KR100951802B1 (ko) * 2007-12-18 2010-04-08 엔에이치엔(주) 가이드 팝업을 표시하는 터치스크린 한글 입력 장치
TWI416399B (zh) * 2007-12-28 2013-11-21 Htc Corp 手持式電子裝置及其操作方法
TWI393029B (zh) * 2007-12-31 2013-04-11 Htc Corp 電子裝置以及於電子裝置上執行指令之方法
JP2009169456A (ja) 2008-01-10 2009-07-30 Nec Corp 電子機器、該電子機器に用いられる情報入力方法及び情報入力制御プログラム、並びに携帯端末装置
KR101102725B1 (ko) * 2008-02-20 2012-01-05 삼성전자주식회사 문자 입력 장치 및 방법
US8289283B2 (en) * 2008-03-04 2012-10-16 Apple Inc. Language input interface on a device
US8908973B2 (en) 2008-03-04 2014-12-09 Apple Inc. Handwritten character recognition interface
KR100900087B1 (ko) * 2008-03-31 2009-06-01 박병진 터치스크린을 이용한 버튼 확장형 문자 입력 방법
US8949743B2 (en) * 2008-04-22 2015-02-03 Apple Inc. Language input interface on a device
DE102008022395A1 (de) 2008-05-06 2009-11-26 Vodafone Holding Gmbh Eingabegerät mit berührungsempfindlicher Anzeige
US9355090B2 (en) 2008-05-30 2016-05-31 Apple Inc. Identification of candidate characters for text input
US8570279B2 (en) 2008-06-27 2013-10-29 Apple Inc. Touch screen device, method, and graphical user interface for inserting a character from an alternate keyboard
US8769427B2 (en) * 2008-09-19 2014-07-01 Google Inc. Quick gesture input
US8750938B2 (en) * 2008-09-29 2014-06-10 Microsoft Corporation Glow touch feedback for virtual input devices
KR100958309B1 (ko) * 2008-10-17 2010-05-19 주식회사 네오모빌 문자입력장치
CN101727270B (zh) * 2008-10-21 2012-10-10 联想(北京)有限公司 构建软键盘的方法、输入字符信息的装置及其方法
US20100177048A1 (en) * 2009-01-13 2010-07-15 Microsoft Corporation Easy-to-use soft keyboard that does not require a stylus
US8564541B2 (en) 2009-03-16 2013-10-22 Apple Inc. Zhuyin input interface on a device
KR101136327B1 (ko) * 2009-05-01 2012-04-20 크루셜텍 (주) 휴대 단말기의 터치 및 커서 제어방법 및 이를 적용한 휴대 단말기
WO2011025200A2 (ko) * 2009-08-23 2011-03-03 (주)티피다시아이 확장키를 이용한 정보입력시스템 및 정보입력방법
US8806362B2 (en) * 2010-01-06 2014-08-12 Apple Inc. Device, method, and graphical user interface for accessing alternate keys
US20110302518A1 (en) * 2010-06-07 2011-12-08 Google Inc. Selecting alternate keyboard characters via motion input
WO2012006108A2 (en) * 2010-06-28 2012-01-12 Cleankeys Inc. Method for detecting and locating keypress-events on touch-and vibration-sensitive flat surfaces
EP2665497A2 (en) 2011-01-20 2013-11-27 Cleankeys Inc. Systems and methods for monitoring surface sanitation
JP5858641B2 (ja) * 2011-05-10 2016-02-10 キヤノン株式会社 情報処理装置、情報処理装置と外部装置とを含むシステム、システムの制御方法、及びプログラム
US20130111391A1 (en) * 2011-11-01 2013-05-02 Microsoft Corporation Adjusting content to avoid occlusion by a virtual input panel
KR101905038B1 (ko) * 2011-11-16 2018-10-08 삼성전자주식회사 다중 어플리케이션 환경 하에서 터치스크린을 가지는 장치 및 그 제어 방법
CN102520804A (zh) * 2011-12-08 2012-06-27 周志农 触摸屏软键盘及输入方法
US9104260B2 (en) 2012-04-10 2015-08-11 Typesoft Technologies, Inc. Systems and methods for detecting a press on a touch-sensitive surface
WO2014045414A1 (ja) * 2012-09-21 2014-03-27 富士通株式会社 文字入力装置、文字入力方法、文字入力制御プログラム
CN103294222B (zh) * 2013-05-22 2017-06-16 小米科技有限责任公司 一种输入方法和系统
US10289302B1 (en) 2013-09-09 2019-05-14 Apple Inc. Virtual keyboard animation
RU2678044C2 (ru) * 2013-10-08 2019-01-23 Виктор Николаевич Зимин Клавиатура, схема XSOIV, с систематизацией текстовых клавиш, повышающей характеристики компьютера
US10108335B2 (en) 2015-06-05 2018-10-23 Apple Inc. Touch-based interactive learning environment
WO2017193105A1 (en) * 2016-05-06 2017-11-09 Marksteiner Günter Natural language application program for entering, storing, retrieving, validating and processing structured string data
JP6525082B2 (ja) * 2018-03-20 2019-06-05 日本電気株式会社 電子機器、該電子機器に用いられる情報入力方法及び情報入力制御プログラム、並びに携帯端末装置
KR102030582B1 (ko) 2018-04-12 2019-10-10 주식회사 한글과컴퓨터 스프레드시트 편집 방법 및 이를 이용하는 장치

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05257598A (ja) 1992-01-17 1993-10-08 Ricoh Co Ltd 入力装置及びその表示制御方法
JP3546337B2 (ja) * 1993-12-21 2004-07-28 ゼロックス コーポレイション 計算システム用ユーザ・インタフェース装置及びグラフィック・キーボード使用方法
KR960024839A (ko) 1994-12-29 1996-07-20 김광호 소프트 키보드를 이용한 휴대용 정보 단말기 및 정보 입력방법
JPH0981320A (ja) * 1995-09-20 1997-03-28 Matsushita Electric Ind Co Ltd ペン入力式選択入力装置及びその方法
JP2001014103A (ja) * 1999-06-30 2001-01-19 Toshiba Corp 文字入力装置及び文字入力方法
US6847706B2 (en) * 2001-03-20 2005-01-25 Saied Bozorgui-Nesbat Method and apparatus for alphanumeric data entry using a keypad
US6724370B2 (en) 2001-04-12 2004-04-20 International Business Machines Corporation Touchscreen user interface
JP2002325965A (ja) * 2001-04-27 2002-11-12 Sega Corp 入力文字処理方法
JP4084582B2 (ja) * 2001-04-27 2008-04-30 俊司 加藤 タッチ式キー入力装置
GB0112870D0 (en) * 2001-05-25 2001-07-18 Koninkl Philips Electronics Nv Text entry method and device therefore
US20030074647A1 (en) * 2001-10-12 2003-04-17 Andrew Felix G.T.I. Automatic software input panel selection based on application program state
JP4027671B2 (ja) * 2001-12-20 2007-12-26 ミサワホーム株式会社 キーボードシート
US20070052682A1 (en) * 2002-08-16 2007-03-08 Yun-Kee Kang Method of inputting a character using a software keyboard
US7256769B2 (en) * 2003-02-24 2007-08-14 Zi Corporation Of Canada, Inc. System and method for text entry on a reduced keyboard
JP3797977B2 (ja) * 2003-03-17 2006-07-19 株式会社クレオ 文字入力装置、文字入力方法及び文字入力プログラム
KR100682885B1 (ko) 2003-04-23 2007-02-15 삼성전자주식회사 공간형 정보 입력 장치 및 방법, 이를 위한 소프트 키매핑 방법 및 그에 따른 가상 키보드
JP2005092441A (ja) * 2003-09-16 2005-04-07 Aizu:Kk 文字入力方法
KR100593993B1 (ko) * 2003-10-22 2006-06-30 삼성전자주식회사 문자인식장치 및 방법
CN1648836A (zh) * 2004-01-19 2005-08-03 徐新意 用于触摸屏输入的软键盘
JP2005275635A (ja) 2004-03-24 2005-10-06 Fuji Photo Film Co Ltd 仮名文字入力方法および仮名文字入力プログラム

Also Published As

Publication number Publication date
KR20080075879A (ko) 2008-08-19
JP2009520271A (ja) 2009-05-21
JP5433058B2 (ja) 2014-03-05
RU2008123786A (ru) 2009-12-27
CN101331440B (zh) 2011-10-12
JP5632045B2 (ja) 2014-11-26
US7554529B2 (en) 2009-06-30
US20070139382A1 (en) 2007-06-21
RU2419833C2 (ru) 2011-05-27
BRPI0619245A2 (pt) 2011-09-20
JP2012230718A (ja) 2012-11-22
KR101319746B1 (ko) 2013-10-17
JP2013211917A (ja) 2013-10-10
WO2007070223A1 (en) 2007-06-21
KR101319638B1 (ko) 2013-10-17
CN101331440A (zh) 2008-12-24
JP5097121B2 (ja) 2012-12-12
JP2013229041A (ja) 2013-11-07
EP1960860A4 (en) 2012-01-25
EP1960860A1 (en) 2008-08-27

Similar Documents

Publication Publication Date Title
KR101319638B1 (ko) 데이터 입력 방법 및 데이터 입력 시스템
US7719521B2 (en) Navigational interface providing auxiliary character support for mobile and wearable computers
US6462760B1 (en) User interfaces, methods, and computer program products that can conserve space on a computer display screen by associating an icon with a plurality of operations
KR101331697B1 (ko) 단말기의 문자 입력 장치 및 방법
US9199155B2 (en) Morpheme-level predictive graphical keyboard
US20140055381A1 (en) System and control method for character make-up
US20140152585A1 (en) Scroll jump interface for touchscreen input/output device
US20120047454A1 (en) Dynamic Soft Input
US20080002888A1 (en) Apparatus, method, device and computer program product providing enhanced text copy capability with touch input display
JP2003186614A (ja) アプリケーションプログラムの状態に基づく自動的なソフトウェア入力パネル選択
US9009624B2 (en) Keyboard gestures for character string replacement
MXPA06003062A (es) Prediccion contextual de palabras de usuario y acciones de usuario.
US20140108993A1 (en) Gesture keyboard with gesture cancellation
US20140145945A1 (en) Touch-based input control method
US20170351420A1 (en) System and method for input recognition linguistic resource management
US8839123B2 (en) Generating a visual user interface
TWI243576B (en) Method for defining functions of keys of a keypad of an electronic device
US8949731B1 (en) Input from a soft keyboard on a touchscreen display
EP2741194A1 (en) Scroll jump interface for touchscreen input/output device
US20130069881A1 (en) Electronic device and method of character entry
US20160062633A1 (en) Method of providing user interface and recording medium and character input device comprising the same
EP2570892A1 (en) Electronic device and method of character entry
KR100360141B1 (ko) 터치스크린을 이용한 디바이스에서의 제스처를 통한필기입력 방법
Essl Mobile phones as programming platforms
Heo et al. Korean grapheme recognition immersive scheme with gesture on smartphone

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160921

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170919

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180918

Year of fee payment: 6