KR100666450B1 - 그래픽 객체 디스플레이 - Google Patents

그래픽 객체 디스플레이 Download PDF

Info

Publication number
KR100666450B1
KR100666450B1 KR1020027005693A KR20027005693A KR100666450B1 KR 100666450 B1 KR100666450 B1 KR 100666450B1 KR 1020027005693 A KR1020027005693 A KR 1020027005693A KR 20027005693 A KR20027005693 A KR 20027005693A KR 100666450 B1 KR100666450 B1 KR 100666450B1
Authority
KR
South Korea
Prior art keywords
look
delete delete
class
graphical
widget
Prior art date
Application number
KR1020027005693A
Other languages
English (en)
Other versions
KR20020050785A (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 EP99402721A external-priority patent/EP1098246A1/en
Application filed by 까날 + (쏘시에떼 아노님) filed Critical 까날 + (쏘시에떼 아노님)
Publication of KR20020050785A publication Critical patent/KR20020050785A/ko
Application granted granted Critical
Publication of KR100666450B1 publication Critical patent/KR100666450B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Digital Computer Display Output (AREA)
  • Stored Programmes (AREA)
  • Ultra Sonic Daignosis Equipment (AREA)
  • Closed-Circuit Television Systems (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Apparatus For Radiation Diagnosis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Image Generation (AREA)
  • Telephone Function (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

본 발명의 측면은 그래픽 사용자 인터페이스에서 그래픽 객체의 외관을 제어하는 방법에 관한 것이다. 본 발명의 측면의 실시예에 있어서, 그래픽 사용자 인터페이스에서 위젯과 같은 객체는 객체의 동작을 제어하는 특성 및/또는 메소드가 한정되는 위젯 클래스의 인스턴스와, 객체의 룩을 제어하는 특성 및/또는 메소드가 한정되는 룩 객체 클래스의 결합된 인스턴스를 포함한다.
그래픽 객체, 그래픽 사용자 인터페이스

Description

그래픽 객체 디스플레이{DISPLAYING GRAPHICAL OBJECTS}
본 발명은 그래픽 사용자 인터페이스에 관한 것이다. 본 발명의 측면은 그래픽 사용자 인터페이스에서 그래픽 객체의 외관을 제어하는 방법에 관한 것이다. 본 발명의 측면은 리시버/디코더, 텔레비전 시스템, 컴퓨터 프로그램 제품, 컴퓨터 판독 가능 매체 및 신호에 관한 것이다. 본 발명의 측면은 그래픽 사용자 인터페이스를 디지털 텔레비전 신호용 리시버/디코더와 같은 장치에 제공하는 특정 애플리케이션을 갖지만, 그것만으로 한정되는 것은 아니다. 그러나, 본 발명의 측면은 범용 컴퓨터 및 다른 장치를 또한 갖는다.
대부분의 그래픽 사용자 인터페이스(GUI)는 사용자에 의해 조작될 수 있는 유사한 기본 구성요소 세트를 포함한다. 이들은 푸시버튼, 슬라이더, 리스트 박스 등을 포함한다. 이와 같은 구성요소는 일반적으로 "위젯"이라고 말한다. 위젯의 기본 기능은 다수의 GUI사이에 공통적이지만, 위젯의 외관은 각각의 GUI가 서로 다르다.
예를 들면, X 윈도우 시스템과 같은 일부 그래픽 운영 체제는 GUI에서 디스플레이될 수 있는 위젯의 외관에 거의 제약을 주지 않는다. 이것은 프로그래머들이 다수의 상이한 위젯 세트를 사용하는 애플리케이션을 개발할 수 있게 하고, 이들 각각은 자신의 특유한 외관을 갖는다. 더욱이, 대다수의 윈도우 관리자는 애플리케이션에 의해 만들어지는 윈도우의 전체 외관에 영향을 주는 X하에서 구동된다. 통상, 애플리케이션의 발현 동안, 그리고 실행 시간에서 어느 정도까지 GUI에 디스플레이되는 애플리케이션의 외관에 대해 몇몇 제어를 행하는 것이 가능하다. 그러나, 양자의 경우에 있어서 외관은 위젯 세트 또는 윈도우 관리자의 하드 코딩된 부분에 의해 결정된다. 사용자가 위젯 세트, 윈도우 관리자, 또는 양자 모두를 재코딩하지 않고 애플리케이션의 룩(look)을 현저히 변경하는 것은 불가능하다. 이들 옵션 모두는 상당한 재코딩 작업과 호스트 시스템에 설치되어야 하는 상당한 새로운 코드를 요구한다.
룩을 업데이트하기 위해 행해져야 하는 재코딩 작업의 양을 감소하기 위한 하나의 제안은 호스트 시스템의 메모리에 저장되는 픽셀 맵으로부터 윈도우의 요소(예를 들어, 코너, 경계 등)를 GUI 디스플레이에 빌드(build)하는 것이다. 이것은 본 발명의 독립된 측면으로서 제공될 수 있다. 그러나, 픽셀 맵은 사용시에 상당한 양의 메모리를 점유하고, 룩이 업데이트될 때 전송되는 다수의 데이터를 나타낸다. 이것은 GUI가 제한된 자원으로 동작되어야 하고, 제한된 밴드폭의 링크에 대해 업데이트되어야 하면, 상당한 불이점으로 될 수 있다. 이와 같은 상황의 하나의 예는 애플리케이션이 디지털 텔레비전 신호용 리시버/디코더에서 실행될 때 일어난다. 이와 같은 디코더는 범용 컴퓨터에 비해 제한된 양의 메모리를 갖고, (GUI의 룩을 포함하는) 소프트웨어는 수신된 텔레비전 신호의 일부를 형성하는 채널로부터 데이터를 다운로드함으로서 업데이트된다.
본 발명의 목적은 애플리케이션 개발자에게 일관되고 용이하게 제어 가능한 방법으로 애플리케이션의 외관을 제어하는 능력, 필요로 되는 최소한의 재코딩, 및 실행 환경으로 전송하는데 요구되는 최소한의 데이터를 제공하는 것이다.
본 발명의 제 1 측면에 의하면, 그래픽 사용자 인터페이스에서 그래픽 객체의 외관을 제어하는 방법이 제공되고, 상기 방법은
룩 객체를 한정하는 단계; 및
상기 룩 객체를 상기 그래픽 객체와 결합하는 단계를 포함한다.
애플리케이션에서 외관을 제어하는 코드를 삽입하는 것보다는 명시적으로 룩 객체를 한정함으로써, 본 발명은 지금까지의 그래픽 객체가 제어되는 방법에서 보다 큰 범용성을 허용할 수 있다.
바람직하게, 룩 객체는 그래픽 객체가 어떻게 디스플레이되는지를 판단하는 코드 또는 파라미터를 포함하고, 이와 같은 코드 또는 파라미터는 바람직하게는 메모리에 저장된다. 예를 들면, 룩 객체는 객체 지향 프로그램 코드에 의해 한정될 수 있다.
룩 객체는 룩 객체 클래스를 예시함으로써 한정될 수 있다. 이와 같이 한정된 룩 객체는 (그로부터 파생된 것 이외의) 또 다른 룩 객체 클래스에 대한 포인터를 포함할 수 있다. 이것은 룩 객체가 그 다른 룩 객체의 속성 및/또는 메소드(method)에 액세스할 수 있게 할 수 있다. 이와 같이, 룩 객체는 둘 이상의 다른 객체로부터 그 특성을 취할 수 있고, 이는 2개의 상이한 룩의 결합인 룩이 만 들어질 수 있게 하거나, 여분의 특성이 룩에 추가될 수 있게 한다.
그래픽 객체를 룩 객체와 결합하기 위해, 그래픽 객체는 그래픽 객체와 결합된 룩 객체를 식별하는 속성을 포함할 수 있다.
바람직하게, 룩 객체는 특정 명칭의 칼라로 할당되는 실제 칼라를 한정한다. 예를 들면, 룩 객체는 블랙, 화이트, 및 하나 또는 몇개의 음영의 그레이중 적어도 하나에 할당되는 실제 칼라를 한정할 수 있다. 이와 같이, 룩은 어떤 칼라 체계, 예를 들어 그 룩과 결합된 그래픽 객체에 어떤 색조를 제공함으로써 한정할 수 있다. 또한, 룩 객체는 어떠한 특정 칼라를 디스플레이할 때 사용되는 실제 칼라 값을 설정하는 칼라 맵을 한정할 수 있다.
그래픽 객체의 외관을 변경하기 위해, 룩 객체가 (예를 들어, 컴파일 시간에 코드 또는 파라미터를, 또는 실행 시간에 파라미터를 변경함으로써) 재한정 또는 변경될 수 있거나, 상이한 룩 객체가 그래픽 객체와 결합될 수 있다. 따라서, 상기 방법은 룩 객체를 재한정 또는 변경함으로써, 또는 상이한 룩 객체를 그래픽 객체와 결합함으로써 그래픽 객체의 외관을 변경하는 단계를 더 포함할 수 있다.
룩 객체가 재한정 또는 수정되면, 그 룩 객체와 결합된 그래픽 객체의 외관을 업데이트하는 것이 필요할 수 있다. 이것을 달성하기 위해, 룩 객체는 룩 객체가 재한정 또는 변경될 때 업데이트되는 업데이트 카운터 값을 포함할 수 있다.
바람직하게, 그래픽 객체들은 그들이 영향을 주는 룩 객체의 업데이트 카운터의 값을 저장한다. 매번 그래픽 객체가 다시 디스플레이되고, 그래픽 객체에 의해 저장된 값은 룩 객체의 업데이트 카운터의 값과 비교된다. 2개가 상이하면, 그 래픽 객체는 룩 객체에서의 변경을 고려하고, 업데이트 카운터의 새로운 값을 저장한다.
룩 객체는 룩 객체에 의해 호출될 수 있는 메소드를 지시하는 확인 마스크를 포함할 수 있어, 그 룩 객체에 의해 실행되지 않는 메소드는 호출되지 않는다. 그래픽 객체는 그래픽 객체의 묘화를 최적화하기 위해 룩 객체의 확인 마스크에 액세스할 수 있다. 이와 같이, 실행되지 않는 메소드에 대한 호출이 회피될 수 있어, 그래픽 객체의 묘화 속도를 빠르게 할 수 있다.
일부 상황에서는 예를 들어 룩 객체가 우선 생성될 때, 룩 객체는 단일 그래픽 객체와 결합될 수 있다. 그러나, 바람직한 실시예에 있어서는 룩 객체가 복수의 그래픽 객체와 결합된다. 룩 객체를 복수의 그래픽 객체와 결합함으로써, 이들 객체에 대한 균일한 외관이 달성될 수 있고, 룩 객체를 한정하는데 요구되는 데이터 양이 각 그래픽 객체가 독립적으로 한정된 그 외관을 갖는 경우와 비교하여 감소될 수 있다.
따라서, 상기 메소드는 그래픽 사용자 인터페이스에서 복수의 그래픽 객체의 외관을 제어하는 방법일 수 있고, 룩 객체를 복수의 그래픽 객체와 결합하는 단계를 포함할 수 있다.
룩 객체와 결합된 그래픽 객체가 없는 경우와 같은 어떤 상황에서는, 예를 들어 객체에 의해 사용된 메모리 영역이 재할당될 수 있도록, 룩 객체를 삭제하는 것이 바람직할 수 있다. 이것은 메모리가 제한될 수 있는 리시버/디코더와 같은 장치에서 특히 중요할 수 있다. 이를 위해 (다른 것중에서) 룩 객체는 그 룩 객체와 결합되는 그래픽 객체의 개수를 지시하는 카운터를 포함할 수 있다. 바람직하게, 그래픽 객체가 룩 객체와 결합될 때마다, 카운터가 증가되고, 그래픽 객체가 룩 객체와 분리될 때마다, 카운터가 감소된다. 카운터가 0에 있으면, 룩 객체가 안전하게 삭제될 수 있는 것으로 추정될 수 있다.
본 발명의 또 다른 방법 측면에 의하면, 그래픽 사용자 인터페이스에서 그래픽 객체를 한정하는 방법이 제공되고, 이 방법은 (예를 들어, 그래픽 객체의 외관을 제어하는 특성 및/또는 메소드를 한정함으로써)그래픽 객체의 외관을 제어하는 룩 객체를 제공하는 단계, 및 (예를 들어, 그래픽 객체의 동작을 제어하는 특성 및/또는 메소드를 한정함으로써) 그래픽 객체의 동작을 제어하는 위젯 객체를 제공하는 단계를 포함한다. 상기에서 설명된 모든 특징들도 본 측면과 결합되어 제공될 수 있다.
바람직하게, 상기에서 설명된 모든 방법은 그래픽 객체를 예를 들어, 컴퓨터 스크린 또는 텔레비전 스크린과 같은 스크린상에 디스플레이하는 단계를 더 포함할 수 있다.
상기에서 설명된 모든 방법은 디지털 또는 아날로그 텔레비전 리시버/디코더와 같은 리시버/디코더에 의해 실행될 수 있다.
본 명세서에서 사용된 용어 "리시버/디코더"는 코딩된 또는 코딩되지 않은 신호, 예를 들어 텔레비전 및/또는 라디오 신호를 수신하기 위한 리시버를 포함할 수 있다. 또한, 이 용어는 수신된 신호를 디코딩하기 위한 디코더를 포함할 수 있다. 리시버/디코더의 실시예는 예를 들어 "셋탑 박스"에서 수신된 신호를 복호화하 기 위한 수신기와 통합되어 있는 디코더, 물리적으로 별개의 리서버와 조합하여 작동하는 디코더, 웹 브라우저와 같은 추가적 기능을 포함하는 디코더, 또는 비디오 레코더 혹은 텔레비전과 같은 다른 장치들과 통합되어 있는 디코더를 포함할 수도 있다.
본 발명의 장치 측면에 의하면, 그래픽 사용자 인터페이스에서 그래픽 객체의 외관을 제어하는 장치가 제공되고, 이 장치는
예를 들어, 그래픽 객체가 어떻게 디스플레이될지를 판단하여 코드 또는 파라미터를 메모리로 생성 또는 변경함으로써, 룩 객체를 한정하는 수단; 및
예를 들어, 룩 객체를 식별하기 위해 그래픽 객체의 속성을 설정함으로써, 룩 객체를 그래픽 객체와 결합하는 수단을 포함한다.
바람직하게, 상기 장치는 룩 객체를 한정하고, 룩 객체를 그래픽 객체와 결합하기 위한 프로그램된 프로세서, 및 룩 객체와 그래픽 객체를 저장하기 위한 메모리를 포함한다. 룩 객체는 객체 지향 프로그램 코드에 의해 한정될 수 있다. 룩 객체는 룩 객체 클래스를 예시함으로써 한정될 수 있다. 룩 객체는 또 다른 룩 객체 클래스에 대한 포인터를 포함할 수 있다.
상기 장치는 룩 객체를 재한정 또는 변경함으로써, 또는 상이한 룩 객체를 그래픽 객체와 결합함으로써 그래픽 객체의 외관을 변경할 수 있다. 룩 객체는 룩 객체가 재한정 또는 변경될 때 업데이트되는 업데이트 카운터(예를 들어, 메모리에서의 위치) 값을 포함할 수 있다.
룩 객체는 룩 객체에 의해 호출될 수 있는 메소드를 지시하는 (예를 들어, 메모리에 저장된) 확인 마스크를 포함할 수 있다.
상기 장치는 그래픽 사용자 인터페이스에서 복수의 그래픽 객체의 외관을 제어하기 위한 장치일 수 있고, 룩 객체를 복수의 그래픽 객체와 결합할 수 있다. 룩 객체는 그 룩 객체와 결합되는 그래픽 객체의 개수를 나타내는 카운터(예를 들어, 메모리에서의 위치)를 포함할 수 있다.
상기 장치는 그래픽 객체를 디스플레이하기 위한 스크린(예를 들어, 컴퓨터 스크린 또는 텔레비전 스크린)과 같은 수단을 더 포함할 수 있다.
하나의 실시예에 있어서, 상기 장치는 디지털 또는 아날로그 텔레비전 리시버/디코더와 같은 리시버/디코더이다.
추가적인 측면에 의하면, 본 발명은 객체의 동작을 제어하는 위젯 클래스의 인스턴스와 객체의 외관을 제어하는 룩 객체 클래스의 인스턴스를 포함하는 그래픽 사용자 인터페이스에서의 객체를 제공한다.
또한, 본 발명은 상기에서 설명된 바와 같이 객체를 생성하기 위한 위젯 세트를 제공하고, 위젯 세트는 복수의 위젯 클래스 및 하나 이상의 룩 객체 클래스를 포함한다. 통상, 위젯 세트는 기본 클래스와 기본 클래스로부터 파생된 클래스를 포함하는 복수의 룩 객체 클래스를 포함한다.
객체의 외관을 수정하기 위해, 룩 객체 클래스가 변경될 수 있다. 함수가 위젯 클래스에 의해 제어되기 때문에, 이것은 객체의 함수를 변경하지 않는다. 더욱이, 룩 객체 클래스의 하나의 인스턴스(instance)가 위젯 클래스의 다수의 인스턴스에 의해 사용되는 것이 가능하여, 사용된 메모리 양이 최소화된다.
룩 객체 클래스는 실행 시간에 애플리케이션으로 링크된 라이브러리에 포함될 수 있다. 따라서, 사용자는 링크되어야 하는 라이브러리 범위중 하나를 선택함으로써, 객체에 대한 바람직한 룩을 선택할 수 있다. 룩 객체 클래스가 다른 아이템에 관계없이 독립적으로 변경되기 때문에, 재코딩은 새로운 룩을 실행하는데 필요한 최소의 양으로 간소화된다.
대안적으로, 룩 객체 클래스는 컴파일 시간에 애플리케이션으로 링크된 라이브러리에 포함될 수 있다. 이것은 애플리케이션 개발자가 객체의 외관의 전반적인 제어를 할 수 있게 한다.
룩 객체 클래스는 구성요소 부분을 GUI 디스플레이상에 묘화하는데 호출될 수 있는 묘화 메소드를 전할 수 있다. 위젯 클래스는 룩 객체 클래스의 묘화 메소드를 호출하는 코드를 통상 포함한다. 또한, 룩 객체 클래스는 구성요소의 요소에 관련된 데이터를 제공하는 특성을 전할 수 있다.
룩 객체 클래스는 GUI 디스플레이에서 위젯에 디폴트 룩을 제공하는 디폴트 클래스일 수 있다. 대안적으로, 룩 객체 클래스는 디폴트 클래스로부터 파생되는 클래스일 수 있고, 파생된 클래스는 디폴트 클래스의 하나 이상의 메소드 및/또는 특성을 무시한다. 이 배치에 의해, 사용자 또는 개발자는 변경되지 않고 남겨두는 어느 부분이라도 다시 작업해야 할 필요없이 GUI의 룩내의 제한된 수의 요소만을 변경할 수 있다.
룩 객체 클래스 인스턴스는 위젯 클래스 인스턴스의 특성일 수 있다. 통상, 룩 객체 클래스의 인스턴스에 대한 포인터는 위젯 클래스 인스턴스의 특성에 할당 된다. 이와 같은 포인터는 인자로서 위젯 클래스의 생성자로 전달될 수 있다.
또한, 본 발명은 객체의 룩 객체를 제어하는 특성 및/또는 메소드가 한정되는 룩 객체 클래스가 예시되고, 객체의 동작을 제어하는 특성 및/또는 메소드가 한정되는 위젯 클래스가 예시되는 그래픽 사용자 인터페이스에서 객체를 생성하는 방법을 제공한다.
상기 바로 전 단락에 따른 방법에 있어서, 룩 객체 클래스에 대한 포인터는 통상 위젯 클래스 인스턴스의 인스턴스 메모리에 저장된다.
동작을 제어함으로써, 슬라이더와 버튼 등은 활동을 수행할 수 있고, 일부 그래픽 객체는 간단히 기호 또는 합성 객체 부분과 같이 장식용일 수 있기 때문에, 객체가 반드시 기능적인 것을 의미하지 않는다. 따라서, 객체의 동작을 제어하는 특성 및/또는 메소드는 룩 객체에 의해 제어되는 정확한 외관과 더불어, 객체의 기본 기능(예를 들어, 포인터로서 표시되도록)을 결정하는 것에 지나지 않을 수 있다.
또 다른 측면에 의하면, 본 발명은 그래픽 사용자 인터페이스에서 복수의 객체를 생성하는 방법을 제공하고, 여기서, 객체의 룩을 제어하는 특성 및/또는 메소드가 한정되는 룩 객체 클래스가 예시되고, 객체의 동작을 제어하는 특성 및/또는 메소드가 한정되는 위젯 클래스는 복수의 차례가 예시된다.
또 다른 측면에 의하면, 본 발명은 상기에서 설명된 바와 같은 위젯 세트를 장치 메모리로 로딩하는 단계, 상기에서 설명된 바와 같은 방법에 의해 그래픽 사용자 인터페이스에서 복수의 객체를 생성하는 단계, 및 디스플레이에 객체를 디스 플레이하는 단계를 포함하는 애플리케이션 실행 장치(예를 들어, 컴퓨터, 디지털 텔레비전 신호용 리시버/디코더, 또는 또 다른 장치)를 위한 그래픽 사용자 인터페이스를 실행하는 방법을 제공한다.
리시버/디코더에 적용되는 이와 같은 방법에서, 위젯 세트는 디지털 텔레비전 신호내의 채널에서 다운로드됨으로써 리시버/디코더의 메모리로 로드될 수 있다.
또 다른 측면에 의하면, 본 발명은 애플리케이션 실행 장치에 그래픽 인터페이스 디스플레이의 외관을 업데이트하는 방법을 제공하고, 여기서, 디스플레이는 상기에서 설명된 바와 같이 적어도 하나의 룩 객체 클래스가 또 다른 룩 객체 클래스에 의해 대체되는 위젯 세트를 포함한다.
또 다른 측면에 의하면, 본 발명은 디지털 텔레비전 신호용 리시버/디코더의 그래픽 사용자 인터페이스 디스플레이를 업데이트하는 방법을 제공하고, 여기서, 디스플레이는 상기에서 설명된 바와 같이 리시버/디코더의 메모리에 저장되는 위젯 세트를 포함하며, 위젯 세트에는 저장된 룩 객체 클래스를 대체하기 위해 적어도 하나의 대체 룩 객체 클래스가 디지털 텔레비전 신호 부분인 채널에서 리시버/디코더로 전송된다.
본 발명은 대응 장치로 확장된다. 특히, 본 발명은 상기 측면중 어느 하나의 방법을 수행하도록 배치되는 리시버/디코더로 확장된다.
또 다른 측면에 의하면, 본 발명은 그래픽 사용자 인터페이스를 실행하기 위한 애플리케이션 실행 장치(예를 들어, 컴퓨터, 디지털 텔레비전 신호용 리시버/디 코더, 또는 또 다른 장치)를 제공하고, 이 애플리케이션 실행 장치는 프로세서, 메모리, 및 신호를 디스플레이로 출력하기 위한 출력 포트를 포함하며, 상기 메모리는 상기에서 설명된 방법중 어느 하나, 상기에서 설명된 객체중 어느 하나, 또는 상기에서 설명된 위젯 세트중 어느 하나를 실행하기 위한 프로그램을 저장한다.
상기 경우중 어느 하나에 있어서, 바람직하게는 룩 객체 또는 룩 객체 클래스는 그래픽 객체의 다음 특성(만약 존재하면) :
배경 외관, 예를 들어 배경 칼라;
배경 오버레이, 예를 들어 로고;
전경 외관;
전경 오버레이, 예를 들어 로고;
릴리프(relief) 또는 명암의 외관;
객체 경계의 외관;
객체에 할당된 어떤 초점의 디스플레이; 및
객체에 할당된 어떤 강조의 디스플레이중 적어도 하나가 어떻게 디스플레이되는지를 정의한다.
또한, 본 발명은 상기 방법중 어느 하나를 실행하기 위한 컴퓨터 프로그램, 및 상기 방법중 어느 하나를 실행하기 위한 프로그램을 저장하는 컴퓨터 판독 가능 매체로 확장된다. 또한, 본 발명은 상기 측면중 어느 하나의 방법을 수행하도록 배치되는 리시버/디코더용 애플리케이션으로 확장된다. 또한, 본 발명은 첨부된 도면을 참조하여 본 명세서에서 설명된 바와 같은 방법 및 장치로 확장된다.
디스플레이된 그래픽 객체의 디자인
대부분의 그래픽 사용자 인터페이스(GUI)는 다양한 그래픽 객체를 디스프레이하며, 그 일부는 사용자에 의해 조작될 수 있고("활성" 객체), 일부는 조작될 수 없다("정적" 객체). 바람직하게, 상기에서 설명된 바와 같이, 디스플레이된 그래픽 객체는 정합(coherent) 디자인 체계를 만들기 위해 서로 보완하도록 디지인된다. 예를 들면, 디스플레이된 그래픽 객체들은 적합한 주요 칼라, 텍스쳐 및 폰트를 공유한다. 디자인 체계는 본 명세서에서 그래픽 객체의 "룩"으로 불려진다.
일부 경우에 있어서는, 활성 그래픽 객체의 룩만이 사용자에 의해 변경될 수 있다. 본 발명의 측면에 의하면, 바람직하게는 정적 그래픽 객체의 룩이 변경 가능하다. 본 발명의 측면에 의하면, 바람직하게는 그래픽 객체 그룹의 룩이 변경 가능하다. 따라서, 디스플레이된 그래픽 객체의 정합 디자인이 획득될 수 있다.
본 발명의 다른 측면을 참조하면, 그래픽 객체 및 링크 요소가 디스플레이되는 경우에, 바람직하게 그래픽 객체 및 링크 요소의 룩이 변경 가능하다. 바람직하게, 그래픽 객체와 링크 요소의 룩은 사용자에 의해 선택될 수 있는 룩에서 동일하다. 이와 같이, 그래픽 객체의 디스플레이된 체인에 대한 정합 룩이 달성될 수 있다.
본 발명의 바람직한 측면에 의하면, 체인의 룩은 디스플레이된 다른 그래픽 객체의 룩에 대해 독립적으로 선택될 수 있다.
본 발명의 측면은 그래픽 사용자 인터페이스에서 복수의 그래픽 객체의 외관을 제어하는 방법을 포함하고, 이 방법은 룩 객체를 복수의 그래픽 객체와 결합하 는 단계를 포함한다.
본 발명의 바람직한 실시예에 의하면, 복수의 그래픽 객체는 링크된 체인을 포함한다. 따라서, 특정 룩 또는 디자인은 전체적으로 체인 또는 링크된 리스트에 적용될 수 있다. 바람직하게, 룩 또는 디자인은 다른 체인, 링크된 리스트 또는 그래픽 객체에 적용된 어떠한 룩 또는 디자인과 다른 체인에 적용되는 어떤 룩 또는 디자인에 관계없이 체인, 링크된 리스트 또는 그래픽 객체에 적용될 수 있다.
본 발명의 측면에 의하면, 그래픽 객체 그룹을 디스플레이하는 방법이 제공되고, 이 방법은 그래픽 객체의 복수의 상이한 디스플레이 가능한 그룹을 한정하고, 복수의 디스플레이 가능한 그룹으로부터 그래픽 객체 그룹을 선택하기 위한 수단을 제공하는 단계를 포함한다.
바람직하게, 상기 방법은 디스플레이 가능한 그래픽 객체 그룹을 한정하는 단계와, 룩 객체를 그래픽 객체의 그룹과 결합하는 단계를 포함한다.
본 발명에 의하면, 그래픽 객체 그룹의 외관을 제어하는 방법이 제공되고, 이 방법은 디스플레이 가능한 그래픽 객체 그룹을 한정하는 단계를 포함한다.
또한, 그래픽 객체 그룹의 외관을 제어하기 위한 장치가 제공되고, 이 장치는 디스플레이 가능한 그래픽 객체 그룹을 한정하기 위한 수단을 포함한다.
바람직하게, 그룹으로부터의 그래픽 객체의 표시는 예를 들어, 하나 이상의 칼라, 형태, 크기, 텍스쳐 또는 패턴에서 또 다른 그룹의 그래픽 객체의 표시와 다르다.
바람직하게, 그래픽 객체 그룹은 그래픽 객체의 링크된 체인을 디스플레이하 기 위한 요소를 포함한다.
바람직하게, 그래픽 객체의 그룹은 정적 객체 및 활성 객체를 포함한다. 따라서, 상기 장치는 그래픽 객체 그룹의 라이브러리를 포함할 수 있고, 바람직하게는 상이한 룩 또는 디자인을 가질 수 있다.
바람직하게, 제 1 그룹으로부터 디스플레이된 그래픽 객체는 하나 이상의 칼라, 형태, 크기, 텍스쳐 또는 패턴에서 또 다른 그룹의 디스플레이된 그래픽 객체와 다르다. 제 1 그룹에서의 그래픽 객체의 배치는 또 다른 그룹에서의 그래픽 객체의 배치와는 다르다.
본 발명의 바람직한 실시에에 의하면, 그래픽 객체 그룹은 그래픽 객체의 링크된 체인을 포함한다. 바람직하게, 링크된 체인은 GUI에서 링크된 체인으로서 디스플레이될 수 있다.
본 발명의 이 측면의 다른 바람직한 형태가 그래픽 객체 디스플레이의 제목하에서 상기에서 설명된다.
그래픽 객체 빌드(build)
대부분의 그래픽 사용자 객체(GUI)는 다양한 그래픽 객체를 포함하고, 그 일부는 사용자에 의해 조작될 수 있다. 이와 같은 그래픽 객체는 윈도우, 다이얼로그 박스 및 푸시 버튼을 포함한다. 일반적으로, GUI는 몇몇 상이한 형태의 각 그래픽 객체를 포함하고, 예를 들어 GUI는 상이한 크기 및/또는 종횡비를 갖는 다양한 다이얼로그 박스의 디스플레이에 배치될 수 있다.
GUI는 예를 들어 2가지 형태의 다이얼로그 박스를 가지면, 하나는 나머지 크기의 절반이고, 각 형태의 박스가 공식화되고 별개의 객체로서 시스템에 저장된다. GUI는 다수의 상이한 형태의 다이얼로그 박스 및/또는 상이한 형태의 다른 그래픽 객체를 포함하면, 시스템 자원이 비능률적으로 사용될 수 있다.
본 발명의 측면에 의하면, 그래픽 사용자 인터페이스에서 그래픽 객체의 외관을 제어하는 방법이 제공되고, 이 방법은 그래픽 객체의 표시를 디스플레이하는데 사용하기 위한 그래픽 객체의 복수의 그래픽 객체 요소를 한정하는 단계를 포함한다.
본 발명의 측면에 의하면, 그래픽 객체를 형성하도록 다른 그래픽 객체와의 결합을 위해 변경되는 그래픽 객체 요소가 제공된다.
GUI가 다수의 상이한 형태의 동일 그래픽 객체를 포함하는 경우에, 상이한 형태는 각종 다른 형태의 객체와 공통으로 특징(feature)을 가질 것이다. 예를 들면, 상이한 형태의 박스들 사이의 차이점이 단지 박스 에지의 길이에 있는, 상이한 크기의 윈도우 및 박스는 서로 동일한 코너를 가질 것이다. 그래픽 객체를 빌딩하기 위해 객체 요소를 제공함으로써, 다양한 객체의 공통 특성을 취할 수 있는 이점이 있어, 적은 빌딩(building) 블록(객체 요소)이 다수의 상이한 형태의 그래픽 객체를 생성하는데 사용될 수 있다.
그래픽 객체는 예를 들어, 윈도우, 다이얼로그 박스, 푸시 버튼, 스크롤바, 아이콘, 또는 다른 온 스크린(on-screen) 객체를 포함할 수 있다. 그래픽 객체는 사용자가 그래픽 객체와 상호 작용할 수 있는 "활성" 또는 "정적", 예를 들어 배경 특성일 수 있다.
본 발명의 측면에 의하면, 복수의 그래픽 객체 요소를 포함하는 그래픽 객체가 제공된다.
본 발명의 측면에 의하면, 그래픽 사용자 인터페이스에서 그래픽 객체의 표시를 디스플레이하는 방법이 제공되고, 이 방법은 그래픽 객체를 형성하기 위해 복수의 그래픽 객체를 조합하는 단계를 포함한다.
본 발명의 측면에 의하면, 그래픽 사용자 인터페이스에서 그래픽 객체를 형성하기 위한 장치가 제공되고, 이 장치는 그래픽 객체를 형성하기 위해 복수의 그래픽 객체 요소를 조합하기 위한 수단을 포함한다.
본 발명의 측면에 의하면, 그래픽 사용자 인터페이스를 실행하기 위한 애플리케이션 실행 장치가 제공되고, 이 애플리케이션 실행 장치는 프로세서, 메모리, 및 신호를 디스플레이로 출력하기 위한 출력 포트를 포함하며, 메모리는 본 발명의 측면을 실행하기 위한 프로그램을 저장한다.
바람직하게, 애플리케이션 실행 장치는 디지털 텔레비전의 리시버/디코더를 포함한다.
본 발명의 측면에 의하면, 본 발명의 방법을 실행하기 위한 컴퓨터 프로그램이 제공된다.
그래픽 객체의 그래픽 객체 요소는 모두 동일할 수 있고, 그래픽 객체의 크기 및 형태는 요소의 개수 및 구성에 의해 결정된다.
바람직하게, 그래픽 객체는 복수의 상이한 그래픽 객체 요소 세트를 포함한 다. 바람직하게, 상기 방법 측면은 그래픽 객체의 복수의 상이한 그래픽 객체 요소 세트를 한정하는 단계를 포함한다.
그래픽 객체 요소 세트는 예를 들어 그래픽 객체의 코너, 측면 또는 에지 부분을 포함할 수 있다. 예를 들면, 그래픽 객체가 다이얼그 박스인 경우에, 박스를 만드는데 사용된 그래픽 객체 세트는 4개의 코너 요소와 에지 요소를 포함할 수 있다. 예를 들면, 직사각형 박스는 4개의 코너 요소와, 코너 요소들을 연결하는 4개의 에지 요소와 4개의 에지 요소를 포함할 수 있다.
요소의 각 세트내에서는 예를 들어 상이한 크기, 형태, 배향 및/또는 칼라를 갖는 상이한 형태의 요소가 있을 수 있다. 따라서, 박스의 예로서는 4가지 형태의 코너 요소 및 2가지 형태의 에지 요소를 포함할 수 있다.
푸시 버튼은 2개의 측면 요소와, 그래픽 객체인 푸시 버튼의 형태에 따라 선택되는 1개의 중앙 요소를 포함할 수 있다. 예를 들면, 재생(PLAY) 버튼은 화살표 기호를 포함하는 중앙 요소를 가질 수 있고, 정지(STOP) 버튼은 정방형 기호를 포함하는 중앙 요소를 가질 수 있다. 재생 버튼의 측면 요소는 정지 버튼의 면 요소와 동일할 수 있다.
또한, 객체 요소의 라이브러리는 상대적으로 복잡한 형태를 갖는 그래픽 객체를 형성하는데 사용될 수 있다. 예를 들면, 다양한 다이얼로그 박스의 복잡한 매트릭스는 박스 에지, 코너 및 교차점을 포함하는 객체 요소의 선택으로 쉽게 형성될 수 있다.
본 발명의 바람직한 실시예에 의하면, 그래픽 객체는 그래픽 객체의 "코너" 또는 "측면"을 한정하는 적어도 2개의 "코너" 요소와 복수의 필러(filler) 요소를 포함하고, 그 개수는 그래픽 객체의 크기 및/또는 형태를 변경하기 위해 변경될 수 있다. 따라서, 텍스트 박스는 4개의 코너 요소를 가지고, 복수의 필러 요소는 원하는 크기의 박스를 만들도록 코너 요소들 사이의 박스를 채우는데 사용된다. 필러 요소는 모두 동일할 수 있다. 하기의 실시예에 의하면, 상이한 형태의 필러 요소, 예를 들어 중앙 요소와 4가지 형태의 에지 요소가 박스 및 윈도우를 빌드하는데 사용된다.
바람직하게, 필러 요소가 그래픽 객체의 요구된 크기와 형태를 만들기 위해 반복된다.
바람직하게, 상기 방법은 고정된 요소 세트와 반복 가능한 요소 세트를 포함한다.
또한, 본 발명은 그래픽 객체를 형성하는 방법을 제공하고, 이 방법은 고정된 요소 세트와 반복 가능한 요소 세트를 제공한다.
예를 들면, 윈도우 또는 박스에 대해, 고정된 요소 세트는 코너 및 어떤 박스용 장식품을 포함할 수 있고, 이들 고정된 요소는 그 종류, 모든 크기가 모든 박스 또는 윈도우에 대해 고정되고, 반복 가능한 요소 세트는 객체의 요구된 크기 및 형태를 만드는데 사용된다. 바람직하게, 각 고정된 요소중 하나만이 그래픽 객체의 각 인스턴스에 대해 요구된다. 따라서, 반복 가능한 요소 세트는 에지 부분과 코너 사이를 채우는데 사용되는 중앙 단편(piece)을 포함할 수 있다.
바람직하게, 특정 객체에 대한 반복 가능한 요소 형태의 개수가 최소화되도 록 반복 가능한 요소의 크기가 선택된다. 예를 들면, 반복 가능한 요소의 크기는 요구된 가장 작은 크기의 그래픽 객체에 관련되어 선택된다. 따라서, 각 그래픽 객체를 빌드하는데 요구된 "키트(kit)"를 저장하기 위해 점유된 메모리가 감소될 수 있다.
또한, 본 발명은 그래픽 객체에 요소의 키트를 제공하고, 키트는 고정된 요소 세트와 반복 가능한 요소 세트를 포함한다.
또한, 본 발명은 그래픽 객체에 요소의 키트를 만드는 방법을 제공하고, 이 방법은 그래픽 객체의 인스턴스에 공통된 고정된 요소 세트를 한정하는 단계를 포함하고, 반복 가능한 요소 세트를 한정하는 단계를 더 포함한다.
객체 요소의 크기가 조절될 수 있다. 따라서, 보다 작은 형태의 객체 요소가 광범위의 객체를 만드는데 요구된다. 다이얼로그 박스의 예에 대해, 에지 요소의 길이가 조절될 수 있다. 이와 같이, 다수의 상이한 박스 형태는 4개의 코너 요소와 2가지 형태의 에지 요소(이 경우에, 조절 가능한 길이의 수직 에지 요소와 조절 가능한 길이의 수평 에지 요소)를 사용하여 만들어질 수 있다.
본 발명은 그래픽 사용자 인터페이스에서 그래픽 객체의 표시를 디스플레이하는 방법을 더 제공하고, 이 방법은 복수의 그래픽 객체 요소를 조합하는 단계를 포함한다.
바람직하게, 상기 방법은 고정된 요소 세트를 디스플레이하는 단계와, 복수의 반복 가능한 요소를 디스플레이하는 단계를 포함한다.
본 발명은 그래픽 사용자 인터페이스에서 그래픽 객체의 외관을 제어하기 위 한 장치를 더 제공하고, 이 장치는 그래픽 객체의 표시를 디스플레이하는데 사용하기 위한 그래픽 객체의 복수의 그래픽 객체 요소를 한정하기 위한 수단을 포함한다.
더욱이, 본 발명에 의해 그래픽 객체를 디스플레이하는데 사용하기 위한 요소의 키트가 제공되고, 이 키트는 그래픽 객체의 인스턴스에 공통된 고정된 요소 세트와 반복 가능한 요소 세트를 포함한다.
본 발명은 그래픽 사용자 인터페이스에서 그래픽 객체의 표시를 디스플레이하기 위한 장치를 더 제공하고, 이 장치는 복수의 그래픽 객체 요소를 조합하기 위한 수단을 포함한다.
본 발명은 본 발명을 와이드 스크린 텔레비전에 응용하는 특별한 이점이 있어, 그래픽 객체 요소의 개수 또는 크기를 변경함으로써, 그래픽 객체의 종횡비가 표준 텔레비전용 그래픽 객체와 비해 쉽게 조절될 수 있다.
또한, 본 발명은 그래픽 객체의 변경, 예를 들어 윤색(embellishment) 및 장식(ornamentation)으로 쉽게 만들어질 수 있게 한다. 객체 요소는 다이얼로그 박스에 포함되는 장식품을 포함할 수 있다. 상이한 또는 동일한 장식품을 갖는 다양한 상이한 객체가 본 발명을 사용하여 만들어질 수 있다.
툴팁 및 메뉴 체인
그래픽 사용자 인터페이스(GUI)는 일반적으로 다양한 그래픽 객체를 포함하고, 그 일부는 사용자에 의해 조작될 수 있고("활성" 객체), 나머지는 사용자에 의 해 조작될 수 없다("정적" 객체). 그래픽 객체, 특히 활성 객체는 종종 그래픽 객체를 나타내는 그림 또는 다이어그램을 포함할 수 있는 아이콘에 의해 사용자에게 식별된다. 예를 들면, 재생 기능을 실행하는 버튼은 화살표를 포함하는 아이콘을 포함할 수 있다. 이와 같은 아이콘은 쉽게 디스플레이를 항해할 수 있도록 도와줄 뿐만 아니라 그래픽 객체의 시각적인 외관을 향상시킬 수 있다.
특히, 스크린 영역이 프리미엄용인 경우, 아이콘이 특히 유용하다. 예로서는 아이콘이 텔레비전을 작동시키는데 사용하기 위한, 및/또는 웹 브라이징과 같은 다른 온 스크린 기능을 위한 온 스크린 아이콘인 디지털 텔레비전용 리시버/디코더에 사용하기 위한 GUI이다. 표준 텔레비전 스크린의 해상도는 상대적으로 낮으며, 판독하기 쉬우며, 스크린상에 표시되는 어떤 데이터가 상대적으로 크게 되는 것이 요구된다. 또한, 텔레비전의 사용자는 일반적으로, 예를 들어 개인 컴퓨터를 사용할 때보다 텔레비전을 사용할 때 스크린으로부터 떨어져 앉는다. 따라서, 스크린상에 표시되는 모든 아이콘 및 텍스트는 상대적으로 크게 되는 것이 요구된다.
이것은 한번에 스크린상에 디스플레이될 수 있는 정보의 양에 제약을 부과한다. 따라서, 아이콘의 사용은 특별한 이점이 있다.
그래픽 객체가 행하는 것을 명확하게 나타내는 아이콘을 선택해야 한다. 그러나, 일부 사용자는 아이콘 사용이 익숙하지 않을 수 있어, 특징이나타나는 것이 불확실하게 될 수 있다. 그러나, 스크린이 너무 어지럽혀질 수 있기 때문에, 텍스트 설명으로 스크린상에서 식별되는 그래픽 객체를 갖는 것이 바람직하지 못하다.
본 발명의 측면에 의하면, GUI에서 그래픽 객체의 외관을 제어하는 방법이 제공되며, 이 방법은 그래픽 객체의 제 1 디스플레이 가능한 표시를 한정하는 단계, 및 그래픽 객체의 제 2 디스플레이 가능한 표시를 한정하는 단계를 더 포함하며, 제 2 표시는 제 1 표시에 인접하게 디스플레이할 수 있다.
본 발명의 측면에 의하면, GUI상에 그래픽 객체를 디스플레이하는 방법이 제공되며, 이 방법은 그래픽 객체의 제 1 표시를 디스플레이하는 단계와, 제 1 표시에 인접하는 그래픽 객체의 제 2 표시를 디스플레이하는 단계를 포함한다.
바람직하게, 제 1 표시는 아이콘을 포함한다. 바람직하게, 제 2 표시는 선택적으로 디스플레이된다.
바람직하게, 제 1 표시는 활성이어서, 제 1 표시를 활성화 또는 선택하는 것은 그래픽 객체의 작동을 실행한다. 예를 들면, 제 1 표시는 푸시 버튼일 수 있다. 바람직하게, 제 2 표시는 그래픽 객체의 텍스트 설명, 예를 들어 객체의 기능을 지시하는 워드일 수 있다. 제 2 표시는 활성일 수 있거나, 비활성일 수 있다.
바람직하게, 제 2 표시는 선택적으로 디스플레이될 수 있다. 따라서, 그래픽 객체의 제 2 표시는 언제나 스크린상에 표시되지 않고, 사용자가 도움을 청할 때만 표시된다.
바람직하게, 제 2 표시는 제 1 표시에 초점을 둠으로써 디스플레이될 수 있다. 예를 들면, 제 2 표시는 사용자가 제 1 표시에 초점을 가할 때, 예를 들어 커서 키를 사용하여 초점을 제 1 표시로 이동시킴으로써, 또는 제 1 표시를 지시하도록 마우스 포인터를 이동시킴으로써 디스플레이될 수 있다.
바람직하게, 그래픽 객체의 텍스트 표시는 프레임내에, 예를 들어 박스 또는 윈도우에 디스플레이된다. 바람직하게, 프레임 보완의 디자인은 디스플레이된 다른 그래픽 객체의 디자인, 특히 동일한 그래픽 객체의 다른 표시에 매치된다. 따라서, 정합 디자인 체계가 얻어질 수 있다. 바람직하게, 제 2 표시는 예를 들어, 박스 또는 윈도우를 제 1 표시에 연결함으로써, 제 1 표시에 연결된다. 따라서, 사용자는 적용되는 텍스트 설명을 보다 명확하게 볼 수 있다.
바람직하게, 상기 방법은 제 1 표시와 제 2 표시를 연결하기 위한 링크 요소를 한정하는 단계를 포함한다. 바람직하게, 상기 방법은 룩 객체를 제 1 표시, 제 2 표시 및 바람직하게는 링크 요소와 결합하는 단계를 포함한다. 따라서, 제 1 및 제 2 표시와 링크 요소는 예를 들어 동등한 룩을 제공하기 위해 칼라, 텍스쳐 및 형태에 대한 특성을 공유한다. 룩 객체는 복수의 별개의 룩 객체를 포함할 수 있어, 동등한 룩이 다양한 표시와 링크 요소에 대해 획득될 수 있다.
본 발명은 그래픽 객체를 디스플레이하는 방법을 더 제공하고, 이 방법은 그래픽 객체의 제 1 표시를 디스플레이하는 단계, 그래픽 객체의 제 2 표시를 디스플레이하는 단계, 및 제 1 표시 및 제 2 표시를 연결하는 링크 요소를 디스플레이하는 단계를 포함한다.
본 발명은 GUI에서 그래픽 객체의 외관을 제어하기 위한 장치를 제공하고, 이 장치는 그래픽 객체의 제 1 디스플레이 가능 표시를 한정하기 위한 수단, 그래픽 객체의 제 2 디스플레이 가능 표시를 한정하기 위한 수단, 및 제 1 표시에 인접하는 제 2 표시를 디스플레이하기 위한 수단을 포함한다.
바람직하게, 상기 장치는 제 2 표시를 선택적으로 디스플레이, 바람직하게는 초점을 제 1 표시상에서 검출할 때, 제 2 표시를 선택적으로 디스플레이하기 위한 수단을 포함한다.
본 발명에 의하면, 그래픽 객체를 디스플레이하기 위한 장치가 또한 제공되고, 이 장치는 그래픽 객체의 제 1 표시를 디스플레이하기 위한 수단, 그래픽 객체의 제 2 표시를 디스플레이하기 위한 수단, 및 제 1 표시와 제 2 표시를 연결하는 링크 요소를 디스플레이하기 위한 수단을 포함한다.
그래픽 객체가 하기에서 설명될 바와 같이 체인 또는 링크된 리스트인 경우, 바람직하게 제 2 표시는 디스플레이된 체인 또는 링크된 리스트 부분이다. 바람직하게, 상기 방법은 그래픽 객체의 링크된 체인을 한정하는 단계를 포함하고, 제 1 및 제 2 표시는 그래픽 객체의 표시의 체인의 링크로서 디스플레이될 수 있다.
바람직하게, 제 2 표시는 서브 체인에 존재한다. 바람직하게, 서브 체인은 제 1 표시로부터 분기된다.
본 발명의 측면에 의하면, 그래픽 객체를 포함하는 디스플레이가 제공되고, 그래픽 객체는 그래픽 객체의 제 1 표시, 및 바람직하게는 선택적으로 디스플레이 가능하며, 그래픽 객체의 제 1 표시에 인접한 그래픽 객체의 제 2 표시를 포함한다.
본 발명의 측면에 의하면, 그래픽 사용자 인터페이스에서 그래픽 객체의 외관을 제어하기 위한 장치가 제공되며, 이 장치는 그래픽 객체의 제 1 표시를 한정하기 위한 수단과, 그래픽 객체의 제 2 표시를 한정하기 위한 수단을 포함하고, 제 2 표시는 제 1 표시에 인접하게 디스플레이될 수 있다.
본 발명의 측면에 의하면, 그래픽 사용자 인터페이스를 실행하기 위한 애플리케이션 실행 장치가 제공되고, 이 애플리케이션 실행 장치는 프로세서, 메모리, 및 신호를 디스플레이로 출력하기 위한 출력 포트를 포함하며, 메모리는 본 발명의 측면을 실행하기 위한 프로그램을 저장한다.
바람직하게, 애플리케이션 실행 장치는 디지털 텔레비전의 리시버/디코더를 포함한다.
또한, 본 발명의 방법을 실행하기 위한 컴퓨터 프로그램이 제공된다.
컴퓨터 및 다른 장치의 GUI에 대해, 사용자에게는 디스플레이를 항해하고, 디스플레이된 그래픽 객체를 조작하기 위한 마우스 또는 다른 포인터 장치가 제공된다. 그러나, 일부 애플리케이션, 예를 들어 텔레비전 리시버/디코더 장치, 이동 전화 및 개인 장치에 있어서, 사용자는 포인터 장치를 가질 수 없을 수도 있다. 예를 들면, 사용자는 디스플레이를 항해하기 위해 커서 키패드를 사용할 수도 있다. 이와 같은 커서 키패드는 업, 다운, 좌측 및 우측 키를 포함한다. 사용자가 이들 키만을 사용하여 디스플레이를 항해하는데 혼란을 줄 수 있고, 특히 스크린상에 디스플레이된 그래픽 객체가 명백한 라인 및/또는 컬럼으로 배열되지 않는 경우에 혼란을 줄 수 있다.
본 발명의 측면에 의하면, 그래픽 사용자 인터페이스에서 그래픽 객체의 외관을 제어하는 방법이 제공되고, 이 방법은 그래픽 객체의 링크된 체인을 한정하는 단계를 포함한다.
본 발명의 측면에 의하면, 그래픽 사용자 인터페이스에서 그래픽 객체의 외 관을 제어하는 방법이 제공되고, 이 방법은 제 1 그래픽 객체를 한정하는 단계, 제 2 그래픽 객체를 한정하는 단계, 및 그래픽 객체를 연결하기 위한 링크 요소를 한정하는 단계를 포함한다.
본 발명의 측면에 의하면, GUI에서 그래픽 객체를 디스플레이하기 위한 장치가 제공되고, 이 장치는 복수의 그래픽 객체를 디스플레이하기 위한 수단과, 그래픽 객체 사이에 링크 요소를 디스플레이하기 위한 수단을 포함한다.
본 발명의 측면에 의하면, 그래픽 객체와 그래픽 객체와 결합된 링크 요소가 제공된다.
본 발명의 측면에 의하면, 그래픽 사용자 인터페이스(GUI)에서 그래픽 객체의 표시를 디스플레이하는 방법이 제공되고, 이 방법은 그래픽 객체의 표시를 디스플레이하는 단계와, 그래픽 객체 사이의 링크를 나타내기 위한 링크 요소의 표시를 디스플레이하는 단계를 포함한다.
바람직하게, 디스플레이된 링크 요소는 하나의 그래픽 객체로부터 또 다른 그래픽 객체로 확장된다. 바람직하게, 상기 방법은 그래픽 객체의 표시의 링크된 체인을 디스플레이하는 단계를 포함한다.
바람직하게, 상기 방법은 그래픽 객체의 서브 체인을 한정하는 단계를 더 포함하고, 서브 체인은 링크된 체인으로부터의 분기를 포함하고, 바람직하게 서브 체인은 선택적으로 디스플레이될 수 있다.
바람직하게, 상기 방법은 서브 체인에서 그래픽 객체를 디스플레이하는 단계를 더 포함하고, 바람직하게 서브 체인은 링크된 체인의 분기를 포함하며, 바람직 하게 서브 체인은 링크된 체인에서 그래픽 객체에 초점을 둠으로써 디스플레이될 수 있다. 따라서, 서브 체인은 관심있는 사용자에게만 디스플레이될 수 있어, 디스플레이를 어지럽게 하는 것을 감소시킬 수 있다.
본 발명의 측면에 의하면, GUI에 그래픽 객체를 디스플레이하는 방법이 제공되고, 이 방법은 복수의 그래픽 객체를 링크된 리스트로서 디스플레이하는 단계를 포함한다. 따라서, 본 발명의 측면에 의하면, 커서 키패드를 사용하여 항해될 수 있는 그래픽 객체가 제공된다. 바람직하게, 디스플레이된 그래픽 객체는 아이콘을 포함한다. 바람직하게, 그래픽 객체 사이의 링크가 디스플레이될 수 있다.
디스플레이된 링크 요소는 하나의 그래픽 객체로부터 또 다른 그래픽 객체로 확장되어, 그들 사이의 경로를 지시할 수 있다. 이것은 사용자가 디스플레이를 항해하기 위해 마우스보다 키패드를 사용하는 경우에 특별한 이점으로 된다. 그러나, 일부 경우에 있어서, 링크 요소는 그래픽 객체 사이의 전체 거리에 걸쳐 확장될 수 없지만, 그래픽 객체 사이의 경로를 사용자에게 지시하는 것을 여전히 제공한다. 예를 들면, 링크 요소는 경로에서 다음 아이콘을 지시하는 아이콘상에 화살표를 포함할 수 있다.
본 발명의 측면에 의하면, 그래픽 객체의 체인이 제공된다. 하나 이상의 링크 요소가 그 객체로부터의 항해 경로의 선택을 지시하는 각 그래픽 객체에 제공될 수 있다. 따라서, 그래픽 객체의 및 링크 요소의 분기된 네트워크 또는 트리 구조가 형성될 수 있어, 사용자는 마우스를 사용하지 않고서도 쉽게 네트워크를 항해할 수 있다. 또한, 본 발명의 측면에 의하면, 그래픽 객체의 네트워그가 제공된다.
본 발명의 측면에 의하면, 그래픽 객체의 메인 체인과 메인 체인으로부터 분기된 그래픽 객체의 서브 체인이 제공된다. 바람직하게, 그래픽 객체의 표시는 버튼이다. (본 명세서에서 사용된 용어 "버튼"은 선택되었을 때, 대체로 기능을 실행하는 어떤 그래픽 객체에 관련되도록 해석되는 것이다.)
바람직하게, 복수의 서브 체인이 디스플레이될 수 있다. 바람직하게, 서브 체인은 메인 체인의 그래픽 객체를 선택함으로써 디스플레이될 수 있다.
바람직하게, 서브 체인은 메인 체인과 수직하게 확장된다.
본 발명의 또 다른 측면에 따르면, 그래픽 객체의 제 2 표시가 그래픽 객체에 인접하게 디스플레이될 수 있는 경우에, 바람직하게 그래픽 객체의 제 2 표시는 그래픽 객체의 제 1 표시의 서브 체인의 일부로서 디스플레이될 수 있다. 따라서, 그래픽 객체의 제 2 표시가 그래픽 객체의 설명을 포함하는 텍스트 박스인 경우, 서브 체인은 서브 체인에 텍스트 박스 및 설명을 포함할 수 있다. 이것이 사용자에게 지원될 수 있다.
본 발명의 측면에 의하면, 그래픽 객체를 디스플레이하는 장치가 제공되고, 이 장치는 그래픽 객체의 제 1 표시를 디스플레이하기 위한 수단, 그래픽 객체의 제 2 표시를 디스플레이하기 위한 수단, 및 제 1 표시와 제 2 표시를 연결하는 링크 요소를 디스플레이하기 위한 수단을 포함한다.
또한, 그래픽 사용자 인터페이스에서 그래픽 객체의 외관을 제어하기 위한 장치가 제공되고, 이 장치는 그래픽 객체의 링크된 체인을 한정하기 위한 수단을 포함한다.
또한, 그래픽 사용자 인터페이스에서 그래픽 객체의 외관을 제어하기 위한 장치가 제공되고, 이 장치는 제 1 그래픽 객체를 한정하고, 제 2 그래픽 객체를 한정하며, 그래픽 객체를 연결하는 링크 요소를 한정하기 위한 수단을 포함한다.
또한, 본 발명은 그래픽 사용자 인터페이스에서 그래픽 객체의 표시를 디스플레이하기 위한 장치를 제공하고, 이 장치는 그래픽 객체의 표시를 디스플레이하기 위한 수단과, 그래픽 객체 사이의 링크를 나타내기 위한 링크 요소의 표시를 디스플레이하기 위한 수단을 포함한다.
또한, 본 발명에 의하면, 그래픽 객체의 제 1 표시, 그래픽 객체의 제 2 표시, 및 제 1 표시와 제 2 표시를 연결하는 링크 요소를 포함하는 그래픽 사용자 인터페이스에서의 객체; 그래픽 객체의 링크된 체인을 포함하는 그래픽 사용자 인터페이스에서의 객체; 및 제 1 그래픽 객체, 제 2 그래픽 객체, 및 제 1 그래픽 객체와 제 2 그래픽 객체를 연결하는 링크 요소를 포함하는 그래픽 사용자 인터페이스에서의 객체가 제공된다. 바람직하게, 상기 객체는 그래픽 객체의 서브 체인을 더 포함하고, 서브 체인은 링크된 체인으로부터의 분기를 포함하고, 바람직하게 서브 체인은 선택적으로 디스플레이될 수 있다.
본 발명의 측면은 그래픽 사용자 인터페이스를 실행하기 위한 애플리케이션 실행 장치를 포함하며, 이 장치는 프로세서, 메모리, 및 신호를 디스플레이로 출력하기 위한 출력 포트를 포함하고, 메모리는 본 발명의 측면을 실행하기 위한 프로그램을 저장한다.
또한, 본 발명의 측면은 본 발명의 방법을 실행하기 위한 컴퓨터 프로그램을 포함한다.
헤드 투 테일 플립플롭(HEAD TO TAIL FLIPFLOP)
대부분의 그래픽 사용자 인터페이스(GUI)는 다양한 그래픽 객체를 포함하고, 그 일부는 사용자에 의해 조작될 수 있다. 이와 같은 그래픽 객체는 그래픽 객체인 것을 나타내는 그림이나 다이어그램을 일반적으로 포함하는 아이콘으로서 디스플레이된다. 예를 들면, 재생(PLAY) 기능을 실행하기 위한 객체는 화살표를 포함하는 아이콘으로서 디스플레이될 수 있다. 프린팅을 달성하기 위한 객체는 프린터의 다이어그램을 포함할 수 있다. 이와 같은 아이콘은 쉽게 디스플레이를 항해할 수 있도록 도와줄 뿐만 아니라 그래픽 객체의 시각적인 외관을 향상시킬 수 있다.
그래픽 객체가 행하는 것을 명확하게 나타내는 아이콘을 선택하도록 해야 한다. 많은 "표준" 아이콘이 사용되고, 일반적으로 "앞으로(forward)", "뒤로(go back)", "재생" 및 "정지"를 나타내는 아이콘으로서 인식될 수 있다. 그러나, 일부 사용자는 아이콘 사용이 익숙하지 않을 수 있어, 특징이 나타나는 것이 불확실하게 될 수 있다.
본 발명의 측면에 의하면, 디스플레이된 특징을 갖는 그래픽 객체가 제공되고, 상기 특징은 복수의 형태, 및 특징이 디스플레이된 형태를 변경하기 위한 수단으로 디스플레이될 수 있다.
바람직하게, 특징이 디스플레이되는 하나의 형태는 아이콘이다. 예를 들면, 재생 버튼은 화살표 형태로 될 수 있다.
본 발명의 측면은 GUI에서 그래픽 객체의 외관을 제어하는 방법을 포함하며, 이 방법은 그래픽 객체의 제 1 표시와 그래픽 객체의 제 2 표시를 한정하는 단계를 포함하고, 제 1 및 제 2 표시는 선택적으로 디스플레이될 수 있고, 바람직하게는 순환적으로 디스플레이될 수 있다.
본 발명의 측면에 의하면, GUI에서 그래픽 객체를 디스플레이하는 방법이 제공되고, 이 방법은 그래픽 객체의 제 1 표시를 디시플레이하는 단계와, 그 후에 그래픽 객체의 제 2 표시를 디스플레이하는 단계를 포함한다.
바람직하게, 그래픽 객체의 제 1 표시는 아이콘을 포함한다. 바람직하게, 그래픽 객체의 제 2 표시는 그래픽 객체의 텍스트 설명을 포함한다. 바람직하게, 그래픽 객체의 디스플레이는 제 1 표시와 제 2 표시 사이에서 순환된다.
본 발명의 측면에 의하면, GUI에서 그래픽 객체의 외관을 제어하기 위한 장치가 제공되고, 이 장치는 그래픽 객체의 제 1 표시를 한정하기 위한 수단과, 그래픽 객체의 제 2 표시를 한정하기 위한 수단을 포함한다.
본 발명의 측면에 의하면, 그래픽 사용자 인터페이스를 실행하기 위한 애플리케이션 실행 장치가 제공되고, 이 장치는 프로세서, 메모리, 및 신호를 디스플레이로 출력하기 위한 출력 포트를 포함하고, 메모리는 본 발명의 측면을 실행하기 위한 프로그램을 저장한다.
바람직하게, 애플리케이션 실행 장치는 디지털 텔레비전의 리시버/디코더를 포함한다.
또한, 본 발명의 방법을 수행하기 위한 컴퓨터 프로그램이 제공된다.
디스플레이될 수 있는 상이한 표시는 예를 들어 아이콘 및 특징의 텍스트 설명을 포함한다. 따라서, 재생 아이콘(예를 들어, 화살표 표시)은 워드 "재생"으로서 또한 디스플레이될 수 있다. 따라서, 아이콘 사용의 시각적 및 다른 이점은 사용자가 텍스트 설명으로부터 아이콘의 의미를 알 수 있는 것을 보증하는 한 획득될 수 있다. 그래픽 객체의 상이한 표시를 제공함으로써, GUI의 시각적 표시가 향상될 수 있고, 상이한 디스플레이는 사용자의 시청 가능 영역을 어지럽게 하지 않는다.
본 발명의 제 1 실시예에 의하면, 디스플레이되는 그래픽 객체의 표시는 사용자에 의해 설정될 수 있다. 예를 들면, 사용자는 아이콘 사용이 친숙하게 될 수 있고, 아이콘의 텍스트 설명을 요구하지 않을 수 있다. 이 경우에, 사용자는 아이콘이 디스플레이되는 것만을 선택할 수 있다.
본 발명의 제 2 실시예에 의하면, 디스플레이된 표시는 디스플레이된 표시를 선택 또는 초점(예를 들어, 강조)을 둠으로써, 사용자에 의해 변경될 수 있다. 예를 들면, 표시가 "재생" 아이콘으로서 그래픽 객체로 설정되면, 사용자는 제 1 표시에 초점, 예를 들어 강조하거나, 선택함으로써 "재생" 아이콘을 텍스트 "재생"으로 변경할 수 있다.
본 발명의 제 3 실시예에 의하면, 그래픽 객체의 디스플레이는 사용자가 개입되지 않고서도 상이한 표시들 사이에서 전환된다. 예를 들면, 선호도가 설정될 수 있어, 디스플레이된 그래픽 객체는 2가지 형태의 표시 사이에서 순환된다. 바람직한 실시예에 의하면, 디스플레이는 아이콘과 텍스트 설명 사이에서 순환된다. 순환 시간은 조절될 수 있다. 순환 시간의 예는 대략 2초이다.
본 발명의 실시예에 의하면, 표시가 디스플레이될 때, 타이머가 시작되고, 타이머가 소정의 값에 도달할 때, 표시는 변경된다. 표시의 변경이 하나의 표시로부터 또 다른 표시로, 예를 들어 아이콘으로부터 텍스트 설명으로 직접 이루어질 수 있거나, 표시의 시퀀스를 포함할 수 있다. 예를 들면, 표시의 시퀀스는 하나의 표시로부터 또 다른 표시로 연속적인 변경을 나타낼 수 있다. 실시예에 있어서, 표시의 시퀀스는 2개의 표시가 회전하는 코인의 양면에 있는 효과를 제공한다.
본 발명은 GUI에서 그래픽 객체의 외관을 제어하기 위한 장치를 더 제공하고, 이 장치는 그래픽 객체의 제 1 표시와 그래픽 객체의 제 2 표시를 한정하기 위한 수단, 제 1 및 제 2 표시를 선택적으로 디스플레이하기 위한 수단, 및 바람직하게는 제 1 및 제 2 표시를 순환적으로 디스플레이하기 위한 수단을 포함한다.
또한, GUI에서 그래픽 객체의 표시를 디스플레이하기 위한 장치가 제공되고, 이 장치는 그래픽 객체의 제 1 표시를 디스플레이하기 위한 수단과, 그래픽 객체의 제 2 표시를 그 후에 디스플레이하기 위한 수단을 포함한다.
바람직하게, 상기 장치는 제 1 표시와 제 2 표시를 디스플레이하는 사이에 표시의 시퀀스를 디스플레이하기 위한 수단을 더 포함한다.
본 발명은 그래픽 객체의 제 1 표시와 그래픽 객체의 제 2 표시를 포함하는 GUI에서의 객체를 더 제공하고, 제 1 및 제 2 표시는 선택적으로 디스플레이될 수 있고, 바람직하게는 순환적으로 디스플레이될 수 있다.
온 스크린 키보드
키패드를 사용하여 텍스트를 포함하는 데이터를 입력하는 것을 포함하는 업무를 수행하기 위하여, 숫자 키패드를 갖는 장치가 더 많이 사용되고 있다. 예를 들면, 이동 전화는 정보를 전화 메모리에, 예를 들어 이름을 폰의 전화번호부에 입력하는데 사용되거나, 텍스트 메시지를 전송하는데 사용된다. 다른 예로서는 예를 들어, 리시버/디코더를 갖는 텔레비전을 사용하여 인터넷에 액세스할 때, 텍스트를 텔레비전 스크린에 입력하는데 사용되는 텔레비전 리모콘을 포함한다.
일반적으로, 이와 같은 장치는 각 숫자 0 내지 9의 각각에 대한 키, 및 몇몇 다른 키, 예를 들어 # 및 * 키를 갖는 숫자 키패드만을 갖는다. 텍스트를 기입할 수 있게 하기 위해, 적어도 26개의 추가 키 기능이 알파벳의 문자에 대해 요구되고, 강세된 문자뿐만 아니라 대문자 및 소문자, 구두점 및 기호가 요구되는 경우에 더 많은 키 기능이 요구된다.
텍스트 기입에 사용되는 공지된 키패드에 있어서는, 키패드의 각 키에는 다수의 기능이 할당되고, 사용자는 키를 여러 번 누름으로써 이용 가능한 기능을 순환하여, 상이한 기능이 통상 디스플레이상에서 표시될 수 있다. 사용자가 키를 사용하여 원하는 기능에 도달할 때, 통상 "선택(select)" 키를 누름으로써, 또는 디스플레이 커서를 이동함으로써, 기능이 선택된다. 이해될 수 있는 바와 같이, 완전한 세트의 기능이 이용될 수 있을 때, 키패드의 각 키는 반드시 몇 개의 상이한 기능에 관련된다. 예를 들면, 키패드의 "2" 키는 다음 기능을 포함할 수 있고,
Figure 112002013541145-pct00001
기호 기능을 더 포함할 수 있다. 특수 문자, 숫자 또는 기호가 요구될 때마다, 키 는 몇 번 눌러져야만 한다. 이것은 비능률적으로 소비되는 시간이 될 수 있다. 또한, 키의 디자인 제약 및 물리적인 크기 때문에 특수 키에 의해 액세스될 수 있는 모든 문자 및 기호가 종종 사용자에게 디스플레이될 수 있는 것은 아니다. 따라서, 사용자는 특수 문자 또는 기호를 입력하자고 하면, 그것을 활성화하는 키를 찾기 위해 시행착오를 겪어야 한다.
이동 전화의 일부 모델에 사용되는 해결책은 쿼티(QWERTY) 키보드를 포함하는 것이지만, 소형 키보드가 요구되는 경우에는 이상적이지 않다; 키는 사용하는데 여전히 충분히 커야 되기 때문이다.
본 발명의 측면에 의하면, 기능을 수행하기 위한 키를 갖는 키패드가 제공되고, 각 키는 기능 옵션을 포함하며, 키의 기능 옵션은 변경 가능하다.
본 발명의 실시예에 의하면, 각 키는 한꺼번에 하나의 기능 옵션만을 갖고 있어, 키는 그 기능을 수행하기 위해 한 번만 눌려질 필요가 있다. 키의 기능 옵션이 변경 가능한 것을 제공함으로써, 존재하는 키보다 많은 기능을 수행하기 위해 키패드를 계속 사용할 수 있다. 그러나, 사용의 효율성은 향상될 수 있다.
바람직하게, 옵션의 세트는 키패드용 템플릿으로서 배열되고, 템플릿(template)은 변경 가능하다. 예를 들면, 키패드가 숫자만을 입력하기 위한 하나의 업무에 사용되는 것이고, 입력되는 각 숫자에 대해 사용자가 3개 이상의 문자를 스크롤해야 한다면, 이는 비효율적이다. 키패드의 모든 키의 옵션을 "숫자"로 변경함으로써, 키는 요구된 숫자를 입력하기 위해 사용자에 의해 단지 한 번만 누르면 된다. 유사하게, 사용자가 대문자로 입력하고자 하면, "대문자(capitals)" 템 플릿이 키패드에 적용될 수 있다. 따라서, 대문자 템플릿만이 키 기능용 옵션으로 포함되어, 사용자가 원하는 대문자를 찾기 위해 스크롤해야 하는 기능의 수를 감소시킨다.
바람직하게, 키패드에 대한 키 옵션이 전체적으로 변경되지만, 대안으로 키 일부만에 대한 옵션이 변경될 수 있다.
본 발명의 측면에 의하면, 키패드를 사용하여 데이터를 그래픽 사용자 인터페이스(GUI)에 입력하는 방법이 제공되며, 이 방법은 복수의 템플릿을 한정하는 단계를 포함하고, 각 템플릿은 키패드에 대한 기능 세트를 포함한다.
본 발명의 측면에 의하면, 키패드를 사용하여 데이터를 그래픽 사용자 인터페이스에 입력하는데 사용하기 위한 장치가 제공되고, 이 장치는 복수의 템플릿을 포함하며, 각 템플릿은 키패드에 대한 기능의 세트를 포함한다.
바람직하게, 템플릿은 디스플레이상에 디스플레이될 수 있다.
바람직하게, 다수의 상이한 템플릿에 제공되고, 상기 방법은 사용되는 템플릿을 선택하는 단계를 포함한다. 바람직하게, 상기 장치는 템플릿을 선택하기 위한 수단을 포함한다. 바람직하게, 상이한 템플릿은 키패드에 상이한 기능 세트를 제공한다. 예를 들면, 템플릿은 키패드의 숫자키에 대문자 A 내지 J를 제공할 수 있다. 상이한 템플릿은 마찬가지로 대문자 K 내지 T등을 제공할 수 있다.
본 명세서에서 설명된 본 발명의 실시예에 의하면, 템플릿들은 각각 키패드의 10개의 키로 사용하기 위한 10가지 기능만을 포함한다. 다른 실시예에 의하면, 키패드는 보다 많은 키를 포함할 수 있고, 템플릿에 전체 알파벳을 나타내는 것이 가능하다. 예를 들면, 키패드는 키보드를 포함할 수 있다. 상이한 템플릿은 상이한 형태의 키보드, 예를 들어 상이한 언어 변환, 상이한 숫자 및 키의 배열, 기호와 다른 캐릭터에 대응하여 제공될 수 있다. 요구된 기능 전체는 각 템플릿에 포함될 수 있고, 상이한 템플릿은 상이한 형태의 키패드 또는 키보드의 상이한 키 배치(layout)에 대응하여 제공된다.
본 명세서에서 사용된 용어 키패드는 키, 버튼 등의 배열을 갖는 모든 장치를 포함하기 위해 대략적으로 설명된 것이다. 따라서, 본 용어는 원격 제어기, 전화 및 컴퓨터 키보드뿐만 아니라 다른 장치를 포함한다.
바람직하게, 상기 방법은 예를 들어, 컴퓨터 또는 텔레비전의 스크린상에 템플릿을 디스플레이하는 단계를 포함한다. 바람직하게, 복수의 이용 가능한 템플릿이 디스플레이되고, 바람직하게 사용자는 사용하기 위한 디스플레이된 템플릿중 하나를 선택할 수 있다.
바람직한 실시예에 의하면, 이용 가능한 템플릿은 그리드(grid)로서 디스플레이되고, 바람직하게 사용자는 키패드의 커서 키를 사용하여 원하는 템플릿을 선택한다. 대안적으로, 사용자는 다른 장치, 예를 들어 마우스와 같은 포인터 장치를 사용할 수 있다.
바람직하게, 디스플레이는 템플릿의 기능을 키패드의 관련된 키의 배열에 해당되는 배치로 표시한다. 바람직하게, 상기 방법은 키패드의 이미지를 디스플레이하는 단계를 포함한다. 바람직하게, 템플릿을 선택하는 단계는 템플릿에 관련된 키패드의 이미지를 스크린상으로 이동시키는 단계를 포함한다.
바람직하게, 상기 장치는 디스플레이 가능한 키패드 이미지를 더 포함하고, 바람직하게 상기 장치는 템플릿의 디스플레이에 관련된 키패드 이미지를 이동하기 위한 수단을 제공한다.
바람직하게, 스크린상에 키패드의 이미지를 디스플레이하는 단계는 디스플레이되는 키패드의 이미지를 선택하는 단계를 포함한다. 키패드상의 키 배치는 하나의 형태의 키패드로부터 또 다른 형태의 키패드로 변경될 수 있고, 따라서 키패드 배치에 해당되어 나타낸 템플릿에 키의 배치에 유리하다.
바람직하게, 사용자는 키패드상의 커서 키를 사용하여 템플릿에 관련된 키패드의 이미지를 이동시킨다.
템플릿의 기능은 쿼티 키보드로서 디자인될 수 있고, 키보드는 키패드의 이미지에 대해 다양한 존으로 분할된다. 예를 들면, 하나의 위치에서 키패드는 문자 q, w, e, a, s, d, z, x, c 및 스페이스(SPACE)를 입력하는데 사용될 수 있다.
다른 실시예에 의하면, 템플릿의 기능은 다른 방법으로 설계된다. 바람직하게, 사용자에 의해 사용된 기능이 배치되어, 하나 이상의 템플릿을 표시한다. 바람직하게, 템플릿은 사용자에 의해 맞춤형(customize)으로 될 수 있다.
템플릿 키보드의 키에 의해 제공되는 기능은 하나 이상의 문자, 숫자 또는 기호를 포함할 수 있다. 예를 들면, 키패드가 웹 브라우저에 사용되는 경우, 키는 텍스트 문자열, 예를 들어 "http:\" 또는 "www"를 입력하는데 사용될 수 있다.
바람직하게, 키패드 템플릿은 사용자가 데이터를 입력하는 동안 스크린상에 디스플레이된다.
본 발명의 측면은 키패드에 템플릿을 제공한다. 바람직하게, 템플릿은 GUI에서 디스플레이될 수 있다.
본 발명의 측면에 의하면, 키패드를 사용하여 데이터를 입력하는 방법이 제공되고, 이 방법은 키패드에 대한 기능 세트를 포함하는 템플릿을 선택하는 단계를 포함한다.
본 발명의 측면에 의하면, 키패드를 사용하여 데이터를 입력하기 위한 장치가 제공되고, 이 장치는 키패드 템플릿을 디스플레이하기 위한 수단을 포함한다. 바람직하게, 상기 장치는 복수의 키패드 템플릿을 디스플레이하기 위한 수단과, 템플릿을 선택하기 위한 수단을 포함한다.
바람직하게, 데이터 입력에 대한 키패드 템플릿의 디스플레이는 상기 장치가 실행될 수 있는 어떤 다른 애플리케이션과 구별된다. 예를 들면, 상기 장치가 웹 브라우저 애플리케이션을 실행하고 있고, 데이터가 다이얼로그 박스에 입력될 필요가 있으면, 사용자는 브라우저 애플리케이션에 대응하여 실행되는 키패드 템플릿을 호출한다. 바람직하게, 키패드 템플릿 애플리케이션은 상기 장치에서 복수의 애플리케이션으로부터 호출될 수 있다.
또한, 본 발명의 측면에 의하면, 프로세서, 메모리, 및 디스플레이하기 위해 신호를 출력하는 출력 포트를 포함하는 그래픽 사용자 인터페이스를 실행하기 위한 애플리케이션 장치가 제공되고, 메모리는 본 발명의 측면을 실행하기 위한 프로그램을 저장한다. 바람직하게, 메모리는 키패드 템플릿의 라이브러리를 저장하고, 바람직하게는 키패드 이미지의 라이브러리를 더 저장한다.
본 발명의 측면에 의하면, 키패드 템플릿 및/또는 키패드 이미지의 라이브러리가 더 제공된다.
본 발명의 측면에 의하면, 본 발명의 방법을 실행하기 위한 컴퓨터 프로그램이 제공된다.
일반
본 명세서에서 그래픽 및 다른 객체에 대해 언급되는 경우, 이와 같은 용어는 대략적으로 해석되는 것이다. 특히, 객체가 객체 지향 프로그램 코드로 한정되는 것을 의미하는 것으로 해석되어서는 안 된다.
바람직하게, 본 명세서에서 설명된 방법은 적합하게 프로그램된 프로세서를 갖는 애플리케이션 실행 장치를 사용하여 실행된다.
바람직하게, 본 발명은 방송 및 전송의 수신에 관한 것이다.
상기 방법중 어느 하나는 디지털 또는 아날로그 텔레비전 리시버/디코더와 같은 리시버/디코더에 의해 실행될 수 있다. 대안적으로, 상기 방법은 이동 전화, 컴퓨터, 또 다른 장치에 의해 실행될 수 있다.
또한, 본 명세서에서 설명된 발명은 설명된 방법중 어느 하나를 실행하기 위한 컴퓨터 프로그램과, 상기 방법중 어느 하나를 실행하기 위한 프로그램을 저장하는 컴퓨터 판독 가능 매체로 확장된다. 또한, 본 발명은 본 발명의 측면중 어느 하나의 방법을 수행하도록 배치된 리시버/디코더용 애플리케이션으로 확장된다.
또한, 본 발명은 컴퓨터 프로그램 제품, 예를 들어 컴퓨터 소프트웨어 및/또 는 컴퓨터 소프트웨어 업그레이드를 포함하는 컴퓨터 프로그램 제품으로 확장된다. 이와 같은 컴퓨터 프로그램 제품은 예를 들어 케이블 또는 위성 방송에 의해 방송 센터로부터 사용자에게 전송될 수 있다. 컴퓨터 프로그램 제품은 디스크, 예를 들어 시디 롬으로 제공될 수 있다. 컴퓨터 프로그램 제품은 예를 들어 하드디스크, 활성 메모리 또는 비활성 메모리와 같은 저장 매체에 저장된 소프트웨어로서, 또는 신호로서 명백히 구현될 수 있다.
따라서, 본 발명의 측면에 의하면, 컴퓨터 프로그램 제품은
룩 객체를 한정하기 위한 코드; 및
룩 객체를 그래픽 객체와 결합하기 위한 코드를 포함하고,
그래픽 사용자 인터페이스에서 그래픽 객체를 한정하는데 사용하기 위한 컴퓨터 프로그램 제품은
그래픽 객체의 외관을 제어하는 룩 객체를 제공하기 위한 코드; 및
그래픽 객체의 동작을 제어하는 위젯 객체를 제공하기 위한 코드를 포함하고; 복수의 상이한 디스플레이 가능한 그래픽 객체 그룹을 한정하고, 복수의 디스플레이 가능한 그룹으로부터 그래픽 객체 그룹을 선택하기 위한 코드를 포함하는, 그래픽 객체 그룹의 외관을 제어하는 방법에 사용하기 위한 컴퓨터 프로그램 제품; 디스플레이 가능한 그래픽 객체 그룹을 한정하기 위한 코드를 포함하는, 그래픽 객체 그룹의 외관을 제어하는 방법에 사용하기 위한 컴퓨터 프로그램 제품; 그래픽 객체의 표시를 디스플레이하는데 사용하기 위한 그래픽 객체의 복수의 그래픽 객체 요소를 한정하는 코드를 포함하는, 그래픽 사용자 인터페이스에서 그래픽 객체의 외관을 제어하는 방법에 사용하기 위한 컴퓨터 프로그램 제품; 그래픽 객체의 인스턴트에 공통된 고정된 요소 세트를 한정하고, 반복 가능한 요소 세트를 한정하기 위한 코드를 포함하는, 그래픽 객체에 대한 요소의 키트를 만드는 방법에 사용하기 위한 컴퓨터 프로그램 제품; 복수의 그래픽 객체 요소를 조합하기 위한 코드를 포함하는, 그래픽 사용자 인터페이스에서 그래픽 객체의 표시를 디스플레이하는 방법에 사용하기 위한 컴퓨터 프로그램 제품; 그래픽 객체의 제 1 디스플레이 가능한 표시를 한정하고, 그래픽 객체의 제 2 디스플레이 가능한 표시를 한정하기 위한 코드, 및 제 1 표시에 인접하는 제 2 표시를 디스플레이하기 위한 코드를 포함하는, GUI에서 그래픽 객체의 외관을 제어하는 방법에 사용하기 위한 컴퓨터 프로그램 제품; 그래픽 객체의 제 1 표시를 디스플레이하고, 그래픽 객체의 제 2 표시를 디스플레이하며, 제 1 표시와 제 2 표시를 연결하는 링크 요소를 디스플레이하기 위한 코드를 포함하는, 그래픽 객체를 디스플레이하는 방법에 사용하기 위한 컴퓨터 프로그램 제품; 그래픽 객체의 링크된 체인을 한정하기 위한 코드를 포함하는, 그래픽 사용자 인터페이스에서 그래픽 객체의 외관을 제어하는 방법에 사용하기 위한 컴퓨터 프로그램 제품; 제 1 그래픽 객체를 한정하고, 제 2 그래픽 객체를 한정하며, 그래픽 객체를 연결하기 위한 링크 요소를 한정하기 위한 코드를 포함하는, 그래픽 사용자 인터페이스에서 그래픽 객체의 외관을 제어하는 방법에 사용하기 위한 컴퓨터 프로그램 제품; 그래픽 객체의 표시를 디스플레이하고, 그래픽 객체들 사이의 링크를 나타내기 위한 링크 요소의 표시를 디스플레이하기 위한 코드를 포함하는, 그래픽 사용자 인터페이스에서 그래픽 객체의 표시를 디스플레이하는 방법에 사용하기 위한 컴퓨터 프로그램 제품; 그래픽 객체의 제 1 표시와 그래픽 객체의 제 2 표시를 한정하기 위한 코드와, 제 1 및 제 2 표시를 선택적으로 디스플레이, 바람직하게는 상기 표시를 순환적으로 디스플레이하기 위한 코드를 포함하는, GUI에서 그래픽 객체의 외관을 제어하는 방법에 사용하기 위한 컴퓨터 프로그램 제품; 그래픽 객체의 제 1 표시를 디스플레이하고, 그 후에 그래픽 객체의 제 2 표시를 디스플레이하기 위한 코드를 포함하는, GUI에서 그래픽 객체의 표시를 디스플레이하기 위한 방법에 사용하기 위한 컴퓨터 프로그램 제품; 및 리시버/디코더에 사용하기 위한 본 명세서에서 설명된 바와 같은 컴퓨터 프로그램 제품이 제공된다.
또한, 메모리 및 프로세서를 포함하는 컴퓨터 프로그램 제품이 제공되고, 메모리는 애플리케이션을 저장하고, (애플리케이션의 제어하에서) 프로세서는 본 명세서에서 설명된 방법중 어느 하나를 실행하며; 본 명세서에서 설명된 방법중 어느 하나를 실행하기 위한 프로그램을 포함하는 컴퓨터 프로그램 제품; 본 명세서에서 설명된 방법중 어느 하나를 실행하기 위한 컴퓨터 프로그램 제품이 제공된다.
또한, 본 발명에 의해 본 명세서에서 설명된 바와 같은 방법중 어느 하나를 실행하기 위한 프로그램을 저장하는 컴퓨터 판독 가능 매체와, 본 명세서에서 설명된 바와 같은 컴퓨터 프로그램 제품을 저장하는 컴퓨터 판독 가능 매체가 제공된다.
또한, 본 명세서에서 설명된 바와 같은 컴퓨터 프로그램 제품을 구현하는 신호가 제공된다.
본 발명은 본 명세서에서 첨부된 도면을 참조하여 기술되고 설명된 바와 같 은 방법과, 첨부된 도면을 참조하여 기술되고 설명된 장치를 더 제공한다.
그래픽 객체에 관련된 본 발명의 측면에 의하면, 본 발명은 그래픽 객체를 한정하고, 그래픽 객체의 외관을 제어하며, 적합한 디스플레이, 예를 들어 텔레비전 스크린 또는 이동 전화의 LCD상에 그래픽 객체의 표시와, 그래픽 객체 자체를 디스플레이하는 방법을 제공한다. 또한, 본 발명은 본 발명을 실행하기 위한 장치와, 바람직하게 적합하게 프로그램된 프로세서를 사용하는 본 발명의 방법을 제공한다.
바람직하게, 본 발명은 디지털 텔레비전에 애플리케이션을, 바람직하게는 텔레비전에 웹 브라우저를 제공한다. 본 발명은 리시버/디코더, 예를 들어 디지털 텔레비전용 리시버/디코더로 구현될 수 있다. 바람직하게, 상기에서 설명된 본 발명의 측면의 특징은 프로세서 및/또는 메모리, 예를 들어 리시버/디코더의 프로세서 및 메모리에 의해 제공된다.
본 명세서에서 설명된 방법중 어느 하나는 디지털 또는 아날로그 텔레비전 리시버/디코더와 같은 리시버/디코더에 의해 실행될 수 있다.
본 명세서에서 사용된 용어 "리시버/디코더"는 텔레비전 및/또는 라디오 신호와 같이 일부 다른 수단에 의해 방송 또는 전송될 수 있는 인코딩 또는 인코딩되지 않은 신호중에 하나를 수신하기 위한 리시버를 의미할 수 있다. 또한, 상기 용어는 수신된 신호를 디코딩하기 위한 디코더를 의미할 수 있다. 이와 같은 리시버/디코더의 실시예는 예를 들어 "셋탑 박스"에서 수신된 신호를 디코딩하기 위한 리시버와 통합되는 디코더를 포함할 수 있고, 이와 같은 디코더는 물리적으로 각각의 수신기와 결합하여 작동하거나, 이와 같은 디코더는 웹 브라우저와 같은 추가 기능을 포함하거나, 비디오 레코더 또는 텔레비전과 같은 다른 장치와 통합된다.
본 발명은 본 명세서에서 예시로써 상술되었고, 내용의 변형이 본 발명의 범위내에서 이루어질 수 있음을 이해할 것이다.
상세한 설명, (적합한) 청구범위 및 도면에 기술된 각 측면들이 독립적으로 또는 어떤 적합한 결합으로 제공될 수 있다.
장치 측면이 특정 기능을 "위한 수단"으로서 본 명세서에서 기술된 경우, 이들 용어가 대략적으로 해석되며, 본 명세서에서 설명된 어떤 특정한 실시예로 한정되어 해석되지 않는 것으로 간주된다. 바람직한 실시예에 의하면, 장치 측면은 프로그램된 컴퓨터 또는 컴퓨터들에 의해 제공되고, 따라서 장치 측면은 컴퓨터 프로그램을 포함하는 컴퓨터 또는 제품의 관련 측면에 의해 바람직하게 제공된다. 예를 들면, 장치 측면은 프로세서, 컴퓨터의 다른 부분, 예를 들어 메모리 또는 데이터 저장 장치로 제공될 수 있다.
하나의 측면의 특징은 다른 유형들에 적용될 수 있으며 방법적 특징들은 장치에 적용될 수 있고, 그 역도 또한 성립한다.
이하 첨부 도면을 참조하여 본 발명의 바람직한 실시예를 단지 예로서 설명한다.
도 1a는 전형적인 디지털 텔레비전 시스템의 구성을 보여주는 도면.
도 1b는 대화식 텔레비전 시스템의 일반적인 구성을 보여주는 도면.
도 2a는 리시버/디코더의 블록도.
도 2b는 리시버/디코더의 구성을 보여주는 도면.
도 2c는 리시버/디코더의 추가 구성을 보여주는 도면.
도 3은 위젯 세트내의 위젯의 계층의 일부의 다이어그램.
도 4는 GUI 디스플레이에 나타내는 위젯의 간소화된 다이어그램.
도 5는 몇 개의 위젯의 메모리의 위치를 보여주는 도면.
도 6a는 웹 브라우저의 스크린 디스플레이를 보여주는 도면.
도 6b는 웹 브라우저를 항해하기 위한 리모콘을 보여주는 도면.
도 7은 웹 브라우저의 추가 스크린 디스플레이를 보여주는 도면.
도 8은 웹 브라우저의 추가 스크린 디스플레이를 보여주는 도면.
도 9는 웹 브라우저의 추가 스크린 디스플레이를 보여주는 도면.
도 10은 웹 브라우저의 추가 스크린 디스플레이를 보여주는 도면.
도 11은 웹 브라우저의 추가 스크린 디스플레이를 보여주는 도면.
도 12는 웹 브라우저의 추가 스크린 디스플레이를 보여주는 도면.
도 13은 웹 브라우저의 추가 스크린 디스플레이를 보여주는 도면.
도 14는 웹 브라우저의 추가 스크린 디스플레이를 보여주는 도면.
도 15는 웹 브라우저의 추가 스크린 디스플레이를 보여주는 도면.
도 16은 웹 브라우저의 추가 스크린 디스플레이를 보여주는 도면.
도 17은 웹 브라우저의 추가 스크린 디스플레이를 보여주는 도면.
도 18은 웹 브라우저의 추가 스크린 디스플레이를 보여주는 도면.
도 19는 웹 브라우저의 추가 스크린 디스플레이를 보여주는 도면.
도 20은 웹 브라우저의 추가 스크린 디스플레이를 보여주는 도면.
도 21은 웹 브라우저의 추가 스크린 디스플레이를 보여주는 도면.
도 22는 웹 브라우저의 추가 스크린 디스플레이를 보여주는 도면.
도 23은 웹 브라우저의 추가 스크린 디스플레이를 보여주는 도면.
도 24는 웹 브라우저의 추가 스크린 디스플레이를 보여주는 도면.
도 25는 웹 브라우저의 추가 스크린 디스플레이를 보여주는 도면.
도 26은 웹 브라우저의 추가 스크린 디스플레이를 보여주는 도면.
도 27은 웹 브라우저의 추가 스크린 디스플레이를 보여주는 도면.
도 28은 웹 브라우저의 추가 스크린 디스플레이를 보여주는 도면.
도 29는 웹 브라우저의 추가 스크린 디스플레이를 보여주는 도면.
도 30은 웹 브라우저의 추가 스크린 디스플레이를 보여주는 도면.
도 31은 타일링(tiling)함으로써 형성되는 그래픽 객체의 예를 보여주는 도면.
도 32는 타일링함으로써 형성되는 그래픽 객체의 추가 예를 보여주는 도면.
도 33은 타이링함으로써 형성되는 그래픽 객체의 추가 예를 보여주는 도면.
도 34는 타이링함으로써 형성되는 그래픽 객체의 추가 예를 보여주는 도면.
도 35는 타이링함으로써 형성되는 그래픽 객체의 추가 예를 보여주는 도면.
도 36은 타이링함으로써 형성되는 그래픽 객체의 추가 예를 보여주는 도면.
도 37은 타이링함으로써 형성되는 그래픽 객체의 추가 예를 보여주는 도면.
도 38은 타이링함으로써 형성되는 그래픽 객체의 추가 예를 보여주는 도면.
도 39는 그래픽 객체를 타이링하는 방법을 보여주는 도면.
도 40은 통상의 이미지 버퍼를 보여주는 도면.
도 41은 타이링된 그래픽 객체의 배치를 보여주는 도면.
도 42는 가상 키보드의 동작을 개략적으로 보여주는 도면.
도 43은 가상 키보드상에서 키에 대한 캐릭터의 통상적인 매핑을 보여주는 도면.
도 44는 가상 키보드의 예를 보여주는 도면.
도 45는 가상 키보드의 통상적인 범위를 보여주는 도면.
디지털 텔레비전 시스템의 전체 구성
디지털 텔레비전 시스템(1)의 전체 구성이 도 1a에 도시된다. 본 발명은 압축된 디지털 신호를 전송하기 위하여, 알려진 MPEG-2 압축 시스템을 사용하는 통상적인 종래 디지털 텔레비전 시스템(2)을 포함한다. 보다 상세히 말하면, 방송 센터에서의 MPEG-2 압축기(3)는 디지털 신호 스트림(전형적으로, 비디오 신호의 스트림)을 수신한다. 압축기(3)는 링크(5)에 의해 멀티플렉서와 스크램블러(4)에 연결된다.
멀티플렉서(4)는 복수의 추가 입력 신호들을 수신하며, 이송 스트림을 조합하여 압축된 디지털 신호들을 링크(7)를 통해 방송 센터의 송신기(6)로 전송하며, 여기서, 링크(7)는 원격 통신 링크를 포함하는 매우 다양한 형태를 취할 수 있다. 송신기(6)는 업링크(8)를 통해 위성 트랜스폰더(9)를 향하여 전자기적 신호를 전송하며, 전자기적 신호들은 위성 트랜스폰더(9)에서 전자적으로 처리되고, 관념상의 다운링크(10)를 통해 최종 사용자에 의하여 소유 또는 임대된 종래의 접시 형태의 지상 수신기(12)로 방송된다. 데이터를 전송하기 위한 다른 전송 채널, 예를 들어 지상 방송, 케이블 전송, 위성/케이블 링크 조합, 전화 네트워크 등이 물론 가능하다.
수신기(12)에 의해 수신된 신호들은 최종 사용자에 의해 소유 또는 임대된 통합 리시버/디코더(13)로 전송되며, 최종 사용자의 텔레비전 세트(14)에 연결된다. 리시버/디코더(13)는 압축된 MPEG-2 신호를 텔레비전 세트(14)용의 텔레비전 신호로 복호화한다. 비록 별개의 리시버/디코더가 도 1a에 도시되었지만, 리시버/디코더는 또한 일체화된 디지털 텔레비전의 부분이 될 수 있다. 본 명세서에서 사용된 용어 "리시버/디코더"는 셋탑 박스와 같은 별개의 리시버/디코더와, 통합된 리시버/디코더를 가지는 텔레비전을 포함한다.
다중 채널 시스템에서, 멀티플렉서(4)는 다수의 패러럴(parallel) 소스로부터 수신되는 음성과 영상 정보를 처리하고, 대응하는 수의 채널을 따라 정보를 방송하기 위해 송신기(6)와 상호 작용한다. 시청각 정보외에, 메시지, 애플리케이션 또는 임의의 다른 종류의 디지털 데이터는 전송된 디지털 음성과 영상 정보가 인터레이싱(interlaced)되는 이들 채널의 일부 또는 전체에 도입될 수 있다.
조건부 액세스 시스템(15)은 멀티플렉서(4) 및 리시버/디코더(13)에 연결되며, 부분적으로 방송 센터와 부분적으로 디코더에 위치한다. 조건부 액세스 시스템(15)은 최종 사용자가 하나 이상의 방송 공급자들이 제공하는 디지털 텔레비전 방송에 액세스할 수 있게 한다. 상업적인 제공(즉, 방송 공급자에 의해 판매되는 하나 또는 여러 가지 텔레비전 프로그램들)에 관한 메시지를 복호화할 수 있는 스마트카드가 리시버/디코더(13)에 삽입될 수 있다. 리시버/디코더(13)와 스마트카드를 사용하여, 최종 사용자는 예약 모드 또는 매 시청 지불(pay-per-view) 모드로 상업적 제공을 구매할 수도 있다. 본 명세서에서 사용된 용어 "스마트카드"는 칩 기반 카드 장치 또는 예를 들어 마이크로프로세서 및/또는 메모리 저장장치를 포함하는 유사한 기능과 성능의 대상물를 포함하지만, 그것만으로 한정되는 것은 아니다. TV 디코더 시스템에 때때로 사용되는 키 형태 장치와 같은 카드에 대안적인 물리적 형태를 가지는 장치가 본 용어에는 포함된다.
상기에서 설명한 바와 같이, 시스템에 의하여 전송되는 프로그램은 멀티플렉서(4)에서 스크램블링되고, 정해진 전송에 적용되는 조건과 암호화 키는 액세스 제어 시스템(15)에 의하여 결정된다. 이와 같은 스크램블링된 데이터의 전송이 유료 TV 시스템 분야에서 잘 알려져 있다. 통상, 스크램블링된 데이터는 데이터를 디스크램블링하기 위한 제어 워드와 함께 전송되고, 제어 워드 자체는 소위 이용키(exploitation key)에 의하여 암호화되고, 암호화된 형태로 전송된다.
그리고, 스크램블링된 데이터와 암호화된 제어 워드는 암호화된 제어 워드를 복호화하고나서 전송된 데이터를 디스트램블링하도록, 리시버/디코더에 삽입되는 스마트카드에 저장된 이용키의 등가물에 액세스를 가지는 리시버/디코더(13)에 의하여 수신된다. 납입을 끝낸 가입자는 예를 들어 방송 월간 EMM(권한부여 제어 메 시지(Entilement Management Message))에서 텔레비전 프로 전송을 허가하기 위하여 암호화된 제어 워드를 복호화하는데 필요한 이용키를 수신할 것이다.
대화식 시스템
또한, 멀티플렉서(4) 및 리시버/디코더(13)와 연결되며, 부분적으로 방송 센터와 디코더에도 설치되는 대화식 시스템(16)은 최종 사용자가 모뎀 백 채널(modem back channel: 17)을 통하여 다양한 애플리케이션과 상호 작용할 수 있게 한다. 또한, 모뎀 백 채널은 조건부 액세스 시스템(15)에 사용되는 통신에 사용될 수 있다.
도 1b는 디지털 텔레비전 시스템(1)의 대화식 텔레비전 시스템(16)의 일반적인 구성을 보여준다.
예를 들면, 대화식 시스템(4000)은 최종 사용자가 온 스크린(on-screen) 카달로그로부터 물품을 구매하고, 지방 뉴스 및 기상 지도를 요구시 문의하게 하며, 게임을 그 텔레비전을 통해 즐길 수 있게 한다.
대화식 시스템(4000)은 다음과 같은 4개의 주요 요소를 포함한다.
Figure 112002013541145-pct00002
방송 공급자가 애플리케이션을 생성, 개발, 디버그 및 시험할 수 있게 하기 위한 방송 센터 또는 그 외에서의 저작 툴(authoring tool:4004);
Figure 112002013541145-pct00003
방송 공급자가 멀티플렉서 및 스크램블러(2004)로 전달되는 애플리케이션 및 데이터를 최종 사용자에게 방송되는 MPEG-2 이송 스트림(통상, 프라이비트 섹션(private section))으로 삽입하기 위해 준비, 인증 및 포맷할 수 있도록 하는 저작 툴(4004)에 연결된 방송 센터에서의 애플리케이션 및 데이터 서버(4006);
Figure 112002013541145-pct00004
최종 사용자가 애플리케이션을 실행하기 위한 디코더(2020)의 작업 메모 리로 수신, 인증, 압축해제, 로드할 수 있도록, 최종 사용자에 의해 소유 또는 임대된 리시버/디코더(2020)에 설치된 실행 가능한 코드인 실행 시간 엔진(run time engine(RTE):4008)을 포함하는 가상 머신(virtual machine). 또한, 엔진(4008)은 상주, 범용 애플리케이션을 실행한다. 엔진(4008)은 하드웨어 및 운영 체제와 무관하다.
Figure 112002013541145-pct00005
서버(4006)에 지시하는 신호가 최종 사용자의 요청시에 데이터 및 애플리케이션을 MPEG-2 전송 스트림에 삽입될 수 있게 하는 리시버/디코더(13)와 애플리케이션 사이의 모뎀 백 채널(4002).
대화식 텔레비전 시스템은 리시버/디코더 및 그 내부에 포함된 각종 장치의 기능을 제어하는 "애플리케이션"을 사용해서 동작된다. 애플리케이션은 "자원 파일"로서 엔진(4008)에 표시된다. "모듈"은 자원 파일 및 데이터의 세트이다. 리시버/디코더의 "메모리 볼륨"은 모듈용 저장 공간이다. 모듈은 MPEG-2 전송 스트림으로부터 리시버/디코더(2020)로 다운로드될 수 있다.
리시버/디코더
도 2a를 참조하여, 리시버/디코더(13)의 다양한 요소가 기능적인 블록의 형태로 기술될 것이다.
예를 들면, 디지털 셋탑 박스(DSTB)가 될 수 있는 리시버/디코더(13)는 중앙 프로세서(220)를 포함하는데, 중앙 프로세서(220)는 연관된 메모리 요소들을 포함 하고, 직렬 인터페이스(221), 병렬 인터페이스(222), (도 1a의 모뎀 백 채널(17)에 연결된) 모뎀(223) 및 디코더의 프런트 패널의 스위치 접촉(224)으로부터 입력 데이터를 수신한다.
리시버/디코더는 제어부(226)를 통해 적외선 리모콘(225)으로부터의 입력을 추가적으로 수신하고, 또한 은행 또는 예약 스마트카드(242, 240) 각각을 판독하는 2개의 스마트카드 판독기(227, 228)를 포함한다. 예약 스마트카드 판독기(228)는 삽입된 예약 카드(240) 및 조건부 액세스부(229)와 결합하여, 암호화된 방송 신호를 디스크램블링할 수 있게 하기 위해, 필요한 제어 워드를 디멀티플렉서/디스크램블러(230)로 공급한다. 또한, 디코더는 디멀티플렉서/디스크램블러(230)에 의해 필러링 및 디멀티플렉싱되기 전에 위성 전송을 수신 및 복조하기 위해, 종래의 튜너(231)와 복조기(232)를 포함한다.
데이터를 리시버/디코더내에서 처리하는 것은 중앙 프로세서(220)에 의해 일반적으로 조절된다. 도 2b는 리시버/디코더의 중앙 프로세서(220)의 소프트웨어 구조를 도시한다. 도 2b를 참조하면, 소프트웨어 구조는 실행 시간 엔진(4008), 장치 관리자(4068), 및 하나 이상의 애플리케이션(4056)을 실행하기 위한 복수의 장치(4062)와 장치 드라이버(4066)를 포함한다.
본 설명에서 사용된 바와 같이, 바람직하게 애플리케이션은 리시버/디코더(13)의 하이 레벨의 기능을 제어하기 위한 컴퓨터 코드의 부분이다. 예를 들면, 최종 사용자가 텔레비전(14)의 스크린상에 보여지는 버튼 객체에 리모콘(25)의 초점을 위치시키고 확인키를 누를 때, 버튼과 결합된 명령어 시퀀스가 실 행된다.
대화식 애플리케이션은 메뉴를 제시하고, 최종 사용자의 요구에 맞는 명령어를 실행하며, 애플리케이션의 목적에 관련된 데이터를 제공한다. 애플리케이션은 상주 애플리케이션, 즉, 리시버/디코더(13)의 ROM(또는 FLASH 또는 다른 비휘발성 메모리)에 저장되거나, 리시버/디코더(13)의 RAM 또는 FLASH 메모리로 방송 및 다운로드되는 상주 애플리케이션일 수 있다.
애플리케이션은 리시버/디코더(13)의 메모리 위치에 저장되고, 자원 파일로서 표시된다. 자원 파일은 상기에서 설명된 특허 명세서에서 기술된 바와 같이, 그래픽 객체 설명부 파일, 가변 블록부 파일, 지시 시퀀스 파일, 애플리케이션 파일 및 데이터 파일을 포함한다.
리시버/디코더는 RAM 볼륨, FLASH 볼륨 및 ROM 볼륨으로 분할된 메모리를 포함하지만, 이 물리적 구성은 논리적 구성과는 다르다. 메모리는 다양한 인터페이스와 연관된 메모리 볼륨으로 더 분할될 수 있다. 하나의 관점에서는 메모리가 하드웨어의 일부로서 간주될 수 있고, 또 다른 관점에서는 메모리가 하드웨어와는 별도로 나타낸 전체 시스템을 유지 또는 포함하는 것으로 간주될 수 있다.
소프트웨어 구조
중앙 프로세서는(20)는 가상 머신(4007)의 일부를 형성하는 실행 시간 엔진(4008)의 중심에 있는 것으로 간주될 수 있다. 이것은 한편("하이 레벨")으로는 애플리케이션에, 다른 한편("로우 레벨")으로는 상기에서 기술한 바와 같은 다 양한 포트(즉, 예를 들어 직렬 인터페이스(221), 병렬 인터페이스(222), 모뎀(223) 및 제어부(226))를 포함하는 리시버/디코더 하드웨어(4061)에 하기에서 설명될 다양한 중간 논리 장치를 통해 결합된다.
도 2b를 참조하면, 다양한 애플리케이션(4057)이 가상 머신(4007)에 결합되며, 보다 일반적으로 사용된 애플리케이션(4057)의 일부는 애플리케이션(4057)에 나타낸 바와 같이 시스템에 다소 영구적으로 상주될 수 있지만, 나머지는 예를 들어, MPEG 데이터 스트림 또는 다른 포트로부터 요구시에 시스템으로 다운로드될 것이다.
가상 머신(4007)은 실행 시간 엔진(4008) 외에, 툴 박스(4058)를 포함하는 일부의 상주 라이브러리 함수(4006)를 포함한다. 라이브러리는 엔진(4008)에 의해 사용된 C 언어로 각종 함수를 포함한다. 이것은 데이터 구조의 압축, 확장 또는 비교, 라인 묘화(drawing) 등과 같은 데이터 조작을 포함한다. 또한, 라이브러리(4006)는 하드웨어 및 소프트웨어 버전 번호와 이용 가능한 RAM 공간과 같은 리시버/디코더(13)에서의 펌웨어에 관한 정보와, 새로운 장치(4062)를 다운로드할 때 사용되는 함수를 포함한다. 함수는 FLASH 또는 RAM 메모리에 저장되는 라이브러리로 다운로드될 수 있다.
실행 시간 엔진(4008)은 장치 관리자(4068)에 결합되고, 장치 관리자(4068)는 장치(4062) 세트에 결합되고, 장치(4062) 세트는 장치 드라이브(4060)에 결합되며, 장치 드라이브(4060)는 포트 또는 인터페이스에 교대로 결합된다. 광범위한 용어에 의하면, 장치 드라이버는 논리적 인터페이스를 한정하는 것으로 간주될 수 있 어, 2개의 상이한 장치 드라이버가 공통의 물리적 포트에 결합될 수 있다. 장치는 일반적으로 하나 이상의 장치 드라이버에 결합될 것이며, 장치가 단일 장치 드라이버에 결합되면, 장치는 통신하는데 요구되는 전체 기능성을 포함하도록 설계되어, 별개의 장치 드라이버가 필요없게 된다. 정해진 장치가 그 자체사이에서 통신할 수 있다.
리시버/디코더(13)의 각 기능은 리시버/디코더(13)의 소프트웨어 구조에서 장치(4062)로서 표현된다. 장치는 지역 장치 또는 원격 장치일 수 있다. 지역 장치(4064)는 스마트카드, SCART 커넥터 신호, 모뎀, 직렬 및 병렬 인터페이스, MPEG 영상 및 음성 플레이어 및 MPEG 섹션 및 테이블 추출기를 포함한다. 포트 및 프로시저(procedure)는 리시버/디코더 제조업자에 의해 제공 및 설계되는 장치 및 장치 드라이버에 의해서기 보다는 시스템 허가 또는 설계자에 의해 정의되어야 한다는 점에서 원격지에서 실행되는 원격 장치(4066)는 지역 장치와 다르다.
실행 시간 엔진(4008)은 마이크로 프로세서 및 공통 애플리케이션 프로그래밍 인터페이스(API)의 제어하에서 실행된다. 이들은 모든 리시버/디코더(13)에 설치되어, 모든 리시버/디코더(13)가 애플리케이션 관점에서 동일하다.
엔진(4008)은 애플리케이션(4056)을 리시버/디코더(13)에서 실행한다. 엔진(4008)은 대화식 애플리케이션(4056)을 실행하고, 리시버/디코더(13)의 외부로부터 이벤트를 수신하고, 그래픽 및 텍스트를 표시하고, 장치에 서비스를 호출하고, 특정 계산을 위한 엔진(4008)에 연결된 라이브러리(4006) 함수를 사용한다.
실행 시간 엔진(4008)은 각 리시버/디코더(13)에 설치된 실행 가능한 코드이 며, 애플리케이션을 해석 및 실행하는 인터프리터를 포함한다. 엔진(4008)은 (MS-DOS와 같은) 단일 작업 운영 체제를 포함하는 모든 운영 체제에 적용할 수 있다. 엔진(4008)은 (다양한 동작을 실행하기 위해, 키 프레스와 같은 다양한 이벤트를 취하는) 프로세스 시퀀서 장치에 근거하며, 다른 하드웨어 인터페이스로부터의 이벤트 큐를 관리하기 위해 그 자체의 스케줄러를 포함한다. 또한, 엔진(4008)은 그래픽과 텍스트의 디스플레이를 처리한다. 프로세스 시퀀서 장치는 동작 그룹 세트를 포함한다. 각 이벤트는 프로세스 시퀀서 장치가 이벤트 특성에 따라 현재 동작 그룹으로부터 다른 동작 그룹으로 이동하고, 새로운 동작 그룹의 동작을 실행할 수 있도록 한다.
엔진(4008)은 코드 로더를 포함하여, 애플리케이션(4056)을 리시버/디코더 메모리로 로드 및 다운로드한다. 최적의 사용을 보증하개기 위해, 필요한 코드만 RAM 또는 FLASH 메모리에 로딩된다. 다운로드된 데이터는 애플리케이션(4056)의 어떠한 수정, 또는 허가되지 않은 모든 애플리케이션의 실행을 방지하기 위하여 인증 매카니즘에 의해 확인된다. 엔진(4008)은 압축 해제기를 더 포함한다. 애플리케이션 코드(중간 코드의 형태)는 MPEG 스트림으로부터 또는 내장 리시버/디코더 모드를 통해 공간을 절약하고 고속으로 다운로드하기 위하여 압축되기 때문에, 코드는 RAM으로 로딩되기 전에 압축 해제되어야 한다. 또한, 엔진(4008)은 다양한 변수 값을 업데이트하고, 상태 변화를 판단하기 위해 애플리케이션 코드를 해석하는 인터프리터와, 에러 체커를 포함한다.
리시버/디코더의 구조
리시버/디코더는 소프트웨어가 어떠한 리시버/디코더에서, 그리고 어떠한 운영 체제로 실행될 수 있도록 구성되는 5가지의 소프트웨어 층을 포함한다. 도 2c를 참조하면, 다양한 소프트웨어 층은 애플리케이션 층(250), 애플리케이션 프로그래밍 인터페이스(API) 층(252), 가상 머신 층(254), 장치 층(256) 및 시스템 소프트웨어/하드웨어 층(258)이다.
애플리케이션 층(250)은 리시버/디코더에 상주 또는 리시버/디코더로 다운로드되는 애플리케이션들을 포함한다. 이 애플리케이션들은 고객에 의해 사용되고, 예를 들어 자바, HTML, MHEG-5 또는 다른 언어로 작성되는 대화식 애플리케이션들이거나, 이와 같은 애플리케이션들을 실행하기 위해 리시버/디코더에 의해 사용되는 애플리케이션들일 수 있다. 이 층은 가상 머신 층에 의해 제공되는 개방 애플리케이션 프로그래밍 인터페이스(API) 세트에 근거한다. 이 시스템은 애플리케이션이 곧바로 또는 요구가 있는 즉시 리시버/디코더의 FLASH 또는 RAM 메모리로 다운로드될 수 있게 한다. 애플리케이션 코드는 데이터 저장 매체 명령과 제어(DSMCC), 네트워크 파일 서버(NFS) 또는 다른 프로토콜과 같은 프로토콜들을 사용하는 압축된 또는 압축되지 않은 포맷으로 전송될 수 있다.
대화식 애플리케이션은 예를 들어 전자 프로그램 가이드, 텔레뱅킹 애플리케이션 및 게임과 같은 제품과 서비스를 획득하기 위해 사용자와 상호 작용하는 애플리케이션이다.
다음과 같은 다양한 보안 특성이 다운로드된 애플리케이션과 데이터에 대해 제공된다.
●우선 의도된 네트워크에 대해 인증되지 않고는 어떠한 것도 리시버/디코더로 다운로드될 수 없으며, 이는 비등록 소프트웨어가 어느 것이라도 리시버/디코더에서 실행되는 것을 방지한다. 이것은 리시버/디코더에서 실행되는 어떤 소프트웨어가 인정되고 완전히 검사되는 것을 의미한다.
●보안 관리자는 애플리케이션의 액세스를 다양한 메모리 존으로 한정하여, 데이터 무결성을 보증한다.
●시스템은 안전한 프로세서(예를 들어, 리시버/디코더에 삽입된 스마트카드)를 사용하는 어떤 조건부 액세스 시스템과 상호 작용할 수 있다.
다음의 상주 애플리케이션은 대화식 애플리케이션을 관리하는데 사용된다.
●부트. 부트 애플리케이션은 리시버/디코더에 전원이 인가될 때 시작되는 제 1 애플리케이션이다. 부트 애플리케이션은 그 첫번째가 애플리케이션 관리자인 가상 머신에서의 상이한 "관리자"를 시작한다.
●애플리케이션 관리자. 애플리케이션 관리자는 리시버/디코더에서 실행되는 대화식 애플리케이션을 관리하고, 즉, 애플리케이션 관리자는 리시버/디코더는 이벤트를 시작, 중지, 정지, 개재 및 처리하고, 애플리케이션들 사이에서의 통신을 다룬다. 애플리케이션 관리자는 다중 애플리케이션들이 동시에 실행될 수 있게 하여, 다중 애플리케이션들중에서 자원의 할당에 관여한다. 이 애플리케이션은 사용자에게 완전히 투명하게 된다.
●설정(SetUp). 설정 애플리케이션의 목적은 주로 설정 애플리케이션이 사용되는 제 1 시간에 리시버/디코더를 구성하는 것이다. 설정 애플리케이션은 TV 채널을 검색, 데이터 및 시간을 설정, 사용자 선호를 확립하는 것 등과 같은 동작을 행한다. 그러나, 설정 애플리케이션은 리시버/디코더 구성을 변경하기 위해 언제라도 시간에 사용자에 의해 사용될 수 있다.
●재핑(Zapping). 재핑 애플리케이션은 프로그램 업, 프로그램 다운 및 숫자 키들을 사용하여 채널을 변경하는데 사용된다. 또 다른 형태의 재핑이 사용될 때, 예를 들어 배너(파일롯) 애플리케이션(실행) 동안은 재핑 애플리케이션이 정지된다.
●콜백(Callback). 콜백 애플리케이션은 리시버/디코더 메모리에 저장된 다양한 파라미터의 값을 추출하고, 이들 값을 모뎀 백 채널(17)을 통해, 또는 다른 수단에 의해 상업적 운영자에게로 반환한다.
API 층(252)은 대화식 애플리케이션 개발용의 하이 레벨(high-level)의 유틸리티를 제공한다. API 층은 이 높은 레벨의 API를 구성하는 몇몇 패키지를 포함한다. 이 패키지는 대화식 애플리케이션을 구동하는데 필요한 모든 기능을 제공한다. 패키지는 이 애플리케이션들에 의해 액세스될 수 있다.
바람직한 실시예에서, API는 자바 프로그래밍 언어로 작성된 애플리케이션들을 실행한다. 더욱이, API는 HTML 및 MHEG-5와 같은 다른 포맷을 해석할 수 있다. 이 인터프리터 외에, API는 요구들이 지시될 때 분리되고 확장될 수 있는 다른 패 키지와 서비스 모듈을 또한 포함한다.
가상 머신 층(54)은 언어 인터프리터, 다양한 모듈 및 시스템으로 구성된다. 가상 머신 층은 이하를 포함하는 리시버/디코더에서 대화식 애플리케이션을 수신하고 실행하는데 필요한 모든 것으로 구성된다.
●언어 인터프리터. 상이한 인터프리터가 판독될 애플리케이션의 형태와 일치하도록 설치될 수 있다. 이들은 자바, HTML, MHEG-5 등을 포함한다.
●서비스 정보(SI) 엔진. SI 엔진은 일반적인 디지털 비디오 방송(DVB) 또는 프로그램 시스템 정보 프로토콜(PSIP) 표를 로드하고 모니터링하며, 그들을 캐시에 올린다. SI 엔진은 그들에 포함된 데이터를 필요로 하는 애플리케이션로 하여금 이들 표로의 액세스하는 것을 허용한다.
●스케줄러. 이 모듈은 각각의 스레드가 이벤트 큐(queue)를 갖는 삽입형(pre-emptive) 미리 빈 다중 스레드 스케줄링을 허용한다.
●메모리 관리자. 이 모듈은 메모리로의 액세스를 관리한다. 또한, 이 모듈은 필요시에 메모리내의 데이터를 압축하고, 자동 가베지 수집을 행한다.
●이벤트 관리자. 이 모듈은 이벤트가 우선도에 따라 트리거될 수 있게 한다. 이 모듈은 타이머와 이벤트 그래빙을 관리하고, 애플리케이션이 이벤트를 서로 전송할 수 있게 한다.
●동적 링커. 이 모듈은 원시 자바 함수로부터 발생되는 어드레스의 분리를 허용하고, RAM으로 다운로드된 자바 클래스로부터 원시 방법을 로드하며, 다운로드된 원시 코드로부터 ROM에 대한 호출을 분리한다.
●다운로더. 이 모듈은 상주 데이터와 동일한 방법으로 액세스되는 다운로드된 파일과 함께, 원격 DSMCC 커러셀(carousel)로부터 또는 NFS 프로토콜을 통한 자동 데이터 로딩을 사용한다. 또한, 메모리 클린업, 압축, 인증이 제공된다.
●클래스 관리자. 이 모듈은 클래스들을 로드하고, 문제를 참조하는 어떠한 클래스들을 분리한다.
●파일 시스템. 이 모듈은 다중 ROM, 플래쉬, RAM 및 DSMCC 볼륨을 갖는 계층 파일 시스템을 관리하기 위해 간결하고, 최적화된다. 플래쉬 무결성이 어떠한 사고에 대해서도 보증된다.
●보안 관리자. 이 모듈은 애플리케이션을 인증하고 센서티브(sensitive) 메모리와 셋탑 박스의 다른 존에 대한 애플리케이션의 액세스를 제어한다.
●그래픽 시스템. 이 시스템은 객체 지향적이고 최적화된다. 이 시스템은 다중 언어 지원을 갖는 벡터 폰트 엔진뿐만 아니라 그래픽 윈도우와 객체 관리를 포함한다.
더욱이, DAVIC 자원 통지 모델이 지원되어, 클라이언트 자원이 효과적으로 관리된다.
장치 층(256)은 장치 관리자 및 장치들을 포함한다. 장치들은 외부 이벤트를 관리하는데 필요한 논리적인 자원들과 물리적인 인터페이스들로 구성된 소프트웨어 모듈들이다. 장치 층은 드라이버와 애플리케이션 사이의 통신 채널을 관리하고, 강화된 에러 제외 검사를 제공한다. 관리되는 장치들의 일부 예들은 카드 판독기, 모 뎀, 네트워크, PCMCIA(개인 컴퓨터 메모리 카드 국제 협회), LED 디스플레이 등이다. API 층은 상기 장치들을 제어하기 때문에, 프로그래머는 직접 이 층을 다룰 필요는 없다.
시스템 소프트웨어/하드웨어 층(258)은 리시버/디코더의 제조업자에 의해 제공된다. 시스템의 모듈 방식 때문에, 그리고 (이벤트 스케줄링과 메모리 관리와 같은) OS에 의해 공급되는 서비스가 가상 머신의 일부이기 때문에, 최상위 층은 특별한 실시간 운영 체제(RTOS) 또는 특별한 프로세서에 연결되지 않는다.
위젯 세트
바람직한 실시예에 있어서, 위젯 세트는 그래픽 사용자 인터페이스(GUI)에서 구동되는 애플리케이션에 사용하기 위해 제공된다. 이와 같은 위젯 세트중의 하나의 특별한 애플리케이션은 위젯을 디지털 텔레비전용 리시버/디코더의 GUI 디스플레이에 제공하는 것이다. 각 위젯은 객체 지향 모듈로서 실행되어, 각 위젯에 대해 대응 위젯 클래스가 존재한다. 따라서, 모든 위젯이 다른 위젯의 클래스를 상속하거나 집약함으로써, 보다 간단한 구성 요소 위젯으로부터 확립될 수 있다.
도 3은 위젯 세트내의 위젯 계층의 간소화된 다이어그램이다. 본 실시예에 있어서, 위젯 세트는 특히 윈도우와 다이얼로그 박스 프레임, 슬라이더 제어, 푸시 버튼, 체크 박스, 텍스트 필드 및 텍스트 에디트 박스를 포함하는 원시적 위젯 클래스(410) 세트를 포함한다. 다음 레벨의 복잡성에 있어서, 몇 개의 원시적 위젯 클래스를 결합하거나 원시적 위젯의 동작을 수정하는 클래스(420)가 존재한다. 예 를 들면, 리스트 박스와 같은 위젯은 텍스트 에디트 박스 클래스로부터 수정 가능한 리스트 아이템을 생성할 수 있고, 사용자가 슬라이더 제어 클래스로부터 파생된 스크롤 바를 사용하여 리스트를 통해 스크롤할 수 있게 한다. 보다 상위 레벨의 복잡성에 있어서, 위젯 세트는 푸시 버튼, 스크롤 가능한 리스트, 텍스트 필드 및 텍스트 에디트 박스를 포함하는 파일 선택 다이얼로그 박스와 같은 집약 위젯(430)을 포함하고, 이들 모두는 위젯 세트의 다른 클래스로 한정된다.
각 위젯 클래스는 위젯의 동작을 제어하는 메소드(method)와 이벤트 핸들러를 실행한다. 또한, 위젯 클래스는 위젯의 일부를 묘화하기 위한 메소드를 포함할 수 있다. 그러나, 위젯에 특별한 외관 또는 "룩(look)"을 제공하기 위해, 위젯 클래스는 위젯 클래스가 결합되는 룩 객체 클래스의 묘화 메소드를 호출한다. 이것은 하기에서 보다 상세하게 설명될 것이다.
룩 클래스 퍼블릭 메소드(public method) 및 API
룩 객체 클래스 및 위젯 클래스가 상호 작용될 수 있게 하기 위해, 룩 객체 클래스가 위젯 클래스에 의해 사용될 수 있도록 보증되는 퍼블릭 메소드의 일관성 세트(consistence set)를 갖는 것이 필요하다. 특히, 룩 객체 클래스는 표준 API를 제공해야 하고, 이 표준 API는 위젯 클래스가 GUI 디스플레이상에 그 자체를 묘화되도록 호출될 수 있는 메소드를 포함한다.
위젯에 의해 사용된 API는 모든 룩이 파생되는 기본 클래스로 한정된다. API는 다음 요소를 포함한다.
1. 일반적인 디스플레이 메소드
2. 특별한 디스플레이 메소드
3. 인스턴스의 생성 및 파괴 제어
4. 경계 제어
5. 수정 제어
일반적인 디스플레이 메소드는 모든 위젯이 이용될 수 있지만, 특별한 디스플레이 메소드는 어떤 형태의 위젯에 특정된다.
룩은 계층 구조를 사용하여 구성된다. 새로운 룩 클래스는 새로운 룩 클래스가 파생하는 속성, 메소드 및 디폴트 값을 상속함으로써 생성되고, 그 후 새로운 속성, 메소드 및 디폴트 값을 추가하거나, 상속된 이들중 일부 또는 전체를 무시한다.
룩 클래스는 퍼블릭 메소드에 대한 포인터를 포함하는 표로서 구성된다. 또 다른 룩 클래스로부터 파생되는 룩 클래스는 관련된 포인터를 변경함으로써 메소드를 재한정할 수 있어, 룩 클래스는 또 다른 메소드를 나타낸다. 통상, 룩 클래스는 이용 가능한 퍼블릭 메소드중 일부를 단지 실행한다.
하나의 실행에 있어서, 더미 메소드로 알려진 퍼블릭 메소드가 제공되고, 이는 호출을 반환하는 것 이외에 다른 것은 행하지 않는다. 룩 클래스에 의해 실행되지 않은 메소드가 위젯에 의해 호출되면, 더미 메소드가 호출된다. 이것은 메소드가 실제로 실행되지 않을 때조차 메소드 호출을 기능하는 에러 프리를 보증하기 위해 행해진다. 더미 메소드를 호출하는 불이점은 어느 것도 행해지 않는 메소드를 호출하는데 시간이 소비될 수 있는 것이다.
또 다른 실행에 있어서, 룩 클래스는 타당성 검사 마스크(validation mask)로 제공된다. 타당성 검사 마스크는 메소드가 룩 클래스에 의해 호출될 수는 것을 한정하여, 실행되지 않는 메소드는 호출되지 않는다. 이 경우에, 위젯은 실행되지 않는 메소드를 인식하여, 위젯은 이와 같은 메소드에 대한 호출의 생성을 회피할 것이다. 이와 같이, 더미 메소드를 호출하는데 소비되는 시간을 방지하는 것이 가능하다.
룩 클래스는 둘 이상의 다른 클래스(다중 상속)로부터 파생될 수 있다. 이것은 룩 클래스가 둘 이상의 다른 룩의 결합으로 생성될 수 있다. 상기에서 설명된 바와 같이, 룩 클래스가 생성될 때, 룩 클래스는 파생되는 룩 클래스의 속성, 메소드 및 디폴트 값을 채용한다. 다중 상속을 실행하기 위해, 룩은 속성, 메소드 및 디폴트 값을 파생하는 추가 클래스에 대한 하나 이상의 포인터를 포함한다. 그 후, 룩은 이들 자체를 복사 또는 생성해야 할 필요 없이, 속성, 메소드 및 디폴트 값을 액세스할 수 있다.
또 다른 실시예에 있어서, 룩 클래스가 생성될 때, 룩 클래스는 파생되는 룩 클래스 전체의 속성, 메소드 및 디폴트 값을 채용한다.
또한, 다중 상속의 원리는 비표준 위젯이 디자인되는 상황에서 이용될 수 있고, 여기서 비표준 위젯은 비표준 메소드를 실행하도록 룩을 요구할 수 있다. 룩에서의 포인터는 위젯을 디스플레이하는데 요구되는 비표준 메소드를 포함하는 제 2 룩 클래스를 나타낼 수 있다.
룩이 파생되는 다양한 룩 클래스는 서로 충돌되지 않는 것을 보증하는 것이 중요하다. 이것은 추가 룩 클래스가 룩이 파생되는 메인 룩 클래스에 있지 않는 메소드를 단지 포함하는 것을 보증함으로써, 또는 선호도 순서(order)를 다양한 클래스에 제공함으로써 행해질 수 있다.
룩 객체 클래스의 퍼블릭 메소드의 예가 하기와 같이 설정된다.
Figure 112002013541145-pct00006
Figure 112002013541145-pct00007
Figure 112002013541145-pct00008
위젯의 생성 및 디스플레이
애플리케이션이 위젯을 GUI의 디스플레이상에 나타내도록 요구할 때, 애플리 케이션이 수행해야 하는 제 1 작업은 위젯 클래스의 인스턴스를 구성하는 것이다. 위젯 인스턴스를 생성하는 동안, 룩 클래스 인스턴스는 위젯 클래스 인스턴스와 결합된다. 특별한 룩은 다음과 같이 선택된다.
1. 룩 클래스 인스턴스가 애플리케이션에 의해 생성자로 전달되면, 룩 클래스 인스턴스를 사용한다.
2. 그렇지 않고 하나가 존재하면, 생성되는 위젯의 클래스에 지정된 디폴트 룩을 사용한다.
3. 그렇지 않고 하나가 존재하면, 위젯 문맥에 지정된 디폴트 룩을 사용한다.
4. 그렇지 않으면, 디폴트 룩을 위젯 세트에 사용한다.
일단 위젯 클래스가 예시되면, 애플리케이션은 애플리케이션을 디스플레이하기 위해 애플리케이션의 퍼블릭 메소드중 적합한 하나를 호출할 수 있다.
또한, 위젯 클래스는 바람직하게 룩 클래스에 대한 포인터로 호출될 수 있는 퍼블릭 메소드를 제공하고, 그 후, 그 룩 클래스 인스턴스는 위젯 클래스 인스턴스와 결합된다. 이것은 위젯의 외관이 새롭게 결합된 룩 클래스 인스턴스에 따라 변경될 수 있게 한다. 실제로 "결합(association)"은 위젯 클래스 인스턴스내의 필드 값을 설정하는 것뿐인 것을 이해해야 한다. 가장 간단한 실시예에 있어서, 위젯을 다른 룩 클래스와 결합하는 것은 필드에 배정함으로써 간단하게 행해질 수 있다. (그러나, 메모리 관리에 관련된 하기의 주석과 메소드 MhwWgtXxxSetLook을 참조하기 바란다.) 더욱이, 다수의 위젯 클래스 인스턴스는 하나의 룩 클래스 인스턴스와 결합될 수 있다. 이것은 도 5에 도식적으로 설명된다.
위젯 클래스 메소드가 GUI 디스플레이상에 위젯을 묘화하도록 호출될 때, 위젯 클래스 메소드는 위젯의 이미지를 다음 순서로 빌드(build)한다.
1. 위젯의 배경(예를 들어, 배경 칼라 또는 이미지)
2. 배경 오버레이(예를 들어, 로고)
3. 위젯의 전경
4. 전경 오버레이(예를 들어, 로고)
5. 위젯 경계
6. 강조
7. 입력 초점
정해진 위젯에 대해 어떤 부분이 존재하지 않을 수 있다. 위젯 부분의 존재 또는 부재는 다음 기준에 의존한다.
1. 하드 코딩. 일부가 위젯의 어떤 클래스에 한정되지 않는다.
2. 옵션 부분. 예를 들면, 초점, 강조 및 하이라이트가 위젯의 퍼블릭 속성에 의해 억제될수 있다.
3. 룩의 한정. 룩은 하나 이상의 부분을 생략할 수 있다.
전형적인 예에 의하면, 다음 단계가 실행된다.
우선, 위젯의 배경이 위젯 클래스 메소드 자체에 의해 예를 들어, 배경 칼라, 배경 패턴 또는 이미지를 채색함으로써 묘화된다. 그 후, 배경 오버레이가 디스프레이상에 위젯의 높이, 폭 및 위치에 대한 적합한 인자를 지정하는 결합된 룩 인스턴스 MhwWgtLookDrawBackground의 퍼블릭 메소드를 호출함으로써 묘화된다. 따라서, 배경 외관은 예를 들어, 로고를 오버레이함으로써 룩에 의해 수정된다.
위젯 클래스 메소드는 위젯의 전경을 빌드해야만 하고, 즉 위젯 클래스 메소드는 위젯이 사용중일 때 사용자 또는 디스플레이 정보에 의해 실제로 조작되는 시각 객체를 생성한다. 예를 들면, 위젯은 체크 박스를 실행할 수 있고, 이 경우에 위젯은 룩 클래스 메소드 MhwWgtLookDrawCheckSymbol을 호출한다. 그 후, 룩은 예를 들어, 로고를 오버레이함으로써 전경을 수정할 수 있다.
위젯의 경계 영역이 하기에서 설명될 바와 같이 묘화된다.
위젯 클래스가 위젯내의 객체중의 하나가 입력 초점을 갖는 것을 판단하면, 위젯 클래스는 이것을 디스플레이된 위젯에 나타내도록 룩 클래스 메소드 MhwWgtLookDrawFocus를 호출한다. 유사하게, 위젯 부분이 강조되면, 위젯 클래스는 룩 클래스 메소드 MhwWgtLookDrawHighlight를 호출한다.
위젯 경계 관리
룩이 위젯의 외관을 GUI 디스플레이상에서 제어하는 방법의 하나의 특정 예는 경계의 관리에 있다. GUI 디스플레상에 가장 일반적인 형태의 경계를 갖는 위젯의 외관이 도 4에 도시된다. 위젯(500)은 GUI의 디스플레이에서 직사각형 구역을 점유한다. 위젯에 의해 점유된 구역은 경계 영역에 의해 둘러싸여진 내부 오퍼레이티브(operative) 영역(510)의 2개의 영역에 의해 점유된다.
통상, 경계 영역은 위젯의 기능에 도움이 되지 않는다(비록, 일부 경우에 경계 영역이 위젯을 이동 및/또는 크기를 조절하기 위해 사용자에 의해 사용될 수 있지만). 따라서, 사용자의 소망에 따라 경계 영역의 외관을 변화하기 위한 상당한 범위가 존재한다. 예를 들면, 칼라, 폭, 배경 패턴은 사용자에게 요청 또는 일관성있는 외관을 제공하기 위해 모두 선택될 수 있다. 따라서, 경계의 묘화에 대한 책임이 룩 객체에 주어진다.
룩은 경계의 폭을 지정하기 위해 4차원을 유지한다. 이들은 오퍼레이티브 영역(510)의 좌측, 우측, 상단 및 하단으로부터 경계의 에지까지의 거리를 지정한다. 이들 차원은 도 4에서 각각 L, R, T 및 B로 표시된다. 이들 차원에 대한 값은 디폴트 룩으로 지정된다. 애플리케이션은 값들이 위젯을 비표준 폭의 경계로 생성하는 룩을 생성하도록 무시되는 디폴트 룩 클래스로부터 파생될 수 있다. 또한, 애플리케이션(예를 들어, 룩 관리자)은 룩 메소드 MhwWgtLookAttsSetBorderwidthBottom, MhwWgtLookAttsSetBorderWidthLeft, MhwWgtLookAttsSetBorderwidthRight 또는 MhwWgtLookAttaSetBorderWidthTop를 호출함으로써, 실행 시간에서 값을 변경할 수 있다.
위젯 클래스에 의해 룩 클래스로 전달되는 값에 따른 경계의 상세한 배치를 제어하는 코드가 룩 클래스내에 있다.
위젯 칼라 관리
또한, 룩은 칼라 한정을 포함하여, 특정 룩 인스턴스와 결합되는 어떤 위젯 인스턴스가 그 룩 인스턴스로 한정된 칼라를 사용한다. 하나의 실시예에 있어서, 룩은 다음 칼라를 한정한다.
●블랙
●어두운 회색
●중간 회색
●밝은 회색
●매우 밝은 회색
●화이트
●투명
●강조 칼라
룩에서의 칼라 한정은 위젯을 묘화할 때 사용된다. 예를 들면, 블랙 라인이 위젯을 디스플레이할 때 묘화되면, "블랙"으로 한정된 칼라가 사용될 것이다. 예를 들면, 룩이 붉은 색조를 가지면, 양자간에 정의되는 다양한 음영의 레드와 함께 "블랙"은 어두운 레드로 한정될 수 있고, "화이트"는 밝은 핑크으로 한정될 수 있다. 본 예에 있어서, 일반적으로 블랙 라인을 묘화하는 묘화 동작은 어두운 레드 라인 등을 대신할 것이다.
더욱이, 룩은 GUI의 디스플레이상에 어떤 특정 칼라를 디스플레이할 때 사용 되는 실제 칼라 값을 설정하는 칼라 맵을 한정한다.
수정된 위젯 생성
디폴트 룩 메소드 MhwWgtLookDrawCheckSymbol은 그 상태에 따라 비어 있거나, 작은 틱(tick) 기호를 포함하는 직사각형 박스를 묘화하고, 이것은 GUI에서 통상적인 체크 박스의 룩을 한정하는 것을 가정한다. 또 다른 위젯이 틱 또는 교차를 디스플레이하는데 요구되는 것을 가정한다. 외관은 룩 클래스에 의해 완전히 제어되어, 룩만이 변경될 필요가 있다. 더욱이, 이 동작을 실행하는 새로운 룩 클래스는 존재하는 룩 클래스로부터 유도될 수 있고, 기본 룩 클래스에서 동일한 이름의 메소드를 무시하기 위해 하나의 메소드 MhwWgtLookDrawCheckSymbol만을 제공한다. 더욱이, 메소드 MhwWgtLookDrawCheckSymbol은 참으로 설정된 인자 aState로 호출되고, 기본 클래스의 메소드 MhwWgtLookDrawCheckSymbol은 틱을 묘화하도록 호출될 수 있다. 새로운 코드는 교차가 묘화되는 경우를 조절하기 위해서만 작성될 필요가 있다. 따라서, 새로운 위젯은 최소한의 프로그래밍 작업으로 생성될 수 있다.
이 절차는 최초의 체크 박스 위젯의 외관을 바꾸지 않고, 이 위젯은 수정되지 않는 기본 룩 클래스를 사용하는 것을 이해해야 한다. 최초의 체크 박스의 외관을 변경하기 위해, 기본 룩 클래스의 메소드 MhwWgtLookDrawCheckSymbol이 수정되어야 한다. 그 클래스로부터 파생된 모든 체크 박스 위젯은 룩 클래스가 애플리케이션과 연결되는 (이 경우가 컴파일 시간 또는 런 타임에서 있을 수 있는 바와 같은)다음 경우에 후속하여 이들 외관을 변경할 것이다.
대체로, 위젯 클래스는 위젯을 룩 클래스로서 적합한 세트의 퍼블릭 메소드 및 특성을 갖는 어떤 클래스로 생성하기 위해, 서로 작동될 것이다. 그러나, 가능한 작은 다수의 공통 기본 클래스와 관념적으로 단지 하나의 기본 클래스로부터 모든 룩 클래스를 파생하는 이점이 있다. 객체 지향 프로그래밍으로 알려진 다수의 공통 기본 클래스는 이것이 룩 클래스에 의해 메모리와 다른 자원의 사용을 최소화하는 것을 이해할 것이다. 파생된 클래스는 그 기본 클래스에 대한 포인터를 갖고 있어, 메모리에 이와 같은 코드나 데이터를 복사하지 않고 기본 클래스의 메소드 코드와 정적 데이터를 액세스할 수 있다.
버전 제어
일부 위젯 인스턴스는 매우 긴 수명을 가질 수 있다. 예를 들면, 윈도우 관리자의 루트 윈도우, 워크스테이션 디스플레이에서의 테스크바 위젯 등이다. 이와 같은 경우에, 룩 클래스가 위젯의 수명동안 업데이트될 수 있는 강한 가능성이 있다. 위젯 클래스는 이것이 발생될 때 그 자체를 재묘화하도록 야기되어야 한다.
이것을 달성하기 위한 하나의 방법은 각 룩 클래스에 퍼블릭 특성으로서 엑스포트(export)되거나 퍼블릭 메소드를 통해 액세스될 수 있는 업데이트 카운더를 제공하는 것이다. 위젯 클래스가 예시될 때, 위젯 클래스 인스턴스는 결합된 룩의 업데이트 카운터를 조회하고, 메모리 로컬에 업데이트 카운터의 값을 위젯 클래스 인스턴스로 저장한다. 룩 클래스의 인스턴스가 그 후에 업데이트되면, 위젯 클래스 인스턴스는 그 로컬 메모리에 저장되는 값을 룩 클래스 인스턴스의 업데이트 카운 터의 값과 비교함으로써 이 변경을 검출할 수 있다. 룩 클래스 인스턴스가 업데이트되면, 위젯은 룩 클래스의 메소드를 사용하여 그 자체를 재묘화할 수 있다.
룩 클래스 인스턴스의 구성 및 파괴
일반적으로, 각 룩 클래스의 인스턴스는 각 위젯 클래스의 인스턴스보다 소수일 것이다. 일부 경우에 있어서, 단지 애플리케이션에서 모든 위젯 클래스 인스턴스에 의해 참조되는 룩 기본 클래스의 하나의 인스턴스가 존재할 수 있다. 또한, 애플리케이션의 일부 위젯 클래스에 의해 참조되는 파생된 룩 클래스의 인스턴스가 존재할 수 있다. 그러나, 위젯 클래스는 위젯 클래스가 예시되고 있는 시간에 존재하는 룩 클래스가 항상 존재하는 것을 가정하고, 위젯 인스턴스는 최초에 특정 클래스와의 결합을 요구할 수 있다.
따라서, 각 위젯 클래스의 예시 동안 위젯 클래스 생성자는 결합된 룩 클래스 생성자 MhwWgtLookNew를 호출하는 것이 제의된다. 룩 클래스의 인스턴스가 존재하지 않으면, 새로운 인스턴스가 생성된다. 그 후, 1의 값이 룩 클래스 인스턴스의 로컬 메모리에 확보된 기준 카운터에 저장된다. 룩 클래스의 인스턴스가 이미 존재하면, 룩 클래스 생성자는 룩 클래스의 인스턴스에 대한 포인터를 반환하고, 기준 카운터를 증가시킨다.
각 위젯 클래스 인스턴스의 파괴 동안, 위젯 클래스의 파괴자는 결합된 룩 클래스 인스턴스에 대한 파괴자 MhwWgtLookDelete를 호출한다. 파괴자 MhwWgtLookDelete는 기준 카운터를 감소한다. 카운터가 0보다 크면, 파괴자가 단순 히 반환된다. 그러나, 파괴자가 0에 도달하면, (하나가 파괴되는 것외의) 위젯 클래스 인스턴스는 그 룩 클래스 인스턴스와 결합되지 않고, 이 경우에, 룩 클래스 파괴자는 메모리로부터 룩 클래스 인스턴스를 제거하도록 실행된다.
위젯 클래스 메소드 MhwWgtXxxSetLook은 특정 위젯 클래스 인스턴스가 결합되는 룩을 변경하도록 호출될 수 있다. 이 메소드내에서 호출은 우선 출중계(outgoing) 룩 클래스 인스턴스의 파괴자로 되고 나서, 호출은 클래스 인스턴스에 대한 포인터를 획득하기 위해 새로운 룩의 기준 함수로 된다. 이것은 룩 클래스의 기준 카운터가 적절히 업데이트되는 것을 보증한다.
또한, 인스턴스가 이미 존재하면, 생성될 룩 클래스의 새로운 인스턴스를 공급해야 한다. 이것은 애플리케이션이 어떤 주어진 룩 클래스의 하나 이상의 인스턴스를 가질 수 있게 하고, 다른 속성을 다른 인스턴스에 설정할 수 있게 한다. 예를 들면, 하나의 인스턴스는 디폴트와 일치하여 존속되는 모든 속성을 가지고, 나머지는 하나 이상의 속성(경계 폭, 칼라 등)으로 할당된 상이한 값을 갖는 것외에 모든 사항에 동일한 동일 룩 클래스의 2개의 인스턴스가 있을 수 있다.
룩 관리자
이해되는 바와 같이, 룩 클래스 및 인스턴스의 시스템은 애플리케이션의 전반적인 룩에 걸쳐 매우 상세한 제어를 허용한다. 예를 들면, 어떤 룩 클래스중 하나만이 보다 작은 변화를 애플리케이션의 룩에 초래하도록 변경될 수 있다. 따라서, 룩 관리자 애플리케이션은 사용자의 요구시에 이들 속성을 변경할 수 있도록 제공될 수 있다.
통상, 사용자가 룩의 속성을 위젯의 외관에 변경하는 결과를 즉시 알 수 있도록, 이와 같은 애플리케이션은 본 발명을 이용하는 위젯을 포함하는 GUI 디스플레이를 포함한다.
웹 브라우저
인터넷 네비게이터 인터페이스가 첨부된 도면을 참조하여 설명될 것이다.
도 6a는 인터넷 브라우저의 메인 스크린 네비게이터 디스플레이의 스크린샷 (screenshot)을 나타낸다. 메인 스크린은 다양한 버튼을 링크된 리스트로서 포함하는 메인 메뉴를 포함하는 수직 체인(1100)을 나타낸다. 이 버튼들은 체인의 링크 요소에 의해 링크된다. 도 6a의 체인(1100)으로 나타낸 버튼은 리로드/정지 (RELOAD/STOP) 버튼(1110), 이전(PREVIOUS) 버튼(1120), 다음(NEXT) 버튼(1130), 히스토리(HISTORY) 버튼(1140), 북마크(BOOKMARK) 버튼(1150), 설정(SETTING) 버튼(1160) 및 종료(QUIT) 버튼(1170)을 포함한다.
메인 메뉴 체인(1100)은 스크린(1101)에 디스플레이되는 하이퍼 텍스트 표시 언어(HTML)상에 중복되도록 조정된다. 도 6a에 있어서, HTML 문서가 디스플레이되지 않고, 스크린(1101)이 메인 메뉴 체인(1100)과는 별도로 비워진다.
웹 브라우저는 사용자에 의해 설정될 수 있는 몇 개의 선호도를 포함한다. 브라우저는 몇 개의 사용자 프로파일을 설정하기 위한 기능을 포함한다.
사용자는 스크린(1101)상의 객체 사이를 항해하고, 객체를 강조하며, 객체를 선택할 수 있는 제어기를 갖는다. 본 예에 있어서, 사용된 제어기는 텔레비전 리모콘(1180)이다. 숫자 키(1181)는 데이터를 입력하는데 사용되고, 커서 키패드(1183)는 스크린을 항해하는데 사용된다. 커서 키패드(1182)는 업(UP) 키(1183), 다운(DOWN) 키(1184), 좌측(LEFT) 키(1185) 및 우측(RIGHT) 키(1187)를 포함한다. 또한, 커서 키패드(1182)는 스크린상에 있는 객체를 선택하는데 사용되는 선택(SELECT) 키(1186)를 포함한다.
업 키(1183) 및 다운 키(1184)는 초점, 본 예에서는 선택적으로 버튼(1110, 1120, 1130, 1140, 1150, 1160 및 1170)을 강조하도록 체인(110)을 상하로 이동하여 하이라이트를 이동하는데 사용된다. 버튼이 강조될 때, 버튼은 선택 키(1186)를 사용하여 선택될 수 있다.
HTML 페이지가 디스플레이될 때, 리모콘의 모든 버튼은 체인(툴바:1100)을 호출한다. 또한, 체인(1100)은 사용자에 의해 켜지고 껴질 수 있다. 하나의 설정 옵션에 있어서, 체인(1100)은 새로운 HTML 페이지가 디스플레이될 때 자동적으로 숨겨지고, 사용자는 또 다른 HTML 페이지로 이동하고자 할 때 체인(1100)을 호출한다.
도 7은 오픈된 HTML 문서를 갖는 도 6a의 스크린을 나타낸다. 오프된 문서에 관한 정보가 리로드/정지 버튼(1110)의 체인에 링크된 텍스트 박스(1112)에 제공된다. 버튼들 사이의 체인 링크(1114)는 사용자에게 링크 방향으로 버튼들 사이를 이동할 수 있는 것을 시각적으로 표시하는 것을 이해할 수 있을 것이다.
도 6a는 강조된 리로드/정지 버튼(강조된 리로드/정지 아이콘은 리로드/정지 버튼이 강조되지 않는 도 7에서와 같이 흰색 배경에 어두운 버튼인 경우보다는 어두운 배경에 흰색 버튼인 경우이다)을 나타낸다. HTML 문서는 리로드/정지 버튼이 강조될 때 선택 키(1186)를 누름으로써 리로드될 수 있다.
사용자는 다운 키(1184)를 사용하여 체인(1110)을 아래로 이동하여 하이라이트를 이동한다. 도 7에 있어서는 이전 버튼(1120)이 강조된다. 도 8은 하이라이트가 이전 버튼(1120)에 있을 때, 텍스트 박스(1122)를 포함하는 "툴팁"이 스크린상에 어떻게 나타나는지를 도시한다. 본 예에 있어서, 툴팁은 관련된 아이콘이 강조되자마자 나타난다. 선호도가 설정될 수 있어, 툴팁은 버튼이 강조될 때 어느 정도의 지연후에 나타난다. 텍스트 박스(1122)는 이전 버튼(1120)의 함수를 지시하는 워드 "이전(previous)"를 포함한다. 이전 버튼을 활성화하고 선택 키(1186)를 누름으로써, 브라우저는 보여진 이전 페이지로 이동한다.
도 9에 있어서, 강조는 아래의 다음 버튼(1130)으로 이동되고, 짧은 시간 후에, 워드 "다음(next)"을 포함하는 텍스트 박스(1132)를 포함하는 툴팁이 사용자를 돕기 위해 나타난다.
도 10에 있어서, 히스토리 버튼(1140)이 강조되고, 결합된 툴팁(1142)이 워드 "히스토리(history)"와 함께 나타난다. 히스토리 버튼(1140)은 하나 이상의 함수를 갖고 있어, 제어 키패드상의 선택 키(1186)를 누름으로써 버튼을 활성화하는 것은 서브 체인(1144)이 히스토리 함수에 관련되어 주어지는 추가 옵션을 나타내도록 한다. 서브 체인(1144)이 도 11에 도시된다. 서브 체인(1144)은 뷰(VIEW) 버튼(1146)과 추가(ADD) 버튼(1148)을 포함하는 부가 버튼을 포함한다. 사용자는 우측 및 좌측 키(1187, 1185)를 사용하여 서브 체인(1144)을 따라 이동한다. 도 11의 스크린 디스플레이에 있어서, 뷰 버튼이 강조되고, 툴팁(1147)이 사용자에게 강조된 버튼이 뷰인 것을 전하기 위해 나타난다. 메인 체인(1100)에 첨부된 툴팁은 체인의 우측에 나타나고, 서브 체인에 대한 툴팁은 서브 체인 위에 나타난 것을 주목한다.
툴팁에 대한 박스의 크기는 디스플레이되는 워드 또는 워드들의 길이에 맞춰진다. 다른 언어 선호도가 설정될 수 있는 경우에, 툴팁에 대한 박스의 크기는 선택된 언어의 워드 길이에 맞춰진다.
도 12는 뷰 버튼이 선택될 때 획득되는 디스플레이를 도시한다. 뷰 히스토리 윈도우(1141)는 헤딩(1143)(여기서, 불어 옵션은 헤딩에서 선택된다)을 갖고, 사용자에게 보여진 이전 페이지의 사항(1145)을 보여주는 스크린상에 나타난다. 사용자는 텍스트를 상하로 스크롤할 수 있고, 선택 키(1186)를 사용하여 항목들(1145)중 하나를 강조할 수 있다. 좌측 및 우측 키는 승인(OK) 또는 취소(CANCEL) 키(1149, 1149')를 강조하는데 사용된다.
도 13은 강조된 추가 버튼(1148)과 결합된 툴팁을 나타낸다. 추가 버튼(1148)은 현재 디스플레이된 페이지를 히스토리 리스트(1145)에 추가하는데 사용된다.
도 14는 강조된 북마크 버튼(1150)과 결합된 툴팁(1151)을 나타낸다. 도 15에 있어서, 북마크 버튼(1150)이 선택되고, 북마크 서브 체인(1152)이 뷰, 추가, 삭제 및 에디트 버튼(1153, 1154, 1155, 1156)을 포함하는 툴팁(1151)을 나타낸다. 도 15는 강조된 뷰 버튼(1153)과 결합된 툴팁을 나타낸다. 뷰 버튼(1153)이 선택되어, 뷰 윈도우(1157)가 도시된다(도 16을 참조). (뷰 윈도우(1157)가 스크린상에 있을 때는 북마크 서브 체인이 나타나지 않는 것을 명백하게 알 수 있다.) 뷰 윈도우(1157)는 헤딩과 북마크를 리스트화하는 스크롤 가능한 텍스트 박스를 포함한다. 뷰 히스토리 윈도우에서와 같이, 윈도우는 승인 및 취소 키를 또한 포함한다. 커서 키패드(1182)는 윈도우를 항해하고, 필요하다면 북마크를 선택하는데 사용된다.
도 17에 있어서, 추가 버튼(1154)이 강조되고, 그 툴팁이 디스플레이된다. 추가 버튼이 선택되면, 추가 윈도우가 디스플레이된다(도 18을 참조). 추가 윈도우(1158)는 북마크의 URL과 그 타이틀을 입력하는 텍스트 입력용 텍스트 박스를 포함한다. 데이터는 숫자 키(1181)를 사용하여(예를 들어, 본 명세서에서 설명된 온 스크린 키보드를 사용하여) 윈도우에 입력된다. 또한, 윈도우는 상기에서 설명된 바와 같이 승인 및 취소 키를 포함한다. 사용자는 커서(1182)를 사용하여 텍스트 입력 박스와 승인 및 취소 키 사이를 항해한다.
도 19는 강조된 삭제(DELETE) 버튼(1155)과 그 툴팁을 나타낸다. 삭제 버튼(1155)을 선택함으로써, 북마크가 삭제될 수 있다.
도 20은 강조된 에디트(EDIT) 버튼(1156)과 그 툴팁을 나타낸다. 에디트 버튼(1156)을 선택함으로써, 북마크는 에디트될 수 있다.
도 21은 북마크 툴팁(1151)이 보여지지 않는 북마크 서브 체인(1152)의 대안적인 형태를 나타낸다. 이것은 스크린상의 공간을 절약할 수 있고, 특히 서브 체인이 길면, 스크린상의 공간을 절약할 수 있다. 툴팁의 외관은 사용자에 의해 선택될 수 있는 옵션이다.
도 22는 강조된 설정 버튼(1160)과 그 툴팁(1161)을 나타낸다. 설정이 선택될 때, 인증 윈도우(1165)가 디스플레이되어(도 23을 참조) 설정이 변경될 수 있기 전에 사용자에게 사용자 자신을 식별할 수 있게 사용자 패스워드를 제공하도록 조성된다. 인증 윈도우(1165)는 숫자 키(1181), 승인 및 취소 버튼을 사용하여 사용자 이름과 패스워드를 입력하기 위한 2개의 텍스트 입력 박스를 포함한다. 일단 정확한 사용자 이름과 패스워드가 인증 윈도우에 입력되고 승인 버튼이 선택되면, 설정 서브 체인(1162)이 디스플레이된다(도 24를 참조).
설정 서브 체인(1162)은 모뎀(MODEM) 버튼(1163)과 브라우저(BROWSER) 버튼(1164)을 포함한다. 도 24는 강조된 모뎀 버튼(1163)과 결합된 툴팁을 나타낸다. 모뎀 버튼(1163)을 선택함으로써, 모뎀 설정이 변경될 수 있다. 도 25는 강조된 브라우저 버튼(1164)과 결합된 툴팁을 나타낸다. 브라우저 버튼(1164)이 선택될 때, 브라우저 윈도우(1164)가 디스플레이된다(도 26을 참조). 다시, 사용자는 커서 키(1182)를 사용하여 윈도우 객체를 항해한다. 브라우저 윈도우의 객체는 칼라(COLOUR) 드롭 다운 리스트(1167)를 포함한다. 커서 키(1182)를 사용하여 리스트 헤드를 강조하고 리스트 헤드를 선택함으로써, 리스트의 아이템이 나타나서, 사용자는 커서를 사용하여 리스트 상하로 이동하여, 새로운 브라우저 칼라를 선택할 수 있다. 유사하게, 브라우저의 텍스트 언어는 드롭 다운 리스트(1168)를 사용하여 변경될 수 있다. 하이라이트를 툴팁 선택(1169)으로 이동하고, 선택 버튼(1186)을 누름으로써, 툴팁이 켜지고 껴질 수 있다. 윈도우는 이전과 같이 확인 및 취소 버 튼을 포함한다.
도 27은 강조된 종료(QUIT) 버튼(1170)과 결합된 툴팁(1171)을 나타낸다. 종료 버튼(1170)이 선택되면, 종료 서브 체인(1172)이 나타난다(도 28을 참조). 도 28에 있어서, 확인(CONFIRM) 버튼(1173)이 강조되고, 디스플레이된 그 툴팁을 갖는다. 사용자가 웹 브라우저를 종료하고자 하면, 사용자는 확인 버튼(1173)을 선택한다. 사용자가 종료 선택을 취소하고자 하면, 사용자는 취소 버튼의 툴팁과 함께 도 29에서 강조되어 도시된 취소 버튼(1174)을 선택한다.
메인 메뉴 체인(1100)의 대안적인 디자인이 사용될 수 있고, 개개의 버튼 및 텍스쳐의 형태는 체인의 전반적인 형태를 변경하지 않고 변경될 수 있다. 또한, 칼라가 변경될 수 있다. 이들 변경은 설정 메뉴에서 옵션으로 이용될 수 있고, 체인의 형태와 텍스쳐가 브라우저에 부착 디자인(스킨)을 주기 위해 전체적으로 변경된다.
예를 들면, 버튼은 3차원 외관을 주도록 설계된 텍스쳐를 갖는 정방형, 원형, 마름모형 또는 다른 형태를 가질 수 있다. 버튼들 사이의 링크 외관은 버튼의 외관을 맞추거나, 대안으로 버튼 외관을 보충하도록 설계될 수 있다. 또한, 링크 외관은 구조적으로 입체감있는 외관을 주도록 선택될 수 있어, 버튼이 의미적으로 연결되어 사용자의 이해를 높인다.
도 6 내지 30에 나타낸 원호 형상의 체인은 개발자에 의해 선택되고, 바람직하게 사용자에 의해 변경될 수 없다. 버튼 체인과 서브 체인의 다른 구조, 예를 들어 직선 체인 또는 세미 원형 체인이 가능하다. 다른 실시예에 있어서, 버튼 체인 및 서브 체인의 버튼 순서와 구성은 사용자에 의해 변경될 수 있다.
리시버/디코더는 인터넷 네비게이션과 이메일 판독 능력을 제공한다.
네비게이터를 모델링하기 위한 그래픽 스튜디오가 논의된다.
네비게이터를 모델링하기 위한 그래픽 스튜디오는 기본 그래픽 객체의 총체 또는 집합이다. 각 그래픽 객체는 네비게이터 함수중 하나를 텔레비전 스크린상에 표시하는 그림이다. 네비게이터의 각 함수는 그래픽 객체로, 또는 그래픽 객체의 이미지(생동감있는 이미지)의 시퀀스 또는 그래픽 객체의 집합(예를 들어, 스크린의 배경에 있는 이미지 또는 다른 그래픽 객체가 첨부될 수 있는 다이얼로그 박스의 배경에 있는 이미지)으로 표시될 수 있다. 이미지에 대한 MPEG2 및 PIXMAP-GRL의 2가지 내부 포맷이 존재한다.
PNG 포맷은 로드, 연결, 이전 문서, 다음 문서, 나가기 등과 같은 "항해 시스템" 기능을 나타내는 기본 그래픽 객체에 사용된다. 그래픽 평면에 직사각형이 아닌 이미지를 표시하기 위해, 가시(상당한) 존을 한정하는 클리핑 마스크를 사용하는 것이 필요하다. 이 마스크는 비트맵 형태로 설계자에 의해 제공되어야 하고, 이 마스크는 성능 제약 때문에 프로그램에 의해 계산되지 않는다.
클리핑 마스크를 추가하기 위한 2가지 단계는 우선 이미지를 디스플레이한 후, 그래픽 평면에 가시의 사용 가능한 이미지 부분을 만들기 위해 클래핑 마스크를 공급하는 동안, 투명 칼라로 이미지의 동일 범위 및 위치를 채운다.
PIXMAP-GRL 이미지 포맷은 네비게이터 자원 또는 사용자 인터페이스를 나타내는 그래픽 객체, 예를 들어 수직 스크롤바, 표, 단일 선택, 다중 선택 등에 사용 된다.
PIXMAP 형태 객체는 다양한 차원으로 되고(각 그래픽 객체 또는 모델은 단순한 기본 객체로 분할된다), (칼라를 변경하여) 채색될 수 있다.
PIXMAP-GRL 이미지 포맷은 잘 알려진 메소드를 사용하여 어떠한 다른 그래픽 포맷(예를 들어, BMP, JPEG, GIF, PNG 등)으로 전환함으로써 획득될 수 있다.
그래픽 객체를 그래픽 요소로 분할하는 것은 디스플레이되는 객체 형태에 의존하는 매트릭스(예를 들어, 3 ×3, 4 ×4 또는 1 ×4)에 따라 달성된다.
팔레트는 256 칼라를 포함한다. 이 팔레트는 PIXMAP 및 PNG 형태의 그래픽 객체로 적용된다. 팔레트에는 2개 부분이 존재한다 제 1 부분은 애플리케이션의 디스플레이와 디자인을 조성하도록 보유되는 26 칼라로 구성된다. 제 2 부분은 사용자가 애플리케이션에 의해 이용할 수 있는 변경될 수 없는 230 칼라로 구성된다.
스크린의 최대 크기는 폭이 720픽셀이고 높이가 576 픽셀이다. 스크린의 가시 범위를 모든 저급 텔레비전에 보증하기 위해, 크기를 592 픽셀의 폭과 480 픽셀의 높이로 제한하는 것이 필요하다. 상급 텔레비전을 이용하기 위해, 사용자는 스크린의 크기를 맞추는 옵션을 갖는다. 인터넷 네비게이터에 대해, 사이트는 일반적으로 디자인된 600 픽셀의 폭과 400픽셀의 높이의 페이지를 갖는다.
그래픽 객체의 일반적인 속성이 상세하게 논의될 것이다.
(표시하는 것에 따라)그래픽 객체는 정확한 크기를 갖는다. 정확한 크기는 설계자에 의해 한정되고, 디스플레이용 가이드로서 이용할 수 있다.
각 그래픽 객체의 크기가 조절될 수 있다. 그래픽 객체의 형태에 따라 폭 및/또는 높이의 크기가 조절될 수 있다. PIXMAP-GRL 그래픽 객체 크기의 조절 메소드는 그래픽 객체를 분할하는 장점을 수반한다. 변하기 쉬운 크기의 그래픽 객체를 묘화하는 메소드가 나중에 더 논의된다.
스크린상의 그래픽 객체의 이미지는 다중 칼라 형태로 표시되고, 배경 이미지는 가능한 한 칼라 범위(변하기 쉬운 클레이를 모델링하는 효과)를 가져야 한다.
그래픽 객체의 이미지는 그 위치(좌표)를 따라 또는 스크린상의 객체 이후 또는 이전의 순서를 따라 묘화되어서는 안 된다: 객체의 변동 위치의 개념. 각 객체는 나머지 객체(배경 이미지를 제외)와 관계없이 한정된다.
텍스트는 선택된 언어에 따라 프로그램에 의해 프린트된다. 이것은 이미지가 텍스트를 포함하지 않아야 하는 것을 내포한다. 객체의 디자인은 설계자에 의해 변경될 수 있다. 일반적인 룩은 특별한 영화(예를 들어, 스타트렉, 007, 심슨)를 수반할 수 있다.
초점의 양상은 그래픽 객체상의 직사각형 초점, 그래픽 객체의 배경을 (또 다른 칼라로) 강조하는 초점 또는 그래픽 객체 형태에 채색하는 초점과 같은 몇 개의 수단에 의해 표시될 수 있다.
(초점, 활성화되지 않고, 저감되지 않는) 정상 상태는 그래픽 객체중 기본적인 하나이다.
그래픽 객체의 억제된 상태는 그레이(또는 흐린)의 객체 형태, 뚜렷한 금지 표시를 이 그래픽 객체상에 오버레이, 객체의 배경을 모노칼라로 설정, 또는 객체를 보이지 않게 만드는 몇 개의 수단에 의해 표시될 수 있다.
그래픽 객체의 저감된 상태는 버튼을 클릭한 후에, 그러나 버튼이 해제되기 전에 초점을 갖는 객체의 그래픽 표시이다. 이 표시는 객체를 역으로 디스플레이한 상태일 수 있거나, 이 표시는 초점된 상태와 동일할 수 있다. 플립플롭(헤드 투 테일) 디스플레이 효과에 관해서, 이미지 또는 아이콘은 2개의 시각 양상을 포함할 수 있으며, 하나는 텍스트(예를 들어, 유로 코인의 뒷면, 즉 '테일'면)를 표시하고, 나머지는 기호(앞면, 즉 '헤드'면)를 나타낸다. 이 시각 효과는 타이머상에서 실행되는 프로그램에 의해 동작되며, 타이머는 제 1 아이콘의 디스플레이에서 시작되고, 타이머가 소정의 값에 도달하자마자 아이콘 변경이 발생되며, 제 2 아이콘이 디스플레이되거나 연속적인 변경을 나타내는 아이콘의 시퀀스가 디스플레이된다.
PIXMAP-GRL 형태의 그래픽 객체의 분할이 도 31 내지 도 38을 참조하여 설명된다. 이 도면들은 매트릭스 분할 메소드(1201 내지 1209, 1211 내지 1219 등)과, 기본 객체가 적합한 형(1210, 1220 등)에 결합될 때 형성되는 대응 그래픽 객체에 사용되는 기본 그래픽 객체의 예들을 나타낸다. 도면들은 대략 4개의 인자에 의해 확대된다.
그래픽 객체의 크기를 조절(증가 또는 감소)할 수 있게 하기 위해, 각 그래픽 객체(그래픽 아티스트에 의해 생성된 디자인)는 퍼즐 조각과 같은 그래픽 요소의 매트릭스 형태로 분할된다. 각 요소는 4개의 기본 코너와 중앙(북쪽, 남쪽, 동쪽, 서쪽, 중앙, 북동쪽, 북서쪽, 남동쪽, 남서쪽, 중앙의 중앙)에 따라 참조된다. 매트릭스의 폭과 높이는 객체 형태에 의존한다.
어떤 그래픽 요소(퍼즐 조각)는 한번(코너)만 프린트된다. 보다 넓고 긴 객 체를 만들기 위해, 어떤 요소는 반복 형(각각 요소의 n배의 폭 또는 높이)으로 프린트된다.
매트릭스 분할(또는 타일링) 방법에 의해, 또는 매트릭스 분해(또는 타일링) 메소드 부분을 형성하는 그래픽 객체가 열거된다. 이들 그래픽 객체가 HTML 문서 구역에서 묘화된다.
●활성 상태(1210)에서 텍스트를 갖는/갖지 않는 버튼 : 3 ×3 매크릭스(1201 내지 1209); 요소의 크기 : 4픽셀의 폭 및 높이; 폭의 크기를 조절하는 요소 : 북쪽 중앙(1202), 중앙(1205), 남쪽 중앙(1208); 높이의 크기를 조절하는 요소 : 서쪽 중앙(1204), 중앙(1205), 동쪽 중앙(1206).
●활성, 저감된 상태(1220)에서 텍스트를 갖는/갖지 않는 버튼 : 3 ×3 매크릭스(1211 내지 1219); 요소의 크기 : 4픽셀의 폭 및 높이; 폭의 크기를 조절하는 요소 : 북쪽 중앙(1212), 중앙(1215), 남쪽 중앙(1218); 높이의 크기를 조절하는 요소 : 서쪽 중앙(1214), 중앙(1215), 동쪽 중앙(1216).
●비활성, 회색으로 된 상태(1230)에서 텍스트를 갖는/갖지 않는 버튼 : 3 ×3 매트릭스(1221 내지 1229); 요소의 크기 : 4픽셀의 폭 및 높이; 폭의 크기를 조절하는 요소 : 북쪽 중앙(1222), 중앙(1225), 남쪽 중앙(1228); 높이의 크기를 조절하는 요소 : 서쪽 중앙(1224), 중앙(1225), 동쪽 중앙(1226).
●초점을 갖고/갖지 않고 도시되고, 교차된/교차되지 않은(도 34) '체크 박스' : 1 ×1 매트릭스; 요소의 크기 : 16픽셀의 폭 및 높이; 폭의 크기를 조절하는 요소 : 없음; 높이의 크기를 조절하는 요소 : 없음.
●단일 또는 다중 선택(1252, 1253, 1254)을 위한 옵션의 리스트 : 3 ×3 매트릭스(1241 내지 1249); 요소의 크기 : 4픽셀의 폭 또는 높이; 폭의 크기를 조절하는 요소 : 북쪽 중앙(1242), 중앙(1245), 남쪽 중앙(1248); 높이의 크기를 조절하는 요소 : 서쪽 중앙(1244), 중앙(1245), 동쪽 중앙(1246); 업 및/또는 다운 지시기(1250)를 포함할 수 있다; 위치 : x, y 원점 + 업 지시기의 폭 및 높이.
●업 지시기(1250) : 1 ×1 매트릭스; 요소의 크기 : 16 픽셀의 폭 및 8 픽셀의 높이; 폭의 크기를 조절하는 요소 : 없음; 높이의 크기를 조절하는 요소 : 없음; 위치 : y 원점, 폭의 중앙.
●다운 지시기(1251) : 1 ×1 매트릭스; 요소의 크기 : 16 픽셀의 폭 및 8 픽셀의 높이; 폭의 크기를 조절하는 요소 : 없음; 높이의 크기를 조절하는 요소 : 없음; y 원점+업 지시기의 높이+리스트의 높이, 폭의 중앙.
●(형태를 묘화하기 위한) 표(1260) : 3 ×3 매트릭스(1270); 요소의 크기 : 2 픽셀의 폭 및 높이; 폭의 크기를 조절하는 요소 : 북쪽 중앙, 중앙, 남쪽 중앙; 높이의 크기를 조절하는 요소 : 서쪽 중앙, 중앙, 동쪽 중앙; 셀을 포함할 수 있다.
●(입력을 어떤 형태로 묘화하기 위한) 셀(1280) : 3 ×3 매트릭스(1290); 요소의 크기 : 2픽셀의 폭 및 높이; 폭의 크기를 조절하는 요소 : 북쪽 중앙, 중앙, 남쪽 중앙; 높이의 크기를 조절하는 요소 : 서쪽 중앙, 중앙, 동쪽 중앙; 텍스트 또는 이미지를 포함할 수 있다; 위치 : x, y 원점+표 경계의 두께.
●프레임을 갖는 텍스트(TextArea:1300) : 3 ×3 매트릭스(1310); 요소의 크 기 : 2픽셀의 폭 및 높이; 폭의 크기를 조절하는 요소 : 북쪽 중앙, 중앙, 남쪽 중앙; 높이의 크기를 조절하는 요소 : 서쪽 중앙, 중앙, 동쪽 중앙; 텍스트를 포함할 수 있다.
●프레임(1320) : 3 ×3 매트릭스(325); 요소의 크기 : 4픽셀의 폭 및 높이; 폭의 크기를 조절하는 요소 : 북쪽 중앙, 중앙, 남쪽 중앙; 높이의 크기를 조절하는 요소 : 서쪽 중앙, 중앙, 동쪽 중앙.
●수직 스크롤바(1330) : 1 ×3 매트릭스; 요소의 크기 : 8픽셀의 폭 및 높이; 폭의 크기를 조절하는 요소 : 없음; 높이의 크기를 조절하는 요소 : 중앙; (프레임 객체의 위치에 따라) 프레임에 부착된다; 높이에 관련된 인덱스의 지시기 그래픽 객체를 포함한다.
●수평 스크롤바(1340) : 3 ×1 매트릭스; 요소의 크기 : 8픽셀의 폭 및 높이; 폭의 크기를 조절하는 요소 : 중앙; 높이의 크기를 조절하는 요소 : 없음; (프레임 객체의 위치에 따라) 프레임에 부착된다; 폭에 관련된 인덱스의 지시기 그래픽 객체를 포함한다.
●수평 라인 : 1 ×1 매트릭스; 요소의 크기 : 4픽셀의 폭 및 높이.
●수직 라인 : 1 ×1 매트릭스; 요소의 크기 : 4픽셀의 폭 및 높이.
웹 브라우저 인터페이스에서 모든 그래픽 객체와 그들의 결합된 기능의 요약이 주어진다.
디코더에서 네비게이터 모델의 구성에 필요한 그래픽 객체의 비포괄적인 리스트가 수반된다. 주어진 표는 객체 요소 바이 요소(element-by-element)와 몇 개 의 그래픽 요소로 구성된 객체의 리스트를 열거한다.
Figure 112002013541145-pct00009
Figure 112002013541145-pct00010
Figure 112002013541145-pct00011
Figure 112002013541145-pct00012
Figure 112002013541145-pct00013

다음 표는 그래픽 표시에 가변 크기를 가질 수 있는 그래픽 객체를 형성하는 다른 기본 그래픽 객체를 설명한다. 복잡합 객체를 만드는 기본 객체의 병렬 배치는 (퍼즐을 재구성하는)프로그램에 의해 달성된다. 이들 객체는 PIXMAP 포맷으로 이루어진다.
Figure 112002013541145-pct00014
Figure 112002013541145-pct00015
Figure 112002013541145-pct00016
Figure 112002013541145-pct00017
Figure 112002013541145-pct00018
Figure 112002013541145-pct00019

네비게이터 기능
Figure 112002013541145-pct00020
Figure 112002013541145-pct00021
웹 브라우저용 자바 API가 설명된다.
디코더에서 네비게이터 애플리케이션 레벨에서 사용되는 JAVA 패키지의 리스트가 수반된다. 이 리스트는 JDK 1.1의 AWT(추상 윈도우 툴킷(Abstract Window Toolkit)) 클래스와 원시 C 코드로 작성된 다른 서비스의 JAVA 인터페이스 클래스의 2개의 부분으로 분할된다.
Figure 112002013541145-pct00022


Figure 112002013541145-pct00023

브라우저 패키지로 불리는 네비게이터 패키지는 HTML 문서가 반입될 수 있게 하는 서비스와 문서 브라우저내의 항해를 제공하는 browser.drawer 패키지, 및 사용자 인증과의 인터넷 연결의 확립을 허용하는 mediawebtv 패키지의 상이한 패키지를 종합한다.
browser.drawer.MhwBookmark 클래스의 구조가 설명된다.
북마크 리스트는 사용자와 결합된다. 북마크 리스트내에는 계층이 없다.
생성자 : MhwBookmark(subscriberId) : 존재하는 북마크 리스트를 오픈
생성자 : MhwBookmark(subscriberId) : 새로운 북마크 리스트를 생성
deleteBookmark() : 북마크 리스트를 파괴
add(URL, name) : 입력을 추가
remove(itemNumber) : 입력을 삭제
modify(itemNumber, URL, name) : 존재하는 입력을 변경
getList() : 입력 리스트를 북마크 리스트(계층 없음)로 반환
getItemCount() : 입력 개수를 북마크 리스트로 반환
isFull() : 부울(boolean) - 리스트가 가득찼는가?
isEmpty() : 부울- 리스트가 비었는가?
setHomePage(itemNumber)
getHomePage() : itemNumber
goToURL(sessionNumber) : 선택된 입력에 해당되는 문서를 로드
실패 이벤트에 있어서, 에러 메시지는 메소드 add(), remove(), modify(), getList(), setHomePage() (또는 발생이 비동기이면, 이벤트)에 의해 반환된다.
browser.drawer.MhwHistory 클래스는 하나의 문서로부터 이전에 디스플레이된 문서의 리스트내의 또 다른 문서로의 항해를 허용한다. 히스토리 리스트에는 계층이 없다. 클래스의 사항이 하기에 주어진다.
생성자: MhwHistory(sessionNumber)
getList(): 히스토리 리스트(계층 없음)를 반환
getCurrent() : 현재 URL을 획득
setCurrent(indexNumber) : 현재 URL을 변경
getNext() : 다음에 입력되는 URL을 획득
getPrevious() : 이전에 입력된 URL을 획득
getItemCount() : 입력의 개수를 히스토리로 반환
addEventsRegister() : 히스토리 리스트의 에러 이벤트를 기입
removeEventsRegister()
실패 이벤트에 있어서, 에러 메시지는 메소드 getList(), getNext(), getPrevious(), setCurrent() (또는 발생이 비동기적이면, 이벤트)에 의해 반환된다.
이벤트는 다음과 같다 : addEventsRegister(sessionNumber) : [히스토리 리스트의 에러 이벤트를 기입]; 및 removeEventsRegister(sessionNumber)[기입하지 않음] .
browser.drawer.MhwDocument 클래스는 디코더에서 HTML 문서를 로드하고 디스플레이할 수 있게 한다. 클래스의 사항이 하기에 주어진다.
생성자: MhwDocument(sessionNumber)
freeze() : 현재 문서(문서 로딩을 지속)의 디스플레이를 정지
unfreeze() : 현재 문서의 디스플레이를 재시작
isPending() : 문서가 현재 로딩되는지의 여부
stop() : 현재 문서의 로딩을 정지
reload() : 문서를 다시 로드
getDocumentInfo() : 문서의 타이틀 및 URL을 반환
addStatusRegister() : 로딩의 상태 및 종료에 대한 정보를 기입
goToURL(url) : 웹 페이지를 로드
submit(login, password, URL) : 웹 페이지를 로드하기 위한 인증을 제시
getStatisticsDocument() : 진행중인 요청의 개수와 현재 로드되는 문서의 URL을 반환
browser.mediawebtv.MhwConnection 클래스는 사용자 연결과 인증 기능을 종합한다. 클래스 사항이 하기에 주어진다.
생성자 : MhwConnection(subscriberId)
start() : 연결을 요청
stop() : 연결 해제를 요청
cancel() : 연결을 취소
setAuthentificationType(type0 : CANAL+ 모드(msd/패스워드)로 또는 로그인/패스워드에 의해 인증 모드를 설정
getAttributes() : 연결 속성을 반환
getAttributes(attributes) : 연결 속성을 변경
setPassword(password) : 패스워드를 변경
getPassword(password) : 패스워드를 획득
setAutoCheckPassword(bAutoCheck) : 패스워드가 확인 패스워드로 자동적으로 확인되는지를 설정
getAutoCheckPassword(bAutoCheck) : 패스워드가 확인 패스워드로 자동적으로 확인되지는지를 판독
getIPClient(ipaddress, netmask) : 선택된 IP 및 넷마스크(netmask) 쌍을 판독
setIPClient(ipaddress, netmask) : IP 및 넷마스크 쌍을 변경
getDNS(dns1, dns2) : 제 1 및 제 2 DNS 어드레스를 판독
setDNS(dns1, dns2) : 제 1 및 제 2 DNS 어드레스를 변경
getURLConfigServer(url) : 구성 서버의 어드레스를 판독
setURLConfigServer(url) : 구성 서버의 어드레스를 변경
getQueryCommand(queryCmd, typeOfQuery) : 구성 서버로 전송되는 요청을 형태에 따라 판독
setQueryCommand(queryCmd, typeOfQuery) : 형태에 따라 요청을 변경
queryAcquisitions(tableAcquisitions, typeOfAcquistion, NumberOfAcquistions) : 취득 리스트를 판독
startAcquisition(acquistionId) : 취득(데이터/영상)을 시작
stopAcquisition(acquistionId) : 취득(데이터/영상)을 정지
addStatusRegister() : 연결 상태를 전하는 기입
이벤트는 다음과 같다 : 연결 손실; 현재 연결; 확립된 연결; 연결 확인 요청; 연결 에러; 모뎀 상태 : 온/오프; 진행중인 초기화; 진행중인 호출; 에러, 그러나 모뎀은 온 상태; 서버 상태 : 무효한 포트, 무효환 URL; 로그인 에러 : 알려지지 않은 로그인; 및 무효한 패스워드.
removeStatusRegister() : 네트워크 연결 상태를 기입하지 않음
isConnected subscriberId() : 모뎀 연결/연결 해제 상태를 제공하는 부울을 반환
isPending() : 현재 연결을 확립하는 모뎀에 대한 부울을 반환
getExtendedProviderUrl(providerUrl) : 현재 가입된 제공업자를 판독
setExtendedProviderUrl(providerUrl) : 현재 가입된 제공업자를 변경
browser.mediawebtv.MhwConfiguration 클래스는 각 사용자와 사용자의 선호도의 프로파일을 관리한다. 클래스의 사항이 하기에 주어진다.
생성자 : MhwConfiguration()
readProfile(subscriberId) : 프로파일을 판독
writeProfile(subscriberId, profile) : 프로파일을 작성
readDefaultProfile() : 디폴트 프로파일을 판독
writeDefaultProfile(profile) : 디폴트 프로파일을 변경
getUserCount() : 사용자 수
newUser(profile) : 새로운 사용자를 식별
getLastConnect() : 마지막으로 연결된 사용자
프로파일의 최대 수는 현재 5로 고정되지만, 이것은 절대적인 제한을 나타내지 않고, 필요하다면 보다 많은 수의 프로파일이 저장될 수 있다.
실패 경우에 있어서, 에러 메시지는 WriteProfile() 및 writeDefaultProfile() 메소드 (또는 발생이 비동기적이면, 이벤트)에 의해 반환된다.
browser.mediawebtv.MhwMultiSession 클래스는 네비게이터 세션이 선택될 수 있게 한다. 세션은 또 다른 인스턴스에 의해 자동적으로 초기화된 네비게이터의 인스턴스이다. 네비게이터가 시작될 때, 세션은 인증된 연결 확립에 후속하여 생성된다. 클래스의 사항이 하기에 주어진다.
생성자 : MhwMultiSession
getCurrentSessionNumber()
setCurrentSessionNumber(int number)
getPreviousSession()
addSession() : 생성된 세션의 개수를 반환
removeSession(int numSession)
디코더에 대한 네비게이터 모델이 도 6a 및 도 7 내지 30을 참조하여 보다 상세하게 설명된다.
여기서 나타낸 모델은 네비게이터의 간단한 예이고, 주요 기능의 일반적인 개념을 제공한다. 모델은 그래픽 표시의 레벨에서 완전한 자유를 제공한다. 중요한 형태는 동일한 형태의 기능이 분류되는 존 또는 스크린과 일반적인 사용자 인터페이스이다.
네비게이터는 모든 이용 가능한 그래픽 스튜디오의 그래픽(MPEG, PIXMAP)을 이용한다. 이 모델의 스크린은 트리 형태로 구성되고, 각 하나는 주요한 기능의 집합을 종합한다. 스크린에서의 각 기능 또는 옵션은 (리모콘상에서) 화살표 버튼의 도움으로 초점을 이동함으로써, 또는 커서/포인터를 갖는 키패드를 사용함으로써 액세스된다. 활동의 선택은 제어기를 클릭함으로써, 또는 미리 한정된 버튼(예를 들어, "승인(OK)")에 의해 달성된다.
물리적 키보드의 부재시에, 텍스트를 리모콘으로 입력하기 위해, 가상 키보드를 제공하는 것이 필요하다. 이것은 리모콘의 버튼을 가상 키보드에 매핑함으로써, 빠르게 치는 가능성으로 초점을 이동함으로써 달성되고, 즉 리모콘상의 버튼의 이미지는 가상 키보드의 그림상에 윤곽으로 또는 다소 불투명하게 (추적된 형태로) 보여질 수 있다. 가상 키보드가 본 명세서에서 나중에 보다 상세하게 논의된다.
도 30은 바로 아래에 웹 페이지가 보여질 수 있는 부분(411)을 갖는 네비게이터 기능 버튼(1410)의 상단 레벨의 체인을 도시한다.
메인 네비게이터 스크린이 도 30을 참조하여 설명된다.
네비게이터 기능은 몇 개의 층으로 분류된다. 메인 스크린은 리로드/정지(1401), 이전 페이지(1402), 다음 페이지(1403), 최근 방문한 사이트의 히스토리, 북마크, 연결/연결 해제, 구성, 네이게이터 나가기(1408)와 같은 일련의 버튼으로 구성되는 수직 바(메인 메뉴:1410)를 디스플레이한다.
네비게이터 GUI(메인 스크린:1410)은 기능키가 (리모콘 또는 키보드에서) 눌려질 때 디스플레이된다. GUI가 TV 스크린상에 보여질 때, (GUI가 덮는) HTML 문서(1141)는 메모리로 계속 로드되지만, 문서의 재생은 GUI의 디스플레이 성능에 영향을 미치지 않도록 연기된다. HTML 문서는 네비게이터 GUI가 제거될 때 다시 플레이된다. 성능이 충분하면, 이 제약을 없앨 수 있어, HTML 문서 및 GUI를 동시에 디스플레이할 수 있게 한다.
GUI는 (리모콘 또는 키보드상의) 기능키를 누름으로써 TV 스크린으로부터 제거된다. 그 후, 현재 캐시 메모리에 로드 또는 저장되는 HTML 문서의 디스플레이가 시작 또는 재개된다.
버튼은 직사각형 또는 정방 존(예를 들어, 32 ×32 픽셀)이 효과적이다. 그래픽 커서가 존에 들어갈 때, 그 존(윈도우)은 초점(비교, EnterNotify(WindowId) 함수)을 받는다.
예를 들면, 버튼 그래픽이 쇠테이면, 버튼 그래픽은 그래픽 커서의 실제 위 치가 쇠테의 픽셀을 효과적으로 덮는지가 검출되어야 한다. 이것이 종료되기 위해, (클리핑 마스크에서 상대적인 위치, getpixel()를 계산함으로써) 픽셀의 값을 버튼의 클리핑 마스크에서의 마우스 포인터의 핫 스포트에서 찾는 것이 필요하다. 이 검출 메소드는 테스트가, 클릭이 버튼 함수를 시작하기 전에 달성되었는지 어떤지가 향상될 수 있게 한다.
마우스 포인터가 버튼의 직사각형 또는 정방 존을 벗어날 때, 존은 초점을 상실한다(비고, LeaveNotify(WindowId)).
설명 버튼의 요약이 보다 상세하게 설명된다.
마우스 포인터 또는 직사각형 초점이 기능을 나타내는 버튼과 일치할 때, 짧은 어구(툴팁)가 수평 또는 수직으로 디스플레이되어, 그 버튼의 기능을 설명한다. 버튼이 선택될 때, 마우스 클릭 또는 기능키에 의해, 버튼의 리스트가 서브 메뉴 옵션을 포함해서 나타난다. 또한, 짧은 설명 어구(툴팁)의 시스템은 서브 메뉴 버튼에 사용된다.
메뉴 옵션의 항해는 리모콘 또는 키보드상의 화살표 키로 달성된다. 초점을 가진 메인 스크린상의 최근의 버튼은 메인 스크린이 디스플레이되는 다음 시간 동안 기억된다.
가상 키보드가 도 42 내지 도 45를 참조하여 보다 상세하게 논의된다.
도 42는 현재 보여질 수 있는 키보드(1501)가 가상 키보드(1501, 1506)의 밑에 놓인(underlying) '그리드'에 어떻게 배치되는지를 개략적으로 도시한다.
도 43은 키에 대한 캐릭터를 가상 키보드상에 통상적으로 매핑하는 것을 보 여준다.
도 44는 각각 초점을 갖는 (또한, 2개의 상이한 형태의 리모콘(1542 및 1543)을 나타내는) 제 1(1545) 및 제 2 (1546) 숫자 블록을 갖는 가상 키보드에 사용되는 이미지를 나타낸다.
도 45는 중첩된 통상적인 범위를 갖는 통상적인 가상 키보드 배치를 나타낸다.
우선, 가상 키보드는 가상 키보드가 사용되는 애플리케이션과 관계없는 툴로서 시작된다. 즉, 가상 키보드는 "웹브라우저(WebBrowser)" 애플리케이션내에서 그리고 동등하게 "메일(Mail)" 애플리케이션내에서 사용될 수 있다. 더욱이, 가상 키보드의 '룩'은 관련된 애플리케이션의 '룩'과는 관계가 없다.
가상 키보드는 물리적 키보드 또는 키보드를 갖는 리모콘을 소유하고 있지 않는 사용자가 에디트 가능한 스크린 구역을 선택하는 순간부터 디스플레이된다. 초점은 에디트 가능한 구역에 있는 텍스트의 종단에 위치된다. (리모콘 또는 가상 키보드상의) "승인(OK)" 또는 (가상 키보드상의) "취소(Cancel)"을 누름으로써 가상 키보드를 제거한다.
스크린(1501)상에 가시되는 가상 키보드는 나란히 (리모콘의 3개의 숫자 블록을 나타내는) 3개의 블록의 텐 키(1502, 1503, 1504)로 구성된다. 사용자는 리모콘상의 화살표 키를 사용하여 하나의 블록으로부터 또 다른 블록으로 초점(1505)을 이동할 수 있다. 블록이 선택된 후, 리모콘의 숫자 블록상의 버튼을 누름으로써, 가상 키보드상에 프린트된 대응 캐릭터를 입력한다.
또한, 사용자는 업 및 다운 화살표 키를 사용할 수 있다. 이것은 스크린상에서 동일한 가상 키보드를 가져오지만, 키(1506)상에서는 상이한 캐릭터로 된다. 따라서, 5개의 가상 키보드의 세트 사이를 치면, 하나는 웨스턴 컴퓨터의 키보드상에 모든 캐릭터를 디스플레이할 수 있다. 또한, 필요에 따라 다른 키보드를 추가할 수 있다.
도 44를 참조하면, 즉각적인 결합이 리모콘의 숫자 블록과 가상 키보드상의 초점 사이에서 이루어질 수 있게 하기 위해, 리모콘의 중첩된 이미지는 초점(1542, 1543)을 지시한다. 따라서, 사용자는 키보드의 한 부분만이 초점을 갖고, 나머지 캐릭터가 초점을 화살표 키로 이동함으로써 도달될 수 있는 것을 쉽게 볼 수 있다. 키보드는 후자 관점을 고려하여 설계된다.
가상 키보드 솔루션은 소형 스크린 높이를 취하고, 이용 가능한 캐릭터의 개수를 쉽게 확장할 수 있게 한다. 디폴트로서, 가상 키보드는 디스플레이되는 축소된 알파벳을 갖는 가상 키보드이다.
어떤 버튼은 다음과 같은 중요한 특수 기능을 갖는다.
●현재의 선택을 확인하기 위한 리모콘상의 "승인(OK)" (필드가 하나의 라인만을 가지면, ¶캐릭터(1521)가 또한 확인되거나, 대안으로 모두 효과를 갖지 않도록 선택될 수 있고, 그렇지 않으면, ¶캐릭터(1521)는 캐리지 반환에 해당된다).
●확인 없이 툴을 나가는 가상 키보드상의 "취소(Cancel)"(1522) (키보드를 오픈한 후에 만들어진 변경은 상실된다).
●입력된 마지막 캐릭터를 삭제하는 가상 키보드상의 "백스페이스(Back Space)"(1523).
●에디팅 구역내에서 이동하는 업, 다운, 좌측 및 우측 화살표.
●상당한 공간을 하나의 진행(4 ×디폴트)으로 삽입하는 가상 키보드상의 "탭(Tap)"(1520).
키보드는 항상 '삽입' 모드에 있다.
키보드의 예가 도 44에 주어지고, 하기에서 더 논의된다.
도 43에 나타낸 5개의 키보드(5 ×3)와, 웹브라우저 애플리케이션(Arialweb 및 Courier)용으로 설치된 2개의 폰트로 전통적인 키보드의 모든 캐릭터가 포함될 수 있다. 스크린상에서 키보드의 범위는 272픽셀의 폭 ×184픽셀의 높이이다.
가상 키보드 및 다양한 애플리케이션에서 가상 키보드의 사용과 관련된 기능적 연결은 "canaplus.virtualkbd" 패키지내에서 전개된다.
패키지내에 포함된 클래스는 "MhwVirtualKbd"(가상 키보드 그래픽 설명 및 행동 클래스), "MhwVkTextField"(TextField를 공유하는 글로벌 애플리케이션내에서 한정된 가상 키보드가 이벤트를 제어할 수 있게 하는 'java.awt.TextField'로부터 파생된 클래스) 및 "MhwTextArea"(TextArea를 사용하는 글로벌 애플리케이션내에서 한정된 가상 키보드가 이벤트를 제어할 수 있게 하는 'java.awt.TextArea'로부터 상속된 클래스)를 포함한다.
MhwVirtualKbd 클래스가 보다 상세하게 설명된다.
"MhwVirtualKbd" 클래스의 생성자는 '프라이비트(private)'로 한정된다. 따 라서, 생성자를 사용할 필요가 있을 수 있는 메인 애플리케이션이 시작될 때(예를 들어, 물리적 키보드의 부재시에), 하나의 유일한 가상 키보드만이 구성될 수 있다. 특히, 현재의 애플리케이션에 구성된 키보드를 나타내는 것이 목적이고, 이것은 사용자가 텍스트 필드(단일 또는 다중 라인)를 입력할 때 나타난다.
키보드가 생성될 때, 구성될 수 있는 4개의 메인(정적) 변수가 설정된다.
●부모(parent) : 키보드가 생성되는 시간에 그 자체가 존재해야 하는 가상 키보드의 '부모'인 컨테이너(container). 인자로 전달된 '부모'가 '널(null)'이면, 그것은 'NullPointerException을 반환하는 "setParent"을 사용하여 설정된다.
●설명 파일 : 이미지 뒤에 있는 그래픽에 관해, 가상 키보가 사용될 때 획득되는 다양한 '키보드'에 관련되는 키보드와, 키에 프린트된 라벨을 설명하는 ASCII 파일. 캐릭터는 캐릭터의 유니코드의 코드로 지정된다. 설명 파일의 명칭은 "setScreensFile" 메소드를 사용하여 설정될 수 있다.
●스크린의 개수 : 가상 키보드에 의해 초기화되고 사용되는 '숫자 블록'의 개수. "setScreensNumber"를 사용하여 설정된 이 개수는 키보드의 개수와 상기에서 설명된 설명 파일로 판독되는 특성에 해당된다.
●초기 좌표 : 이들은 (상기에서 설명된) 부모 컨테이너에서 키보드의 배경 이미지의 상단 좌측 코너의 좌표로 된다. 이것은 "setCoordInit" 메소드를 이용하여 설정된다.
일단 키보드가 생성되면, 키보드는 키보드가 존재하면(애플리케이션의 가상 키보드가 아직 존재하지 않으면, 그리고 애플리케이션이 가상 키보드를 사용하면, 가상 키보드에 대해 하나가 설정되는 변수[상기에서 설명된 4개의 변수]를 사용하여 "getInstance" 메소드는 하나를 생성한다), 현재 애플리케이션의 키보드를 찾는"getInstance" 메소드를 사용함으로써 키보드를 사용할지 어떤지가 결정될 수 있다.
이벤트 관리가 하기에 설명된다.
선행하는 설명에 의하면, 일단 디스플레이된 가상 키보드는 리모콘상의 숫자 블록, "승인(OK)" 버튼 및 4개의 화살표 방향 키에 의해 가상 키보드로 전송된 이벤트를 해석함으로써 단독으로 기능한다. 이들 버튼은 사용중인 키보드에 대해 특별한 역할을 갖는다.
"승인(OK)" 버튼은 사용자가 정보를 입력하고 나서 가상 키보드의 동작을 디스플레이하고 시작하도록 텍스트 필드로 '반환', 및 변경을 저장하고 텍스트 필드를 '벗어나는' 2가지 일을 할 수 있게 하기 때문에, "승인(OK)" 버튼은 특정한 역할을 갖는다.
화살표 키
'우측' 및 '좌측' 화살표는 ('초점'을 갖는 숫자 블록을 지시하는) 리모콘의 이미지가 가상 키보드상에 표시되는 숫자 블록으로 이동될 수 있게 한다. 따라서, 제어 제어상의 숫자 블록의 키는 초점을 갖는 '키보드'에 의존하여 다양한 캐릭터를 디스플레이해야 한다.
가장 일반적인 경우에 있어서, 가상 키보드가 활성될 때 이들 버튼의 '태핑'은 커서에 의해 지시된 위치에서 현재 텍스트 필드에 그 키상에 표시된 캐릭터를 자동으로 삽입하도록 한다.
6개의 캐릭터는 '특수' 캐릭터로서 간주될 수 있고, 키에 디스플레이된 캐릭터가 텍스트 필드에 디스플레이되도록 한다.
백스페이스(BackSpace): '<'(1523) : 이 캐릭터에 해당되는 리모콘상의 버튼이 눌러질 때, 현재 텍스트 필드에서 커서 위치의 좌측의 캐릭터가 즉시 삭제된다.
탭(Tab): '>>'(1520) : 이 캐릭터에 해당되는 리모콘상의 버튼이 눌러질 때, 4×디폴트의 상당한 공간('')이 현재 커서 위치에 삽입된다.
엔터(Enter): '¶'(1521): 이 캐릭터에 해당되는 리모콘상의 버튼이 눌러질 때, '라인 피드'가 커서 위치에 삽입된다. 실제로, 현재 텍스트 필드가 'MhwVkTextField' 클래스의 인시턴스, 즉 하나의 에디트 가능한 라인만을 가지면, 이 버튼을 태핑하는 것은 효력을 갖지 않거나, 필드의 확인을 야기한다. 이와 반대로, 이 텍스트 필드가 'MhwVkTextArea' 클래스의 인스턴스이면, 그것은 몇 개의 에디트 가능한 라인으로 구성되고, 이 캐릭터는 '라인 피드'를 야기시킨다(커서가 마지막 에디트 가능한 라인에 위치되면, 이 버튼을 태핑하는 것은 효력을 갖지 않는다).
취소(Cancel): '¢'(1522) : 이 캐릭터에 해당되는 리모콘상의 버튼이 눌러질 때, 가상 키보드가 오픈된 후에 현재 텍스트 필드에 이루어진 모든 변경이 행해지지 않는다. 즉, 그 내용은 변경이 이루어지기 전에 그것이 갖는 값으로 반환되 고, 가상 키보드는 '종료'된다.
좌측 화살표 : 이 캐릭터에 해당되는 리모콘상의 버튼이 눌러질 때, 현재의 텍스트 필드에 있는 커서는 하나의 정위치에서 좌측으로 이동된다. 커서가 이미 (더 이상 좌측으로 이동할 수 없는) '0' 위치에 있으면, 이 버튼은 효력을 갖지 않는다.
우측 화살표 : 이 캐릭터에 해당되는 리모콘상의 버튼이 눌러질 때, 현재의 텍스트 필드에 있는 커서는 하나의 정위치에서 우측으로 이동된다. 커서가 이미 텍스트 필드에서 마지막 캐릭터 이후에 위치되면(그리고, 더 이상 우측으로 이동할 수 없는) '0' 위치에 있으면, 이 버튼은 효력을 갖지 않는다.
업 화살표 : 이 캐릭터에 해당되는 리모콘상의 버튼이 눌러질 때, 현재 텍스트 필드에 있는 커서는 하나의 정위치에서 위쪽으로 이동된다. 커서가 이미 텍스트 필드의 최초 라인에 있으면(또는, 현재 텍스트 필드가 하나의 라인 : MhwVkTextField를 가지면), 이 버튼은 효력을 갖지 않는다.
다운 화살표 : 이 캐릭터에 해당되는 리모콘상의 버튼이 눌러질 때, 현재 텍스트 필드에 있는 커서는 하나의 정위치에서 아래쪽으로 이동된다. 커서가 이미 텍스트 필드의 마지막 라인에 있으면(또는 현재 텍스트 필드가 하나의 라인 : MhwVkTextField를 가지면), 이 버튼은 효력을 갖지 않는다.
"findLocation" 메소드는 스크린상에 가상 키보드의 배치를 결정하여, '재단된' 표면을 최소화하도록 검색한다.
MhwVkTextField 클래스는 "java.awt" 패키지에서의 "TextField" 클래스를 단순히 지정한다. MhwVkTextField 클래스는 가상 키보드의 사용(또는 사용하지 않음)을 지정하는 부울 값을 추가적으로 관리한다.
생성자는 단순 추가 인자: 가상 키보드의 사용을 지정하는 부울을 갖는 "java.awt" 패키지에 있는 "TextField" 클래스의 생성자와 정확히 동일하다.
부울이 "참"이면, "TextField" 클래스의 '기본' 인스턴스가 생성되고, 현재의 애플리케이션내에서 이용 가능한 가상 키보드 청취자(listener)는 "addKeyListener" 메소드를 이용하여 또한 동시에 추가된다. 그렇지 않으면, '정상' TextField가 생성된다.
TextField가 초점을 가질 때, 사용자가 '승인(OK)'을 눌러 부울이 가상 키보드의 사용을 지정하면, 가상 키보드가 디스플레이되고, 초점을 획득한다. 가상 키보드는 모든 이벤트를 관리하고, 텍스트 필드를 채울 수 있다. 사용자가 다시 '승인(OK)'을 누르면, 그 텍스트가 확인되고, 가상 키보드는 초점을 반환한다. 가상 키보드의 사용이 도모되지 않으면(부울=거짓), "TextField"는 "java.awt"의 표준 TextField와 동일한 '행동(behaviour)'을 갖는다.
MhwVkTextArea 클래스는 "java.awt" 패키지에 있는 "TextArea" 클래스를 단순히 지정한다. MhwVkTextArea 클래스는 가상 키보드의 사용(또는 사용하지 않음)을 지정하는 부울 값을 관리한다.
생성자는 단순 추가 인자: 가상 키보드의 사용을 지정하는 부울을 갖는 "java.awt" 패키지에 있는 "TextField" 클래스의 생성자와 정확히 동일하다.
부울이 "참"이면, "TextField" 클래스의 '기본' 인스턴스가 생성되고, 현재의 애플리케이션내에서 이용 가능한 가상 키보드 청취자는 "addKeyListener" 메소드를 이용하여 또한 동시에 추가된다. 그렇지 않으면, '정상' TextField가 생성된다.
TextField가 초점을 가질 때, 사용자가 '승인(OK)'을 눌러 부울이 가상 키보드의 사용을 지정하면, 가상 키보드가 디스플레이되고, 초점을 얻는다. 가상 키보드는 모든 이벤트를 관리하고, 텍스트 필드를 채울 수 있다. 사용자가 다시 '승인(OK)'을 누르면, 그 텍스트가 확인되고, 키보드는 초점을 반환한다. 가상 키보드의 사용이 도모되지 않으면(부울=거짓), "TextField"는 "java.awt"의 표준 TextField와 동일한 '행동(behaviour)'을 갖는다.
다음 섹션은 상기에서 설명된 형태의 실행, 특히 그래픽 요소 세트로부터 그래픽 객체(예를 들어, 텍스트 필드, 버튼, 슬라이드, 리스트, 체크박스, 선택 등)의 재구성을 더 설명한다.
도 39는 예를 들어 9개의 요소 : 4개의 코너(NW(2100), NE(2101), SW(2102), SE(2103)), 4개의 측면(N(2104), E(2105), W(2106), S(2107)) 및 중앙(C(2108))으로 이루어진 버튼을 나타낸다.
통상, 그러나 필요하지 않지만, 9개의 요소 각각은 정방형(4 ×4 픽셀, 8 ×8픽셀, 16×16픽셀)이다. N, E, S 및 C 요소의 블록은 요구된(룩에 의해 한정된 경계와 함께 구성요소의 크기에 의해 한정되는) 구역내에서 결합된다. 이 구역은 요소 크기의 배수이어야 하는 것은 아니다. 현재, 타일링은 좌측으로부터 우측으 로, 또는 상단으로부터 하단으로 이동하여, 어떤 불충분하게 묘화된 요소가 하단 및 우측에 나타난다. 이것이 이용 가능하면, 타일링 규칙에 따라 정렬된 "중앙(centred)" 및 "우측"을 추가하도록 도모될 수 있다. 일반적으로, NW, NE, SW 및 SE 요소는 경계와 동일한 크기이이서, 타이링은 필요로 되지 않는다. 그러나, NW, NE, SW 및 SE 요소가 요구된 것보다 작으면, 타일링이 자동적으로 행해진다.
이것이 실행되는 방법의 간결한 설명은 다음과 같다. 작업은 상이한 WGT 위젯에 대한 상이한 룩의 생성 및 할당을 허용하는 원시 WGT 모듈로 빌드된 매카니즘; 구성요소의 상이한 그래픽 형태를 채색하기 위한 함수가 포함되는 원시 "LookPixmap" 모듈의 개발; 및 원시 코드와 상호 작용하기 위한 mhw.awt 자바 패키지의 개발의 3가지 영역으로 분할된다.
이 3가지 영역의 개발이 다음 섹션에서 설명된다.
WGT 모듈 룩 매카니즘이 도 40 및 도 41을 참조하여 설명된다.
이 섹션의 목적은 WGT 모듈이 변경되어, 관리된 다양한 그래픽 객체의 '룩'을 제어할 수 있는 방법을 설명하는 것이다. 새로운 룩은 필요에 따라 및 필요할 때 추가될 수 있는 새로운 클래스에 한정되어, WGT 모듈에 작용되지 않고 남겨둔다. 표준 WGT 룩(LookWgt)은 디폴트로 위젯에 제공되고, 예시되며, 기인되어, 이 기능을 사용하지 않고자 하는 애플리케이션은 표준 WGT 룩(LookWgt)을 사용할 필요가 없다.
다음 형태가 요구된다: 다수의 상이한 룩이 각 객체 형태에 대해 한정될 수 있다; 상이한 룩이 독립적으로 각 객체에 제공될 수 있다; 디폴트로 현재 WGT에 의 해 한정된 룩은 객체에 적용된다.
객체의 룩을 묘화하기 위해 비트맵과 벡터(vectorial)의 2개의 상이한 기술이 가능해야 한다.
비트맵 기술에 있어서, 객체는 다수의 미리 결정된 비트맵 요소를 결합함으로써 묘화되어, 그 후에 묘화되는 단일 비트맵을 만든다. 가변 크기의 객체를 생성하기 위해, 요소는 예를 들어 요구된 크기의 객체를 빌드하도록 측면을 따라 반복될 수 있다.
이들 요소 각각의 크기 및 정확한 배열도 한정되지 않는다. 이 개념은 이것을 가능한 자유롭게 남겨두어, 새로운 룩의 생성이 WGT에 의해 너무 제한되지 않게 한다. 룩 객체는 비트맵 요소와, 요구된 객체 크기의 함수와 함께 비트맵 요소를 일치시키기 위한 규칙을 한정해야 한다.
후자에 설명된 LookPixmap(native) 및 PixmapLook(Java) 클래스는 배타적으로 이 메소드를 사용한다. 벡터 메소드를 사용하는 LookPixmap로부터 파생된 또는 유도되지 않은 개발자 자신의 룩을 생성하는 개발자를 정지하는 것과는 상관이 없다.
벡터 기술에 있어서, 객체는 DrawRectancle(), DrawArc()와 같은 일련의 기본 묘화 동작을 사용하여 묘화된다. 룩 클래스는 요구된 객체의 함수로서 객체를 묘화하기 위한 규칙을 한정해야 한다.
바람직하게, 비트맵과 벡터 기술을 결합하는 룩 클래스를 도모하는 것이 가능하다. 예를 들면, 비트맵 접근법은 기본 형태의 버튼에 사용될 수 있지만, 벡터 접근법은 강조를 제공할 수 있다.
WGT 모듈 룩 매카니즘이 보다 상세하게 설명된다.
다음 매카니즘이 결합된다.
●각 객체를 위한 현재의 페인트 메소드를 7개의 함수로 분할하고, 어떤 함수는 객체: DrawBackground(); MhwWgtLookDrawBackground(); DrawForeground(); MhwWgtLookDrawForeground(); MhwWgtLookDrawRelief(); MhwWgtLookDrawFocus(); MhwWgtLookHighlight()에 기인된 룩 클래스에 포함된다.
●추상 클래스 MhwWgtLook의 생성.
MhwWgtLook으로부터 파생되는, 그리고 WGT가 초기화될 때 인스턴스가 생성되는 클래스 MhwWgtLookWgt의 생성.
●특수 룩이 MhwWgtXXXAttsSetLook에 기인되지 않으면 그것이 생성될 때 각 객체에 기인될 룩을 설정하는데 사용되는 g_TheDefaultLook 글로벌 변수의 추가.
●객체에 대한 디폴트 룩을 변경하기 위한 퍼블릭 메소드 MhwWgtSetDefaultLook(context)의 추가.
MhwWgtSetXXXAttrLook(*object, *look)MhwWgtGetXXXAttsLook(*object)의 2개의 퍼블릭 메소드의 객체 클래스에 추가.
이들 양상은 채색하기 위한 메소드로 시작되는 다음 섹션에 나타낸다.
각 페인트 함수는 페인트 함수가 호출될 때 다음 메소드를 호출한다 : DrawBackground(); MhwWgtLookDrawBackground(); DrawForeground(); MhwWgtLookDrawForeground(); MhwWgtLookDrawRelief(); MhwWgtLookDrawFocus(); 및 MhwWgtLookHighlight().
2개의 메소드 DrawBackground() 및 DrawForeground()는 WGT 부분이고, 룩에 관계없이 호출된다. 실제로 나머지는 이 위젯에 결합된 룩 클래스에서 대응 함수에 대한 포인터이다. 이와 같이, 룩 클래스는 이들 부분에 대한 페인트 함수를 실행한다.
배경(Background) 이것은 룩이 전체 위젯 뒤에서 묘화될 수 있게 한다.
전경(Foreground) 이것은 (경계를 제외한) 위젯의 중앙 부분 위에서 다른 그래픽의 이미지를 묘화하는데 사용될 수 있다.
릴리프(Relief) 위젯의 릴리프 플래그가 설정되고, 위젯에 대한 경계 또는 릴리프를 묘화하는데 사용되면, 이것이 호출된다.
초점(Focus) 위젯이 초점을 가지면, 이것이 호출된다. 그것은 이것을 도식적으로 지시하는데 사용될 수 있다.
강조(Highlight) 위젯이 강조되면, 이것은 호출된다. 그것은 이것을 도식적으로 지시하는데 사용될 수 있다.
추상 클래스 MhwWgtLook가 한정되고, 다음을 포함한다 : WgtCoreLookClassMethod; WgtCoreLookClassField; WgtCoreLookClass; WgtCoreLookPart; 및 WgtCoreLookObject.
이들이 하기에 설명된다.
Figure 112002013541145-pct00024
Figure 112002013541145-pct00025
Figure 112002013541145-pct00026

(Card8, Card16 등 데이터 형태는 지시된 수의 비트를 갖는 숫자 형태에 대한 가명이고, 예를 들어, Card8은 'char'에 상당하고, Card16은 'short'에 상당하다.)
각 묘화 메소드는 각 객체 형태가 동일하다. 각 메소드를 위한, 또는 적어도 어떤 메스드를 위한 상이한 메소드를 요구하는 룩에 대해, 룩 클래스에서의 메소드는 위젯 형태를 식별하고 나서 활동해야 한다.
DrawNothing() 메소드의 목적을 주목한다. DrawNothing() 메소드는 호출되면 단순히 OK를 반환한다. 어떤 형태가 주어진 룩에서 반드시 실행되는 것은 아니다. WGT가 주어진 함수의 존재를 반드시 검사해야 것은 아니도록, 어떤 실행되지 않은 함수가 이 메소드를 지시해야 한다.
또한, Mask를 주목한다. 이것은 각 요소가 상기 메소드중 하나에 해당되는 프라이비트(private), 판독 전용 부울 배열이다. 요소가 1로 설정되면, 해당 메소드가 재한정된다. 그렇지 않으면, 메소드는 재한정되지 않는다. 이와 같이, 각 요소가 원하면, WGT는 각 요소가 호출해야 하는 메소드를 단일 동작으로 찾을 수 있다.
룩 클래스는 어떤 룩 한정과 WGT 사이의 인터페이스를 한정하는데 사용된다. WGT는 요구된 룩을 디스플레이하기 위해 이들 메소드만을 사용한다. 룩의 추가 함수가 요구되면, 그것은 확장된 룩 구조에 결합될 수 있지만, 그것은 이들 메소드들/파라미터를 계정으로 취하는 WGT가 아닌 애플리케이션에 적합하다. 이와 같이, 추가 속성 및 메소드가 추가될 수 있다.
파생된 룩 구조는 모든 이들 메소드들과 속성을 포함해야 하고, 그 자신을 추가할 수 있다. 그러나, WGT는 단지 MhwWgtLook 구조로 한정된 그들 메소드를 계정으로 취한다.
MhwWgtLookWgt 클래스가 논의된다.
존재하는 애플리케이션이 WGT의 변경된 버전과 여전히 양립하도록 변경되지 않게 하기 위해서, WGT 객체가 현재 갖는 룩을 한정하는 기본 룩 클래스는 WGT에 의해 생성되고 예시된다.
그것은 MhwWgtLook의 서브 클래스이고, MhwWgtLookWgt가 호출된다. 이 클래스가 초기화될 때, 구조에서의 모든 포인터들의 값이 WGT 한정 메소드를 지시하도록 설정된다.
이 기본 클래스는 어떤 것도 포함하지 않는다. 이 기본 클래스는 WGT가 현재 제공하는 룩을 단순히 한정한다.
Figure 112002013541145-pct00027

WGT 초기화에 관해, MhwWgtLookwgt 클래스의 인스턴스는 WGT가 시작될 때 생성되어야 한다. 따라서, 애플리케이션이 상이한 룩을 지정하지 않으면 WGT는 이들 메소드로의 액세스를 갖는다. (하기에서 설명되는) g_TheDefaultLook 글로벌 변수는 이 룩을 지시하도록 초기에 설정되어야 한다.
새로운 룩을 한정하고 디폴트 룩을 설정하는 처리가 설명된다.
WGT는 새로운 룩 객체를 한정 또는 예시할 책임이 없다. 애플리케이션이 이것을 해야 한다. 생성된 모든 룩 객체는 MhwWgtLook 구조에서 캐스트될 수 있어야 한다(비고, 하기의 룩 관리).
디폴트 룩에 관해, 필드
Figure 112002013541145-pct00028
는 이 문맥으로부터 생성되는 어떤 새로운 객체에 적용되도록 MhwWgtLook의 인스턴스를 지시하는 MhwWgtContext 객체에 추가되어야 한다. 새로운 WGT 문맥이 생성될 때, 이 필드는 WgtBasicLook을 지시하도록 설정되어야 한다.
문맥에 대한 디폴트 룩의 설정에 관해, 퍼블릭 메소드
Figure 112002013541145-pct00029
DefaultLook 필드를 aLook을 지시하는 aContext로 설정하도록 제공된다.
룩을 객체와 결합하기 위해, 다음 속성이 코어(core) 클래스의 coreAtts 구조에 추가된다.
Figure 112002013541145-pct00030
따라서, 이 속성은 생성된 각 객체에 대해 생성된다. 객체가 예시될 때마다, LookDefaultLook 글로벌 변수를 지시하도록 설정된다.
2개의 새로운 공용 메소드 MhwWgtSetXXXAttsLook(MhwWgtWidget anObject, MhWWgtLook aLook)MhwWgtGetXXXAttsLook(MhwWgtWidget anObject, MhwWgtLook *aLook)은 객체와 결합된 룩 인스턴스가 변경될 수 있도록 코어 클래스에 추가되어야 한다.
룩의 관리가 논의된다.
WGT는 어떠한 룩 관리자를 제공하지 않는다. 디폴트 이외의 룩을 사용하기 위해, 애플리케이션은 우선 하나 이상의 룩 클래스들이 예시되고 초기화되며, 그 후 언제나 애플리케이션이 새로운 WGT 객체를 생성하는 것을 보증해야 하고, 객체를 원하는 룩과 결합하도록 MhwWgtSetCoreAttsLook() 메소드를 사용해야 한다. 애플리케이션이 주어진 룩을 모든 미결정 위젯에 사용하고자 하면, 애플리케이션은 상기에서 설명된 MhwWgtSetDefaultLook() 메소드를 사용할 수 있다.
디폴트에 의해 한정된 것과는 다른 어떤 룩을 사용하고자 하는 애플리케이션은 룩을 생성하고 예시하는 것을 책임져야 한다. 본 발명의 또 다른 실시예에 있어서, 애플리케이션은 서로 관련이 없는 룩들을 다운로드할 수 있다. 그러나, 이 경우에 애플리케이션 자체는 MhwWgtLook로부터 파생되는 요구된 클래스를 공급해야 한다.
룩은 룩을 사용하는 모든 위젯이 파괴될 때까지, 룩을 생성한 애플리케이션에 의해 파괴되어서는 안 된다. 이것은 "클라이언트(clients)"의 수를 카운트하기 위해 refCounter 필드의 추가를 요구한다.
Figure 112002013541145-pct00031
이것은 free(look)를 대신한다. 룩은 룩의 refCounter 필드가 0과 동일할 때 실제로 파괴될 것이다.
Figure 112002013541145-pct00032
룩들을 실행하기 위한 ATI의 WGT 모듈 리스트가 하기에 주어진다.
Figure 112002013541145-pct00033

Figure 112002013541145-pct00034

Look/LookPixmap 모듈이 보다 상세하게 설명될 것이다.
MhwWgtLookPixmap 클래스는 상기에서 설명된 MhwWgtLook 클래스로부터 파생된다. 본래, MhwWgtLookPixmap 클래스는 상기에서 설명된 바와 같이, 요구된 크기의 그래픽 이미지를 생성하기 위해 각 구성요소의 다양한 요소를 재구성함으로써 작동된다.
이들 이미지는 버튼용 배경; 릴리프(예를 들어, 텍스트 구역의 활성 존 주위의 경계); 선택 구성요소용 기호; 체크 박스; 슬라이더; 및 슬라이더 리프트(lift)에 사용된다.
도 40을 참조하면, 초기화 시간을 감소하기 위해, 이미지는 압축되지 않지만, 점유된 공간을 가능한 한 최소화하도록 설계된 특정 포맷으로 저장된다. 각 픽셀(2152)의 칼라는 단일 바이트로 기술되고, 단일 바이트는 현재 칼라맵에서의 칼라의 인덱스 번호(2151)이다. 도 40은 4 ×4 이미지(2153)를 포함하는 image 버퍼의 예를 나타낸다.
도 40의 이미지(2153)는 다음과 같이 저장된다.
Figure 112002013541145-pct00035

LookPixMap 이미지 구조가 설명될 것이다.
이미지 버퍼의 크기를 식별하기 위해, 구조 LookPixmapImage는 이미지의 폭 및 높이와 함께, 상기에서 설명된 이미지 버퍼를 포함하는 것으로 한정된다. 하기에서 한정된 이 구조는 각 그래픽 요소에 대한 데이터를 포함하는데 사용된다.
Figure 112002013541145-pct00036

이미지는 상이한 크기로 될 수 있지만, 주어진 형태의 요소에 대해, 이미지 는 일반적으로 동일할 것이다. 그러나, 중앙 요소(xxxxxC)는 때때로 1 ×1의 크기로 된다. MhwWgtLookPixmapAllImages 구조는 하기에서 나타낸 바와 같이, 모든 그림 요소를 종합한다.
Figure 112002013541145-pct00037
Figure 112002013541145-pct00038
Figure 112002013541145-pct00039

이 섹션은 LookPixmap 클래스를 포함하는 LookPixmap 모듈을 기술하고, LookPixmap 모듈은 상이한 룩 세트가 웹 브라우저(Web Browser)에 적용될 수 있도록 생성된다.
이 모듈은 다음 소스 파일을 포함한다 : MhwWgtLookPixmap.h; MhwWgtLookPixmapStruct.h; WgtLookPixmapClass.c; wgtLookPixmapPrivate.c; MhwWgtLookPixmapImages.h; MhwWgtLookPixmapImages2.h; MhwWgtLookPixmapImages3.h; MhwWgtLookPixmapImages4.h; MhwWgtLookPixmapImages5.h; 및 MhwWgtLookPixmapImages6.h.
LookPixmap 모듈이 LookPixmap Objects를 생성하고 사용하는 바람직한 메소드 사항을 포함하여 설명될 것이다.
WGT를 Widget의 생성 및 관리에 사용하는 어떠한 소프트웨어는 대안 룩을 WGT 위젯에 제공하기 위해 LookPixmap 모듈을 사용할 수 있다. LookPixmap 룩을 사용하는 애플리케이션에 대해, LookPixmap 객체가 생성되어야 한다. 이것은 다음 코드를 사용하여 행해질 수 있다.
Figure 112002013541145-pct00040

디폴트 룩을 설정하기 위한 메소드가 설명된다.
애플리케이션은 주어진 룩을 디폴트로 사용할 수 있다. 디폴트에 의해, 디폴트 룩은 WGT에 의해 생성된 LookWgt 객체이다. 또 다른 디폴트 룩을 설정하기 위해, 또 다른 디폴트 룩이 상기에서 설명된 바와 같이 이미 생성되었으면, 다음 함수가 사용될 수 있다.
Figure 112002013541145-pct00041
생성된 모든 후속 WGT 위젯은 WGT 디폴트 LookWgt가 아닌 LookPixmap 룩 클 래스와 결합될 것이다.
애플리케이션은 설명될 바와 같이, 룩을 주어진 형태의 위젯 또는 주어진 위젯에 선택 또는 설정할 수 있다.
위젯이 생성되기 전에 객체가 다음 함수를 호출함으로써 생성될 때, 애플리케이션은 룩을 주어진 위젯에 설정할 수 있다.
Figure 112002013541145-pct00042
또한, 애플리케이션은 다음 함수를 사용하여 생성한 후에 객체의 룩을 설정할 수 있다.
Figure 112002013541145-pct00043
(여기서, xxx는 위젯 형태, 예를 들어 LIST)
LookPixmap 이미지를 사용하는 메소드가 설명된다.
단일 LookPixmap 객체는 이미지의 단일 세트를 사용한다. 단순히 이미지를 변경함으로써, 명백히 룩을 효과적으로 변경할 수 있다.
다음 함수를 호출함으로써, 주어진 LookPixmap 객체에 사용된 이미지를 변경할 수 있다.
Figure 112002013541145-pct00044
지정된 LookPixmap 객체를 사용하는 모든 위젯에 사용된 이미지를 지정된 이미지 세트로 설정한다.
Figure 112002013541145-pct00045
지정된 LookPixmap 객체를 사용하는 모든 위젯에 사용된 이미지를 디폴트 이미지 세트로 설정한다.
상이한 이미지를 상이한 위젯에 사용하고자 하면, 요구된 각 이미지 세트에 대해 LookPkixmap 객체를 생성해야 한다. 그 후, 각 이미지 세트를 적합한 룩에 할당하고, 각 룩을 적합한 위젯에 결합한다.
LookPixmap 모듈의 API가 도 39 및 도 41을 참조하여 설명된다.
다음 퍼블릭 API가 이용될 수 있다.
MhwWptLookPixmapSetImages()
원형(prototype) :
Figure 112002013541145-pct00046
설명 :
aLook에 의해 사용되는 이미지 세트를 someImages에 의해 지정된 이미지 세트로 설정한다.
파라미터 :
aLook 이미지 someIamges를 결합하기 위한 MhwWgtLkWeb 객체.
someImages aLook와 결합하는 이미지 세트.
반환 :
MHW_WGT_SUCCESS
MhwWgtLookPixmapSetImagesID()
원형 :
Figure 112002013541145-pct00047
설명 :
aLook에 의해 사용되는 이미지 세트를 MhwWgtLookPixMap에 하드 프로그램(hard-programm)되고 amImageID에 의해 식별되는 이미지 세트로 설정한다.
파라미터 :
aLook anImageID에 의해 식별되는 이미지를 결합하는 MhwWgtLkWeb 객체.
anImageID aLook를 결합하기 위해 MhwWgtZLookPixmap에 하드 프로그램된 이미지 세트의 식별자.
반환 :
MHW_WGT_SUCCESS
MhwWgtLookPixmapSetDefaultImagess()
원형 :
Figure 112002013541145-pct00048
설명 :
aLook에 의해 사용되는 이미지 세트를 MhwWgtLookPixmap에 하드 프로그램되 고, 식별자 1에 의해 식별되는 이미지 세트로 설정한다.
파라미터 :
aLook anlmageID에 의해 식별되는 이미지를 결합하는 MhwWgtLkWeb 객체
반환 :
MHW_WGT_SUCCESS
MhwWgtLookPixmapLoadImage()
원형 :
Figure 112002013541145-pct00049
설명 :
지정된 이미지를 지시하는 현재의 MhwWgtLookPixmapAllImages 구조에 의해 지시된 단일 이미지를 변경하는데 사용된다. LookPixmapImage 구조를 생성하고, 이 LookPixmapImage를 지시하는 aLook에 의해 지시된 현재의 MhwWgtLookPixmapAllImages 구조를 anElementID에 의해 지정된 요소에 설정한다.
파라미터 :
aLook anImageID에 의해 식별되는 이미지를 결합하는 MhwWgtLkWeb 객체.
anElementID 변경되는 요소의 식별자.
aWidth 새로운 이미지의 픽셀에서의 폭.
aHeight 새로운 이미지의 픽셀에서의 높이.
anImageBuffer 새로운 이미지 데이터를 포함하는 버퍼.
반환 :
MHW_WGT_SUCCESS
LookPixMapMakeImageFromElement()
원형 :
Figure 112002013541145-pct00050
설명 :
elemX의 9개의 이미지를 취하고, 지정된 MHW 윈도우에 9개의 이미지를 묘화한다. 이미지를 구성하기 위한 규칙은 aDrawMode(현재 MHW_WGT_LIKWEB_DRAW_NORMAL만이 존재)에 의해 지정된다. 최종 이미지는 (anX, aY)에 위치된 상단 좌측 코너를 갖고, 크기 aWidth ×aHeight의 윈도우에 묘화된다.
하나 이상의 요소가 0 크기(elemXX.width 또는 elemXX.height가 0)이면, 이 요소가 묘화되지 않는다.
파라미터 :
elemN, elemE, elemW, elemS, elemNW, elemNE, elemSE, elemC : 각각, 상단, 우측, 좌측, 하단, 상단 좌측 코너, 상단 우측 코너, 하단 좌측 코너, 하단 우측 코너, 중간에 묘화되는 이미지.
anX 최종 이미지를 묘화하는 윈도우 aWindow에서의 x 위치.
aY 최종 이미지를 묘화하는 윈도우 aWindow에서의 y 위치.
aWidth 새로운 이미지의 픽셀에서의 폭.
aHeight 새로운 이미지의 픽셀에서의 높이.
aWindow 구성된 이미지를 묘화하는 윈도우.
aDrawMode 이미지를 구성하는 모드.
MHW_WGT_LKWEB_DRAW_NORMAL : 타일링없이 NW(2100), NE(2101), SW(2102) 및 SE(2103) 요소를 4개의 코너(2200, 2201, 2202, 2203)에 삽입한다. 수평으로 N 및 S 요소를 타일(tile)한다. 수직으로 W 및 E 요소를 타일한다. 수평 및 수직으로 C 요소를 타일한다. 그것은 어떤 이미지 크기에 작용되지만, 그것은 단지 중앙 구역(2208)이 직사각형인 것으로 제공된 구역을 정확하게 타일하도록 보증된다.
반환 :
MHW_WGT_SUCCESS
Mhw.awt 자바 인터페이스 패키지가 설명된다.
3개의 자바 클래스가 개발되어, WGT에 한정된 Look 매카니즘은 자바 애플리케이션으로 이용할 수 있다. 이들은 mhw.awt.Look, mhw.awt.WgtLook; 및 mhw.awt.PixmapLook이다.
룩 클래스는 상기에서 설명된 클래스 MhwWgtLook에 해당되는 추상 클래스이다.
WgtLook 클래스는 WGT 클래스 MhwWgtLookWgt의 인스턴스를 생성 및 조절하는데 사용된다.
PixmapLook 클래스는 WgtLook 클래스에 의해 사용되는 이미지를 저장하는데 사용된다.
Mhw.awt.PixmapLook API가 생성자 사항을 시작하여 설명된다.
PixmapLook
Figure 112002013541145-pct00051
디폴트 이미지(ID=1)로 초기화된 이미지로 PixmapLook 객체의 새로운 인스턴스를 생성한다.
PixmapLook
Figure 112002013541145-pct00052
imageID에 의해 지정된 이미지로 초기화된 이미지로 PixmapLook 객체의 새로운 인스턴스를 생성한다.
메소드가 하기에 설명된다.
SetImages
Figure 112002013541145-pct00053
이 PixmapLook 객체에 대한 현재의 이미지를 디폴트(ID=1)로 설정한다.
SetImages
Figure 112002013541145-pct00054
이 PixmapLook 객체에 대한 현재의 이미지를 imageID에 의해 지정된 이미지로 설정한다.
LoadImage
Figure 112002013541145-pct00055
지정된 이미지 요소를 로드한다. 각 PixmapLook 객체는 각 PixmapLook 객체과 결합된 이미지 세트(94)를 갖는다. 이들 이미지는 다음과 같은 그래픽 구성요소를 나타낸다: 0 relnoNW; 1 relnoSW; 2 relnoNE; 3 relnoSE; 4 relnoN; 5 relnoW; 6 relnoE; 7 relnoS; 8 relnoC; 9 relfoNW; 10 relfoSW; 11 relfoNE; 12 relfoSE; 13 relfoN; 14 relfoW; 15 relfoE; 16 relfoS; 17 relfoC; 18 relhiNW; 19 relhiSW; 20 relhiNE; 21 relhiSE; 22 relhiN; 23 relhiW; 24 relhiE; 25 relhiS; 26 relhiC; 27 relfhNW; 28 relfhSW; 29 relfhNE; 30 relfhSE; 31 relfhN; 32 relfhW; 33 relfhE; 34 relfhS; 35 relfh C; 36 butnoNW; 37 butnoSW; 38 butnoNE; 39 butnoSE; 40 butnoN; 41 butnoW; 42 butnoE; 43 butnoS; 44 butnoC; 45 butfoNW; 46 butfoSW; 47 butfoNE; 48 butfoSE; 49 butfoN; 50 butfoW; 51 butfoE; 52 butfoS; 53 butfoC; 54 buthiNW; 55 buthiSW; 56 buthiNE; 57 buthiSE; 58 buthiN; 59 buthiW; 60 buthiE; 61 buthiS; 62 buthiC; 63 butfhNW; 64 butfhSW; 65 butfhNE; 66 butfhSE; 67 butfhN; 68 butfhW; 69 butfhE; 70 butfhS; 71 butfhC; 72 choice; 73 chcklno; 74 chcklse; 75 chcklfo; 76 chcklfs; 77 chck2no; 78 chck2se; 79 chck2fo; 80 chck2fs; 81 slidNeVr; 82 slidEVr; 83 slidSeVr; 84 slidSwHr; 85 slidSHr; 86 slidSeHr; 87 slidSeVrHr; 88 slidLiftNeVr; 89 slidLiftEvr; 90 slidLiftSeVr; 91 slidLiftSwHr; 92 slidLiftSHr; 93 slidLiftSeHr.
width는 전달된 이미지의 폭을 지정한다.
height는 전달된 이미지의 높이를 지정한다.
buffer는 이미지 데이터를 포함한다. 이것은 바이트 배열의 형태로 되고, 각 바이트는 각 픽셀에 사용되는 칼라맵 인덱스를 제공한다. 픽셀(x, y)에 사용되는 인덱스는 buffer[(y*width)+x]이다.
MakeImageFromElements
Figure 112002013541145-pct00056
9개의 요소(N, E, W, S, NW, NE, SW, SE, C)에 근거된 이미지를 구성하고, (anX, aY)의 상단 좌측 코너와 크기 aWidth ×aHeight를 갖는 구성요소 aComponent와 결합된 윈도우에 이미지를 묘화한다. 이미지 버퍼는 2차원 배열로서 전달되고, 하나의 차원은 이미지 번호(N, E, W, S, NW, NE, SW, SE, C에 해당되는 0 내지 8)를 제공하고, 나머지 차원은 데이터를 포함한다. 각 버퍼의 폭과높이는 배열 폭과 높이로 제공된다.
DownloadLookDir
Figure 112002013541145-pct00057
MPEG 스트림으로부터 "룩" 디렉토리를 다운로드한다. 정보를 포함하는 문자열을 개행에 의해 분리되어 다운로드될 수 있는 각 룩 이미지 세트로 반환한다. 타이틀의 라인 번호(0 내지 n-1)는 함수 DownLoadLookImages(int ImageSet)로 사용되는 identifier(ImageSet)에 해당된다.
실제로, 디렉토리는 반환되는 문자열을 포함하는 단순한 텍스트 파일이다. 파일 경로는 소스에 하드 코딩되고, 현재 /home/users/mstoddar/mhplus/util/looks/images.dir이다. 이것은 적절하게 변경될 수 있다. 따라서, 이것은 MPEG 스트림으로부터 자동적으로 다운로드하는 디코더에 사용될 수 있다.
파일 포맷은 다음과 같다.
Figure 112002013541145-pct00058
실패이면 ""을 반환한다.
DownloadLookImages
Figure 112002013541145-pct00059
DownLoadLookDir()로 반환되는 입력들중 하나의 라인 번호에 의해 식별되는 MPEG 스트림으로부터 이미지의 새로운 세트를 다운로드하고, 그들을 이 룩으로 돌린다.
데이터를 포함하는 파일은 다음 포맷으로 된다.
WWWWHHHHWWWWHHHH... (메소드 LoadImage()에서와 동일한 순서로) 모든 94 이미지의 폭과 높이의 십진수 값을 포함하는 (스페이스를 선행하는) 일련의 4바이트 문자열. 각 이미지에 대한 데이터 버퍼는 LoadImage()와 동일한 포맷으로 다시 수반된다. 이미지 사이에서 어떠한 정렬도 이루어지지 않고, 다음 이미지의 개시는 이전의 하나에 후속하는 바이트에서 시작된다.
파일 경로는 소스에 하드 코딩되고, 현재 /home/users/mstoddar/mhplus/util/looks/images.<ImageSet> 이다. 이것은 적절하게 변경될 수 있다. 따라서, 이것은 MPEG 스트림으로부터 자동적으로 다운로드하는 디코더에 사용될 수 있다.
Figure 112002013541145-pct00060
지정된 URKL에 의해 식별되는 MPEG 스트림으로부터 이미지의 새로운 세트를 다운로드하고, 그들을 이 룩으로 기인한다.
데이터를 포함하는 파일은 상기에서 주어진 포맷으로 된다.
파일의 구조가는 명백한 C 신텍스로 하기에 주어진다.
Figure 112002013541145-pct00061
Figure 112002013541145-pct00062
Figure 112002013541145-pct00063
Figure 112002013541145-pct00064
Figure 112002013541145-pct00065
Figure 112002013541145-pct00066
Figure 112002013541145-pct00067
Figure 112002013541145-pct00068
버퍼 1 데이터의 시작. (renoNW)(8×8 바이트)
Figure 112002013541145-pct00069
버퍼 2 데이터의 시작. (renoSW)(8×8 바이트)
Figure 112002013541145-pct00070
버퍼 3 데이터의 시작. (renoNE)(8×8 바이트)
Figure 112002013541145-pct00071
버퍼 4 데이터의 시작. (renoSE)(8×8 바이트)
Figure 112002013541145-pct00072
등.
reDrawAll
Figure 112002013541145-pct00073
초점을 갖는 위젯을 검색하고 나서, 부모일 때는 더 이상 검색하지 않는다. 상단 윈도우는 다시 보여질 수 없도록, 그리고 보여질 수 있도록 설정된다. 그후, 전체 윈도우는 재묘화되어야 한다.
상기에서 설명된 하나 이상의 그래픽 객체를 디스플레이하기 위한, 복수의 이와 같은 객체 사이를 항해하기 위한, 또는 사용자로부터 입력을 받기 위한 다양한 메소드는 방송 공급업자로부터 방송을 수신하는 문맥내에서 주로 다른 영역에 적용될 수 있지만, 그것만으로 한정되는 것은 아니다. 일반적으로, 사용자와의 시각적인 상호 작용을 필요로 하는 셋탑 박스의 어떤 기능이 이와 같은 메소드를 이용할 수 있다.
예를 들면, 첨부된 서브체인을 갖는 항해 가능한 아이콘 체인은 사용자에게 신문을 디스플레이하고, 가격을 보여주고, 주문을 하며, 애플리케이션과 상호 작용할 수 있도록 홈 쇼핑 애플리케이션에 이용될 수 있다. 주문하는데 사용되는 그래픽 객체는 강조될 때 구입하는 기호(예를 들어, 달라 사인 $)와 지금까지 구입한 양을 나타내는 텍스트 또는 가입자의 언어로 워드 "구입(buy)" 사이에서 상기에서 설명된 방법으로 자동적으로 '플립(flip)'할 수 있다. 대안으로 또는 더욱이, 가입자의 언어의 워드 '구입'을 포함하는 그래픽 객체는 '구입' 아이콘이 선택될 때마다 표시될 수 있고, 어떤 서브 체인에 대한 분기를 '행 오프(hang off)'로 제공할 수 있다.
상기 예에서의 '구입' 아이콘은 클릭될 때, 지금까지 이루어진 구매 리스트를 보여주는 아이콘, 및 클릭될 때 방금 구입한 제품에 대한 발송 옵션을 설정하는 또 다른 아이콘과 나란히 배치할 수 있어, 아이콘의 논리적 시퀀스를 사용자가 항해할 수 있는 체인에 제공한다. '구입' 아이콘이 선택될 때, 서브 체인은 다양한 보조 옵션으로 표시될 수 있고, 이는 보다 고가의 아이템인 경우에 상이한 신용 방안을 제공할 수 있다. 사용자로부터 요구된 어떠한 텍스트 정보, 예를 들어 배송하기 위한 거리 주소는 가상 키보드로 입력될 수 있다.
전자 프로그램 가이드에 있어서, 유사한 메소드가 상호 작용적으로 브라우징하고 상이한 채널, 영화, 시간 및 데이터를 디스플레이하는데 이용될 수 있다. 더욱이, 차별화(customization)는 사용자의 선호도에 따라 그래픽 옵션을 체인으로 재배열하는 것이 가능할 수 있고, 채널의 체인인 경우에, 사용자의 바람직한 채널 은 체인의 헤드에서 분류될 수 있다. 이와 같은 선호도는 사용자에 의해 지시되거나 프로그램에 의해 추정될 수 있다.
상기에서 설명된 메소드에 대한 다른 애플리케이션은 요청이 있는 온라인 카탈로그, 뉴스, 날씨 서비스와, 게임, (그 구성 등을 관리하는) 셋탑 박스의 일반적인 관리를 포함한다. 게임의 경우에 있어서, 헤드/테일 플립플롭 효과는 기입되는 추가 메소드의 요구를 필요로 하지 않고 게임 애니메이션에 제공하는데 사용될 수 있고, 가상 키보드는 보다 향상된 형태의 게임을 위한 대안적인 형태의 제어기로서 사용될 수 있다.
또한, 본 명세서에서 설명된 바와 같이 리모콘을 사용하여 상호 작용하는 모든 방법이 (예를 들어, 키보드상의 숫자 0 내지 9, 화살표 키 및 리턴 키를 사용하는) 리모콘의 버튼을 모의 실험(simulate)함으로써, 또는 직접적으로(예를 들어, 버튼을 클릭하는 마우스 및 가상 키보드를 사용하는 것 대신에 직접 텍스트를 입력하는 키보드를 사용) 마우스(또는, 롤러볼 또는 조이스틱과 같은 다른 방향 제어기) 및/또는 키보드(또는, 복수의 키를 갖는 다른 장치)로 대신하거나 보충될 수 있는 것이 이해되어야 한다.
예를 들면, 상기에서 설명된 가상 키보드는 게임 머신 또는 이동 전화와 같은 복수의 키를 갖는 어떠한 장치에서 이행될 수 있다. 후자의 경우에 있어서, 가상 키보드는 실질적으로 (충분히 큰 디스플레이를 갖는 전화상에서) 전화의 스크린상에 표시되는 것으로, 또는 (보다 작은 디스플레이를 갖는 전화상에) 압축된 형태로 디스플레이될 수 있다. 이와 같은 가상 키보드의 압축은 한꺼번에 캐릭터의 하 나의 숫자 블록만을 좌측, 우측, 업 및/또는 다운 키(또는 그들의 동등물, 예를 들어 롤러 형태 방향 제어기들의 경우에)를 누름으로써 액세스될 수 있는 캐릭터의 모양 또는 캐릭터의 형태로 나타내어야 한다. 압축된 가상 키보드는 다른 애플리케이션, 특히 키보드를 디스플레이하는데 이용될 수 있는 작은 공간이 있는 애플리케이션에 사용될 수 있다.
용어 '체크 박스'는 상이한 상태, 바람직하게 '체크된' 및 '체크되지 않은'에 해당되는 2가지 상태, 보다 바람직하게 2 이상의 상태를 디스플레이할 수 있고, 사용자에 의해 클릭 또는 선택될 때 일관성 있는 방식으로 그 상태를 변경할 수 있는 어떠한 형태, 예를 들어 원형의 그래픽 객체에 관련될 수 있다. '체크된' 상태는 박스상에서 틱(tick), 교차(cross) 또는 다른 장식으로 지시될 수 있다.
쉽게 참조하기 위해, 다음과 같은 바람직한 의미를 갖는 본 명세서에서 사용된 용어가 하기에 기술된다.
HTML : 하이퍼 텍스트 표시 언어(HyperText Markup Language), 인터넷상에서 교환되는 문서를 표현하는 언어. 문서는 사이트에 대한 참조, 포맷팅(formatting) 정보, 사운드 및 그림 등을 포함할 수 있다.
HTTP : 하이퍼 텍스트 전송 규약(HyperText Transport Protocol), HTML 문서들을 유지하는 인터넷 서비스와 HTML 문서를 디스플레이하는 항해 애플리케이션 사이에서 통신하기 위한 프로톨콜.
MPEG-2 : 동화상 전문가 그룹(Motion Picture Expert Group), 실시간으로 연속된 이미지와 사운드를 코딩하는 방법.
PPP : 지점간 프로토콜(Point-to-Point Protocol), 2개의 컴퓨터가 모뎀을 통해 네트워크될 수 있게 하는 거리 액세스 통신 프로토콜.
프록시 서버(PROXY SERVER) : 안전한 인터넷 연결을 허용하고, 또한 HTTP 및 FTP 요청을 버퍼링하는 서버에 위치된 애플리케이션.
세션(SESSION) : 주어진 지점에서 메모리의 연결 형태 또는 애플리케이션의 인스턴스.
URL : 일관된 자원 위치기(Uniform Resource Locator), 인터넷상에 파일 또는 자원을 위치시키는데 사용되는 어드레스. 사이트에 대한 링크가 웹 페이지에 연결된 자원의 어드레스를 지시한다.
WWW : 월드 와이드 웹(World Wide Web), 로컬 또는 원격 문서를 사용하는 인터넷 네트워크. 로컬 또는 원격 네트워크에 위치되었는지에 관계없이, 웹 문서는 웹 페이지이고, 페이지에서의 링크는 상이한 페이지들 사이, 및 상이한 서브젝트(subject)들 사이에서의 항해를 허용한다.
GUI : 그래픽 사용자 인터페이스(Graphical User Interface).
WGT : 위젯 툴킷(Widget Toolkit).
본 발명은 본 명세서에서 예시로써 상술되었고, 내용의 변형이 본 발명의 범위내에서 이루어질 수 있음을 이해할 것이다.
상세한 설명에서 기술된 각 형태, (적합한) 청구범위 및 도면에 기술된 각 형태는 독립적으로 또는 어떤 적합한 결합으로 제공될 수 있다.
상술한 어느 하나 또는 전체에 있어서, 본 발명의 어떤 측면은 컴퓨터 소프트웨어를 사용하여 실행된다. 그러나, 이들 측면중 어느 하나가 하드웨어 또는 통합된 하드웨어와 소프웨어를 사용하여 실행될 수 있는 것이 숙련된 기술자에게는 명확하게 될 것이다. 더욱이, 하드웨어, 컴퓨터 소프트웨어 및 이와 같은 유사물에 의해 수행되는 기능은 전기 및 기타 신호로 또는 전기 및 기타 신호를 사용하여 수행된다.
정보 저장 장치에 관련된 측면은 적합한 메모리 위치 또는 저장에 의해 실행될 수 있다. 정보 처리에 관련된 측면은 적합한 프로세서 또는 제어 수단에 의해 소프트웨어, 하드웨어 또는 2개의 결합으로 실행될 수 있다.
전술한 어느 하나 또는 전체에 있어서, 본 발명은 다음 형태중 어느 하나, 일부 또는 전체가 이용될 수 있고, 본 발명은 컴퓨터 시스템을 동작하는 방법에 이용될 수 있고, 본 발명은 컴퓨터 시스템 자체에 이용될 수 있고, 본 발명은 그 시스템을 동작하는 방법으로 또는 실행하도록 적용 또는 배치되는 컴퓨터 시스템에 이용될 수 있으며, 및/또는 본 발명은 시스템을 동작하는 방법에 따라 동작되는 기록된 프로그램을 갖는 컴퓨터 판독 가능 저장 매체에 이용될 수 있다.
본 명세서에서 사용된 용어 "컴퓨터 시스템"은 "컴퓨터", "시스템", "설비", "장치", "머신" 및 유사한 용어로 교체될 수 있다.
청구범위에 나타낸 참조 번호는 단지 설명하기 위해 나타낸 것이고, 청구범위의 범위에 효력을 제한하지 않는다.
출원인은 본 명세서에 의해 첨부된 도면의 저작권을 청구하는 의혹을 회피한 다.

Claims (98)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
  52. 삭제
  53. 삭제
  54. 삭제
  55. 삭제
  56. 삭제
  57. 삭제
  58. 삭제
  59. 삭제
  60. 삭제
  61. 삭제
  62. 삭제
  63. 삭제
  64. 삭제
  65. 삭제
  66. 삭제
  67. 삭제
  68. 삭제
  69. 삭제
  70. 삭제
  71. 삭제
  72. 삭제
  73. 삭제
  74. 삭제
  75. 삭제
  76. 삭제
  77. 삭제
  78. 삭제
  79. 삭제
  80. 삭제
  81. 삭제
  82. 삭제
  83. 삭제
  84. 삭제
  85. 삭제
  86. 삭제
  87. 삭제
  88. 삭제
  89. 삭제
  90. 삭제
  91. 삭제
  92. 삭제
  93. 삭제
  94. 삭제
  95. 삭제
  96. 삭제
  97. 삭제
  98. 그래픽 유저 인터페이스에서 객체 지향 위젯(430;500)의 외관을 제어하는 장치(13)로서, 상기 장치는:
    룩 객체 클래스를 정의하는 수단(220);및
    상기 룩 객체 클래스와 상기 위젯(430;500)을 관련시키는 수단(220)을 포함하고,
    상기 룩 객체 클래스는 상기 위젯(430;500)이 어떻게 디스플레이 되는지를 결정하는 코드 또는 코드 파라미터를 포함하며, 상기 위젯(430;500)의 외관을 정의하고, 재정의되거나 수정되는 경우에, 그 값이 업데이트되는 업데이트 카운터를 포함하는 것을 특징으로 하는 장치.
KR1020027005693A 1999-11-02 2000-11-01 그래픽 객체 디스플레이 KR100666450B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
EP99402721A EP1098246A1 (en) 1999-11-02 1999-11-02 Displaying graphical objects
EP99402721.7 1999-11-02
EP00300832A EP1098244A3 (en) 1999-11-02 2000-02-03 Graphical user interface
EP00300832.3 2000-02-03

Publications (2)

Publication Number Publication Date
KR20020050785A KR20020050785A (ko) 2002-06-27
KR100666450B1 true KR100666450B1 (ko) 2007-01-09

Family

ID=26072989

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020027005694A KR20020044181A (ko) 1999-11-02 2000-11-01 그래픽 사용자 인터페이스에서의 데이터 입력
KR1020027005693A KR100666450B1 (ko) 1999-11-02 2000-11-01 그래픽 객체 디스플레이

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020027005694A KR20020044181A (ko) 1999-11-02 2000-11-01 그래픽 사용자 인터페이스에서의 데이터 입력

Country Status (17)

Country Link
US (1) US7030890B1 (ko)
EP (3) EP1098244A3 (ko)
JP (4) JP2003514273A (ko)
KR (2) KR20020044181A (ko)
CN (1) CN1316356C (ko)
AT (1) ATE322716T1 (ko)
AU (2) AU1293801A (ko)
BR (1) BR0015269A (ko)
CA (1) CA2389382A1 (ko)
DE (1) DE60027206T2 (ko)
HK (1) HK1045203A1 (ko)
IL (1) IL149396A0 (ko)
MX (1) MXPA02004356A (ko)
MY (2) MY138274A (ko)
NO (1) NO20022071L (ko)
RU (1) RU2267151C2 (ko)
WO (2) WO2001033325A2 (ko)

Families Citing this family (186)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6857106B1 (en) * 1999-09-15 2005-02-15 Listen.Com, Inc. Graphical user interface with moveable, mergeable elements
US8621001B2 (en) 2000-03-30 2013-12-31 Ebay Inc. System and method for dynamically changing the content of an information display
US6917961B2 (en) * 2000-03-30 2005-07-12 Kettera Software, Inc. Evolving interactive dialog box for an internet web page
US8261975B2 (en) 2001-03-07 2012-09-11 Diebold, Incorporated Automated banking machine that operates responsive to data bearing records
CA2704294C (en) 2001-07-26 2012-11-20 Irise System and process for automatically configuring a behavior for an instruction for a requirements validation computer program
US20030128214A1 (en) * 2001-09-14 2003-07-10 Honeywell International Inc. Framework for domain-independent archetype modeling
US8104017B2 (en) * 2001-10-25 2012-01-24 The Mathworks, Inc. Traceability in a modeling environment
US20030160822A1 (en) * 2002-02-22 2003-08-28 Eastman Kodak Company System and method for creating graphical user interfaces
DE10208146A1 (de) * 2002-10-02 2003-09-11 Bsh Bosch Siemens Hausgeraete Verfahren zum rechnergestützten Erzeugen einer graphischen Benutzeroberfläche und Geräteüberwachungs-/Steuerungseinheit
KR100377432B1 (ko) * 2002-03-29 2003-05-09 주식회사 네오패드 문자/단어 생성 방법 및 이를 이용한 정보통신 서비스 방법
FR2840494A1 (fr) * 2002-05-28 2003-12-05 Koninkl Philips Electronics Nv Systeme de controle a distance d'une scene multimedia
TWI246297B (en) * 2002-07-02 2005-12-21 Netbuck Payment Service Co Ltd Apparatus and method for securely inputting and transmitting private data associated with a user to a server
KR100484347B1 (ko) * 2002-07-25 2005-04-20 주식회사 네오테크 화면 생성 시스템 및 방법
US7511710B2 (en) 2002-11-25 2009-03-31 Microsoft Corporation Three-dimensional program guide
US20040100484A1 (en) * 2002-11-25 2004-05-27 Barrett Peter T. Three-dimensional television viewing environment
US7890324B2 (en) * 2002-12-19 2011-02-15 At&T Intellectual Property Ii, L.P. Context-sensitive interface widgets for multi-modal dialog systems
US7376908B2 (en) * 2003-03-24 2008-05-20 Microsoft Corporation On-screen display image rendered with MPEG hardware
US20040221258A1 (en) * 2003-05-01 2004-11-04 Lockheed Martin Corporation Method and apparatus for generating custom status display
EP1636697A1 (en) 2003-06-13 2006-03-22 Sap Ag A method of entering of data into a data processing system
US7904323B2 (en) * 2003-06-23 2011-03-08 Intel Corporation Multi-team immersive integrated collaboration workspace
US20080086716A1 (en) * 2003-09-04 2008-04-10 Lockheed Martin Corporation Method and apparatus for information display with intermediate datasource access
US20050071135A1 (en) 2003-09-30 2005-03-31 Vredenburgh David W. Knowledge management system for computer-aided design modeling
US8751950B2 (en) 2004-08-17 2014-06-10 Ice Edge Business Solutions Ltd. Capturing a user's intent in design software
US8151214B2 (en) 2003-12-29 2012-04-03 International Business Machines Corporation System and method for color coding list items
US7908566B2 (en) 2003-12-29 2011-03-15 International Business Machines Corporation System and method for scrolling among categories in a list of documents
US8171426B2 (en) 2003-12-29 2012-05-01 International Business Machines Corporation Method for secondary selection highlighting
US7421664B2 (en) 2003-12-29 2008-09-02 International Business Machines Corporation System and method for providing a category separator in a list of documents
EP1560104A1 (en) * 2004-01-28 2005-08-03 Sony Ericsson Mobile Communications AB Device with game-dependent user interface, method, game module and computer program product therefor
JP4475634B2 (ja) * 2004-03-26 2010-06-09 キヤノン株式会社 情報処理装置および方法
WO2005093565A1 (ja) * 2004-03-26 2005-10-06 Matsushita Electric Industrial Co., Ltd. 表示処理装置及び表示処理方法
US20050235251A1 (en) * 2004-04-15 2005-10-20 Udo Arend User interface for an object instance floorplan
US7490295B2 (en) 2004-06-25 2009-02-10 Apple Inc. Layer for accessing user interface elements
US20060020904A1 (en) 2004-07-09 2006-01-26 Antti Aaltonen Stripe user interface
WO2009111885A1 (en) 2008-03-11 2009-09-17 Dirtt Environmental Solutions, Ltd. Automatically creating and modifying furniture layouts in design software
CA2577199C (en) * 2004-08-17 2015-12-22 Dirtt Environmental Solutions, Ltd. Capturing a user's intent in design software
US7277830B2 (en) 2004-08-17 2007-10-02 Dirtt Environmental Solutions Ltd. Capturing a user's design intent with resolvable objects
US8510672B2 (en) 2004-08-17 2013-08-13 Dirtt Environmental Solutions Ltd Automatically creating and modifying furniture layouts in design software
US7797724B2 (en) 2004-08-31 2010-09-14 Citrix Systems, Inc. Methods and apparatus for secure online access on a client device
US20060048064A1 (en) * 2004-08-31 2006-03-02 Microsoft Corporation Ambient display of data in a user interface
US7509260B2 (en) * 2004-09-20 2009-03-24 International Business Machines Corporation Systems and methods for inputting graphical data into a graphical input field
US20060074735A1 (en) * 2004-10-01 2006-04-06 Microsoft Corporation Ink-enabled workflow authoring
US7523387B1 (en) * 2004-10-15 2009-04-21 The Weather Channel, Inc. Customized advertising in a web page using information from the web page
US9471332B2 (en) * 2004-10-19 2016-10-18 International Business Machines Corporation Selecting graphical component types at runtime
US10216372B1 (en) * 2004-12-06 2019-02-26 The Mathworks, Inc. Automatic import to a graphical model
US7734999B2 (en) * 2005-01-03 2010-06-08 Emergis Inc. System and method for providing forms on a user interface
CN101103376A (zh) * 2005-01-07 2008-01-09 皇家飞利浦电子股份有限公司 用于检测图形对象的方法和电子设备
KR100631755B1 (ko) * 2005-01-25 2006-10-11 삼성전자주식회사 자바 응용 프로그램의 룩을 실시간으로 전환하는 장치 및방법
KR100704153B1 (ko) 2005-07-06 2007-04-06 삼성전자주식회사 이동통신단말기에서 메시지의 문자크기 변경 방법
JP4943674B2 (ja) * 2005-07-13 2012-05-30 沖電気工業株式会社 表示制御装置および表示制御方法
US8074248B2 (en) 2005-07-26 2011-12-06 Activevideo Networks, Inc. System and method for providing video content associated with a source image to a television in a communication network
EP1938184A4 (en) * 2005-08-19 2009-12-02 Google Inc SOFTWARE ARCHITECTURE FOR DISPLAYING INFORMATION CONTENT FROM PLUG-IN MODULES ON A USER INTERFACE
JP4640046B2 (ja) * 2005-08-30 2011-03-02 株式会社日立製作所 デジタルコンテンツ再生装置
US8510779B2 (en) * 2005-09-15 2013-08-13 Fourthwall Media, Inc. Self-contained mini-applications system and method for digital television
US8806368B2 (en) 2005-09-30 2014-08-12 Sap Ag User interface having quick views and full views
US9104294B2 (en) * 2005-10-27 2015-08-11 Apple Inc. Linked widgets
US7752556B2 (en) 2005-10-27 2010-07-06 Apple Inc. Workflow widgets
US7707514B2 (en) 2005-11-18 2010-04-27 Apple Inc. Management of user interface elements in a display environment
US7924884B2 (en) 2005-12-20 2011-04-12 Citrix Systems, Inc. Performance logging using relative differentials and skip recording
EP1987456A4 (en) 2006-02-16 2012-09-26 Ice Edge Business Solutions Ltd INTEGRATION OF OBJECT-ORIENTED DESIGN SOFTWARE WITH DATA-BASED CAD SOFTWARE
CN101496387B (zh) 2006-03-06 2012-09-05 思科技术公司 用于移动无线网络中的接入认证的系统和方法
CA2543304A1 (en) * 2006-04-11 2007-10-11 Ibm Canada Limited - Ibm Canada Limitee Code highlight and intelligent location descriptor for programming shells
US7840979B2 (en) * 2006-06-30 2010-11-23 Microsoft Corporation Graphical tile-based expansion cell guide
US8199113B2 (en) * 2006-09-13 2012-06-12 Savant Systems, Llc Programmable on screen display and remote control
US20080072174A1 (en) * 2006-09-14 2008-03-20 Corbett Kevin M Apparatus, system and method for the aggregation of multiple data entry systems into a user interface
US8155202B2 (en) * 2007-01-12 2012-04-10 Activevideo Networks, Inc. System and method for encoding scrolling raster images
US9826197B2 (en) * 2007-01-12 2017-11-21 Activevideo Networks, Inc. Providing television broadcasts over a managed network and interactive content over an unmanaged network to a client device
KR100877066B1 (ko) * 2007-01-22 2009-01-09 삼성전자주식회사 Layout 구조를 이용한 GUI 위짓 구성 장치 및이를 운영하는 방법
CN104184973A (zh) * 2007-02-02 2014-12-03 索尼株式会社 信息处理设备和方法
US20080276170A1 (en) * 2007-02-06 2008-11-06 Access Systems Americas, Inc. System and method for generating and arranging status gadgets in a small display area
US7779367B2 (en) * 2007-02-08 2010-08-17 Microsoft Corporation Dynamic control configuration
US8010942B1 (en) * 2007-03-05 2011-08-30 Sprint Communications Company L.P. Resilient application design and displaying design profile via graphical user interface
CN100464296C (zh) * 2007-03-09 2009-02-25 华为技术有限公司 一种用户界面变换方法及系统
US9292964B2 (en) * 2007-03-15 2016-03-22 Gvbb Holdings S.A.R.L. Method and system for accessibility and control of parameters in scenegraphs
CN101291402B (zh) * 2007-04-18 2011-06-15 深圳Tcl新技术有限公司 一种功能界面图片组合使用的方法及装置
EP2156280A4 (en) * 2007-05-07 2014-09-10 Fourthwall Media Inc CONTEXT-BASED PREDICTION AND LEARNING USING A UNIVERSAL AND RE-ENTERING PREDICTIVE TEXT SOFTWARE COMPONENT
JP5422816B2 (ja) * 2007-05-08 2014-02-19 ティーピー ビジョン ホールディング ビー ヴィ 複数のビデオチャネルから視聴のための1つを選択するための方法及び装置
US8954871B2 (en) 2007-07-18 2015-02-10 Apple Inc. User-centric widgets and dashboards
US8559732B2 (en) * 2007-08-06 2013-10-15 Apple Inc. Image foreground extraction using a presentation application
CN101369249B (zh) * 2007-08-14 2011-08-17 国际商业机器公司 标识软件的gui部件的方法和装置
US9785326B2 (en) * 2007-08-22 2017-10-10 Proscape Technologies, Inc. Defining and tracking an interactive user interface
US7921454B2 (en) * 2007-10-22 2011-04-05 International Business Machines Corporation System and method for user password protection
KR101204795B1 (ko) * 2007-10-23 2012-11-26 삼성전자주식회사 이종의 그래픽 시스템 기반 어플리케이션들의 화면 공유방법 및 그 장치
USD608788S1 (en) 2007-12-03 2010-01-26 Gambro Lundia Ab Portion of a display panel with a computer icon image
US8059897B2 (en) * 2007-12-10 2011-11-15 Motorola Mobility, Inc. Method for automatically performing an image processing function on an electronic device
EP2245563A4 (en) 2008-02-13 2012-04-25 Ice Edge Business Solutions Ltd RENDERING AND MODIFYING COMPUTER-AIDED DESIGN (CAD) DESIGN ENTITIES IN OBJECT-ORIENTED APPLICATIONS
US8797377B2 (en) 2008-02-14 2014-08-05 Cisco Technology, Inc. Method and system for videoconference configuration
WO2009104788A1 (ja) * 2008-02-22 2009-08-27 シャープ株式会社 表示装置、統合インターフェイス装置、および統合インターフェイス装置の制御方法
JP5123690B2 (ja) * 2008-02-27 2013-01-23 キヤノン株式会社 画面データ処理装置、画面データ処理方法、及びコンピュータプログラム
US9069575B2 (en) * 2008-03-25 2015-06-30 Qualcomm Incorporated Apparatus and methods for widget-related memory management
US9110685B2 (en) 2008-03-25 2015-08-18 Qualcomm, Incorporated Apparatus and methods for managing widgets in a wireless communication environment
US8390667B2 (en) 2008-04-15 2013-03-05 Cisco Technology, Inc. Pop-up PIP for people not in picture
KR101539461B1 (ko) * 2008-07-16 2015-07-30 삼성전자주식회사 멀티미디어 시스템에서 사용자 인터페이스 서비스를 제공하는 방법 및 장치
US8149431B2 (en) * 2008-11-07 2012-04-03 Citrix Systems, Inc. Systems and methods for managing printer settings in a networked computing environment
CN101876897A (zh) * 2009-04-30 2010-11-03 国际商业机器公司 用于在Web浏览器上处理Widget的系统和方法
US8407212B2 (en) 2009-05-20 2013-03-26 Genieo Innovation Ltd. System and method for generation of a customized web page based on user identifiers
US20100325565A1 (en) * 2009-06-17 2010-12-23 EchoStar Technologies, L.L.C. Apparatus and methods for generating graphical interfaces
US9082297B2 (en) 2009-08-11 2015-07-14 Cisco Technology, Inc. System and method for verifying parameters in an audiovisual environment
JP5430504B2 (ja) 2009-09-29 2014-03-05 キヤノン株式会社 情報処理装置、その制御方法、及びプログラム
JP5097297B2 (ja) 2009-10-02 2012-12-12 パナソニック株式会社 再生装置、再生方法、再生プログラム
US20110080462A1 (en) * 2009-10-02 2011-04-07 Panasonic Corporation Playback device, integrated circuit, playback method, and program for stereoscopic video playback
US20110093890A1 (en) * 2009-10-21 2011-04-21 John Araki User control interface for interactive digital television
JP5252352B2 (ja) * 2009-11-05 2013-07-31 クラリオン株式会社 情報端末装置、情報端末管理システム及びプログラム
EP2504783A4 (en) 2009-11-24 2015-02-25 Ice Edge Business Solutions Inc SECURE SHARING OF DESIGN REPRESENTATIONS ON A NETWORK
US20110145734A1 (en) * 2009-12-10 2011-06-16 Microsoft Corporation Processing Computer Implemented Action
CN101765236B (zh) * 2009-12-23 2014-04-02 宇龙计算机通信科技(深圳)有限公司 一种移动终端的界面切换方法及移动终端
USD668673S1 (en) * 2010-01-26 2012-10-09 Dassault Aviation Display screen portion with icon
KR101622635B1 (ko) 2010-02-12 2016-05-20 삼성전자주식회사 3개의 표시부를 가지는 단말기의 데이터 운용 방법 및 이를 지원하는 단말기
US8726147B1 (en) * 2010-03-12 2014-05-13 Symantec Corporation Systems and methods for restoring web parts in content management systems
US9723360B2 (en) * 2010-04-01 2017-08-01 Saturn Licensing Llc Interests and demographics profile for advanced broadcast services
US20110247028A1 (en) 2010-04-01 2011-10-06 Mark Eyer Receiver and System Using an Electronic Questionnaire for Advanced Broadcast Services
CN101807138A (zh) * 2010-04-13 2010-08-18 华为终端有限公司 一种菜单画面显示装置和方法
KR101115423B1 (ko) * 2010-06-14 2012-02-15 알피니언메디칼시스템 주식회사 초음파 진단장치 및 그 제어방법
US8896655B2 (en) 2010-08-31 2014-11-25 Cisco Technology, Inc. System and method for providing depth adaptive video conferencing
US20120081615A1 (en) * 2010-09-30 2012-04-05 Starr Ephraim D Remote control
EP2625606A4 (en) 2010-10-08 2014-11-26 Irise SYSTEM AND METHOD FOR EXTENDING A VISUALIZATION PLATFORM
KR20130138263A (ko) 2010-10-14 2013-12-18 액티브비디오 네트웍스, 인코포레이티드 케이블 텔레비전 시스템을 이용하는 비디오 장치들 간의 디지털 비디오의 스트리밍
RU2010144357A (ru) * 2010-11-01 2012-05-10 Владимир Валерьевич Канин (RU) Способ и система для обеспечения доступа абонента к сетевым данным и сетевым услугам с использованием терминальной приставки и машиночитаемые носители
US8902244B2 (en) 2010-11-15 2014-12-02 Cisco Technology, Inc. System and method for providing enhanced graphics in a video environment
US9338394B2 (en) 2010-11-15 2016-05-10 Cisco Technology, Inc. System and method for providing enhanced audio in a video environment
US8542264B2 (en) 2010-11-18 2013-09-24 Cisco Technology, Inc. System and method for managing optics in a video environment
US8723914B2 (en) 2010-11-19 2014-05-13 Cisco Technology, Inc. System and method for providing enhanced video processing in a network environment
US8972873B2 (en) * 2010-11-30 2015-03-03 International Business Machines Corporation Multi-environment widget assembly, generation, and operation
US9111138B2 (en) 2010-11-30 2015-08-18 Cisco Technology, Inc. System and method for gesture interface control
USD682854S1 (en) 2010-12-16 2013-05-21 Cisco Technology, Inc. Display screen for graphical user interface
USD682294S1 (en) * 2010-12-16 2013-05-14 Cisco Technology, Inc. Display screen with graphical user interface
CN102622156B (zh) * 2011-01-26 2016-08-03 腾讯科技(深圳)有限公司 获取虚拟键盘的方法、装置和系统
US9600785B2 (en) * 2011-01-31 2017-03-21 International Business Machines Corporation Automatically generated and updated graphical rendering of processes
EP2695388B1 (en) 2011-04-07 2017-06-07 ActiveVideo Networks, Inc. Reduction of latency in video distribution networks using adaptive bit rates
CN102209145A (zh) * 2011-05-11 2011-10-05 深圳雅图数字视频技术有限公司 基于移动终端的遥控器构建方法和具遥控功能的移动终端
US9189571B2 (en) 2011-06-11 2015-11-17 Ice Edge Business Solutions, Ltd. Automated re-use of structural components
US8793572B2 (en) 2011-06-30 2014-07-29 Konica Minolta Laboratory U.S.A., Inc. Positioning graphical objects within previously formatted text
EP2560083A1 (en) * 2011-08-18 2013-02-20 Uniqoteq Ltd A method, apparatus and computer program for providing user-specific information on a graphical user interface
KR101966708B1 (ko) * 2011-10-28 2019-08-14 삼성전자 주식회사 배경 컨텐츠 운용 방법 및 이를 지원하는 단말기
EP2815582B1 (en) 2012-01-09 2019-09-04 ActiveVideo Networks, Inc. Rendering of an interactive lean-backward user interface on a television
EP2632119A1 (en) * 2012-02-27 2013-08-28 Doro AB Two-mode access linear UI
US9123084B2 (en) 2012-04-12 2015-09-01 Activevideo Networks, Inc. Graphical application integration with MPEG objects
KR101925058B1 (ko) * 2012-04-26 2018-12-04 삼성전자주식회사 초음파 장치의 버튼의 기능을 버튼에 디스플레이하는 방법 및 장치
WO2014001060A1 (en) * 2012-06-27 2014-01-03 Oce-Technologies B.V. A user interaction system for displaying digital objects
USD726202S1 (en) 2012-07-13 2015-04-07 Thermo Electron Led Gmbh Display screen of a centrifuge with graphical user interface
US9465882B2 (en) 2012-07-19 2016-10-11 Adobe Systems Incorporated Systems and methods for efficient storage of content and animation
US9870554B1 (en) 2012-10-23 2018-01-16 Google Inc. Managing documents based on a user's calendar
US9280656B2 (en) * 2012-11-16 2016-03-08 University-Industry Foundation, Yonsei University Device and method for providing security channel interface
KR20140111497A (ko) * 2013-03-11 2014-09-19 삼성전자주식회사 터치 스크린의 화면에 표시된 아이템을 삭제하는 방법, 저장 매체 및 휴대 단말
US11205036B2 (en) * 2013-03-11 2021-12-21 Oracle International Corporation Method and system for implementing contextual widgets
US9524273B2 (en) 2013-03-11 2016-12-20 Oracle International Corporation Method and system for generating a web page layout using nested drop zone widgets having different software functionalities
US10275128B2 (en) 2013-03-15 2019-04-30 Activevideo Networks, Inc. Multiple-mode system and method for providing user selectable video content
KR101352321B1 (ko) * 2013-03-18 2014-01-15 이강욱 복수의 입력 방법 간 전환 방법
EP3005712A1 (en) 2013-06-06 2016-04-13 ActiveVideo Networks, Inc. Overlay rendering of user interface onto source video
US9219922B2 (en) 2013-06-06 2015-12-22 Activevideo Networks, Inc. System and method for exploiting scene graph information in construction of an encoded video sequence
US9294785B2 (en) 2013-06-06 2016-03-22 Activevideo Networks, Inc. System and method for exploiting scene graph information in construction of an encoded video sequence
US9626184B2 (en) * 2013-06-28 2017-04-18 Intel Corporation Processors, methods, systems, and instructions to transcode variable length code points of unicode characters
US9842113B1 (en) 2013-08-27 2017-12-12 Google Inc. Context-based file selection
CN103491405B (zh) * 2013-08-30 2018-06-05 小米科技有限责任公司 遥控系统、遥控器、显示设备及遥控方法
KR20150026132A (ko) * 2013-08-30 2015-03-11 삼성전자주식회사 전자 장치를 이용하여 오브젝트를 공유하는 방법 및 장치
CN103489432B (zh) * 2013-08-30 2016-04-13 小米科技有限责任公司 电子设备及资源显示方法
US9973462B1 (en) 2013-10-21 2018-05-15 Google Llc Methods for generating message notifications
US20150242377A1 (en) * 2014-02-24 2015-08-27 Autodesk, Inc. Logical structure-based document navigation
JP6220712B2 (ja) * 2014-03-26 2017-10-25 京セラ株式会社 携帯端末および携帯端末の制御方法
CA2946907A1 (en) * 2014-04-25 2015-10-29 Espial Group Inc. Text entry using rollover character row
US10120659B2 (en) * 2014-05-30 2018-11-06 Apple Inc. Adaptive user interfaces
USD785018S1 (en) * 2014-06-02 2017-04-25 Samsung Electronics Co., Ltd. Display screen or portion thereof with graphical user interface
US9548894B2 (en) * 2014-06-06 2017-01-17 Yokogawa Electric Corporation Proximity based cross-screen experience App framework for use between an industrial automation console server and smart mobile devices
US9442906B2 (en) * 2014-10-09 2016-09-13 Wrap Media, LLC Wrap descriptor for defining a wrap package of cards including a global component
USD771652S1 (en) * 2015-02-06 2016-11-15 Samsung Electronics Co., Ltd. Display screen or portion thereof with icon
USD759084S1 (en) * 2015-06-04 2016-06-14 Security Scorecard, Inc. Display screen or portion thereof with graphical user interface for security to reduce risk
CN105468280A (zh) * 2015-11-13 2016-04-06 小米科技有限责任公司 键盘样式切换方法及装置
US10075448B2 (en) * 2016-06-06 2018-09-11 Ca, Inc. Password setup management
USD821413S1 (en) * 2017-02-23 2018-06-26 Google Llc Display screen with graphical user interface
US10824866B2 (en) * 2017-06-13 2020-11-03 The Marketing Store Worldwife, LP System, method, and apparatus for augmented reality implementation
US10788972B2 (en) * 2017-10-02 2020-09-29 Fisher-Rosemount Systems, Inc. Systems and methods for automatically populating a display area with historized process parameters
KR102431329B1 (ko) * 2017-12-14 2022-08-11 주식회사 윤디자인그룹 한글자판 선택 가능한 통합 가상키보드 제공 방법
CN108279964B (zh) * 2018-01-19 2021-09-10 广州视源电子科技股份有限公司 蒙层渲染的实现方法、装置、智能设备及存储介质
CN108563189B (zh) * 2018-04-04 2020-03-27 沈机(上海)智能系统研发设计有限公司 机床电气故障诊断系统
US11386342B2 (en) * 2018-04-20 2022-07-12 H2O.Ai Inc. Model interpretation
US11922283B2 (en) 2018-04-20 2024-03-05 H2O.Ai Inc. Model interpretation
CN110873820B (zh) * 2018-08-31 2022-04-26 宁波三星智能电气有限公司 一种基于面向对象的智能电能表显示方法
US11567787B2 (en) * 2018-09-29 2023-01-31 Or-Ment Llc User interface collaboration advisor
KR102160189B1 (ko) * 2018-11-30 2020-09-25 인천대학교 산학협력단 애니메이션 내 객체의 채색을 지원하기 위한 사용자 인터페이스를 제공하는 전자 장치 및 그의 동작 방법
USD924889S1 (en) * 2019-06-01 2021-07-13 Apple Inc. Electronic device with graphical user interface
US11303643B1 (en) 2019-06-06 2022-04-12 NortonLifeLock Inc. Systems and methods for protecting users
CN113041614B (zh) * 2019-12-26 2023-05-05 世熠网络科技(上海)有限公司 游戏中的游戏对象显示处理方法及装置、可读存储介质
TWI714480B (zh) * 2020-03-19 2020-12-21 索爾智慧機械有限公司 拉帽安裝工具測試儀器之數據顯示方法
CN112799732A (zh) * 2020-12-30 2021-05-14 深圳市捷顺科技实业股份有限公司 一种基于插件化的显示屏显示方法及相关装置
US11562043B1 (en) * 2021-10-29 2023-01-24 Shopify Inc. System and method for rendering webpage code to dynamically disable an element of template code
CN114564275A (zh) * 2022-03-16 2022-05-31 北京贝壳时代网络科技有限公司 元素列表的刷新控制方法、装置、存储介质及电子设备
US11935195B1 (en) 2022-12-13 2024-03-19 Astrovirtual, Inc. Web browser derived content including real-time visualizations in a three-dimensional gaming environment

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL91076A (en) * 1989-07-23 1993-02-21 Israel D Nebenzahl Configurable keyboard
CA2030438C (en) * 1990-01-22 2002-05-28 Donald Vincent Alecci Method of reducing data storage requirements associated with computer windowing environments
US5629720A (en) * 1991-02-05 1997-05-13 Hewlett-Packard Company Display mode processor
GB2271447A (en) * 1992-10-12 1994-04-13 Ibm Data processing system
US6259446B1 (en) * 1992-12-23 2001-07-10 Object Technology Licensing Corporation Menu state system
US5631825A (en) * 1993-09-29 1997-05-20 Dow Benelux N.V. Operator station for manufacturing process control system
CA2136367A1 (en) * 1993-12-20 1995-06-21 John Scott Anderson Dynamically specifying invocations in compiled objects
US5598523A (en) * 1994-03-31 1997-01-28 Panasonic Technologies, Inc. Method and system for displayed menu activation using a matching distinctive arrangement of keypad actuators
DE69525249T2 (de) * 1994-05-16 2002-10-02 Apple Computer Umschaltung zwischen darstellungs-/verhaltensthemen in graphischen benutzeroberflächen
JP4190591B2 (ja) * 1994-11-08 2008-12-03 ソニー株式会社 番組選択システム、受信装置、および番組選択画面表示方法
US5732271A (en) * 1995-01-23 1998-03-24 International Business Machines Corporation Data processing system and method for processing an object oriented development environment employing property inheritance using prototypical objects
JPH08278887A (ja) * 1995-04-07 1996-10-22 Hitachi Ltd オブジェクト定義自動生成装置
US5848352A (en) 1995-04-26 1998-12-08 Wink Communications, Inc. Compact graphical interactive information system
JP2914227B2 (ja) * 1995-07-11 1999-06-28 富士ゼロックス株式会社 画像処理装置および画像処理方法
US5774121A (en) * 1995-09-18 1998-06-30 Avantos Performance Systems, Inc. User interface method and system for graphical decision making with categorization across multiple criteria
US5754173A (en) * 1996-02-28 1998-05-19 Sun Microsystems, Inc. Method and system for creating user interface independent programs with a user interface provider
US5861889A (en) * 1996-04-19 1999-01-19 3D-Eye, Inc. Three dimensional computer graphics tool facilitating movement of displayed object
US6570587B1 (en) * 1996-07-26 2003-05-27 Veon Ltd. System and method and linking information to a video
FR2752314B1 (fr) * 1996-08-12 1999-01-15 Thomson Multimedia Sa Procede de navigation dans une interface utilisateur graphique et dispositif de mise en oeuvre
US5831633A (en) * 1996-08-13 1998-11-03 Van Roy; Peter L. Designating, drawing and colorizing generated images by computer
JP2000517445A (ja) * 1996-08-28 2000-12-26 ヴィーア・インコーポレイテッド タッチ画面装置及び方法
US5995653A (en) * 1996-11-15 1999-11-30 Cymbolic Sciences International, Inc. Digital image processing system and method
US7039876B2 (en) * 1997-10-06 2006-05-02 Canon Kabushiki Kaisha User interface for image acquisition devices
AR014332A1 (es) * 1998-01-30 2001-02-07 Koninkl Philips Electronics Nv Un metodo para operar un equipo de audio/video como el basado en un menu jerarquico de items seleccionados como puntos grandes y colocados en cadena yun equipo de audio/video dispuesto para practicar el metodo
US6023271A (en) * 1998-06-11 2000-02-08 Sun Microsystems, Inc. Framework for binding data viewers/data manipulation with one to many objects through introspection
US6343265B1 (en) * 1998-07-28 2002-01-29 International Business Machines Corporation System and method for mapping a design model to a common repository with context preservation
US6731314B1 (en) * 1998-08-17 2004-05-04 Muse Corporation Network-based three-dimensional multiple-user shared environment apparatus and method
US6154747A (en) * 1998-08-26 2000-11-28 Hunt; Rolf G. Hash table implementation of an object repository
US6559860B1 (en) * 1998-09-29 2003-05-06 Rockwell Software Inc. Method and apparatus for joining and manipulating graphical objects in a graphical user interface
US6577323B1 (en) * 1999-07-01 2003-06-10 Honeywell Inc. Multivariable process trend display and methods regarding same
US7797711B2 (en) * 2002-03-11 2010-09-14 Sony Corporation Graphical user interface for a device having multiple input and output nodes

Also Published As

Publication number Publication date
IL149396A0 (en) 2002-11-10
JP2003521764A (ja) 2003-07-15
AU781596B2 (en) 2005-06-02
ATE322716T1 (de) 2006-04-15
NO20022071D0 (no) 2002-04-30
RU2267151C2 (ru) 2005-12-27
EP1228416A2 (en) 2002-08-07
KR20020050785A (ko) 2002-06-27
DE60027206T2 (de) 2006-12-21
JP2014089751A (ja) 2014-05-15
JP2012181849A (ja) 2012-09-20
JP5713459B2 (ja) 2015-05-07
DE60027206D1 (de) 2006-05-18
EP1098244A3 (en) 2001-06-13
KR20020044181A (ko) 2002-06-14
US7030890B1 (en) 2006-04-18
WO2001033325A3 (en) 2002-05-02
WO2001033344A2 (en) 2001-05-10
EP1098244A2 (en) 2001-05-09
MY138274A (en) 2009-05-29
CN1316356C (zh) 2007-05-16
WO2001033325A2 (en) 2001-05-10
RU2002115065A (ru) 2004-03-10
AU1294701A (en) 2001-05-14
MY130356A (en) 2007-06-29
BR0015269A (pt) 2003-07-01
EP1285337B1 (en) 2006-04-05
MXPA02004356A (es) 2003-01-28
EP1285337A2 (en) 2003-02-26
AU1293801A (en) 2001-05-14
HK1045203A1 (zh) 2002-11-15
WO2001033344A3 (en) 2002-11-28
NO20022071L (no) 2002-07-02
JP2003514273A (ja) 2003-04-15
CA2389382A1 (en) 2001-05-10
CN1433541A (zh) 2003-07-30

Similar Documents

Publication Publication Date Title
KR100666450B1 (ko) 그래픽 객체 디스플레이
US7068266B1 (en) Windowing systems
US20050138567A1 (en) Method of realistically displaying and interacting with electronic files
US20010033296A1 (en) Method and apparatus for delivery and presentation of data
WO2001023988A9 (en) User interface display and method
Mew Learning Material Design
WO2008018506A1 (en) Image display device, image data providing device, image display system, image display system control method, control program, and recording medium
WO2008018503A1 (fr) Dispositif d&#39;affichage d&#39;images, dispositif fournisseur de données d&#39;image, système d&#39;affichage d&#39;images, procédé de commande du système d&#39;affichage d&#39;images, programme de commande et support d&#39;enregistrement
WO2008018502A1 (fr) Dispositif d&#39;affichage d&#39;images, dispositif fournisseur de données d&#39;image, système d&#39;affichage d&#39;images, procédé de commande du système d&#39;affichage d&#39;images, programme de commande et support d&#39;enregistrement
WO2008018511A1 (fr) Dispositif d&#39;affichage d&#39;images, dispositif fournisseur de données d&#39;image, système d&#39;affichage d&#39;images, procédé de commande du système d&#39;affichage d&#39;images, programme de commande et support d&#39;enregistrement
MacDonald Silverlight 2 Visual Essentials
CN113076042B (zh) 一种本地媒体资源的访问方法及显示设备
EP1098246A1 (en) Displaying graphical objects
Jackson et al. Android Design Patterns: UI Design Paradigms
CN116361575A (zh) 一种显示设备及浏览器隐私模式标签页显示方法
Udell Mac OS X Dashboard
Widgets Mac OS X Dashboard
Montini iOS App Generator
Bhangal et al. Introducing Flash
Mori et al. Migrating the User Interface between the Digital TV and Mobile Devices
Casario Designing and Programming the Look and Feel of Flex Applications

Legal Events

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

Payment date: 20121226

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131219

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20141230

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20151209

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20161220

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20171219

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190102

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20191223

Year of fee payment: 14