KR20040070001A - 사용자 인터페이스를 제어하기 위한 삽입 위치 추적 - Google Patents

사용자 인터페이스를 제어하기 위한 삽입 위치 추적 Download PDF

Info

Publication number
KR20040070001A
KR20040070001A KR1020040004637A KR20040004637A KR20040070001A KR 20040070001 A KR20040070001 A KR 20040070001A KR 1020040004637 A KR1020040004637 A KR 1020040004637A KR 20040004637 A KR20040004637 A KR 20040004637A KR 20040070001 A KR20040070001 A KR 20040070001A
Authority
KR
South Korea
Prior art keywords
user interface
insertion position
data
data entry
location
Prior art date
Application number
KR1020040004637A
Other languages
English (en)
Other versions
KR100975505B1 (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
Priority claimed from US10/431,049 external-priority patent/US20040225965A1/en
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20040070001A publication Critical patent/KR20040070001A/ko
Application granted granted Critical
Publication of KR100975505B1 publication Critical patent/KR100975505B1/ko

Links

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/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

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)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Position Input By Displaying (AREA)

Abstract

삽입 위치의 상태에 기초하여 데이터 입력 패널과 같은 데이터 입력 사용자 인터페이스의 동작을 제어하는 기술이 개시된다. 예를 들어, 데이터 입력 패널의 위치 및 내용은 삽입 위치의 탐지된 특성에 기초하여 제공된다. 또한, 데이터 입력 사용자 인터페이스를 호출하고 해제하는 기술이 삽입 위치의 상태에 기초하여 제공될 수 있다.

Description

