DE69535524T2 - Anwenderdefinierbare graphische schnittstelle für informationszugriff in einem elektronischen dateisystem - Google Patents

Anwenderdefinierbare graphische schnittstelle für informationszugriff in einem elektronischen dateisystem Download PDF

Info

Publication number
DE69535524T2
DE69535524T2 DE69535524T DE69535524T DE69535524T2 DE 69535524 T2 DE69535524 T2 DE 69535524T2 DE 69535524 T DE69535524 T DE 69535524T DE 69535524 T DE69535524 T DE 69535524T DE 69535524 T2 DE69535524 T2 DE 69535524T2
Authority
DE
Germany
Prior art keywords
icon
animation
command
user
directory
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
DE69535524T
Other languages
English (en)
Other versions
DE69535524D1 (de
Inventor
Michelle Baker
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.)
International Business Machines Corp
Original Assignee
Michelle Baker
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=23229387&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE69535524(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Michelle Baker filed Critical Michelle Baker
Publication of DE69535524D1 publication Critical patent/DE69535524D1/de
Application granted granted Critical
Publication of DE69535524T2 publication Critical patent/DE69535524T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers

Description

  • Hintergrund der Erfindung
  • 1. Gebiet der Erfindung
  • Die Erfindung bezieht sich auf eine grafische Benutzerschnittstelle für den Zugriff auf in einem Computer gespeicherte Informationen. Insbesondere bezieht sich die Erfindung auf eine anwenderdefinierbare grafische Schnittstelle für ein Computer-Betriebssystem, das bildhafte Informationen und zusätzlich sowohl Animationen als auch Tonsignale benutzt.
  • 2. Stand der Technik
  • Sehr frühe Computer waren mit einer minimalen Schnittstelle ausgestattet, die häufig aus kaum mehr als Schaltern und Lampen bestand. Reihen von Schaltern wurden in Positionen eingestellt, die Binärzahlen darstellten, um eine Eingabe durchzuführen, sowie Reihen von Lampen wurden eingeschaltet und stellten Binärzahlen dar, um eine Ausgabe durchzuführen. Schließlich enthielten Computer-Eingaben und Computer-Ausgaben Text und Dezimalzahlen, die durch Lochkarten eingegeben und mit Zeilendruckern ausgegeben wurden. Ein wichtiger Fortschritt für Computer war das interaktive Videoanzeigeterminal (VDT). Frühe VDTs zeigten mehrere Zeilen von alphanumerischen Zeichen an und erhielten eine Eingabe von einer „QWERTY"-Tastatur. VDTs stellten einen großen Fortschritt gegenüber Schaltern und Lampen und sogar gegenüber Lochkarten und Zeilendruckern dar.
  • Nachdem Computer komplexer wurden, war es notwendig, die Art und Weise des Speicherns und Wiedererlangens von Informationen zu systematisieren. Das hierarchische Dateisystem wurde entwickelt und stellt heute immer noch das einzige System dar, das, von wenigen Ausnahmen abgesehen, benutzt wird. Bei einem hierarchischen Dateisystem werden Informationen in Dateien und Dateien werden in Verzeichnissen gespeichert. Verzeichnisse können in anderen Verzeichnissen gespeichert werden und werden dann als Unterverzeichnis bezeichnet. Bei der Verwendung dieses Systems kann jede Datei durch Benutzung eines Pfadnamens lokalisiert werden, der den Pfad von einem Quellenverzeichnis durch ein oder mehrere Unterverzeichnisse zu der Datei führt; zum Beispiel kann ein typischer Pfadname die folgende Form annehmen: „Quellenverzeichnis/Verzeichnis/Unterverzeichnis/Dateiname".
  • Zusätzlich zu der Entwicklung des hierarchischen Dateisystems erfolgte die Entwicklung verschiedener „Betriebssysteme". Frühere Computer erforderten kein „Betriebssystem" per se. Sie wurden manuell programmiert, um eine einzige Aufgabe durchzuführen und wurden dann für eine andere Aufgabe neu programmiert. Programme wurden auf Lochkarten oder Band gespeichert und durch einen System-Operator bei Bedarf individuell in den RAM-Speicher des Computers geladen. Mit der Entwicklung verschiedener Dateisysteme, einschließlich des hierarchischen Dateisystems, konnten verschiedene Programme und Daten auf demselben Medium gespeichert und zum Laden in den RAM-Speicher des Computers ausgewählt werden. Ein Betriebssystem ist ein Programm, das dazu benutzt wird, auf Informationen auf einem Speichermedium zuzugreifen und diese in den RAM-Speicher zu laden. Das Betriebssystem ermöglicht es dem Computer, die Inhalte von Verzeichnissen anzuzeigen und auszuführende Programme sowie zu manipulierende Daten aus den Inhalten der Verzeichnisse auszuwählen. Jedes Betriebssystem weist daher eine Benutzer-Schnittstelle auf, d.h. eine Art der Annahme von Eingaben eines Benutzers und eine Art der Anzeige von Ausgaben für einen Benutzer. Die Eingabe enthält üblicherweise Befehle für das Betriebssystem, um Informationen in Verzeichnissen zu finden, um die Inhalte von Verzeichnissen anzuzeigen, um Dateien in Verzeichnissen für die Ausführung durch den Computer auszuwählen usw. Zusätzlich bieten Betriebssysteme Mittel für den Benutzer, Dateien durch deren Bewegung zu benutzen, sie zu löschen, zu kopieren usw.. Ausgaben durch das Betriebssystem enthalten üblicherweise Anzeigen der Inhalte von Verzeichnissen; Anzeigen der Inhalte von Dateien; Fehlermeldungen, wenn ein Befehl nicht abgeschlossen werden kann; Bestätigungsmeldungen, wenn ein Befehl abgeschlossen ist, usw.. Wird ein Programm durch das Betriebssystem für eine Ausführung ausgewählt, so übernimmt bei vielen Betriebssystemen das ausgewählte Programm die Steuerung des Computers und gibt die Steuerung an das Betriebssystem zurück, wenn das Programm abgeschlossen ist. Moderne Betriebssysteme teilen sich die Steuerung mit Programmen, und mehrere Programme können während des Laufes des Betriebssystems durchgeführt werden.
  • Die einfachste Schnittstelle eines Betriebssystems ist als „Befehlszeilen-Schnittstelle" bekannt. Während diese Art einer Schnittstelle nicht notwendigerweise ein primitives Betriebssystem bedeutet, ist es als Schnittstelle jedoch primitiv. Die Befehlszeilen-Schnittstelle besteht nur aus Text und gibt an den Benutzer einen beliebigen „Prompt" (Bereitschaftsmeldung) wie „C:\" oder „%/:". Die einzige dem Benutzer durch den Befehlzeilen-Prompt zugeführte Information besteht darin, dass das Betriebssystem bereit ist, einen Befehl zu empfangen, und in dem Fall von „C:\" bedeutet es, dass das Betriebssystem Befehle unter Bezug auf das derzeit ausgewählte Quellenverzeichnis „C" ausführen wird. Die Befehle, auf die das Betriebssystem anspricht, sind häufig schwer nachzuvollziehende Abkürzungen wie DIR, um die Inhalte des gerade ausgewählten Verzeichnisses anzuzeigen, und CD (change directory), um ein anderes Verzeichnis auszuwählen. Darüber hinaus können die durch die Betriebssystem-Schnittstelle gelieferten Antworten auf Befehle wie DIR in gleicher Weise obskur sein, wie die Anzeige einer schnell rollenden Liste von Verzeichnisinhalten oder die kryptische Mitteilung „Abort, Retry, Fail". Um die Inhalte eines Dateisystems unter Benutzung einer Befehlszeilen-Schnittstelle auszuwerten, muss der Benutzer also wiederholt DIR und CD eingeben und sich zu erinnern versuchen, wie die rollenden Listen von Dateinamen sich zueinander in der Hierarchie des Dateisystems verhalten. Viele Benutzer betrachten dies als eine langwierige und mühsame Erfahrung.
  • In letzter Zeit wurde die Befehlszeilen-Schnittstelle zugunsten einer vollständig grafischen Benutzer-Schnittstelle ("GUI"= graphical user interface) aufgegeben, wie sie durch das Apple Macintosh-Betriebssystem und das Betriebssystem IBM OS/2 dargestellt wird. Heute sind GUI-Schnittstellen im Betriebssystem „WIMP"-Schnittstellen, d.h. sie benutzen Fenster, Icons, Menüs und Zeiger. In der Entwicklung von WIMP-Schnittstellen besteht ein zentraler Punkt darin, dass die Informationen für eine Anzeige auf der begrenzten Bildschirmfläche eines Computer-Monitors organisiert werden. Diese Tatsache wurde angesprochen durch Benutzung der Metapher eines ungeordneten Desktops, um das Design und Layout von Informationen auf der grafischen Anzeige zu führen. Die Metapher eines ungeordneten Desktops, die in der Entwicklung von Räumen, und in der letzten Zeit von 3-D-Räumen, entstand, wurde zu einem universellen Organisationsparadigma für die Anzeige von Benutzerinteraktionen in einem Computer-Betriebssystem. Zusätzlich zu den Macintosh- und OS/2-Betriebssystem- Schnittstellen, sind Unix-Systeme X-Windows, Microsoft-Windows und andere auf diese Metapher gestützt. In einer WIMP-Schnittstelle werden Fenster benutzt, um Bereiche der Anzeige abzugrenzen, die einzelnen Programmen zugeordnet sind, grafische Icons werden benutzt, um Objekte wie Dateien und Verzeichnisse darzustellen, die dem Betriebssystem bekannt sind, Menüs können angezeigt werden, um Text-String-Namen von verfügbaren Operationen aufzulisten, und ein Zeiger-Cursor wird benutzt, um Objekt-Icons oder Menü-Teile auszuwählen, die auf der Anzeige sichtbar sind.
  • Grafische Layouts, die durch bewegbare Fenster, Icons und Menüs der WIMP-Schnittstelle verfügbar sind, sind sehr erfolgreich gewesen, Informationen auf einer Computer-Anzeige zu organisieren, insbesondere Daten von ablaufenden alternativen Programmen. Dennoch bieten sie begrenzte Funktionen für die Darstellung von Abläufen des Betriebssystems und für grafische Informationen über die Dateien und Verzeichnisse, wie sie im Dateisystem vorhanden sind. Die meisten Computer-Benutzer halten es für leichter, die grafische Schnittstelle zu lernen und zu benutzen, als die Befehlszeilen-Schnittstelle. Viele haben die grafische Schnittstelle als „intuitiv" beschrieben. Viele jedoch halten sie nicht für besonders „intuitiv" und benötigen mehr Zeit, sie zu benutzen, als es bei anderen Menschen der Fall ist.
  • Im Gegensatz zu ihrer gegenüber den Befehlszeilen-Schnittstellen äußerst verbreiteten Verwendung sind die grafischen Schnittstellen, wie sie derzeit für die Funktion von Betriebssystemen benutzt werden, immer noch irgendwie beschränkt. Zum Beispiel sind die Icons üblicherweise alle rechteckig und haben die gleiche Größe, wie zum Beispiel 32×32 Pixel. Sie sind außerdem allgemein gehalten. Das heißt zum Beispiel, dass ein Dokument, das das Thema Elefanten betrifft, das gleiche Icon hat wie ein Dokument, das das Thema Rosen betrifft. Typischerweise sind alle Verzeichnis-Icons identische Grafiken eines Ordners ohne grafische Anzeige darüber, was der Ordner an Inhalt oder Informationsmenge enthält. Ein Ordner mit einer Datei hat dieselbe Icon-Größe und -Form wie ein Ordner, der zwanzig Dateien enthält. Somit müssen Icons für Dateien und Ordner immer durch einen Text-String zur Identifizierung ergänzt werden. Darüber hinaus sind alle in den GUI gezeichneten Fenster identisch, ausgenommen der Text-String, der üblicherweise in der Titelzeile des Fensters erscheint.
  • Somit wird keine grafische Information gegeben, um den Benutzer darüber zu informieren, welches Verzeichnis betrachtet wird. Der Benutzer muss die Titelzeile lesen und sich die Zuordnung zwischen dem Text-String und dem Verzeichnisinhalt merken, um festzustellen, welches Verzeichnis betrachtet wird.
  • Es wurde eine Anzahl von Erweiterungen zu den frühen WIMP-Schnittstellen geschaffen, um die Möglichkeiten für den Benutzer zu verbessern, Icons bedeutungsvollen Objekten oder Aktionen zuzuordnen. Es ist für den Benutzer möglich, Icons durch Beschneiden und Einfügen von Grafiken oder durch Zeichnen eines Icons mit einem Icon-Editor anzupassen. Dieses Verfahren ist jedoch häufig langwierig und das Ergebnis nicht immer informativ. Die einzige Editing-Software für Icons, die derzeit verfügbar ist und automatisch den Informationsgehalt eines Icons verbessert, sind Programme, die grafische Daumennagel-Icons für grafische Dateien erzeugen. Mit diesen Programmen wird eine Datei, die das Bild eines Elefanten enthält, zum Beispiel mit einem Icon versehen, das eine Miniaturversion eines Elefantenbildes darstellt. Da diese Programme nicht für Dateien gelten, die einen Text oder ein ausführbares Programm enthalten, bieten sie keine allgemeine Lösung für das Problem von nicht unterscheidbaren grafischen Icons.
  • Auch für Software-Anwendungsentwickler wird es immer schwerer, bedeutungsvolle grafische Icons zu entwerfen, die die durch bestehende WIMP-Schnittstelien vorgeschriebenen Einschränkungen einhalten und sich von den gerade benutzten unterscheiden. Eine Lösung des Problems des Entwurfs von bedeutungsvollen Grafiken für Icons besteht darin, mit animierten und mehrdimensionalen Icons zu arbeiten. Es ist anzunehmen, dass Animationen benutzt werden können, um den Ausdruck zu verbessern und die Informationsmenge zu vergrößern, die durch ein Icon ausgedrückt werden kann. Einige dieser Untersuchungen wurden in bestehende Betriebssystem-Schnittstellen integriert, insbesondere für die allgemeine Verfahrensdarstellung. Wird zum Beispiel eine Bearbeitung einer Datei durchgeführt oder ein Programm geöffnet, so wird der Mauszeiger momentan animiert oder nimmt eine andere Grafikform an, zum Beispiel durch Anzeigen einer Sanduhr. Es bestehen jedoch strenge Beschränkungen für die Benutzung von animierten Icons in derzeitigen Betriebssystem-Schnittstellen. Zum Ersten sind sie nur möglich für Cursor-Animationen. Es ist derzeit nicht möglich, auch nicht für Anwendungsentwickler, animierte Icons für Dateiobjekte zur Verfügung zu stellen, weil bestehende Betriebssystem-Schnittstellen keine Unterstützung für solche Icons bieten. Zum Zweiten werden Cursor-Animationen durch Betriebssystementwickler konstruiert und dem Betriebssystem fest zugeordnet. Software-Entwickler können alternative Cursor-Animationen benutzen, sie müssen jedoch eine Cursor-Animation aus einer kleinen Anzahl von Möglichkeiten auswählen, die in dem Betriebssystem enthalten sind. Diese Auswahl von animierten Icons ist fest und endlich.
  • Ein anderer straff reglementierter Aspekt der derzeitigen grafischen Schnittstellen besteht darin, dass sie verhältnismäßig statisch sind. Mit wenigen Ausnahmen, wie zum Beispiel die oben beschriebenen Cursors oder das Auf-Zoomen von Fenstern, ist die grafische Darstellung nicht animiert. Während die Betriebssystem-Schnittstelle eine statische grafische Darstellung von Objekten wie Dateien und Verzeichnissen ist, existiert kaum eine grafische Darstellung von Verfahren, die vom Betriebssystem durchgeführt werden. Wenn der Benutzer ein Verfahren beginnt (wie zum Beispiel das Kopieren einer Datei oder das Starten eines Programms usw.), so besteht also keine intuitive Anzeige durch das Betriebssystem an den Benutzer, was gerade abläuft. Die Sanduhr-Animation des Maus-Cursors kann zum Beispiel anzeigen, dass das Betriebssystem oder das Programm irgendeine Funktion ausführt, es gibt jedoch keine Anzeige, was das für eine Funktion ist. Sogar Animationen wie die Sanduhr oder das Zoomen eines Fensters, die einen Ablauf anzeigen, können nicht für die grafische Anzeige von Interaktionen mit Darstellungen von Objekten wie Dateien oder Verzeichnissen, die dem Betriebssystem bekannt sind, benutzt werden. Dies ist ein weiteres Ergebnis der Tatsache, dass durch die Betriebssystem-Schnittstelle angezeigte Animationen im Voraus durch Software-Entwickler konstruiert werden müssen.
  • Eine andere Schwierigkeit mit WIMP-Schnittstellen für das Betriebssystem tritt mit der Benutzung von Menüs für die Auswahl und Ausführung der meisten Befehle des Betriebssystems auf. Für viele Benutzer ist dies eine Verbesserung gegenüber den alten Befehlszeilen-Schnittstellen, bei denen sich ein Benutzer den korrekten Text-String-Identifizierer merken und Tipp- oder Rechtschreibfehler vermeiden musste, um einen Befehl aufzurufen. Die Notwendigkeit jedoch, Menüs durchzusehen, um den korrekten, durch die Maus anzusteuernden Text- String für einen Befehl zu finden, ist für viele Computer-Benutzer lästig. Dies erfordert, dass der Maus-Zeiger von der Arbeitsfläche fort bewegt und eine Anzahl von hierarchisch organisierten Listen nach dem gewünschten Befehl durchgesehen werden muss. Obgleich beschleunigte Tastenfolgen normalerweise für die Befehlsauswahl verfügbar sind, halten es viele Computer-Benutzer für schwierig, diese zu lernen und zu benutzen. Dies rührt daher, dass sie normalerweise erfordern, dass eine Steuertaste in Verbindung mit einer anderen Taste benutzt werden muss. Ein Benutzer wird bezwungen, die Hand von der Maus zu nehmen und Tasten zu drücken, ein Vorgang, der die Orientierung des Mauszeigers unterbricht und eine neue Positionierung der Hand und der Augen erfordert, wenn das Arbeiten mit der Maus fortgesetzt werden soll.
  • In letzter Zeit haben Software-Entwickler Anwenderprogramme entwickelt, die es einem Benutzer erlauben, eine alternative Desktop-Schnittstelle gegenüber denen der Standardbetriebssysteme zu konfigurieren. Diese Programme erweitern die zugrundeliegende Darstellung eines Icons und ermöglichen es, dass die Icon-Grafiken andere Größen und Formen gegenüber den Standard-Icons von 32×32 Pixel haben, die in üblichen Betriebssystem-Schnittstellen verfügbar sind. Dies erfolgt, indem die Benutzer veranlasst werden, Icons aus einem großen Satz auszuwählen, der durch die Schnittstellenentwickler vorgesehen bereitgestellt wird. Edmarks KidDesk ist ein Beispiel für ein solches Programm, das die Desk-Top-Metapher für die Benutzung junger Kinder erweitert. Die Software kann installiert werden, um jungen Kindern Zugriff zu einem kleinen Satz von Programmen zu geben. Wie bei der auf Windows basierenden Software für Erwachsene ist solche Software auf eine einzige grafische Ansicht und auf einen Satz von vorentworfenen Icons beschränkt.
  • Die Durchführung einer Benutzerinteraktion und die Anzeige der Dateien und Verzeichnisse, die ein Dateisystem des Computers ausmachen, ist eine zentrale Funktion jeder Betriebssystem-Schnittstelle. Wie schon früher erwähnt, sind Befehlszeilen-Schnittstellen besonders schwierig für die Benutzer gewesen, da sie von einem Benutzer verlangten, dass er wiederholt eine Folge von Befehlen wie DIR und CD aufruft. Da es so schwierig und zeitraubend ist, durch ein Dateisystem zu navigieren, das eine Befehlszeilen-Schnittstelle verwendet, wurden Dateisystem-Managementprogramme entwickelt für hierarchische Dateisysteme. Die meisten dieser Programme enthalten eine quasi-grafische Darstellung des Dateisystems „Tree" (Baumstruktur), so dass der Benutzer sofort (oder auf wenigen Bildschirmdarstellung) erkennen kann, wie Verzeichnisse, Unterverzeichnisse und Dateien zueinander organisiert sind. Dateisystem-Management-programme stellen gegenüber der reinen Befehlszeilen-Schnittstelle durch laufendes Anzeigen von Befehlsmenüs und/oder Dateilisten Verbesserungen dar. Die durch diese Programme vorgesehene Schnittstelle stützt sich jedoch hauptsächlich auf Text. Der Benutzer wird gezwungen, aufgelistete Informationen zu lesen. Mit der Ausnahme des aktuellen Textes sehen alle Dateien und Verzeichnisse gleich aus, d.h. wie eine Textzeile. Nur die relative Stelle der Textzeilen in dem hierarchischen Baum gibt einen Hinweis, wie sich die Dateien und Verzeichnisse zueinander verhalten.
  • WIMP-Schnittstellen für das Betriebssystem lassen Verbesserungen der früheren Dateisystem-Managementprogramme zu, indem die Benutzung von getrennten Fenstern für die Anzeige des Verzeichnisinhalts ermöglicht wird und einige Dateien ausführbar sind, wenn sie mit einer Zeigeanordnung angeklickt werden. Bei Apple Macintosh ist ein Dateisystem-Management als Teil des Betriebssystems eingeschlossen, während Microsoft Windows und IBM OS/2 ein ähnliches File-Manager-Programm zusammen mit dem Grundbetriebssystem enthalten. In jedem dieser Systeme kann der Benutzer das Dateisystem erkunden und durch dieses navigieren, indem er mit Hilfe einer Maus oder einer anderen Zeigeranordnung auf Icons zeigt und klickt. Um zum Beispiel den Inhalt einer Disk anzusehen, würde der Benutzer den Mauszeiger auf den Icon der Disk richten und die Maustaste zweimal betätigen.
  • Bei Macintosh, das die größte Funktionalität im Dateisystem-Management hat, spricht die Schnittstelle auf Mausklicks durch Öffnen eines Fensters an, das Icons enthält, die auf der Disk befindliche Verzeichnisse und Dateien darstellen. Unterhalb oder neben jedem Icon ist der Name der Datei oder des Verzeichnisses vorhanden. Wenn in einer Betriebsart angezeigt wird, so liegt jedes Icon auf einer Zeile, der der Dateiname, die Größe der Datei, das Änderungsdatum usw. folgt. Durch einfaches Zeigen und Klicken der Maustaste kann der Benutzer die Icon-Anzeige alphabetisch, chronologisch, entsprechend der Größe usw. umordnen. Die Icons bleiben auf dem Schirm sichtbar, bis der Benutzer das Fenster mit einem entsprechenden Mausklick schließt. Sind mehr Icons vorhanden, als auf dem Bildschirm angezeigt werden können, so kann der Fensterinhalt horizontal und vertikal gerollt werden. Dies ist wesentlich günstiger als die Verzeichnisliste einer Befehlszeilen-Schnittstelle, die schnell aus dem Bildschirm herausrollt und nicht mehr rückwärts gerollt werden kann. Darüber hinaus scheint jedes der Verzeichnis-Icons auf Mausklicks zu reagieren durch Anzeigen seines Inhalts entweder in einem anderen Fenster oder in einem hierarchischen Baum in demselben Fenster. Abhängig von der Größe des Anzeigeschirms kann der Benutzer die Inhalte mehrerer Verzeichnisse nebeneinander betrachten. Dateien und Verzeichnisse können bewegt und kopiert werden durch Klicken auf ihre Icons und Ziehen auf das Icon des Verzeichnisses oder der Disk, in die sie kopiert oder bewegt werden sollen. Dies ist viel einfacher als
    „copy directory1\subdirectory1\filename
    directory2\subdirectory2\filename"
    einzugeben, um eine Datei zu kopieren. Darüber hinaus können mehrere Icons durch die Maus ausgewählt und als Gruppe zu einem neuen Ort gezogen werden. Dateien, Gruppen von Dateien und vollständige Verzeichnisse werden durch Ziehen auf ein grafisches Icon gelöscht, das einen Papierkorb darstellt. Dateien und/oder Gruppen von Dateien können geöffnet oder Programme können ausgeführt werden durch Anklicken mit der Maus. Einige Programm-Icons können auf „Drag and Drop"-Vorgänge ansprechen, so dass, wenn ein Datei-Icon auf einen Programm-Icon gezogen wird, das Programm eine Operation an dieser Datei ausführt.
  • Verbesserungen in der Benutzung von auf WIMP basierenden Schnittstellen an dem Dateisystem sind hauptsächlich ein Ergebnis der Tatsache, dass der Computer-Monitor „Real Estate" besser ausgenutzt wird, um Informationen über die Beziehungen zwischen Verzeichnissen und Dateien anzuzeigen. Mit diesen Schnittstellen sind Computer-Benutzer in der Lage, die Dateisystemstruktur auf wenigen Bildschirmdarstellungen oder Bildschirmfenstern anzusehen. Falls erforderlich, erleichtert die Benutzung einer Zeigeanordnung das Hin- und Herschalten zwischen diesen Fenstern, um die Erinnerung zu unterstützen und ein vollständiges mentales Bild der Dateisystemstruktur zu entwickeln. Da die Kapazität von Speichereinheiten wie Festplatten und CD-ROMs ansteigt und Netzwerkdatensysteme sich immer weiter verbreiten, sind bestehende Schnittstellen für das Dateimanagement nicht in der Lage, Benutzern bei dem Versuch zu helfen, die enorme Anzahl von derzeit verfügbaren Dateien zu verwalten oder zu durchsuchen. Eine sehr große Anzahl von Fenstern muss geöffnet werden, um ein umfangreiches Dateisystem zu durchsuchen, und das Anzeigen von Verzeichnisbäumen erfordert inzwischen Textmengen, die viele Bildschirme füllen. Ist das der Fall, beginnen grafische Anzeigen des Dateisystems an alte Befehlszeilen-Schnittstellen zu erinnern, da es für den Benutzer nicht mehr möglich ist, die Dateisystemstruktur auf einer kleinen Anzahl von Bildschirmdarstellungen zu untersuchen.
  • In letzter Zeit wurden in großem Umfange Untersuchungen durchgeführt, die sich auf die Verbesserung der Benutzermöglichkeiten richteten, Dateien von sehr großen Dateisystemen zu verwalten, zu durchsuchen und aufzurufen. Fortschritte in der Leistung von Computern und in der Computer-Grafik haben die Entwicklung von Software-Werkzeugen ermöglicht, die versuchen, die Kapazität des menschlichen visuellen Systems für eine schnelle Verarbeitung von großen Informationsmengen auszunutzen. Ansichten, visuelle Abstraktionen und andere Informationsvisualisierungstechniken wurden für die Problemlösung und das Verwalten von Dateien in Computer-Dateisystemen angewendet. Zum Beispiel erhöhen Cone Trees (Kegelbäume) die Informationsmenge (zum Beispiel die Anzahl der angezeigten Dateien) durch Erweiterungsdiagramme ähnlich denen, die durch bestehende Dateimanagementprogramme in drei Dimensionen und durch das Hinzufügen von Animation (zum Beispiel Rotieren der Baumstrukturen) bereitgestellt werden. Diese Techniken basieren auf der Benutzung von Übersichten und visueller Abstraktion der Verzeichnisstruktur. Sie können nützlich für das Navigieren in einer Dateisystemstruktur sein, in der die Dateien entweder dem Benutzer bekannt sind oder leichter durch Text-String-Namen beschreibbar sind. Sie bieten jedoch nicht viel Hilfe für den Benutzer, der unbekannte Dateisysteme untersucht, wie sie in Netzwerken verwendet werden, weil Text-String-Namen im Allgemeinen als Beschreibung von Datei- oder Verzeichnisinhalten nicht ausreichen.
  • Bei abstraktionsorientierten Verfahren werden Stichworte (cues) entfernt, die nicht direkt relevant sind (zum Beispiel, indem nur die Struktur eines Dateisystems angezeigt wird). Für diese Werkzeuge sind die früher beschriebenen Be schränkungen des Betriebssystems für grafische Icons kein Problem, weil kleine generische Icons und/oder Text-Strings die bevorzugte Darstellung für Dateisystemobjekte sind. Eine unterschiedliche Herangehensweise an das Problem, das Benutzer bei der Lokalisierung und Identifikation von Dateien in einem Computer-Dateisystem haben, liegt in der Unterstützung der menschlichen Fähigkeit, ungewöhnliche Merkmale von Phänomenen zum Indexieren und Auffinden von Informationen einzusetzen. Memoirs, ein Dateiverwaltungswerkzeug, das für Erwachsene entwickelt wurde, wendet diese Herangehensweise an, indem Möglichkeiten bereitgestellt werden, das Gedächtnis für Ereignisse als Anreiz zum Erkennen und Indexieren von Dateien anzuregen. Jedoch sind auf Ereignissen basierende Anreize oder Stichworte zum Wiederauffinden noch weniger zu gebrauchen als Text-String-Namen, wenn ein ungewohntes Dateisystem durchsucht wird. Keines dieser Verfahren hat die bekannte menschliche Fähigkeit zum Erkennen detaillierter visueller Information genutzt und unterscheidende visuelle Einzelheiten für sowohl Erkennung als auch Rückruf genutzt. Zur Zeit muss die Untersuchung ungewohnter Dateisysteme, lernender Dateisystemstrukturen und das Wiederauffinden von speziellen Informationen in einem Dateisystem mit wenigen effektiven mnemotechnischen Stichwörtern stattfinden. Außerdem ist es nicht möglich, die Kraft komplexer, detaillierter Bilder zu nutzen, um einem Benutzer Informationen zur Orientierung und Einweisung in den Inhalt eines ungewohnten Dateisystems zukommen zu lassen. Während „ein Bild sagt mehr als tausend Worte" gilt, müssen sich die Erforscher des Cyberspace mit einer Beschreibung aus zwei oder drei Wörtern und vielleicht einem 32×32 Pixel-Icon zufrieden geben, um den Inhalt eines Verzeichnisses oder einer Datei anzuzeigen.
  • Bestehende Schnittstellen für das Dateimanagement, wie die von Macintosh, sind entwickelt worden in Übereinstimmung mit der Metapher des Desktop. Die Benutzung von Fenstern zur Abgrenzung verschiedener Verzeichnislisten und Text-String-Beschreibungen von Dateien und Verzeichnissen und sogar die grafischen Icons von Dateiordnern und Papierseiten, die Verzeichnisse und Dateien bezeichnen, wurden entworfen, um an eine Desktop-Umgebung zu erinnern. Während die Metapher des Desktop für die Aufgabenumschaltung unter den Anwendungen gut geeignet ist und die Metapher des Fensters für Anwendungen geeignet ist, in denen Textsymbole oder numerische Symbole in getrennten Do kumenten organisiert sind, zum Beispiel bei der Textverarbeitung oder bei Arbeitsblättern (Spreadsheets), ist für Aufgaben, in denen in Überstreichen eines Raumes die vorherrschende Charakteristik ist, eine „Welt"-Metapher besser geeignet. Hier kann der Raum in einer grafischen Analogie zu der physischen Welt organisiert werden, in der magische und physische Eigenschaften miteinander gemischt werden können, um für die Aufgabe zu passen (Smith, 1987). Man kann sich in dem abstrakten Raum durch physisches Durchstreifen der grafischen Welt bewegen, die auf der Computer-Bildschirmanzeige dargestellt ist. In der Tat waren die ursprünglichen Untersuchungen an Räumen dazu gedacht, den Eindruck einer vollständigen Büroumgebung zu vermitteln, die auf einem Desktop-Arbeitsraum enthalten ist. In der Entwicklung der Schnittstelle des Macintosh-Betriebssystems war der Umfang auf den Desktop allein beschränkt.
  • Neue Fortschritte in der Computer-Grafik außerhalb des Bereiches von Betriebssystemen haben die Entwicklung von hochintuitiven Anwenderprogrammen ermöglicht – insbesondere in den Bereichen der Ausbildung und Unterhaltung. Vielen dieser Technologien wurde das Attribut „Multimedia" gegeben, weil sie sowohl Grafiken mit hoher Auflösung, Animationen, Video und Ton als auch gewöhnlichen Text miteinander kombinieren. Es besteht nun eine große Anzahl von Software-Anwendungsprogrammen, die Multimedia benutzen, um den Eindruck eines Komplexes „Welt" zu erzeugen, die durchstreift werden kann. In diesen Anwendungen werden dem Benutzer Bildschirminhalte mit grafischer Information gegeben. Jeder Bildschirminhalt hat mehrere Hot-Spots, die sich wie Icons von Betriebssystemen verhalten, indem sie durch Zeigen und Klicken mit dem Mauszeiger reagieren. Typische Aktionen als Antwort des Anklickens eines Hot-Spots schließen ein: Anzeigen eines anderen grafischen Bildschirminhalts, Abspielen von Geräuschen oder Tönen, Anzeigen einer Animation, Anzeigen von Text, Anzeigen eines Videos oder eine Kombination dieser Aktionen. Das Navigieren in einer gut entwickelten Hypertext-Anwendung kann den Eindruck erwecken, man wandere in der realen Welt. Der Benutzer kann gucken, wohin er gehen möchte, und kann dahin gehen durch Klicken des Mauszeigers auf ein Icon, das in diese Richtung zeigt. Der Benutzer kann Objekte durch Anzeigen und Klicken auf diese untersuchen. Der Benutzer kann Objekte aufnehmen, wegstellen, sie tragen, sie dorthin zurückführen, wo der Benutzer die Aktion begonnen hat, und er kann in eine andere Richtung gehen. Einige dieser Anwendungen enthalten virtuell über hauet keinen Text, und der Benutzer „wandert" durch Tausende von grafischen Bildschirmen, sieht sich Video-Clips an und hört entlang des Weges Geräusche oder Laute. Zum Beispiel kann der Benutzer durch die Tür eines Gebäudes gehen, indem er mit dem Mauszeiger auf die Tür klickt, und innen viele Bücherborde sehen. Wenn der Benutzer sich durch Zeigen des Mauszeigers und Klicken der Maustaste auf ein Bücherbord einem Bücherbord nähert, werden Titel der Bücher sichtbar. Der Benutzer kann ein Buch durch Klicken des Mauszeigers auf den Rücken auswählen, und das Buch wird sich öffnen und seinen Inhalt anzeigen. Seiten können vorwärts oder rückwärts geblättert werden durch Klicken des Zeigers auf die Ecke oder Kante der umzuschlagenden Seite.
  • Hypermedia-Anwendungen, die eine Metapher von Welten benutzen, sind für Kinder besonders interessant. Die Welt-Metapher sind vielfach benutzt worden und sehr erfolgreich in Video-Spielen und in der Ausbildungs-Software wie zum Beispiel Broderbunds Treehouse und Myst. Neuere auf Welten basierende Programme, wie zum Beispiel Knowledge Adventure's 3D Dinosaur Adventure, verwenden dreidimensionale Grafiken, um den Eindruck von Bewegung durch einen realistischen Raum besser zu übermitteln. Zusätzlich zu den Spielprogrammen, die nun allgemein üblich sind, wurden Forschungen zur Anwendung von Bildschirmdarstellungen in einem Museum und bei anderen Arten von Informationen durchgeführt.
  • In allen diesen Fällen erfordert die Benutzung der Metapher von Welten, dass die grafische Welt durch einen Anwendungsentwickler konstruiert wird. Mit der Ausnahme der alternativen Desktop-Programme wie KidDesk, das bereits beschrieben wurde, sind Hypermedia-Software-Anwendungen nicht dazu gedacht, für den allgemeinen Zugriff auf das Dateisystem und das Computer-Betriebssystem benutzt zu werden. Benutzer durchstreifen die Multimediawelt, die durch Anwendungsentwickler entworfen wurde, durch Folgen von Hypermedia-Links oder durch Bewegen eines Mauszeigers durch ein vordefiniertes dreidimensionales Modell. Benutzer können keine Information hinzufügen oder die Welt erweitern, ausgenommen in begrenzter, vordefinierter Weise. Ein notwendiges Merkmal für eine Schnittstelle zu dem Computer-Betriebssystem besteht darin, einem Benutzer die Möglichkeit zu geben, Dateiobjekte in dem darunterliegenden Dateisystem und deren Repräsentation in der Schnittstelle hinzuzufügen und daraus zu entfernen. Alternative Desktop-Programme lösen dieses Problem durch Benutzen einer Hypermedia-Technik, um es dem Benutzer zu ermöglichen, von einem festen und endlichen Satz von grafischen Icons eine Auswahl zu treffen, um sie als Darstellungen für ihre Dateien oder Programme zu verwenden. Wie bereits vorher erwähnt, kann ein Benutzer von alternativen Desktop-Programmen nur Grafiken benutzen, die vorher durch die Anwendungsentwickler definiert wurden, wobei grafische Icons für Dateien und Verzeichnisse unabhängig von dem Kontext sind, in denen sie sich befinden, d.h., ein festgelegter grafischer Hintergrund (oder ein durch den Benutzer auszuwählender Satz von Hintergründen) wird durch den Anwendungsentwickler vorgegeben, und Betriebssystemaktionen sind überhaupt nicht dargestellt. Darüber hinaus ist es, abgesehen von gewöhnlichen Icons des Betriebssystems, für einen Software-Anwendungsentwickler nicht möglich, eine grafische Darstellung für ein Programm zu entwickeln, das für den Benutzer des alternativen Desktop-Programms sichtbar ist. Statt dessen muss der Benutzer eines alternativen Desktops jedes neue Anwendungsprogramm in dem Desktop neu installieren durch Verbinden dieses Programms mit einem der innerhalb der Desktop-Software vorhandenen Icons. Weil Benutzer keinen Gebrauch von grafischen Icons und Backdrops machen können, die durch die Anwendungsentwickler für ihre Programme entwickelt wurden, sind Icons sogar weniger repräsentativ für den Datei- und Verzeichnisinhalt als es die begrenzten grafischen Icons und Text-String-Namen sind, die in einer gewöhnlichen Betriebssystem-Schnittstelle zur Verfügung stehen.
  • Benutzerdefinierbare Hot-Spots, die auf Mausklicks ansprechen, sind durch Hypermedia-Autorisierungswerkzeuge verfügbar, wie Apple's Hypercard, IBM's Linkway und AVC, Asymetrix' Toolbook, Macromedia Director und andere. Sobald sie einmal definiert sind, verhalten sich diese Hot-Spots wie die Icons in einer Betriebssystem-Schnittstelle, indem sie auf Mausklicks und Ausführung einer Aktion ansprechen. Im Gegensatz zu Icons eines Betriebssystems können Hot-Spots, die durch ein Hypermedia-Autorisierungswerkzeug definiert sind, durch eine beliebige Grafik dargestellt werden und können mit jeder Art von Verhalten verbunden werden. Autorisierungswerkzeuge haben den Zweck, als Programmiersprachen mit vollständigen Merkmalen für die Entwicklung von Mutlimedia-Anwendungen verwendet zu werden. Zusätzlich zu dem Ermöglichen von auf die Maus ansprechende Hot-Spots bieten sie im Allgemeinen Merkmale einschließ lich der Darstellung von Rastergrafikbildern, Animation, Video- und Geräusch- oder Tonwiedergabe, Steuerung der Synchronisation von Geräusch oder Ton und Animation oder Video sowie die Möglichkeit, Hot-Spots mit Aktionen zu verbinden, die die Ausführung von Programmen einschließen, die in allgemeineren Programmsprachen wie zum Beispiel C geschrieben wurden. Viele Autorisierungswerkzeuge enthalten außerdem Zeichenprogramme für die Konstruktion von gerasterten Grafikbildern sowie Wave-Editionsprogramme für die Erzeugung von Tonsignalen.
  • Diese Programme sind sehr leistungsfähig und geben einem fachkundigen Programmierer die Möglichkeit, die fortschrittliche Hypermedia-Anwendungen, wie sie oben beschrieben wurden, zu entwickeln wie zum Beispiel Myst oder Treehouse. Das Erlernen der Benutzung dieser Werkzeuge für die Entwicklung einer Hypermedia-Anwendung erfordert viele Wochen oder Monate, und darum werden solche Aktivitäten normalerweise nur durch Fachleute oder engagierte Hobbyisten durchgeführt. Darüber hinaus ist es im Allgemeinen notwendig, spezialisierte Entwicklungswerkzeuge zu benutzen, um die Grafiken, den Ton und die Animationen zu entwickeln, die für eine Hypermedia-Anwendung erforderlich sind. Viele der hergestellten Anwendungen, die diese Werkzeuge benutzen, erfordern Programme, die in allgemeineren Programmiersprachen wie zum Beispiel C geschrieben sind, um die Ausführung von Hot-Spot-Aktionen durchzuführen oder Anwendungsdatenstrukturen aufrechtzuerhalten. Das Autorisierungswerkzeug vereinfacht die Arbeit der Programmierung einer Multimedia-Hyperlink-Anwendung, indem es dem Programmierer fertig verfügbare Module für Multimedia an die Hand gibt, beispielsweise Animation und Tonwiedergabe. Außerdem stellt das Autorisierungswerkzeug eine Schnittstelle zur Verfügung, die es leichter macht, Grafiken und an anderer Stelle entwickelte Tonsignale zu betrachten, zu schneiden und zusammenzufügen, und die Darstellung von grafischen Szenen oder die Ausführung von Hilfsaktionen zu Hot-Spots zu verbinden. Dennoch erfordert die Benutzung dieser Werkzeuge normalerweise viele Stunden oder Monate und eine Programmierung durch Fachleute zur Entwicklung einer Hypermedia-Anwendung.
  • US-A-5.347.628 beschreibt eine grafische Benutzerschnittstelle für den Zugriff auf Informationen, die in einem Computer gespeichert sind. In der Schnittstelle ist mindestens eine bildhafte Darstellung auf dem Bildschirm anzuzeigen, jede dieser Darstellungen ist einer speziellen Gruppe von aufzurufenden Dateien zuzuordnen und jede Darstellung enthält eine Mehrzahl von untergeordneten Darstellungen, die der Benutzer individuellen Dateien zuordnen kann, die aus der Gruppe von Dateien aufzurufen sind. Die untergeordneten Darstellungen, die für die Zuordnung zu Dateien verfügbar sind, werden durch den Programmschreiber oder den Systemadministrator vorher definiert, so dass dem Benutzer ein vordefiniertes Layout und ein Satz von bildhaften Darstellungen präsentiert wird. Der Benutzer hat nur die Freiheit, individuelle Dateien vorher bestehenden untergeordneten Darstellungen zuzuordnen, zum Beispiel durch Öffnen einer angezeigten Schreibtischschublade mit einer Liste von Dateinamen.
  • In dem Dokument Proceedings of the International Conference an Research and Development in Information Retrievel (SIGIR), Cambridge, Massachusetts, U.S.A., vom 25. bis 28 Juni 1989, No. Conf. 12, Seiten 40 bis 47, XP000239138; von N.J.Belkin und C.J. van Rijsbergen, mit dem Titel „A Library System for Information Retrieval based an a cognitive Task Analysis and supported by an Icon-based Interface", Seiten 41 bis 43, „The BOOK HOUSE Metaphor", wird beschrieben, dass ein Benutzer nur Zugriff zu vorher definierten Dateien hat, die durch den Systemschreiber bereits vorher definierten untergeordneten Darstellungen zugeordnet wurden.
  • Zusammenfassung der Erfindung
  • Der Erfindung liegt daher die Aufgabe zugrunde, eine grafische Benutzerschnittstelle für ein Betriebssystem vorzuschlagen, in der verschiedene Verzeichnisse verschiedenen bildhaften Grafiken zugeordnet sind, so dass dem Benutzer eine grafische Anzeige gegeben wird, in welchem Verzeichnis das gerade ausgewählte Verzeichnis sich befindet.
  • Der Erfindung liegt auch die Aufgabe zugrunde, eine grafische Benutzerschnittstelle für ein Betriebssystem vorzuschlagen, in der der Benutzer bildhafte Grafiken mit Verzeichnissen verbinden oder an diese anfügen kann.
  • Der Erfindung liegt auch die Aufgabe zugrunde, eine grafische Benutzerschnittstelle für ein Betriebssystem vorzuschlagen, in der die Icons nicht auf eine voreingestellte Größe und Form beschränkt sind.
  • Der Erfindung liegt eine andere Aufgabe zugrunde, eine grafische Benutzerschnittstelle vorzuschlagen, in der die Inhalte eines Verzeichnisses als bildhafte Elemente in einer bildhaften Grafikdarstellung angezeigt werden, die das Verzeichnis identifiziert.
  • Der Erfindung liegt darüber hinaus eine andere Aufgabe zugrunde, eine grafische Benutzerschnittstelle vorzuschlagen, in der eine bildhafte Grafikdarstellung, die ein Verzeichnis identifiziert, in mindestens zwei Richtungen gerollt werden kann.
  • Der Erfindung liegt noch eine andere Aufgabe zugrunde, eine grafische Benutzerschnittstelle vorzuschlagen, in der der Benutzer neue Icons erzeugen kann durch Auswählen von Teilen einer bildhaften Grafikdarstellung, die ein Verzeichnis identifiziert.
  • Der Erfindung liegt auch eine Aufgabe zugrunde, eine grafische Benutzerschnittstelle vorzuschlagen, in der die Icons animiert sind.
  • Der Erfindung liegt eine andere Aufgabe zugrunde, eine grafische Benutzerschnittstelle vorzuschlagen, in der Icon-Animationen einzigartig für ein Icon und eine Aktion des Betriebssystem sein können.
  • Der Erfindung liegt auch eine Aufgabe zugrunde, eine grafische Benutzerschnittstelle für ein Betriebssystem vorzuschlagen, in der Icon-Animationen automatisch durch die Schnittstelle erzeugt werden.
  • Der Erfindung liegt eine weitere Aufgabe zugrunde, eine grafische Benutzerschnittstelle vorzuschlagen, in der Aktionen des Betriebssystems durch eine animierte Figur dargestellt werden.
  • Der Erfindung liegt darüber hinaus eine andere Aufgabe zugrunde, eine grafische Benutzerschnittstelle vorzuschlagen, in der verschiedene Aktionen des Betriebssystems durch verschiedene Animationen dargestellt werden.
  • Der Erfindung liegt noch eine andere Aufgabe zugrunde, eine grafische Benutzerschnittstelle vorzuschlagen, in der verschiedene Aktionen des Betriebssystems durch verschiedene Animationen dargestellt werden, denen Tonausgangssignale beigefügt werden.
  • Der Erfindung liegt auch eine Aufgabe zugrunde, eine grafische Benutzerschnittstelle vorzuschlagen, in der verschiedene Aktionen des Betriebssystems durch verschiedene Animationen dargestellt werden, denen Tonausgangssignale beigefügt werden, und in der die Animationen und Tonsignale metaphorisch für die Aktionen des Betriebssystem sind.
  • Der Erfindung liegt eine andere Aufgabe zugrunde, eine grafische Benutzerschnittstelle vorzuschlagen, in der der Benutzer Betriebssystembefehle und andere Befehle durch Steuern der Aktionen einer animierten Figur initiert.
  • Der Erfindung liegt darüber hinaus eine andere Aufgabe zugrunde, eine grafische Benutzerschnittstelle vorzuschlagen, in der der Benutzer Betriebssystembefehle und andere Befehle durch Steuern der Aktionen einer animierten Figur mit einer Tasteneingabeeinrichtung wie einer Spiele-Steuereinrichtung initiert.
  • Der Erfindung liegt auch eine Aufgabe zugrunde, eine grafische Benutzerschnittstelle vorzuschlagen, die alle vorstehend beschriebenen Merkmale aufweist und in der Grafiken, Icons, Tonsignale, animierte Figuren und Animationen durch den Benutzer definiert werden können.
  • Der Erfindung liegt eine andere Aufgabe zugrunde, eine grafische Benutzerschnittstelle vorzuschlagen, in der Benutzereingaben von einer Minimaltasteneinheit abgeleitet werden können, wie einer Spiele-Steuereinrichtung.
  • Der Erfindung liegt darüber hinaus eine andere Aufgabe zugrunde, eine grafische Benutzerschnittstelle vorzuschlagen, in der Benutzereingaben von einer Minimal tasteneinheit abgeleitet werden können und in der das Abbilden von Tastencodes extrapoliert wird mit einer Kontext- und Argument-Semantik, so dass eine einzige Tastenbetätigung zu verschiedenen Zeiten eine unterschiedliche Wirkung hat.
  • Der Erfindung liegt auch eine Aufgabe zugrunde, Datenstrukturen, interne Abläufe und Benutzerebenenbefehle zur Verfügung zu stellen, die zu einer grafischen Benutzerschnittstelle führen, wie sie vorstehend beschrieben wurde.
  • In Übereinstimmung mit diesen Aufgaben, die im Detail nachfolgend diskutiert werden, enthält die bildhafte Benutzer-Schnittstelle der vorliegenden Erfindung eine bildhafte Darstellung, die mit einem Dateiverzeichnis verknüpft ist und die das Dateiverzeichnis identifiziert. Objekte in der bildhaften Darstellung sind Icons, die mit Dateiobjekten verknüpft sind, und eine animierte Figur ist der bildhaften Darstellung überlagert. Benutzereingaben veranlassen die Bewegung der animierten Figur relativ zu der bildhaften Darstellung und animieren Objekte in dieser Darstellung. Die Benutzereingaben erfolgen vorzugsweise durch eine beschränkte Eingabeeinrichtung, wie zum Beispiel durch eine Spiele-Steuerung, eine Maus oder Verwendung einer begrenzten Anzahl von Tasten auf einer normalen Tastatur. Die Eingangssignale werden entsprechend den Tastencodes identischen Befehlssätzen, Kontextargumenten und Auswahlargumenten abgebildet (mapped).
  • Es sind vorzugsweise drei Klassen von Befehlen vorhanden: OS-Befehle, Befehle für bildhafte Objekte, Befehle für Schnittstellenwerkzeuge. OS-Befehle entsprechen den Betriebssystem-Befehlen des zugrundeliegenden Betriebssystems und enthalten solche Befehle wie copy_file, change_directory, display_directory usw.. Befehle für bildhafte Objekte werden verwendet, um die bildhafte Benutzerschnittstelle zu definieren und zu modifizieren. Solche Befehle schließen ein link_directory_image, define_icon usw.. Befehle für Schnittstellenwerkzeuge werden benutzt, um den Laufzeitzustand verschiedener Teile der bildhaften Schnittstelle zu wechseln und aufrechtzuerhalten. Einige dieser Befehle erlauben es dem Benutzer, Eingaben und Ausgaben für die Benutzung mit OS-Befehlen auszuwählen und anzuwenden, wie zum Beispiels collect_file_object, select_collected_objet usw.. Andere dieser Befehle erlauben es dem Benutzer, die Einstellungen der Schnittstelle zu ändern, zum Beispiel make_icons_invisible. Kontext- und Auswahlargumente beziehen sich üblicherweise auf Dateien, Verzeichnisse, Icons oder Bilder, die Argumente für bestimmte Befehle sind. Einige Befehle können nur ein Argument verwenden. Andere Befehle können zwei Argumente oder keine Argumente verwenden.
  • Sequenzen roher Eingangssignale werden als „Kurzzeichen" (tokens) interpretiert und zu tastencode-identischen Befehlssätzen abgebildet. Wenn ein Eingangssignal interpretiert wird, das einen Sinn macht, wird die Position der animierten Figur gegenüber der bildhaften Darstellung benutzt, um ein Icon und sein zugeordnetes Dateiobjekt als ein Argument zu identifizieren. Die Kombination eines Argumentes und eines tastencode-identischen Befehlssatzes wird als ein Befehlscode abgebildet, der in einzigartiger Weise einen Benutzerebenenbefehl definiert. Der Befehlscode wird für einen Zugriff auf eine Ausführungsbasiseinheit benutzt, die einen ausführbaren Befehl und einen Satz von Animationen enthält. Die Ausführungsbasiseinheit enthält vorzugsweise eine Prolog-Animation, einen Befehls-Script und eine Epilog-Animation. Die Prolog-Animation ist ein Weg, bei dem ein Eingangsecho an den Benutzer gegeben wird. Wird die Prolog-Animation nicht angezeigt, weiß der Benutzer, dass das Eingangssignal nicht akzeptiert wurde. Die Epilog-Animation gibt eine Anzeige der Resultate der Ausführung des Befehls-Scripts. Animationsfolgen, die Icons betreffen, enthalten vorzugsweise eine Sequenz für die animierte Figur und eine andere Sequenz für den Icon, dem die Figurenanimationsfolge unterlegt ist, um die abzuspielende Animation zu erzeugen. Gemäß einer bevorzugten Ausführungsform der Erfindung sind Audio-Clips mit den Animationssequenzen verknüpft. Die Animationssequenzen und die Audio-Clips sind vorzugsweise metaphorisch auf den auszuführenden Befehl in dem Befehls-Script bezogen.
  • Gemäß einer bevorzugten Ausführungsform der Erfindung werden Icon-Animationssequenzen mit einer Laufzeit erzeugt, nachdem die Icons durch den Benutzer definiert wurden. Vordefinierte Icons können jedoch vordefinierte Animationsfolgen haben. Figurenanimationssequenzen werden vorzugsweise vordefiniert. Während die Wiedergabe von Animationen im Allgemeinen an die Befehlsausführung gebunden ist, wird eine Kalibrierungsanimation benutzt, um die animierte Figur von dem Ort und der Orientierung, wo es sich befindet, wenn eine Ausführungsbasiseinheit die Ausführung beendet hat, an einen Ort und in einer Orientierung zu bewegen, die zu dem Startrahmen der Prolog-Animation der nachfolgenden Ausführungsbasiseinheit passt.
  • Die derzeit bevorzugte Ausführungsform der Erfindung benutzt eine Top-Level-Funktion, um die Interaktion mit dem Benutzer sowie das Abspielen von Animationsfolgen und die Ausführung von Befehlen zu steuern. Die Steuerstruktur der Top-Level-Funktion nimmt einen Parser-Graphen von gültigen Befehlsfolgen an, einen Befehlspuffer und eine Eingabebefehlsmappe als Argumente und führt ein Argument zurück, das die Ergebnisse der Befehlsausführung enthält. Die Ergebnisse der Befehlsausführung sind als Epilog-Animationen abgebildet. Diese Struktur erlaubt geschachtelte (nested) Befehle und geschachtelte Animationsfolgen und bietet außerdem eine Möglichkeit der Begrenzung, welche Befehle ein Benutzer während rekursiver Iterationen einer Befehlsausführung anwenden kann. Zusätzlich kann die Semantik von Eingabetasten während der geschachtelten Interaktionen mit dem Benutzer neu abgebildet werden, so dass weniger Eingabetasten notwendig sind. In diesem Fall kann eine Eingabetaste mehrere Funktionen haben, abhängig von dem Kontext, während dessen sie gedrückt wird.
  • Die bildhafte Benutzerschnittstelle der Erfindung kann als eine Überlagerung mit virtuell jedem beliebigen Betriebssystem benutzt werden wie Unix oder OS/2. Es wird bevorzugt, dass OS Preemptive Multitasking unterstützt, jedoch ist Non-Preemptive Multitasking ausreichend. Die Erfindung unterstützt alternative Animationen, Bilder und Eingangssignal-Abbildungen entweder bei der Installation oder während des Start-Up-Vorgangs. Zum Beispiel kann ein Benutzer eine Person als Figur und begleitende Animationen während der Laufzeit auswählen. Der Benutzer kann ebenfalls spezifizieren, welche Art von Eingabeeinrichtung bevorzugt wird.
  • Die bildhafte Schnittstelle der Erfindung ist nützlich mit praktisch jedem beliebigen Dateisystem, ist jedoch besonders günstig anzuwenden bei hierarchischen Dateisystemen, zu denen Zugriff auf nicht-hierharchischem Wege erfolgen muss. Während die Erfindung viele Merkmale bietet, die eine leichte Definition und Konfiguration durch den Benutzer zulässt, ist eine Definition und Konfiguration nicht für jeden Benutzer notwendig. Zum Beispiel kann ein Lehrer oder ein Elternteil eine bestimmte bildhafte Umgebung für die Benutzung durch ein Kind definieren und konfigurieren, wobei die Bilder und Objekte eine besondere Relevanz für das Kind haben. Ein Händler oder eine Werbung betreibende Person kann eine besondere bildhafte Umgebung für die Benutzung durch einen Kunden definieren und konfigurieren, wobei die Bilder und Objekte die Waren und Dienstleistungen des Händlers darstellen. Andere mögliche Benutzungsarten für die bildhafte Schnittstelle schließen ein: eine virtuelle Bücherei, einen Katalog, einen Atlas, ein Einkaufszentrum, ein Versandsystem usw. Die Schnittstelle erlaubt es einem Benutzungsanfänger, direkt mit einem Datensystem zu arbeiten, um Informationen in bildhafter, intuitiver Weise zu erhalten. Zusätzliche Aufgaben und Vorteile der Erfindung werden dem Fachmann klar beim Lesen der detaillierten Beschreibung in Verbindung mit den vorgesehenen Zeichnungen.
  • Die Erfindung ist im Anspruch 1 definiert.
  • Kurzbeschreibung der Zeichnungen
  • 1 ist ein Beispiel für eine Bildschirmansicht einer bildhaften Benutzerschnittstelle gemäß der Erfindung, die einen Abschnitt einer zu rollenden bildhaften Darstellung und eine animierte Figur zeigt;
  • 1a ist eine Ansicht der gesamten bildhaften Darstellung der 1, wobei zwei Abschnitte der Darstellung herausgebrochen sind;
  • 2 ist eine Perspektivansicht einer geeigneten Spiele-Steuerung, die im Zusammenhang mit der Schnittstelle nach der Erfindung zu benutzen ist;
  • 2a ist eine Perspektivansicht einer drahtlosen, auf Tasten basierenden Eingabevorrichtung;
  • 3 und 3a bis 3c sind Ansichten ähnlich der 1, die darstellen, wie ein Objekt-Icon von einem Benutzer dadurch definiert wird, dass die animierte Figur bewegt wird;
  • 3d ist ein Flussdiagramm, das die Verwendung eines alternativen Parser-Graphen innerhalb eines Rekursivanrufs an die Funktion der obersten Ebene zur Durchsetzung einer spezifischen Interaktionssequenz mit dem Benutzer illustriert;
  • 3e und 3f zeigen, wie eine Maske benutzt wird, um ein nicht rechteckiges Objekt-Icon zu definieren;
  • 4 zeigt als Beispiel eine Sequenz von Figur-Prolog-Animation für den Befehl display_directory_right;
  • 4a zeigt als Beispiel eine Sequenz von Figur-Prolog-Animation und Figur-Epilog-Animation für den Befehl display_directory_up;
  • 4b zeigt als Beispiel eine Sequenz von Figur-Prolog-Animation für den Befehl collect_selection_arg;
  • 4c zeigt als Beispiel eine Sequenz von Figur-Epilog-Animation für den Befehl collect_selection_arg;
  • 4d zeigt als Beispiel eine Sequenz von Figur-Prolog-Animation für den Befehl change_directory;
  • 5 und 5a zeigen als Beispiel Sequenzen von Figurkalibrierungs-Übergangsanimation mit dem Bezugspunkt und
  • 6 zeigt als Beispiel eine Sequenz einer Icon-Animation.
  • Detaillierte Beschreibung der bevorzugten Ausführungsformen
  • Die bildhafte Anzeige
  • In 1 und 1a stellt die bildhafte Benutzerschnittstelle gemäß der Erfindung eine Bildschirmanzeige 10 einer bildhaften Hintergrunddarstellung 12 (1a) bereit, die ein Verzeichnis in einem Computer-Dateisystem darstellt. Das in 1 angezeigte Bild zeigt beispielsweise einen römischen Adeligen und einen Sklaven, was ein Verzeichnis darstellt, dessen Inhalt eine Darstellung eines Buches über Alte Römische Geschichte enthält. Gemäß der Erfindung ist die bildhafte Information in der Hintergrunddarstellung 12 vorzugsweise eine metaphorische Angabe des tatsächlichen Inhalts des Verzeichnisses. Außerdem weisen die einzelnen Sub-Bilder 14, 16 und 18 (1a) (nachfolgend der Vereinfachung halber als „Icons" bezeichnet) in der Hintergrunddarstellung 12 Beziehungen zu individuellen Dateien oder Sub-Verzeichnissen auf, die in dem Verzeichnis enthalten sind, das durch die Hintergrunddarstellung 12 repräsentiert wird. Jedes dieser Icons ist vorzugsweise eine Metapher des tatsächlichen Inhalts der Datei oder des Subverzeichnisses, auf das es verweist. Das Wasserkrug-Icon 14 beispielsweise bezieht sich auf eine Datei über Alte Römische Keramiken und das Icon 16 des Adeligen auf ein Sub-Verzeichnis mit Informationen über die Politik und die Regierung im Römischen Reich. Mindestens ein Icon in der Bildschirmanzeige bezieht sich auf ein Vorgängerverzeichnis, es sei denn, dass der derzeitig angezeigte Hintergrund das Super-Root-Verzeichnis ist. Zum Beispiel bezieht sich das Leiter-Icon 20 auf das Stammverzeichnis des derzeitigen Verzeichnisses. Wie aus 1 zu ersehen ist, brauchen die Icons nicht rechteckig zu sein und ihre Größe kann sehr unterschiedlich sein. Obgleich die Erfindung versucht, eine textliche Information in der Bildschirmanzeige überflüssig zu machen, kann Text entsprechend der Wahl des Benutzers innerhalb der Icons eingefügt werden, um ihre Bedeutung weiter zu definieren. In 1a enthält beispielsweise das Stuckwand-Icon 18 den Text-String „Inhalt", um anzuzeigen, dass es sich um eine Datei handelt, die ein Inhaltsverzeichnis des Buches enthält, das in dem Verzeichnis enthalten ist, das durch die Hintergrunddarstellung 12 dargestellt wird.
  • Eine animierte 22 wird einem Hintergrundbild 12 überlagert und ist so angelegt, dass es auf eine Eingabevorrichtung (dargestellt und beschrieben unter Bezug auf 2 und 2a) reagiert, so dass ein Benutzer die Bewegungen und Tätigkeiten der animierten 22 steuern kann. Gemäß der Erfindung kann die animierte 22 an unterschiedliche Positionen auf der Bildschirmanzeige 10 bewegt werden, um mit jedem der Icons in der Hintergrunddarstellung 12 zu interagieren. Die animierte Figur entspricht etwa dem Cursor oder Zeiger in einer WIMP GUI. Während ein Cursor normalerweise einen einzigen „Hot-Spot" hat, ist die animierte Figur der Erfindung vorzugsweise mit mehreren möglichen Hot-Spots ausgestattet. Welcher der möglichen Hot-Spots der derzeit aktuelle Hot-Spot ist, hängt vom Befehlscode ab, der vom Benutzer aufgerufen wird. So, wie der Cursor verwendet wird, ist er definiert als ein Hot-Spot-Ort in einem Koordinatensystem, das für den Benutzer von Bedeutung ist, beispielsweise der Anzeigebildschirm. Der Cursor enthält vorzugsweise einen rechteckigen Bereich und eine Koordinate, die den Bereich in ein Koordinatensystem einbringt, das dem Benutzer etwas bedeutet. Der Cursor kann eine Animation entweder anführen oder ihr folgen. Er kann visuell als Teil der Animation auftreten oder als Standard-Cursor erscheinen. Gemäß der zu Zeit bevorzugten Ausführung erscheint der Cursor als eine Komponente der animierten Figur (zum Beispiel ist er der Fuß der animierten Figur), so dass der Benutzer die Animation direkt steuert, während der Hot-Spot des Cursors periodisch durch die Programmsteuerung aktualisiert wird, um ihn gegenüber der Animation auszurichten.
  • Der Hot-Spot des Cursors wird vorzugsweise gegenüber dem Koordinatensystem der Hintergrunddarstellung und/oder dem Koordinatensystem einer Animation geführt. Die Funktion des Cursors besteht hauptsächlich darin, Icons oder Bereiche aus der Hintergrunddarstellung oder aus Animationsrahmen auszuwählen, die die Hintergrunddarstellung überlagern. Ist der Cursor Hot-Spot eine Komponente einer Animation, kann der Cursor Hot-Spot von einer Komponente der Animation zu einer anderen verschoben werden. Zum Beispiel kann der Hot-Spot für einen Befehl der Fuß einer Figur sein und für einen anderen Befehl die linke Hand. Ist der Cursor Hot-Spot eine Komponente der Animation, dann wird der Cursor-Ort vorzugsweise jedes Mal aktualisiert, wenn eine Animation gespielt wurde.
  • Ist die Hintergrunddarstellung 12 zu groß für den Anzeigebildschirm 10, dann ist das Bild 12 zu rollen, so dass, wenn die 22 auf dem Anzeigebildschirm 10 weit nach links, rechts, oben oder unten bewegt wird, die Hintergrunddarstellung 12 rollt. Das Rollen geschieht vorzugsweise toroidförmig. Gemäß der Erfindung zeigt die 22, wenn es von einem Ort auf dem Bildschirm zu einem anderen bewegt wird, eine Bewegung an, beispielsweise eine Gehbewegung. Interagiert die animierte 22 mit einem Icon, sind sowohl die 22 als auch das Icon animiert. Die Animation stellt vorzugsweise eine Metapher irgendeiner Betriebssystemtätigkeit dar.
  • Wie später im Einzelnen noch beschrieben wird, sind die Hintergrunddarstellungen und Sub-Darstellungen durch den Benutzer auszuwählen und zu definieren, um eine Beziehung zu benutzerspezifizierten Dateien und Verzeichnissen zu haben. Zusätzlich können die animierte Figur und seine Animationselemente vom Benutzer gewählt und zumindest teilweise definiert werden, um sich auf spezifische Betriebssystemtätigkeiten zu beziehen.
  • Die Eingabevorrichtung
  • 2 zeigt eine bekannte Spiele-Steuerung 30, die für die Verwendung als Eingabevorrichtung für die bildhafte Schnittstelle gemäß der Erfindung geeignet ist. Die Steuerung 30 ist eine eingeschränkte Eingabevorrichtung mit zehn Tasten. Vier der Tasten sind als Richtungsblock mit einer Nordtaste 32, einer Südtaste 34, einer Osttaste 36 und einer Westtaste 38 angeordnet. Zwei der Tasten, die am vorderen Rand der Steuerung angeordnet sind, sind als die linke Taste 40 und die rechte Taste 42 eingerichtet. Die anderen vier Tasten werden als X-Taste 44, Y-Taste 46, A-Taste 48 und B-Taste 50 bezeichnet. Obgleich die Steuerung 30 üblicherweise mit dem Eingangsanschluss eines Computers über eine Leitung verbunden ist, kann selbstverständlich eine drahtlose Infrarotsteuerung 30a verwendet werden, wie sie in 2a gezeigt ist. Selbstverständlich ist eine so begrenzte Eingabevorrichtung nicht notwendigerweise auf zehn Eingabetastencodes beschränkt. Es können zwei oder mehr Tasten kombiniert gedrückt werden, um viel mehr als zehn Eingabetastencodes zu erzielen. In praktischer Hinsicht ist es nicht wünschenswert, dass mehr als drei Tasten in Kombination gedrückt werden müssen. Gemäß der vorliegenden Erfindung sind die Tastenpositionen mit Kontext- und Auswahlargumenten versehen, so dass dieselben Tastenkombinationen in unterschiedlichen Situationen unterschiedliche Ergebnisse hervorrufen. In Appendix A wird angegeben, wie die derzeit bevorzugten Befehle auf Benutzerebene den Tasten der Spiele-Steuerung in 2 zugeordnet sind. Die Zuordnung der Tasten ist so spezifiziert, dass sie etwa der folgenden Logik entspricht:
    Linke Taste Befehle für das Kreieren
    Rechte Taste Befehle für das Löschen
    B-Taste Befehle für den „Teletransport" in andere „Welten"
    A-Taste Befehle bezüglich Icons
    X-Taste Befehle bez. des Verbindens od. Bewegens von Objekten
    Y-Taste Befehle bezüglich Dateiobjekten
    Nord, Süd, Ost, West Figurenbewegung
    Süd (als Modifikation) Befehle bezüglich zusammengefasster Objekte
  • Die Grundverfahren
  • Die Grundverfahren der Schnittstelle gemäß der Erfindung sind einfach nach den drei funktionellen Aufgaben zu gruppieren: Eingabeinterpretation, Ausführungsbasiseinheit und Systemsteuerung. Die Eingabeinterpretation umfasst das syntaktische Analysieren, Auflisten und die Cursorsteuerung. Die Ausführungsbasiseinheit enthält eine Prolog-Animation, eine Befehlsausführung und eine Epilog-Animation. Die Systemsteuerung steuert die Ausführung der Ausführungsbasiseinheiten und die Eingabeinterpretation.
  • Eingabeinterpretation
  • Beim Parser-Vorgang auf der unteren Ebene werden Signale (zum Beispiel Tastenanschläge) von der Eingabevorrichtung syntaktisch analysiert, um bedeu tungsvolle Sequenzen (zum Beispiel A-Taste gedrückt, B-Taste gedrückt, A-Taste losgelassen, B-Taste losgelassen) zu identifizieren. Eine bedeutungsvolle Sequenz von Eingabesignalen definiert einen einzigen tastencode-identischen Befehlssatz. Es sind vier grundsätzliche Auflistungen vorhanden, die zur Interpretation von Eingaben verwendet werden. Zuerst werden Eingabesignale als tastencode-identische Befehlssätze abgebildet, wie oben beschrieben wurde. Zweitens wird, wenn eine bedeutungsvolle Eingabesequenz empfangen worden ist, der Ort des Cursors gegenüber der aktiven Hintergrunddarstellung dazu verwendet, ein Icon und sein zugehöriges Dateiobjekt zu identifizieren. Drittens wird die Kombination aus Icon und Befehlsklasse auf einem Befehlscode abgebildet, der ausschließlich einen Benutzerebenenbefehl identifiziert. Schließlich wird der Befehlscode benutzt, um Zugriff zu einer Ausführungsbasiseinheit zu nehmen, die aus einem ausführbaren Befehl und einem Satz von Animationen besteht. Wie oben erwähnt, können einige Befehlsklassen keine Argumente aufnehmen. Wenn festgestellt wird, dass die Eingabesequenz sich auf eine dieser Befehlsklassen beziehen soll, ist die Identifikation eines Icons (oder eines Arguments) nicht erforderlich.
  • Bei der Cursor-Steuerung hat die Komponente der Animation, der der Cursor-Hot-Spot folgt, im Allgemeinen den Ort gewechselt, wenn die Animation durchgespielt wurde. So hat sich beispielsweise, wenn der Hot-Spot durch die Hand der Figur dargestellt wird und die Figur sich vorwärts bewegt hat, der Ort der Hand sich verändert. Zusätzlich kann der Hot-Spot des Cursors zu einer weiteren Komponente der Figur gesprungen sein. Beispielsweise kann bei Eingabe eines bestimmten Befehls der Hot-Spot des Cursors zum Kopf der Figur springen.
  • Bei der derzeit bevorzugten Ausführungsform wird das Nachführen des Cursors dadurch erreicht, dass Informationen über den Cursor-Ort für jede Figurenanimation gespeichert werden. Solange es der Benutzereingabe nicht möglich ist, Animations-Playback im voraus zu bestimmen, reicht die Information über den Cursor-Ort im letzten Rahmen der Animation aus, um den Cursor nachzuführen. (Ist es dem Benutzer möglich, Animations-Playback zu wählen, sollte die Information mit jedem Rahmen der Figurenanimationen gespeichert werden.) Die für den Befehl change_directory vorgeschlagene Animation besteht zum Beispiel darin, dass die Figur auf ein Icon springt, das Beziehung hat zu einem Verzeichnis- Dateiobjekt. In diesem Fall kann der Cursor so definiert werden, dass er das Rechteck ist, das die Füße der Figur am Ende des Sprungs oder wenn die Figur landet, begrenzt. Ist das Animations-Playback beendet, wird der Cursor-Ort, der mit dem letzten Rahmen der Animation gespeichert wurde, zum Aktualisieren des globalen System-Cursors verwendet, d.h. die Cursor-Variable mit globalem Bereich, die in der Funktion der obersten Ebene aufrechterhalten wird. Um den globalen System-Cursor zu aktualisieren, müssen die Koordinaten des Cursors im letzten Rahmen der Animation, die gerade abgespielt wurde, in das Koordinatensystem des Videoanschlusses (video viewport) übersetzt werden, wobei der Ort des letzten Animationsrahmens im Koordinatensystem des Videoanschlusses verwendet wird.
  • In einer WIMP GUI ist es wichtig, dass der Cursor nicht auf dem Bildschirm herumspringt und dass die zu beobachtende Bewegung des Cursors kontinuierlich ist. Das ist bei der bildhaften Benutzerschnittstelle der Erfindung nicht der Fall. Hier ist die animierte Figur die Einheit, die Beständigkeit bei der zu beobachtenden Bewegung und dem Ort demonstriert, weil die Figur der Fokus der Aufmerksamkeit des Benutzers ist. Es ist tatsächlich ein Vorteil der bildhaften Schnittstelle der Erfindung, dass der Cursor-Ort zu verschiedenen Teilen der animierten Figur springen kann, abhängig davon, was für die Interaktion von Figur- und Icon-Animationen Sinn macht. Da der mit jeder Animation gespeichert Cursor-Ort relativ zur Herkunft des Animationsrahmens eingestellt ist, wird die Ausrichtung des Cursors im Bereich der Animationen erreicht, wenn die Animationen zueinander über den Schwerpunkt einer Figur in Beziehung gebracht werden. Der Schwerpunkt einer Figur ist ein Punkt, der von dem Designer der Animation ausgewählt wird als relevanter Ausrichtungspunkt. Vorzugsweise ist der Schwerpunkt ein anatomisch sinnvoller Ausrichtungspunkt, zum Beispiel für eine Figur, die einen Menschen darstellt, der Bauchmittelpunkt.
  • Die Ausführungsbasiseinheit
  • Die Ausführungsbasiseinheit enthält eine Prolog-Animation, ein Befehls-Script, das vom Benutzer oder durch die Systemsteuerung aufgerufen wird, und eine Epilog-Animation, die je nach den Ergebnissen der Befehlsausführung wahlweise vorgesehen sein kann. Ausführungsbasiseinheiten sind die Kernprozesse der bildhaften Benutzerschnittstelle. Jeder von einem Benutzer aufzurufende Befehl ist durch Datenstrukturen für Basiseinheiten dargestellt, zum Beispiel eine Prolog-Animation, Epilog-Animationen und ein Befehls-Script. Ausführungsbasiseinheiten können in jeder Weise sequentiell ausgeführt sein, oder es können Beschränkungen für erlaubte Sequenzen von Ausführungsbasiseinheiten definiert werden. In der bevorzugten Ausführungsform werden Beschränkungen und erlaubte Sequenzen von Basiseinheiten dadurch definiert und ausgeführt, dass ein Parse-Graph als einer der Eingaben an die top_level Funktion bestimmt wird, was später im Einzelnen beschrieben wird.
  • Drei Befehlsklassen sind Ausführungsbasiseinheiten zugeordnet. Eine Befehlsklasse entspricht etwa den im Betriebssystem zur Verfügung stehenden Befehlen. Die genauen Befehle dieser Klasse sind entsprechend dem verwendeten Betriebssystem unterschiedlich. Eine zweite Befehlsklasse wird zum Erzeugen und Aufrechterhalten der bildhaften Darstellung der Dateiobjekte verwendet. Es sind diese Befehle, die es einem Benutzer ermöglichen, Icons zu definieren und Links von Dateiobjekten zu Icons herzustellen sowie andere Aufgaben bei der Definition ihrer Partikularisierung der Datenstrukturen der bildhaften Schnittstelle zu definieren. Schließlich sind Dienstbefehle vorhanden, die zum Ändern und Aufrechterhalten des Zustandes verschiedener Laufzeitdatenstrukturen verwendet werden, die durch die Erfindung definiert sind, beispielsweise die Liste, die von der animierten Figur gesammelte Objekte aufzeichnet. Damit eine Figur Objekte sammeln und sie mitnehmen kann, werden Dienstbefehle benutzt, um Objekte zu der Sammlung hinzuzufügen, um gesammelte Objekte anzusehen und um Objekte aus der Sammlung zu entfernen.
  • Normalerweise sind Argumente zu Befehlen Dateiobjekte oder Icons. In der bevorzugten Ausführungsform kann ein Benutzer die Animation manipulieren, um bis zu zwei Argumente für einen gegebenen Befehl zu identifizieren. Diese Argumente sind als Kontextargument und Auswahlargument bezeichnet. Einige Befehle benutzen nur ein Kontextargument oder ein Auswahlargument, andere benutzen sowohl ein Auswahl- als auch ein Kontextargument und wieder andere erfordern kein Argument.
  • Das Kontextargument wird definiert als das Dateiobjekt, das dem Icon innerhalb des Cursor-Hot-Spots zur Zeit der Befehlsausgabe oder nachdem der letzte Rahmen der Prolog-Animation abgespielt wurde, zugeordnet ist. Das Auswahlargument wird durch den Benutzer identifiziert, indem er vor der Verwendung des Arguments durch einen weiteren Befehl einen Befehl set_selection_arg ausgibt. In der bevorzugten Ausführungsform stellt die Animation für set_selection_arg die Figur dar, wie es ein Icon aufsammelt. Nachdem ein Befehl set_selection_arg ausgegeben wurde, geht das Bild des ausgewählten Icons in den nachfolgenden Animationen der Figur auf, so dass es so scheint, als halte die Figur das Icon, bis ein Befehl reset_selection_arg ausgegeben wird.
  • Jede Prolog- und Epilog-Animation besteht vorzugsweise aus zwei getrennten Animationssequenzen, eine für das Verhalten der Figur und eine für das Verhalten des Icons bei den Befehlen, die Argumente aufnehmen. In der derzeit bevorzugten Ausführungsform wird Rahmenanimation verwendet. Bei der Anwendung von Rahmenanimation gehen die Figuren- und Icon-Animationsrahmen durch Zellenüberlagerung vor dem Playback ineinander über. Abhängig von dem derzeit ausgeführten Befehl können weitere Modifikationen an den gespeicherten Animationsrahmen vor dem Playback erforderlich sein. Bei der bevorzugten Ausführungsform wird beispielsweise, wenn das Auswahlargument eingestellt worden ist, das Bild des Auswahlarguments auf jedem Rahmen der Figurenanimation überlagert, um anzuzeigen, welches Icon oder welche Icons ausgewählt wurden.
  • Die Prolog-Animation ist eine Möglichkeit, dem Benutzer die Eingabe anzuzeigen. So springt zum Beispiel die Figur in ein Icon, wenn der Benutzer die B-Taste drückt. Springt die Figur nicht, dann weiß der Benutzer, dass das Eingabesignal in irgendeiner Weise nicht funktionierte. Auf ähnliche Weise kann die Epilog-Animation dazu eingesetzt werden, die Ergebnisse der Befehlsausführung dem Benutzer anzuzeigen, indem eine nur dafür verwendete Animation jedem der Ausführungsergebnisse zugeordnet wird und durch den Befehl zurückgegeben wird.
  • Audio-Clips werden wahlweise mit jeder Animation gespeichert. Sie können Geräuscheffekte oder eine musikalische Begleitung für die Animationsaktion liefern.
  • Zusätzlich können Audio-Segmente in der gleichen Weise Verzeichnissen zugeordnet sein wie Bilder. Die Geräuscheffekte und/oder die musikalische Begleitung werden vorzugsweise so ausgewählt, dass sie dem der Animation zugeordneten Befehl oder dem Inhalt des Verzeichnisses in metaphorischem Sinne entsprechen. In der bevorzugten Ausführungsform der Erfindung haben die einem Verzeichnis zugeordneten Audio-Segmente Vorrang vor Audio-Segmenten, die Figurenbewegungsanimationen zugeordnet sind, jedoch haben Audio-Segmente, die anderen Figurenanimationen zugeordnet sind, einen noch höheren Rang.
  • Animationen für Icons werden vorzugsweise nicht erzeugt, bis die Icons durch den Benutzer definiert sind. Das bedeutet, dass Icon-Animationen zur Laufzeit generiert werden. Abhängig von der Leistungsstärke und der Speicherkapazität können Icon-Animationen zu dem Zeitpunkt generiert werden, wenn Icons definiert werden, oder dann, wenn Animationen aufgerufen werden. Animationsrahamen für Icon-Animationen werden durch Bildtransformationen generiert, wobei Techniken zur Bildverzerrung eingesetzt werden (zum Beispiel Verziehungen oder Wölbungen, Morphing usw.) oder Partikelsysteme. Für eine Icon-Animationsgenerierungsfunktion ist das Icon-Bild die Eingabe (nachdem die Maske auf den Icon-Bereich gebracht wurde). Sie gibt eine Animationssequenz aus, die die Wandlung des Basisbildes zeigt. Es sind viele bekannte Funktionen zum Wölben und Verzerren von Bildern bekannt, die zum Generieren von Animationen verwendet werden können. Bei den Wölb-Funktionen werden Bildpixel entlang spezifizierter Bahnen im Raum verändert abgebildet und können Farb- oder Intensitätsveränderungen aufweisen, während sich die Pixel entlang der Bahnen fortbewegen. Bei den meisten Wölb-Funktionen werden die Pixel-Bahnen für ein willkürliches Bild automatisch errechnet. Beim Morphen werden die Bahnen mit Bezug auf benutzerspezifizierte Punkt- oder Linienpaare errechnet. Eine Animation wird aus einer Warp-Funktion generiert, indem jeder Rahmen der Animation durch Errechnen des neuen Ortes jedes Bildpixels zu diskreten Zeitpunkten während ihrer Bewegung entlang der Bahn wiedergegeben wird. 6 zeigt aufeinanderfolgende Rahmen einer Icon-Animation, die generiert wurde, indem eine bekannte Verzerrungsfunktion auf das in 3 bis 3c definierten Icon-Bildes des Mädchens angewendet wurde.
  • Partikelsysteme sind ein Alternativverfahren zum Spezifizieren der im Verlauf der Zeit auftretenden Entwicklung von verschiedenen Komponenten eines Bildes. Es sind häufig von Hand angebrachte Transpositionen von Partikeln verwendet worden, um Animationen von Explosionen oder Feuer zu generieren. In einem Partikelsystem kann die sich ergebende örtliche Anordnung, Farbe und/oder Intensität jedes Partikels (Satz von Pixeln) automatisch generiert werden, indem Wahrscheinlichkeitsregeln zugrunde gelegt werden. Die Auswahl von Partikeln aus einem Bildbereich kann ebenfalls nach Wahrscheinlichkeitsregeln erfolgen. Zum Schreiben von Animationen generierenden Funktionen können mehrere bekannte Techniken, beispielsweise Partikel- oder Morphing-Systeme verwendet werden. In der derzeit bevorzugten Ausführungsform wird angenommen, dass eine Animationen generierende Funktion zwei Argumente akzeptiert: die Grund-Bitmap und eine String-Variable, die mit einem Parser bearbeitet wird, um zusätzliche Parameter zu erhalten, wenn es erforderlich ist. Es wird ebenfalls angenommen, dass jeder Befehl auf Benutzerebene eine andere Animation generierende Funktion für seine Icon-Animation verwenden kann. In der derzeit bevorzugten Ausführungsform wird vorausgesetzt, dass eine Animation generierende Funktion zwei Argumente akzeptiert: die Grund-Bitmap und eine String-Variable, die von einem Parser bearbeitet wird, um, falls erforderlich, zusätzliche Laufzeitparameter zu erhalten. Es wird ebenfalls vorausgesetzt, dass jeder Befehl auf Benutzerebene eine andere Animation erzeugende Funktion für seine Icon-Animation verwenden kann.
  • Icon-Animationen werden zur Laufzeit mit Figurenanimationen über das Verfahren der Zellüberlagerung zusammengeführt. Zusätzlich werden viele Animationen modifiziert, bevor sie abgespielt werden, um spezielle Bedingungen des Schnittstellenzustandes darzustellen. Wenn beispielsweise das Auswahlargument eingestellt wurde, scheint es, als halte die Figur das ausgewählte Icon in einer Hand. Modifikationen wie diese können durch Zell-Überlagerungen auf Animationsrahmen erzielt werden, die als Identifizierung entsprechender Bereiche gekennzeichnet wurden, beispielsweise der Hand. Die für die Modifikation von Animationen durch Zell-Überlagerungen erforderliche Information kann mit der Header-Information für jede Animation gespeichert werden. Das Zentrum eines Auswahlarguments wird beispielsweise mit einem Punkt registriert, der für jeden Rahmen einer Animation gespeichert ist. Andere Informationen sind wahlfrei. Es kann beispielsweise eine Bit-Maske mit der Animation gespeichert sein und zum Abdecken von Abschnitten des ausgewählten Icons durch die Maske verwendet werden, so dass es besser mit den Animationsbildern integriert werden kann, so wie es beispielsweise der Fall ist, wenn eine Figur ein zusammengerolltes Plakat in seiner Hand hält und die Hand einen Teil des Plakats zu verdecken scheint, wie in 4 dargestellt.
  • Im Allgemeinen benötigt eine gespeicherte Animationssequenz eine Umwandlung oder „Kalibrierung" in die derzeitige Figur und die Icon-Positionen, bevor abgespielt wird. „Kalibrierung" wird angewendet, um sicherzustellen, dass die folgenden Beschränkungen eingehalten werden:
    • (1) Die derzeitige Figurenposition stimmt mit der Position der Figur im Anfangsrahmen der abzuspielenden Animation überein. Es muss keine exakte Übereinstimmung sein, aber sie muss innerhalb von wohldefinierten Schwellwerten liegen.
    • (2) Der derzeitige Ort der Figur, die Richtung und der Abstand der Bewegung in der Animation bewegt die Figur an den für die Interaktion mit dem Icon korrekten Ort.
  • Eine Kalibrierung kann durch die Verwendung bekannter Verfahren inverser Kinematik oder Dynamik erreicht werden oder durch die Anwendung einer Technik, die archetypische Positionen und Orts-Voraussagen kombiniert. Wird inverse Kinematik angewendet, können Bewegungsbahnen rückwärts berechnet werden. Das heißt, wenn ein Ort und eine Position für die Figur gegeben sind, wo es an einem Zeitpunkt in der Zukunft sein soll, beispielsweise die Position des Start-Rahmens der abzuspielenden Prolog-Animation, können die für das Anordnen der Figur an der Position und an dem Ort erforderliche Bewegung errechnet werden. Die Datenstrukturen, die das Figurmodell definieren, müssen ausreichend detailliert sein, um die ausgewählte Kalibrierungstechnik zu unterstützen. So erfordert beispielsweise die Verwendung der Kinematik zum Generieren von Zeichnanimationen zur Laufzeit, dass das Figurmodell mindestens gemeinsame Orts- und Geschwindigkeitsbeschränkungen für die Bewegung enthält. Selbst mit sehr einfachen, stark eingeschränkten kinematischen Modellen könnte das Herstellen von Animationsrahamen einen sehr hohen Rechenaufwand bedeuten.
  • In der derzeit bevorzugten Ausführungsform der Erfindung wird für die Kalibrierung von Figurenbewegungen zum Erreichen eines glatten Bewegungsablaufs ein einfaches Modell verwendet, das einen einzigen Bezugspunkt enthält, beispielsweise den bereits definierten Schwerpunkt, und für Befehle, die ein Kontextargument akzeptieren, den Ort des Cursors im letzten Rahmen der Prolog-Animation. Die Kalibrierung des Ortes wird erreicht durch die Bestimmung der Cursor-Position, indem sie am letzten Rahmen aller Prolog-Figurenanimationen, die auf der Basis der derzeitigen Eingabe des Benutzers abgespielt werden können, errechnet wird. Stehen mehr als eine Prolog-Animation zur Wahl, d.h. dass der eingestellte tastencode-identische Befehl mehr als ein Teil hat, wird der Cursor-Ort der ersten Prolog-Animation mit einem zugeordneten Befehl verwendet, der mit der Icon-Type übereinstimmt, die durch die vorhergesagte Position des Cursors bestimmt ist. Das ist ein Verfahren, das sich die Fähigkeit eines Benutzers zunutze macht, Verlaufsbahnen abzuschätzen und den Ort des Cursors bei der Steuerung von animierten Figuren vorherzusehen. Es wird vorausgesetzt, dass ein Benutzer ohne Schwierigkeiten die vorhergesehene Bewegung bei der Steuerung der animierten Figur kompensieren wird, da das eine ständig genutzte natürliche Tätigkeit ist. Beim Fassen nach einem Glas berechnet ein Mensch beispielsweise zuerst die inverse Dynamik, um zu bestimmen, wie Arm- und Handbewegung zu steuern sind, um präzise am Ort des Glases anzukommen.
  • In der derzeit bevorzugten Ausführungsform wird die Positionskalibrierung dadurch erreicht, dass ein Satz von archetypischen Positionen und Übergangsanimationen verwendet werden, die so definiert sind, dass sie eine Figur von einer archetypischen Position in eine andere bewegen. 5 zeigt einen Satz von archetypischen Positionen. Ausgenommen wenige besondere Fälle, die später beschrieben werden, sollten alle Prolog-Animationssequenzen mit einem Rahmen aus dem Satz von archetypischen Positionen beginnen und alle Epilog-Animationssequenzen sollten damit enden.
  • Für jedes Positionspaar im Satz archetypischer Positionen ist eine Übergangs-Animationssequenz vorgesehen. 5a stellt eine Übergangsanimation dar, die die Figur von der Position im Rahmen 2 der 5 in die Position im Rahmen 4 der 5 bewegt. Indem die korrekte Übergangs-Animationssequenz dem Anfang jeder abzuspielenden Prolog-Animation hinzugefügt wird, scheint sich die Figur in einer glatten Bewegung aus seiner derzeitigen Position durch die Übergangsanimation zur Prolog-Animation zu bewegen. Es wird ein Bezugspunkt für jeden archetypischen Positionsrahmen definiert, so dass den Rahmen in Übergangsanimationen am korrekten Ort des Hintergrundbildes etwas hinzugefügt werden kann. In einigen Fällen, insbesondere für Befehle, die garantiert einen Rekursivanruf zur Top-Level-Funktion beginnen oder beenden, wird der Animationsentwickler es wünschen, dass ein Schnitt aus einer Szene zu einer anderen gezeigt wird. In einem solchen Fall braucht die Animation nicht mit einem Rahmen aus den archetypischen Positionen zu beginnen oder zu enden.
  • Systemsteuerung
  • Gemäß der Erfindung steuert eine „Top-Level"-Funktion die Interaktion mit dem Benutzer, das Abspielen von Animation und die Befehlsausführung. Die Top-Level-Funktion nimmt einen parse_graph (zum Beispiel eine erklärende Darstellung eines endlichen Automaten), der gültige Befehlssequenzen als ein Argument definiert. Eine Ausführungsbasiseinheit wird nur dann ausgeführt, wenn der ihr zugeordnete Befehl als ein Folgezustand im Parse-Graph definiert ist. (Parse-Graphs werden später im Abschnitt „Befehle auf Benutzerebene" diskutiert). Die Top-Level-Funktion nimmt auch keycode_grammar als ein Argument an. Damit ist es möglich, dass Tastenfolgen innerhalb des Bereichs eines Rekursivanrufs eine unterschiedliche Semantik haben. Es ist dadurch auch möglich, dass ein Befehl eine Benutzereingabe vor der Durchführung eines Rekursivanrufs der Top-Level-Funktion maskiert wird. Das ist ein zweites Verfahren (zusätzlich zum parse_graph), um einen Befehlssatz, den der Benutzer aufrufen kann, innerhalb der Rekursivanrufe der Top-Level-Funktion einzuschränken. Es ist Befehlen erlaubt, Rekursivanrufe zur Top-Level-Funktion zu machen, um ein Schachteln von Ausführungsbasiseinheiten bereitzustellen. Wird sie angerufen, dann schickt die Top-Level-Funktion ein Argument zurück, beispielsweise einen Zeiger für einen Figuren-String.
  • Gemäß der derzeit bevorzugten Ausführungsform nimmt die Top-Level-Funktion auch einen command_buffer als ein Argument an. Indem Befehle in den command_buffer eingefügt werden, können Befehle andere Befehle unter der Programmsteuerung aufrufen. Damit wird der Funktionalität nichts hinzugefügt (Befehle könnten Eingangssignale in den Eingangspuffer in der einfachsten Steuerstruktur einfügen), aber die Implementierung wird vereinfacht.
  • Die Ergebnisse der Befehlsausführung werden den Epilog-Animationen hinzugefügt und die Übersicht wird für die Auswahl der abzuspielenden Epilog-Animation verwendet. Es wird ein Vorgang aufgerufen, um die gerade beendete Animationssequenz gegenüber der demnächst auszuführenden zu kalibrieren, um während der Übergänge eine glatte Bewegung sicherzustellen. Der Vorgang der Animationskalibrierung wird später im Abschnitt „Interne Vorgänge" beschrieben. Allgemein gesagt handelt es sich um eine ausführbare Funktion, die eine Anfangsposition und eine Endposition als Argument akzeptiert und eine Animationssequenz zurückschickt, die die Figur aus der Anfangsposition in die Endposition bewegt. Die Steuerstruktur für die derzeit bevorzugte Ausführungsform der Top-Level-Funktion ist:
    Figure 00370001
    Figure 00380001
  • Mit dieser Steuerstruktur ist es möglich, Animationssequenzen zu schachteln. Durch Schachteln, Behandeln von Fehlern und befehlsspezifische Dialoge mit dem Benutzer kann die Top-Level-Funktion die Struktur einer Ausführungsbasiseinheit auf disziplinierte Weise einsetzen. Bei benutzerinteraktiven Sub-Aufgaben können „Kind"-Animationssequenzen mit dieser Steuerstruktur aufgerufen werden. Das bietet den Vorteil, dass eine einzige Interaktionsstruktur mit dem Benutzer, ein einheitlicher Satz von Datenstrukturen aufrechterhalten und dass die Code-Entwicklung vereinfacht wird. Untergeordnete Aufgaben wie Fehlerroutinebehandlungen oder Anforderungen von Bestätigungen können Prolog- und Epilog-Animationssequenzen mit derselben Art von Datenstrukturen implementieren, beispielsweise input_animation_map, wie sie für Befehle verwendet werden, die direkt von einem Benutzer aufgerufen werden.
  • Der Befehl zum Abbruch beispielsweise stellt gemäß der derzeit bevorzugten Ausführungsform die Verwendung von geschachtelten Ausführungsbasiseinheiten dar. Die Prolog-Animation zeigt eine Figur, die Enttäuschung ausdrückt und fragt: „Bist Du sicher?". Eine geschachtelte Animationssequenz lässt im Hintergrund zwei Schilder auftauchen, auf dem einen steht „beenden" und auf dem anderen ist das Wort „beenden" durchkreuzt. Der Benutzer bewegt die Figur auf das gewünschte Schild und drückt die B-Taste. In der Epilog-Animation der geschachtelten Sequenz wird gezeigt, dass die Schilder explodieren, und die geschachtelte Sequenz kehrt zur Top-Level-Sequenz zurück. Die Epilog-Animation der Top-Level-Sequenz zeigt, dass die Figur zum Abschied winkt oder, alternativ, sich die Stirn erleichtert abwischt. Das Ergebnis ist eine Folge von Animationen, während der die Figur in Richtung des Benutzers sieht und fragt: „Bist Du sicher?", auf die Eingabe vom Benutzer mit der Auswahl eines Schildes reagiert und schließlich je nach Eingabe vom Benutzer entweder zum Abschied winkt oder sich erleichtert die Stirn wischt.
  • Vor einem Rekursivanruf zum Top-Level wird der input_buffer normalerweise entleert (flushed). Die Rekursion sollte sorgfältig gesteuert werden, um Übergangsketten in Befehlsaufrufsequenzen zu vermeiden, in denen eine Folge von Befehlen unendlich lange durchlaufen werden kann. Um das zu vermeiden, können Parser-Graphs definiert werden, um die Befehlsausführung innerhalb jedes Rekursivanrufs der Top-Level-Funktion zu begrenzen. Beschränkungen von möglichen Sequenzen von Basiseinheiten können dazu verwendet werden, Übergangsketten zu verhindern. Zusätzlich können Parser-Graphs definiert werden, die bestimmte Interaktionsszenarien mit dem Benutzer erforderlich machen. In der derzeit bevorzugten Ausführungsform ist ein leerer Parser-Graph äquivalent zu einem vollständig verbundenen Parser-Graph, d.h. es gibt keine Einschränkungen für die Befehlssequenzen. Damit wird die Implementierung vereinfacht, so dass es nicht erforderlich ist, jeden Zustand und jeden Übergang im Parse-Graph zu definieren, es sei denn, er soll eingeschränkt werden.
  • Die Semantik von Eingabetasten kann ebenfalls für die Dauer einer geschachtelten Interaktion mit dem Benutzer neu definiert werden, weil die Top-Level-Funktion input_command_map und parse_graph als Eingaben akzeptiert. Mit diesem Merkmal ist es einem Designer möglich, die Anzahl von Eingabetasten zu verringern, die vom Benutzer zu lernen und zu handhaben ist. In der bevorzugten Ausführungsform wird beispielsweise die B-Taste normalerweise für die Vorgabeaktivierung eines Icons verwendet, innerhalb des Dialogs, der im Befehl define_icon geschachtelt ist, wird die B-Taste jedoch zur Definition der Ecken eines Rechtecks eingesetzt.
  • Rekursivanrufe bei der Top-Level-Funktion entsprechen normalerweise dem folgenden Script:
    • 1. leere Eingangspuffer;
    • 2. füge Befehle in command_buffer ein, wenn erforderlich;
    • 3. rufe Top-Level mit einer geeigneten input_command_map und parse_graph als Eingabe auf.
  • Die Ausführung wird beendet, wenn ein Abschlussbefehl aufgerufen wird oder wenn ein Abschlusszustand im Parser-Graph erreicht ist.
  • Der Befehl define icon, wie er hier beschrieben ist, ist ein Beispiel für die Verwendung eines alternativen parse_graph innerhalb eines Rekursivanrufs an die Top-Level-Funktion, um eine bestimmte Interaktionssequenz mit einem Benutzer auszuführen. In den 3 und 3a bis 3d wird ein Icon dadurch definiert, dass die Tastenkombination gedrückt wird, die den Befehl define_icon aufruft (linke Taste + A-Taste). Das führt zu einer Animation der 22, so dass sie ihre Hand hebt und eine Nadel 60 hält. An diesem Punkt werden nur fünf Befehle vom Benutzer akzeptiert, d.h. Befehle, die die 22 nach links, nach rechts, nach oben oder untern an einen Ort im Bild 12 bewegen, um es an den Ecken des Bildausschnitts 62 zu positionieren und die Nadel 60 am Hintergrundbild 12 festzustecken. Das Bewegen der 22 ruft die Animation hervor, die ein Gehen in die ausgewählte Richtung eintreten lässt, wie in 3a gezeigt. Das Einstecken der Nadel ergibt eine Animation der Hand der Figur, die die Nadel in den Hintergrund drückt, um eine erste Ecke eines Rechtecks zu bestimmen, wie in 3b gezeigt. Eine zweite Nadel 60a erscheint in der Hand der Figur und wird an der ersten Nadel durch ein in der Größe einzustellendes blinkendes Rechteck 62a „befestigt". Der Benutzer bewegt die Figur an einen zweiten Ort und steckt die zweite Nadel ein. Der Bildausschnitt 62 innerhalb des Rechtecks 62a ist damit als Icon-Bereich ausgewählt. Der Ablauf der Benutzerinteraktion während des Befehls define_icon ist in 3d gezeigt. Wie später im Abschnitt „Interne Vorgänge" beschrieben wird, wird die rechteckige Auswahl maskiert, um ein scheinbar nicht-rechteckiges Icon zu erzeugen. 3e und 3f zeigen die Schritte bei der Erschaffung einer Maske für ein nicht-rechteckiges Icon. Verbundene Bereiche der Bildregion 62 werden vom Zentrum aus radial nach außen identifiziert. Dann wird das Bild einem Schwellwertverfahren unterzogen, um Rauschen zu entfernen. Um die eingeschlossene Region wird eine Maske 62a gebildet. Die Maske 62b wird geglättet und mit dem Bildbereich 62 überlagert, um ein Icon 62c zu bilden, das nicht rechteckig ist.
  • Datenstrukturen
  • Informationen über Verzeichnisse, Icons, die animierten Figuren, Benutzerebenenbefehle, Ausführungsbasiseinheiten und Animationen sind in einer Anzahl von Strukturen, Listen und/oder Feldern gespeichert, wie es nachfolgend beschrieben wird. Jede Datenstruktur wird unter Verwendung einer C-Sprachenstilnotation beschrieben.
  • Die Verzeichnisbilder
  • Gemäß der derzeit bevorzugten Ausführungsform wird bildhafte Information, die Verzeichnissen zugeordnet ist, in einer Liste oder einem Feld bespeichert, das allgemein als „directory_image_map" bezeichnet wird und die folgende Information enthält:
    directory_image_map[directory].icon_list /* Zeiger für ein icon_list, das alle Icons enthält */
    directory_image_map[directory].overlay_icons /* Zeiger für ein icon_list, das nur Überlagerungs-Icons enthält */
    directory_image_map[directory].image /* voller Pfadname einer Bilddatei */
    directory_image_map[directory].fileobject /* voller Pfadname d. Verzeichnisses */
    directory_image_map[directory].audio
  • Eine directory_image_map für ein spezielles Verzeichnis enthält vorzugsweise den Pfadnamen für die bildliche Hintergrunddarstellung, den Pfadnamen des Verzeichnisses, eine Liste der Icons (Bildausschnitte) in der bildhaften Verzeichnisdarstellung und eine Liste von Überlagerungs-Icons (Icons, die zu anderen Verzeichnissen eine Querverbindung haben). Die directory_image_map kann ebenfalls Audio-Clips enthalten, die dem Verzeichnis zugeordnet sind. Zum Kodieren der directory_image_map Information für das Verzeichnis können individuelle Dateien verwendet werden, die in jedem Verzeichnis auf einer Speichervorrichtung gespeichert sind.
  • Hintergrundbilder
  • Jede bildliche Hintergrunddarstellung, die dazu dient, ein Verzeichnis auf bildhafte Weise zu identifizieren, ist vorzugsweise in einer Datenstruktur gespeichert, die allgemein als „background_image" bezeichnet wird und vorzugsweise die folgende Information enthält:
    background_image.bitmap
    background_image.size /* für 2D-Implementierung kann dies ein (x,y)-Koordinatensystem sein */
    background_image.palette /* wahlfrei */
  • Die Icon-Bilder
  • Gemäß der derzeit bevorzugten Ausführungsform sind Informationen über Icons und die Dateiobjekte, denen sie zugeordnet sind, in einer Struktur gespeichert, die allgemein als „icon" bezeichnet wird. Sie zeichnet Informationen auf, die die Dateiobjekte im Dateisystem des Betriebssystems ihren bildhaften Darstellungen in der Schnittstelle zuordnet. Es gibt zwei grundsätzliche Arten von Informationen, die für jedes Icon gespeichert sind: bildhafte Informationen, die für die Verwaltung der bildhaften Darstellung des Dateiobjektes verwendet werden, und Dateiobjektinformationen zum Beispiel darüber, wie die Dateihandhabung und die Handhabung des Vorgabeprogramms für das zugeordnete Dateiobjekt erfolgt. Es stehen auch unterschiedliche Informationen zur Verfügung für spezifische Operationen wie das Kreieren vorläufiger Icons und das Verwalten von nicht-hierarchischen Querverbindungen, die in der Schnittstelle vorhanden sind, jedoch im unterlegten Dateisystem möglicherweise nicht zur Verfügung stehen. Die folgende Information ist vorzugsweise in „icon" enthalten:
    Icon.location /* Punkt im Hintergrundbild Koordinatensystem */
    Icon.size /* skalierter Punkt definiert auf Gesamtsystemebene */
    Icon.bitmask /* Binärbild gleiche Größe wie Icon */
    Icon.center /* Punkt im Hintergrundbild Koordinatensystem */
    Icon.background_image /* Zeiger auf Bild, in dem Icon enthalten ist; dies sollte aktualisiert wer
    den, um sich bei Verwendung auf Speicherort zu beziehen. */
    Icon.image /* Zeiger auf Bild, das Icon-Darstellung ist; verwendet für Überlage
    rungs-Icons, z.B. generische Icons. Wenn Null, dann werden Hinter
    grundbild, Größe und Ort benutzt, um Icon-Bilddarstellung zu entwi
    ckeln */
    Icon.deleted? /* WAHR (TRUE), wenn das Icon und das zugehörige Dateiobjekt,
    wenn vorhanden, zum Löschen markiert wurden */
    Icon.temp? /* wenn WAHR (TRUE), ist dies ein vorläufiges Icon. Vorläufige Icons sind
    Überlagerungs-Icons, die solange existieren, wie das Verzeichnis
    das derzeit gültige Verzeichnis ist. Sie werden gelöscht von der i
    con_list, wenn ein change_directory Befehl ausgeführt wird. Alternativ
    könnte die Regel gelten, dass diese Icons zum Zeitpunkt des Startups
    gelöscht werden, z.B. um das Feld von der vorhergehenden Sitzung
    freizumachen. */
    Icon.overlay? /* WAHR (TRUE), wenn dies ein Überlagerungs-Icon ist */
    Icon.fileobject /* voller Pfadname für Dateiobjekt */
    Icon.fileobject_type /* Art des Dateiobjektes – eines aus DIR oder FILE */
    Icon.crosslink? /* Wenn WAHR (TRUE), ist dies ein nicht-hierarchischer Link in der
    Schnittstelle und spiegelt nicht die Struktur des unterlegten Dateisys
    tems wider */
    Icon.default_program /* voller Pfadname für das Vorgabeprogramm */
    Icon.animation /* wahlfrei: gespeicherte Animation für Icon, die Audio enthalten kann */
    Icon.icon_list /* Rückwärtszeiger auf die icon_list, in der Icon vorhanden ist */
  • Die icon_list ist eine Liste oder ein Feld zum Aufzeichnen von Zeigern für die Icon-Datastrukturen. Ihr wichtigster Verwendungszweck ist das Aufzeichnen von Icons, die jedem speziellen Dateisystemverzeichnis in der directory_image_map zugeordnet sind. Die tatsächliche Implementierung dieser Liste ist für eine schnelle Identifikation eines Icons aus dem Ort auf dem Bildschirm wichtig. In der bevorzugten Ausführungsform sollte eine getrennte globale variable Icon-Liste unterhalten werden, die nur solche Icons enthält, die derzeit auf der Bildschirmanzeige sichtbar sind, indexiert durch ihren Ort in dem Koordinatensystem der Bildschirmanzeige.
  • Das animierte Figurenmodell
  • Informationen über die animierte Figur sind als Liste oder Feld gespeichert, die oder das allgemein als character_model bezeichnet wird und vorzugsweise die folgende Information enthält:
    character_model /* alle Koordinaten als Hintergrundbild-Koordinatensystem */
    character_model.size /* begrenzendes Rechteck für Bildzeichen in allen
    Animationsrahmen */
    character_model.cursor.hotspot
    character_model.cursor.size
    character_model.center
    character_model.position /* ein Wert eines Satzes von Werten, die eine Figurenposition
    beschreiben */
    /* der Einfachheit halben beschränken wir den Satz auf vier
    Werte {LINKS, RECHTS, NACH OBEN, NACH UNTEN} */
    character_model.collected_objects /* Liste der Icons */
  • Das character_model wird benutzt, um Informationen über den Ort und die Position von Figur und Cursor im gesamten System während einer Sitzung aufrechtzuerhalten. Sie werden durch play_animation aktualisiert (nachfolgend beschrieben), um zum letzten Rahmen jeder durchgespielten Animation zu passen. Das Figurenmodell wird zur Kalibrierung der Animationen und Ausrichten der bildhaften Darstellungen der Figur durch die Animationen verwendet. Es wird ebenfalls verwendet, um den Cursor zu nachzuführen. Es wird ebenfalls genutzt, um die Referenzliste für Dateiobjekte, die der Benutzer sammeln möchte und zu denen er während einer Sitzung sofort Zugang haben möchte, während der Sitzung aufrechtzuerhalten.
  • Die Benutzerebenen-Befehls-Scripts
  • Informationen über die Befehle auf Benutzerebene sind in einer Liste oder einem Feld gespeichert, die oder das allgemein als command_script bezeichnet wird und vorzugsweise die folgende Information enthält:
    command_script.function /* Zeiger auf auszuführenden Code */
    command_script.options_arg /* wahlfrei – Parameter z. Ausführung */
  • command_script wird verwendet, um einen Zeiger für den auszuführenden Code für Befehle auf Benutzerebene und die systemweiten Parameter für jeden Befehl aufrechtzuerhalten.
  • Die Benutzerebenen-Befehlsabbildungen
  • Befehls-Scripts werden in einer Feld- oder Listen-Datenstruktur gespeichert. Die Datenstruktur wird verwendet, um Befehls-Scrips zu indexieren und zurückzuholen, indem auf den Befehlscode des entsprechenden Befehls Bezug genommen wird.
    command_scripts[command_code].command_script /* Zeiger auf Befehls-Script */
  • Die Ausführungsbasiseinheiten
  • Laufzeitparameter der Ausführungsbasiseinheiten werden in Listen oder Feldern gespeichert, die allgemein als beu bezeichnet werden und vorzugsweise die folgende Information enthält:
    beu.command_code /* identifiziert Benutzerebenenbefehle und Animation */
    beu.icon /* Kontextargument für partikularisierte Ausführungsbasiseinheit */
    beu.duration /* für wiederholte Ausführung eines einzigen Benutzerebenenbefehls */
  • Die Animations-Scripts
  • Gemäß der Erfindung wird Information über Animationen in Feldern oder Listen gespeichert, die allgemein als script bezeichnet werden und vorzugsweise die folgende Information enthalten:
    script.ID /* Identifikationsmerkmal f. diese Animation */
    script.command_class /* Zurück-Link zu command_class */
    script.command_code /* Zurück-Link zu command_code */
    script.animation_selector /* Zurück-Link zu animation_selector; verwendet f. Epi
    log-Animationen */
    script.n_of_frames
    script.desired_frame_rate /* Rahmen pro Sekunde */
    script.palette
    script.merge_frame /* nur f. Figurenanimationen – Rahmen # mit Mischen d.
    Icon-Animation beginnen */
    script.merge_distance /* nur f. Figuren – dies + char center sollte = Icon-
    Zentrum i. Mischrahmen */
    script.loop_startframe /* Beginn d. Schleife, wenn dieser Rahmen der Beginn
    einer Animations-Abspielschleife ist */
    script.loop_endframe /* nur verwendet, wenn loop_start nicht NULL ist */
    script.loop_#iterations /* nur verwendet, wenn loop_start nicht NULL ist */
    script.cursor_in_last_frame.location /* nur b. Figurenanimationen – koord. gegenüber Ur
    sprung am Rahmenzentrum */
    script.cursor_in_Iast_frame.size /* nur bei Figurenanimationen – Punkt */
    script.char_initial_position /* einer eines Satzes v. Werten, die Figurenposition be
    schreiben */
    script.char_final_position /* d. Einfachheit halber begrenzen wir d. Satz auf vier
    Werte, die die Quadranten e. Kreises beschreiben, z.B.
    {LINKS, RECHTS; NACH OBEN, NACH UNTEN} */
    script.frame[i].bitmap
    script.frame[i.size /* Punkt-System Standardauflösung */
    script.frame[i].anchor /* Punkt b. Animationskoordinatensystem ... beginnt bei
    Rahmen 1 (0,0) */
    script.frame[i].to_next /* Vektorinkrement z. nächsten Rahmen-Ankerkoordinat.
    – hauptsächlich f. Schleifen verwendet */
    script.frame[i].audio /* Zeiger auf Audio-Segment synced m.diesem Rahmen */
    script.frame[i].center /* Punkt d. normalerweise d. Figurenzentrum in e. Figu
    renanimation ist od. Icon-Zentrum in e. Icon-Animation –
    koord. gegenüber Ursprung am Rahmenanker, verwen
    det um Animationen gegenüber vorherigen Szenarien
    auszurichten */
    script.frame[i].selection_arg.center /* koord.gegenüber Ursprung am Rahmenanker, kann
    Orientierungsinfo.enthalten */
    script.frame[i].selection_arg.bitmask /* verwendet z. phantasievollen Maskierung d. Auswahl
    arg image */
  • Jedes Animations-Script erfordert einen Kopf oder Header, der zusätzlich zum Bereitstellen von Informationen über Parameterwerte von Standardanimationen die Animation einem Benutzerebenenbefehl zuordnet, das Nachführen des Cursors und die Kalibrierung mit anderen Animationssequenzen ermöglicht, so dass Animationssequenzen aneinander angepasst werden können und dabei ein glatter Bewegungsablauf aufrechterhalten bleibt. Informationen darüber, wie eine Icon-Animation in eine Figurenanimation übergehen oder mit ihr gemischt werden soll, werden für die Figurenanimationen auf dem aktuellen Stand gehalten.
  • Header-Variable, die das Animations-Schleifenverhalten beschreiben, sind für Laufzeititerationen gemäß der vom Benutzer festgelegten Kriterien vorhanden.
  • Zusätzlich zur Header-Information enthält jeder Rahmen der Animation Informationen über den Ort des Rahmens gegenüber anderen Rahmen in derselben Animation, Audio-Sychronisationsinformationen, zusammenfassende Informationen über den Schwerpunkt (Bezugspunkt) des wichtigsten Darstellers (Figur oder Icon) und Informationen zum Mischen oder für den Übergang unabhängiger Bit-Maps (normalerweise zur Visualisierung ausgewählter Argumente bei der Figurenanimation).
  • Das Einstellen und Führen des Cursors hängt vom Benutzerbefehl ab. Stößt beispielsweise die Figur gegen ein Icon, dann ist der Full der Cursor. Zeigt die Figur auf ein Icon, ist die Hand der Cursor. Da der Cursor eine Komponente der Animation ist, kann er verändert und durch die Evaluierung der Animation geführt werden. In der bevorzugten Ausführungsform benutzt die Funktion find_icon (wird später beschrieben) das Animations-Script, um den Ort des Cursors am Ende der Prolog-Animation zu identifizieren. Das hilft bei der Vermeidung von Problemen bei der Kalibrierung von Animationen.
  • 4 und 4a bis 4d zeigen Beispiele für Prolog- und Epilog-Animationen. 4d zeigt die Anordnung des Cursors in der Prolog-Animation für den Befehl change_directory. Die rechteckige Maske 22a wird zum Anzeigen des Bereiches des Cursor-Hot-Spots verwendet. Der Cursor wird nur im letzten Rahmen der Prolog-Animation definiert. In 4d wird der Cursor-Ort beispielsweise durch das Rechteck 22a festgelegt, das die Sohlen der Füße der Figur an dem Punkt begrenzt, wo es von einem Sprung landet. Da der Cursor-Ort in der Header-Information jeder Prolog-Animation aufgezeichnet ist, können Animationen für unterschiedliche Befehle den Cursor so definieren, dass er an unterschiedlichen Orten ist. Befehle, die ein Kontextargument nicht akzeptieren, haben einen undefinierten oder NULL cursor_in_last_frame.location und cursor_in_last_frame.size. Die in 4 und 4a bis 4c dargestellten Animationen für Befehle akzeptieren beispielsweise kein Kontextargument, und es ist nicht notwendig, einen Cursor-Bereich zu definieren. Auf ähnliche Weise brauchen für Epilog-Animationen und Übergangsanimationen, zum Beispiel für die in 5a gezeigte, keine Cursor-Bereiche definiert zu werden.
  • Das Auswahlargument
  • Wenn ein Objekt ausgewählt ist, werden Informationen über das ausgewählte Objekt in einer Liste oder einem Feld gespeichert, die oder das allgemein als selection_arg bezeichnet wird und vorzugsweise die folgende Information enthält:
    selection_arg.location /* kann gegenüber Ursprungs-Icon anders sein */
    selection_arg.bitmap /* kann gegenüber Ursprungs-Icon anders sein */
    selection_arg.center
    selection_arg.icon selection_arg.size
  • Das Auswahlargument wird für Benutzerebenenbefehle benötigt, die zwei Argumente akzeptieren. Zusätzlich zu einem Zeiger auf das ausgewählte Ursprungs-Icon hat das Auswahlargument seine eigene bildhafte Darstellung und seinen eigenen Ort. 4 zeigt das Auswahlargument, das einer Figurenanimation überlagert ist.
  • Das Befehlsanimationsübersichten
  • Die Befehlsanimationsübersichten sind Listen oder Felder, die den Zusammenhang zwischen Benutzerebenenbefehle und Animationen aufrechterhalten, die vor und nach der Ausführung der Befehle abgespielt werden. Animationen werden entweder als Zeiger auf Daten aufgezeichnet, die Animations-Scripts enthalten, oder als Zeiger auf ausführbare Codes und Parameter, die zum Generieren einer Animation zur Laufzeit verwendet werden können. Die Befehlsanimationsübersichten enthalten im Allgemeinen prologue_animations und epilogue_animations und enthalten vorzugsweise die unten aufgeführte Information:
    prologue_animations[command_code,selector] /* f.Prolog-Animationsauswahl = NULL */

    prologue_animations[command_code,selector].icon
    prologue_animations[command_code, selector].icon.animation_scriptfile
    prologue_animations[command_code, selector].icon.generating_function
    prologue_animations[command_code, selector].icon.gf_parameters
    prologue_animations[command_code, selector].icon.next_animation_list
    prologue_animations[command_code,selector].icon.previous_animation_list
    prologue_animations[command_code,selector].char
    prologue_animations[command_code,selector].char.generating_function
    prologue_animations[command_code,selector].char.gf_parameters
    prologue_animations[command_code,selector].char.animation_scriptfile
    prologue_animations[command_code,selector].char.next_animation_list
    prologue_animations[command_code,selector].char.previous_animation_list

    epilogue_animations[command_code, execution_result]
    epilogue_animations[command_code, execution_result].icon
    epilogue_animations[command_code, execution_result].icon.animation_scriptfile
    epilogue_animations[command_code, execution_result].icon.generating_function
    epilogue_animations[command_code, execution_rsult].icon.gf_parameters
    epilogue_animations[command_code, execution_result].icon.next_animation_list
    epilogue_animations[command_code, execution_result].icon.previous_animation-list

    epilogue_animations[command_code, execution_result].char
    epilogue_animations[command_code, execution_result].char.generating_function
    epilogue_animations[command_code, execution_result].char.gfparameters
    epilogue_animations[command_code, execution_result].char.animation_scriptfile
    epilogue_animations[command_code, execution_result].char.next_animation_list
    epilogue_animations[command_code, execution_result],char.previous_animation_list
  • Next_animation_list und previous_animation_list sind wahlfreie Informationen. Werden sie verwendet, dann ist es möglich, dass Animationen in einer Animationsgrafik Verbindung zueinander haben. Die Variablen next_animation_tist und previous_animation_list sind die Vorwärts- und Rückwärts-Links in der Animationsgrafik. Die grafische Darstellung von Animationen kann dazu verwendet werden, eine spezialisierte Technik zur Animationskalibrierung durchzuführen, die später im Abschnitt „Interne Vorgänge" diskutiert wird.
  • Datenstrukturen der Systemsteuerung
  • Die folgenden Datenstrukturen werden für die Systemsteuerung und die Ablauffolgen von Ausführungsbasiseinheiten verwendet.
  • Die Eingangssignalabbildung wird in einer Datenstruktur gespeichert, die allgemein als keycode_grammer bezeichnet wird. Dabei handelt es sich um eine endliche Grammatik, die jede gültige Eingangssequenz einem tastencode-identischen Satz zuordnet. In der bevorzugten Ausführungsform wird diese Aussagedarstellung von einem standardartigen lexikalischen Parser dazu genutzt, die geeignete command_class bei einer gegebenen gültigen Eingangssequenz zurückzuschicken. Die folgende Information ist in keycode_grammer enthalten:
    keycode_grammer.input_sequence /* String m. Kodierung abhängig von Eingabegerät */
    keycode_grammer.keycode_identical_command_set /* Verlust von Befehlscodes */
  • Eine Grammatik, die Benutzerebenenbefehle enthält, ist in einer Datenstruktur gespeichert, die allgemein als parse_graph bezeichnet wird. In der derzeit bevorzugten Ausführungsform ist der parse_graph ein endlicher Automat, der gültige Sequenzen von Benutzerebenenbefehlen aufzeichnet. Dies wird benutzt, um bestimmten Befehlskombinationen Beschränkungen aufzuerlegen, insbesondere bei geschachtelten Animationssequenzen, die dazu verwendet werden, spezifische Arten von Informationen von einem Benutzer zu erhalten (s. beispielsweise den Parse-Graphen für define_icon in 3d). Der parse_graph enthält die folgende Information:
    parse_graph /* Jeder Zustand ist ein einzigen Befehlscode zugeord
    net. Ein Befehlscode kann vielen Zustanden zugeordnet
    sein */
    parse_graph.state /* Identifikations- oder Handhabungsmerkmal d. Zustan
    des */
    parse_graph.state.next_states /* Liste d. Zeiger auf d. nächsten Zustände */
    parse_graph.state.command_code /* command_code, der dem Zustand zugeordnet ist */
  • Der Befehlspuffer
  • Eine Gruppe von Zeigern für Ausführungsbasiseinheiten kann für die Implementierung des Befehlspuffers benutzt werden.
    command_buffer[index].beu /* Zeiger auf eine Ausführungsbasiseinheit */
  • Befehle der Benutzerebene
  • Die Benutzerebenenbefehle werden direkt vom Benutzer des Systems aufgerufen. In der derzeit bevorzugten Ausführungsform geschieht das Aufrufen von Befehlen über Tasten des oben beschriebenen Spielesteuerungsgerätes. Jedem Befehl ist eine kleine Zahl von Eingabetasten zugeordnet, die entweder gemeinsam oder nacheinander gedrückt werden. Jeder Befehl besteht aus einer einzigen Ausführungsbasiseinheit, die eine Prolog-Animation, den Befehls-Script und eine oder mehrere Epilog-Animationen enthält. Ruft der Benutzer durch Drücken der korrekten Tasten auf, spielt die Prolog-Animation ab, der Befehls-Script wird ausgeführt und eine der Epilog-Animationen spielt ab.
  • Gemäß der derzeit bevorzugten Ausführungsform kann ein Befehl bis zu zwei Argumente aufweisen. Die Argumente für einen Befehl müssen Icons sein, wie es in dieser Erfindung definiert ist. Die Argumente für einen Befehl werden entweder durch einen voraufgehenden Befehl vorgewählt oder werden durch den Ort des Cursor-Hot-Spots auf dem Anzeigebildschirm bestimmt. Obgleich die Implementierung einfacher ist, wenn der Cursor-Hot-Spot vor dem Start der Ausführungsbasiseinheit beachtet wird, wird in der bevorzugten Ausführungsform der Ort des Cursor-Hot-Spots nach dem Abspielen der Prolog-Animation beobachtet. Wird die Prolog-Animation genutzt, um den Cursor-Ort zu bestimmen, kann eine bessere Koordination zwischen der Figur und Icons erreicht werden. Dies gilt besonders dann, wenn der Cursor-Hot-Spot mehreren Teilen des Körpers der Figur abhängig vom aufgerufenen Befehl zugeordnet werden kann.
  • In der derzeit bevorzugten Ausführungsform kann eine Anzahl von Befehlen identischen Signalen (oder Signalsequenzen) von einer Eingabevorrichtung wie einer Tastatur oder einer Maus, von einem Spielesteuergerät oder einer Infrarot-Fernsteuerung zugeordnet werden. Wenn einer einzigen Benutzereingabe (oder Eingabesequenz) mehr als ein Befehl zugeordnet ist, sind die Befehle auf einzigartige Weise zu unterscheiden durch das Vorhandensein von Argumenten, der Art der Argumente oder durch Informationen, die in den Argumenten gekapselt sind. Eine Mehrfachzuordnung von auf Tasten basierenden Eingabesignalen ist darum von Nutzen, dass sie dabei hilft, die Anzahl der Tastensignale, die vom Benutzer zu lernen sind, zu begrenzen. In der derzeit bevorzugten Ausführungs form teilen sich beispielsweise change_directory, change_directory_to_ancestor, run_program und run_default_program das gleiche Eingabesignal, sind jedoch wie folgt zu unterscheiden:
    change_directory_to_ancestor Icon ist ein Überlagerungs-Icon, das sich auf ein Verzeichnis
    bezieht;
    change_directory Icon bezieht sich auf ein Verzeichnis
    run_default_program ein Icon-Argument & Icon lässt Vorgabeprogramm definieren
    run_program zwei Icon-Argumente & eines ist eine auszuführende Datei
  • Die Mehrfachbelegung von auf Tasten basierenden Eingabesignalen wird vorzugsweise dadurch ausgeführt, dass Befehle von der Benutzerebene zu tastencode-identischen Sätzen gruppiert werden, von denen viele einen einzigen Bestandteil haben. Alle Befehle eines tastencode-identischen Satzes sind demselben Eingabesignal oder derselben Eingabesignalsequenz zugeordnet. Eingangssignale von der Eingabevorrichtung werden mit einem Parser bearbeitet, um den diesem Signal zugeordneten tastencode-identischen Satz zurückzusenden. Die keycode_identical_command_set Variable wird benutzt, um den Satz von Benutzerebenenbefehlen, der dem Satz zugeordnet ist, in Beziehung zu setzen.
  • Jeder Befehl von der Benutzerebene hat eine nur für ihn geltende Prolog-Animation und einen nur für ihn geltenden command_code. In einigen Fällen können mehrere Befehle der Benutzerebene dasselbe auszuführende command_script teilen, bieten jedoch eine einzigartige Animation. So haben beispielsweise change_directory und change_directory_to_ancestor unterschiedliche Befehlscodes und Prolog-Animationen, teilen jedoch das gleiche auszuführende command_script.
  • Der keycode-identical_command_set und die Argumente zu den Befehlen werden einem Verteilervorgang zugeführt, der bestimmt, welcher der Befehle in der Klasse durch den Benutzer aufgerufen wurde. Der vom Verteiler zurückgeschickte command_code wird zum Aufrufen der mit dem Befehl assoziierten Animationen aus den prologue_animations und epilogue-animations Übersichten verwendet. Zusätzlich wird der command_code genutzt, um einen Zeiger für die Funkti an aufzurufen, der zur Ausführung des Befehls aus der user_level_commands_ Map verwendet wird.
  • In der derzeit bevorzugten Ausführungsform der Erfindung sind drei Arten von Benutzerebenenbefehle vorgesehen. Die erste Art sind Befehle, die etwa gleich den Befehlen sind, die im verwendeten Betriebssystem (OS) vorhanden sind. Die zweite Art sind Befehle, die zum Kreieren und Aufrechterhalten der bildhaften Darstellung von Dateiobjekten genutzt werden. Die dritte Art sind Dienstbefehle (utility commands), die zum Ändern und Pflegen des Zustandes unterschiedlicher Dateistrukturen verwendet werden, die in der Schnittstelle benutzt werden.
  • Die nachfolgenden detaillierten Beschreibungen von Befehlen stellt die Art von Befehlen und den Stil von Animationssequenzen dar, die durch die Erfindung bereitgestellt werden. Andere Befehle und/oder Animationen können den hier angegebenen hinzugefügt werden oder sie ersetzen. Es gibt jedoch eine Anzahl von allgemeinen Grundsätzen, die bei der Definition von Befehlen und zugeordneten Animationen beachtet werden sollten.
    • 1. Zum Aufrufen eines Befehls sollte eine kleine Zahl von Tastenanschlägen oder Knopfbetätigungen (z.B. einer oder zwei) erforderlich sein.
    • 2. Es sollten die gleichen Aufruf-Tastenanschläge für soviele Befehle wie möglich gelten, indem für die Unterscheidung der Befehle Argumente genutzt werden.
    • 3. Animationen sollten so definiert werden, dass sie Unterschiede zwischen den Befehlen ausdrücken und diese Information dem Benutzer übermitteln. Normalerweise hat jeder Befehl eine nur für ihn geltende Prolog-Animation, die als eine Art Eingabe-Echo für den Benutzer dient. Für jeden Benutzerebenenbefehl können mehrere Epilog-Animationen definiert werden. Normalerweise werden Epilog-Animationen dazu verwendet, das Ergebnis einer Befehlsausführung dem Benutzer anzuzeigen. Die spezifische Epilog-Animation, die abgespielt wird, wenn ein Befehl ausgeführt wurde, hängt im Allgemeinen von dem durch den Befehl zurückgeschickten Wert ab. Epilog-Animationen können auch genutzt werden, um dem Benutzer Fehler anzuzeigen. Darum sollte jedes mögliche Ergebnis eines Befehls seine eigene Epilog-Animation haben.
  • Betriebssystemäquivalente Befehle
  • Diese Befehle werden als Schnittstelle für Funktionen verwendet, die von dem unterlegten Betriebssystem zur Verfügung gestellt werden. Sie bieten dem Benutzer eine alternative Schnittstelle zur vorhandenen Betriebssystemfunktionalität. Betriebssysteme wie DOS, OS/2 und Unix bieten beispielsweise alle einen Befehl wie DIR, der eine Liste der Text-String-Namen der in einem Dateisystemverzeichnis vorhandenen Dateiobjekte. Der Anwender dieser Erfindung erreicht eine ähnliche Funktionalität durch die Verwendung des Befehls display_directory, der die Bewegung einer animierten Figur steuert, um Bilder zu rollen, die die bildhafte Darstellung eines Dateiobjektes in einem Verzeichnis darstellen. Jeder der unten aufgeführten Befehle bietet eine alternative Schnittstelle für gemeinsame Funktionen, die heute in den meisten Betriebssystemen vorhanden sind. Es können weitere betriebssystemäquivalente Befehle bei Bedarf definiert werden, um der durch das darunterliegende Betriebssystem gebotenen Funktionalität zu entsprechen.
    change_directory (Icon bezieht s. auf Verzeichnis)
    /* ändert das derzeitige Verzeichnis */
    change_directory_to_ancestor (Icon bezieht sich auf ein Verzeichnis und Icon ist ein overlay_icon)
    /* ändert das derzeitige Verzeichnis in das direkte Vorgängerverzeichnis */
    copy_file (Icon bezieht sich auf eine Datei)
    /* kopiert die dem Icon zugeordnete Datei in das derzeitige Verzeichnis */
    create_directory (kein Icon oder Icon ist nicht mit Link versehen)
    /* erzeugt ein Unterverzeichnis des derzeitigen Verzeichnisses */
    delete_file_object (Icon bezieht sich auf ein Dateiobjekt)
    /* löscht das Dateiobjekt, das dem Icon zugeordnet ist */
    display_directory ()
    /* zeigt die den Dateiobjekten zugeordneten Icons im derzeitigen Verzeichnung durch Rollen des Verzeichnisbildes an, während die Bewegung einer animierten Figur abläuft */
    expunge_deleted ()
    /* radiert die Dateiobjekte aus, die mit dem Löschbefehl gelöscht wurden */
    move_file (Icon bezieht sich auf eine Datei)
    /* Schiebt die dem Icon zugeordnete Datei in das derzeitige Verzeichnis und entfernt sie aus ihrem vorigen Verzeichnis */
    run_default_program (Icon lässt default_program definieren)
    /* führt das dem Icon zugeordnete Vorgabeprogramm aus, wobei das dem Icon zugeordnete Dateiobjekt als Eingabe benutzt wird */
    run_program (Icon & selection arg, selection arg ist ausführbar)
    /* führt das durch das Auswahlargument Dateiobjekt identifizierte Programm aus, wobei das Dateiobjekt des Icons als Eingabe verwendet wird */
  • Im Appendix B sind Pseudocode-Animationen gezeigt und werden Beispiele für Prolog- und Epilog-Animationen für jeden der oben angegebenen Befehle beschrieben.
  • Befehle für bildhafte Objekte
  • Diese Befehle werden zum Erzeugen und Aufrechterhalten von bildhaften Darstellungen von Dateiobjekten im Dateisystem des darunterliegenden Betriebssystems verwendet. Sie wirken wie Erweiterungen des Betriebssystems, indem sie ein alternatives Verfahren schaffen, um die Betriebssystemeinheiten zu identifizieren und darzustellen. Sie ermöglichen es einem Benutzer, die Schnittstelle dynamisch zu modifizieren, indem bildhafte Darstellungen und Icons während der Laufzeit und als Teil einer normalen Interaktion mit dem Rechensystem hinzugefügt und verbunden werden.
    copy_icon (icon)
    /* fertigt eine Kopie eines Icons und installiert die Kopie in der Schnittstelle im derzeitigen Verzeichnis */
    define_default_program (icon)
    /* definiert ein Vorgabeprogramm für eine Datei, die ausgeführt wird, wenn run_default_program mit der Datei als Eingabe aufgerufen wird */
    define_icon ()
    /* erzeugt ein Icon aus dem Hintergrundbild des derzeitigen Verzeichnisses und installiert das Icon in der Schnittstelle */
    delete_icon (icon)
    /* löscht die Definition des Icons und entfernt es aus der Schnittstelle */
    link_directory_image (icon)
    /* schafft ein Link von einer Bilddatei zum Verzeichnis */
    link_icon (icon, Dateiobjekt)
    /* schafft ein Link von einem Icon zu einem Dateiobjekt im darunterliegenden Betriebssystem */
    unlink_directory_image (Icon hat default_program definiert)
    /* löst Verbindung einer Bilddatei zu einem Verzeichnis in der directory_image_map */
    unlink_icon (icon)
    /* löst Verbindung eines Icon zu einem Dateiobjekt. Icon-Definition bleibt Teil der Schnittstelle */
  • Appendix C zeigt Pseudocode-Animationen und beschreibt Beispiele für Prologund Epilog-Animationen für jeden der oben angegebenen Befehle.
  • Schnittstellen-Dienstbefehle
  • Diese Befehle werden verwendet, um den Laufzeitzustand unterschiedlicher Schnittstellen-Datenstrukturen zu verändern und aufrechtzuerhalten. Einige dieser Befehle ermöglichen es einem Benutzer, Bezüge für Dateiobjekte zu sammeln und diese Bezüge als Eingabe für spätere Befehle zu nutzen. Andere bieten eine Steuerung der Einstellung und Neueinstellung des Auswahlarguments, das als Eingabe für andere Befehle verwendet wird. Einige der Befehle ändern die Systemeinstellungen, die einen Einfluss darauf haben, wie Icons erscheinen. Die hier aufgeführten Schnittstellen-Dienstbefehle bieten Beispiele für unterschiedliche Klassen der Funktionalität, die mit dieser Art von Befehl ausgeführt werden können. Es können zusätzliche Befehle dieser Art definiert werden, um Vorgaben für das Systemverhalten oder Variable einzustellen, um das Aussehen und das vermittelte Gefühl der Schnittstelle zu verändern oder um Zugang zu Datenstrukturen zu haben, die im darunterliegenden Betriebssystem definiert sind und auf andere Weise über die Schnittstelle nicht zu erreichen sind.
    collect_file_object (icon)
    /* ermöglicht dem Benutzer, Bezüge für Dateiobjekte f. späteren Gebrauch zu sammeln */
    collect_selection_argument ()
    /* ermöglicht dem Benutzer, Bezüge zum Dateiobjekt d. Auswahlarguments f. spätere Benutzung zu sammeln */
    make_icons_invisible ()
    /* hebt vorhergehenden make_icons_visible Befehl auf, so dass Icons ihre ursprüngliche Erscheinung als Ausschnitte des unveränderten Hintergrundbildes zurückerhalten */
    make_icons_visible ()
    /* bewirkt, dass jene Abschnitte des Hintergrundbildes, die als Icons definiert wurden, herausgehoben erscheinen, so dass sie deutlich sichtbar und als Icons zu identifizieren sind */
    quit ()
    /* bewirkt ein normales Beenden des Schnittstellenprogramms */
    reset_selection_argument ()
    /* stellt das Auswahlargument auf NULL */
    select_collected_object ()
    /* ermöglicht dem Benutzer, das Auswahlargument auf ein gesammeltes Objekt einzustellen */
    select_files_as_collected_objects ()
    /* ermöglicht einem Benutzer, auf Dateien zuzugreifen, die nicht in der Schnittstelle installiert sind. Es werden generische Icons für vom Benutzer ausgewählte Dateien erzeugt und dem Satz gesammelter Objekte hinzugefügt */
    set_selection_argument (icon)
    /* stellt das Auswahlargument auf das Icon ein */
    unload_collected_object ()
    /* ermöglicht dem Benutzer, ein gesammeltes Objekt auszuwählen und es im derzeitigen Verzeichnis auf dem Hintergrund zu plazieren */
  • Appendix D zeigt Pseudocode-Animationen und beschreibt Beispiele für Prolog- und Epilog-Animationen für jeden der oben angegebenen Befehle.
  • Interne Vorgänge
  • Die „internen Vorgänge" werden benutzt, um die Systemfunktionen zu implementieren. Sie stehen weder einem Benutzer der Schnittstelle noch auf der Ebene eines API (Application Programming Interface) zur Verfügung. Eine Liste von Internen Vorgängen ist im Appendix E vorhanden. Es wird für jeden internen Vorgang der Prototyp des Vorgangs angegeben sowie eine Beschreibung der Aktionen des Vorgangs. In einigen Fällen ist ein detaillierter Pseudocode vorhanden. Beispielsweise verarbeitet der Vorgang process_input Eingangssignale und Cursor-Orte, um den Befehlscode, das Icon, den animation_selector und die Dauer, falls anwendbar, für den nächsten Befehl zu bestimmen. Die Hauptaufgabe dieses Vorgangs ist das Identifizieren von Widerholungen von Befehlsaufrufen und das Zuordnen von Eingaben zu Befehlscodes zu verwalten. Dieser Vorgang ruft den Vorgang parse_input auf, um eine syntaktische Analyse (parsing) von Eingangssignalen auf niedrigem Niveau zu veranlassen, und die Prozedur commands_dispatcher für die Durchführung der Identifikation von Befehlen, die sich ein Eingangssignal teilen, jedoch durch die Art des Arguments zu unterscheiden sind. Für viele Befehle kann die Ausführung verbessert werden, wenn eine wiederholte Sequenz von Aufrufen als eine einzige Einheit verarbeitet wird. Beispielsweise bewirkt ein einziger Aufruf eines Befehls zur Figurenbewegung eine Bewegung der animierten Figur um eine winzige Entfernung in der spezifizierten Richtung. Im Allgemeinen werden viele Wiederholungen eines Bewegungsbefehls in Folge ausgegeben. Zusätzlich kann eine Animation zur Bewegung in einer Schleife gespielt werden. Aus diesem Grunde ist ein Dauer-Argument für viele Befehle bereitgestellt. Tastencodes werden gesammelt, bis sich die Bewegungsrichtung ändert, eine maximal akzeptable Pausenschwelle erreicht ist oder die Bewegung endet. Die Dauer der Sequenz kann dann dazu verwendet werden, die Animation für die Bewegung der Figur zu konstruieren, die dann in ihrer Gesamtheit vor dem Sammeln der nächsten Eingabe gespielt werden kann.
  • Der Vorgang process_input nimmt die Eingabe aus keycode_grammar, character_model und selection_arg und schickt command_code, Icon, Dauer und move_vector zurück. Zusätzlich verwendet der Vorgang process_input die folgenden Datenspeicher: keycode_grammar.command_set, input_buffer, repeat_threshold und sequenced_set (Befehlssatz, für den ein wiederholtes Aufrufen als einfacher Aufruf von verlängerter Dauer behandelt wird). Beispiele für Pseudocode für den Vorgang process_input wird nachfolgend aufgelistet.
    Figure 00600001
  • Installation und Systeminfrastruktur
  • Wie oben erwähnt, ist die bildhafte Schnittstelle gemäß der Erfindung entworfen, um eine leichte Installation von alternativen Animationen und Eingangssignalübersichten für Befehle zu unterstützen. Dies ermöglicht es, dass das System mit alternativen Figuren, Figurenverhalten und Eingabevorrichtungen durch Einlesen von unterschiedlichen Daten in die Systemdatenstrukturen zu benutzen ist. Zum Beispiel können durch Laden der command_animation_maps mit alternativen Animationen verschiedene Figuren mit unterschiedlichem Verhalten bei jedem Befehl dargestellt werden, ohne den unterliegenden Systemcode zu ändern. Zusätzlich können die Erzeugungsfunktionen der Icon-Animationen in verschiedenen Systemversionen variieren. Darüber hinaus kann die Start-Up-Funktion geschrieben werden, um eine Auswahl der Figureneigenschaften und der begleitenden Animationen während der Laufzeit durch den Benutzer zu ermöglichen, wenn verschiedene command_animation_maps in einem einzigen System vorhanden sind. Wenn eine neue Figur, eine neue Eingabevorrichtung oder ein neuer Befehlssatz installiert wird, wird ein Zeiger zu den Dateien, die gelesen werden, um die directory_image_map, keycode_grammar, prologue_animations, epilogue_animations oder Befehls-Scrips zu definieren, in eine bekannte Datei geschrieben, die während der Start-Up-Zeit gelesen wird.
  • Nach der derzeit bevorzugten Ausführungsform werden ein "Super-Root"-Verzeichnisbild und Icons während der Installation erzeugt. Installations-Software bestimmt, welche Vorrichtungen (insbesondere Speichereinrichtungen) vorhanden sind, und erzeugt ein Bild und Icons, um eine Ansicht aller Vorrichtungen in dem System zu geben. Dies wird Super-Root-Verzeichnis genannt. Normalerweise wird das Start-Up-Verzeichnis eingestellt, um das Quellenverzeichnis der Boot-Anordnung darzustellen. Der Benutzer hat jedoch Zugang zu der Anordnungsebenenansicht, die durch die Schnittstellen-Software als das Super-Root-Verzeichnis erzeugt wird durch Wechseln des Verzeichnisses vom Quellenverzeichnis zum Vorgänger. Einer der Vorteile der Erzeugung der Super-Root besteht darin, dass er es dem Benutzer ermöglicht, in üblicher Weise ein Bild für das Quellenverzeichnis zu installieren durch Aufrufen eines Befehls link_dir_image.
  • Während der Installation werden voreingestellte Bilder und Icons mit Dateiobjekten verbunden, die in dem Dateisystem definiert sind. Zum Beispiel können dichte Hintergrundbilder mit jedem in dem Dateisystem definierten Verzeichnis und generische Icons (z.B. goldene Ziegel und Diamantkristalle) können mit jeden Dateiobjekt verbunden werden. In der bevorzugten Ausführungsform sollte diese Installationsaufgabe eine Benutzeroption sein. Darüber hinaus wird dem Benut zer die Möglichkeit gegeben, die Verzeichnisse und Dateien auszuwählen, die mit der Schnittstelle verbunden werden sollen. Diese Wahlmöglichkeit ermöglicht es dem Benutzer, Dateien und Verzeichnisse zu schützen oder zu verstecken, von denen er nicht wünscht, dass sie über die Schnittstelle verfügbar sind.
  • Zur Start-Up-Zeit wird eine bekannte Startup-Datei gelesen, um die Pfadnamen der Dateien zu bestimmen, in denen die Informationen für die directory_image_map, keycode_grammar, prologue_animations, epilogue_animations und command_scrips gespeichert sind. Diese Dateien werden dann gelesen, um die Mapping-Datenstrukturen in den Speicher zu laden, so dass Zeiger zu den zugeordneten Animations-Script-Dateien und Befehls-Scripts verfügbar sind. Nach Abschluss der Start-Up-Prozedur wird der Top-Level gerufen. Pseudocodes für die Start-Up-Prozedur und den Top-Level sind nachfolgend aufgelistet:
    Figure 00620001
    Figure 00630001
    Figure 00640001
    Figure 00650001
  • Es wurde eine benutzer-definierbare, bildhafte Schnittstelle für den Zugriff zu Informationen in einem elektronischen Dateisystem beschrieben und dargestellt. Obgleich besondere Ausführungsformen der Erfindung beschrieben wurden, ist es nicht beabsichtigt, die Erfindung hierauf zu beschränken, sondern die Erfindung ist im Schutzumfang so weit zu verstehen, wie es der Stand der Technik zulässt, und die Beschreibung muss in gleicher Weise verstanden werden. Obgleich spezielle Befehle beschrieben wurden, ist zu erkennen, dass auch andere Befehle benutzt werden können. Auch wenn spezielle Datenstrukturen gezeigt wurden, wird anerkannt werden, dass auch andere Arten von Datenstrukturen mit ähnlichen Resultaten benutzt werden könnten. Auch wenn darüber hinaus spezielle Konfigurationen unter Bezug auf Verfahren und Prozeduren beschrieben wurden, wird anerkannt werden, dass auch andere Konfigurationen benutzt werden können. Auch wenn die Erfindung unter Bezug auf einen speziellen Pseudocode beschrieben wurde, ist dies so zu verstehen, dass ein anderer Code dieselben oder ähnliche Funktionen, wie hierin beschrieben, erfüllen kann. Fachleute werden deshalb erkennen, dass auch noch weitere Modifikationen an der beschriebenen Erfindung gemacht werden können, ohne sich von dem in den Ansprüchen definierten Schutzumfang zu entfernen.
  • Appendix A Beispielsliste von Tastencodes für eine Gamepad-Eingabesteuerung
    Figure 00660001
  • display_directory
  • /* Ein Verzeichnis wird als eine animierte Figur angezeigt und scheint sich relativ zum Hintergrundbild zu bewegen, das das anzuzeigende Verzeichnis darstellt. Dies erfolgt durch Rollen des Hintergrundbildes, so dass die Figur in dem Video-Anzeigevorrichtung sichtbar bleibt.
  • Es wird durchgeführt durch Animation, so dass der Code für den Befehl nichts veranlassen muss. Die Videobild-Variablen werden durch die Funktion play_animation aktualisiert.
  • Dieser Befehls-Script wird benutzt für jeden der Benutzerebenen-Befehle, display_directory_up, display_directory_down, display_directory_left, und display_directory-right. Verzeichnisanzeige wird veranlasst durch Benutzung von Tasten, die die Richtung der Bewegung angeben (z.B. NORD, OST, SOD, WEST oder Kombinationen davon). Der Benutzer steuert die zurückgelegte Distanz durch die Anzahl der aufeinander folgenden Tastenbetätigungen einer einzigen Type. Die Richtung der Bewegung wird durch spezifische Tasten oder Kombinationen von Tasten gesteuert, wenn diese betätigt werden. Die Funktion make_animation handhabt die Richtungs- und Dauer-Argumente, um geeignete Rahmenfolgen für die Animation zu erzeugen. */
    Eingabe: keine
    Ausgabe: keine
    Nebeneffekte: keine /* play_animation wird das character_model usw. ändern */
    Datenspeicher: keiner
  • Figure 00670001
  • change_directory
  • /* Der Befehl change_directory veranlasst das Betriebssystem das derzeitige Verzeichnis zu dem Verzeichnis zu wechseln, das durch das Kontext-Argument-Icon spezifiziert wird.
  • Der Befehl löscht auch irgendwelche temporären Icons, die in dem gewechselten Verzeichnis möglicherweise erzeugt worden sind. Das Figurenmodell wird aktualisiert, um die Figur in der Mitte des Hintergrundbildes zu positionieren, das dem neuen Verzeichnis zugeordnet ist.
  • Die Prolog-Animation könnte zeigen, wie die Figur auf das Icon springt, wie das Icon zu einem Loch transformiert wird, durch das dies Figur hindurchgleitet.
  • Nach dem üblichen Videoübergang (z.B. Verschwinden vom Bildschirm, Neuzeichnen des Hintergrundbildes, Neuzeichnen der Figur) könnte die Epilog-Animation zeigen, wie die Figur sich seine Stirn wischt. */
    Eingabe: Icon /* context_arg Icon */
    Ausgabe: keine
    Nebeneffekte: voreingestelltes Verzeichnis, dem OS bekannt, wird gewechselt
    wechsle Hintergrundbild
    wechsle icon_list
    aktualisiere character_model
    Datenspeicher: directory_image_map
  • Figure 00690001
  • change_directory_to_ancestor
  • /* Dieser Befehl benutzt denselben ausführbaren Befehls-Script wie den, der durch den Befehl change_directory benutzt wird. Er unterscheidet sich konzeptionell von dem Befehl change_directory, weil das Verzeichnis, das zu dem neuen derzeitigen Verzeichnis wird, ein Vorgänger des derzeitigen Verzeichnisses ist in dem hierarchischen Dateisystem, das durch das darunterliegende Betriebssystem aufrechterhalten wird. Durch Erzeugen von getrennten Benutzerebenen-Befehlen für change_directory und change_directory_to_ancestor kann die Unterscheidung zwischen hierarchischen Vorgängern in dem Dateisystem und Querverbindungen, die nur in der Schnittstelle verfügbar sind, dem Benutzer klargemacht werden.
  • Um dies zu tun, unterscheiden sich die Animationen für change_directory und change_directory_to_ancestor. Zusätzlich wird ein Icon für den direkten Vorgänger eines Verzeichnisses automatisch durch die Schnittstelle erzeugt und dem Hintergrundbild überlagert, das dem Verzeichnis zugeordnet ist.
  • In der bevorzugten Ausführungsform ist das automatisch erzeugte Icon für einen direkten Vorgänger ein Portal, das normalerweise einer Aufwärtsbewegung zugeordnet ist, z.B. einer Leiter. Das Leiter-Icon ist dem Hintergrundbild an einem Ort überlagert, der durch eine Konvention geregelt ist, z.B. der oberen linken Ecke des Bildes. Die Prolog-Animation könnte das Springen der Figur auf die Leiter und den Beginn des Hinaufkletterns zeige. Die Epilog-Animation würde derjenigen identisch sein, die dem Befehl change_directory zugeordnet ist. */
    Eingabe: Icon /* context_arg Icon muss eine Überlagerung sein */
    Ausgabe: keine
    Nebeneffekte: voreingestelltes Verzeichnis, das dem OS bekannt ist,
    wird gewechselt
    wechsle Hintergrundbild
    wechsle icon_list
    aktualisiere character_model
    Datenspeicher: directory_image_map
  • Figure 00700001
  • create_directory
  • /* Wird benutzt, um ein neues Verzeichnis-Datenobjekt in dem Dateisystem des Barunterliegenden Betriebssystems zu erzeugen. Um Kompatibilität mit existierenden Betriebssystemen sicher zu stellen, wird in der bevorzugten Ausführungsform das System entweder einen Namen (z.B. Figuren-String-Identifizierer) für das neu erzeugte Dateiobjekt erzeugen oder es wird eine verschachtelte Interaktion benutzen, um den Benutzer zu veranlassen, den Namen einzugeben.
  • Es existieren zwei Varianten des Befehls. Wenn ein Icon definiert wurde, d.h. ein nicht verbundenes Icon das Kontext-Argument ist, wird das neue Verzeichnis mit dem Icon verbunden. Wenn ein Icon nicht definiert wurde, wird ein generisches Icon erzeugt und das neue Verzeichnis wird mit dem generischen Icon verbunden. Wenn ein Verzeichnis erzeugt wurde, wird es mit einem default_background_image versehen. Zusätzlich wird die icon_list initialisiert mit dem Leiter-Überlagerungs-Icon, das das Grundverzeichnis repräsentiert.
  • Für die Animation weist die bevorzugte Implementierung eine einzige Prolog-Animation auf, die ein geeignetes Figuren-Verhalten anzeigt, z.B. sprüht die Figur Märchenstaub. Die Epilog-Animation hat zwei Varianten. Wenn das Kontext-Argument ein Icon ist, das nicht mit einem Dateiobjekt verbunden ist, tritt eine momentane Transformation des Icons auf, z.B. leuchtet innen ein Diamantkristall. Wenn das Kontext-Icon NULL oder bereits verbunden ist, taucht ein Diamantkristall auf dem Hintergrundbild auf. */
    Eingabe: Icon /* context_argument */
    Ausgabe: keine
    Nebeneffekte: erzeuge neues Verzeichnisdateiobjekt als Unterverzeichnis des
    derzeitigen voreingestellten Verzeichnisses
    erzeuge möglicherweise neues Icon und füge dieses dem
    voreingestellten Verzeichnis hinzu
    Datenspeicher: background_image
    icon_list
    character_model
    default_background_image
    default_audio
  • Figure 00720001
  • Figure 00730001
  • delete_file_object
  • /* In einer Lösch- und Annullierungsimplementation, wie hier beschrieben, wird dieser Befehl benutzt, um ein Dateiobjekt und deren Icon zum Löschen vom Dateisystem des darunterliegenden Betriebssystem zu markieren. Obwohl dies hier nicht eingeschlossen ist, wenn das Dateiobjekt ein Verzeichnis ist, sollte eine Bestätigung angefordert werden. Unterverzeichnisse in dem hierarchischen Dateisystem des darunterliegenden Betriebssystems sind rekursiv zum Löschen markiert. Verzeichnisse oder Dateiobjekte, bei denen es zutrifft, dass sie als nichthierarchische Links zu anderen Unterbäumen der darunterliegenden Dateisystems dienen, werden nicht zum Löschen markiert. Die Icons für diese Dateiobjekte, die während der Durchsicht des gelöschten Unterbaums gefunden werden, werden jedoch markiert.
  • Für die Prolog-Animation der Figuren wird ein Verhalten angezeigt, z.B. dass die Figur das Icon küsst, das das zu löschende Dateiobjekt repräsentiert. Es sind zwei Varianten der Epilog-Animation vorgesehen, die das Iconverhalten anzeigen. Wenn das gelöschte Objekt eine normale Datei ist, wird das Icon-Bild in das Bild eines Frosches transformiert, der von dem Bildschirm hüpft. Der Teil des Bildes, der das Icon war, kann entweder so aufrechterhalten werden wie es ist oder es wird so transformiert, dass das Iconobjekt von dem Bild entfernt wurde. Wenn das gelöschte Objekt ein Verzeichnis ist, würde die Epilog-Animation das Icon zu einem anderen Tier transformiert darstellen, z.B. als Schmetterling. */
    Eingabe: Icon
    Ausgabe: Resultat
    Nebeneffekte: rekursiv file_objects und Icons zum Löschen markieren
    Datenspeicher:
  • Figure 00740001
  • expunge_deleted
  • /* Löscht alle Dateiobjekte, die vorher zum Löschen aus dem Dateisystem des Barunterliegenden Betriebssystems markiert wurden. Er löscht auch alle Bezüge zu dem Dateiobjekt in der Schnittstelle.
  • Die Prolog-Animation könnte zeigen, wie die Figur einen Käfig öffnet. Die Epilog-Animation würde Frösche und Schmetterlinge zeigen, die aus dem Käfig entkommen und von dem Bildschirm fliegen und hüpfen, während die Figur zum Abschied winkt. */
    Eingabe: keine
    Ausgabe: keine
    Nebeneffekte: alle zum Löschen markierten Dateiobjekte und Icons werden
    aus dem Dateisystem gelöscht
    das current_directory wechselt zu dem Quellenverzeichnis
    Datenspeicher: derzeitiges Verzeichnis
    root_directory
  • Figure 00750001
  • run_default_program
  • /* Erzeugt ein neues Verfahren und führt das Voreinstellungsprogramm aus, das dem Dateiobjekt des Kontext-Argumentes zugeordnet ist, unter Benutzung des Dateiobjektes als Eingabe zu dem Programm. Die Implementierung dieses Befehls und das Ergebnis seiner Ausführung hängt von der Umgebung des Betriebssystems ab. Sie erfordert ein Betriebssystem, das eine Form von Multitasking bietet (MS Windows nonpremptive Multitasking reicht aus). Unter einem Betriebssystem wie Unix würde das auszuführende Programm zu dem aktiven Prozess und die bildhafte Benutzerschnittstelle würde aufgehoben. Unter den meisten der populären Betriebssystem-Umgebungen, z.B. Windows, OS\2 oder X-Windows, wird ein Programm in einem Fenster ablaufen, und ein zusätzliches Resultat der Befehlausführung wird sein, ein Fenster für das neu kreierte Verfahren zu öffnen. In der bevorzugten Ausführungsform werden Maßnahmen getroffen, um sicherzustellen, dass bei der Beendigung das neu kreierte Verfahren die Steuerung wieder an die bildhafte Benutzerschnittstelle zurückgibt. Zum Beispiel kann dies unter OS\2 oder Unix durch Erzeugen des neuen Verfahrens als ein Kind des bildhaften Benutzerschnittstellen-Verfahrens erreicht werden.
  • Die Prolog-Animation könnte zeigen, wie die Figur auf das Icon des Kontext-Arguments hüpft und nicht in ein Loch fällt (wie in change directory), das Icon würde nach außen explodieren, um in das Fenster des Programms zu transformieren. Die Epilog-Animation würde nach Abschluss (oder Unterbrechung) des neu kreirten Verfahrens ausgeführt werden. Sie könnte die Figur zeigen, wie sie sich mit einem Ausdruck von Verwirrung oder Überraschung vom Boden erhebt.
  • Beachte, dass die Anzeige der Icon-Explosion als Teil der Prolog-Animation hier notwendig ist, obgleich normalerweise nicht empfohlen. Solange das Iconzentrum während der Explosion an einer einzigen Stelle gehalten wird, treten keine Probleme bei der Icon-Identifikationsprozedur der Funktion find_icon auf. */
    Eingabe: icon
    Ausgabe: keine
    Nebeneffekte: Vorgabeprogramm, das dem ausgeführten Dateiobjekt
    zugeordnet ist
    Datenspeicher: keine
  • Figure 00760001
  • run_program
  • /* Dieser Befehl ist identisch mit dem oben erwähnten run_default_program, mit der Ausnahme, dass das auszuführende Programm durch das Auswahl-Argument anstatt durch eine vordefinierte Zuordnung definiert wird.
  • Die Prolog-Animation könnte zeigen, wie die Figur das Icon des Auswahl-Arguments auf das Icon des Kontext-Arguments wirft und dann auf einen Stapel von Icons hüpft. Beide Icons würden nach außen explodieren und sich in das Fenster des Programms transformieren. Die Epilog-Animation würde nach Beendigung (oder Unterbrechung) des neu kreierten Verfahrens ausgeführt werden. Sie könnte identisch zu der Epilog-Animation des run_default-program sein, d.h. die Figur erhebt sich vom Boden mit einem Ausdruck von Verwirrung oder Überraschung. */
    Eingabe: icon
    selection_arg
    Ausgabe: keine
    Nebeneffekte: durch selection_arg definiertes Programm wird mit dem
    Dateiobjekt ausgeführt, das durch Eingabe context-arg
    definiert wird.
    Datenspeicher:
  • Figure 00770001
  • move_file_object
  • /* Dieser Befehl veranlasst das darunterliegende Betriebssystem, ein Dateiobjekt in das derzeitige Verzeichnis in der Datensystemstruktur zu bewegen.
  • Es wird angenommen, dass eine Datei bereits ausgewählt wurde (d.h. ein Auswahl-Argument ist definiert) zu dem Zeitpunkt, wo der Befehl aufgerufen wird. Es bestehen zwei Varianten des Befehls. Wenn das Kontext-Argument ein Icon ist, das noch nicht mit einem Dateiobjekt verknüpft ist, wird dieses das Icon für das bewegte Dateiobjekt. Ist das Kontext-Argument-Icon NULL, wird ein generisches Icon kreiert für das bewegte Dateiobjekt.
  • Die Prolog-Animation könnte zeigen, wie die Figur sich niederbeugt, um das Icon (Auswahl-Argument), das es hält vor dem Hintergrund oder auf einem neu definierten Icon (Kontext-Argument), zu entrollen.
  • Die Epilog-Animation könnte zeigen, wie das neue Icon das Auswahl-Argument verschluckt. */
    Eingabe: selection_arg
    icon (optional)
    Ausgabe: new_icon
    Nebeneffekte: Das Dateiobjekt wird bewegt. Seine vorherige Icon-Defininion
    ist gelöscht und alle GUI-Bezüge zu ihm sind aktualisiert. Eine
    neue Icon-Definition wird erzeugt und in dem derzeitigen Ver
    zeichnis installiert.
    Datenspeicher: current_directory
    background-image
    icon_list
    character-model
  • Figure 00790001
  • copy-file
  • /* Die dem Auswahl-Argument zugeordnete Datei wird in das derzeitige Verzeichnis kopiert. Wenn das Kontext-Argument ein unverbundenes Icon ist, wird das kopierte Dateiobjekt mit diesem verbunden. Ist das Kontext-Argument nicht ein unverbundenes Icon, wird ein generisches Icon für das kopierte Dateiobjekt erzeugt. Bei einer alternativen Implementierung könnte das derzeitige Icon des Dateiobjektes in der Icon-Liste des derzeitigen Verzeichnisses installiert und dem Hintergrundbild überlagert werden. Der hier beschriebene Code ist fast identisch mit dem für move_file.
  • Die Prolog-Animation könnte zeigen, wie die Figur sich niederbeugt, um das Icon (Auswahl-Argument), das sie hält vor dem Hintergrund oder auf einem neu definierten Icon (Kontext-Argument), zu entrollen. Einmal entrollt, könnte die Figur einen magischen Ritus durchführen, bei dem eine zweite Kopie des Auswahl-Arguments auf magische Weise in ihrer Hand erscheint (während die andere Kopie nicht entrollt im Hintergrund verbleibt).
  • Die Epilog-Animation könnte zeigen, wie das neue Icon das Auswahl-Argument verschluckt. */
    Eingabe: selection_arg /* sollte eine Datei, aber kein Verzeichnis aufrufen */
    icon (optional)
    Ausgabe: new_icon
    Nebeneffekte: Dateiobjekt selection_arg wird in derzeitiges Verzeichnis
    kopiert und in der Schnittstelle mit grafischem Icon installiert.
    Datenspeicher: current_directory
    background_image
    icon_list
    character_model
  • Figure 00810001
  • copy-icon
  • /* Macht eine Kopie von dem Icon, einschließlich des Bezugs auf ein verbundenes Dateiobjekt, wenn es definiert ist. Das verbundene Dateiobjekt wird nicht kopiert. Das kopierte Icon wird in der derzeitigen icon_list des derzeitigen Verzeichnisses installiert und eine Überlagerungs-Icon-Bitmap wird erzeugt, um das kopierte Icon auf das Hintergrundbild des derzeitigen Verzeichnisses zu ziehen.
  • Eine Prolog-Animation könnte zeigen, dass die Figur sich mit einem Bleistift niederbeugt, als ob sie zu zeichnen beginnen würde. Die Epilog-Animation würde zeigen, dass die Figur eine Kopie des Icon zeichnet. */
    Eingabe: selection_arg oder icon /* selection_arg ist die erste Wahl */
    Ausgabe: keine
    Nebeneffekte: eine Icon-Kopie wird in der derzeitigen icon_list des
    Verzeichnisses installiert
    Datenspeicher: icon_list
    background_image
    character_model
  • Figure 00820001
  • define_default_program
  • /* Definiert ein voreingestelltes Programm für eine Datei. Dies ist ähnlich zu der Windows-File Manager Associate Funktion, ausgenommen dass Associate ein voreingestelltes Programm für alle Dateien mit einem gegebenen Anhang definiert, während dieser Befehl ein voreingestelltes Programm auf einer Datei-zu-Datei-Basis definiert. Wenn der Befehl run_default_program für die Datei aufgerufen wird, wird das durch diesen Befehl definierte Programm mit der Datei als Eingabe ausgeführt.
  • Die Prolog-Animation kann zeigen, wie die Figur das Auswahl-Argument, das Bezug auf ein ausführbares Programm nimmt, auf das Icon nagelt.
  • Die Epilog-Animation könnte zeigen, wie selection_arg sich in einen Strom von kleinen Nullen und Einsen verwandelt, die einen Tanz aufführen und sich im Icon auflösen.
    Eingabe: icon
    selection_arg
    Ausgabe: keine
    Nebeneffekte: das Dateiobjekt selection_arg wird das voreingestellte
    Programm für das Icon-Dateiobjekt
    Datenspeicher: keine
  • Figure 00830001
  • define-icon
  • /* Erzeugt ein Icon aus dem Hintergrundbild des derzeitigen Verzeichnisses und fügt die Icon-Definition der Icon-Liste des derzeitigen Verzeichnisses hinzu. Das Icon könnte ein rechteckiger Bereich des Hintergrundbildes sein, jedoch wird bei der bevorzugten Ausführungsform ein Kantenverarbeitungs-Algorithmus in Gang gesetzt, um ein Objekt zu identifizieren, das innerhalb eines rechteckigen Bereiches enthalten ist, der durch den Benutzer definiert ist, und eine Bitmap-Maske für das Objekt zu erzeugen. Eine Eingabe durch den Benutzer ist erforderlich, um ein Rechteck zu definieren, das sich an der äußersten Grenze des Icons in dem Hintergrundbild befindet.
  • Die Prolog-Animation könnte zeigen, wie die Figur einen Reißnagel nimmt und sich niederbeugt, als wenn sie bereit sei, den Reißnagel in das Hintergrundbild zu stecken. Zusätzlich sollte ein rechteckiger Schatten, der eine Region definiert, von dem Reißnagel ausgehen. In einer verschachtelten Interaktion kann der Benutzer die Figur mit den üblichen Bewegungswerkzeugen (z.B. NORD usw.) zum Platzieren des Rechtecks bewegen. Eine Betätigung einer Taste (z.B. Links) wird bewirken, dass die zu dem Reißnagel gehörende Ecke definiert wird. Der Benutzer bewegt wieder die Figur, die wirkt, als ob sie die gegenüber liegende Ecke des Rechtecks hält, um die Ausdehnung des Rechtecks in der Weise zu definieren, wie sie in Maus-basierten Schnittstellen üblich ist. Eine weitere Betätigung der Taste (z.B. Links) bewirkt, dass die Epilog-Animation abspielt und die Figur die Ecke festheftet, die nun gehalten wird.
  • Dieser Befehl zeigt die Benutzung der Rekursion, um eine verschachtelte animierte Interaktion mit dem Benutzer durchzuführen. */
    Eingabe: keine
    Ausgabe: keine
    Nebeneffekte: Erzeugt eine Icon-Definition in der Icon-Liste des derzeitigen
    Verzeichnisses
    Datenspeicher: Hintergrundbild
    Figure 00850001
    define_icon Datenstrukturen für rekursiven Ruf zu Top-Level
  • /* Aufstellungen (maps) von der Eingabe (z.B. Tastencodes) zu Befehlscodes. Es wird angenommen, dass entweder command-dispatcher diese Befehle kennen oder dass die Befehlsklassen für diese Niedrigebenen-Befehle 1:1 den Befehlscodes entsprechen. */ define_icon-grammar:
    Eingabe Befehlscode
    links define_point
    rechts undefine_points
    NORD bent_move_up
    SÜD bent_move_down
    OST bent_move_right
    WEST bent_move_left
    B-Taste end
  • /* Der define_icon_graph ist der parse_graph für den rekursiven Ruf. Er definiert legale Sequenzen der command_codes in einer verschachtelten Interaktion, die von dem Befehl define_icon ausgelöst wird. define-icon-graph:
    Befehlscode Zustand nächste Zustände
    START NORD1, SÜD1, OST1, WEST1, PUNKT1
    bent_move_up NORD1 NORD1, SÜD1, OST1, WEST1, PUNKT1
    bent_move_down SÜD1 NORD1, SÜD1, OST1, WEST1, PUNKT1
    bent_move_right OST1 NORD1, SÜD1, OST1, WEST1, PUNKT1
    bent_move_left WEST1 NORD1, SÜD1, OST1, WEST1, PUNKT1
    define_points PUNKT1 NORD2, SÜD2, OST2, WEST2, PUNKT2
    undefine_points PUNKT1 START
    undefine_points PUNKT2 START
    {any_motion_code} PUNKT2 PUNKT1
    bent_move_up NORD2 NORD2, SÜD2, OST2, WEST2, PUNKT2
    bent_move_down SÜD2 NORD2, SÜD2, OST2, WEST2, PUNKT2
    bent_move_right OST2 NORD2, SÜD2, OST2, WEST2, PUNKT2
    bent_move_left WEST2 NORD2, SÜD2, OST2, WEST2, PUNKT2
    B-Taste PUNKT2 Ende
  • delete_icon
  • /* Entfernt die Icon-Definition von der icon_list. normalerweise wird dieser Befehl in Kombination mit einem Befehl unlink_icon, so dass Zugriff zu dem Dateiobjekt sichergestellt werden kann in der Form eines generischen Icons.
  • Wenn das Icon ein daran befestigtes file_object hat, z.B. ist die Verbindung zu dem file_object nicht ausdrücklich getrennt worden vor dem Aufruf dieses Befehls, so verschwindet das Dateiobjekt ins All. Es kann mit dem Befehl list_files wiederhergestellt werden.
  • Die Prolog-Animation kann zeigen, wie die Figur ein großes Radiergummi nimmt und über das Icon reibt, wodurch die Icon-Hervorhrbung sich abschwächt und im Hintergrund aufgeht. Die Epilog-Animation könnte zeigen, wie die Figur sich von dem Icon abwendet und den Bleistift weglegt. Die bevorzugte Implementierung benutzt dieses Szenario, um die Rückkehr der Figur zu einem undefinierten Zustand in einem System aufzurufen, in dem Bilder unbeweglich sind. Alternativ kann das Hintergrundbild verändert werden, so dass die Icon-Darstellung durch Aufblenden der danebenliegenden Pixel entfernt wird. */
    Eingabe: Icon
    Ausgabe: keine
    Nebeneffekte: Icon-Definition wird von der icon-list entfernt
    Datenspeicher: keine
  • Figure 00870001
  • link_directory-image
  • /* Erzeugt ein Hintergrundbild für ein Verzeichnis durch Verbinden einer Bilddatei mit dem Eintrag des Verzeichnisses in die directory-image_map. Wenn das Verzeichnis bereits ein definiertes Hintergrundbild hat, wird das Bild durch Anfügen des neuen Bildes erweitert. Die Bilddatei wird in dem Auswahl-Argument spezifiziert und das Zielverzeichnis wird durch das Icon-Argument spezifiziert. Wenn das Icon-Argument nicht ein Verzeichnis ist, ist das Zielverzeichnis das derzeitige Verzeichnis. Die Verbindung wird durchgeführt, indem der linke Rand des neuen Bildes mit dem rechten Rand des existierenden Bildes ausgerichtet wird. Wenn Bilder verbunden werden, werden in der bevorzugten Ausführungsform beide Ränder verlängert und an ihren Berührungspunkten graduell in Grau verändert. Wenn Aspektverhältnisse die Bilder voneinander unterscheiden, werden die Bilder zusätzlich an ihren Zentren verbunden, und Ränder der kleineren Bildebene werden auf die Größe des größeren Bildes (durch Umwandeln in grau) erweitert.
  • In dieser Implementierung wird das Originalbild modifiziert zu dem Zeitpunkt, an dem der Befehl aufgerufen und in den sekundären Speicher geschrieben wird. Bei einer alternativen Implementierung würde in das neu angefügte Bild in der Bilderliste der directory_image_map ein Zeiger eingesetzt und alle Operationen zum Zusammenführen der Bilder würden zu den Zeiten durchgeführt, an denen die Bilder angezeigt werden.
  • In der Prolog-Animation wirft die Figur das Auswahl-Argument auf das Zielverzeichnis-Icon. Die Epilog-Animation in diesem Szenario zeigt, wie das Zielverzeichnis-Icon das Auswahl-Argument aufsaugt, das zu einem Bild geworden ist. */
    Eingabe: Auswahl-Argument
    Icon
    Ausgabe: keine
    Nebeneffekte: Das Auswahl-Argument (angenommen als eine Bilddatei) ist
    dem Icon-Verzeichnis in der directory_image_map zugeordnet.
    Ist bereits ein Bild definiert, so wird dieses Bild modifiziert durch
    Erweitern mit dem neuen Bild.
    Datenspeicher: directory_image_map
    current_directory
    background_image
  • Figure 00890001
  • link_icon
  • /* Verbindet ein Icon, das mit dem Befehl define_icon definiert wurde, mit dem Argument file_object. In der bevorzugten Ausführungsform wird ein Benutzer vorher ein Dateiobjekt ausgewählt haben, mit dem dieser Befehl arbeiten wird, z.B. mit list_files. Eine alternative Ausführungsform kann eine verschachtelte Interaktion ermöglichen, z.B. einen Dialogkasten, aus dem ein Benutzer eine Datei auswählen kann.
  • Die Prolog-Animation zeigt, wie die Figur das Auswahl-Argument-Icon auf das Ziel-Icon wirft. Die Epilog-Animation zeigt, wie sich das Ziel-Icon in Schlamm transformiert, der das Auswahl-Argument-Icon verschlingt. Der Schlamm verwandelt sich zurück in die ursprüngliche Ziel-Iconform und das Auswahl-Argument-Icon glitzert innen kurzzeitig. */
    Eingabe: Icon
    selection_arg /* für das Argument file_object */
    Ausgabe: keine
    Nebeneffekte: file_object wird der Icon-Definition hizugefügt
    selection_arg ist undefiniert
    Datenspeicher: current-directory
    icon_list
    background_image
  • Figure 00900001
  • unlink_directory_image
  • /* Löst die Verbindung einer Bilddatei von einem Verzeichnis in der directory_image_map. Dieser Befehl entfernt das Hintergrundbild, das dem durch das Icon-Argument spezifizierten Verzeichnis-Dateiobjekt zugeordnet war, durch Entfernen des Bezuges auf das Hintergrundbild in der directory_image_map.
  • Das voreingestelite Hintergrundbild wird durch das originäre Bild ersetzt und alle Icons, die definiert worden sind, werden durch generische Überlagerungs-Icons ersetzt.
  • Die Prolog-Animation zeigt, wie das Verzeichnis-Icon-Argument ein Raumfahrzeug herausschießt, bei dem das Bild „aufgemalt ist auf seiner Seite. Die Epilog-Animation zeigt in diesem Szenario, dass die Figur zum Abschied winkt. */
    Eingabe: Icon
    Ausgabe: keine
    Nebeneffekte: Hintergrundbild, das dem Icon-Verzeichnis zugeordnet ist, wird
    durch default_background ersetzt.
    Alle Icons werden durch generische Icons ersetzt.
    Datenspeicher: directory_image_map
  • Figure 00910001
  • Figure 00920001
  • unlink_icon
  • /* Entfernt file_object von der Definition des Icons. Icon bleibt definiert.
  • Eine Prolog-Animation könnte zeigen, wie die Figur sich niederbeugt mit einem Meißel und Hammer und einige Male auf das Icon schlägt, bis das Icon zerspringt. Die Epilog-Animation würde in diesem Szenario einen Schmetterling oder eine Kröte zeigen, wie sie herauskommen, und wie das Icon wieder zusammengesetzt ist. */
    Eingabe: Icon
    Ausgabe: keine
    Nebeneffekte: file_object wird entfernt von der Definition des Icons
    Datenspeicher: keine
  • Figure 00930001
  • collect_file_object
  • /* Ermöglicht es dem Benutzer, Bezüge für Dateiobjekte zur zukünftigen Nutzung zu sammeln. Dieser Vorgang wird angewendet, um Datei-Icons an andere Plätze zu transportieren, wo sie verwendet werden können. Beispielsweise kann eine Datei in ein anderes Verzeichnis bewegt oder kopiert werden, wenn es einmal gesammelt wurde. Dieser Befehl soll nur mit einem Kontextargument verwendet werden. Ein ähnlicher Befehl, col-lect_selection_arg, fügt das derzeitige Auswahlargument-Icon den gesammelten Objekten hinzu. In der bevorzugten Implementation würden diese beiden Befehle dasselbe Eingabesignal teilen.
  • In der Prolog-Animation für diesen Befehl könnte die Figur das Icon aufsammeln und es in einen Behälter legen, beispielsweise in einen Rucksack, den sie trägt. In der Epilog-Animation könnte die Figur den Rucksack schließen und ihn wieder auf den Rücken nehmen. */
    Eingabe: Icon
    Ausgabe: keine
    Nebeneffekte: Icon wird dem Satz gesammelter Objekte hinzugefügt
    Datenspeicher: character_model.collected_objects
  • Figure 00940001
  • collect_selection_argument
  • /* Ermöglicht es dem Benutzer, zur zukünftigen Verwendung einen Bezug zum Dateiobjekt zu sammeln, das dem derzeitigen selection_argument zugeordnet ist. Damit ist es einem Benutzer möglich, einen Bezug zu einem vorher ausgewählten Dateiobjekt zu behalten, auch wenn das Auswahlargument neu gesetzt worden ist, beispielsweise durch Verwendung in einem voraufgehenden Befehl. In der bevorzugten Implementierung würde dieser Befehl sich ein Eingabesignal mit dem Befehl collect_file_object teilen.
  • In der Prolog-Animation für diesen Befehl könnte die Figur das selection_arg-Icon (das derzeit gehalten wird) in einen Behälter, beispielsweise einen Rucksack, legen. Die Epilog-Animation könnte zeigen, dass die Figur den Rucksack schließt und ihn wieder auf den Rücken nimmt. */
    Eingabe: keine
    Ausgabe: keine
    Nebeneffekte: selection_arg wird dem gesammelten Satz von Objekten hinzu
    gefügt
    selection_arg-Variable wird auf NULL zurückgesetzt
    Datenspeicher: collected_objects
  • Figure 00950001
  • select_files_as_collected_objects
  • /* Ermöglicht Zugriff auf Dateien, die nicht in der Schnittstelle installiert worden sind. Für Dateien, die nicht in der Schnittstelle installiert sind, ist weder ein Bildobjekt-Icon noch ein generisches Icon definiert. Ohne diesen Befehl bestehen diese Dateien aus der Sicht einer Benutzers, der Zugriff auf das Dateisystem über die Schnittstelle nimmt, nicht. Dieser Befehl zeigt eine Auflistung all der Dateien im derzeit gültigen Verzeichnis an. Im Idealfall sind Dateien, die in der Schnittstelle installiert sind, mit einer Anzeige ihres Schnittstellen-Icons aufgelistet. Ein Benutzer kann Dateien aus dieser Liste auswählen.
  • Ist die ausgewählte Datei nicht in der Schnittstelle installiert, wird ein generisches Icon für jene Datei erzeugt und im Hintergrundbild des derzeitigen Verzeichnisses installiert. Jede Datei, die ausgewählt wurde, wird ebenfalls der Liste gesammelter Objekt hinzugefügt.
  • Die Prolog-Animation zeigt, wie die Figur eine Hinweisvorrichtung herausnimmt und den Rucksack öffnet.
  • Die Epilog-Animation zeigt, wie die Figur Dinge in den Rucksack steckt und ihn schließt.
    Eingabe: keine
    Ausgabe: keine
    Nebeneffekte: generische Icons können für ausgewählte Dateien im Verzeich
    nis erzeugt werden
    ausgewählte Dateien werden collected_objects hinzugefügt
    Datenspeicher: character_model
    current_directory
  • Figure 00970001
  • make_icons_invisible
  • /* Bewirkt, dass Icons, die durch den Befehl make_icons_visible hervorgehoben wurden, auf Normal zurückkehren. Dies wird bewirkt, durch erneutes Lesen des unveränderten Hintergrundbildes in den Speicher.
  • Die gleiche Animation für den Befehl make_icons_visible. Die Prolog-Animation zeigt, dass die Figur in die Hände klatscht. In der Epilog-Animation könnte die Figur boshaft lächeln. */
    Eingabe: keine
    Ausgabe: keine
    Nebeneffekte: Kopie des background_image wird aus einer Datei in den Spei
    cher wiedereingelesen
    Datenspeicher: current_directory
    directory_image_map
  • Figure 00980001
  • make_icons_visible
  • /* Bewirkt, dass jene Abschnitte des Hintergrundbildes, die als Icons definiert wurden, hervorgehoben werden, so dass die deutlich zu identifizieren sind. In der bevorzugten Implementierung wird die Intensität des Icon-Bildes gegenüber dem Hintergrundbild so verstärkt, dass es zu glühen scheint. In der bevorzugten Implementierung ist dieser Befehl wirksam, bis die Figur das Verzeichnis wechselt und ein neues Hintergrundbild angezeigt wird.
  • Eine Prolog-Animation könnte zeigen, dass die Figur in die Hände klatscht. Die Epilog-Animation in diesem Szenario sieht vor, dass die Figur sich nach den dann sichtbaren Icons umsieht. */
    Eingabe: keine
    Ausgabe: keine
    Nebeneffekte: Kopie des derzeitigen Hintergrundbildes im Speicher wird ver
    ändert
    Datenspeicher: background_image
    icon_list
  • Figure 00990001
  • quit
  • /* Dieser Befehl erhält Bestätigung vom Benutzer und fügt einen Endzustand des parse_graph in den command_buffer ein.
  • Die Prolog-Animation könnte sein, dass die Figur enttäuscht aussieht und sagt: „bist Du sicher?"
  • Es würde zwei Varianten der Epilog-Animation geben. Bestätigt der Benutzer den Abschaltbefehl, könnte die Figur in der Epilog-Animation den Benutzer ansehen und zum Abschied winken. Würde der Abschaltbefehl nicht bestätigt, könnte sich die Figur in der Epilog-Animation erleichtert die Stirn wischen und sagen: "Du hast mir Sorgen gemacht." Die geschachtelte Interaktion könnte eine Prolog-Animation vorsehen, in der ein Stopp-Signal auf der rechten Seite der Figur und ein durchkreuztes Stopp-Signal auf der linken Seite der Figur auftaucht. Die Figur hält ihre Hände mit einer fragenden Bewegung hoch und sagt: „Welches von beiden?" Der Benutzer führt die Figur zu einem der Zeichen und das übliche Auswahl-Eingabesignal ein, z.B. die B-Taste. */
    Eingabe: keine
    Ausgabe: keine
    Nebeneffekte: möglicherweise terminal_state in Befehlspuffer eingefügt
    Datenspeicher: keine
  • Figure 01000001
  • quit Datenstrukturen für Rekursivanruf des Top-Levels
  • /* Übertragt von Eingabe (d.h. Tastencodes) zu Befehlscodes. Es wird angenommen, dass entweder der commands_dispatcher diese Befehle kennt oder dass die Befehlsklassen für Befehle auf niedrigerer Ebene den Befehlscodes eins zu eins entsprechen. */ quit_grammer:
    Eingabe Befehlscode
    B-Taste wähle aus
    Norden move_up
    Süden move_down
    Osten move_right
    Westen move_left
  • /* Der quit_graph ist der parse_graph für den Rekursivanruf. Er definiert legale Sequenzen von command_codes in einer geschachtelten Interaktion, die aus dem Befehl define_icon initiiert wird. */ quit_graph:
    Befehlscodezustand nächste Zustände
    START: NORDEN, SÜDEN, OSTEN, WESTEN, WÄHLE AUS
    bent_move_up NORDEN: NORDEN, SÜDEN, OSTEN, WESTEN, WÄHLE AUS
    bent_move_down SÜDEN: NORDEN, SÜDEN, OSTEN, WESTEN, WÄHLE AUS
    bent_move_right OSTEN: NORDEN, SÜDEN, OSTEN, WESTEN, WÄHLE AUS
    bent_move_left WESTEN: NORDEN, SÜDEN, OSTEN, WESTEN, WÄHLE AUS
    select WÄHLE: Ende
  • reset-selection_argument
  • /* Ermöglicht Benutzer, das Auswahlargument auf NULL zu stellen.
  • Die Prolog-Animation könnten die Figur zeigen, wie sie das selection-argument-Icon fallen lässt. Die Epilog-Animation könnte Null sein, d.h. der Hintergrund wird aufgefrischt und das Auswahlargument würde verschwinden. */
    Eingabe: selection_arg
    Ausgabe: keine
    Nebeneffekte: selection_arg wird auf NULL gesetzt
    Datenspeicher. keine
  • Figure 01020001
  • select_collected_object
  • /* Stellt das selection_argument auf das vom Benutzer gekennzeichnete gesammelte Objekt ein und entfernt das gesammelte Objekt aus der Liste collected_objects. Wenn das Auswahlargument bereits eingestellt ist, wird das vorherige selection_argument ein vorläufiges Icon auf dem derzeitigen Hintergrund.
  • die Prolog-Animation könnte die Figur zeigen, wie sie einen Rucksack oder eine Tasche öffnet. Die Epilog-Animation könnte zwei Varianten haben. Wenn die Figur bereits ein Auswahlargument trägt, würde die Figur das Auswahlargument fallen lassen. Dann würden beide Varianten zeigen, wie die Figur das ausgewählte gesammelte Objekt aus der Tasche entfernt und die Tasche schließt. Am Ende würde die Figur gezeigt, wie sie das gesammelte Objekt in der Hand hält und das alte Auswahlargument, wenn es definiert ist, wäre auf dem Hintergrund sichtbar. */
    Eingabe: keine
    Ausgabe: keine
    Nebeneffekte:
    Datenspeicher: collected_objects
    character_model
    icon_list
  • Figure 01030001
  • set_selection_argument
  • /* Stellt das Auswahlargument auf die Werte vom Icon-Argument ein. Ist das Auswahlargument bereit eingestellt, wird ein vorläufiges Icon erzeugt, so dass das dem früheren Auswahlargument zugeordnete Auswahlargument auf dem Hintergrund des derzeitigen Verzeichnisses bleibt, bis zum nächsten Befehl change_directory */
  • Die Prolog-Animation könnte die Figur zeigen, wie sie sich zum Icon hin zurückbeugt. Die Epilog-Animation hätte zwei Varianten. Wird DROP_OLD_SCROLL? auf TRUE gesetzt, würde die Figur die Rolle, die sie bereits trägt, fallen lassen und dann das Icon zu einer Rolle aufrollen, diese aufheben und sich erheben. Wird DROP_OLD_SCROLL? auf FAL-SE gesetzt, würde die Figur das Icon zu einer Rolle aufrollen, sie aufheben und sich mit der Rolle in der Hand erheben. */
    Eingabe: Icon
    selection_arg
    Ausgabe: DROP_OLD_SCROLL?
    Nebeneffekte: selection_arg-Felder werden mit Werten aus dem Icon besetzt
    Datenspeicher: character-model
    background_image
    current-directory
    directory_image_map
  • Figure 01040001
  • unload-collected_object
  • /* Dieser Befehl nimmt ein Objekt aus den Satz gesammelter Objekte und platziert es auf dem Hintergrund. Das Objekt bleibt auf dem Hintergrund nicht bestehen, weil das Icon in der derzeitigen icon_list des Verzeichnisses als ein vorläufiges Icon definiert ist. (Wird das Verzeichnis durch einen Befehl change-directory verändert, werden vorläufige Icons von der icon_list gelöscht.)
  • Der Befehl wird verwendet, um Objekte aus dem Satz gesammelter Objekte zu entfernen und einen temporären Zugriff zu diesen Objekten zu bieten. Möchte der Benutzer beispielsweise ein Programm auf einer Datei ablaufen lassen und sowohl das Programm als auch die Datei sind in dem Satz gesammelter Objekte, dann kann der Benutzer den Befehl unload_collected_object verwenden, um eines der Icons der Datei auf dem Hintergrund zu platzieren, und dann select_collected_object, um das andere zu fassen. Jetzt sind beide Icons der Datei für nachfolgende Befehle, z.B. run_program, zugänglich.
  • Die Prolog-Animation könnte die Figur zeigen, wie sie einen Rucksack oder eine Tasche öffnet. Die Epilog-Animation zeigte dann, dass die Figur die Tasche schließt, und würde das Icon für das ausgewählte collected_object auf dem Hintergrund enthüllen. (Dies würde durchgeführt, wenn das Hintergrundbild aufgefrischt wird, da das Icon des ausgewählten Objektes zur icon_list und zum Hintergrundbild hinzugefügt wurde.) */
    Eingabe: keine
    Ausgabe: keine
    Nebeneffekte: Objekt wird aus gesammelten Objekten entfernt und zum vor
    läufigen Icon auf dem derzeitigen Verzeichnishintergrund ge
    macht
    Datenspeicher: collected_objects
    character_model
    icon_list
    background_image
  • Figure 01050001
  • append_animations
  • /* Fügt eine Animation an eine andere Animation an und schickt das Ergebnis zurück */
    Eingabe: base_animation,
    Animation
    Ausgabe: Animation
    Nebeneffekte: keine
    Datenspeicher: keine
  • bitblit
  • /* Schreibt eine bitmap an die Videoanzeige oder einen Ort im Speicher. Diese Funktion ist jetzt in den meisten Bestriebssystem APIs vorhanden. Sowohl Quell- als auch Zielargumente sind bitmaps. Die bitmaps werden unter Verwendung von Standardrastervorgängen (ROP) kombiniert. Zu allgemein üblichen Rastervorgängen gehören Quellenkopien, in die die Quellen-bitmap für das Ziel kopiert wird, und Quellenmusterkopie, in der die Quellen-bitmap zuerst mit der Muster-bitmap kombiniert wird, z.B. unter Verwendung von OR, und dann an das Ziel kopiert wird. */
    Eingabe: destination_bitmap,
    Ort,
    source_bitmap_size,
    source_bitmap,
    ROP
    Ausgabe: keine
    Nebeneffekte: Ziel-bitmap entsprechend ROP verändert
    Datenspeicher: keine
  • commands_dispatcher
  • /* Verwendet die command_class und Argumente für die Bestimmung, welcher Benutzerebenenbefehl angesteuert wurde. D.h. er klärt überladene Eingangssignale nach den Eigenschaften des Icon und der Auswahlargumente. Er schickt den command_code zurück.
  • Befehle werden in Klassen entsprechend dem Eingangssignal, mit dem sie aufgerufen wurden, aufgeteilt. Der Befehlscode ist für jeden Benutzerebenenbefehl nur einmal vorhanden und hängt, zusätzlich zur Befehlsklasse, von den Argumenten zum Befehl ab. Eine Befehlsklasse und Argumente identifizieren nur einen Befehlscode.
  • Jeder Befehlscode entspricht einer zu ihm gehörenden Prolog-Animation. Gelegentlich teilen sich unterschiedliche Benutzerebenenbefehle das gleiche auszuführende Befehls-Script. Beispielsweise haben die Befehle change_directory und change_directory_to_ancestor unterschiedliche Befehlscodes und Prolog-Animationen, sie verwenden jedoch dasselbe Befehls-Script. Teilen sich zwei unterschiedliche Befehle dasselbe Befehls-Script, dann zeigen ihre Eingänge in die Übersicht von command_script[] auf denselben Funktionscode. */
    Eingabe: keycode_identical_command_set
    Icon
    selection_arg
    Ausgabe: command_code
    Datenspeicher:
  • Figure 01070001
  • process_input
  • /* Prozesseingabesignale und Cursor-Ort zur Bestimmung des Befehlscode, des Icon, des animation_selector und der Dauer, soweit anwendbar, für den nächsten Befehl. Die Hauptaufgabe dieser Funktion besteht darin, Wiederholungen von Befehlsaufrufen zu identifizieren und das Zuordnen von Eingaben zu Befehlscodes zu verwalten. Sie ruft die Funktion parse_input auf, um eine syntaktische Analyse (parsing) von Eingangssignalen zu veranlassen, und die Funktion commands_dispatcher, um die Identifikation von Befehlen zu erreichen, die ein Eingangssignal teilen, jedoch durch die Art des Argumentes zu unterscheiden sind.
  • Für viele Befehle kann die Ausführungsleistung verbessert werden, indem eine wiederholte Aufrufsequenz als eine einzige Einheit verarbeitet wird. Zum Beispiel bewirkt ein einziger Aufruf eines Befehls zur Figurenbewegung, dass sich die Figur um eine winzige Entfernung in die angegebene Richtung bewegt. Im allgemeinen werden viele Wiederholungen eines Bewegungsbefehls in Folge gegeben. Zusätzlich ist die Animation zur Bwegung für ein Abspielen in einer Schleife geeignet. Aus diesen Gründen stellen wir ein Dauer-Argument bereit, dass mit der Verarbeitung vieler Befehle für Wiederholungen verwendet werden kann. Es werden Tastencodes gesammelt, bis sich die Bewegungsrichtung ändert, eine maximal akzeptable Pausenschwelle erreicht ist oder die Bewegung stoppt. Die Dauer der Sequenz kann dann dazu verwendet werden, um die Animation für Figurenbewegungen zu konstruieren, die dann in ihrer Gesamtheit vor dem Sammeln der nächsten Eingabe abgespielt werden kann. */
    Eingabe: keycode_grammar
    character_model
    selection_arg
    Ausgabe: command_code, icon, duration, move_vector
    Datenspeicher: command_class_map
    input_buffer
    repeat_threshold
    sequenced_set
  • /* Befehlssatz für den wiederholter Aufruf als ein einziger Aufruf verlängerter Dauer behandelt wird */
  • Figure 01090001
  • lexical_parse
  • /* Parse_input führt syntaktische Analyse auf niedrigem Niveau durch, um die nächste bedeutungsvolle Eingabe, d.h. Stichwörter (tokens) vom Eingabepuffer zu erhalten. Es werden Eingabesignale, d.h. Tastenanschläge, gesammelt, bis eine bedeutungsvolle Folge von Signalen gesammelt wurden. Eine bedeutungsvolle Folge von Eingabesignalen auf niedriger Ebene identifizieren eine Befehlsklasse. Viele Befehlsklassen können durch ein einziges Eingabesignal nicht identifiziert werden. Das gilt besonders für bevorzugte Eingabeeinrichtungen, die eine geringe Zahl von Signalen auf niedrigem Niveau bieten, z.B. eine Spiele-Steuerung oder eine Infrarot-Fernsteuerungsvorrichtung. Bei Vorrichtungen dieser Art werden mehrere Tasten/Signale entweder gleichzeitig oder in einer Folge kombiniert, um eine Befehlsklasse zu identifizieren. Beispielsweise kann der Befehl expunge_deleted aufgerufen werden, indem die Tasten LINKS und RECHTS eines Spiele-Steuergerätes gleichzeitig gedrückt werden. Parser-Eingang würde den Strom von Signalen auf niedrigem Niveau prüfen und, wenn eine Folge gefunden wird wie
    LINKS unten, RECHTS unten, LINKS oben, RECHTS oben
    oder RECHTS unten, LINKS unten, LINKS oben, RECHTS oben, die command_class für den Befehl expunge_deleted zurückschicken. */
    Eingabe: keycode_grammar
    Ausgabe: command_class
    Datenspeicher: input_buffer
  • Figure 01100001
  • find_icon
  • /* Verwendet den Ort des Cursor-Hot-Spots zur Identifikation eines Icons auf der Hintergrunddarstellung. Bei der einfachsten Implementierung wird angenommen, dass der Cursor vor dem Abspielen der Prolog-Animation aktiv ist. In diesem Fall wird das Icon, das sich am Ende des vorausgehenden Befehls unter dem Cursor-Hot-Spot befindet, d.h. der variable character_model.cursor des derzeitigen globalen Systems, zur Identifizierung des ausgewählten Icon verwendet. In der bevorzugten Implementierung wird angenommen, dass der Cursor am Ende der Prolog-Animation aktiv ist. Das sichert eine bessere Kalibrierung zwischen Icon und Figuranimationen, erzeugt jedoch eine zusätzliche Komplexität bei der Icon-Identifizierung. Außerdem besteht bei Eingabeüberladung die Möglichkeit, dass die Icon-Identifizierung nicht bestimmbar ist. In der bevorzugten Implementierung untersucht find_icon jede Prolog-Animation, die dem keycode_identical_command_set zugeordnet ist und prüft, ob der Cursor-Hot_spot am Ende der Animation sich auf einem Icon befindet. Das erste übereinstimmende Paar von Animation/Icon, das gefunden wird, wird als Benutzerwahl angenommen. Ein übereinstimmendes Paar von Animation/Icon ist eines, bei dem die Icon-Art mit dem Befehl im Einklang steht, der der Animation zugeordnet ist, die sich aus der Wahl jenes Icons ergab. Beispielsweise besteht die execution_command_class aus vier Befehlen, change_directory_to_ancestor, change_directory_, run_program und run_default_program.
  • Nacheinander wird für jede Animation der Ort des Cursors am Ende der Animation errechnet und die icon_list überprüft, um festzustellen, ob ein Icon an diesem Ort definiert worden ist. Die erste Animation, die zu einem angemessenen Icon führt, wird zur Bestimmung des command_code und des animation_selector verwendet. Find_icon schickt das Icon, den command_code und animation_selector zurück. */
    Eingabe command_class
    character_model
    selection_arg
    Ausgabe: Icon
    command_code
    animation_selector
    Datenspeicher: keycode_grammar
    icon_list
  • Figure 01120001
  • get_animation
  • /* Holt eine Animation aus dem geeigneten command_animation_graph. Der command_animation_graph sollte auf ähnliche Weise mit dem Parser-Graph verbunden sein, so dass für jedes Befehlspaar ein Pfad vom ersten Befehl zum zweiten Befehl im command_animation_graph vorhanden ist, wenn der zweite Befehl des Paares vom ersten Befehl des Paares auf einem Pfad der Länge eins im Parser-Graph zu erreichen ist. Die Animations-Graphs werden verwendet, um eine kontinuierliche Bewegung zwischen einer großen Anzahl von Übergängen sicherzustellen, die vom Benutzer gesteuert werden.
  • In dieser Implementierung wird der Animationsdatei beim Laden vollständig in den Speicher geladen. In der Praxis mag das nicht durchzuführen sein. Alternativ kann sie in Teilen durch die Funktion play_animation geladen werden, was für das Abspielen von digitaler Animation in der Praxis Standard ist */
    Eingabe: command_code
    animation_map
    Selektor
    Type /* = ICON oder CHAR */
    Icon
    Ausgabe: Zeiger zu einem Animation-Script
    Datenspeicher: command-animation_map == prologue_animations,
    epilogue_animations
  • Figure 01130001
  • Figure 01140001
  • generste_animation
  • /* Nimmt ein Bild und eine Generierungsfunktion als Eingabe und verwendet das Bild als Start-Rahmen einer Animation. Die Generierungsfunktionseingabe sollte in der Lage sein, nachfolgende Rahmen einer Animation bei gegebenem Start-Bild zu generieren. Es könnte beispielsweise entweder eine Morphingfunktion mit bereitgestellten Morph-Linien oder ein auf einem Partikelsystem basierender Animationsgenerator sein. Jede Generierungsfunktion wird für die Ausführung einer anderen Art von Animation verwendet. Animationsarten können Überfänge wie icon_to_frog, icon_to_cauldron, icon_shatter usw. enthalten. */
    Eingabe: Argument /* Figurenmodell oder Icon */
    generating_function
    generation_parameters
    Ausgabe: Zeiger zu einem Animation-Script
    Datenspeicher: command_animation_map == prologue_animation,
    epilogue_animations
  • Figure 01150001
  • make_animation
  • /* Erzeugt eine abspielbare Animation durch Mischen von Figur- und Icon-Animationen, Kalibrieren der Animation mit vorher abgespielten Animationen, um eine kontinuierliche Bewegung zu erzeugen, wobei die Auswahlargument-Darstellung überlagert wird, und durch das Bestimmen des Ortes, an dem jeder Rahmen das Hintergrundbild überlagern sollte.
  • Jeder Rahmen in einem Animations-Script enthält einen Vektor, der seine Ankerkoordinate ist. Ein Ankerpunkt (z.B. obere linke Ecke) wird verwendet, um den Rahmen an dem durch die Ankerkoordinate in einem von der Vorrichtung unabhängigen Koordinatensystem spezifizierten Ort anzuheften. Auf diese Weise können Animationsrahmen gegenüber einem Hintergrund und relativ zueinander bewegt werden, während sie dem Hintergrund überlagert werden. In einer zweidimensionalen Ausführung kann die Ankerkoordinate für jeden Rahmen drei Attribute haben; horizontale Position, vertikale Position und Rotation. (Eine Ausführung in drei Dimensionen kann die vollen neun Attribute aufweisen, wozu Z-Achsenposition, Gieren, Längsneigung usw. gehört). Die Ankerkoordinate für den Start-Rahmen einer Animation wird zum „Ursprung", und nachfolgende Rahmen werden gegenüber dem Start-Rahmen verankert.
  • Make_animation ist verantwortlich für das Ausrichten des Start-Rahmens jeder seiner Argumente-Animationen (z.B. Figur und Icon) mit ihren Orten im Koordinatensystem des Hintergrundbildes und für das Anpassen der Ankerkoordinaten jedes nachfolgenden Rahmens, damit das animationszentrierte Koordinatensystem mit dem Koordinatensystem der Hintergrunddarstellung auf geeignete Weise in Einklang gebracht wird.
  • Das Beschneiden der Animationsrahamen wird mit Rücksicht auf die Hintergrunddarstellung durchgeführt. Wird die Animation abgespielt, dann rollt die Funktion play_animation die Hintergrunddarstellung in der Video-Anzeigevorrichtung je nach Erfordernis. In dieser Schrift nehmen wir an, dass make_animation eine Animation in einem Koordinatensystem unendlichen Ausmaßes konstruiert, und das Beschneiden wird durch play_animation gehandhabt.
  • Eine kontinuierliche Bewegung von einer Animationssequenz zu einer anderen wird durch das Kalibrierargument erreicht. Es könnten viele Verfahren verwendet werden, um eine Übergangssequenz von Animationsrahamen zu konstruieren, die zwischen die den beiden aufeinanderfolgenden Befehlen zugeordneten Animationen eingefügt werden könnten. Im Idealfall würden Generierungsverfahren für der Realzeit entsprechende Animationen verwendet, um die Übergangssequenz „während des Fluges" zu konstruieren. Eine weitere Möglichkeit besteht darin, einen festen Satz von Übergangsanimationen zu speichern, von denen jeder mit mindestens einem Befehlspaar zusammenpasst. Wir nehmen an, dass das Kalibrierargument ein Animations-Script ist, das verwendet wird, um die gemischte Figur/Icon-Animation einzuleiten.
  • Wenn ein Auswahlargument definiert wurde, wird das Bild für das Auswahlargument jedem Rahmen der eingeblendeten, vorangestellten Animation überlagert, um die vollständige Animation zu konstruieren. */
    Eingabe: char_animscript
    icon_animscript
    Kalibrator /* Zeiger auf eine bereits bei BK registrierte
    Animation */
    character_model /* kann erforderlich sein zur Registrierung
    des Animationsrahmen bei BK */
    Icon
    selection_argument
    Ausgabe: Zeiger zur Animation
    Nebeneffekte:
    Datenspeicher:
  • Figure 01170001
  • Figure 01180001
  • make_anim_loop
  • /* Berechnet die Anzahl von Wiederholungen in einer Animationsschleife und füllt die Schleifenvariablen in dem Animations-Script aus. In einigen Fällen, insbesondere für Figurenbewegungsanimationen wird eine Anzahl von Rahmen in einer Schleife wiederholt abgespielt. Die Anzahl der Wiederholungen der Schleife wird durch das Dauer-Argument bestimmt. Die Animationsrahmenrate und die Zahl der Rahmen in der vorbestimmten Schleife werden zur Berechnung der Anzahl der Wiederholungen verwendet, die die Schleife ausführen muss, um dem Dauer-Argument zu genügen. */
    Eingabe: animation_script
    Dauer
    Ausgabe: animation_script
    Nebeneffekte: keine
    Datenspeicher: FRAME_RATE
    aufgerufen durch: top_level
  • Figure 01190001
  • make_selection_arg
  • /* Erzeugt eine selection_arg-Datenstruktur und intialisiert diese Struktur mit Informationen vom Icon. Erzeugt ebenfalls eine Auswahlargument-bitmap, die benutzt wird, um das Bild des Auswahlarguments auf dem Animationsrahmen „einzufügen". */
    Eingabe: Icon
    character_model
    Ausgabe: Zeiger zum selection_arg
    Nebeneffekte: keine
    Datenspeicher: keine
    aufgerufen durch: CMset_selection_arg
  • Figure 01200001
  • merge_selection_arg
  • /* Verwendet Zell-Überlagerungstechnik, um Auswahlargument-bitmap in jeden Rahmen der Figurenanimation einzubringen.
  • Die Schnittstelle sollte den folgenden Regeln für Überlagerungs-Auswahlargumenten entsprechen:
    • (1) Das Zentrum des Auswahlargumentes ist bekannt und es ist ein Bezugspunkt für jeden Rahmen der Animation vorhanden (wahlweise mit der Animation gespeichert).
    • (2) Falls erforderlich, wird das Auswahlargument maßstabsgerecht bearbeitet, damit seine Größe zur Figur passt, z.B. die Größe eines Buches gegenüber der Größe der Figur.
    • (3) Das Auswahlargument sollte, wenn es mit dem Bezugspunkt ausgerichtet wird, fast innerhalb der Grenze der Figurenform enthalten sein. Die zu akzeptierende Toleranz für diese Einhaltung der Grenze wird durch die Grenzen der Animationsrahmen bestimmt oder kann in einer Schwellenvariablen definiert werden. (Dies kann zur Modifizierung von Skala und/oder Anordnung verwendet werden.)
    • (4) Auswahlargument wird durch Vorgabe „über" die Figur gelegt. Wenn eine bitmask zum Aus-Maskieren der Überlagerung in der mit dem Animations-Script gespeicherten Auswahlargument-Info enthalten ist, kann diese dazu verwendet werden, um Abschnitte der Figur „oberhalb" von maskierten Abschnitten des Auswahlargumentes anzuordnen. Das ermöglicht ausgeklügeltere Überlagerungen, bei den beispielsweise das Auswahlargument als teilweise verdeckt in der Tasche der Figur dargestellt werden kann.
  • Bei der folgenden Implementierung wird davon ausgegangen, dass Informationen für das Ausrichten und die Anzeige von Überlagerungen im char_animscript gespeichert sind. Es wird davon ausgegangen, dass selection_arg eine bitmap enthält, die für die Überlagerung auf geeignete Weise maßstabsgerecht bearbeitet ist. Bei dieser Ausführung gehen wir davon aus, dass die selection_arg bitmap vollständig innerhalb der Grenzen jedes Rahmens in der Animation angeordnet ist, wenn sie korrekt ausgerichtet ist. Um diese Voraussetzung weniger stringent zu machen, sollten die Grenzen des Animationsrahmens vor dem Aufkleben der Zelle um die Aufnahmetoleranz erweitert werden. */
    Eingabe: char_animscript
    selection_arg
    Ausgabe: keine
    Nebeneffekte: Figur animscript durch Überlagerung von Auswahl-
    Argument in jedem Rahmen verändert
    Datenspeicher: keiner
    aufgerufen von: make_animation
  • Figure 01220001
  • merge_animations
  • /* Mische eine Figurenanimation mit einer Icon-Animation. Beispielsweise nehmen wir die Animation eines Icons, das sich in einen Frosch verwandelt, und mischen diesen mit der Animation der Figur, die ein Icon küsst. Animationen werden gemischt, indem Icon-Animationsrahmen mit Figurenanimationsrahmen überlagert werden, wobei Quelle/Muster-Masken blit ROPs verwendet werden. Wie bei make_animation wird angenommen, dass die Animationsrahmen einem Hintergrund unendlichen Ausmaßes überlagert werden. (Beschneiden wird durch play_animation gehandhabt.)
  • Größe und Ankerkoordinaten jedes Rahmens der gemischten Animation werden durch das begrenzende Rechteck der beiden Rahmen der Animation bestimmt. Falls erforderlich wird ein Maskenwert zum Füllen des Grenzrechtecks auf die erforderliche Größe verwendet. Es wird angenommen, das Eingabe-Animationen die gleiche Rahmenrate haben.
  • Es wird angenommen, dass die beiden Eingabe-Animationen bereits im Raum kalibriert wurden (über Ausrichtung der Zentren auf dem Hintergrundbild) und ein gemeinsames Koordinatensystem haben, d.h. das Koordinatensystem des Hintergrundbildes.
  • Merge_animations ist verantwortlich für das Erstellen einer einzigen Sequenz von Rahmen, indem eine der Animationen von der anderen überlagert wird (z.B. wird die Figurenanimation auf die Icon-Animation aufgelagert). Die merge_frame Variable der Figurenanimation zeigt die erste Rahmennummer in der Figurenanimation an, die mit dem Start-Rahmen der Icon-Animation überlagert wird.
  • Jeder Rahmen der gemischten Animation wird generiert durch das Schaffen eines neuen Rahmens, der mit dem Maskenwert (transparent) von einer Größe gefüllt wird, die ausreicht, um sowohl die Figuren- als auch die Icon-Animationsrahmen aufzunehmen. Zuerst wird die Icon-Animation dem Maskenrahmen überlagert und dann wird die Figurenanimation dem Ergebnis überlagert. Jeder nachfolgende Rahmen der gemischten Animation wird auf die gleiche Weise kreiert.
  • Der Einfachheit halber wird angenommen, dass der Speicher ausreicht, um alle drei Animationen in ihrer Gesamtheit aufzunehmen. */
    Eingabe: char_anim /* es wird angenommen, dass Animationen mit Hintergrund
    ausgerichtet sind */
    Ausgabe: Zeiger zur zusammengeführten Animation
    Nebeneffekte:
    Datenspeicher:
  • Figure 01240001
  • Figure 01250001
  • Figure 01260001
  • overlay_bitmap
  • /* Überlagert ein Bild auf einem anderen Bild im Speicher an dem spezifizierten Ort. */
    Eingabe: base_bitmap
    overlay_bitmap
    overlay_location /* es wird angenommen, dass dies im
    Basisbild enthalten ist */
    overlay_size
    Ausgabe: ptr to altered base image
    Nebeneffekte: Basisbild verändert
    Datenspeicher:
  • Figure 01270001
  • generate_calibration_animation
  • /* Kreiert eine Animation, die zeigt, dass die Figur aus einem derzeitigen Ort und einer Position sich an den spezifizierten Ort und in die spezifizierte Position bewegt. Dies kann erreicht werden durch Verwendung von gespeicherten Animationssegmenten, wie nachfolgend beschrieben, oder, wenn die Leistungsanforderungen es erlauben, durch Echtzei-Animationstechniken (z.B. Hodgkins et al). Können Echtzeit-Animationstechniken nicht angewendet werden, können Positionsübergänge durch Verwendung eines Graphen von Animationspositionen generiert werden und Ortsübergänge können generiert werden, indem ein Standard-Bewegungsanimationssegment zwischengesetzt wird. Die sich ergebenden Segmente können aneinandergefügt werden.
  • Für Positionsübergänge kann ein Graph erzeugt werden, bei dem jedem Link ein Animationssegment zugeordnet ist. Knotenpunkte in diesem Graphen sind spezifischen Positionen einer spezifischen Figur zugeordnet. Animationen entlang eines Pfades von irgendeinem Knotenpunkt zu irgendeinem anderen Knotenpunkt können aneinandergefügt werden, um eine Animation zu generieren, die eine kontinuierliche Bewegung von der ursprünglichen Position in die dem Endknotenpunkt zugeordnete Position darstellt. Mit einem vollständig verbundenen Graphen können glatte Übergänge für jeden endlichen Satz von Positionen generiert werden.
  • Der Einfachheit halber sei in diesem gesamten Pseudocode angenommen, das die Figur nur in eine von vier Richtungen weisen kann – sie kann nach links sehen, nach rechts sehen, den Betrachter ansehen oder dem Betrachter den Rücken kehren. Eine Animation in einer vollen 360-Grad-Drehung im Uhrzeigersinn können durch das Aneinanderfügen von jedem der Segmente nacheinander. Eine zusammenhängende Bewegung in dieser Art der Ausführung erfordert, dass jede Figurenanimation in einer der Positionen beginnt und endet, die für die Kalibrierungsanimationen definiert sind. Es kann jede endliche Anzahl von Positionen für Kalibrierungsanimationen definiert werden, es sollte jedoch möglich sein, eine Animation zu generieren, die die Figur aus irgendeiner Position in eine andere definierte Position bewegen. Bei der Verwendung von Echtzeit-Animationserzeugungstechniken, wie bei Hodgkins et al, kann eine viel größere Flexibilisierung der Kalibrierungsmöglichkeiten erreicht werden. */
    Eingabe: move_vector /* nimmt an, dass (0,0) der Start-Punkt ist */
    current_position
    require_position /* zur Vereinfachung ist Richtung die einzige
    Positionsvariante */
    Ausgabe: Zeiger zur Animation
    Nebeneffekte: keine
    Datenspeicher: calibration_animations /* Graph von Positionsüberangs
    animationen */
  • Figure 01290001
  • execute_command
  • /* Führt die Funktion aus, die in command_script gespeichert ist. Jede auszuführende Funktion (Benutzerebenenbefehl) muss ein context_argument, ein selection_argument und ein Optionenargument akzeptieren. Diese Argumente können ignoriert werden, wenn sie nicht erforderlich sind. Das Optionenargument ist ein Figuren-String, das einem Protokoll folgt, das spezifisch für jede Funktion ist. Wenn eine Funktion das Optionsargument nutzt, muss sie in der Lage sein, Situationen zu meistern, in denen der String fehlerhaft ist, d.h. vom korrekten Protokoll abweicht. */
    Eingabe: command_script
    context_arg
    selection_arg
    Ausgabe: execution_result
    Nebeneffekte: hängen vom ausgeführten Befehl ab
    Datenspeicher:
  • Figure 01300001
  • compute_translation
  • /* Nimmt eine Ausrichtung (Punkt oder Vektor) von zwei Koordinatensystemen als Eingabe und bestimmt, wie jeder Punkt (oder Vektor) im ersten Koordinatensystem in das zweite Koordinatensystem zu übertragen ist. */
    Eingabe: location_target_system /* Punkt oder Vektor */
    location_source_system /* Punkt oder Vektor */
    Ausgabe: Übertragung /* Punkt oder Vektor */
    Nebeneffekte: keine
    Datenspeicher: keiner
  • translate_coordinate
  • /* Übertragt einen Punkt oder Vektor aus einem Koordinatensystem in ein anderes. Implementierung kann maßgerechte Modifikation (scaling) oder Rotation enthalten. */
    Eingabe: location_source_system /* Punkt oder Vektor */
    Übertragung /* Punkt oder Vektor */
    Ausgabe: location-target-system /* Punkt oder Vektor */
    Nebeneffekte: keine
    Datenspeicher: keine
  • play_animation
  • /* Diese Funktion hat fünf Hauptaufgaben: (1) Animationsvideorahmen auf dem Video-Anzeigegerät anzuzeigen durch Zell-Überlagerung auf dem Hintergrundbild, (2) Animationsvideos aus dem Hintergrund-Koordinatensystem in das Koordinatensystem des Video-Anzeigegerätes zu konvertieren, das Hintergrundbild, wo notwendig, zu rollen, (3) behandelt das Beschneiden, wenn Breite oder Höhe eines Rahmens die Abmessungen des Video-Anzeigerätes überschreiten, (4) Ineinanderfügen von Animationsvideo mit einer Sequenz von Audio-Segmenten, indem Daten wie spezifiziert an Tonvorrichtungen gesendet werden, und (5) Aktualisierung des character_model und die Übertragung des VDzuBK-Koordinatensystems unter Berücksichtigung des Koordinatensystems des Video-Anzeigegerätes.
  • Wahlweise können, wenn Audio-Spuren sich überlappen, die Töne gemischt werden, so dass alle Spuren abgespielt werden. Alternativ ist letzte spezifizierte Ton der gehörte Ton.
  • Zur Vereinfachung und Verdeutlichung des Pseudocode kopiert in dieser Beschreibung play_animation das gesamte Hintergrundbild, bevor ein Animationsrahmen überlagert wird, und frischt dann die Gesamtansicht im Video-Anzeigegerät auf. Es sind mehrere Optimierungsmöglichkeiten allgemein bekannt, die bei der praktischen Ausführung zur Verbesserung einer Animationswiedergabe verwendet werden können.
  • Play_animation beginnt immer durch Zurückziehen des Hintergrundbildes auf dem Video-Anzeigerät. */
    Eingabe: Animation
    Ausgabe: Zeige Video-Frames an, synchronisiert mit Audio auf Tongerät
    Nebeneffekte: keine
    Datenspeicher: character_model
    background_image
    video_viewport
    Returns: character_model
    view_anchor
    selection_arg
  • Figure 01330001
  • Figure 01340001
  • make_icon_bitmask
  • /* Generiert eine bitmap aus einem rechteckigen Bereich des Hintergrundbildes. Ein Satz von Werten der bitmap definiert die Flächen, in denen das Hintergrundbild erscheinen sollte, und einen weiteren Wert, der Bereiche definiert, die von der Maske bedeckt werden. In der einfachsten Ausführung ist die Icon-Darstellung ein rechteckiger Bereich auf dem Hintergrundbild, und es ist kein markierter Bereich vorhanden. In der bevorzugten Implementierung werden Bildverarbeitungalgorithmen verwendet, um signifikante Bildbereiche aus dem Hintergrund zu extrahieren, um eine bitmap zu kreieren, in der nur die Bildobjekte auftauchen, während die Hintergrundbereich durch die Maske verdeckt sind. Es kann beispielsweise ein Randerkennungsalgorithmus verwendet werden, um den äußersten verbundenen Rand innerhalb des rechteckigen Bereichs zu finden. */
    Eingabe: rectangle.location /* zwei Punkte aus Koordinationssystem des
    Hintergrundbildes */
    rectangle.size
    background_image
    Ausgabe: bitmap
    Nebeneffekte:
    Datenspeicher:
  • make_icon_copy
  • /* Kreiere ein Überlagerungs-Icon, das eine Kopie des source_icon ist. Normalerweise wird dies für eine vorläufige Platzierung eines Icon in einem Verzeichnis verwendet, das sich vom Heimatverzeichnet des Quellen-Icons unterscheidet, z.B. wenn Auswahlargumente unterwegs fallengelassen werden. */
    Eingabe: source_icon
    Ausgabe: Ziel
    Nebeneffekte: keine
    Datenspeicher: keine
  • Figure 01360001
  • make_tem_icon_in_current_directory
  • /* Wird verwendet, um ein vorläufiges Icon in das derzeitige Verzeichnis einzufügen durch (1) Einfügen des icon in die icon_list und overlay_icons Liste und (2) Verändern der Kopie des Hintergrundbildes im Arbeitsspeicher, um das Überlagerungsbild des Icons einzukleben. */
    Eingabe: overlay_icon
    approximate_location
    Ausgabe: keine
    Nebeneffekte: Kopie des Hintergrundbildes im Arbeitsspeicher geändert
    vorläufiges Icon zu icon_list hinzugefügt
    vorläufiges Icon zu overlay_icons hinzugefügt
    Datenspeicher: current_directory
    background_image
  • Figure 01370001
  • display_image
  • /* Verwendet ein Blit ROP, um eine Bild-bitmap auf einer Video-Anzeigevorrichtung (z.B.
  • voller Bildschirm oder Fenster) eines Video-Gerätes anzuzeigen und im Maßstab anzupassen. Das Bild braucht der Video-Anzeigevorrichtung nicht angepasst zu sein. Der Teil des Bildes, der angezeigt wird, wird durch die Ankerkoordinate (im Bild-Koordinatensystem) bestimmt, die an einem gegebenen Punkt im Koordinatensystem der Vorrichtung angeordnet ist (z.B. oben links). Füllt das verankerte Bild die Video-Anzeigevorrichtung nicht aus, dann wird das Bild durch das Tapetenbild in allen Abmessungen expandiert, die kleiner sind als die Anzeigevorrichtung, z.B. unter Verwendung von Quellenmuster-blit. Ist das Tapetenbildargument NULL, wird das Originalbild als ein Torus behandelt. */
    Eingabe: Zeiger auf ein Bild
    scale_parameter
    video_viewport
    SCROLL_TORUS /* 1 wenn Bild als Torus verwendet wird */
    Zeiger auf Tapetenbild /* NULL, wenn Hintergrundbild Torus ist */
    Ausgabe: Maßstabsgerechtes Bild durch Tapete erweitert, wo erforder
    lich, und auf Video-Anzeigevorrichtung angezeigt
    Returns: keine
  • scroll_bitmap
  • /* Aktualisiert Ankerkoordinate und zeichnet erneut korrekten Abschnitt der bitmap (normalerweise Hintergrundbild) auf der Video-Anzeigevorrichtung. Viele Standardverfahren zur Durchführung dieses Vorgangs.
  • Die Hauptaufgabe ist das Durchführen des Beschneidens. Ist die Grenze des Hintergrundbildes erreicht, gibt es drei Möglichkeiten, Signalfehler und Stopp Bewegung, umhülle oder fahre auf einem erweiterten Hintergrund fort. Wir gehen davon aus, dass die Funktion mindestens zwei dieser Optionen bereitstellt, einschließlich des Umhüllens, d.h. die Anzeigevorrichtung wird als ein Torus behandelt. */
    Eingabe: bitmap
    video_viewport
    scroll_vector /* Vektor ist Ausdruck für zu rollende Entferung &
    Richtung */
    SCROLL_TORUS /* 1, wenn Bild als Torus verwendet wird */
    Zeiger auf Tapetenbild /* NULL, wenn Bild als Torus verwendet
    wird */
    Ausgabe:
    Nebeneffekte: Abschnitt des Bildes, der auf der Video-Anzeigevorrichtung
    sichtbar ist, wird durch Rollrichtung verändert und
    Entfernung und die aktualisierte Ansicht werden angezeigt
    Returns: modifizierter view_anchor
  • play_audio
  • /* Spielt Audio-Daten auf Tonvorrichtung ab. Beispielsweise kann dies auf einfache Weise durchgeführt werden, indem WAV-Dateien von Windows verwendet werden und deren darin enthaltene MMSYSTEM.DLL und APIs. */
    Eingabe: Zeiger auf eine Audio-Datei
    Ausgabe: keine
    Nebeneffekte: Audio-Abspielung auf Audio-Vorrichtung
    Datenspeicher: keine
  • recursive_delete_fo
  • /* Ordnet Dateiobjekte und Icons auf einer Liste gelöschter Objekte an. In der bevorzugten Ausführung werden Icons und Dateiobjekte auf der Löschliste nicht tatsächlich gelöscht, bis der Befehl zur Annulierung aufgerufen wird.
  • Dateiobjekte werden nur gelöscht, wenn Vorgänger im hierarchischen Dateisystem des Betriebssystems vorhanden sind. Dateien, auf die von nicht-hierarchischen Querverbindungen zugegriffen werden kann, die von der bildhaften Benutzerschnittschnelle aufrechterhalten werden, werden nicht gelöscht, jedoch werden die Querverbindungen von gelöschten Verzeichnissen gelöscht. */
    Eingabe: icon_list
    Ausgabe: keine
    Nebeneffekte: Icons werden zum Löschen markiert
    Datenspeicher: keine
  • Figure 01400001
  • recursive_expunge
  • /* Annulliert Dateiobjekte und Icons, die zum Löschen markiert wurden, indem das Dateiobjekt aus dem Dateisystem des unterlegten Betriebssystems gelöscht wird und die Icons und alle Bezüge darauf in der Schnittstelle gelöscht werden. Die einzige Ausnahme hierzu sind Icons, die in der Schnittstelle Querverbindungen sind und die die unterlegte Struktur des Dateisystems nicht wiedergeben. Diese Icons werden gelöscht, aber die Dateiobjekte, auf die sie sich beziehen, werden nicht gelöscht.
  • Dateiobjekte werden nur gelöscht, wenn sie Vorgänger im hierarchischen Dateisystem des Betriebssystems sind. Dateien, auf die von nicht-hierarchischen Querverbindungen zugegriffen werden kann, die von der bildhaften Benutzerschnittstelle aufrechterhalten werden, werden nicht gelöscht, jedoch werden die Icon-Querverbindungen von gelöschten Verzeichnissen gelöscht. */
    Eingabe: icon_list
    Ausgabe: keine
    Nebeneffekte: Dateiobjekte werden aus dem Dateisystem des Betriebssys
    tems gelöscht
    Icons und Bezüge werden von der Schnittstelle entfernt
    Datenspeicher: keine
  • Figure 01410001
  • expunge_directory
  • /* Annulliert ein Verzeichnis-Dateiobjekt durch Entfernen des Dateiobjekts und aller Bezüge darauf in der Schnittstelle. Es wird angenommen, dass bereits alle Nachkommen des Verzeichnisse annulliert wurden. Ist das Icon eine Querverbindung, die Bezug hat zu einem Verzeichnis in einem anderen Teil des Dateisystems, werden das Icon und alle Bezüge darauf gelöscht, aber das Verzeichnis selbst wird nicht gelöscht */
    Eingabe: Icon /* es wird angenommen, dass es Bezug hat zu einem
    Verzeichnis-Dateiobjekt */
    Ausgabe: keine
    Nebeneffekte: Verzeichnis-Dateiobjekt wird aus Dateisystem des
    Betriebssystems gelöscht
    Icon und Bezüge werden aus der Schnittstelle entfernt
    Datenspeicher: keine
  • Figure 01420001
  • expunge_file
  • /* Annulliert eine Datei durch Entfernen und Entfernen aller Bezüge auf sie in der Schnittstelle. Ist das Icon eine Querverbindung, die Bezug hat zu einer Datei in einem anderen Teil des Dateisystems, werden das Icon und alle Bezüge darauf gelöscht, jedoch wird das Verzeichnis selbst nicht gelöscht. */
    Eingabe: Icon
    Ausgabe: keine
    Nebeneffekte: Dateiobjekt, auf das das Icon Bezug hat, wird aus dem
    Dateisystem des Betriebssystems gelöscht
    Icon und Bezüge darauf werden aus der Schnittstelle entfernt
    Datenspeicher: keine
  • Figure 01430001

Claims (10)

  1. Bildhafte Schnittstelle zum Zugriff auf Informationen in einem elektronischen Dateisystem, das über eine Bildschirmanzeige und eine Eingabeeinrichtung verfügt, wobei die Schnittstelle folgendes enthält: a) mindestens eine bildhafte Darstellung, die auf der Bildschirmanzeige dargestellt werden kann; b) benutzerbedienbare Mittel zum Zuordnen der mindestens einen bildhaften Darstellung zu einer ersten Gruppe von Dateien; c) benutzerbedienbare Mittel zum Definieren einer Vielzahl von Unterdarstellungen als Teile der mindestens einen bildhaften Darstellung, wobei die Mittel zum Definieren einen Benutzer befähigen, im wesentlichen jeden Teil der mindestens einen bildhaften Darstellung zu selektieren und als Unterdarstellung zu bezeichnen; und d) benutzerbedienbare Mittel zum Zuordnen jeder der Vielzahl von Dateien in der ersten Gruppe von Dateien zu individuellen Unterdarstellungen der Vielzahl von Unterdarstellungen.
  2. Bildhafte Schnittstelle nach Anspruch 1, weiter gekennzeichnet durch e) eine animierte Figurendarstellung, die auf der Bildschirmanzeige darstellbar ist, wobei die animierte Figurendarstellung die bildhafte Darstellung überlagert und befähigt ist, eine Vielzahl von animierten Abläufen vorzunehmen; f) Mittel zum Bewegen der animierten Figurendarstellung gegenüber der bildhaften Darstellung als Rückmeldung auf die Benutzereingabe; g) Mittel zum Zuordnen der Vielzahl von animierten Abläufen zu einer Vielzahl von Dateisystembefehlen; und h) Mittel zum Anzeigen jedes der animierten Abläufe und zum Ausführen eines dem Dateisystem zugeordneten Befehls als Rückantwort auf die Benutzereingabe.
  3. Bildhafte Schnittstelle nach Anspruch 2, weiter gekennzeichnet durch i) Mittel zum Rollen der mindestens einen bildhaften Darstellung in Erwiderung auf die Bewegung der animierten Figurendarstellung.
  4. Bildhafte Schnittstelle nach Anspruch 1, weiter gekennzeichnet durch e) Mittel zum Animieren zumindest einiger der Vielzahl von Unterdarstellungen.
  5. Bildhafte Schnittstelle nach Anspruch 2, weiter gekennzeichnet durch i) Mittel zum Erzeugen einer Übergangsanimation der animierten Figurendarstellung, wobei die Übergangsanimation mit einem letzten Rahmen eines aus der Vielzahl von animierten Vorgängen anfängt und mit einem ersten Rahmen eines anderen aus der Vielzahl von animierten Vorgängen endet.
  6. Bildhafte Schnittstelle nach Anspruch 1, dadurch gekennzeichnet, dass die Mittel zum Zuordnen mindestens einiger der Dateien in der ersten Gruppe von Dateien mit individuellen Unterdarstellungen der Vielzahl von Unterdarstellungen Cursor-Mittel enthalten, die auf eine Benutzereingabe reagieren, um die Ecken eines Rechtecks zu definieren, das die der Datei zuzuordnende Unterdarstellung abgrenzt.
  7. Bildhafte Schnittstelle nach Anspruch 6, dadurch gekennzeichnet, dass die Mittel zum Zuordnen mindestens einiger der Dateien in der ersten Gruppe von Dateien mit individuellen Unterdarstellungen der Vielzahl von Unterdarstellungen Mittel zum Maskieren von Teilen des Rechtecks, das die Unterdarstellung umgrenzt, um ein nicht-rechteckförmiges Icon zu erzeugen.
  8. Bildhafte Schnittstelle nach Anspruch 2, dadurch gekennzeichnet, dass die individuellen Unterdarstellungen in Bezug auf die bildhafte Darstellung mit der animierten Figurendarstellung als Antwort auf die Eingabe des Benutzers bewegbar sind.
  9. Bildhafte Schnittstelle nach Anspruch 1, weiter gekennzeichnet durch e) Mittel zum Zuordnen mindestens einer der Unterdarstellungen der Vielzahl von Unterdarstellungen zu einer zweiten Gruppe von Dateien.
  10. Bildhafte Schnittstelle nach Anspruch 1, dadurch gekennzeichnet, dass a1) benutzerbedienbare Mittel zum Erzeugen einer Gruppe von neuen Dateien vorgesehen sind, die erste Gruppe von Dateien die Gruppe von neuen Dateien ist und die Vielzahl von Unterdarstellungen gegenüber der mindestens einen bildhaften Darstellung definiert ist.
