[go: up one dir, main page]

DE60027206T2 - Darstellung von graphischen objekten - Google Patents

Darstellung von graphischen objekten Download PDF

Info

Publication number
DE60027206T2
DE60027206T2 DE60027206T DE60027206T DE60027206T2 DE 60027206 T2 DE60027206 T2 DE 60027206T2 DE 60027206 T DE60027206 T DE 60027206T DE 60027206 T DE60027206 T DE 60027206T DE 60027206 T2 DE60027206 T2 DE 60027206T2
Authority
DE
Germany
Prior art keywords
card8
window
trick
class
height
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Lifetime
Application number
DE60027206T
Other languages
English (en)
Other versions
DE60027206D1 (de
Inventor
Canal+ Technologies Societe Anonyme Bruno JOUET
Canal+ Technologies S.A. Emile NGUYEN VAN HUONG
Jean-Stephane Villers
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Thomson Licensing SAS
Original Assignee
Thomson Licensing SAS
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/de
Application filed by Thomson Licensing SAS filed Critical Thomson Licensing SAS
Publication of DE60027206D1 publication Critical patent/DE60027206D1/de
Application granted granted Critical
Publication of DE60027206T2 publication Critical patent/DE60027206T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Image Generation (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Ultra Sonic Daignosis Equipment (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Telephone Function (AREA)
  • Apparatus For Radiation Diagnosis (AREA)
  • Closed-Circuit Television Systems (AREA)

Description

  • Die vorliegende Erfindung betrifft graphische Benutzerschnittstellen. Gesichtspunkte der vorliegenden Erfindung betreffen ein Verfahren zur Steuerung des Aussehens eines graphischen Gegenstandes in einer graphischen Benutzerschnittstelle. Gesichtspunkte der Erfindung betreffen einen Empfänger/Dekoder, ein Fernsehsystem, ein Computerprogrammprodukt, eine durch Computer lesbares Medium und ein Signal. Gesichtspunkte der Erfindung besitzen eine besondere, jedoch nicht ausschliessliche Anwendung zur Bereitstellung einer graphischen Benutzerschnittstelle für Geräte wie Empfänger/Dekoder für digitale Fernsehsignale. Gesichtspunkte der Erfindung besitzen jedoch auch Anwendungen auf Mehrzweckcomputern und anderen Geräten.
  • Die meisten graphischen Benutzerschnittstellen (GUI = graphical user interface) besitzen eine gleichartige Gruppe von Grundkomponenten, die von einem Benutzer gehandhabt werden können. Diese beinhalten Merkmale wie Drucktasten, Schieberegler, Verzeichnisbehälter usw. Derartige Komponenten werden im Allgemeinen mit "Trickfenstern" (widgets) bezeichnet. Obwohl die Grundfunktion von Trickfenstern innerhalb graphischer Benutzerschnittstellen allgemein gebräuchlich ist, unterscheiden sich die Trickfenster von einer graphischen Benutzerschnittstelle zur anderen durch ihr Erscheinungsbild oder Aussehen.
  • Einige graphische Betriebssysteme, wie das X Fenstersystem zum Beispiel, bringen einige Einschränkungen hinsichtlich des Erscheinungsbildes der Trickfenster, die in der graphischen Benutzerschnittstelle dargestellt werden können, mit sich. Dies ermöglicht den Programmierern Anwendungen zu entwickeln, in dem sie eine Anzahl von verschiedenen Trickfenstergruppen einsetzen, wobei jede ihr eigenes unterschiedliches Erscheinungsbild hat. Darüber hinaus läuft einer grosse Zahl von Fenstermanagern unter X, die den Gesamteindruck der Fenster, die durch die Anwendungen erstellt werden, beeinflussen. Normalerweise ist es möglich etwas Kontrolle über das Erscheinungsbild einer Anwendung auszuüben, wie es in der graphischen Schnittstelle dargestellt wird, sowohl während der Entwicklung der Anwendung, als auch in einem gewissen Mass während der Laufzeit. Das Erscheinungsbild ist jedoch in beiden Fällen durch die fest programmierten Teile der Trickfenstergruppe oder von dem Fenstermanager vorgegeben. Es ist dem Benutzer nicht möglich das Aussehen einer Anwendung in erheblichem Masse zu verändern, ohne die Trickfenstergruppe, den Fenstermanager, oder beide, erneut zu kodieren. Beide dieser Optionen erfordern einen grossen Umfang an erneuter Kodierungsarbeit und einen hohen Umfang neuer, auf dem zentralen Rechner zu installierender Kodes.
  • Ein Vorschlag, um den hohen Umfang an erneuter Kodierarbeit zu verringern, der getan werden muss, um eine Darstellung zu aktualisieren, ist Elemente eines Fensters in einer graphischen Schnittstellenanzeige der im Speicher des zentralen Rechners abgelegten Pixelabbilder zu bauen (zum Beispiel Kanten, Begrenzungen und so weiter). Dies kann als ein unabhängiger Gesichtspunkt der Erfindung angesehen werden. Die Pixelabbilder können im Betrieb einen erheblichen Umfang an Speicherplatz erforderlich machen und stellen einen riesigen Umfang an zu übertragende Daten dar, wenn das Aussehen aktualisiert werden muss. Dies kann einen erheblichen Nachteil bedeuten, wenn die Graphikschnittstelle mit beschränkten Reserven betrieben werden muss und über eine Verbindung mit begrenzter Bandbreite aktualisiert werden muss. Ein Beispiel einer derartigen Situation entsteht, wenn eine Anwendung auf einem Empfänger/Dekoder für digitale Fernsehsignale ausgeführt werden muss. Ein derartiger Dekoder besitzt eine begrenzte Speicherkapazität im Vergleich zu einem Allzweckcomputer und das Betriebssystem (einschliesslich des Erscheinungsbildes der Graphikschnittstelle) wird durch Herunterladen der Daten über einen Kanal, der Teil des empfangenen Fernsehsignals bildet, aktualisiert.
  • "Generic View Handler Class." IBM Technical Disclosure Bulletin, Band 34, Nr.1, Juni 1991 (1991–06), Seiten 397–398, ISSN 0018-8689 beschreibt eine objektorientierte Betrachtungs-Steuerungsbaureihe, die optische Erscheinung für einen Gegenstand, der mit ihm verbunden ist, behandelt. EP 0798634 beschreibt ein Gerät und ein Verfahren zur Trennung des Aufbaus und des Einsatzes einer Benutzerschnittstelle von dem Aufbau und dem Einsatz des funktionalen Teils eines Softwareprogramms. Look and feel Mittel wirken wie Server für logische Objekte. Ein Look and feel Mittel steuert das Erscheinungsbild und das Verhalten der Benutzerschnittstelle, während Logikobjekte die Funktion des Softwareprogramms erfüllen. Beide Lösungen sind darin begrenzt, dass sie Probleme zeigen, wenn die Betrachtungssteuerung aktualisiert wird.
  • Ein ziel dieser Erfindung ist einen Anwendungsentwickler anzubieten mit der Fähigkeit das Erscheinungsbild einer Anwendung auf durchgängige und leicht steuerbare Art und Weise zu steuern mit einem Minimum an notwendiger Neukodierung und mit einem Minimum Daten, die an ein Durchführungsumfeld übertragen werden müssen.
  • Bei einer ersten Betrachtungsweise der vorliegenden Erfindung wird ein Verfahren bereitgestellt zur Steuerung des Erscheinungsbildes eines objektorientierten Trickfensters in einer graphischen Benutzerschnittstelle, wie im Anspruch 1 ausgeführt.
  • Durch genaue Bestimmung eines Betrachtungsgegenstandes anstelle eines Einschlusskodes (embedding code), der das Erscheinungsbild in einer Anwendung steuert, kann die Erfindung eine grössere Flexibilität als bislang bieten, im Hinblick darauf, wie das Erscheinungsbild eines Trickfensters gesteuert wird.
  • Vorzugsweise beinhaltet der Betrachtungsgegenstand Kodes oder Parameter, die bestimmen, wie das Trickfenster dargestellt wird, wobei diese Kodes oder Parameter in einem Speicher abgelegt werden. Der Betrachtungsgegenstand kann zum Beispiel mit einem objektorientierten Programmkode bestimmt werden.
  • Der Betrachtungsgegenstand kann durch Realisieren einer Betrachtungsgegenstandsgruppe definiert werden. Ein Betrachtungsgegenstand der auf diese Weise bestimmt wurde, kann einen Zeiger auf eine andere Betrachtungsgegenstandgruppe enthalten (eine andere als die, von der sie abgeleitet wurde). Dies kann dem Betrachtungsgegenstand ermöglichen Attribute und/oder andere Verfahren dieser anderen Betrachtungsgruppen anzusteuern. Auf diese Art und Weise kann ein Betrachtungsgegenstand seine Eigenschaften aus zwei oder mehr Ansichten beziehen, die es ermöglichen eine Ansicht zu erzeugen, die die Vereinigung von zwei verschiedenen Ansichten darstellt, oder es ermöglicht Eigenschaften den Ansichten zuzufügen.
  • Um den graphischen Gegenstand mit dem Betrachtungsgegenstand zu verknüpfen, kann der graphische Gegenstand ein Attribut beinhalten, um den Betrachtungsgegenstand, der mit dem graphischen Gegenstand verbunden ist, zu identifizieren.
  • Vorzugsweise bestimmt die Ansicht die aktuellen Farben, die spezifisch benannten Farben zugeordnet sind. Der Betrachtungsgegenstand kann zum Beispiel die aktuellen Farben, die für zumindest einer schwarzen, weissen und einer oder mehreren grauen Abstufungen zugeordnet sind, bestimmen. Auf diese Weise kann die Ansicht ein bestimmtes Farbschema bestimmen, zum Beispiel, in dem sie den Betrachtungsgegenständen, die mit der Ansicht verknüpft sind, eine bestimmte Farbschattierung gibt.
  • Der Betrachtungsgegenstand kann auch eine Farbentafel bestimmen, die die aktuellen zu benutzenden Farbwerte einsetzt, die zur Darstellung einer bestimmten Farbe gebraucht werden.
  • Um das Erscheinungsbild des Trickfensters zu ändern, kann entweder der Betrachtungsgegenstand neu bestimmt oder verändert werden, zum Beispiel durch Wechseln der Kodes oder Parameter während der Übersetzung, oder der Parameter während der Laufzeit), oder ein unterschiedlicher Betrachtungsgegenstand kann mit dem graphischen Gegenstand verknüpft werden. Das Verfahren kann daher ferner die Veränderung des Erscheinungsbildes des graphischen Gegenstandes durch Neudefinition oder durch Veränderung des Betrachtungsgegenstands oder durch Verknüpfung eines unterschiedlichen Betrachtungsgegenstands mit dem graphischen Gegenstand, beinhalten.
  • Wenn ein Betrachtungsgegenstand neu bestimmt oder verändert wird, dann kann es notwendig werden das Erscheinungsbild der graphischen Gegenstände, die mit jenem Betrachtungsgegenstand verknüpft sind, zu aktualisieren. Um dies zu erreichen, kann der Betrachtungsgegenstand einen Aktualisierungszähler beinhalten, dessen Wert aktualisiert wird, wenn der Betrachtungsgegenstand neu bestimmt oder verändert wird.
  • Vorzugsweise speichern graphische Gegenstände den Wert des Aktualisierungszählers des Betrachtungsgegenstands, den sie beeinflusst haben. Jedes Mal wenn ein graphischer Gegenstand erneut angezeigt wird, wird der vom graphischen Gegenstand gespeicherte Wert mit dem Wert des Aktualisierungszählers des Betrachtungsgegenstands verglichen. Sind die beiden unterschiedlich, dann berücksichtigt der graphische Gegenstand die Veränderungen im Betrachtungsgegenstand und speichert den neuen Wert des Aktualisierungszählers.
  • Der Betrachtungsgegenstand kann eine Bewertungsmaske beinhalten, die Verfahren anzeigt, die durch den Betrachtungsgegenstand abgerufen werden können, so dass Verfahren, die vom Betrachtungsgegenstand nicht zur Anwendung gebracht werden, nicht abgerufen werden. Der graphische Gegenstand kann auf die Bewertungsmaske des Betrachtungsgegenstands zugreifen, um das Bild des graphischen Gegenstands zu optimieren. Auf diese Weise können Abrufe von nicht implementierten Verfahren vermieden werden, was die Zeichnung des graphischen Gegenstands beschleunigen kann.
  • Unter einigen Umständen, zum Beispiel wenn ein Betrachtungsgegenstand erstmals erzeugt wird, kann der Betrachtungsgegenstand mit einem einzigen graphischen Gegenstand verknüpft werden. In einem bevorzugten Ausführungsbeispiel nist jedoch der Betrachtungsgegenstand mit einer Vielzahl von graphischen Gegenständen verknüpft. Durch Verknüpfung des Betrachtungsgegenstands mit einer Vielzahl von graphischen Gegenständen, kann für jene Gegenstände ein einheitliches Erscheinungsbild erzielt werden und der Umfang an Daten, die zur Bestimmung des Betrachtungsgegenstands erforderlich sind, können reduziert werden, im Vergleich zu dem Fall, bei dem das Erscheinungsbild jedes graphischen Gegenstand unabhängig bestimmt wurde.
  • Daher kann das Verfahren ein Verfahren zur Steuerung des Erscheinungsbilds einer Vielzahl von graphischen Gegenständen in einer graphischen Benutzerschnittstelle sein und kann die Verknüpfung des Betrachtungsgegenstandes mit der Vielzahl der graphischen Gegenstände beinhalten.
  • Unter bestimmten Umständen, wo keine graphischen Gegenstände mit einem Betrachtungsgegenstand verknüpft sind, kann es zum Beispiel wünschenswert sein den Betrachtungsgegenstand zu entfernen, um den vom Betrachtungsgegenstand belegten Speicherplatz neu zuzuordnen. Dies kann besonders wichtig bei Vorrichtungen sein, wie bei Empfängern/Dekodern, wo der Speicherplatz begrenzt sein kann. Zu diesem Zweck (unter anderen) kann der Betrachtungsgegenstand einen Zähler beinhalten, der die Anzahl graphischer Gegenstände anzeigt, die mit diesem Betrachtungsgegenstand verknüpft sind. Jedes Mal wenn ein graphischer Gegenstand mit einem Betrachtungsgegenstand verknüpft wird, wird der Zähler vorzugsweise zunehmen und jedes Mal wenn ein graphischer Gegenstand von einem Betrachtungsgegenstand gelöst wird, wird der Zähler abnehmen. Wenn der Zähler bei Null steht, kann man unterstellen, dass der Betrachtungsgegenstand sicher gelöscht werden kann.
  • Im Verfahren der Erfindung ist die Bestimmung eines graphischen Gegenstandes in einer graphischen Schnittstelle eingeschlossen und beinhaltet die Bereitstellung eines Betrachtungsgegenstandes, der das Erscheinungsbild des graphischen Gegenstandes steuert (zum Beispiel durch Bestimmung der Eigenschaften und/oder Verfahren, die das Erscheinungsbild des graphischen Gegenstandes steuern) und durch Bereitstellung eines Trickfenstergegenstandes, der den Ablauf des graphischen Gegenstandes steuert (zum Beispiel durch Bestimmung der Eigenschaften und/oder Verfahren, die den Betrieb des graphischen Gegenstandes steuern). Jede der oben erwähnten Eigenschaften können in Verbindung mit diesem Aspekt bereitgestellt werden.
  • Jedes der oben beschriebenen Verfahren beinhalten ferner vorzugsweise die Darstellung des graphischen Gegenstandes, zum Beispiel auf einem Bildschirm, wie auf einem Computerbildschirm oder auf einem Fernsehbildschirm.
  • Jedes der oben beschriebenen Verfahren kann von einem Empfänger/Dekoder ausgeführt werden, wie ein digitaler oder analoger Empfänger/Dekoder.
  • Der begriff Empfänger/Dekoder der hier verwendet wird kann einen Empfänger bedeuten zum Empfang von entweder verschlüsselten oder nicht verschlüsselten Signalen, zum Beispiel Fernseh- und/oder Rundfunksignalen, die über einige andere Mittel gesendet oder übertragen werden können. Der Begriff kann auch einen Dekoder bedeuten zur Dekodierung empfangener Signale. Ausführungsbeispiele derartiger Empfänger/Dekoder können einen im Empfänger eingebauten Dekoder zur Dekodierung der empfangenen Signale einschliessen, zum Beispiel einen Beistelldekoder, wobei nein derartiger Dekoder mit einem räumlich getrennten Empfänger zusammen arbeiten kann, oder ein derartiger Dekoder, der zusätzliche Funktionen umfasst, wie einen Web-Browser, einen Videorekorder, oder ein Fernsehgerät.
  • Im Hinblick auf ein gerät der Erfindung wird ein gerät bereit gestellt zur Steuerung des Erscheinungsbildes eines objektorientierten Trickfensters in einer graphischen Benutzerschnittstelle, wie im Anspruch 6 dargestellt ist.
  • Das gerät kann einen passend programmierten Prozessor zur Bestimmung des Betrachtungsgegenstandes und zur Verknüpfung des Betrachtungsgegenstandes mit dem graphischen Gegenstand und einen Speicher zum Ablegen des Betrachtungsgegenstandes und des graphischen Gegenstandes einschliessen. Der Betrachtungsgegenstand kann durch den objektorientierten Programmkode bestimmt werden. Der Betrachtungsgegenstand kann durch Realisieren der Betrachtungsgegenstandsgruppe bestimmt werden. Der Betrachtungsgegenstand kann einen Zeiger auf eine andere Betrachtungsgegenstandsgruppe enthalten.
  • Das Gerät kann zur Veränderung des Erscheinungsbildes des graphischen Gegenstandes durch Neubestimmung oder Veränderung des Betrachtungsgegenstandes, oder durch Verknüpfung eines unterschiedlichen Betrachtungsgegenstandes mit dem graphischen Gegenstand angepasst werden. Der Betrachtungsgegenstand kann einen Aktualisierungszähler (wie zum Beispiel eine Stelle im Speicher) beinhalten, dessen Wert aktualisiert wird, wenn der Betrachtungsgegenstand neu bestimmt oder verändert wird.
  • Der Betrachtungsgegenstand kann eine Bewertungsmaske beinhalten (zum Beispiel im Speicher abgelegt), die Verfahren, die vom Betrachtungsgegenstand abgerufen werden können, anzeigt.
  • Das Gerät kann ein Gerät zur Steuerung des Erscheinungsbildes einer Vielzahl von graphischen Gegenständen in einer graphischen Benutzerschnittstelle sein und kann zur Verknüpfung des Betrachtungsgegenstandes mit einer Vielzahl von graphischen Gegenständen angepasst werden.
  • Das Gerät kann ferner Mittel einschliessen, wie zum Beispiel einen Bildschirm (zum Beispiel ein Computerbildschirm oder eine Fernsehbildschirm) zur Darstellung der graphischen Gegenstände.
  • Eine Trickfenstergruppe wird zur Erstellung von Gegenständen, wie oben beschrieben, bereitgestellt, wobei die Trickfenstergruppe eine Vielzahl von Trickfensterklassen und eine oder mehrere Betrachtungsgegenstandsklassen einschliesst. Höchst typisch umfasst eine Trickfenstergruppe eine Vielzahl von Betrachtungsgegenstandsklassen, einschliesslich einer Grundklasse und einer von der Grundklasse abgeleiteten Klasse.
  • Um das Erscheinungsbild des Gegenstandes zu ergänzen, kann die Betrachtungsgegenstandsklasse gewechselt werden. Dies verändert die Funktion des Gegenstandes nicht, da die Funktion durch die Trickfensterklasse gesteuert wird. Darüber hinaus ist es möglich ein Beispiel für die Betrachtungsgegenstandsklasse von vielen Beispielen der Trickfensterklasse eingesetzt zu werden, wobei der Umfang des belegten Speicherplatzes minimiert wird.
  • Die Betrachtungsgegenstandsklasse kann in einer Bibliothek, die mit einer Anwendung während Laufzeit verknüpft ist, enthalten sein. Ein Benutzer kann daher eine bevorzugte Ansicht für den Gegenstand wählen, in dem er diejenige aus einer Reihe von Bibliotheken auswählt, die verknüpft werden soll, auswählt. Da die Betrachtungsgegenstandsklasse unabhängig von anderen Gegenständen geändert wird, wird das erneute Kodieren auf das Nötigste vereinfacht, um das neue Erscheinungsbild zu implementieren.
  • Wahlweise kann die Betrachtungsgegenstandsklasse in einer Bibliothek, die mit einer Anwendung während der Übersetzung verknüpft ist, enthalten sein. Dies erlaubt einem Anwendungsentwickler vollständige Kontrolle über das Erscheinungsbild auszuüben.
  • Die Betrachtungsgegenstandsklasse kann Graphikverfahren exportieren, die aufgerufen werden können, um einen Teil einer Komponente auf einer Benutzerschnittstellenanzeige zu zeichnen. Die Trickfensterklasse enthält typischerweise einen Kode, der Graphikverfahren aus der Betrachtungsgegenstandklasse abruft. Betrachtungsgegenstandsklasse kann auch Eigenschaften exportieren, die Daten liefert, die sich auf Elemente einer Komponente beziehen.
  • Die Betrachtungsgegenstandsklasse kann eine Vorgabeklasse sein, die eine vorgegebene Ansicht für Trickfenster in einer graphischen Benutzerschnittstellenanzeige liefert. Wahlweise kann die Betrachtungsgegenstandsklasse eine von der Vorgabeklasse abgeleitete Klasse sein, wobei die abgeleitete Klasse ein oder mehrere Verfahren und/oder Eigenschaften der Vorgabeklasse aufhebt. In dieser Anordnung kann ein Benutzer oder Entwickler Veränderungen mit nur einer begrenzten Anzahl von Elementen innerhalb des Erscheinungsbildes der graphischen Benutzerschnittstelle vornehmen, ohne dass er irgendwelche Teile, die unverändert bleiben sollen, nacharbeiten müsste.
  • Das Klassenbeispiel des Betrachtungsgegenstands kann eine Eigenschaft des Klassenbeispiels der Trickfenster sein. Ein Zeiger auf ein Beispiel der Betrachtungsgegenstandsklasse wird einer Eigenschaft des Trickfensterklassenbeispiels zugeordnet. Ein derartiger Zeiger kann als Argument an einen Konstrukteur der Trickfensterklasse ausgegeben.
  • Bei einem Verfahren nach den letzten vorangegangen Absatz wird ein Zeiger auf die Betrachtungsgegenstandsklasse typischerweise in einem Beispielsspeicher des Trickfensterklassenbeispiels abgelegt.
  • Durch Steuerung des Vorgangs ist nicht notwendigerweise damit gemeint, dass der Gegenstand funktional ist; wobei Schieberegler und Bedienknöpfe und Ähnliches in der Lage sein können, Aktionen auszuführen, wobei einige graphischen Gegenstände nur zur Dekoration dienen, wie zum Beispiel Symbole oder Teile von zusammengesetzten Gegenständen. Somit können die Eigenschaften und/oder Verfahren, die den Betrieb des Gegenstandes steuern ein wenig mehr tun, als die Grundfunktion des Gegenstandes zu bestimmen (zum Beispiel als Zeiger zu erscheinen) mit dem präzisen Erscheinungsbild, das durch den Betrachtungsgegenstand gesteuert wird.
  • Es versteht sich, dass die vorliegende Erfindung einzig und allein anhand von Beispielen beschrieben wurde und Veränderungen von Teilen im Rahmen des Umfangs der Erfindung gemacht werden können.
  • Jede in der Beschreibung offen gelegte Eigenschaft und (wo angebracht) die Ansprüche und Zeichnungen können unabhängig, oder in jeder geeigneten Kombination, zur Verfügung gestellt werden.
  • Wo Eigenschaften des Gerätes hier mit "Mittel für" eine bestimmte Funktion beschrieben wurden, so ist beabsichtigt, dass diese Ausdrücke breit interpretiert werden und vorzugsweise nicht für irgendein bestimmtes hier beschriebenes Ausführungsbeispiel der Erfindung einschränkend interpretiert werden. Eigenschaften des Gerätes sind bei bevorzugten Ausführungsbeispielen durch einen passend programmierten Computer oder durch Computern geliefert worden und somit sind Eigenschaften des Gerätes vorzugsweise durch sachbezogene Eigenschaften eines Computers, oder eines Produktes, das ein Computerprogramm beinhaltet, erstellt worden. Eigenschaften des Gerätes können zum Beispiel durch einen Prozessor, oder andere Teile eines Computers zur Verfügung gestellt werden, zum Beispiel ein Speicher oder eine Datenablage.
  • Eigenschaften einer Betrachtungsweise können bei jeder anderen Betrachtungsweise eingesetzt werden, Verfahrenseigenschaften können im Hinblick auf Geräte und umgekehrt eingesetzt werden.
  • Bevorzugte Eigenschaften der vorliegenden Erfindung werden nun beschrieben werden, einzig und allein durch Beispiele unter Bezug auf die begleitenden Zeichnungen, worin:
  • Die 1a einen Überblick über ein typisches digitales Fernsehsystem gibt;
  • Die 1b die hauptsächliche Architektur eines interaktiven Fernsehsystems zeigt;
  • Die 2a ein Blockdiagramm eines Empfängers/Dekoders zeigt;
  • Die 2b die Architektur eines Empfängers/Dekoders zeigt;
  • Die 2c die weitergehende Architektur eines Empfängers/Dekoders zeigt;
  • Die 3 ein Diagramm eines Teiles der Hierarchie von Trickfenstern (widgets) innerhalb einer Trickfenstergruppe zeigt;
  • Die 4 ein vereinfachtes Diagramm eines Trickfensters ist, das auf der graphischen Benutzerschnittstellenanzeige erscheint;
  • Die 5 die Stelle im Speicher von mehreren Trickfenstern zeigt;
  • Die 6a eine Bildschirmanzeige des Web-Browser zeigt;
  • Die 6b eine Fernbedienung zum Navigieren des Web-Browsers zeigt;
  • Die 7 eine weitere Bildschirmanzeige des Web-Browsers zeigt;
  • Die 8 eine weitere Bildschirmanzeige des Web-Browsers zeigt;
  • Die 9 eine weitere Bildschirmanzeige des Web-Browsers zeigt;
  • Die 10 eine weitere Bildschirmanzeige des Web-Browsers zeigt;
  • Die 11 eine weitere Bildschirmanzeige des Web-Browsers zeigt;
  • Die 12 eine weitere Bildschirmanzeige des Web-Browsers zeigt;
  • Die 13 eine weitere Bildschirmanzeige des Web-Browsers zeigt;
  • Die 14 eine weitere Bildschirmanzeige des Web-Browsers zeigt;
  • Die 15 eine weitere Bildschirmanzeige des Web-Browsers zeigt;
  • Die 16 eine weitere Bildschirmanzeige des Web-Browsers zeigt;
  • Die 17 eine weitere Bildschirmanzeige des Web-Browsers zeigt;
  • Die 18 eine weitere Bildschirmanzeige des Web-Browsers zeigt;
  • Die 19 eine weitere Bildschirmanzeige des Web-Browsers zeigt;
  • Die 20 eine weitere Bildschirmanzeige des Web-Browsers zeigt;
  • Die 21 eine weitere Bildschirmanzeige des Web-Browsers zeigt;
  • Die 22 eine weitere Bildschirmanzeige des Web-Browsers zeigt;
  • Die 23 eine weitere Bildschirmanzeige des Web-Browsers zeigt;
  • Die 24 eine weitere Bildschirmanzeige des Web-Browsers zeigt;
  • Die 25 eine weitere Bildschirmanzeige des Web-Browsers zeigt;
  • Die 27 eine weitere Bildschirmanzeige des Web-Browsers zeigt;
  • Die 27 eine weitere Bildschirmanzeige des Web-Browsers zeigt;
  • Die 28 eine weitere Bildschirmanzeige des Web-Browsers zeigt;
  • Die 29 eine weitere Bildschirmanzeige des Web-Browsers zeigt;
  • Die 30 eine weitere Bildschirmanzeige des Web-Browsers zeigt;
  • Die 31 ein Beispiel für einen graphischen Gegenstand ist, der aus Fliesen gebildet ist;
  • Die 32 ein weiteres Beispiel für einen graphischen Gegenstand ist, der aus Fliesen gebildet ist;
  • Die 33 ein weiteres Beispiel für einen graphischen Gegenstand ist, der aus Fliesen gebildet ist;
  • Die 34 ein weiteres Beispiel für einen graphischen Gegenstand ist, der aus Fliesen gebildet ist;
  • Die 35 ein weiteres Beispiel für einen graphischen Gegenstand ist, der aus Fliesen gebildet ist;
  • Die 36 ein weiteres Beispiel für einen graphischen Gegenstand ist, der aus Fliesen gebildet ist;
  • Die 37 ein weiteres Beispiel für einen graphischen Gegenstand ist, der aus Fliesen gebildet ist;
  • Die 38 ein weiteres Beispiel für einen graphischen Gegenstand ist, der aus Fliesen gebildet ist;
  • Die 39 das Verfahren des Fliesens von graphischen Gegenständen zeigt;
  • Die 40 einen typischen Bildpuffer zeigt;
  • Die 41 den Aufbau eines aus Fliesen gebildeten graphischen Gegenstandes zeigt;
  • Die 42 schematisch die Wirkungsweise einer virtuellen Tastatur darstellt;
  • Die 43 eine typische Zuordnung von Zeichen zu den Tasten auf der virtuellen Tastatur darstellt;
  • Die 44 Beispiele einer virtuellen Tastatur zeigt; und
  • Die 45 die typischen Abmessungen einer virtuellen Tastatur zeigt.
  • Darstellung eines digitalen Fernsehsystems
  • Ein Überblick eines digitalen Fernsehsystems 1 ist in der 1a dargestellt. Die Erfindung schliesst ein hauptsächlich herkömmliches digitales Fernsehsystem 2 ein, das das bekannte MPEG-2 Komprimierungssystem zur Übertragung von komprimierten digitalen Signalen benutzt. In weiteren Einzelheiten empfängt ein MPEG-2 Kompressor 3 in einem Sendezentrum einen digitalen Datenstrom (typischerweise einen Strom von Videodaten). Der Kompressor 3 ist mit einem Multiplexer und Verwürfler (scrambler) 4 über die Verbindung 5 verbunden.
  • Der Multiplexer 4 empfängt eine Vielzahl weiterer Eingangssignale, assembliert den Transportstrom und überträgt komprimierte digitale Signale an den Sender 6 des Sendezentrums über die Verbindung 7, die natürlich eine breite Vielfalt an Formen, einschliesslich Telefonnetzverbindungen, einnehmen kann. Der Sender 6 überträgt elektromagnetische Signale über die Verbindungsstrecke (uplink) 8 auf einen Satellitentransponder 9, wo sie elektronisch verarbeitet werden und über eine gedankliche Abwärtsverbindung (downlink) 10 zum Empfänger auf der Erde 12, herkömmlich in Form einer Satellitenschüssel, die dem Endverbraucher gehört, oder gemietet ist, übertragen werden. Andere Übertragungskanäle zur Übertragung von Daten sind selbstverständlich möglich, wie zum Beispiel terrestrische Übertragung, Kabelübertragung, kombinierte Satelliten-/Kabelverbindungen, Telefonnetze usw.
  • Die vom Empfänger 12 empfangenen-Signale werden an einen integrierten Empfänger-Dekoder 13 weitergeleitet, der dem Endbenutzer gehört, oder den er gemietet hat und werden mit dem Fernsehgerät des Endbenutzers verbunden. Der Empfänger-Dekoder 13 dekodiert das komprimierte MPEG-2 Signal in ein Fernsehsignal für das Fernsehgerät 14. Obwohl in der 1a ein getrennter Empfänger/Dekoder gezeigt wird, kann der Empfänger/Dekoder auch Teil eines integrierten, digitalen Fernsehgerätes sein. Wie hier als Begriff verwendet, schliesst ein Empfänger/Dekoder einen getrennten Empfänger/Dekoder ein, wie zum Beispiel einen Beistelldekoder und ein Fernsehgerät, das einen integrierten Empfänger/Dekoder darin beinhaltet.
  • Bei einem Mehrkanalsystem bearbeitet der Multiplexer 4 Audio- und Videoinformationen, die er von eine Anzahl paralleler Quellen empfängt und kommuniziert mit dem Sender 6, um die Informationen weiter mit einer entsprechenden Anzahl von Kanälen zu übertragen. Zusätzlich zu den audiovisuellen Informationen können Nachrichten, oder Anwendungen, oder jede andere Art von digitalen Daten in einige oder alle dieser Kanäle einfliessen, in dem sie mit den übertragenen digitalen Audio- und Videoinformationen verschachtelt werden.
  • Ein bedingtes Zugangssystem (conditional access system) 15 ist mit dem Multiplexer 4 und dem Empfänger/Dekoder 13 verbunden und ist teilweise im Übertragungszentrum und teilweise im Empfänger/Dekoder untergebracht. Es gestattet dem Endverbraucher auf digitale Fernsehprogramme von einem oder von mehreren Programmanbietern zuzugreifen. Eine Chipkarte (smartcard), die in der Lage ist verschlüsselte Mitteilungen, die sich auf kommerzielle Angebote (das ist eines oder mehrere Fernsehprogramme, die von Programmanbieter verkauft werden) zu entschlüsseln, kann in den Empfänger/Dekoder 13 eingeschoben werden. Wenn man den Empfänger/Dekoder 13 und die Chipkarte einsetzt, kann der Endverbraucher kommerzielle Angebote entweder als Abonnement oder Bezahlen je nach Programm kaufen. Wie hier der Begriff Chipkarte (smartcard) gebraucht wird schliesst dieser, jedoch nicht ausschliesslich, jedes Gerät mit Chipkarten, oder einen Gegenstand mit ähnlicher Funktion und Leistungsfähigkeit ein, der zum Beispiel einen Mikroprozessor und/oder einen Speicher besitzt. Unter diesem Begriff sind auch Anordnungen einbezogen, die alternative körperliche Ausgestaltungen einer Karte haben, so zum Beispiel, schlüsselförmige Anordnungen, wie sie oft bei Fernseh-Dekodersystemen eingesetzt werden.
  • Wie oben erwähnt, werden durch das System übertragene Programme am Multiplexer 4 verschlüsselt, die Bedingungs- und Verschlüsselungsschlüssel für eine gegebene Sendung, die von dem Zugangskontrollsystem 15 bestimmt wird, eingesetzt. Die Übertragung von auf diese Art und Weise verschlüsselten Daten ist auf dem Gebiet von Fernsehsystemen für das Bezahlfernsehen bekannt. Verschlüsselte Daten werden typischerweise zusammen mit einem Kontrollwort zum Entschlüsseln der Daten gesendet, wobei das Kontrollwort selbst durch einen so genannten Verwertungsschlüssel verschlüsselt und in verschlüsselter Form übertragen wird.
  • Der verschlüsselten Daten und das verschlüsselte Kontrollwort werden dann vom Dekoder 13 empfangen, der einen Zugang zu einem entsprechenden Verwertungsschlüssel besitzt, der auf einer Chipkarte gespeichert ist und die in den Dekoder gesteckt wird, damit das verschlüsselte Kontrollwort entschlüsselt wird und anschliessend die übertragenen Daten entschlüsselt. Ein Abonnent, der bezahlt hat, wird zum Beispiel in einer monatlich übertragenen Freigabenachricht ECM (entitlement control message) den notwendigen Verwertungsschlüssel empfangen, um das verschlüsselte Kontrollwort zu entschlüsseln, damit er die Übertragungen ansehen kann.
  • Interaktives System
  • Ein interaktives System 16 das ebenfalls an den Multiplexer 13 und den Empfänger/Dekoder 13 angeschlossen werden kann und wiederum teilweise im Übertragungszentrum und teilweise im Empfänger/Dekoder untergebracht sein kann, erlaubt dem Endbenutzer über einen mit einem Modem verbundenen Rückkanal 17 mit verschiedenen Anwendungen zusammen zu wirken. Der über ein Modem verbundene Rückkanal 17 kann auch für Datenübertragungen, die beim bedingten Zugangssystem 15 gebraucht werden, eingesetzt werden.
  • Die 1b stellt die Hauptarchitektur des interaktiven Fernsehsystems 16 des digitalen Fernsehsystems 1 dar.
  • Das interaktive System 16 erlaubt dem Endbenutzer zum Beispiel einen Artikel aus einem Bildschirmkatalog zu kaufen, und auf Anfrage die lokalen Nachrichten anzusehen und Wetterkarten anzuschauen und Spiele über das Fernsehgerät zu spielen.
  • Das interaktive System 16 beinhaltet im Überblick für Hauptelemente:
    • – ein Autorensystem 4004 im Übertragungszentrum oder irgendwo anderes, um einem Programmanbieter Anwendungen zu schaffen, zu entwickeln, Fehler zu beseitigen und zu testen;
    • – einen Anwendungs- und Datenserver 4006 im Übertragungszentrum, der mit dem Autorensystem 4004 verbunden ist, um einem Programmanbieter es zu ermöglichen Anwendungen und Daten vorzubereiten, zu authentifizieren und zu formatieren zur Lieferung an den Multiplexer und Verwürfler (scrambler) 4, um diese in den MPEG-2 Transportstrom (typischerweise den privaten Anteil davon) einzufügen, damit dieser dann an den Endbenutzer gesendet wird.
    • – eine virtuelle Maschine, die eine Ablaufmaschine (RTE run time engine) 4008 beinhaltet, die einen ausführbaren Kode darstellt, der im Empfänger/Dekoder installiert ist, der dem Endbenutzer gehört, oder der gemietet ist, um dem Endbenutzer zu gestatten Anwendungen zu empfangen, zu authentifizieren, zu dekomprimieren und in den Arbeitsspeicher des Dekoders 13 zur Ausführung zu laden. Die Maschine 4008 betreibt auch residente und Allzweckanwendungen. Die Maschine 4008 ist von der Hardware und vom Betriebssystem unabhängig; und
    • – einen Rückkanal über ein Modem 17 zwischen dem Empfänger/Dekoder 13 und dem Anwendungs- und Datenserver 4006, um den Signalen, die den Server 4006 anweisen, zu erlauben, Daten und Anwendungen in den MPEG-2 Transportstrom auf Anfrage des Endbenutzers einzufügen.
  • Das interaktive System arbeitet unter Verwendung von "Anwendungen", die die Funktionen des Empfänger/Dekoders und verschiedene darin enthaltene Vorrichtungen steuern. Anwendungen sind in der Maschine 4008 als "Ressourcendateien" enthalten. Ein "Modul" ist eine Reihe von Ressourcendateien und Daten. Ein "Speicherdatenträger" des Empfängers/Dekoders ist ein Speicherplatz für Module. Module können in den Empfänger/Dekoder 13 aus dem MPEG-2 Transportstrom heruntergeladen werden.
  • Empfänger/Dekoder
  • Unter Bezug auf die 2a werden nun die verschiedenen Elemente des Empfängers/Dekoders 13 in Form von funktionalen Blöcken beschrieben.
  • Der Empfänger/Dekoder 13 der zum Beispiel ein digitaler Beistelldekoder (DTSB digital set-top box) sein kann beinhaltet eine zentralen Prozessor 220, der damit verbundene Speicherelemente einschliesst und geeignet ist, Eingangsdaten aus einer seriellen Schnittstelle 221, einer parallelen Schnittstelle 222 (verbunden mit dem Modem Rückkanal 17 aus der 1a), einem Modem 223 und Schaltkontakten 224 auf der Vorderseite des Dekoders zu empfangen.
  • Der Empfänger/Dekoder ist zusätzlich geeignet Eingaben von einer Infrarotfernbedienung 225 über die Steuereinheit 226 zu empfangen und beinhaltet zwei Chipkartenlesegeräte 227, 228, die geeignet sind jeweils Bank- und Abonnementchipkarten 242, 240 zu lesen. Das Lesegerät 228 für Chipkarten arbeitet zusammen mit einer eingelegten Abonnementchipkarte 240 und mit einer Einheit für den bedingten Zugang 229 (conditional access) zur Bereitstellung des notwendigen Kontrollworts an die Demultiplexer-/Entschlüsselungseinheit 230, um dem verschlüsselten Übertragungssignal zu ermöglichen, dekodiert zu werden. Der Dekoder beinhaltet ebenfalls einen herkömmlichen Tuner 231 und Demodulator 232, um die Satellitenübertragung zu empfangen und zu demodulieren, bevor sie durch die Einheit 230 gefiltert und entschachtelt wird.
  • Die Verarbeitung von Daten innerhalb des Empfängers/Dekoders wird im Allgemeinen vom zentralen Prozessor 220 vorgenommen. Die 2b stellt die Softwarearchitektur des zentralen Prozessors 220 des Empfänger/Dekoders dar. Unter Bezug auf die 2b beinhaltet die Softwarearchitektur eine Laufzeitmaschine 4008, einen Gerätemanager 4068 und ein Vielzahl von Geräten 4062 und Gerätetreibern 4066, um eine oder mehrere Anwendungen 4056 durchzuführen.
  • Wie in dieser Beschreibung verwendet ist eine Anwendung vorzugsweise ein Teil des Computerkodes zur Steuerung von Funktionen auf hoher Ebene von vorzugsweise des Empfängers/Dekoders 13. Wenn zum Beispiel der Endbenutzer den Fokus der Fernbedienung 225 auf ein Bedienknopfobjekt positioniert, das auf dem Bildschirm des Fernsehgerätes 14 zu sehen ist und die Bestätigungstaste drückt, läuft die Anweisungsabfolge, die mit dem Bedienknopf verknüpft ist, an.
  • Eine interaktive Anwendung schlägt Menüs vor und führt Befehl auf Anfrage des Endbenutzers durch und liefert Daten, die zum Zweck der Anwendung gehören. Anwendungen können entweder residente Anwendungen sein, das heisst im ROM (oder Flashspeicher oder einem anderen nicht flüchtigen Speicher) des Empfänger/Dekoders 13 abgelegt, oder übertragene und in den RAM- oder Flashspeicher des Empfänger/Dekoders 13 herunter geladene Anwendungen sein.
  • Anwendungen werden an Speicherorten im Empfänger/Dekoder 13 abgelegt und als Ressourcendateien geführt. Die Ressourcendateien beinhalten Dateien der Beschreibungseinheit für graphische Gegenstände, Dateien für variable Blockeinheiten, Dateien der Anweisungsabfolge, Dateien für Anwendungen und Daten, so wie dies in den oben erwähnten Patentspezifikationen in allen Einzelheiten beschrieben wurde.
  • Der Empfänger/Dekoder enthält Speicher, die in einen RAM Datenträger, einen FLASH Datenträger und einen ROM Datenträger aufgeteilt sind, diese physikalische Organisation ist jedoch zur logischen Organisation unterschiedlich. Der Speicher kann ferner in Speicher-Datenträger, die mit verschiedenen Schnittstellen verknüpft sind, aufgeteilt werden. Aus einer Sicht kann der Speicher als Teil der Hardware betrachtet werden, aus einer anderen Sicht kann der Speicher, getrennt von der Hardware dargestellt, als unterstützend, oder das ganze System beinhaltend betrachtet werden.
  • Architektur des Computerprogramms (software)
  • Der zentrale Prozessor 220 kann als auf die Laufzeitmaschine 4008 gerichtet betrachtet werden und bildet einen Teil einer virtuellen Maschine 4007. Diese ist einerseits mit Anwendungen (die "high level" Seite) und andererseits (die "low level Seite), über verschiedenen dazwischen liegenden Logikeinheiten, die nachstehend beschrieben werden, mit der Empfänger-/Dekoderhardware 4061 verbunden und schlisset die verschiedenen Eingänge, wie oben beschrieben wurde, mit ein (das bedeutet zum Beispiel die serielle Schnittstelle 221, die parallele Schnittstelle 222, das Modem 223 und die Steuereinheit 226).
  • Unter besonderem Bezug auf die 2b sind verschiedenen Anwendungen 4057 mit der virtuellen Maschine 4007 verbunden; einige der mehr gemeinsam benutzten Anwendungen können mehr oder weniger ständige im System angesiedelt sein, wie bei 4057 erwähnt wurde, während andere ins System herunter geladen werden, zum Beispiel aus dem MPEG Datenstrom oder nach Bedarf aus anderen Schnittstellen.
  • Die virtuelle Maschine 4007 beinhaltet zusätzlich zur Laufzeitmaschine 4008 einige residente Bibliotheksfunktionen 4006, die eine Sammlung mit Werkzeugen (toolbox) 4058 einschliesst. Die Bibliothek enthält verschieden Funktionen in der C-Sprache, die von der Maschine 4008 benutzt wird. Diese schliesst Datenmanipulation wie Kompression, Expansion oder Vergleich von Datenstrukturen, Strichzeichnen, usw. ein. Die Bibliothek 4006 beinhaltet auch Informationen über Software in Festwertspeichern (firmware) im Empfänger/Dekoder 13, wie Hardware- und Softwarenummern und verfügbarer RAM Speicherplatz und eine Funktion, die eingesetzt wird, wenn ein neues Instrument 4062 herunter geladen wird. Funktionen können in die Bibliothek herunter geladen werden und werden im Flash- oder RAM-Speicher abgelegt.
  • Die Laufzeitmaschine 4008 ist mit einem Geräteverwaltungsprogramm 4068 verbunden, das mit einer Reihe von Geräten 4062 verbunden ist, die wiederum mit Gerätetreibern 4060 verbunden sind und die der Reihe nach mit den Eingängen oder Schnittstellen verbunden sind. Im weiteren Sinne kann ein Gerätetreiber zur Bestimmung einer logischen Schnittstelle betrachtet werden, so dass zwei verschiedene Gerätetreiber an einen gemeinsamen physikalischen Eingang angeschlossen werden können. Ein Gerät wird normalerweise an mehr als einen Gerätetreiber angeschlossen; wenn ein Gerät an einen einzigen Gerätetreiber angeschlossen wird, ist das Gerät normalerweise so aufgebaut, dass es die volle Funktionalität, die für den Datenaustausch notwendig ist, beinhaltet, so dass die Notwendigkeit für einen getrennten Gerätetreiber umgangen wird. Einige Geräte können unter sich selbst Daten austauschen.
  • Jede Funktion des Empfängers/Dekoders 13 ist als Gerät 4062 in der Softwarearchitektur des Empfängers/Dekoders vertreten. Geräte können entweder lokal oder entfernt ausgebaut sein. Lokale Geräte 4064 enthalten Chipkarten, SCART-Anschlusssignale, Modems, serielle und parallele Schnittstellen, eine MPEG Video- und Audioabspielvorrichtung und einen MPEG Sektions- und Tabellenextraktor. Die entfernt aufgebauten Geräte 4066, die an einem entfernten Ort angewendet werden, unterscheiden sich von lokalen Geräten dadurch, dass eine Schnittstelle und der Arbeitsschritt durch die Systemleitung oder durch den Systementwickler bestimmt werden muss, als durch einen Gerätetreiber, der vom Hersteller des Empfängers/Dekoders geliefert und gebaut wurde.
  • Die Laufzeitmaschine 4008 läuft unter der Steuerung eines Mikroprozessors und einer gemeinsamen Schnittstelle für die Anwendungsprogrammierung (API application programming interface). Sie sind in jedem Empfänger/Dekoder 13 untergebracht, so dass alle Empfänger/Dekoder 13 von der der Anwendung her gesehen, identisch sind.
  • Die Maschine 4008 führt Anwendungen 4056 auf dem Empfänger/Dekoder 13 durch. Sie führt interaktive Anwendungen 4056 durch und empfängt Ereignisse von ausserhalb des Empfängers/Dekoders 13, zeigt Graphik und Text an, ruft Geräte für Dienste auf und benutzt Funktionen der Bibliothek 4006, die mit der Maschine 4008 für spezielle Berechnungen verbunden ist.
  • Die Laufzeitmaschine 4008 ist ein ausführbarer Kode, der in jedem Empfänger/Dekoder 13 eingebaut ist und schliesst einen Interpretierer zum Übersetzen der laufenden Anwendungen ein. Die Maschine 4008 kann an jedes Betriebssystem angepasst werden, einschliesslich Betriebssystemen für eine einzige Anwendung (so wie MS-DOS). Die Maschine 4008 arbeitet auf der Grundlage von Prozessablaufsteuerungseinheiten (die verschiedene Vorgänge, wie zum Beispiel ein Tastendruck, heranziehen, um verschiedene Aktionen auszuführen) und beinhaltet ihr eigenes Steuerprogramm, um Warteschlangen bei Vorgängen aus den verschiedenen Hardwareschnittstellen zu bewältigen. Sie wickelt auch die Darstellung von Graphiken und Text ab. Eine Prozessablaufsteuerungseinheit schliesst eine Reihe von Aktionsgruppen ein. Jeder Vorgang veranlasst die Prozessablaufsteuerungseinheit sich von ihrer momentanen Aktionsgruppe zu einer anderen Aktionsgruppe in Abhängigkeit der Art des Vorganges hin zu bewegen und die Aktionen der neuen Aktionsgruppe auszuführen.
  • Die Maschine 4008 schliesst ein Kodeladeprogramm zum Laden und Herunterladen von Anwendungen 4056 in den Speicher des Empfängers/Dekoders 13 ein. Nur der notwendige Kode wird in den RAM- oder Flashspeicher geladen, um optimalen Gebrauch sicher zu stellen. Die herunter geladenen Daten werden durch einen Authentifizierungsmechanismus überprüft, um jedwelche Veränderung einer Anwendung 4056 oder die Ausführung nicht frei gegebener Anwendungen zu verhindern. Die Maschine 4008 schliesst ferner einen Dekomprimierer ein. Wenn der Anwendungskode (eine Form des Zwischenkodes) zur Einsparung von Speicherplatz und zum schnellen Herunterladen aus dem MPEG Stroms oder über den eingebauten Empfänger-/Dekodermodus komprimiert wird, muss der Kodevor dem Laden in den RAM-Speicher dekomprimiert werden. Die Maschine 4008 schliesst auch einen Interpretierer zur Übersetzung des Anwendungskodes zur Aktualisierung verschiedener variabler Werte und zur Bestimmung von Zustandsveränderungen und einen Fehlerüberprüferkreis ein.
  • Architektur des Empfänger/Dekoders
  • Der Empfänger/Dekoder beinhält fünf Softwareschichten, die so organisiert sind, dass sie bei jedem Empfänger/Dekoder und bei jedem Betriebssystem eingesetzt werden können. Unter Bezug auf die 2c sind die verschiedenen Softwareschichten die Anwendungsschicht 250, die Anwendungsprogrammschnittstelle (API application programming interface) 252, die virtuelle Maschinenschicht 254, die Geräteschicht 256 und die System-Software/-Hardwareschicht 258.
  • Die Anwendungsschicht 250 umfasst Anwendungen die entweder resident im oder in den Empfänger/Dekoder herunter geladen wurden. Diese können interaktive Anwendungen sein, die vom Kunden benutzt werden und die zum Beispiel in Java, HTML, MHEG-5 oder anderen Sprachen geschrieben wurden, oder es können Anwendungen sein, die vom Empfänger/Dekoder benutzt werden, um solche Anwendungen zu betreiben. Diese Schicht basiert auf einer Reihe offener Anwendungsprogrammschnittstelle (APIs application programming interface), die von der virtuellen Maschineschicht bereitgestellt werden. Dieses System ermöglichtes, dass die Anwendungen in den Flash oder RAM-Speicher des Empfängers/Dekoders während der Übertragung oder auf Anfrage herunter geladen werden. Der Anwendungskode kann im komprimierten Format oder unkomprimierten Format unter Benutzung von Protokollen wie DSMCC (Data Storage Media Command and Control, Datenspeicherung für Datenträgerführung und Steuerung), NFS (Network File Server, Netzwerkdateiserver) oder anderen Protokollen.
  • Interaktive Anwendungen sind Anwendungen mit den der Benutzer interaktiv arbeitet, zum Beispiel und Produkte oder Dienstleistungen, wie elektronische Programmführer, Telebaninganwendungen und Spiele zu erhalten.
  • Verschiedene Sicherheitsmerkmale werden für die herunter geladenen Anwendungen und Daten wie folgt zur Verfügung estellt:
    • – Nichts kann auf den Empfänger/Dekoder herunter geladen werden, ohne zuerst im beabsichtigten Netzwerk authentifiziert zu sein, was verhindert, dass keine unregistrierte Software auf dem Empfänger/Dekoder laufen kann. Das bedeutet, dass jegliche Software, die auf dem Empfänger/Dekoder läuft, erkannt wurde und komplett getestet wurde.
    • – Ein Sicherheitsverwaltungsprogramm (security manager) beschränkt den Zugang zu Anwendungen in verschiedenen Speicherzonen und stellt damit Datenintegrität sicher.
    • – Das System kann mit jedem bedingten Zugangssystem (conditional access) gekoppelt werden, dass sich sicherer Prozessoren (zum Beispiel Chipkarten, die in den Empfänger/Dekoder eingeführt werden) bedient.
  • Die folgenden eingebauten Anwendungen werden zur Verwaltung der interaktiven Anwendungen benutzt:
    • – Start. Die Startanwendung 260 ist die erste in Gang gesetzte Anwendung, wenn der Empfänger/Dekoder eingeschaltet wird. Die Startanwendung beginnt mit den verschiedenen "Managern" (Verwaltungsprogramme) in der virtuellen Maschine, wobei die erste der Anwendungsmanager 262 ist.
    • – Anwendungsmanager. Der Anwendungsmanager 262 verwaltet die interaktiven Anwendungen, die auf dem Empfänger/Dekoder laufen, das heisst, er startet, stoppt, unterbricht, setz fort, wickelt Vorgänge ab und bearbeiten die Datenübertragung zwischen Anwendungen. Er erlaubt mehrfache Anwendungen zur gleichen Zeit zu betreiben und ist damit an der Zuordnung von Ressourcen innerhalb dieser Anwendungen beteiligt. Diese Anwendung ist für den Benutzer vollkommen transparent.
    • – Installation. Der Zweck der Installationsanwendung 264 ist den Empfänger/Dekoder zu konfigurieren, hauptsächlich, wenn er zum ersten Mal benutzt wird. Sie führt Aktionen wie die Abfrage der TV-Kanäle durch, Einstellen von Datum und Zeit, Erstellen der bevorzugten Benutzereinstellungen und so weiter. Die Installationsanwendung kann jedoch jedes Mal vom Benutzer eingesetzt werden, um die Konfiguration des Empfängers/Dekoders zu ändern.
    • – Zapping (Programmsuche). Die Programmsuchanwendung 268 wird eingesetzt, um die Kanäle mit den Tasten Programm "+" und Programm "–" und den Zahlentasten zu wechseln. Wenn eine andere Form des Programmwechsels gebraucht wird, zum Beispiel durch eine Anwendung mit einem Führungszeiger, wird die Programmsuchanwendung (zapping) angehalten.
    • – Callback (Rückfrage). Die Rückfrageanwendung (callback) wird zur Entnahme von Werten aus verschiedenen Parametern, die im Speicher des Empfänger/Dekoder abgelegt sind, eingesetzt und sie gibt diese Werte an den kommerziellen Betreiber über einen Rückkanal mit Modem 17, oder über andere Mittel zurück.
  • Die API-Schicht 252 stellt "high level" Betriebsmittel zur interaktiven Anwendungsentwicklung zur Verfügung. Sie schliesst mehrere Paket mit ein, die diese "high level" API kennzeichnen. Die Pakete liefern all notwendigen Funktionalitäten, um interaktive Programme zu betreiben. Die Pakete sind über die Anwendungen zugänglich.
  • In einem bevorzugten Ausführungsbeispiel ist die API geeignet in der Java Programmiersprache geschriebene interaktive Anwendungen auszuführen, Ferner kann es HTML und andere Formate interpretieren, wie MHEG-5. Neben diesen Übersetzern schliesst es auch andere Pakete und Dienstemodule ein, die abschaltbar und erweiterbar, so wie es die Anforderungen aufgeben, sind.
  • Die virtuelle Maschinenschicht 254 ist aus Sprachinterpretieren und verschiedenen Modulen und Systemen zusammengesetzt. Es besteht aus allem was zum Empfang und zur Ausführung interaktiver Anwendungen im Empfänger/Dekoder nötig ist, einschliesslich den Folgenden:
    • – Sprachinterpretierer. Verschiedene Interpretierer können installiert werden, um dem Typ von zu lesenden Anwendungen zu entsprechen. Dies schliesst Java, HTML, MHEG-5 und andere ein.
  • Diensteinformationsmaschine (SI). Die SI-Maschine lädt und überwacht gemeinsame Digitale Videoübertragung-(DVB) und Programmsysteminformationsprotokoll-(PSIP) Tabellen und lädt sie in den Cachespeicher. Sie ermöglicht den Zugang zu diesen Tabellen über Anwendungen, die die darin enthaltenen Informationen benötigen.
  • Steuerprogramm (scheduler) Dieses Modul erlaubt bevorrechtigte, nebenläufige Ablaufkoordination, wobei jedes Thread seine eigene Ereigniswarteschlange besitzt.
  • Speicherverwaltungsprogramm. Dieses Modul verwaltet den Speicherzugriff. Es komprimiert auch automatisch Daten im Speicher, falls notwendig und führt automatisch eine Speicherbereinigung durch.
  • Vorgangsverwaltungsprogramm. (Event Manager) Dieses Modul erlaubt Vorgänge gemäß Vorrang auszulösen. Es verwaltet den Zugriff auf Zeitgeber und Vorfälle und erlaubt den Anwendungen sich gegenseitig Vorgänge zu schicken.
  • Dynamischer Pogrammbinder. (Dynamic Linker) Dieses Modul erlaubt die Auflösung von Adressen, die von natürliche Java-Funktionen ausgehen, lädt von einer Java-Klasse ausgehende Verfahren, die in den RAM Speicher herunter geladen wurden und löst Anweisungen von herunter geladenen natürlichen Kodes in Richtung ROM.
  • Downloader (Herunterladen von Daten). Dieses Modul benutzt automatisches Herunterladen von Daten aus einem entfernten DSMCC Karussell oder über eine NFS Protokoll, mit herunter geladenen Dateien, auf die in gleicher Weise wie auf die residenten Dateien zugegriffen wird. Aufräumen des Speichers, Kompression und Authentifizierung werden ebenfalls bereitgestellt.
  • Class Manager (Klassenverwaltungsprogramm). Dieses Modul lädt Klassen und löst alle Problem die sich auf das Herstellen von Bezügen innerhalb der Klassen ergeben.
  • Dateisystem. (File System) Dieses Modul ist kompakt und zur Verwaltung eines hierarchischen Dateisystems mit mehrfachen ROM, flash, RAM und DSMCC Datenträgern optimiert. Flashintegrität ist gegen jegliche Störfälle sicher gestellt.
  • Sicherheitsverwaltungsprogramm (Security manager). Dieses Modul authentifiziert Anwendungen und steuert den Zugrang von Anwendungen auf empfindliche Speicherzonen und andere Zonen des Beistelldekoder.
  • Graphisches System graphics system). Dieses Modul ist objektorientiert und optimiert. Es beinhaltet die Verwaltung von Graphikfenstern und von Gegenständen, ebenso wie eine Vektorzeichensatzmaschine mit Mehrsprachenunterstützung.
  • Ferner wird das Modell zur Ressourcenmeldung DAVIC unterstützt, damit kKlientenressourcen wirkungsvoll verwaltet werden.
  • Die Geräteschnittstellenschicht 256 beinhaltet ein Bausteinverwaltungsprogramm und Bausteine. Bausteine sind Softwaremodule, die aus logischen Ressourcen, die für die Verwaltung von externen Vorgängen und physikalischen Schnittstellen notwendig sind, bestehen. Die Bausteinschicht verwaltet Übertragungskanäle zwischen Treibern und Anwendungen und liefert verbesserte Prüfung von Fehlerausnahmebedingungen. Einige Beispiel für verwaltete Bausteine sind: Chipkartenlesegeräte, Modems, Netzwerke, PCMCIA (Personal Computer Memory Card International Association), LED Anzeige und so weiter. Programmierer müssen mit diesen Schichten nicht direkt umgehen, da die API-Schicht die obigen Bausteine steuert.
  • Die System-Software/Hardwareschicht 258 wird vom Hersteller des Empfänger/Dekoders zur Verfügung gestellt. Wegen des modularen Aufbaus des System und wegen der durch das OS (OS Operating System = Betriebssystem) bereitgestellten Dienste (so wie Vorgangsplanung und Speicherverwaltung), die Teil der virtuellen Maschine sind, sind die höheren Schichten nicht an ein besonderes in Echtzeit arbeitendes System (RTOS) oder an einen besonderen Prozessor gebunden.
  • Trickfenster-Gruppen
  • In einem bevorzugten Ausführungsbeispiel wird eine Trickfenstergruppe zum Einsatz in einer graphischen Benutzerschnittstelle (GUI graphical user interface) bereitgestellt. Eine besondere Anwendung einer solchen Trickfenstergruppe (widget set) ist Trickfenster in einer GUI-Anzeige eines Empfänger/Dekoders für das digitale Fernsehen bereit zu stellen. Jedes Trickfenster ist als objektorientiertes Modul implementiert, so dass für jedes Trickfenster es eine entsprechende Trickfensterklass gibt. Somit kann irgendein Trickfenster aus einfacheren Bausteintrickfenstern durch Übernahme oder Vereinigung von Klassen anderer Trickfenster aufgebaut werden.
  • Die 3 ist ein vereinfachtes Diagramm der Hierarchie von Trickfenstern innerhalb einer Trickfenstergruppe. Bei diesem Ausführungsbeispiel enthält die Trickfenstergruppe eine Gruppe einfacher Trickfensterklassen 410, einschliesslich, unter anderem, Fenster- und Dialogboxenrahmen, einen Schieberegler, eine Drucktaste, ein Ankreuzfeld, ein Textfeld und ein Textbearbeitungsfeld. Bei einer nächsten Schwierigkeitsstufe gibt es die Klassen 420, die mehrere einfache Trickfensterklassen verbinden, oder das verhalten eines einfachen Trickfenster verändern. Ein Trickfenster, zum Beispiel so eines wie ein Verzeichnisfeld kann bearbeitbare Listenpositionen aus einer Textbearbeitungsfeldklasse erzeugen und dem Benutzer ermöglichen durch die Liste zu blättern, in dem er eine Bildlaufleiste, die von einer Schiebereglerklasse abgeleitet wird, benutzt. Bei einer noch höheren Schwierigkeitsstufe enthält die Trickfenstergruppe verknüpfte Trickfenster 430, wie zum Beispiel eine Dialogbox für die Dateiauswahl, die Druckknöpfe beinhaltet, Listen zum Blättern, Textfelder und Textbearbeitungsfelder, die insgesamt in anderen Klassen von Trickfenstergruppen festgelegt sind.
  • Jede Trickfensterklasse setzt Verfahren und Vorgangssteuerungsprogramme zur Steuerung des Trickfensterbetriebs ein. Die Trickfensterklassen können auch Verfahren zum Zeichnen eines Teils der Trickfenster beinhalten. Mit dem Ziel ein bestimmtes Erscheinungsbild oder einen bestimmten "Look" für das Trickfenster bereit zu stellen, beinhalten die Trickfensterklassen Zeichenverfahren einer Betrachtungsgegenstandsklasse, mit der die Trickfensterklasse verknüpft ist. Dies wird weiter unten in weiteren Einzelheiten beschrieben werden.
  • Erscheinungsbildklassen – Öffentliche Verfahren und API (look class public methods and API)
  • Damit die Betrachtungsgegenstandsklassen und Trickfensterklassen zusammen arbeiten können, ist es für die Betrachtungsgegenstandsklassen notwendig, eine konsistente Reihe öffentlicher Methoden zu haben, die garantiert zum Einsatz durch die Trickfensterklasse zur Verfügung stehen. Die Betrachtungsgegenstandsklasse muss insbesondere eine Standard API bereitstellen, die Verfahren enthalten, die die Trickfensterklasse aufrufen kann, um sich selbst auf einer graphischen Benutzerschnittstellenanzeige zu zeichnen.
  • Die API, die bei Trickfenstern eingesetzt wird ist in einer Basisklasse bestimmt, aus der alles Ansichten (looks) abgeleitet werden. Die API beinhaltet die folgenden Elemente:
    • 1. Allgemeine Darstellungsverfahren
    • 2. Besondere Darstellungsverfahren
    • 3. Steuerung der Erstellung und Zerstörung von Vorgängen
    • 4. Steuerung der Ränder
    • 5. Steuerung der Änderungen.
  • Allgemeine Darstellungsverfahren sind diejenigen, die für alle Trickfenster zur Verfügung stehen, während besondere Darstellungsverfahren bestimmten Typen von Trickfenstern zueigen sind.
  • Ansichten werden unter Benutzung einer hierarchischen Architektur gebaut. Eine neue Betrachtungsklasse wird durch Übernahme der Attribute, Verfahren und Standardwerte der Klasse, von der sie abgeleitet wurden, und dann durch Hinzufügen neuer Attribute, Verfahren und Standardwerten, oder durch Überschreiben einiger oder aller Übernommenen erzeugt.
  • Eine Betrachtungsklasse wird als Tabelle, die Zeiger für öffentliche Verfahren enthält, organisiert. Eine Betrachtungsklasse die von einer anderen Betrachtungsklasse abgeleitet wurde kann deshalb ein Verfahren durch Wechseln des relevanten Zeigers, so dass er auf ein anderes Verfahren zeigt umdefinieren. Eine Betrachtungsklasse implementiert typischerweise nur einige der verfügbaren öffentlichen Verfahren.
  • Bei einer anderen praktischen Anwendung werden Betrachtungsklassen mit Validierungsmasken versehen. Eine Validierungsmaske bestimmt, welche Verfahren durch die Betrachtungsklasse aufgerufen werden können, so das Verfahren, die nicht implementiert sind nicht aufgerufen werden. Ein Trickfenster (widget) kann auf die Validierungsmaske einer Betrachtungsklasse zugreifen, um die Zeichnung des Trickfensters zu optimieren. In diesem Fall ist kennt das Trickfenster die Verfahren, die nicht implementiert sind und so wird das Trickfenster die Erzeugung von Aufrufen derartiger Verfahren vermeiden. Auf diese Art und Weise ist es möglich Zeit durch Aufruf unechter Verfahren zu vergeuden.
  • Eine Betrachtungsklasse kann aus zwei oder mehr weiteren Klassen (Mehrfachvererbung) abgeleitet werden. Das kann es gestatten eine Betrachtungsklasse zu schaffen, die eine Verbindung aus zwei oder mehreren anderen Ansichten bildet. Wie oben erwähnt wurde nimmt, wenn eine Ansicht erstellt wurde, diese die Attribute, Verfahren und Standardwerte der Betrachtungsklasse, aus der sie begleitet wurde, an. Um Mehrfachvererbungen zu implementieren, enthält die Ansicht auch einen oder mehrere Zeiger für die zusätzlichen Klassen, aus der sie Attribute, Verfahren und Standardwerte ableitet. Die Ansicht kann dann auf diese Attribute zugreifen, ohne sie selbst kopieren oder selbst erzeugen zu müssen.
  • In anderen Ausführungsbeispielen nimmt, wenn eine Ansicht erstellt wurde, diese die Attribute, Methoden und Standardwerte aller Betrachtungsklassen an, von der sie abgeleitet wurden.
  • Das Prinzip der Mehrfachvererbung ist auch nützlich in Situationen, wo nicht standardisierte Trickfenster entworfen werden, was die Ansicht veranlassen kann, nicht standardisierte Verfahren einzusetzen. Der Zeiger in einer Ansicht kann auf eine zweite Betrachtungsklasse hinweisen, die nicht standardisierte Verfahren enthält, die zur Darstellung des Trickfensters erforderlich sind.
  • Es ist von Bedeutung, dass die verschiedenen Betrachtungsklassen, aus denen eine Ansicht abgeleitet wurde, nicht miteinander in Konflikt geraten. Dies kann durch Sicherstellung von zusätzlichen Betrachtungsklassen, die nur Methoden beinhalten, die sich nicht in der Haupt-Betrachtungsklasse befinden, aus denen die Ansicht abgeleitet wurde, erreicht werden, oder durch Ausgeben einer Rangfolge an die verschiedenen Klassen.
  • Ein Beispiel der öffentlichen Verfahren einer Betrachtungsklasse wird unten dargelegt:
    /*Initialisierung des Vorganges*/
    MhwWgtLookInitDefault (MhwWgtLookclass* MhwWgtLookAtts*);
    MhwWgtLookInitClass (Void)
    MhwWgtLookResetDefault (MhwWgtLookclass*);

    MhwWgtLookAttsGetDefault (MhwWgtLookClass*, MhwWgtLookAtts*);
    MhwWgtLookAttsInit (MhwWgtLookAtts*);
    /*Abfragen und Setzen der Grenzabmessungen*/
    MhwWgtLookAttsGetBorderwidthBottom (MhwWgtLookAtts*, Card8*);
    MhwWgtLookAttsGetBorderwidthLeft (MhwWgtLookAtts*, Card8*);
    MhwWgtLookAttsGetBorderwidthRight (MhwWgtLookAtts*, Card8*);
    MhwWgtLookAttsGetBorderwidthTop (MhwWgtLookAtts*, Card8*);
    MhwWgtLookAttsSetBorderwidthBottom (MhwWgtLookAtts*, Card8*);
    MhwWgtLookAttsSetBorderwidthLeft (MhwWgtLookAtts*, Card8*);
    MhwWgtLookAttsSetBorderwidthRight (MhwWgtLookAtts*, Card8*);
    MhwWgtLookAttsSetBorderwidthTop (MhwWgtLookAtts*, Card8*);
    /*Abfragen und Setzen der Farben*/
    MhwWgtLookAttsGetColorBackground (MhwWgtLookAtts*, MhwWgtColor*);
    MhwWgtLookAttsGetColorBlack (MhwWgtLookAtts*, MhwWgtColor*);
    MhwWgtLookAttsGetColorGray (MhwWgtLookAtts*, MhwWgtColor*);
    MhwWgtLookAttsGetColorForeground (MhwWgtLookAtts*, MhwWgtColor*);
    MhwWgtLookAttsGetColorHighlight (MhwWgtLookAtts*, MhwWgtColor*);
    MhwWgtLookAttsGetColorLightGray (MhwWgtLookAtts*, MhwWgtColor*);
    MhwWgtLookAttsGetColorMapAndVisual (MhwWgtLookAtts*, MhwWgtColorMapId*, MhwWgtVisual*);
    MhwWgtLookAttsGetColorMiddleGray (MhwWgtLookAtts*, MhwWgtColor*);
    MhwWgtLookAttsGetColorTransparent (MhwWgtLookAtts*, MhwWgtColor*);
    MhwWgtLookAttsGetColorVeryLightGrey (MhwWgtLookAtts*, MhwWgtColor*);
    MhwWgtLookAttsGetColorWhite (MhwWgtLookAtts*, MhwWgtColor*);
    MhwWgtLookAttsSetColorBackground (MhwWgtLookAtts*, MhwWgtColor*);
    MhwWgtLookAttsSetColorBlack (MhwWgtLookAtts*, MhwWgtColor*);
    MhwWgtLookAttsSetColorDarkGrey (MhwWgtLookAtts*, MhwWgtColor*);
    MhwWgtLookAttsSetColorForeground (MhwWgtLookAtts*, MhwWgtColor*);
    MhwWgtLookAttsSetColorHighlight (MhwWgtLookAtts*, MhwWgtColor*);
    MhwWgtLookAttsSetColorLightGrey (MhwWgtLookAtts*, MhwWgtColor*);
    MhwWgtLookAttsSetColorMapAndVisual (MhwWgtLookAtts*, MhwWgtColorMapId, MhwWgtVisual);
    MhwWgtLookAttsSetColorMiddleGrey (MhwWgtLookAtts*, MhwWgtColor*);
    MhwWgtLookAttsSetColorTransparent (MhwWgtLookAtts*, MhwWgtColor*);
    MhwWgtLookAttsSetColorBackground (MhwWgtLookAtts*, MhwWgtColor*);
    MhwWgtLookAttsSetColorVeryLightGrey (MhwWgtLookAtts*, MhwWgtColor*);
    MhwWgtLookAttsSetColorWhite (MhwWgtLookAtts*, MhwWgtColor*);
    /*Abfragen und Setzen der Übernahmedaten*/
    MhwWgtLookAttsGetHeritageData1 (MhwWgtLookAtts*, Void**);
    MhwWgtLookAttsSetHeritageData1 (MhwWgtLookAtts*, Void**);
    /*Konstruktor*/
    MhwWgtLookNew (MhwWgtLookAtts*);
    /*Destruktor*/
    MhwWgtLookDelete (ein Objekt)
    /*Standard API*/
    MhwWgtLookDrawAnchor (anObject, aWidget, aX, aY, aW, aH, aText, aLength, anAscent, aState)
    MhwWgtLookDrawBackground (anObject, aWidget, aX, aY, aW, aH)
    MhwWgtLookCheckSymbol (anObject, aWidget, aX, aY, aW, aH, aState aSymbol)
    MhwWgtLookDrawChoice (anObject, aWidget, aX, aY, aW, aH)
    MhwWgtLookDrawCross (anObject, aWidget, aX, aY, aW, aH)
    MhwWgtLookDrawCursor (anObject, aWidget, aX, aY, aW, anAscent, aH)
    MhwWgtLookDrawForeground (anObject, aWidget, ax1 aY1 aW, aH)
    MhwWgtLookDrawFocus (anObject, aWidget, aX, aY, aW, aH)
    MhwWgtLookDrawHighlight (anObject, aWidget, aX, aY, aW, aH)
    MhwWgtLookDrawInset (anObject, aWidgetl aX, aY, aW, aH)
    MhwWgtLookDrawItermr (anObject, aWidget, aX, aY, aW, aH, aTextLength, anAscent, aState)
    MhwWgtLookDrawOutset (anObject, aWidget, aX, aY, aW, aH)
    MhwWgtLookDrawRelief (anObject, aWidget, aX, aY, aW, aH, aRelief)
    MhwWgtLookDrawSelectedBG (anObject, aWidget, aX, aY, aW, aH
    MhwWgtLookDrawSlidArrow (anObject, aWidget, aX, aY, aW, aH, aDirection)
    MhwWgtLookDrawSlidLift (anObject, aWidget, aX, aY, aW, aH)
    MhwWgtLookDrawString (anObject, aWidget, aX, aY, aText, aLength, anAscent)
    MhwWgtLookGetBorderWidth (anObject, aBorder)
    MhwWgtLookGetClassIddth (anObject)
    MhwWgtLookGetClassName (anObject)
    MhwWgtLookGetItemBorderWidth (anObject)
    MhwWgtLookGetMethodMask (anObject)
    MhwWgtLookGetPreferredSizeArrow (anObject)
    MhwWgtLookGetPreferredSizeCheck (anObject)
    MhwWgtLookGetPreferredsSizeChoice (anObject)
    MhwWgtLookGetPreferredSizeCross (anObject)
    MhwWgtLookGetUpdateCounter (anObject)
    MhwWgtLookIsInstantof (anObject, aClassId)
    MhwWgtLookReDrawItema (anObject, aWidget, ax1 aY, aW, aH, aText, aLength, anAscent, aState)
    MhwWgtLookRef (anObject)
    MhwWgtLookSetBorderWidther (anObject, aBorder, aWidth)
    MhwWgtLookUnDrawCross (anObject, aWidget, aX, aY, aW, aH)
    MhwWgtLookGetUpdateCounter (anObject)
    MhwWgtLookUnDrawCross (anObject, aWifget, aX, aY, aW, aH)
    MhwWgtLookUnDrawCursor (anObject, aWidget, aX, aY, anAscent, aH)
    MhwWgtLookunDrawFocusr (anObject, aWidget, aX, aY, aW, aH)
    MhwWgtLookunDrawHighlight (anObject, aWidget, aX, aY, aW, aH)
    MhwWgtLookUnDrawRelief (anObject, aWidget, aX, aY, aW, aH)
    MhwWgtLookUnRef (anObject)
    MhwWgtLookGetBackground (anObject)
    MhwWgtLookGetColorBlack (anObject)
    MhwWgtLookGetColorDarkGray (anObject)
    MhwWgtLookGetColorHighlight (anObject)
    MhwWgtLookGetColorLighGray (anObject)
    MhwWgtLookGetColorMap (anObject)
    MhwWgtLookGetColorMiddleGray (anObject)
    MhwWgtLookGetColorTransparent (anObject)
    MhwWgtLookGetColorVeryLightGray (anObject)
    MhwWgtLookGetColorWhite (anObject)
    MhwWgtLookGetColorForeground (anObject)
    MhwWgtLookGetColorHeritageData1 (anObject)
    MhwWgtLookGetColorHeritageLink1 (anObject)
  • Erstellen und Anzeigen eines Trickfensters
  • Wenn eine Anwendung verlangt, dass ein Trickfenster auf der Anzeige einer graphischen Benutzerschnittstelle (GUI graphical user interface) erscheint, ist der erste Vorgang, den die Anwendung ausführen muss, das Erstellen einer Instanz der Trickfensterklasse. Während der Bildung der Trickfensterinstanz, wird eine Betrachtungsklasseninstanz mit der Trickfensterklasseninstanz. Das spezielle Aussehen wird wie folgt gewählt:
    • 1. wenn eine Betrachtungsinstanz von der Anwendung an den Konstruktor geleitet wird, dann benutze ihn.
    • 2. Anderenfalls benutze die Standardansicht, die für die zu schaffende Trickfensterklasse spezifiziert ist, wenn es eine gibt.
    • 3. Anderenfalls benutze die Standardansicht, die für den Trickfensterkontext spezifiziert ist, wenn es einen gibt.
    • 4. Anderenfalls benutze die Standardansicht für die Trickfenstergruppe.
  • Wenn einmal die Trickfensterklasse realisiert ist, kann die Anwendung eine passende ihrer öffentlichen Methoden (public method) aufrufen, um sie anzuzeigen.
  • Die Trickfensterklasse stellt vorzugsweise auch eine öffentliche Methode zur Verfügung, die mit einem Zeiger zu einer Betrachtungsklasseninstanz aufgerufen werden kann und diese Betrachtungsklasseninstanz wird dann mit der Trickfensterklasseninstanz verknüpft. Dies führt dazu, dass sich das Erscheinungsbild des Trickfensters im Einklang mit der neu verknüpften Betrachtungsklassenmethode verändert. Es sollte verstanden werden, dass "Verknüpfung" in Wirklichkeit nichts weiter bedeutet, als den Wert eines Feldes innerhalb der Trickfensterklassenmethode zu setzen. Um das Trickfenster mit einer unterschiedlichen Betrachtungsklasse zu verknüpfen, kann dies, im einfachsten Ausführungsbeispiel, einfach durch Erstellen einer Zuordnung zum Feld gemacht werden. (Siehe dazu jedoch weiter unten die Bemerkungen in Bezug auf die Speicherverwaltung und die Methode MhwWgtXxxSetLook.) Viele Trickfensterklasseninstanzen können jedoch mit einer Betrachtungsklasseninstanz verknüpft werden. Dies ist in Diagrammform in der 5 dargestellt.
  • Wenn eine Trickfensterklassenmethode aufgerufen wird, um das Trickfenster auf einem Bildschirm der graphischen Benutzerschnittstelle (GUI) darzustellen, baut sie das Bild des Trickfensters in der folgenden Reihenfolge auf:
    • 1. Der Hintergrund des Trickfensters (zum Beispiel eine Hintergrundfarbe oder ein Bild)
    • 2. Hintergrundüberzug (zum Beispiel ein Logo)
    • 3. Vordergrund des Trickfensters
    • 4. Vordergrundüberzug (zum Beispiel ein Logo)
    • 5. Der Rand des Trickfensters
    • 6. Hervorhebung
    • 7. Eingabefeld (input focus = blinkender Eingabe-Cursor)
  • Bei einem vorgegebenen Trickfenster können bestimmte Teil fehlen. Das Vorhandensein oder Fehlen eines Teils des Trickfensters hängt von den folgenden Kriterien ab:
    • 1. Hard coding (Kode ist nicht flexibel). Einige Teile sind für bestimmte Trickfensterklassen nicht definiert.
    • 2. Optionale Teile. Zum Beispiel der Fokus, das Relief und das Hervorheben können nach Belieben durch öffentliche Attribute des Trickfensters gesperrt sein.
    • 3. Bestimmung des Aussehens. Ein Aussehen kann ein oder mehrere Teil weglassen.
  • In einem typischen Beispiel werden die folgenden Schritte durchgeführt.
  • Zuerst wird der Hintergrund durch die Trickfensterklassenmethode selbst gezeichnet, zum Beispiel durch Ausmalen einer Hintergrundfarbe, eines Hintergrundmusters oder eines Bildes. Der Hintergrundüberzug wird dann durch Aufruf der öffentlichen Methode der verknüpften Betrachtungsinstanz MhwWgtLookDrawBackground, in dem geeignete Argumente für die Höhe, die Breite und die Lage des Trickfensters auf dem Bildschirm spezifiziert werden. Das Aussehen des Hintergrundes wird dann zum Beispiel durch das Aussehen durch Überlagerung mit einem Logo verändert.
  • Die Trickfensterklassenmethode muss dann den Vordergrund des Trickfensters aufbauen; das ist sozusagen die Schaffung der visuellen Objekte, die gegenwärtig durch einen Benutzer oder durch Bildschirminformationen gehandhabt werden, wenn sich das Trickfenster im Einsatz befindet. Das Trickfenster könnte zum Beispiel ein Ankreuzfeld implementieren, in welchem Fall es die Betrachtungsklassenmethode MhwWgtLookDrawCheckSymbol aufruft. Das Aussehen kann dann den Vordergrund verändern, zum Beispiel durch Überlagerung mit einem Logo.
  • Der Rahmenbezirk des Trickfensters wird dann gezeichnet, wie unten beschrieben werden wird.
  • Wenn die Trickfensterklasse bestimmt, dass eines der Objekte innerhalb des Trickfensters Eingangsfokus besitzt, ruft es die Betrachtungsklassenmethode MhwWgtLookDrawFocus auf, um dies in dem gezeigten Trickfenster abzubilden. Auf die gleiche Weise ruft die Trickfensterklasse, wenn ein Teil des Trickfensters hervorgehoben werden muss, die Betrachtungsklassemethode MhwWgtLookDrawHighlight auf.
  • Verwaltung des Trickfensterrahmens
  • Ein besonderes Beispiel der Art in der die Ansicht das Erscheinungsbild des Trickfensters auf einem GUI-Bildschirm (GUI = graphische Benutzerschnittstelle) bei der Verwaltung der Rahmen steuert. Das Aussehen eines Trickfensters mit Rahmen in seiner herkömmlichsten Form auf einen GUI-Bildschirm, ist in der 4 dargestellt. Das Trickfenster 500 belegt ein rechteckiges Gebiet in der Darstellung einer graphischen Benutzerschnittstelle GUI) Das gebiet, welches vom Trickfenster belegt wird, schliesst zwei Bereiche ein: den inneren Anwendungsbereich 510, der durch einen Randbereich umgeben ist.
  • Der Randbereich trägt typischerweise zur Funktion des Trickfensters bei (obwohl es in einigen Fällen von einem Benutzer eingesetzt werden könnte, um das Trickfenster zu bewegen und/oder das Trickfenster in der Größe anpassen möchte). Daher gibt es einen beträchtlichen Umfang an Gestaltungsvarianten des Randbereiches im Einklang mit den Wünschen des Benutzers. Die Farbe, die Breite, das Hintergrundmuster können alle ausgewählt werden, um dem Benutzer zu gefallen und um ein durchgehendes Erscheinungsbild zu schaffen. Somit wird die Verantwortung zum Zeichnen der Ränder an die Betrachtungsklasse gegeben.
  • Die Ansicht unterstützt 4 Dimensionen zur Spezifikation der breite der Ränder. Diese spezifizieren den Abstand vom linken, rechten, oberen und unteren des Anwendungsbereichs 510 zur Umrandung des Trickfensters. Diese Dimensionen werden jeweils mit L, R, T, B in der 4 bezeichnet. Werte dieser Dimensionen werden in der Standardansicht spezifiziert. Eine Anwendung kann eine Klasse definieren, die von einer Standardansicht abgeleitet wurde, in der die Werte überschrieben werden, um eine Ansicht zu schaffen, die ein Trickfenster mit einer Umrandung mit einer nicht standardisierten Breite erzeugt. Eine Anwendung (zum Beispiel eine Ansichtenverwaltung) kann ebenfalls die Werte zur Laufzeit wechseln durch, in dem die Ansichtmethoden MhwWgtLookAttsBorderwidthBottom, MhwWgtLookAttsBorderwidthLeft, MhwWgtLookAttsBorderwidthRight, MhwWgtLookAttsBorderwidthTop aufgerufen werden.
  • Innerhalb der Ansichtenklasse gibt es einen Kode, der das detaillierte Layout einer Umrandung, gemäss den Werten, die der Ansichtenklasse über die Trickfensterklasse übermittelt wurden.
  • Farbverwaltung für Trickfenster
  • Eine Ansichtenklasse beinhaltet eine Bestimmung der Farben, so dass eine Trickfensterinstanz, die mit einer bestimmten Ansichteninstanz verknüpft ist, die in dieser Ansichteninstanz definierten Farben einsetzen wird. In einem Ausführungsbeispiel bestimmt eine Ansicht die folgenden Farben:
    • – schwarz
    • – dunkelgrau
    • – mittelgrau
    • – hellgrau
    • – sehr helle Grau
    • – weiss
    • – durchsichtig
    • – Farbe hervorheben
  • Die Farbenbestimmung in der Ansicht beim Zeichnen eines Trickfensters gebraucht. Wenn zum Beispiel eine schwarze Linie gezogen werden soll beim Darstellen eines Trickfensters, wird die Farbe, die als "schwarz" bestimmt wurde benutzt werden. Wenn die Ansicht zum Beispiel eine rote Farbnuancierung haben soll, dann kann "schwarz" als dunkel definiert werden und "weiss" als hellrosa definiert werden mit verschiedenen roten Schatten, die dazwischen bestimmt werden. Bei diesem Beispiel würde normalerweise ein Zeichenvorgang eine schwarze Linie anstelle einer dunkelroten ziehen, und so weiter.
  • Zusätzlich bestimmt die Ansicht eine Farbübersichtstafel, die die aktuellen zu benutzenden Farbwerte beim Anzeigen irgendeiner speziellen Farbe auf dem Bildschirm der graphischen Benutzerschnittstelle (GUI) einsetzt.
  • Erzeugung eines modifizierten Trickfensters
  • Unterstellen wir, dass die Standardansichtmethode MheWgtLookDrawCheckSymbol einen rechteckigen Kasten zeichnet, der entweder leer ist, oder der ein kleines Häkchensymbol enthält in Abhängigkeit seines Zustandes und dass dies die Ansicht eines normalen Eingabefelds in einer graphischen Benutzerschnittstelle (GUI) bestimmt. Unterstellen wir nun, dass ein anderes Trickfenster erforderlich ist, in dem entweder ein Häkchen oder ein Kreuz dargestellt wird. Das Erscheinungsbild wird vollständig durch die Ansichtklasse gesteuert, so muss also nur die Ansichtklasse verändert werden. Darüber hinaus kann eine neue Ansichtklasse zur Implementierung dieses Verhaltens aus der bestehenden Ansichtklasse abgeleitet werden und nur eine Methode MhwWgtLookDrawCheckSymbol zur Verfügung stellen, um die Methode mit demselben Namen in der Basisansichtklasse zu überschreiben. Darüber hinaus wird mit diesem Argument, wenn die Methode MhwWgtLookDrawCheckSymbol aufgerufen wird, ein Zustand auf zutreffend gesetzt und die Methode MhwWgtLookDrawCheckSymbol der Basisklasse kann dann aufgerufen werden, um ein Häkchen zu zeichnen. Ein neuer Kode muss geschrieben werden, nur um den Fall zu behandeln, wo ein Kreuz gezeichnet werden muss. Damit kann ein neues Trickfenster erstellt werden mit einem Minimum an Programmieraufwand.
  • Es sollte klar sein, dass dieses Vorgehen das Erscheinungsbild des ursprünglichen Ankreuzfeldesfensters nicht verändert; diese Trickfenster benutzt die Basisansichtklasse, die nicht abgeändert wurde. Um einen Wechsel des Erscheinungsbildes des ursprünglichen Ankreuzfeldfensters in einer Anwendung auszuüben, muss die Methode MhwWgtLookDrawCheckSymbol in der Basisansichtklasse verändert werden. Alle Ankreuzfeldfenster, die von dieser Klasse abgeleitet wurden, werden sich dann ihr Erscheinungsbild bei nächster Gelegenheit verändern (während der Übertragungszeit oder je nachdem während der Laufzeit) nach der die Ansichtklasse dann mit der Anwendung verbunden ist.
  • Im Grundsatz wird die Trickfensterklasse zusammenwirken, um mit jeder Klasse ein Trickfenster zu erstellen, die einen geeigneten Satz öffentlicher Methoden und Eigenschaften wie eine Ansichtklasse besitzt. Es gibt jedoch einen Vorteil alle Ansichtklassen aus einer möglichst kleinen Zahl gemeinsamer Basisklassen abzuleiten und idealerweise gerade aus einer einzigen Basisklasse. Diejenigen, die mit objektorientierter Programmierung vertraut sind werden verstehen, dass dies den Einsatz von Speicherplatz und anderer Ressourcen durch die Ansichtklassen minimiert. Eine abgeleitete Klasse besitzt einen Zeiger auf seine Basisklasse, so dass sie auf einen Methodenkode und auf statische Daten der Basisklasse zugreifen kann, ohne eine solchen Kode, oder Daten im Speicher zu verdoppeln.
  • Versionssteuerung
  • Es ist möglich, dass einige Trickfensterinstanzen ein sehr langes Leben haben. Zum Beispiel das Hauptfenster eines Fensterverwaltungsprogramms, ein Trickfenster für eine Taskleiste bei einem Bildschirmarbeitsplatz, und so weiter. In solchen Fällen gibt es eine grosse Wahrscheinlichkeit, dass die Ansichtklassen während der Laufzeit des Trickfensters aktualisiert werden könnten. Man muss die Trickfensterklass dazu bringen sich selbst neu zu zeichnen, wenn dies eintritt.
  • Eine Möglichkeit dieses zu erreichen ist, jeder Ansichtsklasse einen Aktualisierungszähler zuzuordnen, der als Gemeingut (public property) exportiert wird oder über eine öffentliche Methode (public method) zugänglich ist. Wenn eine Trickfensterklasse realisiert wird, fragt die Trickfensterklasseninstanz den Aktualisierungszähler der verknüpften Ansicht und speichert den Wert des Aktualisierungszählers im Speicher dezentral zur Trickfensterklasseninstanz. Wenn die Instanz der Ansichtklasse danach aktualisiert wurde, kann die Trickfensterklasseninstanz diesen Wechsel durch Vergleich der Werte mit den Werten des Aktualisierungszählers in der Ansichtsklasseninstanz, die in ihrem lokalen Speicher abgelegt sind, erkennen. Wenn die Ansichtsklasseninstanz aktualisiert wurde, kann das Trickfenster sich neu entwerfen, in dem es die Methoden der Ansichtklasse einsetzt.
  • Konstruktion und Destruktion der Ansichtklasseninstanzen
  • Im Allgemeinen wird es weniger Instanzen jeder Ansichtklasse als von jeder Trickfensterklasse geben. In einigen Fällen kann es gerade eine Instanz eine Ansichtbasisklasse geben, auf die sich alle Trickfensterklasseninstanzen bei einer Anwendung beziehen. Es kann auch Instanzen aus abgeleiteten Ansichtklassen geben, auf die sich einige Trickfensterklasseninstanzen einer Anwendung beziehen. Eine Trickfensterklasse kann jedoch nicht unterstellen, dass es immer eine Ansichtklasseninstanz zu der zeit geben wird, in der die Trickfensterklasse realisiert wird; die Trickfensterinstanz könnte die erste sein, die eine Verknüpfung mit einer speziellen Ansichtklasse erfordert.
  • Es wird deshalb vorgeschlagen, dass während der Realisierung jeder Trickfensterklasse, der Trickfensterklassenkonstruktor die verknüpfte Ansichtsklasse MhwWgtLookNew aufruft. Falls keine Instanz der Ansichtsklasse besteht, wird eine neue Instanz geschaffen. Ein Wert von 1 wird dann gespeichert in einem Referenzzähler, der im lokalen Speicher der Ansichtsklasseninstanz gehalten wird. Wenn eine Instanz der Ansichtsklasse bereits besteht, führt der Ansichtsklassenkonstruktor den Zeiger auf sie zurück und erhöht den Referenzzähler.
  • Während der Destruktion jeder Trickfensterklasseninstanz, ruft der Destruktor der Trickfensterklasse den Destruktor MhwWgtLookDelete für die verknüpfte Ansichtsklasseninstanz auf. Der Destruktor MhwWgtLookDelete verringert den Referenzzähler. Falls der Zähler grösser als 0 bleibt, läuft der Destruktor ganz einfach zurück. Falls der Destruktor jedoch 0 erreicht, dann sind keine Trickfensterklasseninstanzen (mit Ausnahme der, die der Destruktion ausgesetzt ist) verknüpft mit dieser Ansichtsklasseninstanz, wobei in diesem Fall der Ansichtsklassendestruktor fortfährt, die Ansichtklasseninstanz aus dem Speicher zu löschen.
  • Die Trickfensterklassenmethode MhwWgtXxxSetLook kann aufgerufen werden, um die Ansicht, mit der eine spezifische Trickfensterklasseninstanz verknüpft ist, zu wechseln. Innerhalb dieser Methode wird zuerst der Destruktor der abgehenden Ansichtsklasseninstanz aufgerufen und dann wird ein Aufruf an die Bezugsfunktion der neuen Ansichtsklasse gemacht, um einen Zeiger zu einer Klasseninstanz zu erhalten. Dies stellt sicher, dass die Bezugszähler der Ansichtklassen korrekt aktualisiert werden.
  • Es müssen auch Vorkehrungen für eine neu zu schaffende Instanz eine Ansichtsklasse getroffen werden, selbst wenn bereits eine Instanz besteht. Dies gestattet es einer Anwendung mehr als eine Instanz irgendeiner gegebenen Ansichtsklasse zu haben und verschiedene Attribute in den verschiedenen Instanzen zu setzen. Es können zum Beispiel zwei Instanzen der gleichen Ansichtsklasse, die in jeder Richtung identisch sind, vorhanden sein, ausser eine besitzt alle verbleibenden Attribute in Übereinstimmung mit ihren Standardeinstellungen und die anderen besitzen unterschiedliche Werte, die einem oder mehreren ihrer Attribute zugeordnet sind (Randbreite, Farbe und so weiter).
  • Ansichtenverwaltungsprogramm
  • Es versteht sich, dass das System der Ansichtsklassen und Instanzen eine sehr genaue Steuerung über die Gesamtansicht einer Anwendung erlaubt. Nur ein Attribut irgendeiner Ansichtsklasse kann zum Beispiel verändert werden, um einen geringfügigen Wechsel der Ansicht einer Anwendung zu bewirken. Dementsprechend kann eine Ansichtenverwaltungsprogrammanwendung (look manager) bereitgestellt werden, um dem Benutzer zu erlauben, diese Attribute, wie erforderlich, zu verändern. Eine derartige Anwendung schliesst typischerweise eine GUI-Anzeige (graphical user interface) mit ein, die Trickfenster beinhaltet, die die Erfindung verkörpern, damit der Benutzer sofort die Auswirkung durch den Wechsel der Attribute der Ansicht beim Erscheinen des Trickfensters erkennen kann.
  • Web Browser
  • Die Internetnavigatorschnittstelle wird nun beschrieben unter Bezug auf die beigefügten Zeichnungen.
  • Die 6a zeigt eine Bildschirmaufnahme des Hauptbildes der Navigatoranzeige eines Internetbrowsers. Das Hauptbild zeigt eine vertikale Kette 1100, das das Hauptmenü umfasst und verschiedene Schaltflächen als verknüpftes Verzeichnis beinhaltet. Die Schaltflächen sind mit Verbindungselementen der Kette verbunden. Die in der Kette dargestellten Schaltflächen 1100 der 6a beinhalten eine NEU LADEN/STOP Schaltfläche 1110, eine VORHER Schaltfläche 1120, eine WEITER Schaltfläche 1130, eine VERLAUF Schaltfläche 1140, eine LESEZEICHEN Schaltfläche 1150, EINSTELLUNGEN Schaltfläche 1160 und die BEENDEN Schaltfläche 1170.
  • Die Hauptmenükette 1100 ist so angeordnet, um das HTML Dokument (HTML hyper-text markup language = Hypertext-Auszeichnungssprache), das auf dem Bildschirm 1101 dargestellt werden soll, zu überlagern. In der 6a wird kein HTML Dokument gezeigt und der Bildschirm 1101 ist, abgesehen von der Hauptmenükette, leer.
  • Der Web Browser schliesst einige Präferenzen, die vom Benutzer gesetzt werden können, ein. Der Browser schliesst eine Möglichkeit zum bestimmen mehrere Benutzerprofile ein.
  • Der Benutzer hat eine Steuerung mit der er zwischen Objekten auf dem Bildschirm 1101 navigieren, Objekte hervorheben und Objekte wählen kann. Im vorliegenden Beispiel ist die benutze Steuerung eine Fernbedienung 1180. Die Zahlentasten 1181 werden zur Eingabe von Daten benutzt; das Schreibmarkentastenfeld (cursor keypad) 1182 wird zu Navigieren und die Bildfläche herum benutzt. Das Schreibmarkentastenfeld 1182 beinhaltet eine AUF Taste 1183, eine AB taste 1184, eine LINKS Taste 1185, eine RECHTS Taste 1187. Das Schreibmarkentastenfeld 1182 beinhaltet auch eine WAHL Taste 1186 mit der Objekte auf dem Bildschirm angewählt werden können.
  • Die AUF Taste 1183 und die AB Taste 1184 werden zur Bewegung des Blickfeldes (focus) verwendet, in diesem Beispiel eine Hervorhebung nach oben und unten in der Kette 1100, um einzeln die Schaltflächen 1110, 1120, 1130, 1140, 1150, 1160 und 1170 hervorzuheben. Wenn eine Schaltfläche hervorgehoben wurde, kann sie durch Benutzen der Taste 1186 angewählt werden.
  • Wenn eine HTML-seite angezeigt wird, ruft jede Taste der Fernbedienung die Kette 1100 (Symbolleiste) auf. Die Kette 1100 kann auch durch den Benutzer ein-und ausgeblendet werden. Bei einer Einstellungsoption wird die Kette 1100 automatisch versteckt, wenn eine HTML Seite angezeigt wird und der Benutzer wählt AUF in der Kette 110, wenn er zu einer anderen HTML-Seite wechseln will.
  • Die 7 zeigt die Bildschirmanzeige der 6a mit einem geöffneten HTML Dokument. Informationen zu dem offenen Dokument werden im Textfeld 1112 gegeben, das in der Kette mit der Schaltfläche NEU LADEN/STOP 1110 verknüpft ist. Man kann erkennen, dass die Verbindungen mit der Kette 1114 zwischen den Schaltflächen dem Benutzer visuell anzeigen, dass er sich zwischen den Schaltflächen in der Richtung der Verbindungen hin und her bewegen kann.
  • Die 6a zeigt die hervorgehobene NEU LADEN/STOP Schaltfläche (das hervorgehobene Symbol (icon) für NEU LADEN/STOP ist weiss auf dunklem Hintergrund anstelle von dunkel auf weissem Hintergrund wie in der 7, wo es nicht hervorgehoben ist). Das HTML Dokument kein durch Drücken des WAHL Knopfes 1186, wenn die NEU LADEN/STOP Schaltfläche hervorgehoben ist, neu geladen werden.
  • Der Benutzer bewegt die Markierung (highlight) die Kette 1100 nach unten unter Benutzung des AB Knopfes 1184. In der 7 wird dann die VORHER Schaltfläche 1120 hervorgehoben. Die 8 zeigt, wenn die Markierung auf der VORHER Schaltfläche 1120 ist, erscheint ein "Tooltip" (Quickinfo) einschliesslich einer Textbox 1122 auf dem Bildschirm. Im vorliegenden Beispiel erscheint der Tooltip sobald das entsprechende Symbol hervorgehoben wird. Eine Präferenz kann eingestellt werden, so dass der Tooltip nach einer Verzögerung erscheint, wenn die Schaltfläche hervorgehoben wird. Die Textbox 1122 schliesst das Wort VORHER ein, um die Funktion der VORHER Schaltfläche 1120 anzuzeigen. Durch Betätigen der VORHER Schaltfläche durch Drücken des WAHL Knopfes 1186 bewegt sich der Browser zu der zuvor angezeigten Seite.
  • In der 9 wird die Markierung abwärts zur WEITER Schaltfläche 1130 bewegt und nach kurzer zeit erscheint ein Tooltip einschliesslich einer Textbox 1132 mit dem Wort "WEITER", um den Benutzer zu unterstützen.
  • In der 10 wird die Schaltfläche VERLAUF 1140 hervorgehoben und der damit verbundene Tooltip 1142 erscheint mit dem Wort "VERLAUF". Die VERLAUF Schaltfläche 1140 hat mehr als nur eine Funktion und so ruft beim Aktivieren des Knopfes WAHL 1186 auf dem Steuertastenfeld eine Unterkette 1144 hervor, die weitere Optionen in Bezug auf die VERLAUF Funktion anbietet. Die Unterkette 1144 ist in der 11 dargestellt. Die Unterkette 1144 schliesst zusätzliche Schaltflächen, einschliesslich einer ANZEIGE Schaltfläche 1146 und einer HINZUFÜGEN Schaltfläche 1148 ein. Der Benutzer bewegt sich entlang der Unterkette 1144, in dem er die Knöpf RECHTS und LINKS 1187, 1185 benutzt. Auf der Bildfläche der 11 ist die Schaltfläche ANZEIGE hervorgehoben und ein Tooltip (Quickinfo) 1147 erscheint, um dem Benutzer mitzuteilen, dass die Schaltfläche ANZEIGE hervorgehoben wurde. Es ist anzumerken, dass die Tooltips 1147, die mit der Hauptkette 1100 verknüpft sind, auf der rechten Seite der Kette 1100 erschienen sind; die Tooltips für die Unterkette erscheinen über der Unterkette.
  • Die Grösse des Kastens für den Tooltip ist an die Länge des Wortes oder der Wörter, die angezeigt werden, angepasst. Wo verschiedene Sprachpräferenzen eingestellt werden können, wird die Grösse des Kastens für den Tooltip vorzugsweise an die Länge des Wortes in der gewählten Sprache angepasst.
  • Die 12 zeigt die Bildschirmanzeige wie man sie erhält, wenn die ANZEIGE Schaltfläche ausgewählt wurde. Ein ANZEIGE VERLAUF Fenster 1141 erscheint auf dem Bildschirm mit einer Überschrift 1143 (hier wurde die französische Sprachoption für die Überschrift ausgewählt) und zeigt Einzelheiten 1145 von vorangegangenen Seiten, die vom Benutzer betrachtet wurden. Der Benutzer kann im Text nach oben und nach unten blättern und eines der Details 1145 hervorheben, indem er den Knopf WAHL 1186 drückt. Die Knöpfe RECHTS und LINKS werden zum Hervorheben der OK oder LÖSCHEN Knöpfe 1149, 1149' benutzt.
  • Die 13 zeigt die hervorgehobene HINZUFÜGEN Schaltfläche 1148 und ihren verknüpften Tooltip (Quickinfo). Die HINZUFÜGEN Schaltfläche wird benutzt, um die gegenwärtig gezeigte Seite der Verlaufsliste hinzuzufügen.
  • Die 14 zeigt die hervorgehobene LESEZEICHEN Schaltfläche 1150 und den mit ihr verknüpften Tooltip 1151. In der 15 wurde die LESEZEICHEN Schaltfläche 1150 ausgewählt und die LESEZEICHEN Unterkette 1152 ist einschliesslich des Tooltips 1151, der ANZEIGE, HINZUFÜGEN und EDITIEREN Schaltflächen 1153, 1154, 1155, 1156 dargestellt. In der 15 ist die ANZEIGE Schaltfläche 1153 und ihr Tooltip dargestellt. Die ANZEIGE Schaltfläche 1153 ist ausgewählt und das ANZEIGE Fenster 1157 wird gezeigt (siehe 16) (Man kann erkennen, dass, aus Gründen der Übersichtlichkeit, die Lesezeichen Unterkette 1152 nicht dargestellt wird, wenn das Anzeige-Fenster 1157 auf der Bildfläche erscheint). Das ANZEIGE Fenster 1157 beinhaltet eine Überschrift und eine Textbox zum Blättern und listet die Lesezeichen auf. Was das ANZEIGE/VERLAUF Fenster anbetrifft, so schliesst das Fenster die OK und LÖSCHEN Tasten ein. Das Schreibmarkentastenfeld 1182 wird eingesetzt, um um das Fenster herum zu navigieren und ein Lesezeichen auszuwählen, wenn erwünscht.
  • In der 17 ist die HINZUFÜGEN Schaltfläche hervorgehoben und ihr Tooltip ist dargestellt. Wenn die HINZUFÜGEN Schaltfläche ausgewählt wird, wird das HINZUFÜGEN Fenster gezeigt (sieh 18). Das HINZUFÜGEN Fenster 1158 beinhaltet zwei Kasten zur Texteingabeund zur Eingabe der URL des Lesezeichens und ihren Titel. Daten werden unter Verwendung der Nummerntasten 1181 eingegeben (zum Beispiel unter Benutzung des Bildschirmtastenfeldes, das hier beschrieben wird). Das Fenster schliesst auch die OK und LÖSCHEN Tasten, wie oben beschrieben, ein. Der Benutzer navigiert zwischen den Texteingabefeldern und den OK und LÖSCHEN Tasten, in dem er den Kursor 1182 (Schreibmarke) benutzt.
  • Die 19 zeigt die hervorgehobene LÖSCHEN Schaltfläche 1155 und ihren Tooltip. Durch Auswahl der LÖSCHEN Schaltfläche 1155 können Lesezeichen gelöscht werden.
  • Die 20 zeigt die hervorgehobene EDITIER Schaltfläche 1156 und ihren Tooltip. Durch Auswahl der EDITIER Schaltfläche 1156 können Lesezeichen editiert werden.
  • Die 21 zeigte eine wechselnde Form der Lesezeichen Unterkette 1152, bei der der Lesezeichen Tooltip 1151 nicht dargestellt wird. Dies kann Platz auf dem Bildschirm sparen, insbesondere wenn die Unterkette lang ist. Das Erscheinungsbild des Tooltips ist eine Option die vom Benutzer gewählt werden kann.
  • Die 22 die hervorgehobene Schaltfläche EINSTELLUNGEN 1160 und ihren Tooltip 1161. Wenn EINSTELLUNGEN ausgewählt wird, wird das Authentifizierungsfenster 1165 dargestellt (siehe 22), das den Benutzer auffordert sich zu identifizieren und das Benutzerpasswort einzugeben, bevor die Einstellungen geändert werden können. Das Authentifizierungsfenster 1165 schliesst zwei Texteingabefelder für die Eingabe des Benutzernamens und des Passwortes ein, die mit den Nummerntasten 1181 und den tasten OK und LÖSCHEN eingegeben werden können. Wenn einmal der korrekter Benutzername und das Passwort in das Authentifizierungsfenster 1165 eingegeben worden sind und die OK Taste gedrückt wurde, wird die Unterkette der Einstellungen 1162 angezeigt, siehe dazu die 24
  • Die Unterkette 1162 der Einstellungen schliesst eine MODEM Schaltfläche 1163 und eine BROWSER Schaltfläche 1164 ein. Die 24 zeigt die hervorgehobene MODEM Schaltfläche 1163 mit dem verknüpften Tooltip. Durch Auswahl der der MODEM Schaltfläche 1163 können die Einstellungen für das Modem geändert werden. Die 25 zeigt die hervorgehobene BROWSER Schaltfläche 1164 und der dazugehörige Tooltip. Wenn die BROWSER Schaltfläche 1164 ausgewählt wurde, wird das Browserfenster 1166 angezeigt, siehe dazu die 26. Wieder navigiert der Benutzer um die Objekte im Fenster mit den Kursortasten 1182 herum. Die Objekte im Browserfenster schliessen eine Klappfenstertabelle 1167 für FARBE. Durch hervorheben der Tabellenüberschrift und durch Wahl mit den Kursortasten 1182, erscheinen die Elemente in der Tabelle und der Benutzer kann den Kursor in der Tabelle nach oben und nach unten bewegen und eine neue Browserfarbe mit dem Kursor wählen. Auf ähnliche Weise kann die Textsprache des Browsers in der Klappfenstertabelle 1168 gewechselt werden. Durch Bewegen des Hervorhebungszeichens auf Tooltipauswahl und durch Drücken der Wahltaste 1186, kann der Tooltip ein- und ausgeschaltet werden. Das Fenster schliesst wie zuvor die OK und WAHL Schaltflächen ein.
  • Die 27 zeigt die hervorgehobene VERLASSEN Schaltfläche 1170 und den dazugehörigen Tooltip 1171. Wenn die VERLASSEN Schaltfläche 1170 ausgewählt wurde, erscheint die Unterkette für VERLASSEN 1172 (siehe dazu die 28). In der 28 ist die BESTÄTIGEN Schaltfläche 1173 hervorgehoben und der dazugehörige Tooltip wird angezeigt. Wenn der Benutzer den Webbrowser verlassen möchte, wählt er die BESTÄTIGEN Schaltfläche 1173. Wenn der Benutzer die Auswahl für VERLASSEN löschen möchte, dann wählt er die LÖSCHEN Schaltfläche 1174 aus, die in der 20 mit dem Tooltip hervorgehoben ist.
  • Alternative Gestaltungen der Hauptmenükette 110 können eingesetzt werden, wobei die Form der einzelnen Schaltflächen und die Textur verändert werden können, vorzugsweise ohne die Gesamtform der Kette zu verändern. Die Farbe kann ebenfalls geändert werden. Die Veränderungen können als Optionen im EINSTELLUNGEN – Menü verfügbar gemacht werden, wobei die Form und die Textur der Kette als Ganzes geändert werden, um dem Browser ein einheitliches Aussehen (Oberfläche) zu verleihen.
  • Die Schaltflächen können zum Beispiel eckig, rund, rautenförmige sein oder auch andere Formen haben, vorzugsweise mit einer Textur, um eine dreidimensionales Erscheinungsbild zu erzeugen. Das Erscheinungsbild der Verknüpfungen zwischen den Schaltflächen können so gestaltet werden, dass sie mit dem Erscheinungsbild der Schaltflächen übereinstimmen oder alternativ diese ergänzen. Das Erscheinungsbild der Verknüpfungen kann auch so gewählt werden, dass sie eine strukturelle Einheitlichkeit ausstrahlen, um die Wahrnehmung des Benutzers zu erhöhen und zu ihm zu zeigen, dass die Schaltflächen sinnvoll untereinander verknüpft sind.
  • Das bogenförmige Aussehen der Kette, wie sie in den 630 gezeigt wird, wird vom Entwickler gewählt und ist vorzugsweise vom Benutzer nicht zu verändern. Andere Konfigurationen der Schaltflächenkette und der Unterketten sind möglich, so wie zum Beispiel eine gerade Kette, oder eine halbkreisförmige Kette. In anderen Ausführungsbeispielen kann die Schaltflächenfolge und Konfiguration der Schaltflächenkette und der Unterketten durch den Benutzer verändert werden.
  • Der Empfänger/Dekoder ermöglicht Internetnavigation und auch das Lesen von Emails.
  • Nun soll die die Graphikwerkstatt zum Modellieren eines Navigators behandelt werden.
  • Die Graphikwerksatt zur Modellierung eines Navigators ist eine Einheit oder eine Sammlung von elementaren Graphikobjekten. Jedes Graphikobjekt ist die bildliche Darstellung einer der Funktionen des Navigators auf einem Bildschirm. Jede Funktion des Navigators kann durch ein Graphikobjekt dargestellt werden, oder durch eine Abfolge von Bildern oder Graphikobjekten (ein Animation), oder einer Ansammlung von Graphikobjekten (zum Beispiel ein Bild im Hintergrund der Bildschirmfläche oder ein Bild im Hintergrund eines Dialogfensters dem andere Graphikobjekte hinzugefügt werden können). Es gibt zwei interne Formate für Bilder: MPEG2 und PIXMAP-GRL.
  • Das PNG Format wird bei elementaren Graphikobjekten, die die Funktionalität des "Navigationssystems" darstellen, eingesetzt: Laden, Verbinden, Vorheriges Dokument, Nächstes Dokument, Verlassen, und so weiter.
  • Um ein nicht reckeckiges Bild auf der Graphikebene zu drucken, ist es notwendig eine Ausschnittmaske zu verwenden, die die sichtbaren (bedeutenden) Zonen bestimmt. Diese Maske muss vom Designer in Form einer Bitmap zur Verfügung gestellt werden: diese Maske wird aus Gründen der Leistungsbeschränkung nicht vom Programm geplant.
  • Die beiden Stufen zum Hinzufügen einer Ausschnittsmaske ist zuerst die Stufe, wo ein Bild dargestellt wird und dann auf der graphischen Ebene, das Ausfüllen eines Rechtecks der gleichen Abmessung und Position des Bildes mit der Folienfarbe, während die Ausschnittmaske angewendet wird, um den nutzbaren Teil des Bildes sichtbar zu machen.
  • Das PIXMAP-GRL Bildformat wird bei Graphikobjekten, die die Navigatorressourcen oder die Benutzerschnittstelle anzeigen, verwendet: vertikale Bildlaufleiste, Tabellen, Einfachwahl, Mehrfachwahl, und so weiter.
  • Die Objekte vom PIXMAP-GRL Typ haben variable Abmessungen (jedes Graphikobjekt oder Modell ist in einfache, elementare Objekte zerlegt) und kann mit Farben versehen werden (wechselnde Farben).
  • Das PIXMAP-GRL Bildformat kann man erhalten, in dem man irgendwelche anderen Graphikformate, die bestens bekannte Verfahren (wie zum Beispiel BMP, JPEG, GIF, PNG, und so weiter) einsetzen, konvertiert.
  • Die Zerlegung von Graphikobjekten in graphische Elemente wird nach einer Matrix durchgeführt (zum Beispiel 3 × 3, 4 × 4, oder 1 × 4), was von dem dazustellenden Objekttyp abhängt.
  • Die Palette enthält 256 Farben. Diese Palette wird bei Graphikobjekten des Typs PIXMAP und PNG eingesetzt. In einer Palette gibt es zwei Teile. Der erste Teil besteht aus 26 Farben, die zur Erleichterung der Darstellung und dem Design der Anwendungen vorgesehen sind. Der zweite Teil besteht aus 230 nicht veränderbaren Farben, die zum Einsatz bei Anwendungen zur Verfügung stehen.
  • Die maximale Grösse des Bildschirms beträgt 720 Pixel in der Breite und 576 in der Höhe. Um die Sicht bei einfachen Fernsehgeräten sicher zu stellen, ist es notwendig die Grösse auf 592 Pixel in der Breite und 480 Pixel in der Höhe zu beschränken. Damit hochwertige Fernsehgeräte voll genutzt werden können, wird der Benutzer die Option zur Anpassung der Grösse des Bildschirms haben. Bei Internetnavigatoren sind die Seiten im Allgemeinen mit 600 Pixeln in der Breite und 400 Pixeln in der Höhe konzipiert.
  • Die allgemeinen Attribute eines Graphikobjekts werden nun im Einzelnen erörtert.
  • Ein Graphikobjekt (gemäß dessen, was es darstellt) hat eine genaue Grösse. Die genaue Grösse wird vom Designer bestimmt und dient als Leitlinie für die Darstellung.
  • Jedes Graphikobjekt kann in der Grösse angepasst werden. Je nach Art des Graphikobjekts ist es möglich die Höhe und die Breite anzupassen. Das Verfahren zur Anpassung der Grösse eines Graphikobjekts nach PIXMAP-GRL folgt den Empfehlungen der Zerlegung des Graphikobjekts. Das Verfahren zum Zeichnen von Graphikobjekten mit variabler Grösse wird später erörtert werden.
  • Das Bild des Graphikobjekts auf dem Bildschirm wird durch eine mehrfarbige Form wiedergegeben; das Hintergrundbild sollte wenn möglich einen Farbbereich haben (flüssig, der Effekt von Knetmasse).
  • Das Bild des Graphikobjekts muss nicht nach seiner Position (Koordinaten), oder nach der Reihenfolge des folgenden oder vorhergehenden Objektes auf dem Bildschirm, gezeichnet werden: der Begriff einer fliessenden Position des Objekts. Jedes Objekt ist definitionsgemäss von anderen Objekten unabhängig (ausser einem Hintergrundbild).
  • Der Text wird durch das Programm gemäss der gewählten Sprache gedruckt. Dies unterstellt, dass kein Bild Text enthalten sollte. Die Gestaltung eines Objektes liegt in den Händen des Designers. Das allgemeine Erscheinungsbild kann einem spezifischen Thema entsprechen (zum Beispiel Startrek, 007, die Simpsons).
  • Der Aspekt des Blickfelds (focus) kann durch mehrere Mittel dargestellt werden: ein rechteckiger Fokus auf dem Graphikobjekt; einem Fokus der den Hintergrund (mit einer anderen Farbe) des Graphikobjekts hervorhebt, oder mit einem Fokus der die Form des Graphikobjekts färbt.
  • Der Normalzustand (ohne Fokus, aktiv, nicht gedrückt) ist die Basis des Graphikobjekts.
  • Der gesperrte Zustand eines Graphikobjekts kann durch verschieden Mittel dargestellt werden: Die form des Objekts in grau (oder mit Zierleiste); Überlegen mit einem markanten Verbotszeichen auf dem in Frage stehenden Graphikobjekt; Einstellen des Hintergrunds des Objekts auf eine Farbe oder das Objekt unsichtbar machen.
  • Der unterdrückte Zustand des Graphikobjekts ist die graphische Darstellung eines Objekts das den Fokus aufgrund eines Klicks erhält, bevor jedoch die Schaltfläche freigegeben ist. Die Darstellung kann eine umgekehrte Darstellung des Objekts sein, oder es kann derselbe wie der fokussierte Zustand sein.
  • In Bezug auf einen Flip-Flop Darstellungseffekt kann ein Bild oder ein Piktogramm (icon) zwei Sichteffekte beinhalten: einen der den Text darstellt (zum Beispiel die Hinterseite einer Euromünze), der andere, der ein Symbol zeigt (die Vorderseite oder Kopfseite). Dieser visuelle Effekt wird animiert durch ein Programm, das über einem Taktgeber läuft; ein Taktgeber wird gestartet bei der Darstellung des ersten Piktogramms und sobald der Taktgeber den vorbestimmten Wert erreicht, findet der Wechsel des Piktogramms statt: entweder wird ein zweites Piktogramm oder eine Folge von Piktogrammen, die einen progressiven Übergang darstellen, gezeigt.
  • Nun wird die Zerlegung eines Graphikobjekts des Typs PIXMAP-GRL beschrieben. unter Bezug auf die 31 bis 38. Diese Figuren zeigen Beispiele der elementaren graphischen Objekte, die bei dem Matrix- (12011209), (12111219, und so weiter) eingesetzt werden und dem entsprechenden Graphikobjekt, das gebildet wird, wenn die elementaren Objekte in der passenden Art und Weise (1210, 1220, und so weiter) kombiniert werden. Die Figuren wurden ungefähr mit Faktor 4 vergrössert.
  • Um ein Graphikobjekt in der Grösse anzupassen (vergrössern oder verkleinern), wird jedes Graphikobjekt (ein Design, welches vom Graphikkünstler erstellt wurde) graphische Elemente in Matrixform wie Puzzleteile aufgeteilt. Jedes Element wird dann gekennzeichnet entsprechend der 4 Haupteckpunkte und dem Zentrum (Nord, Süd, West, Ost, Zentrum, Nord-Ost, Nord-West, Süd-Ost. Süd-West. Mittelpunkt des Zentrums). Die Breite und Höhe der Matrix hängen von der Art des Objekts ab.
  • Bestimmte graphische Elemente (Puzzleteile) werden auf einmal gedruckt (die Ecken). Um das Objekt breiter oder höher zu machen, werden bestimmte Elemente auf wiederholte Art und weise gedruckt (n Mal Breite oder Höhe des jeweiligen Elements).
  • Graphikobjekte, die durch das Matrixzerlegungsverfahren (oder durch Fliesen) gebildet wurden, oder einen teil davon bilden, werden nun aufgelistet. Diese Graphikobjekte werden in dem HTML-Bereich gezeichnet.
    • – Schaltflächenbreite/ohne Text im aktiven Zustand (1210): 3 × 3 Matrix (12011209); Grösse der Elemente: 4 Pixel breit und hoch; Elemente zur Anpassung der Breite: Nord – Zentrum (1202), Zentrum (1205), Süd – Zentrum (1208); Elemente zur Anpassung der Höhe: West – Zentrum (1204), Zentrum (1215), Ost – Zentrum (1216).
    • – Schaltfläche mit/ohne Text im inaktiven, im grau gefärbten Zustand (1230): 3 × 3 Matrix (12211229); Grösse der Elemente: 4 Pixel breit und hoch; Elemente zur Anpassung der Breite: Nord – Zentrum (1222), Zentrum (1225), Süd – Zentrum (1228); Elemente zur Anpassung der Höhe: West – Zentrum (1224), Zentrum (1225), Ost – Zentrum (1226).
    • – "Ankreuzfeld", dargestellt mit/ohne Fokus und durchkreuzt/nicht durchkreuzt (34): 1 × 1 Matrix; Grösse der Elemente: 16 Pixel breit und hoch; Elemente zur Anpassung der breite: keine; Elemente zur Anpassung der Höhe: keine.
    • – Liste der Optionen, für eine Einzel- oder Mehrfachwahl (1252, 1253, 1254): 3 × 3 Matrix (12411249); Grösse der Elemente: 4 Pixel breit und hoch; Elemente zu Anpassung der Breite: Nord – Zentrum (1242), Zentrum (1245), Süd – Zentrum (1248); Elemente zur Anpassung der Höhe: West – Zentrum 1244), Zentrum 1245), Ost – Zentrum (1246); kann einen Auf (1250) und/oder ab Indikator (1251) beinhalten; Position: x. y Ausgangspunkt + Breite und Höhe des Auf Indikators. Auf Indikator (1250): 1 × 1 Matrix, Grösse der Elemente: 16 Pixel breit und 8 Pixel hoch; Elemente zur Anpassung der Breite: keine; Elemente zur Anpassung der Höhe: keine; Position; y Ausgangspunkt, in der Höhe zentriert.
  • Ab Indikator (1251): 1 × 1 Matrix; Grösse der Elemente: 16 Pixel breit und 8 Pixel hoch; Elemente zur Anpassung der Breite: keine; Elemente zur Anpassung der Höhe: keine; Position: y Ausgangspunkt + Höhe des Auf Indikators + Höhe der Liste, in der Höhe zentriert.
    • – Tabelle (zum Zeichnen der Formen) (1260) 3 × 3 Matrix (1270); Grösse der Elemente: 2 Pixel breit und hoch; Elemente zur Anpassung der Breite: Nord – Zentrum, Zentrum, Süd – Zentrum; Elemente zur Anpassung der Höhe: West – Zentrum, Zentrum, Ost – Zentrum; kann eine Zelle beinhalten.
    • – Zelle (zum Schreiben eines Eintrags in ein Formular) (1280) 3 × 3 Matrix (1290); Grösse der Elemente: 2 Pixel breit und hoch; Elemente zur Anpassung der Breite: Nord – Zentrum, Zentrum, Süd – Zentrum; Elemente zur Anpassung der Höhe: West – Zentrum, Zentrum, Ost – Zentrum; Kann Text oder ein Bild beinhalten; Position: x, y Ausgangspunkt + Dicke des Tabellenrahmens.
    • – Text mit Rahmen (Textfeld) (1300) 3 × 3 Matrix (1310); Grösse der Elemente: 2 Pixel breit und hoch; Elemente zur Anpassung der Breite: Nord – Zentrum, Zentrum, Süd – Zentrum; Elemente zur Anpassung der Höhe: West – Zentrum, Zentrum, Ost – Zentrum; kann Text beinhalten.
    • – Rahmen (1320) 3 × 3 Matrix (1325); Grösse der Elemente: 4 Pixel breit und hoch; Elemente zur Anpassung der Breite: Nord – Zentrum, Zentrum, Süd – Zentrum; Elemente zur Anpassung der Höhe: West – Zentrum, Zentrum, Ost – Zentrum.
    • – Vertikale Bildlaufleiste (1330) 1 × 3 Matrix (1270); Grösse der Elemente: 8 Pixel breit und hoch; Elemente zur Anpassung der Breite: keine; Elemente zur Anpassung der Höhe: Zentrum; mit dem Rahmen verbunden (abhängig von der Position des Rahmenobjekts); beinhaltet das Indikatorgraphikobjekt des Indexes im Verhältnis zur Höhe.
    • – Horizontale Bildlaufleiste (1340) 3 × 1 Matrix; Grösse der Elemente: 8 Pixel breit und hoch; Elemente zur Anpassung der Höhe: keine; Elemente zur Anpassung der Breite: Zentrum; mit dem Rahmen verbunden (abhängig von der Position des Rahmenobjekts); beinhaltet das Indikatorgraphikobjekt des Indexes im Verhältnis zur Breite.
    • – Horizontale Linie: 1 × 1 Matrix, Grösse der Elemente: 4 Pixel breit und hoch.
    • – Vertikale Linie: 1 × 1 Matrix, Grösse der Elemente: 4 Pixel breit und hoch.
  • Eine Zusammenfassung aller Graphikobjekte in der Web-Browserschnittstelle und der mit ihr verknüpften Funktion werden nun aufgeführt.
  • Was nun folgt ist eine nicht erschöpfende Aufstellung der Graphikobjekte, die zur Konstruktion eines Navigatormodells im Dekoder notwendig sind. Die Tabelle, die hier gezeigt wird, führt die Objekte Element für Element und die Liste der Objekte, die aus mehreren graphischen Elementen zusammengesetzt sind, auf.
  • Figure 00590001
  • Figure 00600001
  • Figure 00610001
  • Figure 00620001
  • Figure 00630001
  • Figure 00640001
  • Figure 00650001
  • Die folgende Tabelle beschreibt die verschiedenen elementaren Graphikobjekte, die ein Graphikobjekt bilden, das eine veränderliche Grösse der graphischen Abbildung haben kann. Die Nebeneinanderstellung elementarer Objekte zur Herstellung eines komplexen Objekts wird durch das Programm (Wiederherstellung des Puzzles) bewerkstelligt.
  • Figure 00660001
  • Figure 00670001
  • Figure 00680001
  • Figure 00690001
  • Figure 00700001
  • Navigatorfunktionen
    Figure 00700002
  • Figure 00710001
  • Die Java API für den Webbrowser wird nun beschrieben.
  • Hier folgt nun die Aufstellung der Java Pakete, die auf der Ebene der Navigatoranwendung im Dekoder gebraucht werden. Die Liste ist in zwei Teile aufgeteilt: in die AWT (Abstract Window Toolkit – abstrakter Fenster-Werkzeugkasten) Klassen der JDK 1.1 und die Java Schnittstellenklassen der verschiedenen Dienste, die im nativen C-Kode geschrieben sind.
  • Figure 00720001
  • Das Navigatorpaket, das Browserpaket genannt wird, fasst verschiedene Pakete zusammen: das Browser-Zeichenpaket, das Dienste anbietet, die es erlauben ein HTML Dokument abzurufen und innerhalb des Dokumentbrowsers zu navigieren; und das Mediawebtv Paket, das den Aufbau einer Internetverbindung mit der Authentifizierung des Benutzers erlaubt.
  • Nun wird die Struktur der browser.drawer.MhwBookmark Klasse beschrieben.
  • Eine Lesezeichenliste ist einem Benutzer zugeordnet. Es gibt innerhalb der Lesezeichenliste keine Hierarchie.
    Constructor: MhwBookmark(subscriberId): öffnet eine bestehende Lesezeichenliste
    Constructor: MhwBookmark(subscriberId): erzeugt eine neue Lesezeichenliste
    deleteBookmark(): löscht eine Lesezeichenliste.
    add(URL, Name): fügt eine Eingabe hinzu
    remove(itemNumber): löscht eine Eingabe
    modify(itemNumber, URL, Name): ändert eine bestehende Eingabe
    getList(): gibt eine Liste der Eingaben in die Lesezeichenliste (keine Hierarchie) zurück
    getItemCount(): gibt die Anzahl der Eingaben in die Lesezeichenliste
    isFull(): boolesch – ist Liste voll?
    isEmpty(): boolesch – ist Liste leer?
    setHomePage(itemNumber)
    setHomepage(): itemNumber
    goToURL(sessionNumber): lädt das Dokument, das der gewählten Eingabe entspricht
  • Im Falle dass es einen Fehler gibt, wird eine Fehlermeldung durch die Methoden add(), remove(), modify(), getList(), setHomepage() zurückgegeben (oder einem Vorfall, wenn die Ausprägung asynchron ist).
  • Die browser.drawer.MhwHistory Klasse erlaubt das Navigieren von einem Dokument zum anderen innerhalb einer Liste von zuvor gezeigten Dokumenten. Es gibt in der Verlaufsliste keine Hierarchie. Die Einzelheiten der Klasse werden nun aufgeführt.
    Constructor: MhwHistory(sessionNumber)
    getList(): gibt die Verlaufsliste zurück (keine Hierarchie)
    getCurrent(): erhält die gegenwärtige URL
    setCurrent(indexNumber): verändert die gegenwärtige URL
    getNext(): erhält die URL der nächsten Eingabe
    getPrevious(): erhält die URL der vorangegangenen URL
    getItemCount(): gibt die Anzahl der Eingaben im Verlauf zurück
    addEventsRegister(): abonniert Fehlerereignisse aus der Verlaufsliste
    removeEventsRegister()
  • Im Falle, dass es einen Fehler gibt, wird eine Fehlermeldung durch die Methoden getList(), getNext(), getPrevious(), setCurrent() zurückgegeben (oder einem Vorfall, wenn die Ausprägung asynchron ist).
  • Die Ereignisse sind: addEventsRegister(sessionNumber): [abonniert die Fehlerereignisse der Verlaufsliste]; and removeEventsRegister(sessionNumber) [abbestellen].
  • Die browser.drawer:MhwDocument Klasse erlaubt das laden und Anzeigen eines HTML Dokumentes im Dekoder. Die Einzelheiten der Klasse werden nun erläutert.
    Constructor: MhwDocument(sessionNumber)
    freeze(): hält die Anzeige des aktuellen Dokuments (Laden des Dokuments geht weiter)
    unfreeze(): startet die Anzeige des aktuellen Dokuments erneut
    isPending(): falls das Dokument gerade geladen wird
    stop(): hält das Laden des aktuellen Dokuments an
    reload(): lädt das Dokument erneut
    getDocumentInfo(): gibt den Titel und die URL des Dokumentes zurück
    addStatusRegister(): abonniert die Information zum Zustand und Ende des Ladens
    goToURL(url): lädt eine Webseite
    submit(login, password, URL): reicht Authentifizierung zum Laden einer Webseite ein
    getStatisticsDocument(): gibt die Anzahl der laufenden Anfragen und der URL des gerade zu ladenden Dokuments zurück
  • Die browser.mediawebtv.MhwConnection Klasse vereinigt die Benutzerverbindungs- und Authentifizierungsfunktionalität. Die Einzelheiten der Klasse werden nun erörtert:
    Constructor: MhwConnection(subscriberId)
    start(): fragt Verbindung an
    stop(): fragt Verbindungsende an
    cancel(): löscht die Verbindung
    setAuthentificationType(type): setzt den
    Authentifizierungsmodus auf den CANAL+ Modus (msd/Passwort) oder durch Anmeldung/Passwort)
    getAttributes(): führt die Verbindungsattribute zurück
    setAttributes(attributes): verändert die Verbindungsattribute
    setPassword(password): verändert das Passwort
    setPassword(password): erhält das Passwort
    setRutoCheckPassword(bAutoCheck): legt fest, ob das Passwort automatisch mit dem Bestätigungspasswort geprüft werden muss
    getAutoCheckPassword(bAutoCheck): liest fest, ob das Passwort automatisch mit dem Bestätigungspasswort geprüft werden muss
    getIPClient(ipaddress, netmask): liest die gewählte IP und das Netzwerkmaskenpaar
    setIPClient(ipaddress, netmask): verändert die gewählte IP und das Netzwerkmaskenpaar
    getDNS(dns1, dns2): liest die primären und sekundären DNS Adressen
    setDNS(dns1, dns2): verändert die primären und sekundären DNS Adressen
    getURLConfigServer(url): liest die Adresse des Konfigurationsservers
    setURLConfigServer(url): verändert die Adresse des Konfigurationsservers
    getQueryCommand(queryCmd, typeOfQuery): liest nach Type die Anfrage, die an den Konfigurationsservers gesendet werden soll
    setQueryCommand(queryCmd, typeOfQuery): verändert die Anfrage nach typequeryAcquisitions(tableAcquisitions, typeOfAcquisitions, NumberOfAcquisitions): liest die Liste der Akquisitionen.
    startAcquisition(acquisitionId): startet einen Zukauf (Daten/Video)
    stopAcquisition(acquisitionId): hält einen Zukauf (Daten/Video) an
    addStatusRegister(): Abonnement ist über den Verbindungsstatus zu informieren.
  • Die Ereignisse sind: Verbindungsverlust; laufende Verbindung; aufgebaute Verbindung; Anforderung Verbindungsbestätigung; Verbindungsfehler; Modemstatus ein/aus; Initialisierung im Gange; Wählvorgang; Fehler, aber Modem ist an; Serverstatus; ungültiger Anschluss; ungültige URL; Anmeldefehler; und ungültiges Passwort.
    removeStatusRegister(): stellt Netzwerkverbindungsstatus ab
    isConnected subscriberId(): gibt boolesch zurück und dem Modem Status für verbunden/trennen
    isPending(): gibt boolesch für Modem beim Aufbau der Verbindung zurück
    getExtendedProviderUrl(providerUrl): liest den momentan abonnierten Anbieter
    setExtendedProviderUrl(providerUrl): ändert den momentan abonnierten Anbieter
  • Die browser.mediawebtv.MhwConfiguration Klasse verwaltet das profil jedes Benutzers und seine oder ihre Präferenzen. Die Einzelheiten der Klasse werden nun aufgeführt.
    Constructor: MhwConfoguration()
    readprofile(subscriberId): lese das Profil
    writeProfile(subscriberId, profile): schreibe das Profil
    readDefaultProfile(): lese das Standardprofil
    writeDefaultProfile(profile): verändert das Standardprofil
    getUserCount(): Anzahl der Nutzer
    newUser(profile): Identifizierung eines neuen Benutzers
    getLastConnect(): der letzte verbundene Nutzer
  • Die höchste Anzahl von Profilen ist momentan auf 5 festgelegt, aber dies stellt keine strenge Begrenzung dar; grösser Anzahl von Profilen können bei Bedarf gespeichert werden.
  • Im Falle eines Fehlers wird eine Fehlermeldung durch die Methoden WriteProfile() und writeDefaultProfile() (oder ein Ereignis, wenn das momentane Auftreten asynchron ist) zurück geschickt.
  • Die browswer.mediawebtv.MhwMultiSession Klasse erlaubt es eine Navigatorsession auszuwählen. Eine Session ist eine Instanz des Navigators, die automatisch durch eine andere Instanz eingeleitet wurde. Wenn der Navigator startet, wird eine Session erzeugt nach dem Aufbau einer authentifizierten Verbindung. Die Einzelheiten der Klasse werden nun erläutert.
    Constructor: MhwMultiSession
    getCurrentSessionNumber()
    setCurrentSessionNumber(int number)
    getPreviousSession()
    addSession(): giert die Anzahl der erzeugten Sessions zurück
    removeSession(int numSession)
  • Das Navigatormodell für den Dekoder wird nun in weiteren Einzelheiten beschrieben unter Bezug auf die 6a und 730.
  • Das hier vorgestellte Modell ist ein einfaches Beispiel eines Navigators und gibt eine allgemeine Idee der grundsätzlichen Funktionen. Es gibt vollkommene Freiheit auf der Ebene der graphischen Darstellung. Die einzige wichtige Eigenschaft sind die Zonen und Bilder innerhalb denen Funktionen der gleichen Art gruppiert sind und die allgemeine Benutzerschnittstelle.
  • Der Navigator verwendet alle verfügbaren Graphiken (MPEG, PIXMAP) des graphischen Studios. Die Bildschirmdarstellungen dieses Modells sind in Baumform organisiert und jede bildet zusammen eine Ansammlung unverzichtbarer Funktionen. Jede Funktion oder Option auf dem Bildschirm wird durch Bewegen eines Fokus angesteuert mit Hilfe von Pfeiltasten (auf der Fernbedienung) oder durch Einsatz der Tastatur mit einem Kursor /Zeiger. Die Auswahl einer Aktion wird durch einen Kontrollklick oder durch eine vorbestimmte Taste (zum Beispiel "OK") erzielt.
  • Wenn keine physische Tastatur vorhanden ist, um Text mit der Fernbedienung einzugeben, ist es notwendig, eine virtuelle Tastatur bereit zu stellen. Dies wird durch Bewegung des Fokus erreicht mit einer Möglichkeit schnell einzutippen durch Abbilden der Tasten der Fernbedienung auf der virtuellen Tastatur; mit anderen Worten: das Bild der Tasten auf der Fernbedienung wird sichtbar (in nachgezeichneter Form) mit Umrandung oder leicht undurchlässig auf dem Bild der virtuellen Tastatur. Die virtuelle Tastatur wird in weiteren Einzelheiten in diesem Dokument erfolgen.
  • Die 30 zeigt die Kette der obersten Ebene der Navigatorfunktionsschaltflächen (1410) mit einem Teil einer Webseite die daneben sichtbar ist (1411).
  • Der Hauptnavigatorbildschirm wird nun beschrieben unter besonderem Bezug auf die 30.
  • Die Navigatorfunktionen sind in mehreren Schichten zusammen gefasst. Der Hauptbildschirm zeigt eine vertikale Leiste (Hauptmenü) (1410), das aus einer Reihe von Schaltflächen zusammengesetzt ist: Neu laden/Stop (1401), vorherige Seite (1402), nächste Seite (1403), Verlauf kürzlich besuchter Seiten, Lesezeichen, verbinden/trennen, Konfiguration, Navigator verlassen (1408).
  • Die Navigator GUI (graphical user interface) graphische Benutzerschnittstelle (Hauptbildschirm) wird angezeigt, wenn eine Funktionstaste gedrückt wird (entweder auf der Fernbedienung oder auf der Tastatur). Wenn der GUI auf dem TV-Bildschirm erscheint, wird das HTML Dokument (1411) (welches der GUI überdeckt) in den Speicher geladen, aber die Aktualisierung des Dokumentes wird angehalten, um das Anzeigeverhalten des GUI nicht zu beeinflussen. Das HTML Dokument wird erneut angezeigt, wenn der Navigator GUI verlassen wird. Diese Einschränkung wird aufgehoben, wenn die Leistungsmerkmale eventuell zufrieden stellend sind, wobei die gleichzeitige Darstellung des HTML Dokuments und der graphischen Benutzerschnittstelle (GUI) ermöglicht wird.
  • Die graphische Benutzerschnittstelle (GUI) wird von der TV Bildschirmfläche auf Tastendruck (auf der Fernbedienung oder der Tastatur) verschwinden, oder durch Anklicken ausserhalb der GUI Schaltflächenbereiche. Die Anzeige des gegenwärtig zu ladenden oder im Cache-Speicher zu speichernden HTML Dokuments wird dann gestartet oder erneut begonnen.
  • Eine Schaltfläche ist in Wirklichkeit ein rechteckiger oder quadratischer Bereich (zum Beispiel 32 × 32 Pixel). Wenn der Graphikkursor einen Bereich berührt, erhält dieser Bereich (Fenster) den Fokus (vergleiche die Funktion EnterNotify(WindowId)).
  • Wenn die Schaltflächengraphik zum Beispiel einen Reifen darstellt, muss festgestellt werden, ob die gegenwärtige Position des Kursors tatsächlich die Pixel des Reifens abdeckt. Es ist daher notwendig, den Wert des Pixels im Kernbereich des Mauszeigers in der Ausschnittsmaske der Schaltfläche zu finden (durch Berechnung der relativen Position, getpixel() in der Ausschnittsmaske, dann den Pixelwert prüfen). Dieses Erkennungsverfahren erlaubt es die Prüfung zu verbessern, ob ein Klick ausgeführt, oder vor dem Beginn der Schaltflächenfunktion nicht ausgeführt wurde.
  • Wenn der Mauszeiger den rechteckigen oder quadratischen Bereich verlässt, dann verliert der Bereich den Fokus (vergl. LeaveNotify(WindowId)).
  • Die erklärende Schaltflächenübersicht wird nun im Einzelnen beschrieben.
  • Wenn der Mauszeiger oder der rechteckige Fokus mit der Schaltfläche, die eine Funktion darstellt, zusammenfällt, wird ein kurzer Satz (tooltip) angezeigt entweder waagerecht oder senkrecht, der die Funktion dieser Schaltfläche erläutert. Wenn die Schaltfläche entweder durch einen Mausklick oder durch eine Funktionstaste ausgewählt wird, erscheint eine Liste mit Schaltflächen, die die Untermenüoptionen enthalten. Das System der kurzen erklärenden Sätze (tooltips) wird auch bei den Schaltflächen der Untermenüs eingesetzt.
  • Navigation der Menüoptionen wird mit den Pfeiltasten auf der Fernbedienung oder der Tastatur erreicht. Die letzte Schaltfläche auf dem Hauptbildschirm, auf der der Fokus lag, wird für die nächste Anzeige des Hauptbildschirms gespeichert.
  • Nun wird die virtuelle Tastatur in weiteren Einzelheiten unter Bezug auf die 4245 erläutert.
  • Die 42 zeigt schematisch, wie die im Moment sichtbare virtuelle Tastatur (1501) auf dem zugrunde liegenden Gitter der virtuellen Tastatur (1501, 1506) abgebildet wird.
  • Die 43 zeigt eine typische Darstellung von Zeichen auf den Tasten einer virtuellen Tastatur.
  • Die 44 zeigt die Bilder, die bei der virtuellen Tastatur benutzt werden mit dem ersten (1545) und zweiten (1546) Nummernblock, die jeweils den Fokus besitzen (und auch verschiedene Arten von Fernbedienungen 1542 und 1543) zeigen.
  • Die 45 zeigt eine typische virtuelle Tastaturausführung mit typischen überlagerten Dimensionierungen.
  • Zuerst wird die virtuelle Tastatur als ein Werkzeug wahrgenommen, das von der Anwendung, bei der sie eingesetzt wird, unabhängig ist. Man kann sie innerhalb des Webbrowseranwendung und gleichermassen bei der Mailanwendung benutzen. Darüber hinaus ist ihr Aussehen vollständig von der betroffenen Anwendung unabhängig.
  • Die virtuelle Tastatur wird vom Zeitpunkt an, zu dem der Benutzer ein editierbares Gebiet auf dem Bildschirm wählt, angezeigt, wenn er keine wirkliche Tastatur, oder eine Fernbedienung mit Tastatur besitzt. Der Fokus wird auf das Ende des Textes in dem editierbaren Gebiet gelegt. Beim Drücken von "OK" (auf der Fernbedienung oder der virtuellen Tastatur), oder "Löschen (auf der virtuellen Tastatur) verschwindet er.
  • Die virtuelle Tastatur, die auf dem Bildschirm (1501) sichtbar ist, besteht aus drei Blöcken mit 10 Tasten (die drei Nummernblöcke der Fernbedienung darstellen), die Seite an Seite beieinander liegen (1502, 1503, 1504). Der Benutzer kann den Fokus (1505) mit den Pfeiltasten auf der Fernbedienung von einem Block zum anderen verschieben. Nachdem ein Block ausgewählt wurde, wird das entsprechende Zeichen, das auf der virtuellen Tastatur aufgedruckt ist, durch Drücken einer Taste auf dem Nummernblock der Fernbedienung eingegeben.
  • Der Benutzer kann auch die AUF- und AB-Pfeiltasten benutzen. Dies bringt die gleiche virtuelle Tastatur auf den Bildschirm, jedoch mit unterschiedlichen Zeichen auf den tasten (1506). Somit kann man durch Hin- und Herschalten zwischen einer Reihe von 5 virtuellen Tastaturen alle Zeichen eines westlichen Computers darstellen. Es ist auch möglich weitere Tastaturen hinzuzufügen, falls dafür Bedarf entstehen sollte.
  • Unter Bezug auf die 44 und um eine sofortige Beziehung zwischen den Nummernblöcken der Fernbedienung und dem Fokus der virtuellen Tastatur herzustellen, zeigt ein Überlagerungsbild der Fernbedienung den Fokus (1542, 1542). Somit kann der Benutzer leicht erkennen, dass nur ein Teil der Tastatur den Fokus besitzt und dass der Rest der Zeichen durch Hin- und Herbewegen des Fokus mit den Pfeiltasten erreicht werden kann. Die Tastatur ist gedanklich mit den letzteren Punkten aufgebaut.
  • Die Lösung mit einer virtuellen Tastatur nimmt wenig Bildschirmhöhe in Anspruch und erlaubt leicht die Anzahl verfügbarer Zeichen zu erweitern. Im Standardbetrieb wird die virtuelle Tastatur mit einem Miniaturalphabet dargestellt.
  • Bestimmte Schaltflächen haben wichtige Sonderfunktionen:
    • – "OK" auf der Fernbedienung zur Bestätigung der aktuellen Wahl (wenn das Feld nur eine Zeile hat, bestätigt auch das ¶ Zeichen (1521) oder kann alternativ so gewählt werden, dass es keine Funktion besitzt; andernfalls entspricht es nur zur Zeilenumschaltung).
    • – "Löschen" (1522) auf der virtuellen Tastatur, zum Verlassen des Werkzeugs ohne Bestätigung (die Veränderungen, die nach dem Öffnen der Tastatur gemacht wurden, gehen verloren).
    • – "Rücktaste" (1523) auf der virtuellen Tastatur, zum Löschen des zuletzt eingegeben Zeichens.
    • – Die Auf, Ab, Links, Rechts Pfeiltasten, um in der Editierzone sich hin- und herzubewegen.
    • – "Tab" (1520) auf der virtuellen Tastatur, zum Einfügen einer konfigurierbaren Anzahl von Zwischenräumen "in einem Rutsch" (vier standardmässig).
  • Die Tastatur befindet sich immer im "Einfügen" Modus.
  • Ein Beispiel einer Tastatur ist in der 44 dargestellt und wird später erläutert.
  • Mit den 5 Tastaturen (5 × 3), die in der 43 gezeigt werden und den beiden Schriftarten, die für die Webbrowseranwendung (Arialweb und Courier) installiert sind, können alle Zeichen einer herkömmlichen Tastatur abgedeckt werden. Die Abmessungen der Tastatur auf dem Bildschirm betragen 272 Pixels breit mal 184 Pixel hoch.
  • Die virtuelle Tastatur und die funktionalen Verbindungen in Bezug auf ihren Einsatz bei den verschiedenen Anwendungen wurden innerhalb des "canalplus.virtualkd" Paketes entwickelt.
  • Die Klassen die innerhalb des Paketes "MhwVirtualKbd" (die graphische Beschreibung der virtuellen Tastatur und der Verhaltensklasse), "MhwVkTextField" (die aus "java.awt.TextField" abgeleitet ist und die eine virtuelle Tastatur zulässt, die innerhalb der globalen Anwendung definiert ist und das Textfeld zur Steuerung der Ereignisse gemeinsam benutzt) und MhwTextArea" (eine Klasse die von "java.awt.Textarea" geerbt wurde und die eine virtuelle Tastatur zulässt, die innerhalb der globalen Anwendung definiert ist und die Textfeldklasse zur Steuerung der Ereignisse benutzt).
  • Die MhwVirtualKbd Klasse wird nun in weiteren Einzelheiten beschrieben.
  • Der Konstruktor der MhwVirtualKbd" Klasse wird als "privat" definiert. Daher kann nur eine einzigartige virtuelle Tastatur konstruiert werden, wenn die Hauptanwendung, die sie einsetzen könnte, gestartet wird zum Beispiel wenn eine wirkliche Tastatur fehlt). Das Ziel ist daher eine Tastatur vorzustellen, die besonders für die laufende Anwendung konfiguriert ist und die erscheint, wenn der Benutzer ein Textfeld eingibt (Einfach- oder Mehrfachzeile).
  • Wenn die Tastatur erzeugt wird, werden die vier (statischen) Hauptvariablen, die konfiguriert werden können, gesetzt sein:
    • – Ursprung (parent): Container, "Ursprung" der virtuellen Tastatur, die selbst vorhanden sein muss zum Zeitpunkt, zu dem die Tastatur geschaffen wird. Sie wird mit dem "setParent"-Verfahren gesetzt, das eine NullPointerException" zurückspielt, wenn das "parent" im Argument "Null" beträgt
    • – beschreibende Datei (descriptive file (die ASCIII Datei, die die Tastatur sowohl in Bezug auf die Graphiken hinter den Bildern, die die verschiedenen Tastaturen betreffen, und die man erhält, wenn die virtuelle Tastatur benutzt wird, beschreibt, als auch die auf die Tasten gedruckte Beschriftung. Die Zeichen sind durch ihren Unicode Kode spezifiziert. Der Name der beschreibenden Datei kann gesetzt werden, in dem man das "setScreenFile"-Verfahren benutzt.
    • – Anzahl der Bildschirmdarstellungen: Anzahl der von der virtuelle Tastatur initialisierten und benutzten "Nummernblöcke". Diese Anzahl, die durch "setScreensNumber" gesetzt wird, entspricht der Anzahl an Tastaturen, deren Eigenschaften in der oben genau erläuterten beschreibenden Datei eingespeichert sind.
    • – Eingangskoordinaten: dies sind die Koordinaten der oberen linken Ecke des Hintergrundbildes der Tastatur in dem Ursprungscontainer (parent container) (der oben beschrieben wurde). Dies wird eingestellt, in dem man das "setCoordInit" Verfahren benutzt.
  • Sobald die Tastatur eingestellt ist, kann man entscheiden, ob sie gebraucht wird, oder auch nicht, in dem man das "getInstance" Verfahren einsetzt, das die Tastatur der laufenden Anwendung findet, falls sie besteht (falls die virtuelle Tastatur der Anwendung noch nicht besteht und wenn die Anwendung sie benutzt, dann schafft das "getInstance" Verfahren eine und benutzt dazu die Variablen [die vier zuvor Beschriebenen], die man eingesetzt hätte).
  • Die Ereignisverwaltung wird nun beschrieben.
  • Gemäß den vorhergehenden Beschreibungen funktioniert die virtuelle Tastatur, wenn einmal angezeigt, alleine durch Auswertung der Vorgänge, die an sie übertragen werden durch: den Nummernblock, die "OK"-Taste und die vier Richtungspfeiltasten auf der Fernbedienung. Diese Tasten werden besondere Rollen für die im Gebrauch befindliche Tastatur übernehmen.
  • Die "OK" Taste besitzt eine wichtige Rolle, da sie dem Benutzer erlaubt zwei Dinge auszuführen: "Zurück" zum Textfeld, um Informationen einzugeben und dann den Betrieb der virtuellen Tastatur anzuzeigen und zu starten und dann "Verlassen", um das Textfeld "zu verlassen" und die Änderungen zu speichern.
  • Pfeiltasten
  • Die "rechten" und die "linken" Pfeile gestatten das Bild der Fernbedienung (in dem der Nummernblock, der den Fokus besitzt, angezeigt wird) auf den drei Nummernblöcken, die auf der virtuellen Tastatur dargestellt sind, hin- und herzubewegen. Die Tasten des Nummernblocks auf der Fernbedienung sind folglich "vorherbestimmt", abhängig von der Tastatur mit dem Fokus, um die verschiedenen Zeichen darzustellen.
  • Im häufigsten Fall verursacht das "Drücken" dieser Knöpfe, wenn die virtuellen Tastatur aktive ist, automatisches Einfügen des Zeichens auf dieser Taste in das laufende Textfeld an der durch den Kursor bezeichneten Stelle.
  • Von den Zeichen können sechs als "besondere" Zeichen betrachtet werden und veranlassen das auf der Taste dargestellte Zeichen nicht direkt auch im Textfeld angezeigt zu werden;
    Rücktaste (BackSpace): "< (1523): wenn die Taste auf der Fernbedienung, die diesem Zeichen entspricht, gedrückt wird, wird das Zeichen unmittelbar links von der Kursorposition im laufenden Feld gelöscht.
    Tab: ">>" (1520): wenn der Knopf auf der Fernbedienung, der diesem Zeichen entspricht, gedrückt wird, wird eine konfigurierbare Anzahl von Zwischenräumen (' '), standardmäßig 4, an der laufenden Kursorposition eingefügt.
    Eingabe: "¶" (1521): wenn der Knopf auf der Fernbedienung, der diesem Zeichen entspricht, gedrückt wird, wird ein Zeilenvorschub (line feed) an der Kursorposition eingefügt. Eigentlich ist das laufende Textfeld eine Instanz der "MhwVkTextField" Klasse, das bedeutet eine, die nur eine editierbare Zeile hat, Drücken dieser Taste hat entweder keine Auswirkung, oder verursacht Bestätigung diese Feldes. wenn im Gegensatz dieses Textfeld eine Instanz der "MhwVkTextArea" Klasse ist, besteht sie aus mehreren editierbaren Zeilen und dieses Zeichen verursacht einen Zeilenvorschub (wenn der Kursor sich auf der letzten editierbaren Zeile befindet, hat das Drücken dieser Taste keine Auswirkung).
    Löschen: "¢ (1522): wenn der Knopf auf der Fernbedienung, der diesem Zeichen entspricht, gedrückt wird, werden alle Veränderungen, die in dem laufenden Textfeld, im Anschluss an die Öffnung der virtuellen Tastatur, vorgenommen wurden, annulliert. Mit anderen Worten: der Inhalt wird auf den Wert zurückgeführt, den er hatte, bevor die Veränderungen vorgenommen wurden und die virtuelle Tastatur wird ausgeblendet.
    Linker Pfeil: wenn der Knopf auf der Fernbedienung, der diesem Zeichen entspricht, gedrückt wird, wird der Kursor im laufenden Textfeld einen Platz nach links bewegt. Ist der Kursor bereits in der "Null" Position (es kann keine Bewegung mehr nach links vorgenommen werden), hat die Taste keine Auswirkung.
    Rechter Pfeil: wenn der Knopf auf der Fernbedienung, der diesem Zeichen entspricht, gedrückt wird, wird der Kursor im laufenden Textfeld einen Platz nach rechts bewegt. Befindet sich der Kursor bereits hinter dem letzten Zeichen im Textfeld (und kann nicht weiter nach rechts bewegt werden), dann hat die Taste keine Auswirkung.
    "Auf" Pfeil: wenn der Knopf auf der Fernbedienung, der diesem Zeichen entspricht, gedrückt wird, wird der Kursor im laufenden Textfeld einen Platz nach oben bewegt. Befindet sich der Kursor bereits in der ersten Zeile des Textfeldes (oder wenn das laufende Textfeld nur eine Zeile hat: MhwVkTextField)), hat die Taste keine Auswirkung.
    "Ab" Pfeil: wenn der Knopf auf der Fernbedienung, der diesem Zeichen entspricht, gedrückt wird, wird der Kursor im laufenden Textfeld einen Platz nach unten bewegt. Befindet sich der Kursor bereits in der letzten Zeile des Textfeldes (oder wenn das laufende Textfeld nur eine Zeile hat: MhwVkTextField)), hat die Taste keine Auswirkung.
  • Die "findLocation" Methode bestimmt die Lage der virtuellen Tastatur auf dem Bildschirm und versucht die "bebaute" Fläche zu minimieren.
  • Die MhwVkTextField Klasse ist einfach eine Spezialisierung der "TextField" Klasse im "java.awt" Paket. Sie verwaltet zusätzlich einen booleschen Wert, der den Gebrauch (oder auch nicht) der virtuellen Tastatur verwaltet.
  • Wenn der boolesche Wert "wahr" ist, wird eine "base" Instanz der "TextField" Klasse geschaffen und ein virtueller Tastaturempfänger, der innerhalb der laufenden Anwendung zur Verfügung steht, wird gleichzeitig hinzugefügt, wobei die "addKeyListener" Methode angewendet wird. Wenn nicht, dann wird eine "normale" TextArea erzeugt.
  • Wenn das Textfeld den Fokus besitzt, dann wenn der Benutzer "OK" drückt und der Boolesche Verknüpfung den Einsatz der virtuellen Tastatur spezifiziert, wird die virtuelle Tastatur angezeigt und erhält den Fokus. Es verwaltet alle Ereignisse und kann das Textfeld ausfüllen. Wenn der Benutzer abermals "OK" drückt, wird sein Text bestätigt und die Tastatur verlässt den Fokus. Wenn der Gebrauch der virtuellen Tastatur nicht beabsichtigt ist (boolesch = unwahr), dann hat das Textfeld das gleiche Verhalten wie ein Standardtextfeld in "java.awt".
  • Die MhwVkTextArea Klasse ist einfach eine Spezialisierung der "TextArea" Klasse im "java.awt" Paket. Sie verwaltet zusätzlich einen booleschen Wert, der den Gebrauch (oder auch nicht) der virtuellen Tastatur verwaltet.
  • Die Konstruktoren sind genau die gleichen, wie jene der "TextArea" Klasse in dem "java.awt" Paket, mit einem einfachen zusätzlichen Argument: eine Boolesche, die den Gebrauch der virtuellen Tastatur spezifiziert.
  • Wenn der boolesche Wert "wahr" ist, wird eine "base" Instanz der "TextField" Klasse geschaffen und ein virtueller Tastaturempfänger, der innerhalb der laufenden Anwendung zur Verfügung steht, wird gleichzeitig hinzugefügt, wobei die "addKeyListener" Methode angewendet wird. Wenn nicht, dann wird eine "normale" TextArea erzeugt.
  • Wenn das Textfeld den Fokus besitzt, dann wenn der Benutzer "OK" drückt und der Boolesche Verknüpfung den Einsatz der virtuellen Tastatur spezifiziert, wird die virtuelle Tastatur angezeigt und erhält den Fokus. Es verwaltet alle Ereignisse und kann das Textfeld ausfüllen. Wenn der Benutzer abermals "OK" drückt, wird sein Text bestätigt und die Tastatur verlässt den Fokus. Wenn der Gebrauch der virtuellen Tastatur nicht beabsichtigt ist (boolesch = unwahr), dann hat das Textfeld das gleiche Verhalten wie ein Standardtextfeld in "java.awt".
  • Die folgende Sektion beschreibt ferner die Implementierung von Eigenschaften, die oben beschrieben wurden und insbesondere die Wiederherstellung graphischer Objekte (zum Beispiel Textfelder, Schaltflächen, Schieberegler, Listen, Ankreuzfelder, Auswahlmöglichkeiten, und so weiter) aus einer Reihe graphischer Elemente.
  • Die 39 zeigt eine Schaltfläche, der zum Beispiel aus 9 Elementen besteht: den 4 Ecken (NW 2100, NO 2101, SW 2102, SO 2103), den 4 Seiten (N 2104, O 2105, W 2106 und S 2107) und dem Zentrum (C2108).
  • Typischerweise, aber nicht notwendigerweise, ist jedes der neun Elemente quadratisch (4 × 4 Pixel, 8 × 8 Pixel, 16 × 16 Pixel) Die Blöcke N, O, W, S und C Elemente sind innerhalb dem erforderlichen Gebiet gekachelt (bestimmt durch die Grösse der Komponente zusammen mit dem Rand durch das Aussehen bestimmt). Dieses Gebiet muss nicht ein Mehrfaches der Grösse der Elemente sein. Gegenwärtig verläuft die Kachelung von links nach rechts oder von oben nach unten, somit erscheinen alle unvollständig gezeichneten Elemente am unteren Rand und an den rechten Seiten. Man kann ins Auge fassen "zentriert" und "rechts" bündig ausgerichtete Kachelregeln hinzuzufügen, wenn man dies als nützlich empfindet. Im Allgemeinen haben die NW, NO, SW und SO Elemente die gleiche Grösse wie der Rand und daher ist die Kachelung nicht notwendig. Falls sie jedoch kleiner als erforderlich sind, wird die Kachelung automatisch vorgenommen.
  • Eine kurze Beschreibung folgt, wie dies implementiert wird. Die Arbeit wird in drei Gebiete aufgeteilt: die Vorrichtung, die in dem nativen WGT Modul eingebaut ist, erlaubt die Erstellung und Zuordnung verschiedener Ansichten mit verschiedenen WGT Trickfenstern; die Entwicklung des nativen "LookPixmap" Moduls, in dem die Funktionen zum Zeichnen der verschiedenen graphischen Merkmale der Komponenten eingeschlossen sind; und der Entwicklung des mhw.awt Java Paketes zur Verbindung mit dem nativen Kode.
  • Diese drei Entwicklungsgebiete werden in den folgenden Sektionen beschrieben.
  • Der WGT Modul Ansichtsvorrichtung wird nun beschrieben unter Bezug auf die 40 und 41.
  • Das Ziel dieser Sektion ist zu beschreiben, wie der WGT Modul verändert wurde, so dass er in der Lage ist das Aussehen der verschiedenen verwalteten graphischen Objekte zu steuern. Neue Ansichten können in neuen Klassen definiert werden, die, wenn nötig, hinzugefügt werden können, in dem der WGT Modul unberührt bleibt. Eine Standard WGT Ansicht (LookWgt) wird standardmässig zur Verfügung gestellt, umgesetzt und den Trickfenstern zugeordnet, so dass diese Anwendungen, die diese Möglichkeit nicht nutzen wollen, dies nicht müssen.
  • Die folgenden Eigenschaften können erforderlich sein: eine Anzahl verschiedener Ansichten kann definiert werden für jeden Objekttyp; eine verschiedene Ansicht kann unabhängig jedem Objekt gegeben werden, und standardmässig kann die Ansicht, die durch den aktuellen WGT definiert ist bei den Objekten eingesetzt werden.
  • Zwei verschiedene Techniken zum Zeichnen der Ansicht eines Objekts müssen möglich sein: bitmap und vektorielle Technik.
  • Bei der Bitmap Technik wird das Objekt durch Kombination einer Anzahl vorbestimmter Bitmap Elemente gezeichnet, um eine einzige Bitmap zu erzeugen, die dann gezeichnet wird. Um Objekte mit variabler Grösse zu erzeugen, können Elemente wiederholt werden entlang der Seite der Elemente, damit man ein Objekt der erforderlichen Grösse aufbauen kann.
  • Weder die Grösse noch die genaue Anordnung jeder dieser Elemente ist definiert. Die Idee ist, dies so offen wie möglich zu lassen, damit die Erzeugung eines neuen Aussehens durch die WGT nicht allzu sehr eingeschränkt ist. Die Betrachtungsklasse muss die Bitmap Elemente bestimmen und die Regeln, um sie zusammen als eine Funktion der erforderlichen Objektgrösse zu montieren.
  • Die LookPixmap (nativ) und die PixmapLook (Java) Klassen, die später beschrieben werden, benutzen ausschliesslich diese Methode. Es gibt nichts, um die Entwickler daran zu hindern, ihren eigenen Look zu schaffen, der von der LookPixmap, oder auch nicht, abgeleitet ist, die die vektorielle Methode benutzt.
  • Bei der vektoriellen Technik wird das Objekt unter Benutzung einer Reihe grundlegender Zeichenoperationen gezeichnet, so wie zum Beispiel DrawRectancle(), DrawArc(). Die Betrachtungsklasse muss die Regeln zur Zeichnung des Objekts als Funktion der erforderlichen Objektgrösse bestimmen.
  • Es ist durchaus möglich eine Betrachtungsklasse durch Kombination von sowohl der Bitmap- als auch der vektoriellen Technik in Betracht zu ziehen. Der Bitmap Ansatz, zum Beispiel, kann für die Grundform einer Schaltfläche eingesetzt werden, während die der vektorielle Ansatz für die Hervorhebung eingesetzt werden könnte.
  • Der WGT Modul Look Mechanismus wird nun in mehr Einzelheiten erläutert.
  • Die folgenden Mechanismen wurden aufgenommen:
    • – Unterteilung der aktuellen Zeichenmethode für jedes Objekt in sieben Funktionen, wovon bestimmte in der Betrachtungsklasse, die dem Objekt zugeordnet sind, enthalten sind: Drawbackground(): MhwWgtLookDrawBackground(); DrawForeground(); MhwWgtLookDrawForeground(); MhwWgtLookDrawRelief(); MhwWgtLookDrawFocus(); MhwWgtLookHighlight()
    • – Erzeugung einer abstrakten Klasse MhwWgtLook
    • – Erzeugung einer Klasse MhwWgtLookWgt, abgeleitet von MhwWgtLook und realisiert wenn WGT gestartet wird.
    • – Hinzufügung einer g_TheDefaultLook globalen Variablen, um die Ansicht einzurichten, die jedem Objekt, wenn es erzeugt wird, zugeordnet werden wird, wenn kein spezifischer Look MhwWgtXXXAttsSetLook nicht zugeordnet wurde.
    • – Hinzufügung einer öffentlichen Methode MhwWgtSetDefaultLook(context), um den standardmässigen Look für Objekte zu wechseln.
    • – Hinzufügung von zwei öffentlichen Methoden zu den Objektklassen, MhwWgtSetXXXAttrLook(*object, *look) und MhwWgtGetXXXAttsLook(*object).
  • Diese Aspekte werden in den folgenden Sektionen dargestellt, beginnend mit der Methode zum Zeichnen.
  • Jede Zeichenfunktion ruft nun die folgenden Methoden auf, wenn sie beansprucht wird: DrawBackground(); MhwWgtDrawBackground(); DrawForeground(); MhwWgtLookDrawForeground(); MhwWgtLookDrawRelief(); MhwWgtLookDrawFocus(); und MhwWgtLookHighlight().
  • Die beiden MethodenFrawBackground() und DrawBackground() sind Teil von Wgt und werden unberücksichtigt des Aussehens aufgerufen. Die anderen sind eigentlich Zeiger für die entsprechenden Funktionen in der Look Klasse, die mit dem in Frage stehenden Trickfenster verknüpft sind. Auf diese Art und Weise implementiert die Look Klasse die Zeichenfunktionen für diese Teile.
    Background (Hintergrund) Dieser ermöglicht der Ansicht (look) hinter dem gesamten Trickfenster zu zeichnen.
    Foreground (Vordergrund) Dieser kann benutzt werden um ein Bild zu zeichnen mit einer anderen Graphik über dem Mittelteil des Trickfensters (wobei die Rahmen ausgeschlossen sind).
    Relief Dies wird aufgerufen, wenn die relief flag des Trickfensters gesetzt ist und wird eingesetzt um einen Rahmen oder relief für das Trickfenster zu zeichnen.
    Focus (Fokus) Dieser wird aufgerufen, wenn das Trickfenster den Fokus besitzt. Es kann benutzt werden um dies graphisch anzuzeigen.
    Highlight (Hervorhebung) Diese wird aufgerufen, wenn das Trickfenster hervorgehoben wird. es kann benutzt werden, um dies graphisch anzuzeigen.
  • Die abstrakte Klasse MhwWgtLook wird bestimmt und enthält folgendes:
    WgtCoreLookClassMethod; WgtCoreLookClassField; WgtCoreLookClass; WgtCoreLookPart; und WgtCoreLookObject.
  • Diese sind unten beschrieben.
  • Figure 00940001
  • Figure 00950001
  • (Die Card8, Card16 und so weiter, Datentypen sind Pseudonyme für Nummerntypen, die die angegebene Anzahl an Bits haben, zum Beispiel Card8 entspricht einem "char", Card16 entspricht einem "short", usw.)
  • Jede Zeichenmethode ist für jeden Objekttyp identisch. Für Ansichten, die eine unterschiedliche Methode für jedes Verfahren benötigen, oder zumindest für bestimmte Methoden, muss die Methode in der Betrachtungsklasse den Trickfenstertyp identifizieren und entsprechend vorgehen.
  • Beachten Sie bitte den Zweck der DrawNothing() Methode. Sie gibt einfach OK zurück, wenn sie aufgerufen wird. Bestimmte Eigenschaften sind bei einer gegebenen Ansicht nicht notwendigerweise implementiert, so dass der WGT nicht notwendigerweise das Vorhandensein einer gegebenen Funktion prüfen muss, jede nicht implementierte Funktion sollte auf diese Methode verweisen.
  • Beachten Sie auch Mask. Dies ist ein privater, nur lesbarer (read-only) boolescher Datenbereich, wo jedes Element einer der obigen Methoden entspricht. Wenn ein Element auf 1 gesetzt wird, dann wird die entsprechende Methode neu definiert. Andernfalls wird die Methode nicht neu definiert. Auf diese Art und Weise kann, wenn gewünscht, WGT in einem einzigen Arbeitsgang herausfinden, welche Methoden aufgerufen werden müssen.
  • Die Betrachtungsklasse wird zur Bestimmung der Schnittstelle zwischen irgendeiner Betrachtungsbestimmung und WGT benutzt. WGT benutzt nur diese Methoden, um die gewünschte Ansicht darzustellen. Wenn zusätzlichen Funktionalitäten einer Ansicht erwünscht sind, können diese in einer erweiterten Ansichtenstruktur einbezogen werden. aber es liegt an der Anwendung und nicht an WGT, diese Methoden/Parameter zu berücksichtigen. Auf diese Art und Weise können zusätzliche Attribute hinzugefügt werden.
  • Eine abgeleitete Ansichtsstruktur muss alle diese Methoden und Attribute enthalten und sie kann ebenfalls ihre eigenen hinzufügen. WGT wird jedoch nur jene Methoden berücksichtigen, die in der MhwWgtLook Struktur definiert sind.
  • Nun wird die MhwWgtLookWgt Klasse erläutert.
  • Damit bestehende Anwendungen nicht verändert werden müssen, um mit der veränderten Version der WGT kompatibel zu bleiben, wird eine Basisansichten-Klasse erzeugt, die die Ansicht, die WGT Objekte im Moment besitzen, bestimmt und durch WGT realisiert.
  • Es ist eine Unterklasse von MhwWgtLook und wird MhwWgtLookWgt genannt. Wenn diese Klasse realisiert wird, werden die Werte aller Zeiger in der Struktur so gesetzt, dass sie auf die WGT-bestimmten Methoden hinweisen.
  • Dies Basisklasse enthält sonst nichts anderes – sie definiert ganz einfach die Ansicht, die WGT momentan liefert.
  • Figure 00970001
  • Figure 00980001
  • In Bezug auf die WGT Initialisierung muss eine Instanz der MhwWgtLookwgt Klasse geschaffen werden, wenn der WGT gestartet wird. WGT wird dadurch Zugriff auf diese Methoden bekommen, wenn die Anwendung keine unterschiedliche Ansicht spezifiziert. Die g_TheDefaultLook global Variable (unten beschrieben) muss anfänglich so gesetzt werden, dass auf diese Ansicht hinweist.
  • Die Vorgänge zur Bestimmung des Aussehens und zum Setzen der Standardansichten werden nun erläutert.
  • WGT ist nicht zur Bestimmung und Realisierung neuer Ansichtenobjekte zuständig. Anwendungen müssen dies selbst vornehmen. Alle Ansichtenobjekte müssen sich in eine MhwWgtLook Struktur einbetten lassen. Siehe auch unten unter die Verwaltung von Ansichten.
  • Bezüglich der Standardansichten muss ein Feld:
    MhwWgtLook *DefaultLook
  • Zum MhwWgtContext Objekt hinzugefügt werden, unter Hinweis auf die Instanz von MhwWgtLook, die bei jedem neuen Objekt, das von diesem Kontext erzeugt wurde, angewendet werden muss. Wenn ein neuer WGT Kontext erzeugt wurde, muss das Feld so gesetzt werden, dass es auf WgtBasicLook hinweist.
  • Bezüglich der Einrichtung der Standardansicht für einen Kontext, wird eine öffentliche Methode zur Verfügung gestellt:
    MgwWgtSetDefaultLook(MhwWgtContext, aContext, MhwWgtLook aLook)
    zur Einrichtung des DefaultLook Feldes in aContext um auf den aLook hinzuweisen.
  • Zur Verknüpfung einer Ansicht mit einem Objekt, wird das folgende Attribut zur coreAtts Struktur in der core Klasse hinzugefügt:
    MhwWgtLook *Look
  • Dieses Attribut wird auf diese Art und Weise für jedes gestaltete Objekt erzeugt. Wann auch immer ein Objekt realisiert wird, wird Look eingerichtet, um auf die DefaultLook globale Variable hinzuweisen.
  • Zwei neue öffentliche Methoden sollten zur Core-Klasse hinzugefügt werden, um der Look Instanz, die mit dem zu Objekt verknüpft ist, zu ermöglichen, verändert zu werden:
    MhwWgtSetXXXAttsLook(MhwWgtWidget anObject, MhwWgtLook aLook) und MhwWgtGetXXXAttsLook(MhwWgtWidget an Object, MhwWgtLook *aLook).
  • Die Verwaltung der Ansichten wird nun erläutert.
  • WGT liefert keine Ansichtenverwaltung. Um eine Ansicht, ausser der Standardansicht, zu benutzen, muss eine Anwendung zuerst sicher stellen, dass eine oder mehrere Look Klassen realisiert und initialisiert sind und dass immer wenn sie ein neues WGT Objekt erzeugt, die MhWWgtSetCoreAttsLook() Methode einsetzt, um das Objekt mit der gewünschten Ansicht zu verbinden. Wenn sie eine gegebene Ansicht für alle zukünftigen Trickfenster einsetzen möchte, kann sie die MhwWgtSetDefaultLook() Methode, wie oben beschrieben, benutzen.
  • Eine Anwendung, die irgendeine Ansicht, ausser der durch die Standardeinstellung bestimmte, einsetzen möchte, ist für die Erzeugung und Realisierung der Ansicht zuständig. In einem anderen Ausführungsbeispiel der Erfindung kann eine Anwendung Ansichten aus entfernter Quelle herunterladen. In diesem Fall muss jedoch die Anwendung selbst die erforderlichen Klassen, die von MhwWgtLook abgeleitet sind, zur Verfügung stellen.
  • Eine Ansicht soll erst durch die Anwendung, die sie erzeugt hat, zerstört werden, bis alle Trickfenster, die sie benutzen, zerstört sind. Dies verlangt die Hinzufügung eines refCounter Feldes, um die Anzahl der "Klienten" zu zählen.
    Look=MhwNewLook()
    MhwLookRef(Look);
    ...
    MhwLookUnref(Look);
    Look=0
  • Dies ersetzt free (look). Die Ansicht (look) wird augenblicklich zerstört, wenn ihr refCounter Feld 0 entspricht.
    SetXxxLook(widget), look) (
    If(widget->core.look)
    MhwLookUnref(widget->core.look);
    Widget->core.look=look;
    If(look)
    MhwLookRef(look);
    )
  • Die WGT Modulliste der APIs zur Implementierung von Looks folgt hier:
  • Figure 01000001
  • Figure 01010001
  • Der Look/LookPixmap Modul wird nun in weiteren Einzelheiten beschrieben.
  • Die MhwWgtLookPixmap Klasse wird aus der MhwWgtLook Klasse abgeleitet, wie oben beschrieben wurde. Im Wesentlichen arbeitet sie durch Rekonstruktion der verschiedenen Elemente jeder Komponente, um ein graphische Bild der erforderlichen Grösse zu erzeugen, wie oben beschrieben wurde.
  • Diese Bilder werden für Folgendes benötigt: Hintergründe für Schaltflächen; Relief (das ist zum Beispiel der Rand um die aktive Zone von Textfeldern); ein Symbol für die Auswahl Komponente; Ankreuzfelder; Schiebregler; und Schiebereglerlifte.
  • Unter Bezug auf die 40 werden Bilder nicht komprimiert, um Bereitstellzeit zu vermindern, jedoch in einem besonderen Format gespeichert, das so ausgelegt ist, um so weit wie möglich belegten Speicherplatz zu minimieren. Die Farbe aller Pixel (2152) wird in einem einzigen Bit beschrieben, welche die Indexnummer (2151) der Farbe in der aktuellen Farbtabelle darstellt. Die 40 zeigt einen beispielhaften Puffer, image, der ein 4 × 4 Bild (2153) enthält.
  • Das Bild (2153) in der 40 würde folgendermassen gespeichert werden:
    Card8 slidLiftSeVrImage4 [4] [4] =
    (
    (0, 0, 0, 1),
    (0, 0, 1, 2),
    (0, 1, 2, 3),
    (1, 2, 3, 4)
    );
  • Die LookPixMap Bildstruktur wird nun erläutert.
  • Zur Identifizierung der Grösse eines Bildpuffers, wird eine Struktur, LookPixmapImage, definiert, einschliesslich dem oben beschriebenen Bildpuffer, zusammen mit der Breite und Höhe des Bildes. Die Struktur, wie unten beschrieben, wird eingesetzt, um die Daten für jedes graphische Element aufzunehmen.
  • Figure 01020001
  • Bilder können verschiedene Grössen haben, obwohl sie für einen gegebenen Elementetyp hauptsächlich gleich sein werden. Das zentrale Element (xxxxxC), jedoch, hat oft die Grösse 1 × 1. Die MhwWgtLookPixmapAllImages Struktur fasst alle Bildelemente, wie unten dargestellt, zusammen:
    Typedef struct
    (
    LookPixmapImage *relnoNW; Nordwest Ecke des Reliefs – Status Normal
    LookPixmapImage *relnoSW, Südwest Ecke des Reliefs – Status Normal
    LookPixmapImage *relnoNE; Nordost Ecke des Reliefs – Status Normal
    LookPixmapImage *relnoSE; Südost Ecke des Reliefs – Status Normal
    LookPixmapImage *relnoN; Nord Rand des Reliefs – Status Normal
    LookPixmapImage *relnoW; West Rand des Reliefs – Status Normal
    LookPixmapImage *relnoE; Ost Rand des Reliefs – Status Normal
    LookPixmapImage *relnoS; Sued Rand des Reliefs – Status Normal
    LookPixmapImage *relnoC; Mittelfläche des Reliefs – Status Normal
    LookPixmapImage *relfoNW; Status – nur Fokus
    LookPixmapImage *relfoSW;
    LookPixmapImage *relfcNW;
    LookPixmapImage *relfoSE;
    LookPixmapImage *relfoN;
    LookPixmapImage *relfoW;
    LookPixmapImage *relfoE;
    LookPixmapImage *relfoS;
    LookPixmapImage *relfoC;
    LookPixmapImage *relhiNW; Status – nur Hervorhebung
    LookPixmapImage *relhiSW;
    LookPixmapImage *relhiNE;
    LookPixmapImage *relhiSe;
    LookPixmapImage *relhiN;
    LookPixmapImage *relhiW;
    LookPixmapImage *relhiE;
    LookPixmapImage *relhiE;
    LookPixmapImage *relhiS;
    LookPixmapImage *relhiC;
    LookPixmapImage *relfhNW; Status – Fokus und Hervorhebung
    LookPixmapImage *relfhSW;
    LookPixmapImage *relfhNE;
    LookPixmapImage *relfhSE;
    LookPixmapImage *relfhN;
    LookPixmapImage *relfhW;
    LookPixmapImage *relfhE;
    LookPixmapImage *relfhS;
    LookPixmapImage *relfhC;
    LookPixmapImage *butnoNW; Schaltflächenelemente
    LookPixmapImage *butnoSW;
    LookPixmapImage *butnoNE;
    LookPixmapImage *butnoSE;
    LookPixmapImage *butnoN;
    LookPixmapImage *butnoW;
    LookPixmapImage *butnoE;
    LookPixmapImage *butnoS;
    LookPixmapImage *butnoC;
    LookPixmapImage *butfoNW;
    LookPixmapImage *butfoSW;
    LookPixmapImage *butfoNE;
    LookPixmapImage *butfoSE;
    LookPixmapImage *butfoN;
    LookPixmapImage *butfow;
    LookPixmapImage *butfoE;
    LookPixmapImage *butfoS;
    LookPixmapImage *butfoC;
    LookPixmapImage *buthiNW;
    LookPixmapImage *buthiSW;
    LookPixmapImage *buthiNE;
    LookPixmapImage *buthiSE;
    LookPixmapImage *buthiN;
    LookPixmapImage *buthiW;
    LookPixmapImage *buthiE;
    LookPixmapImage *buthiS;
    LookPixmapImage *buthiC;
    LookPixmapImage *butfhNW;
    LookPixmapImage *butfhSW;
    LookPixmapImage *butfhNE;
    LookPixmapImage *butfhSE;
    LookPixmapImage *butfhN;
    LookPixmapImage *butfhW;
    LookPixmapImage *butfhS;
    LookPixmapImage *butfhS;
    LookPixmapImage *butfhC;
    LookPixmapImage *choice; Wahlsymbol
    LookPixmapImage *chcklna; Ankreuzfeldsymbol – Typ 1 nicht gewählt, kein Fokus
    LookPixmapImage *chck1a; Ankreuzfeldsymbol – Typ 1 ausgewählt, kein Fokus
    LookPixmapImage *chck1flna; Ankreuzfeldsymbol – Typ 1 nicht gewählt, Fokus
    LookPixmapImage *chck1fla; Ankreuzfeldsymbol – Typ 1 ausgewählt, Fokus
    LookPixmapImage *chck2na; Ankreuzfeldsymbol – Typ 2 nicht gewählt, kein Fokus
    LookPixmapImage *chck2a; Ankreuzfeldsymbol – Typ 2 ausgewählt, kein Fokus
    LookPixmapImage *chckf2na; Ankreuzfeldsymbol– Typ 2 nicht gewählt, Fokus
    LookPixmapImage *chckf2a; Ankreuzfeldsymbol – Typ 2 ausgewählt, Fokus
    LookPixmapImage *slidNeVr; Schieberegler Hintergrundelemente
    LookPixmapImage *slidEVr;
    LookPixmapImage *slidSeVr;
    LookPixmapImage *slidSwHr;
    LookPixmapImage *slidSHr;
    LookPixmapImage *slidSeHr;
    LookPixmapImage *slidSeVrHr;
    LookPixmapImage *slidLiftNeVr;
    LookPixmapImage *slidLiftEVr;
    LookPixmapImage *slidLiftSeVr;
    LookPixmapImage *slidLiftSwHr;
    LookPixmapImage *slidLiftSHr;
    LookPixmapImage *slidLiftSeHr;
    )
    MhwWgtLookPixmapAllImages;
  • Diese Sektion beschreibt das LookPixmap Modul einschliesslich der LookPixmap Klasse, die geschaffen wurde, um eine Reihe verschiedener Ansichten beim Webbrowser einzusetzen.
  • Dieser Modul enthält die folgenden Ressourcendateien: MhwWgtLookPixmap.h; MhwWgtLookPixmapStruct.h; MhwWgtLookPixmapClass. c; MhwWgtLookPixmapPrivate. c; MhwWgtLookPixmapImages. h; MhwWgtLookPixmapImages2. h; MhwWgtLookPixmapImages3.h; MhwWgtLookPixmapImages4.h; MhwWgtLookPixmapImages5. h; und MhwWgtLookPixmapImages6. h;
  • Der LookPixmap Modul wird nun beschrieben einschliesslich Einzelheiten der bevorzugten Methode zur Bildung und Gebrauch von LookPixmap Objekten.
  • Jede Software die WGT zur Schaffung und Verwaltung von Trickfenstern einsetzt, kann das LookPixmap Modul benutzen, um alternative Ansichten den WGT Trickfenstern zu liefern. Für eine Anwendung zum Einsatz der LookPixmap Ansicht, muss ein LookPixmap Objekt geschaffen werden. Dies kann unter Einsatz des folgenden Kodes erledigt werden:
    MhwWgtLkWebClass PixmapLook;
    MhwWgtLkWeb PixmapLookObject;
    MhwWgtLkWebAtts LookPixmapValues;
    MhwWgtError WgtErr;
    WgtErr = MhwWgtLkWebInitClass();
    WgtErr = MhwWgtLkWebAttsInit(LookPxmapValues);
    WgtErr = MhwWgtLkWebInitDefault/&PixmapLook, &LookPixmapValues);
    PicmapLookObject = MhwWgtLkWebNew(6LookPixmapValues);
  • Eine Methode zur Einrichtung der Standardansicht wird nun beschrieben.
  • Eine Anwendung kann ein gegebenes Ansichtobjekt standardmässig nutzen. Standardmässig ist die Standardansicht das LookWgt Objekt, das durch WGT erzeugt wurde. Um eine andere Standardansicht einzurichten, unter der Voraussetzung, dass sie, wie oben beschrieben, bereits erstellt wurde, kann die folgende Funktion verwendet werden:
    MhwwgtSetDefaultLook((MhwWgtLook) PixmapLookObject);
  • Alle anschliessend erzeugten WGT Trickfenster werden mit der LookPixmap Ansichtenklasse verknüpft und nicht die WGT Standard LookWgt.
  • Eine Anwendung kann eine Ansicht für einen gegebenen Typ von Trickfenster, oder ein gegebenes Trickfenster wählen oder einrichten, wie nun beschrieben werden wird.
  • Eine Anwendung kann die Ansicht für ein gegebenes Trickfenster einrichten, wenn das Objekt durch Aufruf der folgenden Funktion erzeugt wird, kurz bevor das Trickfenster erzeugt wird:
    MhwWgtXXXAttsSetLook(MhwWgtXXXAtts*, MhwWgtLook);
  • Sie kann die Ansicht eines Objektes nach Erzeugung einrichten, in dem die folgende Funktion benutzt wird:
    MhwWgtXXXSetLook(MhwWgtXXXWidget*, MhwWgLook);
    (wobei xxx der Typ des Trickfensters ist, zum Beispiel LIST).
  • Die Methode zum Einsatz der LookPixmap Bilder wird nun erläutert.
  • Ein einzelnes LookPixmap Objekt setzt einen einzigen Satz Bilder ein. Man kann ohne Zweifel die Ansicht dramatisch ändern, nur durch Wechseln der Bilder.
  • Man kann die Bilder, die für ein gegebenes LookPixmap Objekt benutzt werden, ändern, in dem die folgenden Funktionen aufgerufen werden:
    MhwWgtLookPixmapSetImages(MhwWgtLookPixmap*, MhwWgtLookPixmapAllImages*);
  • Richtet die Bilder, die für alle Trickfenster benutzt werden, die das spezifizierte LookPixmap Objekt einsetzen, in der spezifizierten Bilderreihe ein.
    MhwWgtLookPixmapSetDefaultImages(MhwWgtLookPixmap*);
  • Richtet die Bilder, die für alle Trickfenster, die das spezifizierte LookPixmap Objekt einsetzen, in die spezifizierte Standardbilderreihe ein.
  • Wenn man verschiedene Bilder für verschiedene Trickfenster benutzen will, muss man ein LookPixmap Objekt für jede erforderliche Bilderreihe schaffen. Jedes Bild wird dann mit der entsprechenden Ansicht zugeordnet und man verknüpft dann jede Ansicht mit dem entsprechenden Trickfenster.
  • Die API des LookPixmap Moduls wird nun beschrieben unter Bezug auf die 39 und 41.
  • Die folgenden öffentlichen APIs stehen zur Verfügung:
  • MhwWgtLookPixmapSetImages()
  • Prototyp
    • MhwWgtError MhwWgtLookPixmapSetImages(MhwWgtLkWeb aLook, MhwWgtLookPixmapAllImages* someImages);
  • Beschreibung:
  • Richtet die Bilderreihen, die von aLook benutzt werden bei den Bilderreihen ein, die auf someImages hinweisen. Parameter:
    aLook Das MhwWgtLkWeb Objekt, mit dem die Bilder verknüpft werden sollen, someImages
    someImages Die Bilderreihe, die mit aLook verknüpft werden sollen
  • Meldet zurück:
    MHW_WGT_SUCCESS MhwWgtLookPixmapSetImagesID() Prototyp
    MhwWgtError MhwWgtLookPixmapSetImagesID (MhwWgtLkWeb aLook, Card8 anImageID;
  • Beschreibung:
  • Richtet die Bilderreihen, die von aLook benutzt werden bei den Bilderreihen ein, die in
    MhwWgtLookPixmap programmiert sind und durch anImageID identifiziert werden. Parameter:
    aLook Das MhwWgtLkWeb Objekt, mit dem die Bilder verknüpft werden sollen, und durch anImageID identifiziert sind.
    anImageID Die Kennung der Bilderreihe, programmiert in MhwWgtLookPixmap zur Verknüpfung mit aLook
  • Meldet zurück:
    MHW_WGT_SUCCESS MhwWgtLookPixmapSetDefaultImages() Prototyp:
    MhwWgtError MhwWgtLookPixmapSetDefaultImages (MhwWgtLkWeb aLook
  • Beschreibung:
  • Richtet die Bilderreihen, die von aLook benutzt werden bei den Bilderreihen ein, die in
    MhwWgtLookPixmap programmiert sind und durch die Kennung 1 identifiziert werden. Parameter:
    aLook Das MhwWgtLkWeb Objekt, mit dem die Bilder verknüpft werden sollen, und durch anImageID identifiziert sind.
  • Meldet zurück:
    MHW_WGT_SUCCESS MhwWgtLookPixmapLoadImages() Prototyp:
    MhwWgtError MhwWgtLookPixmapSetLoadImage (MhwWgtLkWeb aLook, Int32 anElementID, Int32 aWidth, Int32 aHeight, Card8* anImageBuffer);
  • Beschreibung:
  • Kommt zum Einsatz zum Wechseln eines einzelnen Bildes durch die momentane MhwWgtLookPixmapAllImages Struktur, um auf das festgelegte Bild hinzuweisen. Erzeugt eine LookPixelmapImage Struktur und richtet die laufende MhwWgrLookPixmapAllImages Struktur ein, auf die durch aLook hingewiesen wurde, um auf diese LookPixmapImage für das Element hinzuweisen, spezifiziert durch anElementID. Parameter:
    aLook Das MhwWgtLkWeb Objekt mit dem die durch anImageID identifizierten Bilder verknüpft werden.
    anElementID Die Kennung der zu wechselnden Elemente
    aWidth Die Breite in Pixel des neuen Bildes
    aHeight Die Höhe in Pixel des neuen Bildes
    anImageBuffer Der Puffer der die neuen Bilddaten enthält
  • Meldet zurück:
    MHW_WGT_SUCCESS LookPixmapMakeImageFromElements() Prototyp:
    MhwWgtError LookPixmapMakeImageFromElements (LookPixmapImage* elemN
    LookPixmapImage* elemE,
    LookPixmapImage* elemW,
    LookPixmapImage* elemS,
    LookPixmapImage* elemNW,
    LookPixmapImage* elemE,
    LookPixmapImage* elemSW,
    LookPixmapImage* elemSE,
    LookPixmapImage* elemC, Card16 anX,
    Card16 aY, Card16 aWidth, Card16
    aHeight, MHWWindowID aWindow,
    LookPixmapDrawMode aDrawMode);
  • Beschreibung:
  • Nimmt die 9 Bilder des elemX und zeichnet sie in das bestimmte MHW Fenster. Die Regeln zum Aufbau des Bildes sind durch aDrawMode bestimmt (momentan besteht nur MHW_WGT_LIKWEB_DRAW_NORMAL). Das endgültige Bild wird in dem Fenster mit der oberen linken Ecke bei (anX, aY) positioniert und mit einer Grösse aWidth × aHeight gezeichnet.
  • Wenn eines oder mehrere Elemente Null Grösse haben (entweder elemXX.width oder elemXX.height ist null) wird dieses Element nicht gezeichnet. Parameter:
    elemN, elemE, elemW, elemS, elemNW, elemE, elemSW, elemC, elemSE: das jeweils zu zeichnende Bild oben, rechts, links, unten, obere linke Ecke, obere rechte Ecke, unten linke Ecke, unten rechte Ecke und Mitte.
    anX Die x-Position im Fenster, aWindow zum Zeichnen des endgültigen Bildes.
    aY Die y-Position im Fenster, aWindow zum Zeichnen des endgültigen Bildes.
    aWidth Die Breite, in Pixel, des neuen Bildes
    aHeight Die Höhe, in Pixel, des neuen Bildes
    aWindow Das Fenster, in dem das gebaute Bild gezeichnet werden soll.
    aDrawMode Der Modus in dem das Bild aufgebaut werden soll. MHW_WGT_LIKWEB_DRAW_NORMAL: Setzt die NW (2100), NO (2101, SW (2102), und S = (2103) Elemente in den vier Ecken (2200, 2201, 2202, 2203) ohne Kacheln. Kachelt horizontal die N und S Elemente. Kachelt vertikal die W und O Elemente. Kachelt sowohl horizontal als auch vertikal die C Elemente. Obwohl es für alle Bildgrössen funktioniert, wird nur zugesichert, dass es das Gebiet korrekt kachelt, vorausgesetzt dass das zentrale Gebiet (2208) rechteckig ist.
  • Meldet zurück:
    MHW_WGT_SUCCESS
  • Das Mhw.awt Java Schnittstellenpaket wird nun erläutert.
  • Drei Java Klassen wurden entwickelt, so dass der Look Mechanismus, der durch WGT bestimmt ist durch Java Anwendungen ausgeschöpft werden kann. Diese sind: mhw.awt.WgtLook; und mhw.awt.PixmapLook.
  • Die Look Klasse ist die abstrakte Klasse, die der MhwWgtLook Klasse entspricht, die oben beschrieben wurde.
  • Die WgtLook Klasse wird eingesetzt, um Instanzen der WGT Klasse MhwWgtLookWgt zu erzeugen und zu bearbeiten.
  • Die PixmapLook Klasse wird eingesetzt, um Bilder, die von der WgtLook Klasse benutzt werden zu speichern.
  • Die Mhw.awt.PixmapLook API wird nun beschrieben, beginnend mit Einzelheiten der Konstruktoren.
  • PixmapLook
    • public PixmapLook()
  • Erzeugt eine neue Instanz eines PixmapLook Objekts mit den auf Standardbilder voreingestellten Bildern (ID=1).
  • PixmapLook
  • public PixmapLook(int imageID)
  • Erzeugt eine neue Instanz eines PixmapLook Objekts mit Bildern die zu den durch imageID spezifizierten Bildern voreingestellt sind.
  • Die Methoden werden nun beschrieben.
  • SetImages
    • Public void SetImages()
  • Richten die laufenden Bilder für dieses PixmapLook Objekt auf den Standardwert (ID=1) ein.
  • LoadImage
    Figure 01120001
  • Lädt ein festgelegtes Bildelement. Jedes PixmapLook Objekt hat einen Satz von (94) Bildern, die damit verknüpft sind. Diese Bilder stellen die Elemente der graphischen Komponenten wie folgt dar:
    0 relnoNW; 1 relnoSW; 2 relnoNE; 3 relnoSE; 4 relnoN; 5 relnoW; 6 relnoE; 7 relnoS; 8 relnoC; 9 relfoNW; 10relfoSW; 11relfoNE; 12relfoSE; 13relfoN; 14relfoW; 15relfoE; 16relfoS; 17relfoC; 18relhiNW; 19relhiSW; 20relhiNE; 21relhiSE; 22relhiN; 23relhiW; 24relhiE; 25relhiS; 26relhiC; 27relfhNW; 28relfhSW; 29relfhNE; 30relfhSE; 31relfhN; 32relfhW; 33relfhE; 34relfhS; 35relfhC; 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 slidLifSwHr; 92 slidLiftSHr; 93 slidLiftSeHr.
    width spezifiziert die Breite des genehmigten Bildes
    height spezifiziert die Höhe genehmigten Bildes
    buffer enthält die Bilddaten. Diese sind in Form einer Byteanordnung, wobei jedes Byte den Farbpalettenindex, der für jeden Pixel eingesetzt werden muss, darstellt. Der Index der für Pixel (x, y) benutzt wird ist buffer[buffer(y*width) + x]. MakeImageFromElements
    Public void akeImageFromElements(int [] widths,
    Int [] heights,
    Byte [] [] buffers,
    Int anX,
    Int aY
    Int aWidth,
    Int aHeight,
    Java.awt.Component aComponent
  • Baut ein Bild, basierend auf 9 Elementen/N, E, W, S, NW, NO, SW, SO, C) und zeichnet es in ein Fenster, das mit der Komponente aComponent verknüpft ist, mit der oberen linken Ecke bei (anX, aY9 und mit der Grösse aWidth × aHeight. Die Bildpuffer werden als zweidimensionale Anordnung weiter gegeben, wobei eine Dimension die Bildnummer angibt (0–8 entspricht N, O, W, S, NW. NO. SW, SO, C) und die andere enthält die Daten. Die Breiten und die Höhen jedes Puffers werden in die Breiten- und Höhenfelder gegeben.
  • DownloadLookDir
    • Public java.lang.String DownloadLookDir()
  • sLädt ein "look" Verzeichnis aus dem MPEG Strom herunter. Meldet eine Zeichenkette, die Daten für jede Ansichtenbilder, die heruntergeladen werden können, enthält und die durch Zeilenvorschubzeichen getrennt sind. Die Zeilennummer eines Titels (0 bis n – 1) entspricht der Kennung (ImageSet), die mit Image Sektion DownLoadLookImages(intImageSet) benutzt wird.
  • Das Verzeichnis ist in der Tat eine einfache Textdatei, die die Zeichenkette, die zurückgemeldet wird, enthält. Der Dateipfad ist fest programmiert in der Quelle – gegenwärtig /home/users/mstoddar/mhplus/util/looks/images.dir.
  • Dies kann nach Bedarf geändert werden. Diese kann daher im Dekoder benutzt, um automatisch aus dem MPEG Strom herunter zu laden.
  • Das Format der Datei ist:
    <Image Set Title 1><\t><Image Set Description><\t><URL Resource><\t><URL Preview><\n>
    <Image Set Title 2><\t><Image Set Description><\t><URL Resource><\t><URL Preview><\n>
    <Image Set Title 3><\t><Image Set Description><\t><URL Resource><\t><URL Preview><\n>
    <Image Set Title 4><\t><Image Set Description><\t><URL Resource><\t><URL Preview><\n>
  • Meldet "" zurück, wenn nicht erfolgreich.
  • DownloadLookImages
    • public void DownloadLookImages(int ImageSet)
  • Lädt eine neue Reihe Bilder aus dem MPEG Strom herunter, die durch die Zeilennummer (0 bis n – 1) einer der Eingänge, die in DownLoadLookDir() zurückgegeben wurden, identifiziert sind und ordnet sie dieser Ansicht zu.
  • Die Datei, die die Daten enthält hat das folgende Format:
    WWWWHHHHWWWWHHHH ... eine Reihe 4-Bitketten (leading spaces), die die dezimalwerte der Breiten und Höhen aller 94 Bilder beinhalten (in der gleichen Reihenfolge wie in der Methode LoadImage()). Die Datenpuffer für jedes folgende Bild, auch im selben Format wie LoadImage(). Es wird keine Angleichung zwischen den Bildern vorgenommen, der Beginn des nächsten Bildes startet beim Byte das dem vorhergehenden folgt.
  • Der Dateipfad ist fest programmiert in der Quellegegenwärtig
    /home/users/mstoddar/mhplus/util/looks/images.<ImageSet>.
  • Dies kann nach Bedarf geändert werden. Diese kann daher im Dekoder benutzt, um automatisch aus dem MPEG Strom herunter zu laden.
    public void DownloadLookImages(string ImageURL)
  • Lädt eine Reihe neuer Bilder aus dem MPEG Strom herunter, durch die spezifizierte URL identifiziert und ordnet sie der Ansicht zu.
  • Die Datei, die die Daten enthält hat das oben angegebene Format.
  • Die Struktur der Dateien wird nachstehend aus Vereinfachungsgründen im C Syntax aufgeführt:
    Card8 relnoNWwidth [4] Zeichenfolgedarstellung mit Dezimalwert
    Card8 relnoSWheight [4]
    Card8 relnoSWwidth [4]
    Card8 relnoSWheight [4]
    Card8 relnoNEwidth [4]
    Card8 relnoNEheight [4]
    Card8 relnoNheight [4]
    Card8 relnoWwidth [4]
    Card8 relnoWheight [4]
    Card8 relnoEwidth [4]
    Card8 relnoEheight [4]
    Card8 relnoSwidth [4]
    Card8 relnoSheight [4]
    Card8 relnoCwidth [4]
    Card8 relnoCheight [4]
    Card8 relfoNWwidth [4]
    Card8 relfoNWheight [4]
    Card8 relfoSWwidth [4]
    Card8 relfoNEwidth [4]
    Card8 relfoNEheight [4]
    Card8 relfoSEwidth [4]
    Card8 relfoSEheight [4]
    Card8 relfoNwidth [4]
    Card8 relfoNheight [4]
    Card8 relfoWwidth [4]
    Card8 relfoWheight [4]
    Card8 relfoEwidth [4]
    Card8 relfoEheight [4]
    Card8 relfoSwidth [4]
    Card8 relfoSheight [4]
    Card8 relfoCwidth [4]
    Card8 relfoCheight [4]
    Card8 relhiNWwidth [4]
    Card8 relhiNWheight [4]
    Card8 relhiSWwidth [4]
    Card8 relhiNEwidth [4]
    Card8 relhiNEheight [4]
    Card8 relhiSEwidth [4]
    Card8 relhiSEheight [4]
    Card8 relhiNwidth [4]
    Card8 relhiNheight [4]
    Card8 relhiWwidth [4]
    Card8 relhiWheight [4]
    Card8 relhiEwidth [4]
    Card8 relhiEheight [4]
    Card8 relhiSwidth [4]
    Card8 relhiSheight [4]
    Card8 relhiCwidth [4]
    Card8 relhiCheight [4]
    Card8 relfhNWwidth [4]
    Card8 relfhNWheight [4]
    Card8 relfhSWwidth [4]
    Card8 relfhNEwidth [4]
    Card8 relfhNEheight [4]
    Card8 relfhSEwidth [4]
    Card8 relfhSEheight [4]
    Card8 relfhNwidth [4]
    Card8 relfhNheight [4]
    Card8 relfhWwidth [4]
    Card8 relfhwheight[4]
    Card8 relfhEwidth [4]
    Card8 relfhEheight [4]
    Card8 relfhSwidth [4]
    Card8 relfhSheight [4]
    Card8 relfhCwidth [4]
    Card8 relfhCheight [4]
    Card8 butnoNWwidth [4]
    Card8 butnoNWheight [4]
    Card8 butnoSWwidth [4]
    Card8 butnoNEwidth [4]
    Card8 butnoNEheight [4]
    Card8 butnoSEwidth [4]
    Card8 butnoSEheight [4]
    Card8 butnoNwidth [4]
    Card8 butnoNheight [4]
    Card8 butnoWwidth [4]
    Card8 butnoWheight [4]
    Card8 butnoEwidth [4]
    Card8 butnoEheight [4]
    Card8 butnoSwidth [4]
    Card8 butnoSheight [4]
    Card8 butnoCwidth [4]
    Card8 butnoCheight [4]
    Card8 butfoNWwidth [4]
    Card8 butfoNWheight [4]
    Card8 butfoSWwidth [4]
    Card8 butfoNEwidth [4]
    Card8 butfoNEheight [4]
    Card8 butfoSEwidth [4]
    Card8 butfoSEheight [4]
    Card8 butfoNwidth [4]
    Card8 butfoNheight [4]
    Card8 butfoWwidth [4]
    Card8 butfoWheight [4]
    Card8 butfoEwidth [4]
    Card8 butfoEheight [4]
    Card8 butfoSwidth [4]
    Card8 butfoSheight [4]
    Card8 butfoCwidtht [4]
    Card8 butfoCheight [4]
    Card8 buthiNWwidtht [4]
    Card8 buthiNWheight [4]
    Card8 buthiSWwidtht [4]
    Card8 buthiNEwidtht [4]
    Card8 buthiNEheight [4]
    Card8 buthiSEwidth [4]
    Card8 buthiSEheight [4]
    Card8 buthiNwidth [4]
    Card8 buthiNheight [4]
    Card8 buthiWwidth [4]
    Card8 buthiWheight [4]
    Card8 buthiEwidth [4]
    Card8 buthiEheight [4]
    Card8 buthiSwidth [4]
    Card8 buthiSheight [4]
    Card8 buthiCwidth [4]
    Card8 buthiCheight [4]
    Card8 butfhNWwidth [4]
    Card8 butfhNWheight [4]
    Card8 butfhSWwidth [4]
    Card8 butfhNEwidth [4]
    Card8 butfhNEheight [4]
    Card8 butfhSEwidth [4]
    Card8 butfhSEheight [4]
    Card8 butfhNwidth [4]
    Card8 butfhNheight [4]
    Card8 butfhWwidth [4]
    Card8 butfhWheight [4]
    Card8 butfhEwidth [4]
    Card8 butfhEheight [4]
    Card8 butfhSwidth [4]
    Card8 butfhSheight [4]
    Card8 butfhCwidth [4]
    Card8 butfhCheight [4]
    Card8 choicewidth [4]
    Card8 choiceheight [4]
    Card8 chcklnowidth [4]
    Card8 chckinoheight [4]
    Card8 chcklewidth [4]
    Card8 chcklseheight [4]
    Card8 chcklfowidth [4]
    Card8 chcklfoheight [4]
    Card8 chcklfswidth [4]
    Card8 chcklfsheight [4]
    Card8 chck2nowidth [4]
    Card8 chck2noheight [4]
    Card8 chck2sewidth [4]
    Card8 chck2seheight [4]
    Card8 chck2fowidth [4]
    Card8 chck2foheight [4]
    Card8 chck2fswidth [4]
    Card8 chck2fsheight [4]
    Card8 slidNeVrwidth [4]
    Card8 slidNeVrheight [4]
    Card8 slidEVrwidth [4]
    Card8 slidVrheight [4]
    Card8 slidSeVrwidth [4]
    Card8 slidSeVrheight [4]
    Card8 slidSwHrwidth [4]
    Card8 slidSwHrheight [4]
    Card8 slidSHrwidth [4]
    Card8 slidSHrheight [4]
    Card8 slidSeHrwidth [4]
    Card8 slidSeHrheight [4]
    Card8 slidSeVrHrwidth [4]
    Card8 slidSeVrHrheight [4]
    Card8 slidLiftNeVrwidth [4]
    Card8 slidLiftNeVrheight [4]
    Card8 slidLiftEVrwidth [4]
    Card8 slidLiftVrheight [4]
    Card8 slidLiftSeVrwidth [4]
    Card8 slidLiftSeVrheight [4]
    Card8 slidLiftSwHrwidth [4]
    Card8 slidLiftSwHrheight [4]
    Card8 slidLiftSHrwidth [4]
    Card8 slidLiftSHrheight [4]
    Card8 slidLiftSeHrwidth [4]
    Card8 slidLiftSeHrheight [4]
    Card8 RelnoNWbuffer [width × height]
    Card8 RelnoSWbuffer [width × height]
    Card8 RelnoNEbuffer [width × height]
    Card8 RelnoSEbuffer [width × height]
    Card8 RelnoNbuffer [width × height]
    Cardß RelnoWbuffer [width × height]
    Card8 RelnoEbuffer [width × height]
    Card8 RelnoSbuffer [width × height]
    Card8 RelnoCbuffer [width × height]
    Card8 RelfoNWbuffer [width × height]
    Card8 RelfoSWbuffer [width × height]
    Card8 RelfoNEbuffer [width × height]
    Card8 RelfoSEbuffer [width × height]
    Card8 RelfoNbuffer [width × height]
    Card8 RelfoWbuffer [width × height]
    Card8 RelfoEbuffer [width × height]
    Card8 RelfoSbuffer [width × height]
    Card8 RelfoCbuffer [width × height]
    Card8 RelhiNWbuffer [width × height]
    Card8 RelhiSWbuffer [width × height]
    Card8 RelhiNEbuffer [width × height]
    Card8 RelhiSEbuffer [width × height]
    Card8 RelhiNbuffer [width × height]
    Card8 RelhiWbuffer [width × height]
    Card8 RelhiEbuffer [width × height]
    Card8 RelhiSbuffer [width × height]
    Card8 RelhiCbuffer [width × height]
    Card8 RelfhNWbuffer [width × height]
    Card8 RelfhSWbuffer [width × height]
    Card8 RelfhNEbuffer [width × height]
    Card8 RelfhSEbuffer [width × height]
    Card8 RelfhNbuffer [width × height]
    Card8 RelfhWbuffer [width × height]
    Card8 RelfhEbuffer[width × height]
    Card8 RelfhSbuffer [width × height]
    Card8 RelfhCbuffer [width × height]
    Card8 ButnoNWbuffer [width × height]
    Card8 ButnoSWbuffer [width × height]
    Card8 ButnoNEbuffer [width × height]
    Card8 ButnoSEbuffer [width × height]
    Card8 ButnoNbuffer [width × height]
    Card8 ButnoWbuffer [width × height]
    Card8 ButnoEbuffer [width × height]
    Card8 ButnoSbuffer [width × height]
    Card8 ButnoCbuffer [width × height]
    Card8 ButfoNWbuffer [width × height]
    Card8 ButfoSWbuffer [width × height]
    Card8 ButfoNEbuffer [width × height]
    Card8 ButfoSEbuffer [width × height]
    Card8 ButfoNbuffer [width × height]
    Card8 ButfoWbuffer [width × height]
    Card8 ButfoEbuffer [width × height]
    Card8 ButfoSbuffer [width × height]
    Card8 ButfoCbuffer [width × height]
    Card8 ButhiNWbuffer [width × height]
    Card8 ButhiSWbuffer [width × height]
    Card8 ButhiNEbuffer [width × height]
    Card8 ButhiSEbuffer [width × height]
    Card8 ButhiNbuffer [width × height]
    Card8 ButhiWbuffer [width × height]
    Card8 ButhihiEbuffer [width × height]
    Card8 ButhiSbuffer [width × height]
    Card8 ButhiCbuffer [width × height]
    Card8 ButfhNWbuffer [width × height]
    Card8 ButfhSWbuffer [width × height]
    Card8 ButfhNEbuffer [width × height]
    Card8 ButfhSEbuffer [width × height]
    Card8 ButfhNbuffer [width × height]
    Card8 ButfhWbuffer [width × height]
    Card8 ButfhEbuffer [width × height]
    Card8 ButfhSbuffer [width × height]
    Card8 ButfhCbuffer [width × height]
    Card8 Choicebuffer [width × height]
    Card8 chcklnobuffer [width × height]
    Card8 chcklsebuffer [width × height]
    Card8 chcklfobuffer [width × height]
    Card8 chcklfsbuffer [width × height]
    Card8 chck2nobuffer [width × height]
    Card8 chck2sebuffer [width × height]
    Card8 chck2fobuffer [width × height]
    Card8 chck2fsbuffer [width × height]
    Card8 slideNeVrbuffer [width × height]
    Card8 slideEVrbuffer [width × height]
    Card8 slideSeVrbuffer [width × height]
    Card8 slideSwHrbuffer [width × height]
    Card8 slideSHrbuffer [width × height]
    Card8 slideSeHrbuffer [width × height]
    Card8 slideSeVrbuffer [width × height]
    Card8 slideNeVrbuffer [width × height]
    Card8 slideLiftNeVrbuffer [width × height]
    Card8 slideLiftEVrbuffer [width × height]
    Card8 slideLiftSeVrbuffer [width × height]
    Card8 slideLiftSwHrbuffer [width × height]
    Card8 slideLiftSHrbuffer [width × height]
    Card8 slideLiftSeHrbuffer [width × height]
  • Zum Beispiel
    Figure 01210001
  • Start des Puffers 1 data. (relnNW) (8 × 8 Bytes)
    Figure 01220001
  • Start des Puffers 2 data. (relnSW) (8 × 8 Bytes)
    Figure 01220002
  • Start des Puffers 3 data. (relnNE) (8 × 8 Bytes)
    Figure 01220003
  • Start des Puffers 4 data. (relnSE) (8 × 8 Bytes)
    Figure 01220004
  • reDrawAll
    • public void reDrawAll()
  • Findet das Trickfenster mit dem Fokus, dann die Vorgänger, bis keine mehr vorliegen. Oberstes Fenster wird dann auf unsichtbar gesetzt und wieder auf sichtbar. Dann sollte das ganze Fenster neu gezeichnet werden.
  • Die verschiedenen, oben beschriebenen, Verfahren zur Darstellung eines oder mehrerer graphischer Objekte und zur Navigation zwischen einer Vielzahl derartiger Objekte, oder zum Empfangen von Eingaben durch den Benutzer, können auch vorzugsweise, jedoch nicht ausschliesslich, auf anderen Gebieten im Rahmen des Empfangs von Rundfunksendungen durch Rundfunksenderbetreiber eingesetzt werden. Jede Funktionalität eines Beistelldekoders, der über visuelle Interaktivität mit dem Benutzer arbeitet, kann im Allgemeinen solche Verfahren einsetzen.
  • Eine Kette mit Symbolen, möglicherweise mit Unterketten, die hinzugefügt wurden und über die man navigieren kann, können bei einer Anwendung für den Einkauf über Fernsehangebote (home shopping) zum Einsatz kommen, um dem Benutzer die Anzeige von Artikeln zu erlauben, Preise anzusehen, Aufträge abgeben oder auf andere Weise mit der Anwendung interaktiv zu arbeiten. Das graphische Objekt, auf dem man einen Auftrag erteilen kann, könnte, wenn es hervorgehoben wird, in der oben beschriebenen Weise automatisch zwischen den Kaufsymbolen (zum Beispiel ein Dollarzeichen, $) und Text hin- und herspringen und den bis dahin ausgegebenen Betrag, oder das Wort "Kaufen" in der Sprache des Benutzers anzeigen. Alternativ oder zusätzlich könnte ein graphisches Objekt, das das Wort "Kaufen" in der Sprache des Abonnenten beinhaltet, erscheinen, immer dann wenn das "Kaufen" Symbol gewählt wird.
  • Das "Kaufen" Symbol im obigen Beispiel kann neben ein Symbol gesetzt werden, das beim Anklicken die Liste der bislang getätigten Einkäufe aufzeigt und ein anderes Symbol, das beim Anklicken Lieferoptionen für das gerade gekaufte Produkt anzeigt, um so eine logische Abfolge der Symbole in der Kette, in der der Benutzer navigieren kann, anzubieten. Wenn das "Kaufen" Symbol ausgewählt wurde, kann eine Unterkette mit verschiedenen Unteroptionen erscheinen, die verschiedene Kreditpläne für teurere Produkte einschliesst. Irgendwelche Information die vom Benutzer verlangt werden, wie zum Beispiel Strasse, Lieferadresse, können mit der virtuellen Tastatur eingegeben werden.
  • Bei einem elektronischen Programmführer können ähnliche Verfahren benutzt werden, zum interaktiven Browsern und zur Darstellung verschiedener Kanäle, Themen und Zeit und Datum. Eine weitere kundenspezifische Anpassung kann für die Umgruppierung der graphischen Optionen in der Kette nach Vorliebe des Kunden denkbar sein; im Fall einer Kette von Kanälen können die vom Benutzer bevorzugten Kanäle an die Spitze der Kette programmiert werden. Eine solche Präferenz kann vom Benutzer angegeben werden oder vom Programm abgeleitet werden.
  • Weitere Anwendungen für die oben beschriebene Verfahren schliessen Online-Kataloge ein, Nachrichten und Wetterinformationen auf Anfrage, Spiele und die allgemeine Verwaltung des Beistelldekoders (Verwalten der Konfiguration, usw.) Im Fall von Spielen kann der Kopf/Schwanz Flip-Flop Effekt benutzt werden, um in-game Animationen bereit zu stellen, ohne notwendigerweise zusätzliche zu schreibende Verfahren erforderlich zu machen und die virtuelle Tastatur kann als alternative Form zur Steuerung fortgeschrittener Spielarten benutzt werden.
  • Es sollte auch gewürdigt werden, dass alle Verfahren zur Interaktion über die Fernbedienung, wie hier beschrieben wurde, ersetzt, oder ergänzt werden können durch eine Maus, (oder andere Richtungssteuerungen, wie zum Beispiel ein Rollerball oder Steuerknüppel (Joystick)) und oder durch eine Tastatur (oder durch andere Vorrichtungen, die eine Vielzahl von Tasten besitzen), entweder durch Simulation der Tasten einer Fernbedienung (zum Beispiel durch Einsatz der Nummerntasten 0–9; der Pfeiltasten und der Rücklauftaste auf einer Tastatur) oder direkt (zum Beispiel unter Einsatz der Maus, um auf die Schaltflächen zu klicken und der Tastatur, um direkt Text einzugeben, anstatt die virtuelle Tastatur zu benutzen).
  • Die oben beschriebene virtuelle Tastatur kann bei jedem Gerät eingesetzt werden, das eine Vielzahl von Tasten besitzt, wie zum Beispiel Spielgeräte oder Mobiltelefone, zum Beispiel. Im letzteren Fall kann die virtuelle Tastatur im Wesentlichen, wie beschrieben wurde, auf dem Bildschirm des Telefons (bei Telefonen mit einer genügend grossen Bildfläche) abgebildet werden, oder in einer komprimierten Form (für Telefone mit kleineren Anzeigeflächen). Eine derartige Kompression der virtuellen Tastatur könnte dazu führen, dass nur der Symbolnummernblock zu einer bestimmten Zeit gezeigt wird, vorzugsweise mit einer Empfehlung der Symbole oder Art der Symbole auf die durch Bedienen der links, rechts, auf- und ab-Tasten zugegriffen werden kann (oder deren Entsprechungen, zum Beispiel im Fall von Richtungssteuerungen der rollerartigen Ausführung). Die komprimierte virtuelle Tastatur kann bei anderen Anwendungen eingesetzt werden, insbesondere dort, wo es wenig Platz zur Anzeige der Tastatur gibt.
  • Der Begriff "Ankreuzfeld" (check box) kann sich auf ein graphisches Objekt jeglicher Form beziehen, zum Beispiel rund, die in der Lage ist verschiedene Zustände anzuzeigen, vorzugsweise zwei Zustände, die "kontrolliert" und "nicht kontrolliert" entsprechen, aber möglicherweise mehr als zwei Zustände und die ihren Zustand in durchgängiger Art und Weise verändern, wenn sie vom Benutzer angeklickt, oder angewählt werden. Der "kontrollierte" Zustand kann durch ein Häkchen, Kreuz oder eine andere Ausschmückung in dem Kästchen angezeigt werden.
  • Zur Erleichterung der Bezugnahme haben die unten benutzten Begriffe die folgenden bevorzugten Bedeutungen:
    HTML: HyperTextMarkup Language, eine Sprache die Dokumente beschreibt, die im Internet ausgetauscht werden. Das Dokument kann Bezüge zu Seiten, Formatierungsinformationen, Ton und Bilder, usw. einschliessen.
    HTTP: HyperText Transport Protocol, ein Protokoll zur Kommunikation zwischen Internetservern, die HTML Dokumente und Navigationsanwendungen enthalten, die das HTML Dokument abbilden.
    MPEG-2: Motion Picture Expert Group, ein Kodierverfahren bewegter Bilder und Ton in Echtzeit.
    PPP: Point-to-Point Protocol, ein Verbindungsprotokoll für Fernzugriff, das zwei Computern erlaubt über ein Modem vernetzt zu werden.
    PROXY SERVER: Eine auf dem Server befindliche Anwendung, die es erlaubt, sichere Internetverbindungen aufzubauen und die auch HTTP und FTP Anfragen puffert.
    SESSION: Eine Instanz einer Art Verbindung oder einer Anwendung im Speicher zu einer gegebenen Zeit.
    URL: Uniform Resource Locator, eine Adresse, die zur Lokalisierung einer Datei oder von Ressourcen im Internet dient. Die Verbindung zu einer Seite bezeichnet die Adresse der Ressource, die in der Webseite enthalten ist.
    WWW: World Wide Web, Internet Netzwerk, das lokale oder entfernte Dokumente benutzt. Ein Web Dokument ist eine Web-Seite und die Verbindungen in der Seite erlauben die Navigation zwischen verschiedenen Seiten und zwischen verschiedenen Themenkreisen, unberücksichtigt ob diese in einem lokalen oder entfernten Netzwerk angesiedelt sind.
    GUI Graphical User Interface. Graphische Benutzerschnittstelle.
    WGT: Widget Toolkit. "Werkzeugkasten" für Trickfenster.
  • Es ist wohlverstanden, dass die vorliegende Erfindung oben einzig und allein anhand von Beispielen beschrieben wurde und dass Veränderungen von Einzelheiten innerhalb des Bereichs der Erfindung erfolgen können.
  • Jede offen gelegte Eigenschaft in der Beschreibung und (wo angezeigt) der Ansprüche und Zeichnungen, können unabhängig oder in jeder passenden Kombination vorgesehen werden.
  • In jeder oder allen zuvor erwähnten Eigenschaften, wurden bestimmte Eigenschaften der vorliegenden Erfindung durch Einsatz von Rechnerprogrammen implementiert. Es wird jedoch gewiss dem Fachmann deutlich werden, dass jede dieser Eigenschaften durch Einsatz von Hardware, oder einer Kombination von Hardware und Software, implementiert werden können. Ferner ist leicht zu verstehen, dass die Funktionen, die von der Hardware, der Computersoftware und dergleichen vollzogen werden, mit elektrischen und ähnlichen Signalen durchgeführt werden.
  • Eigenschaften, die sich auf die Speicherung von Informationen beziehen, können auf geeigneten Speicherorten oder Speicherplätzen implementiert werden. Eigenschaften, die sich auf die Datenverarbeitung beziehen, können durch passende Prozessoren oder Steuerungsmittel implementiert werden, entweder in Software oder in Hardware oder in einer Kombination von beiden.
  • In irgendeiner oder allen der zuvor erwähnten Formen, wobei die Erfindung in jeder Form ausgeführt werden kann, können einige oder alle der folgend Formen ausgeführt werden: in einem Verfahren zum Betrieb eines Rechnersystems; im Rechner selbst; in einem Rechnersystem, wenn programmiert mit, oder angepasst oder eingerichtet ist, das Verfahren zum Betrieb dieses System auszuführen; und/oder in einem durch einen Rechner lesbaren Speichermittel, das ein darauf aufgenommenes Programm besitzt, das geeignet ist, nach dem Verfahren zum Betrieb des System zu arbeiten.
  • Wie hier durchgehend als Begriff verwendet wurde, kann "Computer System" durch "Computer", "Rechner", "System", "Ausrüstung", "Gerät", "Maschine" oder ähnliche Begriffe ersetzt werden.
  • Referenznummern, die in den Ansprüchen auftauchen, sind nur zur Illustration und sollten keine einschränkende Auswirkung auf den Umfang der Ansprüche darstellen.
  • Die Antragsteller erklären hiermit, zur Abwendung von Einwänden, dass sie die Urheberechte in den beigefügten Zeichnungen beanspruchen.
  • Titel: Darstellung graphischer Objekte
    Figure 01290001
  • Kurzdarstellung: Schwerpunkte der vorliegenden Erfindung betreffen ein Verfahren zur Steuerung des Erscheinungsbildes eines graphischen Objekts in einer graphischen Benutzerschnittstelle. In einem Ausführungsbeispiel der Erfindung schliesst ein Objekt, wie zum Beispiel ein Trickfenster (widget) in einer graphischen Benutzerschnittstelle, eine Instanz einer Trickfensterklasse (widget class) ein, in der Eigenschaften und/oder Verfahren bestimmt sind, die die Bedienung des Objekts steuern und eine damit verknüpfte Instanz eine Betrachtungsobjektsklasse, in der die Eigenschaften und/oder Verfahren bestimmt sind, die das Erscheinungsbild des Objekts steuern.

Claims (6)

  1. Ein Verfahren zur Steuerung des Aussehens eines objektorientierten Trickfensters (widget) (430; 500) bei einer graphischen Benutzerschnittstelle (graphical user interface GUI), die beinhaltet: Bestimmung eines Betrachtungsgegenstands; und Verknüpfung des Betrachtungsgegenstands mit dem Trickfenster (430; 500); wobei der Betrachtungsgegenstand einen Kode oder Kodeparameter enthält, die bestimmen, wie das Trickfenster (430; 500) dargestellt wird und wobei der Betrachtungsgegenstand die Erscheinung des Trickfensters (430; 500) bestimmt, dadurch gekennzeichnet, dass der Betrachtungsgegenstand ein Aktualisierungszählwerk beinhaltet, dessen Wert aktualisiert wird, wenn der Betrachtungsgegenstand neu definiert oder verändert wird.
  2. Verfahren nach Anspruch 1, wobei der Betrachtungsgegenstand durch einen objektbezogenen Programmkode bestimmt wird.
  3. Verfahren nach Anspruch 1, wobei das Trickfenster ein Attribut zur Kennzeichnung des Betrachtungsgegenstands beinhaltet, der mit dem Trickfenster (430; 500) verknüpft ist.
  4. Verfahren nach Anspruch 1, das ferner die Veränderung der Erscheinung des Trickfensters (430; 500) durch Neudefinition oder Veränderung des Betrachtungsgegenstands, oder durch Verknüpfung eines anderen Betrachtungsgegenstands mit einem Trickfenster (430; 500) beinhaltet.
  5. Verfahren nach Anspruch 1, das ferner die Steuerung des Aussehens einer Vielzahl von Trickfenstern (430; 500) in einer graphischen Benutzerschnittstelle beinhaltet, durch Verknüpfung des Betrachtungsgegenstands mit der Vielzahl von Trickfenstern (430; 500).
  6. Vorrichtung (13) zur Steuerung des Aussehens eines objektorientierten Trickfensters (430; 500) in einer graphischen Benutzerschnittstelle, die beinhaltet: Mittel (220) zur Bestimmung eines Betrachtungsgegenstands; und Mittel (220) zur Verknüpfung des Betrachtungsgegenstands mit dem Trickfenster (430; 500); wobei der Betrachtungsgegenstand einen Kode oder Kodeparameter beinhaltet, die bestimmen, wie das Trickfenster (430; 500) dargestellt wird und wobei der Betrachtungsgegenstand das Aussehen des Trickfensters (430; 500) bestimmt dadurch gekennzeichnet, dass der Betrachtungsgegenstand ein Aktualisierungszählwerk beinhaltet, dessen Wert aktualisiert wird, wenn der Betrachtungsgegenstand neu definiert oder verändert wird.
DE60027206T 1999-11-02 2000-11-01 Darstellung von graphischen objekten Expired - Lifetime DE60027206T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP99402721A EP1098246A1 (de) 1999-11-02 1999-11-02 Darstellung von graphischen Objekten
EP99402721 1999-11-02
EP00300832A EP1098244A3 (de) 1999-11-02 2000-02-03 Graphische Benutzeroberfläche
EP00300832 2000-02-03
PCT/IB2000/001720 WO2001033344A2 (en) 1999-11-02 2000-11-01 Displaying graphical objects

Publications (2)

Publication Number Publication Date
DE60027206D1 DE60027206D1 (de) 2006-05-18
DE60027206T2 true DE60027206T2 (de) 2006-12-21

Family

ID=26072989

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60027206T Expired - Lifetime DE60027206T2 (de) 1999-11-02 2000-11-01 Darstellung von graphischen objekten

Country Status (17)

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

Families Citing this family (207)

* 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
CA2454742C (en) 2001-07-26 2011-03-08 Irise System and process for gathering, recording and validating requirements for computer applications
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 주식회사 네오테크 화면 생성 시스템 및 방법
US20040100484A1 (en) * 2002-11-25 2004-05-27 Barrett Peter T. Three-dimensional television viewing environment
US7511710B2 (en) 2002-11-25 2009-03-31 Microsoft Corporation Three-dimensional program guide
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
US20040230600A1 (en) * 2003-05-01 2004-11-18 Lockheed Martin Corporation Method and apparatus for rapidly prototyping status display
EP1636697A1 (de) * 2003-06-13 2006-03-22 Sap Ag Verfahren zur eingabe von daten in eine datenverarbeitungsanlage
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
US8171426B2 (en) 2003-12-29 2012-05-01 International Business Machines Corporation Method for secondary selection highlighting
US7908566B2 (en) * 2003-12-29 2011-03-15 International Business Machines Corporation System and method for scrolling among categories in a list of documents
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
US8151214B2 (en) 2003-12-29 2012-04-03 International Business Machines Corporation System and method for color coding list items
EP1560104A1 (de) * 2004-01-28 2005-08-03 Sony Ericsson Mobile Communications AB Vorrichtung mit Spielabhängiger Benutzerschnittstelle, Verfahren, Spielmodul, und Computerprogrammprodukt dafür
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
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
US20060048064A1 (en) * 2004-08-31 2006-03-02 Microsoft Corporation Ambient display of data in a user interface
US7797724B2 (en) 2004-08-31 2010-09-14 Citrix Systems, Inc. Methods and apparatus for secure online access on a client device
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
RU2304301C2 (ru) * 2004-10-29 2007-08-10 Дмитрий Иванович Самаль Способ ввода символов в электронно-вычислительные устройства
US7890492B2 (en) * 2004-11-15 2011-02-15 Zi Corporation Of Canada, Inc. Organizing pointers to objects in an array to improve the speed of object retrieval
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
US20080044102A1 (en) * 2005-01-07 2008-02-21 Koninklijke Philips Electronics, N.V. Method and Electronic Device for Detecting a Graphical Object
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
JP5618480B2 (ja) * 2005-08-19 2014-11-05 グーグル インコーポレイテッド プラグインモジュールからの情報コンテンツをユーザーインターフェース内で表示するためのソフトウエアアーキテクチャ
USD553147S1 (en) * 2005-08-26 2007-10-16 Microsoft Corporation User interface for a portion of a display screen
JP4640046B2 (ja) 2005-08-30 2011-03-02 株式会社日立製作所 デジタルコンテンツ再生装置
CA2622900C (en) * 2005-09-15 2014-04-29 Biap, 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
US7752556B2 (en) 2005-10-27 2010-07-06 Apple Inc. Workflow widgets
US9104294B2 (en) * 2005-10-27 2015-08-11 Apple Inc. Linked 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
US8806347B2 (en) * 2005-12-27 2014-08-12 Panasonic Corporation Systems and methods for providing distributed user interfaces to configure client devices
US8762941B2 (en) 2006-02-16 2014-06-24 Dirtt Environmental Solutions, Ltd. Rendering and modifying CAD design entities in object-oriented applications
US7908296B2 (en) 2006-02-16 2011-03-15 Dirtt Environmental Solutions, Ltd. Integrating object-oriented design software with record-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
USD561191S1 (en) * 2006-09-11 2008-02-05 Pelco Combined layout and icons for a display screen
USD561192S1 (en) * 2006-09-11 2008-02-05 Pelco Combined layout and icons for a display screen
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
KR101434199B1 (ko) * 2006-10-02 2014-08-28 삼성전자주식회사 단말기 및 이를 위한 디스플레이 방법
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
WO2008088772A2 (en) * 2007-01-12 2008-07-24 Ictv, Inc. Mpeg objects and systems and methods for using mpeg objects
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
JP4763633B2 (ja) * 2007-02-28 2011-08-31 株式会社エヌ・ティ・ティ・ドコモ 情報処理装置及びプログラム
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 华为技术有限公司 一种用户界面变换方法及系统
CN101647045A (zh) 2007-03-15 2010-02-10 汤姆森特许公司 用于场景图中的参数的访问及控制的方法和系统
CN101291402B (zh) * 2007-04-18 2011-06-15 深圳Tcl新技术有限公司 一种功能界面图片组合使用的方法及装置
WO2008137158A1 (en) * 2007-05-07 2008-11-13 Biap, Inc. Context-dependent prediction and learning with a universal re-entrant predictive text input software component
US8613025B2 (en) * 2007-05-08 2013-12-17 TP Vision Holding B.V Method and apparatus for selecting one of a plurality of video channels for viewings
US8954871B2 (en) 2007-07-18 2015-02-10 Apple Inc. User-centric widgets and dashboards
US8762864B2 (en) * 2007-08-06 2014-06-24 Apple Inc. Background removal tool for 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
US8797377B2 (en) 2008-02-14 2014-08-05 Cisco Technology, Inc. Method and system for videoconference configuration
CN101953162A (zh) * 2008-02-22 2011-01-19 夏普株式会社 集成接口装置及集成接口装置的控制方法
JP5123690B2 (ja) * 2008-02-27 2013-01-23 キヤノン株式会社 画面データ処理装置、画面データ処理方法、及びコンピュータプログラム
EP2252951B1 (de) 2008-03-11 2021-05-05 Ice Edge Business Solutions, Ltd. Automatische erstellung und bearbeitung von möbelstückentwürfen in einer design-software
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
USD595311S1 (en) * 2008-06-27 2009-06-30 Microsoft Corporation Icon for a portion of a display screen
RU2400940C9 (ru) * 2008-07-11 2010-12-10 Армен Жоржович Маргарян Способ синхронного воспроизведения интерактивных данных
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
USD598467S1 (en) * 2008-11-24 2009-08-18 Microsoft Corporation Image for a portion of a display screen
USD598926S1 (en) * 2008-11-26 2009-08-25 Microsoft Corporation Animated image for a portion of a display screen
USD598924S1 (en) * 2008-11-26 2009-08-25 Microsoft Corporation User interface for a portion of a display screen
USD598927S1 (en) * 2008-11-26 2009-08-25 Microsoft Corporation User interface for a portion of a display screen
USD598465S1 (en) * 2008-11-26 2009-08-18 Microsoft Corporation User interface for a portion of a display screen
USD598464S1 (en) * 2008-11-26 2009-08-18 Microsoft Corporation User interface for a portion of a display screen
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 キヤノン株式会社 情報処理装置、その制御方法、及びプログラム
WO2011039990A1 (ja) 2009-10-02 2011-04-07 パナソニック株式会社 立体視映像を再生することができる再生装置、集積回路、再生方法、プログラム
US20110080462A1 (en) * 2009-10-02 2011-04-07 Panasonic Corporation Playback device, integrated circuit, playback method, and program for stereoscopic video playback
US20110093888A1 (en) * 2009-10-21 2011-04-21 John Araki User selection interface for interactive digital television
JP5252352B2 (ja) * 2009-11-05 2013-07-31 クラリオン株式会社 情報端末装置、情報端末管理システム及びプログラム
CA2781638C (en) 2009-11-24 2019-06-04 Ice Edge Business Solutions Inc. Securely sharing design renderings over 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
US20110247028A1 (en) 2010-04-01 2011-10-06 Mark Eyer Receiver and System Using an Electronic Questionnaire for Advanced Broadcast Services
US9723360B2 (en) * 2010-04-01 2017-08-01 Saturn Licensing Llc Interests and demographics profile 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 (de) 2010-10-08 2014-11-26 Irise System und verfahren zur erweiterung einer visualisierungsplattform
KR20130138263A (ko) 2010-10-14 2013-12-18 액티브비디오 네트웍스, 인코포레이티드 케이블 텔레비전 시스템을 이용하는 비디오 장치들 간의 디지털 비디오의 스트리밍
RU2010144357A (ru) * 2010-11-01 2012-05-10 Владимир Валерьевич Канин (RU) Способ и система для обеспечения доступа абонента к сетевым данным и сетевым услугам с использованием терминальной приставки и машиночитаемые носители
US9338394B2 (en) 2010-11-15 2016-05-10 Cisco Technology, Inc. System and method for providing enhanced audio in a video environment
US8902244B2 (en) 2010-11-15 2014-12-02 Cisco Technology, Inc. System and method for providing enhanced graphics 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
US9111138B2 (en) 2010-11-30 2015-08-18 Cisco Technology, Inc. System and method for gesture interface control
US8972873B2 (en) * 2010-11-30 2015-03-03 International Business Machines Corporation Multi-environment widget assembly, generation, and operation
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
WO2012138660A2 (en) 2011-04-07 2012-10-11 Activevideo Networks, Inc. Reduction of latency in video distribution networks using adaptive bit rates
CN102209145A (zh) * 2011-05-11 2011-10-05 深圳雅图数字视频技术有限公司 基于移动终端的遥控器构建方法和具遥控功能的移动终端
CA2796664C (en) 2011-06-11 2019-02-12 Dirtt Environmental 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 (de) * 2011-08-18 2013-02-20 Uniqoteq Ltd Verfahren, Vorrichtung und Computerprogramm zur Bereitstellung von benutzerspezifischer Information auf einer grafischen Benutzerschnittstelle
USD691172S1 (en) * 2011-09-12 2013-10-08 Microsoft Corporation Display screen with graphical user interface
KR101966708B1 (ko) * 2011-10-28 2019-08-14 삼성전자 주식회사 배경 컨텐츠 운용 방법 및 이를 지원하는 단말기
US10409445B2 (en) 2012-01-09 2019-09-10 Activevideo Networks, Inc. Rendering of an interactive lean-backward user interface on a television
EP2632119A1 (de) * 2012-02-27 2013-08-28 Doro AB Lineare Benutzerschnittstelle mit Zwei-Modus-Zugang
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
USD728610S1 (en) * 2012-10-31 2015-05-05 Lg Electronics Inc. Television receiver with graphical user interface
US9280656B2 (en) * 2012-11-16 2016-03-08 University-Industry Foundation, Yonsei University Device and method for providing security channel interface
US12147645B2 (en) * 2013-03-01 2024-11-19 Autodesk, Inc. Logical structure-based document navigation
US11205036B2 (en) * 2013-03-11 2021-12-21 Oracle International Corporation Method and system for implementing contextual widgets
KR20140111497A (ko) * 2013-03-11 2014-09-19 삼성전자주식회사 터치 스크린의 화면에 표시된 아이템을 삭제하는 방법, 저장 매체 및 휴대 단말
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 이강욱 복수의 입력 방법 간 전환 방법
US9326047B2 (en) 2013-06-06 2016-04-26 Activevideo Networks, Inc. Overlay rendering of user interface onto source video
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
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
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
CN103489432B (zh) * 2013-08-30 2016-04-13 小米科技有限责任公司 电子设备及资源显示方法
CN103491405B (zh) * 2013-08-30 2018-06-05 小米科技有限责任公司 遥控系统、遥控器、显示设备及遥控方法
KR20150026132A (ko) * 2013-08-30 2015-03-11 삼성전자주식회사 전자 장치를 이용하여 오브젝트를 공유하는 방법 및 장치
US9973462B1 (en) 2013-10-21 2018-05-15 Google Llc Methods for generating message notifications
JP6220712B2 (ja) * 2014-03-26 2017-10-25 京セラ株式会社 携帯端末および携帯端末の制御方法
US20170045953A1 (en) * 2014-04-25 2017-02-16 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
US10936712B1 (en) * 2019-06-06 2021-03-02 NortonLifeLock Inc. Systems and methods for protecting users
CN113041614B (zh) * 2019-12-26 2023-05-05 世熠网络科技(上海)有限公司 游戏中的游戏对象显示处理方法及装置、可读存储介质
TWI714480B (zh) * 2020-03-19 2020-12-21 索爾智慧機械有限公司 拉帽安裝工具測試儀器之數據顯示方法
USD962254S1 (en) 2020-06-19 2022-08-30 Apple Inc. Display screen or portion thereof with graphical user interface
EP4176441A1 (de) 2020-07-06 2023-05-10 Nurocor, Inc. Entwurf einer grafischen studie für studien der klinischen forschung
USD1081702S1 (en) * 2020-11-02 2025-07-01 Nurocor, Inc. Display screen with a graphical user interface
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
CN114564275B (zh) * 2022-03-16 2024-09-17 贝壳找房(北京)科技有限公司 元素列表的刷新控制方法、装置、存储介质及电子设备
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 (35)

* 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
US5581243A (en) * 1990-06-04 1996-12-03 Microslate Inc. Method and apparatus for displaying simulated keyboards on touch-sensitive displays
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
RU2032212C1 (ru) * 1993-05-12 1995-03-27 Владимир Александрович Рыжов Способ ввода символьной информации в эвм
JPH0793142A (ja) * 1993-09-20 1995-04-07 Nec Corp 長期プロジェクト向きソースコード管理方式
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
EP0760122B1 (de) 1994-05-16 2002-01-30 Apple Computer, Inc. Umschaltung zwischen darstellungs-/verhaltensthemen in graphischen benutzeroberflächen
JPH08123673A (ja) * 1994-10-27 1996-05-17 Canon Inc プログラム管理方法及びそのシステム
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
EP1228416A2 (de) 2002-08-07
MY138274A (en) 2009-05-29
AU1293801A (en) 2001-05-14
RU2002115065A (ru) 2004-03-10
WO2001033325A2 (en) 2001-05-10
IL149396A0 (en) 2002-11-10
EP1098244A2 (de) 2001-05-09
KR20020044181A (ko) 2002-06-14
DE60027206D1 (de) 2006-05-18
EP1285337B1 (de) 2006-04-05
CA2389382A1 (en) 2001-05-10
WO2001033325A3 (en) 2002-05-02
HK1045203A1 (zh) 2002-11-15
JP2003521764A (ja) 2003-07-15
CN1316356C (zh) 2007-05-16
MXPA02004356A (es) 2003-01-28
KR100666450B1 (ko) 2007-01-09
NO20022071L (no) 2002-07-02
JP2014089751A (ja) 2014-05-15
JP2012181849A (ja) 2012-09-20
US7030890B1 (en) 2006-04-18
ATE322716T1 (de) 2006-04-15
EP1285337A2 (de) 2003-02-26
JP2003514273A (ja) 2003-04-15
WO2001033344A2 (en) 2001-05-10
AU1294701A (en) 2001-05-14
EP1098244A3 (de) 2001-06-13
RU2267151C2 (ru) 2005-12-27
MY130356A (en) 2007-06-29
NO20022071D0 (no) 2002-04-30
AU781596B2 (en) 2005-06-02
BR0015269A (pt) 2003-07-01
WO2001033344A3 (en) 2002-11-28
JP5713459B2 (ja) 2015-05-07
KR20020050785A (ko) 2002-06-27
CN1433541A (zh) 2003-07-30

Similar Documents

Publication Publication Date Title
DE60027206T2 (de) Darstellung von graphischen objekten
DE60022219T2 (de) Graphisches fenstersystem
DE69936844T2 (de) Implementierung einer benutzerschnittstelle in einem fernsehbasierten hyperlinknavigationssystem
DE69428647T2 (de) Verfahren und Gerät zur Erzeugung eines zweiten gemischten Bildsignals im räumlichen Kontext eines ersten Bildsignals
DE112013004457B4 (de) System und Verfahren zum Erzeugen von bearbeiteten Bildern unter Nutzung eines eingebetteten Plug-ins
DE69129091T2 (de) System und Verfahren zum Emulieren einer Fensterverwaltungsumgebung mit einer einheitlichen Fensterschnittstelle
DE69525338T2 (de) Abstraktion von mustern und farben in einer graphischen benutzerschnittstelle
DE60116343T2 (de) Webserver
DE202011110780U1 (de) Multifunktionsanzeigevorrichtung
DE112011105933T5 (de) Verfahren und Vorrichtungen zum dynamischen Anpassen einer virtuellen Tastatur
DE202013012499U1 (de) Hintergrundseite auf Browserebene zur Bereitstellung mehrfacher Ansichten
AU2022246444B2 (en) System and method for smart interaction between website components
DE69602769T2 (de) Rückkopplung mit expansionsauswahl und graphische wechselwirkung
DE69633430T2 (de) Netzwerkkomponentensystem
EP1098246A1 (de) Darstellung von graphischen Objekten
DE69937400T2 (de) Zusammenarbeit von einrichtungen bei hypertext seiten
DE102009023319A1 (de) Verfahren und Vorrichtung zum Umgang mit einem Anwendungsfensters innerhalb einer grafischen Benutzeroberfläche

Legal Events

Date Code Title Description
8364 No opposition during term of opposition