사용자 인터페이스를 제어하기 위한 삽입 위치 추적{INSERTION LOCATION TRACKING FOR CONTROLLING A USER INTERFACE}
본 발명의 여러 태양은 삽입 위치(insertion location)의 상태에 기초한 자동 응답의 생성에 관한 것이다. 특히, 본 발명의 여러 예는 삽입 위치의 탐지 상태에 기초하여 데이터 입력 사용자 인터페이스(data entry user interface)의 호출에 대한 특정 애플리케이션을 가진다.
컴퓨터가 발전함에 따라, 사용자의 경험을 증진시키고 컴퓨터를 보다 다용도로 쓰이게 하기 위한 다양한 기술이 개발되었다. 예를 들어, 많은 소프트웨어 애플리케이션이 사용자 경험을 보다 편리하게 하기 위해 사용자의 동작에 대하여 다양한 자동 응답을 제공한다. 이들 애플리케이션은, 예를 들어, 사용자가 타이핑한 단어를 자동으로 완성시키고, 애플리케이션 내의 한 지점에서 다른 지점으로 이동된 텍스트의 서식을 다시 지정하고, 사용자가 네트워크 로케이션의 참조 내에 삽입점(insertion point)을 놓을 때, 인터넷 웹사이트와 같은 네트워크 로케이션에 자동적으로 접속될 수 있다. 사용자 동작에 대한 이들 자동 응답은 사용자의 경험을 증진시키지만, 통상, 그들은 애플리케이션 내에 또는 이에 결합되어 포함되는 자원에 한정된다. 따라서, 사용되는 특정 애플리케이션 외부의 자원에 대한 액세스를 사용자에게 부여하는 것이 유용할 수 있다. 예를 들어, 다양한 애플리케이션에 대하여 일정한 방식으로 사용자에게 데이터 입력 사용자 인터페이스를 자동 제공하는 것이 유용할 수 있다.
WINDOWS브랜드 XP 태블릿 PC 판 운영 체계는, 사용자가 컴퓨터에 데이터를 입력하기 위해 펜 또는 스타일러스를 사용할 수 있는 텍스트 입력 패널, 태블릿 PC 입력 패널, 또는 "TIP"으로 종종 불리는 데이터 입력 사용자 인터페이스를 제공한다. 이 유형의 사용자 인터페이스는 넓게는 데이터 입력 그래픽 사용자 인터페이스의 카테고리에 속하며, 데이터 입력 패널로서도 불릴 수 있다. 데이터 입력 패널은, 예를 들어, 표면을 가로지르는 스타일러스의 이동을 전자 잉크(electronic ink)로 변환시키는 기입 표면(writing surface)을 제공할 수 있다. 데이터 입력 패널의 몇몇 버전은 전자 잉크를 텍스트로 번역하는 반면, 다른 유형의 데이터 입력 패널은 대안적으로 또는 추가적으로 전자 잉크를 컴퓨터 상에서 실행되는 애플리케이션에 직접 제공할 수 있다. 몇몇 데이터 입력 패널은 또한 종래 키보드 문자를 표시하는 "소프트(soft)" 키보드 표면을 제공할 수 있다. 사용자가 스타일러스를 사용하여 이러한 유형의 키보드를 갖는 키 디스플레이를 두드리면, 컴퓨터는 그 키에 관련된 문자를 입력 데이터로서 받아들일 것이다. 다른 유형의 데이터 입력 패널은 특화된 입력 표면을 가질 수 있다. 예를 들어, 마이크로소프트 입력 메소드 편집기 라임에 의해 제공되는 사용자 인터페이스는 동아시아 알파벳 문자를 받아들이기 위해 복수개의 레터 크기의 기입 표면을 입력으로 제공할 수 잇다.
다른 데이터 입력 기술을 제공하는 것에 더하여, 다양한 데이터 입력 패널도 데이터 입력의 모호성을 명확하게 하는 데 도움이 될 수 있다. 예를 들어, 어떤 애플리케이션은 사용자가 전자 잉크를 집적 컨트롤에 입력할 수 있게 하고, 또한, 이전에 입력된 잉크 또는 텍스트를 표시할 수 있게 하는 편집 컨트롤(edit control)을 포함할 수 있다. 그러나, 이들 편집 컨트롤 유형을 사용하면, 사용자가 새로운 데이터의 삽입 및 기존 디스플레이된 데이터의 조작을 구분하기 어려울 수 있다. 예를 들어, 사용자 인터페이스가 기존 텍스트 또는 잉크를 표시하면, 이는, 스타일러스를 사용하여 기존 텍스트 또는 잉크를 선택하려는 것과 "-" 문자를 생성하려는 것이 혼동될 수 있다. 데이터 입력 패널의 다수의 유형이 새로운 텍스트의 입력과 기존 잉크 또는 텍스트를 구별함으로써, 사용자가 애플리케이션에 데이터를 추가하고 있는지 또는 단순히 기존 데이터를 조작하고 있는 지에 대한 임의의 모호성을 명확하게 하는 이점이 있다.
데이터 입력 패널의 이들 유형은 실질적으로 스타일러스 입력 장치를 채용하는 컴퓨터의 효용성을 증가시키지만, 종래의 데이터 입력 패널에 관련된 소정의 불편함은 여전히 있다. 우선, 데이터 입력 패널은 사용자에 의해 명확하게 호출되어야 한다. 따라서, 데이터 입력 패널을 사용하여 데이터를 애플리케이션에 입력하기 위해서, 사용자는 애플리케이션 외부로부터 데이터 입력 패널을 수동으로 활성화시켜야 한다. 그러나, 많은 컴퓨터 사용자가 데이터 입력 패널에 친숙하지 않으며, 이 자원을 어떻게 사용할 지를 간과하거나 인식하지 못할 수 있다. 그 결과, 소프트웨어 애플리케이션을 생성하는 개발자는 데이터 입력 패널을 수동으로 불러들여 그 애플리케이션에 데이터를 입력하는 방법을 사용자가 알고 있다고 확신할 수 없다. 그 대신, 개발자는 사용자가 데이터 입력 패널을 활성활시켜 사용하거나 다른 데이터 입력 메소드를 제공할 수 있으리라고 바래야 한다.
둘째, 데이터 입력 패널은 애플리케이션에서 불러온 그래픽 사용자 인터페이스이기 때문에, 통상, 애플리케이션과는 별도로 디스플레이된다. 어떤 상황에서는, 사용자 인터페이스가 애플리케이션에 오버레이될 수 있다. 이러한 배열은 사용자가 애플리케이션의 목적 지점에 가까이 데이터를 입력할 수 있게 하지만, 사용자 인터페이스는 그 목적지 또는 인접 목적지를 우연히 가릴 수 있다. 사용자 인터페이스가 초기에 입력 데이터에 대한 원하는 목적지를 가리게 할 수 있더라도, 사용자는 새로운 데이터가 애플리케이션에 입력될 때 사용자 인터페이스가 그 데이터에 대한 새로운 삽입 위치를 가리게 하는 것을 방지하기 위해, 사용자 인터페이스를 항상 재배열하여 필요가 있을 수 있다. 데이터 입력 패널의 또다른 유형을사용하면, 사용자 인터페이스는 애플리케이션 아랫 공간에 "도킹(docked)"될 수 있다. 이러한 방법으로 데이터 입력 패널을 배열하는 것이 사용자가 새로운 데이터에 대하여 원하는 목적지를 보는 것을 방해하지 않음은 보장하지만, 사용자가 애플리케이션과 데이터 입력 패널 사이에서 스타일러스를 지속적으로 왕래하는 것은 불편하다.
세째, 통상의 데이터 입력 패널에 의해 제공되는 다양한 데이터 입력 기술 때문에, 데이터를 애플리케이션의 특정 위치에 입력하기 위해 사용자가 어떤 기술이 가장 적절한지를 판정하기 것은 종종 불편하다. 예를 들어, 애플리케이션은 케이스 민감 패스워드(case-sensitive password)를 수신하기 위한 편집 컨트롤을 포함할 수 있다. 그러나, 사용자가 데이터 입력 패널의 기입 표면에 전자 잉크를 기입하여, 패스워드를 편집 컨트롤에 입력하는 경우, 사용자의 수기가 부정확하게 인식될 수 있다. 또한, 인증되지 않은 자가 패스워드를 보는 것을 방지하기 위해서, 편집 컨트롤이 의도적으로 정확하게 인식되지 않은 텍스트를 감추는 경우, 사용자는 심지어 왜 그 또는 그녀의 패스워드가 허용되지 않는지를 인식하지 못할 수도 있다. 이러한 상황에서는, 사용자가 기입 표면보다 키보드 표면을 사용하여 편집 컨트롤에 데이터를 입력하는 것이 바람직하다. 그러나, 많은 통상의 데이터 입력 패널에 있어서, 사용자는 키보드 표면이 작업에 보다 적합하고, 데이터 입력 패널은 자체를 표면으로 하는 디스플레이로 변경해야 함을 인식해야 한다.
본 발명의 다양한 구현예는 사용자 동작에 자동 응답을 제공하는 것에 관한것이다. 특히, 본 발명의 몇몇 예는 삽입 위치의 탐지된 상태에 기초하여 데이터 입력 사용자 인터페이스를 자동 생성하는 툴에 관한 것이다. 이들 구현예에 따라서, 예를 들어, 사용자 인터페이스는 그 로케이션에서 입력되는 데이터를 가리지 않으면서, 삽입 위치의 로케이션에 인접하게 배열될 수 있다. 또한, 본 발명의 다양한 실시예에서, 사용자가 데이터 입력 사용자 인터페이스를 통해 데이터를 기입하기에 적절한 스타일러스와 같은 장치를 사용하여 삽입 위치를 설정할 때에만 데이터 입력 사용자 인터페이스가 가능하게 된다. 또한, 본 발명의 몇몇 예에서, 데이터 입력 사용자 인터페이스의 특징은 삽입 위치의 탐지된 상태에 기초하여 구성된다. 예를 들어, 삽입 위치가 패스워드를 수신하는 편집 컨트롤 내에 있으면, 데이터 입력 사용자 인터페이스는 전자 잉크를 입력받아서 인식하기 위해 기입 표면 대신에 소프트 키보드 표면을 제공하도록 자동 구성되는 데이터 입력 패널일 수 있다. 본 발명의 또다른 예는 삽입 위치의 탐지된 상태에 기초하여 데이터 입력 사용자 인터페이스를 호출하는 방법을 대안적으로 또는 부가적으로 할당할 수 있다.
본 발명의 몇몇 특정예에 따르면, 삽입 위치 추적 툴은 삽입 위치의 상태를 지속적으로 추적한다. 툴은, 예를 들어, 애플리케이션으로부터 운영 체계 또는 다른 적절한 시스템의 다양한 콤포넌트를 통해 삽입 위치 상태 정보를 수집할 수 있다. 툴은 획득한 정보의 각 부분에 기초하여 삽입 위치 상태를 결정하고, 또는 전체 획득된 정보의 일부만을 샘플하여 삽입 위치 상태를 결정할 수 있다. 예를 들어, 툴은 삽입 위치 상태 정보를 포함하는 다수의 메시지를 입력받고, 그 이벤트 메시지 각각을 큐에 배열하여, 최근에 큐된 이벤트 메시지를 주기적으로 샘플하여삽입 위치의 상태를 결정할 수 있다. 샘플링 기간은 시간에 의존할 수 있으며, 수신된 이벤트 메시지의 총 수에 의존할 수 있다.
본 발명의 다양한 실시예에서, 삽입 위치 상태는 데이터 입력 패널과 같은 데이터 입력 사용자 인터페이스를 사용자에게 제공하기 위해 채용된다. 데이터 입력 사용자 인터페이스는, 예를 들어, 탐지된 삽입 위치에 가까울 수 있다. 대안적으로 또는 부가적으로, 데이터 입력 사용자 인터페이스의 특징은 삽입 위치의 탐지 상태에 따라 구성될 수 있다. 따라서, 탐지된 삽입 위치가 패스워드 또는 다른 예측불가능한 문자의 조합을 수신하는 편집 컨트롤 내의 로케이션 지점이면, 데이터 입력 사용자 인터페이스는 전자 잉크를 입력받아 인식하는 데 있어서 기입 표면보다는 키보드 표면을 포함할 수 있다.
또한, 탐지된 삽입 위치 상태는 데이터 입력 사용자 인터페이스를 호출하는 특정 기술을 결정하는 데 사용될 수 있다. 예를 들어, 탐지된 삽입 위치가 뒤따르는 데이터가 없는 삽입점에 있거나, 새로운 데이터를 입력하는 데에만 사용되면, 데이터 입력 사용자 인터페이스는 즉시 호출될 수 있다. 그러나, 탐지된 삽입 위치가 새로운 데이터로 대체되거나 드래그될 것 같은 텍스트의 대체가능한 선택이면, 데이터 입력 사용자 인터페이스는 별도의 아이콘 또는 "타겟"을 통해 호출될 수 있다. 데이터 입력 사용자 인터페이스는 예를 들어 사용자가 타겟을 통해 포인터를 전달하거나, 타겟 위에 포인터를 두거나, 스타일러스를 사용하여 타겟을 접속할 때, 동작하게 될 수 있다. 또한, 삽입 위치 상태는 데이터 입력 사용자 인터페이스가 어떻게 해제되는 지를 결정하는 데 사용된다. 따라서, 삽입 위치 상태의변경이 편집 컨트롤이 입력 포커스를 상실했다고 표시하면, 이 표시는 그 편집 컨트롤에 관련된 데이터 입력 사용자 인터페이스에 자동적으로 근접하게 하는 데 사용될 수 있다.
도 1은 본 발명의 다양한 실시예를 구현하는 데 사용될 수 있는 일반적인 운영 환경을 나타내는 도면.
도 2는 본 발명의 다양한 실시예에 따른 삽입 위치 컨트롤 툴을 나타내는 도면.
도 3은 도2에 도시된 삽입 위치 컨트롤 툴에 채용될 수 있는 삽입 위치 추적 모듈을 나타내는 도면.
도 4a와 도 4b는 본 발명의 다양한 실시예에 따라 삽입 위치의 상태를 모니터하는 방법을 나타내는 흐름도.
도 5는 본 발명의 다양한 실시예에 따른 데이터 입력 패널의 일 예를 나타내는 도면.
도 6a는 본 발명의 다양한 실시예에서 채용될 수 있는 애플리케이션 사용자 인터페이스에서의 편집 컨트롤의 사용의 일 예를 나타내고, 도 6b 내지 도 6d는 도 6a에 나타낸 편집 컨트롤로의 텍스트 삽입을 나타내는 도면.
도 7 내지 도 9는 본 발명의 다양한 실시예에 따라 데이터 편집 컨트롤에 대한 데이터 입력 패널의 대안적인 위치 지정을 나타내는 도면.
도 10은 동양 언어 기입 장치를 갖는 데이터 입력 패널의 일 예를 나타내는 도면.
도 11은 부가적인 숫자 키패드를 갖는 데이터 입력 패널의 일 예를 나타내는 도면.
도 12는 부가적인 심볼 키패드를 갖는 데이터 입력 패널의 일 예를 나타내는 도면.
도 13은 역방향의 텍스트 입력 패널의 일 예를 나타내는 도면.
<도면의 주요 부분에 대한 부호의 설명>
107: 디스플레이 203: 삽입점 추적 모듈
205: 사용자 인터페이스 판정 모듈 301: 검색 스레드
303: 이벤트 큐 305: 타이밍 스레드
501: 데이터 입력 패널 601: 경계
개요
후술하는 바와 같이, 본 발명의 다양한 실시예는 삽입 위치의 상태를 모니터한다. 이들 실시예는, 예를 들어, 삽입 위치과, 필드, 편집 컨트롤 또는 삽입 위치가 발생하는 사용자 인터페이스의 위치를 모니터할 수 있다. 본 발명의 다양한 실시예는 삽입 위치의 특성에 기초하여 하나 이상의 동작을 수행할 수 있다. 대안적으로 또는 추가적으로, 본 발명의 다양한 실시예는 이 삽입 위치 상태 정보에 기초하여 하나 또는 그 이상의 동작을 수할 수 있는 다른 개체 또는 프로세스에 이 상태 정보를 제공할 수 있다. 예를 들어, 일부 실시예는 삽입 위치의 특성에 기초하여 데이터 입력에 대하여 사용자 인터페이스를 제어할 수 있다. 따라서, 본 발명의 서로 다른 실시예가 구현될 수 있는 다양한 운영 환경이 본 발명의 다양한 실시예에 따른 삽입 위치의 상태를 모니터하는 기술과 더불에 설명될 것이다. 또한, 삽입 위치의 모니터된 특성에 기초하여 데이터 사용자 인터페이스의 제어의 다른 예들이 설명될 것이다.
운영 환경
본 발명의 다양한 실시예에 따라 삽입 위치의 상태에 기초하여 사용자 인터페이스를 제어하는 툴은 하드웨어, 소프트웨어, 펌웨어, 또는 그들의 조합을 사용하여 구현될 수 있다. 예를 들어, 본 발명의 일부 실시예는 삽입 위치의 상태를 추적하고 데이터 입력 사용자 인터페이스의 동작을 제어하는 기능 모듈에 의해 구현될 수 있다. 각각의 모듈은 아날로그 또는 디지털 전자회로만으로 구현될 수 있다. 그러나, 당업자가 이해할 수 있는 바와 같이, 모듈은 또한 개인용 및 랩탑 컴퓨터 등의 종래의 프로그래머블 컴퓨팅 장치에서 발견되는 바와 같은 프로그래머블 전자회로를 제어하는 실행가능 소프트웨어 명령을 사용하여 구현될 수 있다.
특히, 본 발명의 다양한 실시예에 따른 삽입 위치 추적 및 사용자 인터페이스 제어 툴은 하나 또는 그 이상의 프로그래머블 컴퓨팅 장치에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능 명령의 일반적인 경우에 대하여 설명될 수 있다. 통상, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터형을 구현하는 루틴, 프로그램, 개체, 콤포넌트, 데이터 구조 등을 포함할 수 있다. 통상, 프로그램 모듈의 기능은 다양한 실시예에서 원하는 바대로 결합되거나 분산될 수 있다.
본 발명의 다양한 실시예는 소프트웨어로 프로그래밍된 프로그래머블 컴퓨터 장치를 사용하여 구현될 수 있기 때문에, 본 발명의 다양한 실시예에서 채용될 수 있는 통상의 프로그래머블 컴퓨팅 장치(이하, 단순히 컴퓨터라고 지칭함)의 동작 및 콤포넌트를 간단히 언급하는 것이 본 발명을 보다 잘 이해하는 데 도움이 될 수 있다. 도 1은 본 발명의 다양한 태양을 구현하는 데 사용될 수 있는 종래의 범용 디지털 컴퓨팅 환경의 일 예의 기능 블록도이다. 도 1에서, 컴퓨터(100)는 처리부(110), 시스템 메모리(120) 및 시스템 메모리를 포함하는 여러 시스템 콤포넌트를 처리부(110)에 결합하는 시스템 버스(130)를 포함한다. 시스템 버스(130)는 메모리 버스 또는 메모리 컨트롤러, 병렬 버스, 및 임의의 다양한 버스 구조를 사용하는 로컬 버스를 포함하는 여러 유형의 버스 구조 중의 어떤 것일 수 있다. 시스템 메모리(120)는 판독 전용 메모리(ROM;140) 및 랜덤 액세스 메모리(RAM;150)를 포함한다.
기본 입출력 시스템(160;BIOS)은 시동 중과 같이 컴퓨터(100) 내의 요소들 간의 정보를 전송할 수 있게 하는 기본 루틴을 포함하며, ROM(140)에 저장된다. 또한, 컴퓨터는 하드 디스크(미도시)로부터 판독하고 이에 기입하는 하드 디스크 드라이브(170), 분리형 자기 디스크(190)로부터 판독하고 이에 기입하는 자기 디스크 드라이브(180), 및 CD ROM 또는 다른 광 매체와 같은 분리형 광 디스크(192)로부터 판독하고 이에 기입하는 광 디스크 드라이브(191)를 포함한다. 하드 디스크 드라이브(170), 자기 디스크 드라이브(180), 및 광 디스크 드라이브(191)는 하드 디스크 드라이브 인터페이스(192), 자기 디스크 드라이브 인터페이스(193), 및 광 디스크 드라이브 인터페이스(194)에 의해 각각 시스템 버스(130)에 접속된다. 드라이브 및 그들의 관련 컴퓨터 판독매체는 개인용 컴퓨터(100)에 대한 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 및 다른 데이터의 비휘발성 스토리지를 제공한다. 자기 카세트, 플래시 메모리 카드, 디지털 비디오 디스크와 같은 컴퓨터에 의해 액세스가능한 데이터를 저장할 수 있는 다른 유형의 컴퓨터 판독가능 매체가 당업자에 의해 이행될 것이다. 베르누이 카트리지, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM) 등은 예시적인 운영 환경에서 또한 사용될 수 있다.
다수의 프로그램 모듈이 운영 체계(195), 하나 또는 그 이상의 애플리케이션 프로그램(196), 다른 프로그램 모듈(197), 및 프로그램 데이터(198)를 포함하여, 하드 디스크 드라이브(170), 자기 디스크 (190), 광 디스크(192), ROM(140) 또는 RAM(150)에 저장될 수 있다. 사용자는 키보드(101) 및 포인팅 장치(102)와 같은 입력 장치를 통해 컴퓨터(100)에 명령 및 정보를 입력할 수 있다. 다른 입력 장치(미도시)는 마이크로폰, 조이스틱, 게임 패드, 위성 접시, 스캐너 등을 포함할 수 있다. 이들 및 다른 입력 장치는 종종 시스템 버스에 결합되는 직렬 포트 인터페이스(106)를 통해 처리부(110)에 접속되며, 병렬 포트, 게임 포트 또는 범용 직렬 버스(USB)와 같은 다른 인터페이스에 의해 접속될 수 있다. 또한, 이들 장치는 적절한 인터페이스(미도시)를 통해 시스템 버스(130)에 직접 결합될 수 있다. 모니터(107) 또는 다른 유형의 디스플레이 장치가 또한 비디오 어댑터(108)와 같은 인터페이스를 통하여 시스템 버스(130)에 접속될 수 있다. 모니터에 더하여, 개인용 컴퓨터는 통상 스피커 및 프린터와 같은 다른 병렬 출력 장치(미도시)를 포함한다. 바람직한 실시예에서, 펜 디지타이저(165) 및 동반하는 펜 또는 스타일러스(166)가 잉크와 같은 프리핸드 입력을 디지털적으로 캡쳐하기 위해 제공된다. 비록 펜 디지타이저(165)와 직렬 포트 간에 직접 접속이 도시되었지만, 실제로는, 펜 디지타이저(165)는 공지되어 있는 병렬 포트 또는 다른 인터페이스 및 시스템 버스를 통해 처리부(110)에 직접 결합될 수 있다. 더욱이, 디지타이저(165)가 모니터(107)로부터 이격되어 도시되어 있지만, 디지타이저(165)의 가용 입력 영역은 모니터(107)의 디스플레이 영역과 동일한 공간에 걸쳐있다.또한, 디지타이저(165)는 모니터(107)에 결합될 수 있거나, 모니터(107)에 부착되거나 오버레이하는 별도의 장치로서 존재할 수 있다.
애플리케이션 프로그램(196)과 프로그램 모듈(197)은 스타일러스(166)를 통해 잉크 입력을 받아 들이고 분석할 때 사용하기 위한 파싱 모듈 및 인식 모듈을 포함할 수 있다. 파싱 모듈은 개체(예를 들어, 문자, 단어, 도면 등)로 수신 스트로크 및 스트로크 그룹을 분석하는 데 사용될 수 있다. 인식 모듈은 잉크 개체를 분석하고 문자숫자(alphanumeric) 수기 입력에 대응하여 잉크 개체에 대한 문자 인식을 수행하는 데 사용될 수 잇다. 그 후, 인식 정보는 잉크 개체의 속성으로서 저장될 수 있다. 이러한 파싱 및 인식 모듈의 예는 미국 워싱턴주 레드몬드의 마이크로소프트 사의 태블릿 PC 플랫폼 소프트웨어 개발 Kit(SDK)로부터 입수가능하다.
컴퓨터(100)는 원격 컴퓨터(109)와 같은 하나 이상의 원격 컴퓨터에 대한 논리 접속을 사용하여 네트워크 환경에서 동작할 수 있다. 원격 컴퓨터(109)는 서버, 라우터, 네트워크 PC, 피어 장치 또는 다른 공통 네트워크 모드일 수 있으며, 비록 메모리 스토리지 장치(111)가 도 1에 도시되었지만, 컴퓨터(100)에 대하여 상술한 요소의 대부분 또는 모두를 통상 포함한다. 도 1에 도시한 논리 접속은 근거리 통신망(LAN;112)과 원거리 통신망(WAN;113)을 포함한다. 이러한 네트워킹 환경은 사무실, 범사내망, 인트라넷, 및 인터넷에서 흔한 일이며, 유선 및 무선 통신 프로토콜을 모두 사용한다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(100)는 네트워크 인터페이스 또는어댑터(114)를 통해 로컬 네트워크(112)에 접속된다. WAN 네트워킹 환경에서 사용될 때, 개인용 컴퓨터(100)는 통상 모뎀(115) 또는 인터넷과 같이 원거리 통신망(113)을 통해 통신을 설정하는 다른 수단을 포함한다. 모뎀(115)은 내장형 또는 외장형일 수 있으며, 직렬 포트 인터페이스(106)을 통해 시스템 버스(130)에 접속된다. 네트워킹 환경에서, 개인용 컴퓨터(100) 또는 그 일부에 대하여 도시된 프로그램 모듈은 원격 메모리 스토리지 장치에 저장될 수 있다.
도시된 네트워크 접속은 예시적이며 컴퓨터들 간의 통신 링크를 설정하는 다른 기술이 사용될 수 있음이 이해될 것이다. TCP/IP, 이더넷, FTP, HTTP 등과 같은 다양한 공지의 프로토콜 중의 임의의 존재가 가정되며, 시스템은 웹기반 서버로부터 웹페이지를 사용자가 검색할 수 있게 하는 클라이언트-서버 구성에서 동작할 수 있다. 여러 종래의 웹 브라우저의 임의의 것이 웹 페이지 상의 데이터를 디스플레이하고 조작하는 데 사용될 수 있다.
상술한 바와 같이, 본 발명의 하나 이상의 태양이 하나 이상의 컴퓨터 또는 다른 장치에 의해 실행되는 하나 이상의 프로그램 모듈과 같은 컴퓨터 실행가능 명령으로 구체화될 수 있다. 통상, 이들 프로그램 모듈은 컴퓨터 또는 다른 장치의 프로세서에 의해 실행될 때 특정 태스크를 수행하고 특정 추상 데이터형을 구현하는 루틴, 프로그램 개체, 콤포넌트, 데이터 구조 등을 포함한다. 컴퓨터 실행가능 명령은 하드 디스크, 광 디스크, 분리형 스토리지 매체, 고체 상태 메모리, RAM 등과 같은 컴퓨터 판독가능 매체 상에 저장될 수 있다. 프로그램 모듈의 기능은 여러 실시예에서 원하는 대로 결합 또는 분산될 수 있다. 또한, 그 기능은 집적 회로, 필드 프로그래머블 게이트 어레이(FPGA) 등과 같은 펌 웨어 또는 하드웨어 등가물의 일부 또는 전체로 구체화될 수 있다.
삽입 위치 상태 결정
사용자 인터페이스에서 삽입 위치의 사용
통상, 대부분의 소프트웨어 애플리케이션은 사용자로부터 입력 데이터를 허용하는 여러 유형의 특징 또는 콤포넌트를 갖는다. 그래픽 사용자 인터페이스를 갖는 애플리케이션에서는, 이들 특징 또는 콤포넌트는 통상 컨트롤로 지칭한다. 따라서, 컨트롤은 사용자에 의해 동작을 수행하도록 조작될 수 있는 디스플레이된 개체일 수 있다. 컨트롤의 두가지 예는 포인팅 장치의 사용을 통해 사용자에 의해 "체크"될 수 있는 버튼 및 포인팅 장치를 통해 또한 조작될 수 있는 스크롤 바를 포함한다. 창 있는 사용자 인터페이스(windowed user interface)를 포함하는 윈도우는 또다른 유형의 컨트롤을 포함하여, 이는 사용자가 창 있는 사용자 인터페이스의 콘텐츠를 조작할 수 있게 한다. 컨트롤의 특성 및 행동은 컨트롤을 호스트하는 애플리케이션에 의해 통상 규정된다.
사용자가 예를 들어, 키보드를 사용하여 텍스트 데이터를 입력하는 경계 영역은 통상 편집 컨트롤이라고 지칭한다. 당업자에 의해 이해되는 바와 같이, 서로 다른 다양한 유형의 편집 컨트롤이 있다. 예를 들어, 키보드로부터 문자 데이터를 허용하는 종래의 편집 컨트롤 뿐만 아니라, Microsoft WINDOWS브랜드 XP 운영 체계와 같은 일부 운영 체계는 애플리케이션이 풍부한 편집 컨트롤을 포함할 수 있게 한다. 리치 편집 컨트롤(rich edit control)은 입력 데이터와 삽입된 텍스트에관련된 여러 유형의 메타데이터를 모두 허용한다. 또한, Microsoft WINDOWS브랜드 XP 태블릿 PC 버전 운영 체계와 같은 일부 운영 체계는 대안적으로 또는 추가적으로 잉크 편집 컨트롤(ink edit control)을 포함할 수 있게 한다. 잉크 편집 컨트롤은 사용자가 스타일러스형 포인팅 장치를 조작하여 전자 잉크를 생성함으로써 컨트롤에 데이터를 입력할 수 있게 하는 리치 편집 컨트롤 유형이다. 몇몇 잉크 편집 컨트롤을 사용하면, 잉크는 텍스트로 변환될 수 있지만, 다른 유형의 잉크 편집 컨트롤은 텍스트로의 번역없이 처리될 수 있다.
통상, 애플리케이션 또는 (운영 체계와 같이) 애플리케이션을 호스팅하는 시스템은 입력 장치에 의해 생성되는 데이터가 컨트롤에 삽입되는 삽입 위치를 제공할 수 있다. 예를 들어, 애플리케이션은 입력 장치에 의해 생성되는 데이터가 삽입되는 곳을 나타내는 삽입점을 표시할 수 있다. 삽입점은 통상 블링킹 수직 라인(blinking vertical line)으로 디스플레이될 수 있다. 삽입점의 위치는 통상 하나 이상의 입력 장치에 의해 제어될 수 있다. 따라서, 사용자는 펜(166), 마우스, 트랙볼, 조이스틱, 터치패드 또는 다른 포인팅 장치를 사용하여 원하는 컨트롤 내의 원하는 위치에 커서를 배열하고, 컨트롤 명령을 활성화(흔히 "클릭"이라 부름)하여 그 로케이션에 삽입점을 배열할 수 있다. 스타일러스(166)를 사용하는 몇몇 소프트웨어 애플리케이션 및 운영 체계를 사용하여, 사용자는 원하는 로케이션에 대응하는 위치에 스타일러스(166)를 디지타이저(165)에 단순히 접촉시킴으로써 컨트롤의 경계 영역에 삽입점을 배열할 수 있다. 또한, 컨트롤 내의 삽입점의 로케이션은 삽입점에서 데이터의 입력에 응답하여 이동될 수 있다. 예를 들어, 키보드로부터 텍스트 데이터를 허용하는 컨트롤을 사용하여, 삽입점은 컨트롤에 삽입되는 임의의 텍스트의 끝으로 자동적으로 계속 이동될 수 있다.
다르게는, 삽입 위치는 대체가능 텍스트의 선택일 수 있다. 특히, 사용자가 텍스트 또는 다른 문자(예를 들어, 스페이스 문자)를 새로운 입력 데이터로 대체하기를 원하는 경우, 사용자는 대체될 전체 텍스트를 선택할 수 있다. 예를 들어, 사용자는 포인팅 장치에 관련된 명령 버튼을 활성화 시킨 후, 포인팅 장치를 이동시켜 대체될 텍스트 상으로 또는 텍스트에 걸쳐서 디스플레이되는 포인터를 옮길 수 있다. 이 프로세스는 종종 텍스트 선택을 "차단(blocking)"하는 것으로 불린다. 그 후, 사용자는 컨트롤에 데이터를 입력하는 경우, 선택된 텍스트 전체가 새로 입력된 데이터와 교체된다.
삽입 위치의 상태를 제어하는 소프트웨어 애플리케이션 또는 호스팅 소프트웨어 시스템은 다른 소프트웨어 프로세스에 삽입 위치의 상태를 보고하는 보고 기능을 포함할 수 있다. 예를 들어, 마이크로소프트 MICROSOFT브랜드 XP 운영 체계는 텍스트 서비스 프레임워크(text service framework)를 제공한다. 이 운영 체계는 전자 잉크 입력 및, 번역된 텍스트에 대한 원래의 전자 잉크 입력과 같은 임베디드 임의적 메타데이터를 수신하는 특성 등의 텍스트 서비스 프레임워크에 의해 제공되는 서비스를 사용하도록 구성된 향상된 소프트웨어 애플리케이션에 대한 향상된 기능을 애플리케이션에 제공한다. 그러나, 텍스트 서비스 프레임워크의 서비스를 사용하기 위해서, 애플리케이션은 애플리케이션 내에 삽입점 "캐럿" (즉, 삽입점을 식별하는 표시)의 모든 이동을 보고하고 삽입점이 사용자에게 보이는지를식별해야 한다. 또한, 애플리케이션은 애플리케이션에 의해 유지되는 편집 컨트롤 내의 임의의 텍스트 범위의 디스플레이 로케이션을 보고할 수 있어야 한다. 텍스트 서비스 프레임워크의 어떤 구현예에 따르면, 삽입 위치 상태 정보(삽입점 캐럿의 위치 변경 등)를 포함하는 이벤트 메시지는 운영 체계에 의해 호스팅되는 다른 애플리케이션에 동보될 수 있다. 또한, 텍스트 서비스 프레임워크의 몇몇 구현예는 다른 애플리케이션으로부터의 질의에 응답하여 삽입 위치 상태 정보를 제공할 수 있다. 따라서, 텍스트 서비스 프레임워크는, 예를 들어, 데이터 입력 사용자 인터페이스를 제어하는 운영 체계의 다른 콤포넌트를 포함하는 다른 소프트웨어 프로세스에 삽입 위치의 상태를 보고할 수 있다.
유사하게, 마이크로소프트 WINDOWS브랜드 운영체계의 몇몇 버전은 마이크로소프트 Active Accessibiltiy콤포넌트를 포함할 수 있다. 이 콤포넌트는 예를 들어, 종래의 그래픽 사용자 인터페이스에서는 삽입 위치를 달리 관측할 수 없던 시각 장애인을 위한 사용자 인터페이스에 삽입 위치의 상태를 보고하는 데 사용된다. 텍스트 서비스 프레임워크 콤포넌트와 같이, 마이크로소프트 Active Accessibiltiy콤포넌트의 다양한 구현예가 삽입 위치 상태 정보를 포함하는 이벤트 메시지를 동보할 수 있다.
대안적으로 또는 추가적으로, 몇몇 운영 체계 또는 다른 소프트웨어 프로세스는 그 정보에 대한 직접 질의에 응답하여 삽입 위치 상태 정보의 여러 유형을 제공할 수 있다. 예를 들어, 몇몇 소프트웨어 애플리케이션은 다양한 유형의 삽입위치 상태 정보가 획득될 수 있는 하나 이상의 컨트롤을 포함할 수 있다. 이러한 유형의 제어 중의 하나가 마이크로소프트 "MSHTML" 컨트롤이며, 이는 종종 마이크로소프트 인터넷 익스플로러 애플리케이션과 다른 유형의 소프트웨어 애플리케이션에서 웹 브라우징을 위해 채용된다. 이러한 유형의 컨트롤은, 예를 들어, 컨트롤 내의 삽입점 캐럿의 로케이션을 획득하도록 용이하게 액세스될 수 있다.
대안적으로 또는 추가적으로, 몇몇 소프트웨어 애플리케이션은 삽입 위치의 현재 상태의 디스플레이 프로세스를 알리기 위해서 애플리케이션 프로그래밍 인터페이스(API)를 사용하기 때문에, 삽입 위치가 사용자에게 디스플레이될 수 있다. 이러한 애플리케이션 인터페이스 중의 하나가 마이크로소프트 WINDOWS브랜드 운영 체계에 의해 사용되는 WIN32 애플리케이션 프로그래밍 인터페이스이다. 이러한 애플리케이션 프로그래밍 인터페이스 중의 다른 예는 마이크로소프트 입력 메소드 편집기(IME) 인터페이스이며, 이는 종종 동아시아어에 대한 텍스트 입력에 사용된다. 이 유형의 애플리케이션 프로그래밍 인터페이스를 사용하는 소프트웨어 애플리케이션은, 예를 들어, 애플리케이션 내에 삽입점 캐럿의 로케이션에 인터페이스를 제공할 수 있다.
따라서, 하나 이상의 소프트웨어 프로세스가 삽입 위치의 상태를 획득 또는 입력받도록 사용될 수 있다. 또한, 삽입 위치의 상태 정보는 삽입 위치과 관련되는 임의의 특성을 포함할 수 있음이 이해되어져야 한다. 예를 들어, 삽입 위치 상태 정보는 삽입 위치를 식별하는 정보, 삽입점 캐럿이 보이는 지에 대한 가시성 정보, 삽입점 캐럿의 높이를 나타내는 높이 정보를 포함할 수 있다. 또한, 삽입 위치 상태 정보는 삽입 위치가 배열되는 컨트롤을 식별하는 제어 정보를 통상 포함할 수 있다. 컨트롤 정보는, 예를 들어, 컨트롤을 포함하는 애플리케이션 사용자 인터페이스와 애플리케이션 사용자 인터페이스 내에 컨트롤을 식별하는 식별 정보를 모두 규정할 수 있다. 삽입 위치 정보는 또한 컨트롤의 상태에 관련되는 정보 및 삽입 위치를 포함하는 컨트롤의 유형을 식별할 수 있다. 아래에서 보다 상세히 설명되는 바와 같이, 본 발명의 다양한 실시예에 따른 삽입 위치 툴은 이 삽입 위치 정보를 모니터하고, 삽입 위치 특성에 기초하여 데이터 입력 사용자 인터페이스와 같은 사용자 인터페이스의 동작을 제어할 수 있다.
삽입 위치 제어 툴
도 2를 이하 참조하면, 이 도면은 본 발명의 다양한 실시예에 의해 사용될 수 있는 삽입 위치 컨트롤 툴(201)로서 도시된다. 삽입 위치 컨트롤 툴(201)은 삽입 위치 추적 모듈(203) 및 사용자 인터페이스 판정 모듈(205)을 포함한다. 삽입 위치 추적 모듈(203)은 여러 소스로부터 삽입 위치에 관련된 특성 정보를 추출하고, 이 정보를 사용자 인터페이스 판정 모듈(205)에 제공한다. 획득한 삽입 위치의 특성(아래에 보다 상세히 설명되는 바와 같이, 다른 유형의 이벤트 메시지로부터 수신하는 정보)에 기초하여, 사용자 인터페이스 판정 모듈(205)는, 데이터 입력 사용자 인터페이스와 같이, 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스(207)에 의해 제공되는 사용자 인터페이스의 동작을 제어한다. 당업자에 의해 이해되는 바와 같이, 사용자 인터페이스 판정 모듈(205)에서의 명령에 응답하여, 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스(207)는 디스플레이(107)를통해 사용자 인터페이스를 제공한다.
상술한 바와 같이, 삽입 위치 추적 모듈(203)은 운영 체계(또는 다른 적절한 소프트웨어 시스템)의 콤포넌트, 애플리케이션 내에 포함되는 컨트롤, 애플리케이션에 의해 사용되는 애플리케이션 사용자 인터페이스를 포함하여, 다양한 소스로부터 삽입 위치 상태 정보를 획득할 수 있다. 예를 들어, 도 2에 도시된 본 발명의 실시예를 사용하면, 삽입 위치 추적 모듈(203)은 텍스트 서비스 프레임워크 인터페이스(209) 및 마이크로소프트 Active Accessibility 애플리케이션 프로그래밍 인터페이스(213)로부터 삽입 위치 상태 정보를 갖는 이벤트 메시지를 받을 수 있다. 또한, 여러 유형의 삽입 위치 상태 정보를 획득하기 위해서 삽입 위치 추적 모듈(203)은 MSHTML 컨트롤(211), Win32 애플리케이션 프로그래밍 인터페이스(215) 및 입력 메소드 편집기 인터페이스(217)에 대한 질의를통신할 수 있다.
본 발명의 다양한 실시예에 따르면, 삽입 위치 추적 모듈(203)은 주어진 상황에 대하여 가장 정확한 소스로부터의 삽입 위치 상태 정보를 사용할 수 있다. 예를 들어, 삽입 위치 추적 모듈(203)은 마이크로소프트 Active Accessibility 애플리케이션 프로그래밍 인터페이스(213) 및 Win32 애플리케이션 프로그래밍 인터페이스(215)로부터 삽입 위치의 현재 상태에 관련된 특성 데이터를 획득할 수 있다. 애플리케이션 프로그래밍 인터페이스 마이크로소프트 Active Accessibility(213) 및 Win32 애플리케이션 프로그래밍 인터페이스(215)는 삽입 위치 상태 정보를 제공하지만, 몇몇 상황에서는, 애플리케이션 프로그래밍 인터페이스들 중의 하나의 정확성이 다른 것보다 좋을 수 있다. 예를 들어, 삽입점 캐럿의 많은 위치 가운데서, 마이크로소프트 Active Accessibiltiy 애플리케이션 프로그래밍 인터페이스(213)가 삽입점의 현재 상태에 관련된 보다 정확한 정보를 제공할 수 있다. 그러나, 삽입점 캐럿이 "리치 편집(rich edit)" 컨트롤에 배열되면, Win32 애플리케이션 프로그래밍 인터페이스(215)는 삽입점의 현재 상태에 관한 보다 정확한 정보를 제공할 수 있다.
또한, 애플리케이션 프로그래밍 인터페이스(213, 215) 중의 하나로부터 삽입 위치 메시지에 의해 제공되는 정보 포맷은 다른 애플리케이션 프로그래밍 인터페이스에 의해 제공되는 포맷보다 처리하기에 보다 효율적일 수 있다. 예를 들어, 몇몇 상황에서, 삽입점 캐럿의 가시성 특성(즉, 삽입점이 보이는지를 나타내는 데이터)은 마이크로소프트 Active Accessibility 애플리케이션 프로그래밍 인터페이스(213)에 의해 제공되는 데이터 포맷보다 Win32 애플리케이션 프로그래밍 인터페이스(215)에 의해 제공되는 데이터 포맷으로부터 보다 편리하게 획득될 수 있다. 더욱이, 삽입점이 창 없는 컨트롤 내에 위치하면, 마이크로소프트 Active Accessibility 애플리케이션 사용자 인터페이스(215)에 의해 제공되는 특성 정보는 삽입 위치 추적 모듈(203)이 창 없는 컨트롤에 대한 경계 사각형을 결정할 수 있게 한다. 따라서, 본 발명의 몇몇 실시예에서, 삽입 위치 상태에 대한 특성 정보는 마이크로소프트 Active Accessibilty 애플리케이션 사용자 인터페이스(213)와 같은 하나의 소스로부터 주로 획득되면, Win32 애플리케이션 프로그래밍 인터페이스(215)와 같은 다른 소스로부터의 삽입 위치 상태 정보가 그 후에 제2 소스가 제1 소스보다 정확성을 제공하는 지에 대한 백업 체크로서 사용된다.
본 발명의 도시된 예에서, 텍스트 서비스 프레임워크는 통상 삽입 위치 상태 정보의 가장 정확한 소스일 수 있다. 따라서, 삽입 위치 추적 모듈(203)은 텍스트 서비스 프레임워크 인터페이스(209)로부터 삽입 위치 상태 정보를 포함하는 이벤트 메시지를 수신하는 경우, 삽입 위치 추적 모듈(203)은 사용자 인터페이스 판정 모듈(205)에 상태 정보를 제공할 수 있다. 그러나, 운영 체계가 텍스트 서비스 프레임워크를 사용하지 않은 경우에는, 삽입 위치 추적 모듈(203)은 삽입 위치 상태 정보를 포함하는 마이크로소프트 Active Accessibility 애플리케이션 사용자 인터페이스(213)로부터의 이벤트 메시지를 처리할 수 있다. 이들 이벤트 메시지가 삽입 위치가 (또는 마이크로소프트 Active Accessibility 애플리케이션 사용자 인터페이스(213) 자체로부터의 이벤트 메시지보다 정확한 삽입 위치 상태 정보를 제공할 수 있는 애플리케이션 사용자 인터페이스 관련) 컨트롤 내에 위치한다고 나타내면, 삽입 위치 추적 모듈(203)은 이보다 정확한 삽입 위치 상태 정보를 요구할 것이다. 예를 들어, 마이크로소프트 Active Accessibility 애플리케이션 사용자 인터페이스(213)로부터의 이벤트 메시지가 삽입점 캐럿이 MSHTML 컨트롤(211)에 배열되어 있다고 나타내는 경우, 삽입 위치 추적 모듈(203)은 마이크로소프트 Active Accessibility 애플리케이션 사용자 인터페이스(213)보다 MSHTML 컨트롤(211)로부터의 삽입 위치 상태 정보를 획득할 수 있다. 또는, 삽입 위치 추적 모듈(203)은 마이크로소프트 Active Accessibility 애플리케이션 사용자 인터페이스(213)로부터의 이벤트 메시지에 의해 제공되는 삽입 위치 상태 정보를 사용하고, 적절한 경우에 Win32 애플리케이션 프로그래밍 인터페이스(215) 및 입력 메소드 편집기 인터페이스(217)와 같은 다른 소스로부터 보다 정확한 삽입 위치 상태 정보를 획득하여 이 정보를 보충할 수 있다.
또다른 애플리케이션 프로세스 또는 소스가 삽입 위치의 현재 상태에 관련된 삽입 위치 특성 정보를 제공하도록 사용될 수 있다. 예를 들어, 애플 맥킨토시 기반 시스템 또는 유닉스 기반 시스템은 삽입 위치의 현재 상태에 관한 삽입 위치 특성 정보를 모니터 및 제공하기 위해 서로 다른 애플리케이션 프로세스를 사용할 수 있다. 따라서, 본 발명의 여러 실시예는 텍스트 서비스 프레임워크 인터페이스(209), MSHTML 컨트롤(211), 마이크로소프트 Active Accessibility 애플리케이션 사용자 인터페이스(213), Win32 애플리케이션 프로그래밍 인터페이스(215) 및 입력 메소드 편집기 인터페이스(217) 대신 또는 이에 더하여 이들 대안적인 애플리케이션 프로세스를 사용할 수 있다.
이상적으로는, 삽입 위치 추적 모듈(203)은, 사용자에게 삽입 위치의 상태에 관한 최신의 특성 정보를 사용자 인터페이스 판정 모듈(205)에 지속적으로 제공하면서, 모든 수신 정보 로케이션 메시지에 포함된 특성 정보를 분석하기 에 충분히 빨리 삽입 위치 정보를 갖는 인커밍 메시지를 처리할 수 있다. 그러나, 현실적인 문제로서, 삽입 위치 추적 모듈(203)이 실시간으로 그들의 삽입 위치 특성 정보를 모니터하기에는 메시지가 너무 빨리 발부될 수도 있다. 따라서, 본 발명의 여러 실시예는 도 3에 도시된 삽입 위치 추적 모듈(203)을 사용할 수 있다. 삽입 위치 추적 모듈(203)의 이 특정 실시예의 동작은 도 4에 도시된 흐름도를 참조하여 이하 설명될 것이다.
단계 401에서 시작하면, 삽입 위치 추적 모듈(203)은 초기에 임계치 타이머를 개시한다. 이러한 임계치 타이머는, 예를 들어, 100 밀리초 용일 수일 수 있다. 후술하는 설명으로부터 명백해지는 바와 같이, 임계치 타이머는 삽입 위치 추적 모듈(203)이 마이크로소프트 Active Accessibility 애플리케이션 사용자 인터페이스(213)에서의 이벤트 메시지와 같이 삽입 위치 상태 정보를 포함하는 수신 메시지의 특성을 얼마나 자주 하는 지를 결정한다. 다음으로, 단계 403에서, 검색된 스레드(301)는 마이크로소프트 Active Accessibility 애플리케이션 사용자 인터페이스(213)로부터의 삽입 위치 메시지를 검색한다. 단계 405에서, 검색 스레드(301)는 이벤트 메시지 큐(303)에 수신된 삽입 위치 메시지를 배열한다.
단계 407에서, 타이밍 스레드(305)는 임계치 시간이 만료되었는지를 판정한다. 임계치 시간이 이제 만료되었으면, 검색 스레드(301)는 삽입 위치 메시지를 계속 입력받고 수신된 메시지와 이벤트 메시지 큐(303)를 저장한다. 그러나, 타이밍 스레드(305)가 임계치 시간이 만료되었다고 판정하면, 단계 409에서, 타이밍 스레드(305)는 이벤트 메시지 큐(303)로부터 가장 최근에 저장된 삽입 위치 메시지를 검색한다. 삽입 위치 추적 모듈(203)은 그 후에 검색된 삽입 위치 메시지에 포함된 관련 특성 정보를 분석하여, 그 정보를 사용자 인터페이스 판정 모듈(205)에 제공한다. 따라서, 수신된 삽입 위치 메시지의 각각으로부터의 특성 정보를 분석하려는 대신, 삽입 위치 추적 모듈(203)은 주기적으로 가장 최근에 수신된 삽입 위치 메시지 내의 특성 정보를 분석한다. 인커밍 삽입 위치 메시지의 검색 및 저장은 저장된 삽입 위치 메시지의 샘플링과 동일한 프로세스의 일부로서 설명하지만,타이밍 스레드(305)는 본 발명의 여러 실시예에 대한 검색 스레드(301)와 상이할 수 있다. 스레드가 다르면, 검색 스레드는 이벤트 큐(303)로부터 저장된 삽입 위치 메시지를 샘플하는 타이밍 스레드(305)와 동시에 인커밍 삽입 위치 메시지를 계속 수신 및 저장할 수 있다.
본 발명의 여러 실시예에서, 삽입 위치 상태의 특정 변화가 일시적으로 큐잉(queuing) 프로세스를 중지시킬 수 있다. 예를 들어, 본 발명의 몇몇 실시예에 있어서, 큐잉 프로세스는 데이터 입력 포커스가 한 사용자 인터페이스에서 다른 사용자 인터페이스로 바뀔 때 일시적으로 중지될 수 있다. 이러한 큐잉 프로세스의 일시적 중지는 데이터 입력 사용자 인터페이스 패널이 데이터 입력 포커스를 상실한 사용자 인터페이스에 대하여 즉시 감추게 하고 데이터 입력 포커스를 획득한 사용자 인터페이스에 대하여는 즉시 보이도록 할 수 있다.
또한, 본 발명의 몇몇 실시예에서, 스레드(301 및 305)의 하나 또는 둘 모두는 "인-프로세스(in-process)" 스레드일 수 있다. 특히, 삽입 위치가 위치한 사용자 인터페이스도 제공할 수 있는 소프트웨어 애플리케이션 프로세스에 의해 스레드가 제공될 수 있다. 당업자에 의해 이해되는 바와 같이, 인-프로세스 스레드의 사용은, 스레드가 애플리케이션 프로세스 자체의 일부이므로, 스레드가 애플리케이션 프로세스에 의해 제공되는 삽입 위치의 상태에 관련된 특성 정보를 용이하게 번역할 수 있게 한다. 다르게는, 스레드(301 및 305) 중의 하나 또는 모두는 사용자 인터페이스가 삽입 위치를 갖게 유지하는 애플리케이션 프로세스로부터 분리된 "아웃 프로세스(out-of-process)"일 수 있다. 예를 들어, 스레드들 중의 하나 또는둘 모두가 운영 체계와 같은 애플리케이션을 호스팅하는 소프트웨어 시스템에 의해 제공될 수 있다. 당업자에 의해 이해되는 바와 같이, 이러한 유형의 스레드가 애플리케이션 동작을 지배하는 규칙에 의해 제한되므로, 아웃 프로세스 스레드의 사용은 보다 큰 동작 자유도가 허용된다. 또한, 이 스레드 유형은 애플리케이션이 본의 아니게 종료하는 경우, 갑자기 동작을 중단하지는 않는다.
본 발명의 다른 실시예는 일련의 삽입 위치 메시지에 포함된 특성 정보를 효율적으로 캡쳐하는 다른 기술을 사용할 수 있음이 이해되어져야 한다. 예를 들어, 본 발명의 몇몇 실시예에서는, 삽입 위치 추적 모듈(203)은 수신된 삽입 위치 메시지의 각각에 포함된 특성 메시지의 프로세스를 위해 하나 이상의 스레드를 사용할 수 있다. 스레드 또는 스레드들은 삽입 위치 메시지를 처리를 개시하면, 삽입 위치의 현재 상태를 따라 잡을 때까지 현저한 삽입 위치 메시지의 처리를 중단하고 가장 최근에 수신된 삽입 위치만을 처리할 수 있다. 다르게는, 본 발명의 몇몇 실시예는 삽입 위치 메시지에 의해 제공되는 특성 정보을 단지 사소한 변경만을 모니터할 수 있다. 예를 들어, 삽입점 캐럿의 상태에 관련된 다수의 메시지열에 있어서, 통상 위치 정보만이 변하며, 삽입점 캐럿이 위치한 컨트롤 또는 사용자 인터페이스에 관련된 특성 정보는 일정하게 유지될 수 있다. 위치 정보는 삽입 위치 추적 모듈(203)에 의해 용이하게 처리될 수 있다. 컨트롤 또는 사용자 인터페이스에 관련된 특성 정보에 대한 변경이 상당히 많은 프로세싱 과부하를 요구하는 반면, 이들 변경은 상대적으로 빈번하지 않게 발생하기 때문에, 이들 특성에서 변경이 인지되는 경우에만 처리될 수도 있다. 또한, 본 발명의 일부 실시예는 한번에 삽입위치 메시지들을 일괄적으로 처리하고, 메시지의 이벤트 순서 및 가장 최근에 수신된 메시지의 특성에 기초하여 삽입 위치의 현재 상태를 파악할 수 있다. 물론, 또다른 기술이 삽입 위치 메시지로부터 삽입 위치 특성 정보를 획득하는 데 사용될 수 있다.
상술한 바와 같이, 사용자 인터페이스 판정 모듈(205)은 삽입 위치 메시지로부터 획득된 삽입 위치 특성 정보를 사용하여 데이터 입력 사용자 인터페이스와 같은 사용자 인터페이스의 동작을 제어한다. 예를 들어, 삽입 위치 특성 정보는 X 및 Y 좌표에서 삽입점 캐럿의 위치를 제공할 수 있다. 사용자 인터페이스 판정 모듈(205)은 그 후 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스(211)에게 삽입점 캐럿의 위치에 인접하여 사용자 인터페이스를 배열하도록 지시할 수 있다. 사용자 인터페이스의 동작을 제어하기 위한 삽입 위치 특성 정보의 또다른 애플리케이션이 보다 상세히 후술될 것이다.
삽입 위치 메시지를 모니터하는 것에 더하여, 삽입 위치 추적 모듈(203)은 또한 본 발명의 여러 실시예에 따라 다른 유형의 메시지를 모니터할 수 있다. 예를 들어, 본 발명의 일부 실시예에서, 삽입 위치 추적 모듈(203)은 애플리케이션 변경에 대한 입력 포커스의 획득을 나타내는 포인트 변경 이벤트 메시지의 상태를 모니터할 수 있다. 사용자 인터페이스 판정 모듈(205)은 예를 들어 사용자 인터페이스의 가시성을 변경하기 위해 포커스 변경 정보를 사용할 수 있다. 또한, 몇몇 상황에서, 삽입 위치가 더이상 입력 포커스를 갖지 않는 사용자 인터페이스에 배열된 것을 나타내는 삽입 위치 추적 메시지는 잘못하여 계속 생성될 수 있다. 따라서, 삽입 위치 추적 모듈(203)은 잘못된 삽입 위치 특성 정보를 제거하기 위해 포커스 변경 이벤트 메시지에 의해 제공되는 정보를 사용할 수 잇다.
본 발명의 여러 실시예는 대안적으로 또는 부가적으로 애플리케이션 사용자 인터페이스의 경계에 대한 이동 또는 크기 처리 프로세스(윈도우된 사용자 인터페이스의 크기조절 또는 이동 등)의 개시 및 종료를 모니터할 수 있다. 본 발명의 몇몇 실시예에서, 툴(201)은, 예를 들어, 삽입 위치를 포함하는 애플리케이션 사용자 인터페이스가 이동되거나 크기 조절되는 동안, 삽입 위치에 대하여 데이터 입력 사용자 인터페이스의 위치를 유지하기에 충분히 빨리 삽입 위치으로부터 특성 정보를 처리하는 것은 어려울 수 있다. 따라서, 툴(201)은 애플리케이션 사용자 인터페이스의 이동 또는 크기 조절의 개시를 나타내는 이벤트 메시지를 인식하고, 데이터 입력 사용자 인터페이스를 응답으로 디스플레이하는 것을 중지시킬 수 있다. 툴(201)은 그 후 애플리케이션 사용자 인터페이스의 이동 또는 크기 조절이 종료되었음을 나타내는 이벤트 메시지를 인지하여, 데이터 입력 사용자 인터페이스를 다시 디스플레이할 수 있다.
또한, 본 발명의 일부 실시예는 애플리케이션 사용자 인터페이스의 메뉴 상태 또는 삽입 위치의 상태에 영향을 주는 사용자 인터페이스 내의 다른 논리적 동작을 모니터할 수 있지만, 삽입 위치 메시지에 대한 삽입 위치 특성의 변경은 야기하지 않는다. 예를 들어, 애플리케이션 사용자 인터페이스가 고정 메뉴가 활성화되면, 삽입점은 메뉴에 계속 디스플레이될 수 있다. 그러나, 애플리케이션 사용자 인터페이스는 삽입점이 고정 메뉴에 있는 동안 입력 데이터를 허용하지 않을 것이다. 따라서, 사용자 인터페이스 판정 모듈(205)은 삽입점이 위치하고 고정 메뉴인 동안 데이터 입력 패널 사용자 인터페이스의 디스플레이를 중지할 수 있다. 물론, 본 발명의 또다른 실시예가 애플리케이션 또는 애플리케이션을 호스팅하는 시스템의 상태에 관한 다른 이벤트 메시지를 모니터하고 이에 응답할 수 있다.
데이터 입력 사용자 인터페이스의 동작
개요
상술한 바와 같이, 본 발명의 여러 실시예에 다른 삽입 위치 추적 툴은 데이터 입력 사용자 인터페이스의 임의의 특성을 제어하는 데 사용될 수 잇다. 예를 들어, 본 발명의 일부 실시예에 따른 툴은 삽입 위치의 상태에 기초하여 데이터 입력 패널과 같은 사용자 인터페이스의 로케이션 및 외관을 모두 제어할 수 있다. 본 발명의 여러 실시예에 따른 이들 특정 특징의 구현은 아래 상세하게 설명될 것이다.
사용자 인터페이스의 포지셔닝
본 발명의 여러 실시예에 따른 삽입 위치 컨트롤 툴(201)의 한 특징은 삽입 위치의 위치 특성에 기초하여 작업 공간 어디서든, 데이터 입력 패널과 같은 데이터 입력 그래픽 사용자 인터페이스를 위치시킬 수 있는 능력이다. 본 발명의 일부 실시예에서, 작업 공간은 사용자에게 디스플레이되는 임의의 공간일 수 있다. 다르게는, 작업 공간은 데이터 입력 그래픽 사용자 인터페이스가 사용자로부터 입력 데이터를 수신하는 임의의 공간일 수 있다. 예를 들어, 데이터 입력 그래픽 사용자 인터페이스가 디지터이저(165)의 표면에 걸쳐서 스타일러스(166)의 이동을 통해입력 데이터를 받으면, 작업 공간은 스타일러스(166)의 이동을 탐지할 수 있는 표면 부분에 대응하는 공간일 수 있다.
따라서, 본 발명의 일부 실시예에 따른 삽입 위치 컨트롤 툴(201)은 사용자 인터페이스로부터의 데이터가 삽입될 컨트롤에 근접하게 데이터 입력 그래픽 사용자 인터페이스를 배열할 수 있다. 예를 들어, 컨트롤이 편집 컨트롤이면, 삽입 위치 컨트롤 툴(201)의 일부 실시예는 편집 컨트롤에 인접하게 데이터 입력 사용자 인터페이스를 배열할 수 있으며, 사용자는 사용자 인터페이스와 컨트롤로의 데이터 입력을 동시에 관측할 수 있다. 이 특징은, 예를 들어, 사용자가 폼(form)과 같은 넓은 영역에 퍼져있는 댜앙한 편집 컨트롤에 데이터를 입력하기 위해 데이터 입력 사용자 인터페이스를 사용하고 있는 경우에 특히 유용한다.
도 5는 데이터를 애플리케이션 사용자 인터페이스의 컨트롤에 입력하기 위해 사용될 수 있는 데이터 입력 그래픽 사용자 인터페이스의 일 유형을 도시한다. 데이터 입력 그래픽 사용자 인터페이스는, 여기서 데이터 입력 패널(501)로 불리며, 경계(503)를 포함한다. 경계 내에는 기입 표면(505)이 있다. 당업자에 의해 이해되는 바와 같이, 사용자는 스타일러스(166)와 같은 적당한 포인팅 장치를 사용하여 표면(505)에 전자 잉크를 기입할 수 있다. 전자 잉크는 애플리케이션 사용자 인터페이스에 삽입하기 전에 텍스트로서 인식될 수 있으며, 또는, 전자 잉크의 형태로서 애플리케이션에 직접 입력될 수도 있다. (본 발명에 따른 일부 데이터 입력 패널에서는, 기입 표면은 스타일러스로부터의 접촉에 대응하여 전자 잉크 만을 생성할 수 있다.) 본 발명의 여러 실시예에서, 스타일러스를 사용하여 행해진 특정 손놀림(gesture)은 일부 기능을 이행하게 하는 명령으로서 또한 인식될 수 있다. 데이터 입력 패널(501)은 또한 전송(send) 버튼(507), 복수개의 컨트롤 버튼(509), 및 부가 인터페이스 버튼(511 및 513)을 포함한다.
사용자가 기입 표면(505)에 전자 잉크를 기입한 후에, 데이터 입력 패널(501)은 소정의 기간 후에 전자 잉크를 텍스트로 변환시킬 수 있다. 그러나, 사용자가 인식 과정을 가속시키고 싶다면, 사용자는 포인팅 장치를 사용하여 전송 버튼(507)을 활성화시킬 수 있다. 일단 텍스트가 전자 잉크로부터 인식되면, 이는 통상 삽입 위치에서 애플리케이션에 삽입된다. 삽입 위치에서 인식된 텍스트를 삽입하는 것에 더하여, 사용자는 컨트롤 버튼(509)을 사용하여, 삽입 로케이션에서도 비문자 동작을 수행할 수 있다. 또한, 컨트롤 버튼(509)을 사용하면, 사용자는 기존 텍스트, 삭제(delete), 백스페이스(backspace)를 통해 삽입점을 앞뒤로 이동시킬 수 있고 캐리지 리턴을 생성할 수 있다.
아래에 보다 상세히 설명되는 바와 같이, 부가 인터페이스 버튼(511,513)의 활성화는, close 버튼(515)의 활성화는 데이터 입력 패널(501)로 하여금 숫자와 심볼을 포함하는 소프트 키보드를 디스플레이하는 반면. 데이터 입력 패널(501)을 닫히게 한다. 데이터 입력 패널(501)은 또한 표면 선택 버튼(517, 519)을 포함한다. 후술하는 바와 같이, 표면 선택 버튼은 사용자가 데이터 입력 패널(501)에 의해 디스플레이되는 데이터 입력 표면들 사이에서 스위치할 수 있게 한다. 도 5에서, 기입 표면 버튼(517)이 활성화되면, 데이터 입력 패널(501)은 기입 표면(505)을 디스플레이하게 한다.
도 6a는 애플리케이션에 대한 그래픽 사용자 인터페이스의 일 예를 도시한다. 이 도면에서 나타낸 바와 같이, 애플리케이션의 그래픽 사용자 인터페이스가 디스플레이되는 작업 공간은 경계(601)를 갖는다. 상술한 바와 같이, 경계(601)는 디스플레이 영역의 가장자리일 수 있다. 다르게는, 경계(601)는 데이터 입력 사용자 인터페이스에 대한 입력 데이터를 허용할 수 있는 영역에 대응하는 디스플레이된 공간의 가장자리일 수 있다. 이 도면에서 또한 나타낸 바와 같이, 애플리케이션의 사용자 인터페이스는 3개의 편집 컨트롤(603 내지 607)을 포함하며, 이들은 경계 상자에 의해 각각 한정된다. 각각의 경계 상자 아래의 도면 부호 609 내지 613는 각각 관련 편집 컨트롤(603 내지 607)에 입력될 데이터를 식별한다. 따라서, 도 6a에 도시된 애플리케이션에 대한 사용자 인터페이스는, 예를 들어, 사용자에게 개인 정보를 요구하는 컴퓨터 상에 행해지는 폼(form)일 수 있다.
사용자가 편집 컨트롤에 데이터를 삽입하려 할 때, 사용자는, 우선 예를 들어, 스타일러스 또는 마우스와 같은 포인팅 장치를 사용하여 편집 컨트롤에 삽입 위치를 설정한다. 이제 도 6b을 참조하면, 예를 들어, 데이터를 편집 컨트롤(603)에 삽입하기를 원하는 사용자는 편집 컨트롤(603)의 경계 내에 삽입점(615)를 설정한다. 통상, 편집 컨트롤 내에 삽입점을 배열하는 것은 컴퓨터의 운영 체계로 하여금 그 편집 컨트롤에 입력 포커스를 이동시키게 한다. 즉, 운영 체계는 사용자에 의한 장래 데이터 입력이 그 편집 컨트롤에 전달될 것이라는 것을 인식한다. 상술한 바와 같이, 삽입 위치 추적 모듈(203)은 삽입점(615)의 상태 변경을 탐지한다.
특히, 삽입 위치 추적 모듈(203)은 컨트롤(605)를 제공하는 애플리케이션이 이제 포커스를 갖는다는 것을 나타내는 포커스 변경 메시지를 탐지한다. 또한, 삽입 위치 추적 모듈(203)은 삽입점(615)가 컨트롤(605) 내에 위치하고 삽입점의 위치는 작업 공간(601) 내에 (또는 컨트롤 내에) 있다고 판정한다. 삽입점 상태의 결정에 응답하여, 본 발명의 여러 실시예에 따른 사용자 인터페이스 판정 모듈(205)은 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스(211)로 하여금 편집 컨트롤(605)에 데이터를 입력하도록 데이터 입력 패널(501)을 디스플레이하게 한다. 후술하는 바와 같이, 공유 그래픽 사용자 인터페이스의 특성은 사용자 인터페이스를 제어하는 개체에 의해 제공되는 데이터에 의존하여 변할 수 있다.
본 발명의 일부 실시예에서, 사용자 인터페이스 판정 모듈(205)은 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스(211)로 하여금 사용자가 편집 컨트롤 내에 삽입 위치를 위치시킬 때마다 데이터 입력 패널(501)을 디스플레이하게 할 수 있다. 그러나, 본 발명의 다른 실시예에서는, 사용자 인터페이스 판정 모듈(205)은 사용자 인터페이스 애플리케이션 프로그램이 인터페이스(211)로 하여금 스타일러스를 사용하여 사용자가 컨트롤 내에 삽입 위치를 배열하는 것에만 응답하여 데이터 입력 패널(501)을 디스플레이하게 할 수 있다. 삽입점(615)가 스타일러스 포인팅 장치로 위치될 때만 데이터 입력 패널(501)을 제공함으로써, 사용자 인터페이스 판정 모듈(205)은 사용자가 키보드 또는 마우스와 같은 서로 다른 데이터 입력 툴을 사용할 때 데이터 입력 패널(501)가 디스플레이되는 것을 방지한다. 따라서, 데이터 입력 패널(501)은 실제 데이터를 컨트롤에 입력할 필요가 있는 경우에만 디스플레이될 것이다.
삽입 위치 추적 모듈(203)은 편집 컨트롤(605)이 입력 포커스를 받고 있다고 판정할 때, 사용자 인터페이스 판정 모듈(205)은 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스(211)로 하여금 편집 컨트롤(605)에 대한 특정 위치에서 데이터 입력 패널(501)을 디스플레이하게 할 수 있다. 예를 들어, 사용자 인터페이스 판정 모듈(205)은 데이터 입력 패널(501)의 가장 가까운 수평 경계 가장자리와 편집 컨트롤(605)의 가장 가까운 수평 경계 가장자리 간의 수직 오프셋을 규정할 수 있다. 유사하게, 사용자 인터페이스 판정 모듈(205)은 데이터 입력 패널(501)의 가장 가까운 수직 경계 가장자리와 편집 컨트롤(605)의 가장 가까운 수직 경계 가장자리 간의 수평 오프셋을 규정할 수 있다. 본 발명의 일부 실시예에서, 사용자 인터페이스 판정 모듈(205)은 데이터 입력 패널(501)의 높이와 폭을 규정하여 관련 편집 컨트롤에 가깝게 유지하면서 소정의 작업 공간 내로 적합하게 할 수 있다.
상술한 실시예에서, 작업 공간 경계(601)에서 이용가능한 공간이 있으면, 사용자 인터페이스 판정 모듈(205)은 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스(211)로 하여금 데이터 입력 패널(501)을 편집 컨트롤(605)의 경계 아래 및 우측으로 이동하여 디스플레이하게 한다. 예를 들어, 사용자 인터페이스 판정 모듈(205)은 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스(211)로 하여금 데이터 입력 패널(501)의 상부 경계를 편집 컨트롤(605)의 하부 경계의 0.25 인치에 등가인 픽셀 아래에 배열하게 할 수 있다. 유사하게, 사용자 인터페이스 판정 모듈(205)은 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스(211)로 하여금 데이터 입력 패널(501)의 좌측 수직 경계를 편집 컨트롤(605)의 좌측 수직 경계의 1/16 인치에 등가인 픽셀의 우측으로 배열하게 할 수 있다.
이 위치 정렬은 애플리케이션이 다양한 편집 컨트롤의 폼을 디스플레이할 때 특히 편리하다. 데이터 입력 패널(501)을 편집 컨트롤(603)의 아래 그리고 약간 우측으로 이동하여 배열함으로써, 데이터 입력 패널(501)은 편집 컨트롤(605)에 가깝게 유지되지만, 편집 컨트롤(605)에 입력되는 텍스트의 사용자 관측을 방해하지 않는다. 이러한 배열은 또한 사용자가 편집 컨트롤(605)의 적어도 일부분을 편집 컨트롤(605)의 바로 아래에 배열할 수 있게 하여, 사용자는 편집 컨트롤(605)에 데이터를 입력하는 것도 잊지 않는다. 또한, 편집 컨트롤(605)은 부분적으로 볼 수 있어서, 사용자는 스타일러스를 사용하여 입력 포커스를 편집 컨트롤(605)에 이동함으로써 컨트롤을 타겟할 수 있다. 더욱이, 편집 컨트롤(605)과 관련된 타이틀(609)이 좌측 정렬하면, 데이터 입력 패널(501)의 우측 이동된 위치는 또한 사용자가 타이틀(609)의 적어도 첫 글자를 볼 수 있게 하며, 따라서, 사용자가 어떤 데이터가 편집 컨트롤(605)에 입력되어야 하는 지를 기억하는 것을 도울 수 있다.
데이터 입력 패널(501)이 디스플레이되면, 사용자는 데이터 입력 패널(501)의 기입 표면을 사용하여 편집 컨트롤(605)에 텍스트를 입력할 수 있다. 예를 들어, 도 6c에 도시된 바와 같이, 사용자는 기입 표면 상에 전자 잉크(617)로서 이름 "John Doe"를 수기할 수 있다. 소정의 시간 후에, 또는 사용자가 전송 버튼(507)을 활성화시키면, 데이터 입력 패널(501)은 잉크(617)로부터 텍스트를 인식한다. 그 후, 도 6d에 도시된 바와 같이, 데이터 입력 패널(501)은 인식된 텍스트(619)를 편집 컨트롤(605)에 삽입한다.
본 발명의 여러 실시예에 따라, 사용자 인터페이스 판정 모듈(205)은 데이터 입력 패널(501)의 기준 위치가 사용될 수 없는 상황에 대하여 관련 편집 컨트롤을 방해하지 않으면서 보상을 할 수 있다. 예를 들어, 도 7에 도시된 바와 같이, 데이터 입력 패널(501)은 편집 컨트롤(607)에 텍스트를 삽입하는 데 사용된다. 편집 컨트롤(607)은 작업 공간의 경계(601) 바로 상부에 있기 때문에, 데이터 입력 패널(501)은 편집 컨트롤(607) 하부에 삽입될 수 없다. 이러한 상황에서, 사용자 인터페이스 판정 모듈(205)은 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스(211)로 하여금 데이터 입력 패널(501)이 편집 컨트롤(607)의 상부 및 우측으로 이동한 위치에 있게 하도록 할 수 있다. 특히, 사용자 인터페이스 판정 모듈(205)은 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스(211)에 음의 수직 오프셋을 제공함으로써, 데이터 입력 패널(501)을 편집 컨트롤(607) 상부에 배열할 수 있다.
유사하게, 편집 컨트롤의 우측으로 이동한 데이터 입력 패널(501)을 디스플레이할 충분한 공간이 없는 경우에는, 사용자 인터페이스 판정 모듈(205)은 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스(211)로 하여금 데이터 입력 패널이 편집 컨트롤의 좌측으로 약간 이동하도록 할 수 있다. 예를 들어, 도 8에 도시된 바와 같이, 편집 컨트롤(605)은 작업 공간 경계(601)의 수직 부위에 너무 가까워서 편집 컨트롤(605) 우측으로 이동된 데이터 입력 패널(501)을 디스플레이할 수 없다. 그 대신, 사용자 인터페이스 판정 모듈(205)은 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스(211)로 하여금 데이터 입력 패널(501)을 편집 컨트롤(605)의 좌측으로 이동하도록 배열하게 한다. 즉, 사용자 인터페이스 판정 모듈(205)은 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스(211)에 음의 수평 오프셋 값을 제공한다. 따라서, 사용자 입력 패널(501)은 하부의 편집 컨트롤(605)을 완전히 보이지 않게 하지는 않는다. 또한, 애플리케이션이 사용자 인터페이스의 우측을 따라 편집 컨트롤을 포함하는 경우에는, 이 편집 컨트롤의 우측 정렬된 제목은 본 발명의 실시예들에 따른 데이터 입력 패널(501)을 사용하는 사용자에게는 여전히 부분적으로 보일 수 있다. 이와 같이, 편집 컨트롤의 아래 및 좌측으로 이동한 데이터 입력 패널(501)을 디스플레이하기에 충분한 공간이 없는 경우에는, 사용자 인터페이스 판정 모듈(205)은 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스(211)이 데이터 입력 패널(501)을 도 9에 도시한 바와 같이 편집 컨트롤의 좌측 상부에 이동되어 디스플레이하게 할 수 있다.
몇몇 경우에는, 사용자는 다중선 편집 컨트롤에 데이터를 입력하기 위해서 데이터 입력 패널(501)을 사용하기를 원할 수 있다. 본 발명의 여러 실시예에 따라서, 데이터 입력 패널(501)은 상술한 바와 같은 단일선(single line) 편집 컨트롤에 대한 배열와 유사한 방식으로 다중선(multi-line) 편집 컨트롤에 대하여 배열될 수 있다. 다중선 편집 컨트롤은 데이터 입력 패널(501)을 다중선 편집 컨트롤 상부 또는 하부에 배열할 수 있게 하기에는 너무 크지만, 사용자 인터페이스 판정모듈(205)은 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스(211)가 데이터 입력 패널(501)을 편집 컨트롤 자체 내부에 배열할 수 있도록 하게 할 수 있다. 예를 들어, 삽입점(615)가 다중선 편집 컨트롤의 상부(또는 작업 공간의 상부)에 배열되면, 사용자 인터페이스 판정 모듈(205)은 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스(211)로 하여금 데이터 입력 패널(501)을 다중선 편집 컨트롤의 최하부에 배열하도록 할 수 있다.
유사하게, 삽입점(615)는 다중선 편집 컨트롤의 하부(또는, 작업 공간의 하부)에 배열되면, 사용자 인터페이스 판정 모듈(205)은 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스(211)로 하여금 데이터 입력 패널(501)을 작업 공간의 최상부 가능 위치 또는 다중선 편집 컨트롤의 최상부에 배열하도록 할 수 있다. 당업자가 이해할 수 있는 바와 같이, 하지만, 사용자의 작업 흐름 또는 데이터 입력을 가리지 않기 위해서 또는 사용자를 혼동시키지 않기 위해서, 사용 중에는 데이터 입력 패널(501)의 이동을 최소한으로 하는 것이 바람직하다. 따라서, 본 발명의 여러 실시예는 데이터 입력 패널(501)을 다중선 편집 컨트롤의 상부에서 다중선 입력 컨트롤의 하부로 또는 그 역으로 삽입점(615)를 재배열하는 경우에만 데이터 입력 패널(501)을 재배열할 수 있다.
사용자 인터페이스의 외관
데이터 입력 그래픽 사용자 인터페이스의 크기와 위치를 규정하는 것에 더하여, 본 발명의 여러 실시예에 따른 사용자 인터페이스 판정 모듈(205)은 데이터 입력 그래픽 사용자 인터페이스의 외관을 더 규정할 수 있다. 따라서, 본 발명의여러 실시예에 따른 사용자 인터페이스 판정 모듈(205)은 디스플레이된 데이터 입력 패널(501)에 포함될 수 있는 특징을 결정할 수 있다.
도 5로 이제 돌아가면, 데이터 입력 패널(501)은 상술한 바와 같이 둘 이상의 서로 다른 데이터 기입 표면을 제공할 수 있다. 데이터 입력 패널(501)은 도면에 도시된 바와 같이 기입 표면을 디스플레이할 때, 기입 표면(505)에 걸쳐서 스타일러스 움직임에 대응하여 전자 잉크를 생성한다. 반면, 데이터 입력 패널(501)이 키보드 표면을 디스플레이하면, 데이터 입력 패널(501)은 소프트 키보드 상의 활성화된 각 키에 대응하여 텍스트의 문자를 생성할 수 있다. 상술한 바와 같이, 사용자는 표면 버튼(517, 519)를 활성화시킴으로써, 이들 표면들 사이에 앞뒤로 토글할 수 있다. 본 발명의 여러 실시예를 사용하면, 그러나, 사용자 인터페이스 판정 모듈(205)은 데이터 입력 패널(501)이 입력 포커스가 컨트롤로 이동될 때 특정 표면을 초기에 디스플레이하는 것을 규정할 수 있다.
예를 들어, 애플리케이션은 패스워드 또는 제품 모델번호와 같은 임의의 숫자 및 문자의 조합을 수신하는 편집 컨트롤을 포함할 수 있다. 이러한 데이터형을 사용하면, 기입 표면(505)은 데이터를 입력하기에 가장 적절한 표면이 아닐 수 있다. 많은 수기 인식기는 랜덤 문자를 인식하는 것에 어려움을 갖는다. 또한, 많은 패스워드 편집 컨트롤은 그들의 데이터를 정확하게 디스플레이하지 않으며, 그 대신, "*"와 같은 단일 문자만을 표시하여 외부인이 사용자의 패스워드를 우연히 볼 수 있는 것을 차단한다. 따라서, 사용자의 수기는 정확하게 인식되지 않는 경우에는, 사용자는 어느 문자 또는 문자들이 부정확하게 인식되는 지를 판단하는 인식 결과조차 볼 수 없다. 본 발명의 여러 실시예에 따르면, 삽입 위치 추적 모듈(203)은 이 컨트롤 유형 내에 삽입 위치가 배열된다고 판정할 때, 사용자 인터페이스 판정 모듈(205)은 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스(211)로 하여금 사용자에게 숫자와 문자의 조합을 입력하기 위한 보다 신뢰할 만한 기술을 제공함에 따라 초기에 키보드 표면을 디스플레이하게 할 수 있다.
기입 표면(505) 또는 키보드 표면의 초기 디스플레이를 규정하는 것에 더하여, 사용자 인터페이스 판정 모듈(205)은 공유 컴포넌트에 의해 디스플레이될 수 있는 임의의 표면의 초기 또는 영구적인 디스플레이를 규정할 수 있다. 예를 들어, 도 10은 아시아어 사용자에 의해 사용하기 위한 데이터 입력 패널(1001)을 도시한다. 단일 영역을 갖는 기입 표면(505) 대신에, 이 데이터 입력 패널(1001)의 기입 표면은 다중 기입 영역(1003)을 동시에 기입하기 때문에, 사용자는 단일 아시아어 문자를 각각의 영역(1003)에 기입할 수 있다. 따라서, 삽입 위치 추적 모듈(203)은 삽입 위치가 아시아어 문자의 형태에서 데이터를 입력받도록 구성된 편집 컨트롤 내에 배열되면, 사용자 인터페이스 판정 모듈(205)은 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스(211)가 아시아어 데이터 입력 패널(1001)을 초기에 디스플레이하도록 규정할 수 있다. 아시아어 기입 표면은 데이터 입력 패널(501)에 포함될 수 있을 뿐만 아니라, 라틴어 기입 표면(505)도 포함될 수 있음이 주목되어야 한다. 따라서, 본 발명의 일부 실시예에 따르면, 사용자는 아시아어 기입 영역(1003), 라틴어 기입 표면(505) 및 키보드 표면 사이에서 토글할 수있다.
물론, 또다른 실시예가 임의의 개수의 서로 다른 특화된 표면을 사용할 수 있다. 예를 들어, 삽입 위치 추적 모듈(203)은 삽입 위치가 범용 자원 로케이터 주소를 입력받도록 구성된 브라우저 내의 편집 컨트롤 내에 위치한다고 탐지하는 경우에는, 사용자 인터페이스 판정 모듈(205)은 "www.", ".com," ".net," ".org" 및 ".gov"등의 문자열에 대한 키를 포함하는 소프트 키보드의 디스플레이를 규정할 수 있다. 유사하게, 사용자 인터페이스 판정 모듈(205)은 예를 들어, 데이터 입력 패널이 패스워드 또는 부품 모델 번호 내의 임의의 문자를 보다 잘 인식하도록 지원하기 위해서 라틴어 사용자에 대한 구획된 기입 표면을 갖는 표면의 디스플레이를 규정할 수 있다. 또한, 본 발명의 여러 실시예에 따른 사용자 인터페이스 판정 모듈(205)은 사용자 인터페이스가 전자 잉크를 텍스트로 전환시키지 않고 전자 잉크를 수집하는 표면을 포함하도록 규정할 수 있다. 이러한 유형의 표면은 예를 들어, 사용자의 원본 서명을 캡쳐할 때 유용할 수 있다.
본 발명의 여러 실시예에 의해 사용되는 데이터 입력 사용자 인터페이스는 임의의 원하는 소스로부터 구현될 수 있음이 주목되어야 한다. 예를 들어, 사용자 인터페이스에 대한 서로 다른 표면이 사용자 인터페이스가 사용자 인터페이스 판정 모듈로부터의 명령에 응답하게 하는 사용자 애플리케이션 프로그래밍 인터페이스에 의해 제공될 수 있다. 다르게는, 사용자 인터페이스 판정 모듈은 하나 이상의 표면을 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스에 제공할 수 있다. 또한, 애플리케이션은 하나 이상의 표면을 사용자 인터페이스 판정 모듈에 제공할수 있으며, 이는 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스를 표면에 제공할 수 있다. 본 발명의 일부 실시예를 사용하면, 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스는 사용자 인터페이스 자체를 예시하는 실행가능 콤포넌트일 수 있다. 또한, 본 발명의 일부 실시예는 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스를 모두 생략할 수 있다. 이들 실시예에 따르면, 사용자 인터페이스 판정 모듈은 데이터 입력 그래픽 사용자 인터페이스 자체가 되게 할 수 있다.
본 발명의 여러 실시예에 따라 인터페이스 표면의 디스플레이를 규정하는 것에 더하여, 삽입 위치 컨트롤 툴(201)은 데이터 입력 사용자 인터페이스를 초기에 또는 영구적으로 임의의 특징을 디스플레이하는 것을 규정할 수 있다. 예를 들어, 데이터 입력 패널(501)은 부가적인 키보드 버튼(511 및 513)을 포함할 수 있다. 부가적인 키보드 버튼(511)이 활성화될 때, 데이터 입력 패널(501)은 도 11에 도시된 바와 같이 "0-9" 숫자 "," 문자, 및 "." 문자를 포함하는 부가적인 키보드(1101)를 디스플레이한다. 유사하게, 부가적인 키보드 버튼(515)이 활성화되면, 데이터 입력 패널(501)은 도 12에 도시한 바와 같이 여러 심볼에 대한 키를 포함하는 부가적인 심볼 키보드(1201)를 디스플레이한다. 본 발명의 여러 실시예에 따라, 삽입 위치 컨트롤 툴(201)은 데이터 입력 패널이 이들 버튼 또는 삽입 위치의 상태에 따라 사용자에 편리한 부가적인 디스플레이를 디스플레이하거나 하지 않을 수 있음을 규정할 수 있다.
또한, 본 발명의 여러 실시예에 따른 삽입 위치 컨트롤 툴(201)은 데이터 입력 사용자 인터페이스 내에 콤포넌트의 배열을 단순히 정의할 수 있다. 예를 들어, 도 13에 도시된 바와 같은 데이터 입력 패널(501)의 특징은 도 5에 도시된 데이터 입력 패널(501)의 그것으로부터 반전된다. 통상, 이 배열은 오른손잡이 또는 왼손잡이 사용자에 따라 배열된다. 또한, 이러한 배열은 사용자 인터페이스 판정 모듈(205)에 의해 규정될 수 있다. 또한, 삽입 위치 컨트롤 툴(201)은 삽입 위치의 탐지된 상태에 따라 의사 사실(factoid) 또는 다른 발견적 학습(heuristics)의 사용을 규정하여 특정 컨트롤에 대한 정확성을 향상시키기 위해 데이터 입력 패널의 수기 인식을 바이어스할 수 있다. 예를 들어, 삽입 위치 추적 모듈(203)이 사용자의 나이를 수신하는 컨트롤 내에 배열되면, 사용자 인터페이스 판정 모듈(205)은 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스(211)로 하여금 데이터 입력 태럴을 문자 보다는 숫자와 같은 입력 전자 잉크를 인식하도록 바이어스시키는 의사 사실을 사용하도록 규정할 수 있다.
본 발명의 일부 실시예에 따르면, 사용자 인터페이스 판정 모듈(205)은 사용자에게 디스플레이하기 위한 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스(211)에 일부 또는 전부의 인터페이스를 제공할 수 있다. 또한, 삽입 위치 컨트롤 툴(201)은 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스(211)에 데이터 입력 사용자 인터페이스에 대한 문자를 제공할 수 있다. 즉, 사용자 인터페이스 판정 모듈(205)은 소정의 값을 사용자 인터페이스 애플리케이션 프로그램이 인터페이스(211)에 제공하며, 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스(211)는 그 후 이들 특성에 기초하여 이전에 저장된 사용자 인터페이스를 갖게한다.
예를 들어, 본 발명의 일부 실시예에 따라, 사용자 인터페이스 판정 모듈(205)은 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스(211)에 높이값, 폭 값, 수평 오프셋값, 및 수직 오프셋 값을 제공할 수 있다. 상술한 바와 같이, 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스(211)는 수평 오프셋 및 수직 오프셋 값을 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스에 제공하여 삽입점을 포함하는 편집 컨트롤에 대하여 데이터 입력 패널의 위치를 정의할 수 있게 한다. 수평 오프셋 값에 대한 기준은, 예를 들어, 1/16 인치에 등가인 픽셀일 수 있는 반면, 수직 오프셋 값에 대한 기준은 0.25 인치에 등가인 픽셀일 수 있다. 높이 값은 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스(211)에 텍스트 패널 사용자 인터페이스의 높이를 제공한다. 본 발명의 여러 실시예에 따라, 높이 속성에 대한 기준은 여러 디스플레이 해상도에 대한 일정 외관 크기를 유지하기 위해서 예를 들어 96 dpi에 대하여 157 픽셀, 120 dpi에 대하여 196.25 픽셀, 133 dpi에 대하여 217.51 픽셀일 수 있다. 유사하게, 폭 값은 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스(211)에 데이터 입력 패널에 대한 폭을 제공한다. 본 발명의 일부 실시예에 따르면, 폭 속성의 기준은, 여러 디스플레이 해상도에 대한 일정 외관의 패널 크기를 유지하기 위해서, 96 dpi디스플레이에 대하여 570 픽셀, 120 dpi 디스플레이에 대하여 712.5 픽셀, 및 133 dpi 디스플레이에 대하여 789.7 픽셀일 수 있다.
사용자 인터페이스 판정 모듈(205)은, 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스(211)에 데이터 입력 패널의 좌측 가장자리의 수평 위치를 제공하는 좌측값 및 사용자 인터페이스 애플리케이션 프로그램이 인터페이스(211)에 데이터 입력 패널의 상부 가장자리의 수직 로케이션을 제공하는 상부 값을 더 포함할 수 있다. 사용자 인터페이스 판정 모듈(205)은 또한 가시성 속성을 포함할 수 있으며, 이는 입력 패널의 가시성 상태를 설정 또는 검색한다. 따라서, 삽입 위치 추적 모듈(203)은 삽입점 상태가 애플리케이션이 입력 데이터를 입력받지 않는다고 판정하면 (예를 들어, 삽입점은 이전에 고정된 메뉴 리스트에 배열됨), 사용자 인터페이스 판정 모듈(205)은 가시성 값을 변경하여 사용자 인터페이스 애플리케이션 프로그램이 인터페이스가 입력 패널에 감추어 지게 할 수 있다.
상술한 속성에 더하여, 본 발명의 여러 실시예에 따른 삽입 위치 컨트롤 툴(201)은 삽입 위치의 상태에 기초한 데이터 입력 그래픽 사용자 인터페이스의 특성을 설정하기 위해 임의의 원하는 속성을 규정할 수 있다. 예를 들어, 삽입 위치 추적 모듈(203)은 특정 인식 사전, 입력 수기의 인식을 바이어싱하기 위한 의사사실 발견적 방법, 일반적으로 또는 특정 컨트롤에 삽입되는 텍스트 인식용의 특정 인식 엔진 또는 사용자 인터페이스가 사용자의 새로운 수기에 대한 입력을 멈추지 않고 입력 수기의 백그라운드 인식을 수행하기 위한 명령의 사용과 같이, 사용자 인터페이스에 대한 하나 이상의 인식 문구 특성의 사용을 규정될 수 있다. 또한, 삽입 위치 추적 모듈(203)은 사용자 인터페이스가 인식된 텍스트, 특정 전자 잉크 두께 또는 색채를 리턴하기 위해 할당된 인식 타임아웃을 사용하게 하고, 및 키보드 표면 상의 원하는 키를 강조하는 사용자 인터페이스에 대한 속성을 규정할 수있다. 삽입 위치 컨트롤 툴(201)에 의해 규정된 속성 또는 메소드는 입력 패널이 컨트롤에 직접 잉크를 삽입하게 하고, 컨트롤에 이미 삽입된 잉크를 액세스하게 할 수 있다. 삽입 위치 컨트롤 툴(201)은 또한 데이터 입력 패널이 기입 표면 상에 다중 선을 디스플레이하게 하거나 사용자가 데이터 입력 패널을 자발적으로 선택하는 지를 결정하게 할 수 있다.
또한, 상술한 속성에 더하여, 본 발명의 여러 실시예에 따른 삽입 위치 컨트롤 툴(201)은 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스(211)로 하여금 여러 동작을 수행하게 할 수 있다. 예를 들어, 삽입 위치 컨트롤 툴(201)은 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스(211)로 하여금 수기 인식을 즉시 수행한 후 삽입 위치를 포함하는 편집 컨트롤에 인식을 전송하게 할 수 있다. 삽입 위치 컨트롤 툴(201)은 예를 들어, 삽입 위치 추적 모듈(203)이 기존 컨트롤 밖으로 이동했다고 탐지할 때, 또는 삽입 위치 추적 모듈(203)이 애플리케이션이 셧다운된다고 탐지할 때 이 동작을 사용할 수 있다.
또한, 삽입 위치 컨트롤 툴(201)이 마이크로소프트 WINDOWS브랜드 XP 태블릿 PC 버전 운영 체계와 같이 텍스트 서비스 프레임워크를 제공하는 운영 체계를 사용하면, 삽입 위치 컨트롤 툴(201)은 삽입 위치가 리치 편집 컨트롤 또는 잉크 편집 컨트롤(즉, 텍스트 서비스를 지원하는 편집 컨트롤을 사용) 내에 배열된다고 판정될 때 텍스트 서비스 프레임워크를 가능하게 할 수 있다. 당업자에게 공지된 바와 같이, 텍스트 서비스 프레임워크는 여러 메타데이터를 텍스트와 연관시킨다. 예를 들어, 텍스트가 수기 또는 스피치로부터 인식되면, 텍스트는 다른 인식 선택을 가질 수 있다. 애플리케이션이 텍스트 서비스 프레임워크를 지원하면, 애플리케이션이 텍스트를 입력받을 때, 또한, 텍스트에 관련된 임의의 메타데이터를 수신 및 유지할 수 있다. 따라서, 삽입 위치 제어 툴(201)은 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스(211)로 하여금 이용가능한 텍스트 서비스 프레임워크(마이크로소프트 WINDOWS브랜드 XP 태브릿 PC 버전 운영 체계에서 사용되는 공통 텍스트 프레임워크 등)를 첨부된 컨트롤에 개시하게 할 수 있다.
정정 기능을 제공할 뿐만 아니라, 텍스트 서비스 프레임워크는 또한 인식된 입력 데이터가 그 목적이 편집 컨트롤에 정확하게 매치되도록 하는데 사용될 수 있다. 특히, 리치 편집 컨트롤 또는 잉크 편집 컨트롤이 공통 텍스트 프레임워크를 불러 들일 때, 공통 텍스트 프레임워크는 인식된 텍스트를 컨트롤에 관련시키는 추후 인식되는 텍스틀에 대한 메타데이터를 생성한다. 따라서, 입력 포커스가 컨트롤로부터 이동된 후에도, 공통 텍스트 프레임워크는 인식된 텍스트를 컨트롤와 매치하여 인식된 텍스트가 컨트롤에 삽입되도록 할 수 있다. 그러나, 공통 텍스트 프레임워크를 사용하면, 삽입 위치 컨트롤 툴(201)은 리치 편집 컨트롤으로 하여금 공통 텍스트 프레임워크에 대한 OLE 인터페이스를 요청하게 하는 메시지를 리치 편집 컨트롤이 확실하게 제공(즉, 리치 편집 컨트롤은 COM 인터페이스에 대한 포인터가 COM 특성을 액세스할 수 있도록 요청하여야 함)하도록 하는데 필요할 수 있다.
데이터 사용자 인터페이스의 호출
데이터 입력 사용자 인터페이스와 같은 사용자 인터페이스의 외관 또는 다른속성을 결정하는 것에 더하여, 삽입 위치 특성 또는 다른 이벤트 정보가 어떻게 사용자 인터페이스가 호출되는 지를 제어하도록 사용될 수 있다. 예를 들어, 본 발명의 일부 실시예에 따르면, 삽입 위치 추적 모듈(203)은 디지타이저(166)의 표면에 대하여 스타일러스(165)의 위치에 관련되는 이벤트 메시지를 모니터할 수 있다. 이러한 정보에 기초하여, 툴(201)은 스타일러스 또는 펜이 삽입 위치를 포함하는 컨트롤에 관련되는 경계 영역의 위에 있는 지를 판정할 수 있다. 이에 응답하여, 사용자 인터페이스 판정 모듈(205)은 사용자 인터페이스 애플리케이션 프로그램이 인터페이스(211)로 하여금 펜이 경계 영역의 내부 또는 외부 상부에 있는 지에 따라 자동적으로 데이터 입력 사용자 인터페이스를 디스플레이하거나 감출 수 있게 할 수 있다. 이 경계 영역은 컨트롤의 정확한 경계에 인접할 수 있으며, 또는 펜이 가시성 컨트롤 경계에 인접하게 할 필요가 있도록 보다 넓은 영역을 커버할 수 있다.
또한, 펜이 삽입 위치를 포함하는 컨트롤의 영역으로 이동함에 따라, 사용자 인터페이스 판정 모듈(205)은 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스(211)로 하여금 조금의 지연 후에 또는 즉시 데이터 입력 사용자 인터페이스를 디스플레이하게 할 수 있다. 지연은 사용자가 다른 인접 컨트롤을 타겟할 때 삽입 위치를 포함하는 컨트롤에 대하여 또는 컨트롤에 걸쳐서 펜을 드래그 할 수 있게 하므로, 삽입 위치를 갖는 컨트롤 내부에 또는 상부에 펜을 일시적으로 유지함으로써 사용자가 데이터 입력 사용자 인터페이스를 액세스하고자 하는 것을 명시적으로 표시될 때 데이터 입력 사용자 인터페이스는 디스플레이된다. 본 발명의 다른 실시예에 다라, 사용자 인터페이스 판정 모듈(205)은 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스(211)로 하여금 데이터 입력 사용자 인터페이스가 전체 스크린 범위에 펜이 있는 경우에만 보이도록, 전체 디스플레이 영역의 범위에 펜이 있는 때에만 데이터 입력 사용자 인터페이스를 디스플레이하게 할 수 있다.
본 발명의 또다른 실시예에 따라, 사용자 인터페이스 판정 모듈(205)은 삽입 위치가 특정 유형의 컨트롤에 위치하거나 삽입 위치가 특정 유형일 때 데이터 입력 사용자 인터페이스 디스플레이 타겟을 생성할 수 있다. 예를 들어, 삽입 위치가 삽입점이면, 사용자는 삽입점을 추가할 삽입점 후에 아마도 위치시킬 것이다. 따라서, 사용자 인터페이스 판정 모듈(205)은 사용자가 새로운 텍스트를 삽입하는 데이터 입력 패널에 대한 액세스를 원한다고 가정하면, 사용자에게 데이터 입력 패널을 즉시 제공할 수 있다. 그러나, 삽입 위치가 기존 텍스트의 선택이면, 사용자는 단순히 텍스트를 삭제 또는 복사하거나 선택된 텍스트를 이전에 복사된 다른 텍스트로 대체하기를 원할 수 있다. 따라서, 사용자 인터페이스 판정 모듈(205)은 사용자에게 데이터 입력 패널을 즉시 제공하지 않을 수 있으며, 그 대신, 사용자에게 추후 데이터 입력 패널을 액세스하기 위한 타겟을 제공할 수 있다. 따라서, 데이터 입력 패널의 즉각적인 디스플레이는 사용자가 선택된 텍스트를 삭제, 복사 및 이전에 복사된 텍스트로 바꾸기 만을 원하는 경우에는 사용자의 작업 흐름을 방해하지 않을 것이다.
또한, 사용자 인터페이스 판정 모듈(205)은 펜 또는 스타일러스(또는 다른 적절한 포인팅 장치)의 로케이션에 관련하는 이벤트 메시지를 모니터하여 펜 또는 스타일러스(또는 다른 포인팅 장치)가 움직였는지, 또는 일부 실시예에서는, 데이터 입력 사용자 인터페이스 및 디스플레이 타겟과 가까운 지를 판정한다. 이에 응답하여, 사용자 인터페이스 판정 모듈(205)은 사용자 인터페이스 애플리케이션 프로그래밍 인터페이스(211)으로 하여금 펜(또는 다른 포인팅 장치)이 타겟 또는 데이터 입력 사용자 이너페이스 상부(또는 인접하여) 배열되는 동안에만 데이터 입력 사용자 인터페이스를 디스플레이하게 할 수 있다. 본 발명의 일부 실시예에 따라, 예를 들면, 데이터 입력 사용자 인터페이스 디스플레이 타겟은 사각원, 원형 또는 임의의 다른 기하학적 형성의 형태를 취할 수 있으며, 삽입점을 포함하는 컨트롤을 겹치게 하거나/하고 상하좌우에 위치할 수 있다. 또한, 타겟은 즉시 또는 지연 후에 디스플레이될 수 있으며, 데이터 입력 사용자 인터페이스는 즉시 또는 지연 후에 디스플레이될 수 있다.
결론
본 발명은 이를 실행하는 일부 특정 모드를 포함하는 특정 예에 대하여 설명되었지만, 당업자는 상술한 시스템 및 기술의 수많은 변형 및 변경이 있음을 인식할 것이다. 따라서, 본 발명의 정신 및 범위는 첨부되는 청구항에 기술된 것과 같이 폭넓게 해석되어야 한다.
상술한 본 발명에 따르면, 사용자 인터페이스는 그 로케이션에서 입력되는 데이터를 가리지 않으면서, 삽입 위치에 인접하게 배열될 수 있다. 삽입 위치 상태의 변경이 편집 컨트롤이 입력 포커스를 상실하면, 이 표시는 그 편집 컨트롤에 관련된 데이터 입력 사용자 인터페이스에 자동적으로 근접하게 하는 데 사용될 수있다.