DE69535524T 1994-09-30 1995-09-29 Anwenderdefinierbare graphische schnittstelle für informationszugriff in einem elektronischen dateisystem Expired - Lifetime DE69535524T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/316,518 US5715416A (en) 1994-09-30 1994-09-30 User definable pictorial interface for a accessing information in an electronic file system
US316518 1994-09-30
PCT/US1995/013120 WO1996010782A1 (en) 1994-09-30 1995-09-29 User definable pictorial interface for accessing information in an electronic file system

Publications (2)

Publication Number Publication Date
DE69535524D1 DE69535524D1 (de) 2007-08-09
DE69535524T2 true DE69535524T2 (de) 2008-03-20

Family

ID=23229387

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69535524T Expired - Lifetime DE69535524T2 (de) 1994-09-30 1995-09-29 Anwenderdefinierbare graphische schnittstelle für informationszugriff in einem elektronischen dateisystem

Country Status (8)

Country Link
US (3) US5715416A (de)
EP (1) EP0793824B1 (de)
JP (1) JPH10507020A (de)
AU (1) AU3764595A (de)
CA (1) CA2202880C (de)
DE (1) DE69535524T2 (de)
DK (1) DK0793824T3 (de)
WO (1) WO1996010782A1 (de)

Families Citing this family (259)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5715416A (en) * 1994-09-30 1998-02-03 Baker; Michelle User definable pictorial interface for a accessing information in an electronic file system
US7188352B2 (en) * 1995-07-11 2007-03-06 Touchtunes Music Corporation Intelligent digital audiovisual playback system
US7424731B1 (en) * 1994-10-12 2008-09-09 Touchtunes Music Corporation Home digital audiovisual information recording and playback system
EP0786121B1 (de) 1994-10-12 2000-01-12 Touchtunes Music Corporation Intelligentes system zur numerischen audio-visuellen reproduktion
US8661477B2 (en) * 1994-10-12 2014-02-25 Touchtunes Music Corporation System for distributing and selecting audio and video information and method implemented by said system
US6112201A (en) * 1995-08-29 2000-08-29 Oracle Corporation Virtual bookshelf
US5889518A (en) * 1995-10-10 1999-03-30 Anysoft Ltd. Apparatus for and method of acquiring, processing and routing data contained in a GUI window
US6222542B1 (en) 1995-10-10 2001-04-24 Anysoft, Ltd Apparatus for and method of acquiring, processing and routing data contained in a GUI window
US5831617A (en) * 1995-11-27 1998-11-03 Bhukhanwala; Saumil A. Browsing and manipulating objects using movie like icons
FR2753868A1 (fr) * 1996-09-25 1998-03-27 Technical Maintenance Corp Procede de selection d'un enregistrement sur un systeme numerique de reproduction audiovisuel et systeme pour mise en oeuvre du procede
US6710788B1 (en) * 1996-12-03 2004-03-23 Texas Instruments Incorporated Graphical user interface
TW401548B (en) * 1996-12-20 2000-08-11 Sony Corp Method and apparatus for sending E-mail, method and apparatus for receiving E-mail, sending program supplying medium, receiving program supplying medium
TW359054B (en) 1996-12-20 1999-05-21 Sony Corp Method and apparatus for automatic sending of e-mail and automatic sending control program supplying medium
EP0924624A4 (de) * 1997-02-19 2005-07-13 Digipark Inc Virtueller rauminformationsprozessor
US6354947B1 (en) * 1997-03-12 2002-03-12 U.S. Philips Corporation Multimedia method and system for interaction between a screen-based host and various distributed and free-styled information containing items, and an information containing item for use with such system
JPH114367A (ja) 1997-04-16 1999-01-06 Seiko Epson Corp 高速画像選択方法および高速画像選択機能付デジタルカメラ
US5983190A (en) * 1997-05-19 1999-11-09 Microsoft Corporation Client server animation system for managing interactive user interface characters
FR2765983B1 (fr) * 1997-07-11 2004-12-03 France Telecom Signal de donnees de modification d'une scene graphique, procede et dispositif correspondants
FR2769165B1 (fr) 1997-09-26 2002-11-29 Technical Maintenance Corp Systeme sans fil a transmission numerique pour haut-parleurs
US6075537A (en) * 1997-11-20 2000-06-13 International Business Machines Corporation Ease of use interface to hotspots in hypertext document pages in network display stations
US6091395A (en) * 1997-12-15 2000-07-18 International Business Machines Corporation Computer system and method of manipulating a graphical user interface component on a computer display through collision with a pointer
JPH11212934A (ja) * 1998-01-23 1999-08-06 Sony Corp 情報処理装置および方法、並びに提供媒体
US6308187B1 (en) 1998-02-09 2001-10-23 International Business Machines Corporation Computer system and method for abstracting and accessing a chronologically-arranged collection of information
US6304259B1 (en) * 1998-02-09 2001-10-16 International Business Machines Corporation Computer system, method and user interface components for abstracting and accessing a body of knowledge
US6275227B1 (en) 1998-02-09 2001-08-14 International Business Machines Corporation Computer system and method for controlling the same utilizing a user interface control integrated with multiple sets of instructional material therefor
US6874123B1 (en) * 1998-02-09 2005-03-29 International Business Machines Corporation Three-dimensional model to facilitate user comprehension and management of information
WO1999044117A1 (fr) * 1998-02-25 1999-09-02 Sharp Kabushiki Kaisha Dispositif d'affichage
US6307552B1 (en) 1998-03-16 2001-10-23 International Business Machines Corporation Computer system and method for controlling the same utilizing an abstraction stack with a sequence of predetermined display formats
US6369819B1 (en) * 1998-04-17 2002-04-09 Xerox Corporation Methods for visualizing transformations among related series of graphs
US6792616B1 (en) * 1998-05-01 2004-09-14 Scientific-Atlanta, Inc. System and method for providing a plurality of programming services in a television system
US6154771A (en) * 1998-06-01 2000-11-28 Mediastra, Inc. Real-time receipt, decompression and play of compressed streaming video/hypervideo; with thumbnail display of past scenes and with replay, hyperlinking and/or recording permissively intiated retrospectively
US7346850B2 (en) 1998-06-12 2008-03-18 Cygnus Systems, Inc. System and method for iconic software environment management
US8527882B2 (en) * 1998-06-12 2013-09-03 Gregory J. Swartz System and method for iconic software environment management
US6593937B2 (en) 1998-06-18 2003-07-15 Sony Corporation Method of and apparatus for handling high bandwidth on-screen-display graphics data over a distributed IEEE 1394 network utilizing an isochronous data transmission format
US6501441B1 (en) 1998-06-18 2002-12-31 Sony Corporation Method of and apparatus for partitioning, scaling and displaying video and/or graphics across several display devices
US6377276B1 (en) * 1998-06-18 2002-04-23 Sony Corporation Bitmap animation of on-screen-display graphics over a distributed network and a clipping region having a visible window
US6496206B1 (en) * 1998-06-29 2002-12-17 Scansoft, Inc. Displaying thumbnail images of document pages in an electronic folder
US6181342B1 (en) 1998-07-06 2001-01-30 International Business Machines Corp. Computer file directory system displaying visual summaries of visual data in desktop computer documents for quickly identifying document content
FR2781582B1 (fr) * 1998-07-21 2001-01-12 Technical Maintenance Corp Systeme de telechargement d'objets ou de fichiers pour mise a jour de logiciels
US8028318B2 (en) * 1999-07-21 2011-09-27 Touchtunes Music Corporation Remote control unit for activating and deactivating means for payment and for displaying payment status
FR2781580B1 (fr) 1998-07-22 2000-09-22 Technical Maintenance Corp Circuit de commande de son pour systeme de reproduction audiovisuelle numerique intelligent
FR2781591B1 (fr) 1998-07-22 2000-09-22 Technical Maintenance Corp Systeme de reproduction audiovisuelle
US6266067B1 (en) * 1998-07-28 2001-07-24 International Business Machines Corporation System and method for dynamically displaying data relationships between static charts
US7209928B2 (en) * 1998-07-29 2007-04-24 Qwest Communications International Inc. Information organization and navigation by user-generated associative overlays
US6792430B1 (en) 1998-07-29 2004-09-14 Qwest Communications International Information organization and navigation by user-generated associative overlays
JP2000200361A (ja) * 1998-08-07 2000-07-18 Sega Enterp Ltd 画像処理装置及び情報記録媒体
US6441927B1 (en) * 1998-08-07 2002-08-27 Hewlett-Packard Company Appliance and method for viewing captured images
US6456307B1 (en) * 1998-09-09 2002-09-24 International Business Machines Corporation Automatic icon generation
US6337698B1 (en) * 1998-11-20 2002-01-08 Microsoft Corporation Pen-based interface for a notepad computer
IL127293A0 (en) * 1998-11-26 1999-09-22 Creator Ltd Script development systems and methods useful therefor
WO2000033571A1 (fr) * 1998-11-30 2000-06-08 Sony Corporation Procede et dispositif de delivrance d'information
US6426748B1 (en) * 1999-01-29 2002-07-30 Hypercosm, Inc. Method and apparatus for data compression for three-dimensional graphics
US8726330B2 (en) * 1999-02-22 2014-05-13 Touchtunes Music Corporation Intelligent digital audiovisual playback system
US6343139B1 (en) * 1999-03-12 2002-01-29 International Business Machines Corporation Fast location of address blocks on gray-scale images
US7065497B1 (en) 1999-06-07 2006-06-20 Hewlett-Packard Development Company, L.P. Document delivery system for automatically printing a document on a printing device
US6817028B1 (en) 1999-06-11 2004-11-09 Scientific-Atlanta, Inc. Reduced screen control system for interactive program guide
US7992163B1 (en) 1999-06-11 2011-08-02 Jerding Dean F Video-on-demand navigational system
US7010801B1 (en) 1999-06-11 2006-03-07 Scientific-Atlanta, Inc. Video on demand system with parameter-controlled bandwidth deallocation
FR2796482B1 (fr) 1999-07-16 2002-09-06 Touchtunes Music Corp Systeme de gestion a distance d'au moins un dispositif de reproduction d'informations audiovisuelles
US6636244B1 (en) * 1999-09-13 2003-10-21 International Business Machines Corporation Pointing device selection method
US8429005B2 (en) 1999-09-23 2013-04-23 Activ8Now, Llc Method for determining effectiveness of display of objects in advertising images
US20040122731A1 (en) * 1999-09-23 2004-06-24 Mannik Peeter Todd System and method for using interactive electronic representations of objects
US6628307B1 (en) * 1999-11-03 2003-09-30 Ronald J. Fair User interface for internet application
CA2384315A1 (en) * 1999-11-11 2001-05-17 United Virtualities, Inc. Computerized advertising method and system
IL132929A (en) * 1999-11-14 2004-09-27 Ycd Multimedia Dynamic user interface
US6864904B1 (en) * 1999-12-06 2005-03-08 Girafa.Com Inc. Framework for providing visual context to www hyperlinks
US20020124255A1 (en) * 1999-12-10 2002-09-05 United Video Properties, Inc. Systems and methods for coordinating interactive and passive advertisement and merchandising opportunities
JP2001197366A (ja) * 2000-01-12 2001-07-19 Hitachi Ltd 画像合成方法及び画像合成プログラムを記録した記録媒体
FR2805377B1 (fr) 2000-02-23 2003-09-12 Touchtunes Music Corp Procede de commande anticipee d'une selection, systeme numerique et juke-box permettant la mise en oeuvre du procede
FR2805072B1 (fr) 2000-02-16 2002-04-05 Touchtunes Music Corp Procede d'ajustement du volume sonore d'un enregistrement sonore numerique
FR2805060B1 (fr) 2000-02-16 2005-04-08 Touchtunes Music Corp Procede de reception de fichiers lors d'un telechargement
US6225906B1 (en) * 2000-03-26 2001-05-01 Bernard Shore Patient monitoring and alarm system
US8626519B1 (en) 2000-03-30 2014-01-07 Inventor Holdings, Llc Entertainment layer overlaid on online transactions
US8516525B1 (en) 2000-06-09 2013-08-20 Dean F. Jerding Integrated searching system for interactive media guide
US7975277B1 (en) 2000-04-03 2011-07-05 Jerding Dean F System for providing alternative services
US7200857B1 (en) 2000-06-09 2007-04-03 Scientific-Atlanta, Inc. Synchronized video-on-demand supplemental commentary
US6600502B1 (en) 2000-04-14 2003-07-29 Innovative Technology Application, Inc. Immersive interface interactive multimedia software method and apparatus for networked computers
US6697089B1 (en) 2000-04-18 2004-02-24 Hewlett-Packard Development Company, L.P. User selectable application grammar and semantics
US7934232B1 (en) 2000-05-04 2011-04-26 Jerding Dean F Navigation paradigm for access to television services
US6738982B1 (en) 2000-05-04 2004-05-18 Scientific-Atlanta, Inc. Method and system for uniform resource identification and access to television services
FR2808906B1 (fr) 2000-05-10 2005-02-11 Touchtunes Music Corp Dispositif et procede de gestion a distance d'un reseau de systemes de reproduction d'informations audiovisuelles
US8086697B2 (en) 2005-06-28 2011-12-27 Claria Innovations, Llc Techniques for displaying impressions in documents delivered over a computer network
US7475404B2 (en) 2000-05-18 2009-01-06 Maquis Techtrix Llc System and method for implementing click-through for browser executed software including ad proxy and proxy cookie caching
JP3539553B2 (ja) * 2000-05-30 2004-07-07 シャープ株式会社 アニメーション作成方法及びアニメーション作成装置並びにアニメーション作成プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2001343967A (ja) * 2000-05-31 2001-12-14 Konami Co Ltd 表示制御方法、ゲーム機、記録媒体
US8069259B2 (en) 2000-06-09 2011-11-29 Rodriguez Arturo A Managing removal of media titles from a list
FR2811175B1 (fr) 2000-06-29 2002-12-27 Touchtunes Music Corp Procede de distribution d'informations audiovisuelles et systeme de distribution d'informations audiovisuelles
US7962370B2 (en) 2000-06-29 2011-06-14 Rodriguez Arturo A Methods in a media service system for transaction processing
FR2811114B1 (fr) 2000-06-29 2002-12-27 Touchtunes Music Corp Dispositif et procede de communication entre un systeme de reproduction d'informations audiovisuelles et d'une machine electronique de divertissement
US6522332B1 (en) * 2000-07-26 2003-02-18 Kaydara, Inc. Generating action data for the animation of characters
JP4785283B2 (ja) * 2000-07-31 2011-10-05 キヤノン株式会社 サーバコンピュータ、制御方法及びプログラム
JP2002082749A (ja) * 2000-09-07 2002-03-22 Sony Corp 情報処理装置及びアプリケーションソフトウェア実行方法、並びに記録媒体
FR2814085B1 (fr) 2000-09-15 2005-02-11 Touchtunes Music Corp Procede de divertissement base sur les jeux concours a choix multiples
US7340759B1 (en) 2000-11-10 2008-03-04 Scientific-Atlanta, Inc. Systems and methods for adaptive pricing in a digital broadband delivery system
US6561342B2 (en) * 2000-11-29 2003-05-13 Charles Lepage Granular material conveyor
AU2002231289A1 (en) * 2000-12-19 2002-07-01 Coolernet, Inc. System and method for multimedia authoring and playback
US20060129933A1 (en) * 2000-12-19 2006-06-15 Sparkpoint Software, Inc. System and method for multimedia authoring and playback
US20020082077A1 (en) * 2000-12-26 2002-06-27 Johnson Douglas R. Interactive video game system with characters that evolve physical and cognitive traits
US20020082065A1 (en) * 2000-12-26 2002-06-27 Fogel David B. Video game characters having evolving traits
JP2006024226A (ja) * 2001-02-22 2006-01-26 Sony Corp コンテンツ提供装置、コンテンツ提供方法、コンテンツ提供プログラム、コンテンツ取得装置、コンテンツ取得方法及びコンテンツ取得プログラム
US20020130894A1 (en) * 2001-03-15 2002-09-19 Young Christopher I. Web page character
US20020175945A1 (en) * 2001-03-15 2002-11-28 Hissenhoven Jean Paul Van Method and apparatus for accessing information through a user friendly interface
US7019741B2 (en) 2001-03-23 2006-03-28 General Electric Company Methods and systems for simulating animation of web-based data files
US7372472B1 (en) * 2001-04-09 2008-05-13 Matrox Electronic Systems Ltd. Method and apparatus for graphically defining a video particle explosion effect
US20040044743A1 (en) * 2001-05-11 2004-03-04 Craig Monell Method and apparatus for hyperlinked graphics tool
US7019743B1 (en) * 2001-05-18 2006-03-28 Autodesk, Inc. Performing operations using drag and drop features
TW508541B (en) * 2001-06-13 2002-11-01 Ulead Systems Inc Smooth linking method between demo mode and real-time mode
US7526788B2 (en) 2001-06-29 2009-04-28 Scientific-Atlanta, Inc. Graphic user interface alternate download options for unavailable PRM content
US7512964B2 (en) 2001-06-29 2009-03-31 Cisco Technology System and method for archiving multiple downloaded recordable media content
US8006262B2 (en) 2001-06-29 2011-08-23 Rodriguez Arturo A Graphic user interfaces for purchasable and recordable media (PRM) downloads
US7496945B2 (en) 2001-06-29 2009-02-24 Cisco Technology, Inc. Interactive program guide for bidirectional services
FR2826762B1 (fr) * 2001-06-29 2004-02-06 Thales Sa Procede de synthese d'une image d'intervisibilite
US8171430B1 (en) * 2001-07-24 2012-05-01 Adobe Systems Incorporated System and method for providing an image and image instructions responsive to a mouse cursor position
US7636931B2 (en) * 2001-08-17 2009-12-22 Igt Interactive television devices and systems
JP4382314B2 (ja) * 2001-09-27 2009-12-09 富士フイルム株式会社 画像処理方法および装置並びにプログラム
US20030067466A1 (en) * 2001-10-09 2003-04-10 Eastman Kodak Company Method for using an animated insert which enhances the value of images in infoimaging
US7602991B2 (en) * 2001-10-24 2009-10-13 Nik Software, Inc. User definable image reference regions
CN100389428C (zh) * 2001-10-24 2008-05-21 Nik软件公司 用于利用图像基准点处理数字图像的方法和设备
US7334251B2 (en) 2002-02-11 2008-02-19 Scientific-Atlanta, Inc. Management of television advertising
AUPS058602A0 (en) * 2002-02-15 2002-03-14 Canon Kabushiki Kaisha Representing a plurality of independent data items
IL148592A0 (en) * 2002-03-10 2002-09-12 Ycd Multimedia Ltd Dynamic normalizing
US7034833B2 (en) * 2002-05-29 2006-04-25 Intel Corporation Animated photographs
US7159186B2 (en) * 2002-05-31 2007-01-02 Nokia Corporation User interface for transferring data with a communications terminal
US20040001107A1 (en) * 2002-06-27 2004-01-01 Russon Virgil Kay Image management system and method
FR2842694B1 (fr) * 2002-07-22 2005-02-11 France Telecom Dispositif de communication mobile
US7822687B2 (en) 2002-09-16 2010-10-26 Francois Brillon Jukebox with customizable avatar
US8332895B2 (en) 2002-09-16 2012-12-11 Touchtunes Music Corporation Digital downloading jukebox system with user-tailored music management, communications, and other tools
US10373420B2 (en) 2002-09-16 2019-08-06 Touchtunes Music Corporation Digital downloading jukebox with enhanced communication features
US11029823B2 (en) 2002-09-16 2021-06-08 Touchtunes Music Corporation Jukebox with customizable avatar
US8103589B2 (en) 2002-09-16 2012-01-24 Touchtunes Music Corporation Digital downloading jukebox system with central and local music servers
US8151304B2 (en) * 2002-09-16 2012-04-03 Touchtunes Music Corporation Digital downloading jukebox system with user-tailored music management, communications, and other tools
US9646339B2 (en) * 2002-09-16 2017-05-09 Touchtunes Music Corporation Digital downloading jukebox system with central and local music servers
US8584175B2 (en) 2002-09-16 2013-11-12 Touchtunes Music Corporation Digital downloading jukebox system with user-tailored music management, communications, and other tools
US7603341B2 (en) 2002-11-05 2009-10-13 Claria Corporation Updating the content of a presentation vehicle in a computer network
US7194701B2 (en) * 2002-11-19 2007-03-20 Hewlett-Packard Development Company, L.P. Video thumbnail
US7142192B2 (en) * 2002-12-12 2006-11-28 Nvidia Corporation Cursor locator for multi-monitor systems
US7231611B2 (en) * 2002-12-18 2007-06-12 International Business Machines Corporation Apparatus and method for dynamically building a context sensitive composite icon
US20040135821A1 (en) * 2003-01-10 2004-07-15 Mazzeo Joseph M. Activity record maintenance and display tool
US6899188B2 (en) * 2003-03-26 2005-05-31 Sunstone Corporation Down hole drilling assembly with concentric casing actuated jet pump
US20050088415A1 (en) * 2003-10-27 2005-04-28 To Wai S. Character input method and character input device
US7593015B2 (en) * 2003-11-14 2009-09-22 Kyocera Wireless Corp. System and method for sequencing media objects
US8161388B2 (en) 2004-01-21 2012-04-17 Rodriguez Arturo A Interactive discovery of display device characteristics
US7724258B2 (en) * 2004-06-30 2010-05-25 Purdue Research Foundation Computer modeling and animation of natural phenomena
KR101049129B1 (ko) * 2004-07-30 2011-07-15 엘지전자 주식회사 케이블 방송 수신기 및 그의 상태 정보 처리 방법
US8078602B2 (en) 2004-12-17 2011-12-13 Claria Innovations, Llc Search engine for a computer network
US8255413B2 (en) 2004-08-19 2012-08-28 Carhamm Ltd., Llc Method and apparatus for responding to request for information-personalization
JP2006164011A (ja) * 2004-12-09 2006-06-22 Pioneer Electronic Corp 操作指示装置、電子機器、操作指示方法、および操作指示プログラム
US7693863B2 (en) 2004-12-20 2010-04-06 Claria Corporation Method and device for publishing cross-network user behavioral data
US20060150104A1 (en) * 2004-12-31 2006-07-06 Luigi Lira Display of user selected digital artworks as embellishments of a graphical user interface
US20070276372A1 (en) * 2005-02-17 2007-11-29 Malandain Hugues F Percutaneous Spinal Implants and Methods
US8136038B2 (en) * 2005-03-04 2012-03-13 Nokia Corporation Offering menu items to a user
US8073866B2 (en) 2005-03-17 2011-12-06 Claria Innovations, Llc Method for providing content to an internet user based on the user's demonstrated content preferences
FR2883996B1 (fr) * 2005-03-29 2008-05-30 Streamezzo Sa Procede de construction de scenes multimedia comprenant au moins un objet pointeur, procede de restitution de scenes, terminal, programmes d'ordinateur, serveur et objet pointeur correspondants
US7761801B2 (en) * 2005-04-26 2010-07-20 Lg Electronics Inc. Mobile terminal providing graphic user interface and method of providing graphic user interface using the same
KR100672478B1 (ko) * 2005-04-26 2007-01-24 엘지전자 주식회사 이동통신 단말기와 메뉴 동작 제어 방법
JP4574438B2 (ja) * 2005-05-20 2010-11-04 シャープ株式会社 データ処理設定装置、データ処理設定方法、データ処理設定プログラムおよび該プログラムを記録したコンピュータ読み取り可能な記録媒体
JP4312738B2 (ja) * 2005-05-20 2009-08-12 シャープ株式会社 データ処理設定装置、データ処理設定方法、データ処理設定プログラムおよび該プログラムを記録したコンピュータ読み取り可能な記録媒体
US7784036B2 (en) * 2005-06-08 2010-08-24 Cisco Technology, Inc. Methods and systems for transforming a parse graph into an and/or command tree
US7698694B2 (en) * 2005-06-08 2010-04-13 Cisco Technology, Inc. Methods and systems for transforming an AND/OR command tree into a command data model
US7779398B2 (en) * 2005-06-08 2010-08-17 Cisco Technology, Inc. Methods and systems for extracting information from computer code
JP2007019769A (ja) * 2005-07-06 2007-01-25 Sony Corp タグ情報表示制御装置、情報処理装置、表示装置、タグ情報表示制御方法及びプログラム
US7953886B2 (en) * 2005-07-08 2011-05-31 Cisco Technology, Inc. Method and system of receiving and translating CLI command data within a routing system
US7908594B2 (en) * 2005-07-29 2011-03-15 Cisco Technology, Inc. External programmatic interface for IOS CLI compliant routers
US7636093B1 (en) * 2005-07-29 2009-12-22 Adobe Systems Incorporated Parameterized motion paths
US20070027929A1 (en) * 2005-08-01 2007-02-01 Whelan Gary J System, method, and/or computer program product for a file system interface
US20070035668A1 (en) * 2005-08-11 2007-02-15 Sony Corporation Method of routing an audio/video signal from a television's internal tuner to a remote device
US8189472B2 (en) 2005-09-07 2012-05-29 Mcdonald James F Optimizing bandwidth utilization to a subscriber premises
KR100725776B1 (ko) * 2005-10-08 2007-06-08 삼성전자주식회사 이동통신 단말기에서 그래픽객체 인식을 이용한 메뉴구성및 실행방법
US7620914B2 (en) * 2005-10-14 2009-11-17 Microsoft Corporation Clickable video hyperlink
US8625754B1 (en) * 2005-10-24 2014-01-07 AT&T Intellectual Property II, L.P. via a transfer from AT&T Corp. Method and apparatus for providing information associated with embedded hyperlinked images
JP5230901B2 (ja) * 2005-11-14 2013-07-10 株式会社ハル研究所 ゲームプログラム、ゲーム装置、ゲーム制御方法およびゲームシステム
US7451407B2 (en) * 2005-11-30 2008-11-11 Microsoft Corporation Presentation of groups of items
US20070136095A1 (en) * 2005-12-09 2007-06-14 Arizona Board Of Regents On Behalf Of The University Of Arizona Icon Queues for Workflow Management
US7712018B2 (en) * 2005-12-12 2010-05-04 Microsoft Corporation Selecting and formatting warped text
WO2007103312A2 (en) * 2006-03-07 2007-09-13 Goma Systems Corp. User interface for controlling virtual characters
US20070238079A1 (en) * 2006-04-06 2007-10-11 Big Brainz, Inc. Strategic enforcement of long-term memory
US20080082559A1 (en) * 2006-09-28 2008-04-03 Gm Global Technology Operations, Inc. Method of linking information to an electronically enabled manufactured part archive
US20080141110A1 (en) * 2006-12-07 2008-06-12 Picscout (Israel) Ltd. Hot-linked images and methods and an apparatus for adapting existing images for the same
US9330529B2 (en) * 2007-01-17 2016-05-03 Touchtunes Music Corporation Game terminal configured for interaction with jukebox device systems including same, and/or associated methods
US9171419B2 (en) 2007-01-17 2015-10-27 Touchtunes Music Corporation Coin operated entertainment system
BRPI0807415A2 (pt) * 2007-01-23 2014-05-27 Univ Carnegie Mellon Controlar o acesso a sistemas de computador e anotar arquivos de mídia.
US8296731B2 (en) * 2007-03-05 2012-10-23 Microsoft Corporation Dynamic method selection based on declarative requirements of interaction scope
US20080235213A1 (en) * 2007-03-20 2008-09-25 Picscout (Israel) Ltd. Utilization of copyright media in second generation web content
US9953481B2 (en) * 2007-03-26 2018-04-24 Touchtunes Music Corporation Jukebox with associated video server
US8037039B2 (en) * 2007-04-20 2011-10-11 Microsoft Corporation Runtime class database operation
US8031170B2 (en) 2007-05-09 2011-10-04 Research In Motion Limited User interface for selecting a photo tag
TWI337321B (en) * 2007-05-15 2011-02-11 Htc Corp Electronic device with switchable user interface and accessable touch operation
TWI423041B (zh) * 2007-07-09 2014-01-11 Cyberlink Corp 可提升多媒體互動機制之影音播放方法及其相關裝置
JP4696194B2 (ja) * 2007-07-19 2011-06-08 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および記録媒体
US10290006B2 (en) 2008-08-15 2019-05-14 Touchtunes Music Corporation Digital signage and gaming services to comply with federal and state alcohol and beverage laws and regulations
US8332887B2 (en) 2008-01-10 2012-12-11 Touchtunes Music Corporation System and/or methods for distributing advertisements from a central advertisement network to a peripheral device via a local advertisement server
US8677229B2 (en) * 2007-09-28 2014-03-18 Adobe Systems Incorporated Presentation of files packaged within a page description language document
US9158493B2 (en) 2007-09-28 2015-10-13 Adobe Systems Incorporated Page description language package file preview
US20090167685A1 (en) * 2007-10-11 2009-07-02 Leapfrog Enterprises, Inc. Method and system for providing a computer environment for children
KR101513023B1 (ko) * 2008-03-25 2015-04-22 엘지전자 주식회사 단말기 및 이것의 정보 디스플레이 방법
US9053196B2 (en) 2008-05-09 2015-06-09 Commerce Studios Llc, Inc. Methods for interacting with and manipulating information and systems thereof
US8732581B2 (en) 2008-05-20 2014-05-20 Adobe Systems Incorporated Package file presentation
US9946692B2 (en) 2008-05-20 2018-04-17 Adobe Systems Incorporated Package file presentation
US8479087B2 (en) * 2008-05-20 2013-07-02 Adobe Systems Incorporated Authoring package files
US9448976B2 (en) 2008-05-20 2016-09-20 Adobe Systems Incorporated Package file presentation including reference content
US8849435B2 (en) 2008-07-09 2014-09-30 Touchtunes Music Corporation Digital downloading jukebox with revenue-enhancing features
US8074124B2 (en) 2008-08-29 2011-12-06 Xerox Corporation Visualization of user interactions in a system of networked devices
JP5103343B2 (ja) * 2008-09-30 2012-12-19 任天堂株式会社 情報処理プログラムおよび情報処理装置
US8621396B1 (en) * 2008-10-20 2013-12-31 Google Inc. Access using image-based manipulation
US8136167B1 (en) 2008-10-20 2012-03-13 Google Inc. Systems and methods for providing image feedback
US8542251B1 (en) 2008-10-20 2013-09-24 Google Inc. Access using image-based manipulation
US8818959B2 (en) 2008-12-02 2014-08-26 Adobe Systems Incorporated Virtual embedding of files in documents
US8196198B1 (en) 2008-12-29 2012-06-05 Google Inc. Access using images
US9239847B2 (en) * 2009-03-12 2016-01-19 Samsung Electronics Co., Ltd. Method and apparatus for managing image files
US10564804B2 (en) 2009-03-18 2020-02-18 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
US9292166B2 (en) 2009-03-18 2016-03-22 Touchtunes Music Corporation Digital jukebox device with improved karaoke-related user interfaces, and associated methods
US10719149B2 (en) 2009-03-18 2020-07-21 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
CA2754990C (en) 2009-03-18 2015-07-14 Touchtunes Music Corporation Entertainment server and associated social networking services
US8392986B1 (en) 2009-06-17 2013-03-05 Google Inc. Evaluating text-based access strings
US20100325552A1 (en) * 2009-06-19 2010-12-23 Sloo David H Media Asset Navigation Representations
KR101588242B1 (ko) * 2009-07-13 2016-01-25 삼성전자주식회사 휴대 단말기의 스크롤 방법 및 장치
US20110029904A1 (en) * 2009-07-30 2011-02-03 Adam Miles Smith Behavior and Appearance of Touch-Optimized User Interface Elements for Controlling Computer Function
DE102009040913A1 (de) * 2009-09-10 2011-03-17 Siemens Aktiengesellschaft Verfahren und Anzeigemodul zur Bereitstellung eines Benutzerbedienelements innerhalb eines computergestützten Datenorganisations- und Speichersystems
US8812985B2 (en) * 2009-10-30 2014-08-19 Motorola Mobility Llc Method and device for enhancing scrolling operations in a display device
CN105355221A (zh) 2010-01-26 2016-02-24 踏途音乐公司 具有改进的用户界面的数字点播设备和相关方法
US9235452B2 (en) * 2010-02-05 2016-01-12 Microsoft Technology Licensing, Llc Graphics remoting using augmentation data
WO2012008099A1 (ja) * 2010-07-12 2012-01-19 パナソニック株式会社 設計支援装置、設計支援プログラム、設計支援方法、及び集積回路
KR20120013727A (ko) * 2010-08-06 2012-02-15 삼성전자주식회사 디스플레이장치 및 그 제어방법
US8347329B2 (en) 2010-10-14 2013-01-01 Sony Corporation System and method of providing an interactive menu through streaming video
GB2486238A (en) * 2010-12-08 2012-06-13 Wolfson Microelectronics Plc A user interface for controlling a device using an icon
US9122660B2 (en) 2011-03-21 2015-09-01 Adobe Systems Incorporated Presentation overlays to modify presentations of packaged files
US20120272171A1 (en) * 2011-04-21 2012-10-25 Panasonic Corporation Apparatus, Method and Computer-Implemented Program for Editable Categorization
US9552376B2 (en) 2011-06-09 2017-01-24 MemoryWeb, LLC Method and apparatus for managing digital files
US9035967B2 (en) 2011-06-30 2015-05-19 Google Technology Holdings LLC Method and device for enhancing scrolling and other operations on a display
JP6002770B2 (ja) 2011-09-18 2016-10-05 タッチチューンズ ミュージック コーポレーション カラオケおよび/またはプリクラ機能を備えたデジタルジュークボックス装置および関連手法
US20130091428A1 (en) * 2011-10-07 2013-04-11 Research In Motion Limited User interface apparatus, and associated method, for media playback device
US9462340B1 (en) * 2011-10-13 2016-10-04 Trevor Mathurin Voice/manual activated and integrated audio/video multi-media, multi-interface system
US11151224B2 (en) 2012-01-09 2021-10-19 Touchtunes Music Corporation Systems and/or methods for monitoring audio inputs to jukebox devices
KR20130142310A (ko) * 2012-06-19 2013-12-30 삼성전자주식회사 전자장치에서 이미지 변경 방법 및 장치
JP5844707B2 (ja) * 2012-09-28 2016-01-20 富士フイルム株式会社 画像表示制御装置、画像表示装置、プログラム及び画像表示方法
TWI569156B (zh) 2012-10-09 2017-02-01 萬國商業機器公司 提供電子裝置之使用者介面的方法及其電子裝置
US9377940B2 (en) * 2013-02-28 2016-06-28 Facebook, Inc. Predictive pre-decoding of encoded media item
US20140259043A1 (en) * 2013-03-11 2014-09-11 General Instrument Corporation Gathering and using information regarding viewers' familiarity with media-content items
KR102187867B1 (ko) * 2013-07-09 2020-12-07 삼성전자 주식회사 휴대단말기의 정보 처리 장치 및 방법
US10373363B2 (en) * 2013-07-24 2019-08-06 Adobe Inc. Systems and methods for visually creating and editing scrolling actions
CN103399688B (zh) * 2013-07-26 2017-03-01 三星电子(中国)研发中心 一种动态壁纸和桌面图标的交互方法和装置
US9921717B2 (en) 2013-11-07 2018-03-20 Touchtunes Music Corporation Techniques for generating electronic menu graphical user interface layouts for use in connection with electronic devices
KR102303730B1 (ko) 2014-03-25 2021-09-17 터치튠즈 뮤직 코포레이션 향상된 사용자 인터페이스를 가지는 디지털 주크박스 장치 및 관련 방법.
US9288521B2 (en) 2014-05-28 2016-03-15 Rovi Guides, Inc. Systems and methods for updating media asset data based on pause point in the media asset
JP6435659B2 (ja) * 2014-06-25 2018-12-12 カシオ計算機株式会社 画像処理装置、アニメーション生成方法及びプログラム
CN106489110B (zh) 2014-07-04 2021-06-01 汪清·昆顿 用于非分层文件系统的图形化用户界面控制方法
USD809116S1 (en) 2015-11-02 2018-01-30 Pura Scents Dispenser
USD816506S1 (en) 2015-11-02 2018-05-01 Pura Scents, Inc. Vial for a scent dispenser
CA3133710C (en) 2015-11-02 2023-10-24 Pura Scents, Inc. Scent dispensation
KR102450840B1 (ko) * 2015-11-19 2022-10-05 엘지전자 주식회사 전자 기기 및 전자 기기의 제어 방법
US10824320B2 (en) * 2016-03-07 2020-11-03 Facebook, Inc. Systems and methods for presenting content
KR102408267B1 (ko) * 2016-10-21 2022-06-14 소니그룹주식회사 수신 장치, 송신 장치 및 데이터 처리 방법
US11249945B2 (en) 2017-12-14 2022-02-15 International Business Machines Corporation Cognitive data descriptors
US10743068B2 (en) * 2018-09-17 2020-08-11 International Business Machines Corporation Real time digital media capture and presentation
US10897637B1 (en) 2018-09-20 2021-01-19 Amazon Technologies, Inc. Synchronize and present multiple live content streams
US10863230B1 (en) * 2018-09-21 2020-12-08 Amazon Technologies, Inc. Content stream overlay positioning
US11141656B1 (en) * 2019-03-29 2021-10-12 Amazon Technologies, Inc. Interface with video playback
KR20210051319A (ko) * 2019-10-30 2021-05-10 엘지전자 주식회사 인공 지능 장치
GB2597334A (en) * 2020-07-17 2022-01-26 Playrcart Ltd A media player

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5995645A (ja) * 1982-11-24 1984-06-01 Toshiba Corp 情報整理装置
US5394521A (en) * 1991-12-09 1995-02-28 Xerox Corporation User interface with multiple workspaces for sharing display system objects
US5021976A (en) * 1988-11-14 1991-06-04 Microelectronics And Computer Technology Corporation Method and system for generating dynamic, interactive visual representations of information structures within a computer
US5241671C1 (en) * 1989-10-26 2002-07-02 Encyclopaedia Britannica Educa Multimedia search system using a plurality of entry path means which indicate interrelatedness of information
US5347628A (en) * 1990-01-18 1994-09-13 International Business Machines Corporation Method of graphically accessing electronic data
DE69122632T2 (de) * 1990-01-21 1997-03-13 Sony Corp Aufzeichnungs- und Wiedergabegerät
GB2241629A (en) * 1990-02-27 1991-09-04 Apple Computer Content-based depictions of computer icons
US5349658A (en) * 1991-11-01 1994-09-20 Rourke Thomas C O Graphical user interface
GB2266823A (en) * 1992-04-21 1993-11-10 Ibm Correlation of cursor position in a computer system
US5524195A (en) * 1993-05-24 1996-06-04 Sun Microsystems, Inc. Graphical user interface for interactive television with an animated agent
AU1258195A (en) * 1993-11-17 1995-06-06 Collegeview Method and apparatus for displaying three-dimensional animated characters upon a computer monitor's screen
US5682469A (en) * 1994-07-08 1997-10-28 Microsoft Corporation Software platform having a real world interface with animated characters
US5715416A (en) * 1994-09-30 1998-02-03 Baker; Michelle User definable pictorial interface for a accessing information in an electronic file system