Claims (30)

  1. 데이터 입력 사용자 인터페이스(data entry user interface)를 제어하는 방법에 있어서,
    상기 데이터 입력 사용자 인터페이스를 제어하기 위해 삽입 위치(insertion location)의 특성을 획득하는 단계; 및
    상기 획득된 삽입 위치의 특성에 기초하여 상기 데이터 입력 사용자 인터페이스를 제어하는 단계를 포함하는 방법.
  2. 제1항에 있어서,
    상기 획득된 삽입 위치의 특성으로부터 상기 삽입 위치가 문자의 랜덤 배열(random arrangement of characters)을 수신하기 위한 편집 컨트롤(edit control) 내에 위치한다고 판정하는 단계; 및
    상기 데이터 입력 사용자 인터페이스에 문자의 랜덤 배열을 입력하기 위한 키보드 표면(keyboard surface)을 제공하는 단계를 더 포함하는 방법.
  3. 제1항에 있어서,
    상기 획득된 삽입 위치의 특성으로부터 상기 삽입 위치가 언어 유형에 관련된다고 판정하는 단계; 및
    상기 데이터 입력 사용자 인터페이스에 상기 언어 유형으로 기입된 전자 잉크(electronic ink)를 수신하기 위한 기입 표면(writing surface)을 제공하는 단계를 더 포함하는 방법.
  4. 제1항에 있어서,
    상기 삽입 위치의 특성을 각각 포함하는 복수개의 삽입 위치 메시지를 수신하는 단계; 및
    상기 복수개의 삽입 위치 메시지 중의 적어도 하나의 메시지로부터 제어용 특성을 획득하는 단계를 더 포함하는 방법.
  5. 제4항에 있어서,
    상기 수신된 복수개의 삽입 위치 메시지 각각을 저장하는 단계; 및
    상기 복수개의 저장된 삽입 위치 메시지들로부터 하나의 삽입 위치 메시지를 주기적으로 샘플링하는 단계를 더 포함하는 방법.
  6. 제5항에 있어서,
    제1 프로그래밍 스레드를 사용하여 상기 수신된 복수개의 삽입 위치 메시지 각각을 저장하는 단계; 및
    제2 프로그래밍 스레드를 사용하여 상기 복수개의 저장된 삽입 위치 메시지로부터 하나의 삽입 위치 메시지를 주기적으로 샘플링하는 단계를 더 포함하는 방법.
  7. 제6항에 있어서,
    소프트웨어 시스템 프로세스에 의해 호스팅되는 소프트웨어 애플리케이션 프로세스에 데이터를 삽입하기 위해 상기 데이터 입력 사용자 인터페이스를 디스플레이하는 단계; 및
    상기 소프트웨어 애플리케이션 프로세스에 의해 유지되는 스레드를 상기 제1 스레드로서 이용하는 단계를 더 포함하는 방법.
  8. 제6항에 있어서,
    소프트웨어 시스템 프로세스에 의해 호스팅되는 소프트웨어 애플리케이션 프로세스에 데이터를 삽입하기 위해 상기 데이터 입력 사용자 인터페이스를 디스플레이하는 단계; 및
    상기 소프트웨어 애플리케이션 프로세스에 의해 유지되는 스레드를 상기 제2 스레드로서 이용하는 단계를 더 포함하는 방법.
  9. 제6항에 있어서,
    소프트웨어 시스템 프로세스에 의해 호스팅되는 소프트웨어 애플리케이션 프로세스에 데이터를 삽입하기 위해 상기 데이터 입력 사용자 인터페이스를 디스플레이하는 단계; 및
    상기 소프트웨어 시스템 프로세스에 의해 유지되는 스레드를 상기 제1 스레드로서 이용하는 단계를 더 포함하는 방법.
  10. 제6항에 있어서,
    소프트웨어 시스템 프로세스에 의해 호스팅되는 소프트웨어 애플리케이션 프로세스에 데이터를 삽입하기 위해 상기 데이터 입력 사용자 인터페이스를 디스플레이하는 단계; 및
    상기 소프트웨어 시스템 프로세스에 의해 유지되는 스레드를 상기 제2 스레드로서 이용하는 단계를 더 포함하는 방법.
  11. 제4항에 있어서,
    상기 수신한 복수개의 삽입 위치 메시지 각각에 포함되는 상기 삽입 위치의 특성을 모니터하는 단계; 및
    상기 수신한 복수개의 삽입 위치 특성에 포함되는 상기 삽입 위치의 특성 변경에 기초하여 상기 데이터 입력 사용자 인터페이스를 제어하는 단계를 더 포함하는 방법.
  12. 제4항에 있어서,
    상기 수신한 복수개의 삽입 위치 메시지 각각에 포함되는 상기 삽입 위치의 특성을 모니터하는 단계;
    상기 삽입 위치 메시지가 발부되는 순서에 기초하여 상기 삽입 위치의 현재특성을 결정하는 단계; 및
    상기 결정된 삽입 위치의 현재 특성에 기초하여 상기 데이터 입력 사용자 인터페이스를 제어하는 단계를 더 포함하는 방법.
  13. 제1항에 있어서,
    소프트웨어 시스템 프로세스에 의해 호스팅되는 소프트웨어 애플리케이션 프로세스에 데이터를 삽입하기 위해 상기 데이터 입력 사용자 인터페이스를 디스플레이하는 단계를 더 포함하고, 상기 삽입 위치의 특성은 상기 소프트웨어 애플리케이션 프로세스에 의해 제공되는 방법.
  14. 제1항에 있어서,
    소프트웨어 시스템 프로세스에 의해 호스팅되는 소프트웨어 애플리케이션 프로세스에 데이터를 삽입하기 위해 상기 데이터 입력 사용자 인터페이스를 디스플레이하는 단계를 더 포함하고, 상기 삽입 위치의 특성은 상기 소프트웨어 시스템 프로세스에 의해 제공되는 방법.
  15. 제1항에 있어서,
    소프트웨어 시스템 프로세스에 의해 호스팅되는 소프트웨어 애플리케이션 프로세스에 데이터를 삽입하기 위해 상기 데이터 입력 사용자 인터페이스를 디스플레이하는 단계;
    상기 소프트웨어 애플리케이션 프로세스의 데이터 입력 포커스 상태(data input focus state)에 관련된 포커스 메시지(focus message)를 수신하는 단계; 및
    상기 수신된 포커스 메시지에 기초하여 상기 데이터 입력 사용자 인터페이스의 동작을 더 제어하는 단계를 더 포함하는 방법.
  16. 제1항에 있어서,
    소프트웨어 시스템 프로세스에 의해 호스팅되는 소프트웨어 애플리케이션 프로세스에 데이터를 삽입하기 위해 상기 데이터 입력 사용자 인터페이스를 디스플레이하는 단계;
    상기 소프트웨어 애플리케이션 프로세스에 의해 제공되는 애플리케이션 사용자 인터페이스의 애플리케이션 사용자 인터페이스 상태에 관련된 애플리케이션 사용자 인터페이스 메시지를 수신하는 단계; 및
    상기 수신된 애플리케이션 사용자 인터페이스 메시지에 기초하여 상기 데이터 입력 사용자 인터페이스의 동작을 더 제어하는 단계를 더 포함하는 방법.
  17. 제1항에 있어서,
    상기 삽입 위치의 특성은 상기 삽입 위치에 대한 위치 정보를 포함하는 방법.
  18. 제1항에 있어서,
    소프트웨어 시스템 프로세스에 의해 호스팅되는 소프트웨어 애플리케이션 프로세스에 데이터를 삽입하기 위해 상기 데이터 입력 사용자 인터페이스를 디스플레이하는 단계를 더 포함하고, 상기 삽입 위치의 특성은 상기 삽입 위치가 위치한 애플리케이션 사용자 인터페이스 정보를 식별하는 애플리케이션 사용자 인터페이스 정보를 포함하는 방법.
  19. 제1항에 있어서,
    언어 유형이 영숫자(alphnumeric)인 방법.
  20. 제1항에 있어서,
    언어 유형이 그림 문자(pictographic)인 방법.
  21. 제1항에 있어서,
    상기 획득된 삽입 위치의 특성으로부터 상기 삽입 위치가 작업 공간의 경계에 인접한다고 판정하는 단계; 및
    상기 데이터 입력 사용자 인터페이스가 상기 작업 공간의 경계 내에 남아 있도록 하는 위치에 상기 데이터 입력 사용자 인터페이스를 있게 하는 단계를 더 포함하는 방법.
  22. 제1항에 있어서,
    상기 획득된 삽입 위치의 특성으로부터 상기 삽입 위치가 작업 공간의 경계에 인접하다고 판정하는 단계; 및
    상기 데이터 입력 사용자 인터페이스가 상기 작업 공간의 상기 경계 내부에 남아 있도록 하는 크기를 갖게 하는 단계를 포함하는 방법.
  23. 제1항에 있어서,
    상기 획득된 삽입 위치의 특성으로부터 상기 삽입 위치가 인터넷 범용 자원 주소 위치를 수신하기 위한 편집 컨트롤 내에 있다고 판정하는 단계; 및
    상기 데이터 입력 사용자 인터페이스에 "www", "org", "com", "net" 및 "gov"를 포함하는 그룹에서의 문자열 중의 하나 이상에 대한 전용 키를 갖는 키보드 표면을 제공하는 단계를 더 포함하는 방법.
  24. 제1항에 있어서,
    상기 획득된 삽입 위치의 특성으로부터 상기 삽입 위치가 수치 데이터를 수신하기 위한 편집 컨트롤 내에 있다고 판정하는 단계; 및
    상기 데이터 입력 사용자 인터페이스에 숫자 키를 갖는 키보드 표면을 제공하는 단계를 더 포함하는 방법.
  25. 제1항에 있어서,
    상기 획득된 삽입 위치의 특성으로부터 상기 삽입 위치가 수치 데이터를 수신하기 위한 편집 컨트롤 내에 있다고 판정하는 단계; 및
    활성화되면 숫자 키를 갖는 키보드 표면을 제공하는 버튼을 상기 데이터 입력 사용자 인터페이스에 제공하는 단계를 더 포함하는 방법.
  26. 데이터 입력 사용자 인터페이스를 제어하는 방법에 있어서,
    삽입 위치의 상태를 판정하는 단계; 및
    상기 결정된 삽입 위치의 상태에 기초하여 데이터 입력 사용자 인터페이스를 호출하는 호출 인터페이스를 제공하는 단계를 포함하는 방법.
  27. 제26항에 있어서,
    타겟 호출 인터페이스(tarket invocation interface)를 제공하는 단계를 더 포함하고, 데이터 입력 사용자 인터페이스가 상기 타겟 호출 인터페이스를 통과하는 포인팅 장치에 응답하여 호출되는 방법.
  28. 제26항에 있어서,
    타겟 호출 인터페이스를 제공하는 단계를 더 포함하고, 데이터 입력 사용자 인터페이스가 상기 타겟 호출 인터페이스에 인접하여 통과하는 포인팅 장치에 응답하여 호출되는 방법.
  29. 제26항에 있어서,
    삽입 위치의 탐지된 위치에 응답하여 타겟 호출 인터페이스를 제공하는 단계를 더 포함하는 방법.
  30. 제26항에 있어서,
    원하는 컨트롤 내의 삽입 위치의 탐지에 응답하여 타겟 호출 인터페이스를 제공하는 단계를 더 포함하는 방법.