Also Published As

Publication number Publication date
US6002401A (en) 1999-12-14
DE69535524D1 (de) 2007-08-09
AU3764595A (en) 1996-04-26
US6278455B1 (en) 2001-08-21
CA2202880C (en) 2009-03-10
US5715416A (en) 1998-02-03
EP0793824B1 (de) 2007-06-27
JPH10507020A (ja) 1998-07-07
CA2202880A1 (en) 1996-04-11
WO1996010782A1 (en) 1996-04-11
EP0793824A4 (de) 1997-12-29
DK0793824T3 (da) 2007-10-22
EP0793824A1 (de) 1997-09-10

Similar Documents

Publication Publication Date Title
DE69535524T2 (de) Anwenderdefinierbare graphische schnittstelle für informationszugriff in einem elektronischen dateisystem
US8539379B2 (en) System and method for generating presentations
EP0695448B1 (de) Interaktive anwenderschnittstelle
DE69732547T2 (de) Verfahren und Gerät zum Zusammenklappen und zur Ausdehnung auserwählter Bereiche von Arbeitsräumen auf einem von einem Rechner kontrollierten Anzeigesystem
Maloney et al. Directness and liveness in the morphic user interface construction environment
US6252594B1 (en) Method and system for aiding a user in scrolling through a document using animation, voice cues and a dockable scroll bar
US6874128B1 (en) Mouse driven splitter window
US7576756B1 (en) System and method for interaction of graphical objects on a computer controlled system
JP3411305B2 (ja) マルチメディアオーサリングシステム及びプレゼンテーションシステムのための方法及び装置
US7068288B1 (en) System and method for moving graphical objects on a computer controlled system
JPH08505252A (ja) オブジェクト指向アプリケーション・インターフェイス
JPH08505720A (ja) コマンド・システム
JPH08505721A (ja) オブジェクト指向フレームワーク・システム
JPH08505970A (ja) 国際データ処理システム
JPH08505719A (ja) メニュー・ステート・システム
JPH08504980A (ja) アトミック・コマンド・システム
Kurlander et al. A visual language for browsing, undoing, and redoing graphical interface commands
Walczak et al. Dynamic creation of interactive mixed reality presentations
Towers Dreamweaver 4 for Windows and Macintosh
Persidsky Director 8 for Macintosh and Windows
Rosenzweig Special Edition Using Director 8.5
Giacalone XY-WINS: an integraded environment for developing graphical user interfaces
CN117724639A (zh) 网页中图像的处理方法、装置、存储介质和电子装置
Rosenberg Hypertext in the open air: A systemless approach to spatial hypertext
Cameron et al. VIB: a visual interface builder for Icon

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
R082 Change of representative

Ref document number: 793824

Country of ref document: EP

Representative=s name: DUSCHER, REINHARD, DIPL.-PHYS. DR. RER. NAT., DE

R081 Change of applicant/patentee

Ref document number: 793824

Country of ref document: EP

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, US

Free format text: FORMER OWNER: BAKER, MICHELLE, NEW YORK, US

Effective date: 20121121

R082 Change of representative

Ref document number: 793824

Country of ref document: EP

Representative=s name: DUSCHER, REINHARD, DIPL.-PHYS. DR. RER. NAT., DE

Effective date: 20121121

R084 Declaration of willingness to licence

Ref document number: 793824

Country of ref document: EP

Effective date: 20121129