KR1020040004637A 2003-01-31 2004-01-26 데이터 입력 사용자 인터페이스를 제어하는 방법 KR100975505B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US45370103P 2003-01-31 2003-01-31
US60/453,701 2003-01-31
US10/431,049 2003-05-06
US10/431,049 US20040225965A1 (en) 2003-05-06 2003-05-06 Insertion location tracking for controlling a user interface

Publications (2)

Publication Number Publication Date
KR20040070001A true KR20040070001A (ko) 2004-08-06
KR100975505B1 KR100975505B1 (ko) 2010-08-11

Family

ID=32738231

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040004637A KR100975505B1 (ko) 2003-01-31 2004-01-26 데이터 입력 사용자 인터페이스를 제어하는 방법

Country Status (4)

Country Link
EP (1) EP1450244A3 (ko)
JP (2) JP4491249B2 (ko)
KR (1) KR100975505B1 (ko)
CN (1) CN100378659C (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5229871B2 (ja) 2008-01-10 2013-07-03 インターナショナル・ビジネス・マシーンズ・コーポレーション 使用者によるデータの入力を支援する技術
CN101751278B (zh) * 2009-12-17 2012-10-03 中兴通讯股份有限公司 一种数据延迟加载方法及装置
EP2360578B1 (en) * 2010-02-15 2013-04-24 Deutsche Telekom AG A method for detecting user screens in mobile devices working under symbian operating system
US8589950B2 (en) 2011-01-05 2013-11-19 Blackberry Limited Processing user input events in a web browser
CN102681751B (zh) * 2011-03-15 2015-09-23 联想(北京)有限公司 输入控制方法、输入识别方法及设备
US8941675B2 (en) 2011-04-05 2015-01-27 Blackberry Limited Backing store memory management for rendering scrollable webpage subregions

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5361310A (en) * 1990-01-19 1994-11-01 Fujitsu Limited Handwriting entry processing system using keyboard and mouse interfaces requiring no modification of an application program
US5953735A (en) * 1991-03-20 1999-09-14 Forcier; Mitchell D. Script character processing method and system with bit-mapped document editing
JP3190074B2 (ja) * 1991-09-11 2001-07-16 株式会社東芝 手書き入力装置
US6097392A (en) * 1992-09-10 2000-08-01 Microsoft Corporation Method and system of altering an attribute of a graphic object in a pen environment
JP3188039B2 (ja) * 1993-05-11 2001-07-16 三洋電機株式会社 手書き文字記入枠の制御方法
JP2944439B2 (ja) * 1994-12-27 1999-09-06 シャープ株式会社 手書き文字入力装置および方法
JPH09171429A (ja) * 1995-12-20 1997-06-30 Tsubasa Syst Kk データ入力装置
JPH09319503A (ja) * 1996-05-31 1997-12-12 Sanyo Electric Co Ltd 文書処理装置、文書処理方法、記憶媒体
US5914718A (en) * 1996-06-26 1999-06-22 Xerox Corporation Method and apparatus for organizing a work space for a computer controlled display system using borders and regions
JPH1049281A (ja) * 1996-07-29 1998-02-20 Kokusai Electric Co Ltd データ入力装置
US5889888A (en) * 1996-12-05 1999-03-30 3Com Corporation Method and apparatus for immediate response handwriting recognition system that handles multiple character sets
JP2000043484A (ja) * 1998-07-30 2000-02-15 Ricoh Co Ltd 電子黒板システム
JP2000148334A (ja) * 1998-11-10 2000-05-26 Canon Inc 文字処理装置及びその方法、及びそのプログラムを記憶した記憶媒体
US6411283B1 (en) * 1999-05-20 2002-06-25 Micron Technology, Inc. Computer touch screen adapted to facilitate selection of features at edge of screen
JP2003501718A (ja) * 1999-05-27 2003-01-14 ヴラジミロヴィッチ アファナシーフ,アレクセイ コンピュータ装置に情報を入力する方法、ステッカー・キーボード及びこの方法を用いた装置
FI19992504A (fi) * 1999-11-24 2001-05-25 Nokia Mobile Phones Ltd Käsialan tunnistus matkaviestimessä
US7259753B2 (en) * 2000-06-21 2007-08-21 Microsoft Corporation Classifying, anchoring, and transforming ink
US7032180B2 (en) * 2000-08-14 2006-04-18 Twin Communications Of America, Inc. User interface rendering component environment
US6941507B2 (en) * 2000-11-10 2005-09-06 Microsoft Corporation Insertion point bungee space tool
JP2002230466A (ja) * 2000-11-30 2002-08-16 Nippon Ics Kk 会計処理装置及び会計処理プログラムを記録した記録媒体
US20020063691A1 (en) * 2000-11-30 2002-05-30 Rich Rogers LCD and active web icon download
KR100433889B1 (ko) * 2001-04-24 2004-06-04 삼성전자주식회사 키패드를 이용한 인터넷주소 입력방법
US7490296B2 (en) * 2003-01-31 2009-02-10 Microsoft Corporation Utility object for specialized data entry

Also Published As

Publication number Publication date
JP2009076105A (ja) 2009-04-09
JP2004234651A (ja) 2004-08-19
JP4491249B2 (ja) 2010-06-30
EP1450244A3 (en) 2008-03-26
JP4868469B2 (ja) 2012-02-01
CN1525313A (zh) 2004-09-01
CN100378659C (zh) 2008-04-02
KR100975505B1 (ko) 2010-08-11
EP1450244A2 (en) 2004-08-25

Similar Documents

Publication Publication Date Title
US20040225965A1 (en) Insertion location tracking for controlling a user interface
US7490296B2 (en) Utility object for specialized data entry
US6903730B2 (en) In-air gestures for electromagnetic coordinate digitizers
US5252951A (en) Graphical user interface with gesture recognition in a multiapplication environment
US7966352B2 (en) Context harvesting from selected content
EP0394614B1 (en) Advanced user interface
US6928619B2 (en) Method and apparatus for managing input focus and z-order
CN1864155B (zh) 带自增长的文本输入窗
US7002560B2 (en) Method of combining data entry of handwritten symbols with displayed character data
US7319454B2 (en) Two-button mouse input using a stylus
US7904823B2 (en) Transparent windows methods and apparatus therefor
US20030214531A1 (en) Ink input mechanisms
US20030215142A1 (en) Entry and editing of electronic ink
US7002558B2 (en) Mode hinting and switching
JP4868469B2 (ja) ユーザインタフェースを制御するための挿入位置の追跡
KR100379917B1 (ko) 핫키입력부를 구비한 휴대용 단말기

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130719

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140716

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150730

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee