DE69526498T2 - Aspekt- und formelemente einer verbesserten graphischen benutzerschnittstelle - Google Patents

Aspekt- und formelemente einer verbesserten graphischen benutzerschnittstelle

Info

Publication number
DE69526498T2
DE69526498T2 DE69526498T DE69526498T DE69526498T2 DE 69526498 T2 DE69526498 T2 DE 69526498T2 DE 69526498 T DE69526498 T DE 69526498T DE 69526498 T DE69526498 T DE 69526498T DE 69526498 T2 DE69526498 T2 DE 69526498T2
Authority
DE
Germany
Prior art keywords
field
user
objects
window
style
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
DE69526498T
Other languages
English (en)
Other versions
DE69526498D1 (de
Inventor
W. Clair
A. Jones
L. Mayle
K. Parsons
L. Shalit
W. Steele
H. Strassmann
R. White
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.)
Apple Inc
Original Assignee
Apple Computer Inc
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
Application filed by Apple Computer Inc filed Critical Apple Computer Inc
Application granted granted Critical
Publication of DE69526498D1 publication Critical patent/DE69526498D1/de
Publication of DE69526498T2 publication Critical patent/DE69526498T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Digital Computer Display Output (AREA)

Description

  • Diese Erfindung ist mit dem Gegenstand der US-A-5,644,334 mit dem Titel STATUS INDICATORS OF AN IMPROVED GRAPHICAL USER INTERFACE verwandt, die dem Inhaber der vorliegenden Erfindung übertragen wurde. Die Erfindung ist auch mit dem Gegenstand der US-A-5,714,971 mit dem Titel SPLIT BAR AND INPUT/OUTPUT WINDOW CONTROL ICONS FOR INTERACTIVE USER INTERFACE verwandt, die dem Inhaber der vorliegenden Erfindung übertragen wurde.
  • GEBIET DER ERFINDUNG
  • Diese Erfindung betrifft interaktive graphische Benutzerschnittstellen für Computersysteme und, genauer, Benutzerschnittstellenelemente zum Steuern der Art von Information, die zu Objekten gehört, die auf einem Computerbildschirm dargestellt werden.
  • HINTERGRUND DER ERFINDUNG
  • Graphische Benutzerschnittstellen basieren typischerweise auf graphischer Bitmap-Darstellungstechnik, die iconische (bildliche) Darstellungen, typographik-artigen Text mit Mehrfach-Schrifttypen und anderes Bildmaterial auf einem Bildschirm eines Computersystems verwendet. Diese Schnittstellen umfassen eine Fensterumgebung, die den Bildschirm so konfiguriert, daß dieser einer graphischen Anzeige zum Eingeben oder Betrachten von Information durch einen Benutzer gleicht. Genauer präsentiert ein auf dem Computersystem laufendes Anwendungsprogramm dem Benutzer die Information durch ein Fenster, indem es Bilder, Graphik oder Text in dem Fensterbereich zeichnet. Der Benutzer wiederum kommuniziert mit der Anwendung durch "Zeigen" auf Objekte im Fensterbereich mit einem Cursor, der von einer handbetätigten Zeigeeinrichtung, wie einer Maus, gesteuert wird.
  • Dynamische "Pop-up"-, "Pull-down"- und "hierarchische" Menüs sind Beispiele von Benutzerschnittstellenelementen, die Befehlsauswahlen auflisten, die für einen Benutzer zu allen Zeiten verfügbar sind, unabhängig davon, was sonst auf dem Bildschirm dargestellt sein mag. Beispielsweise besteht keine Notwendigkeit, ein Dokument zu schließen und zu einem Hauptmenüschirm zurückzukehren, um Befehle aus einem Menü zu wählen und zu geben. Die Menüs können aktiviert und Befehle können gewählt werden, allein indem man auf sie mit der cursorgesteuerten Maus deutet. Das heißt, die Befehle können gegeben werden durch Betätigen der Maus, so daß der Cursor auf oder nahe zu der Befehlsauswahl bewegt wird, und Drücken und schnelles Freigeben, d. h. "klicken" eines Druckschalters auf der Maus.
  • Diese Menüs können sich in einer Vielzahl von Arten manifestieren, einschließlich Direktzugriffmenüs, die· alle möglichen Auswahlen in einem Fenster zeigen, so wie bei einem Feld von Schaltknöpfen und taxonomischen Menüs, die eine Domänenhierarchie klassifizieren und dem Benutzer erlauben, durch diese zu navigieren. In vielen Situation ist es nicht notwendig, daß ein Menü dauernd auf dem Bildschirm sichtbar bleibt; es kann daher bei Bedarf auf dem Bildschirm "aufgepopt" werden. Typischerweise wird der Druckknopf auf der Maus gedrückt, um das Menü darzustellen, welches auf dem Bildschirm nahe der Cursor-Position gezeichnet wird. Wenn der Druckknopf freigegeben wird, verschwindet das Menü. Die Menüauswahl wird erzielt, indem man mit der Maus mit dem Cursor auf das gewünschte Item deutet, was das gewählte Item sichtbar schattiert.
  • Das Pop-up-Menü ist eine zweckmäßige Art, um häufig genutzte Befehle und Information zugreifbar zu halten, ohne Platz auf dem Bildschirm zu besetzen. Alternativ können mehrere verschiedene Menüs durch Schaltknöpfe oder eine Menüleiste bereitgestellt werden, die sich über den oberen Teil des Fensterschirms erstrecken und, wenn sie mit der Maus ausgewählt werden, ihr Menü darstellen; diese nennt man Pull-down-Menüs. Typischerweise bleiben diese Menüs nur gezeichnet, während der Maus-Druckknopf niedergedrückt wird.
  • Ein hierarchisches Menü ist ein Menü, das ein Submenü, das einem oder mehreren von dessen Menüitems zugeordnet ist, hat. Diese Submenüs bieten einem Benutzer zusätzliche Auswahlen, ohne zusätzlichen Platz in der Menüleiste zu verbrauchen.
  • Typischerweise ist ein Menüitem eines Pull-down-Menüs der Titel des zugeordneten Submenüs.
  • Ein Beispiel für graphische Benutzerschnittstellen gibt das Finder-Anwendungssoftwaresystem, das in den Macintosh0- Computerbaureihen, die von Apple Computer, Inc., Cupertino, CA hergestellt werden, verwendet wird. Ein Aspekt dieses Softwaresystems ist in der US-Patentschrift 4,931,783 beschrieben. Diese Patentschrift beschreibt, wie die durch das Finder-System verfügbaren Funktionen durch die Verwendung von Pull-down-Menüs gehandhabt und gesteuert werden können. Die Einzelheiten darüber, wie ein solches System implementiert wird, sowie über andere Finder-Funktionen sind in eineitt Band der Veröffentlichung "Inside Macintosh", veröffentlicht von Addison-Wesley, unter dem Titel "Macintosh Toolbox Essentials" beschrieben.
  • Ein weiteres Beispiel eines verbreiteten Softwaresystems, das eine graphische Benutzerschnittstelle bereitstellt, ist das Windows -Betriebssystem, das von der Microsoft Corporation im Handel erhältlich ist. Die vorliegende Erfindung ist auf alle solche Systeme anwendbar und betrifft das Zugreifen auf Benutzerschnittstellenelemente mittels einer Steuervorrichtung, wie einer Maus, um Betriebssystem- oder Programmfunktionen auszuführen, die mit dem Durchsehen (browsing) von Information zusammenhängen.
  • Objekt-orientierte Programmierung ist ein Paradigma für das Entwerfen und Implementieren von Software-Programmen. Im wesentlichen definiert und verpackt die Objekt-orientierte Programmierung Objekte, wobei ein Objekt aus einer Datenstruktur zusammen mit den für diese Struktur verfügbaren Operationen besteht. Wenn solche Objekte einmal definiert sind, ist es möglich, ein Programm als eine einfache Folge von Prozessen, die auf spezifizierten Instanzen dieser Objekte auszuführen sind, aufzubauen. Ein integraler Teil von Objektdefinition ist die Möglichkeit, neue, komplexere Objekte als Weiterbildungen von zuvor definierten zu schaffen.
  • Häufig wird ein Benutzer verschiedene Arten von mit diesen Objekten verknüpfter Information betrachten wollen. Um beispielsweise den Inhalt eines bestimmten Objekts, so wie eines Dateiverzeichnisses, zu prüfen, kann der Benutzer dieses Dateiverzeichnisobjekt "öffnen". Und weiter, beim "Öffnen" eines Dokuments, kann es der Benutzer tatsächlich wünschen, die Anwendung, die das Dokument erzeugt hat, zu starten, bevor der Inhalt dieses Dokuments im Kontext dieser Anwendung dargestellt wird.
  • Das Öffnen eines Objekts im Kontext eines Tools des Standes der Technik zum Navigieren oder Durchsehen (browsing) bedeutet (typischerweise) Expandieren des Inhalts dieses Objekts, um eine vorbestimmte Art von Information über dieses Objekt darzustellen. Um die Art der dargestellten Information über das Objekt zu variieren, muß jedoch eine Vielfalt von Tools verwendet werden, die eine Sortierung und Auswahl der vom Benutzer gewünschten Informationsarten leisten. Wenn beispielsweise nach Auswahl eines Objekts der Benutzer z. B. die mit dem Objekt verbundenen Klassen betrachten möchte, muß er ein Menü hervorholen, um einen Klassen-Browser zu wählen. Beim Auswählen einer interessierenden Klasse muß, wenn der Benutzer die mit der Klasse verbundenen Methoden untersuchen möchte, ein Methoden-Browser verwendet werden. Es ist klar, daß eine solche Vorgehensweise zeitraubend und ineffizient ist.
  • Alternativ erlaubt ein anderer Browser des Standes der Technik, daß ein Benutzer mehrere Ansichten von Objekten in verschiedenen Bereichen eines Fensters auf dem Bildschirm zu überprüft. Die in jedem Fensterbereich dargestellte Information kann jedoch nicht geändert werden, was dieses Tool somit statisch und nicht dynamisch konfigurierbar macht. Das heißt, das Tool kann dem Benutzer immer erlauben, die Klassen eines Objekts in einem Fensterbereich, die mit einer ausgewählten Klasse verbundenen Methoden in einem anderen Fensterbereich und den Quellcode einer ausgewählten Methode in noch einem anderen Fensterbereich des Bildschirms zu betrachten.
  • Die Druckschrift mit dem Titel "Painless panes for Smalltalk windows" von James H. Alexander in OOPSLA '87 Proceedings: Conference on Object Oriented Programming, Systems, Languages and Applications, Orlando, FL, USA, 4-8 Okt. 1987, Band 22, Nr. 12, ISSN 0362-1340, Sigplan Notices, Dez. 1987, USA, Seiten 287-294, beschreibt ein Tool zum Entwerfen neuer Fenster für Smalltalk- oder Macintosh-artige Fensteranwendungen. Die Benutzerschnittstelle dieses Standes der Technik ist auf den einfachen Aufbau und Test von Fenstern/Feldern gerichtet, die jeweils einen festen Datentyp in einer festen Darstellungsart anzeigen. Wenn ein Fenster/Feld einmal aufgebaut ist, gibt dieser Stand der Technik dem Benutzer keine Flexibilität hinsichtlich der Art und Weise, in der die Daten dargestellt werden, so lange nicht das Fenster/Feld selbst editiert wird.
  • Entsprechend ist eine der Aufgaben der vorliegenden Erfindung, eine interaktive graphische Benutzerschnittstelle bereitzustellen, die die Fähigkeit zur Veränderung der Bedeutung des "Öffnens" eines Objekts Abhängigkeit von der vom Benutzer gewünschten Informationsart hat.
  • Eine andere Aufgabe der vorliegenden Erfindung ist die Bereitstellung einer interaktiven graphischen Benutzerschnittstelle, die die Fähigkeit zur flexiblen Darstellung verschiedener, mit einem Objekt verbundenen Informationsarten hat.
  • KURZE DARSTELLUNG DER ERFINDUNG
  • Kurz gesagt umfaßt eine verbesserte graphische Benutzerschnittstelle, wie sie in Anspruch 1 spezifiziert ist, neuartige Aspekt- und Stilelemente zum Steuern der Art von Information, die auf einem Bildschirm eines Computersystems dargestellten Objekten zugeordnet ist, wenn diese Objekte durchgesehen werden. Genauer steuert das Aspektelement die für jedes Objekt in einem Teil eines Fensters, genannt Feld (pane), dargestellte Information, d. h. dessen "Aspekt", während das Stilelement die Arten von Information steuert, die anfänglich für alle Objekte in diesem Feld dargestellt werden.
  • Erfindungsgemäß stellen diese neuartigen
  • Benutzerschnittstellenelemente dem Benutzer ein individuell anpaßbares Browser-Gerüst zur Verfügung. Noch genauer stellen Aspekte Verknüpfungen zwischen einem Objekt und seinen Arten von Information oder anderen Arten von Objekten bereit, die der Benutzer überprüfen möchte, wenn er das individuell anpaßbare Browser-Gerüst aufruft. Diese Arten von Information können jedes Medium oder jede Datenart umfassen, so wie Klang, Graphik, Text und Video, während die Arten von Objekten spezifische Instanzen dieser Medien oder Datenarten umfassen können. Zum Beispiel kann der Benutzer bei der Auswahl eines bestimmten Objekts, so wie eines Fahrzeugs, ein Bild eines bestimmten Modells dieses Fahrzeugs, die für dieses Modell verfügbaren Sonderausstattung und eine Beschreibung einer bestimmten verfügbaren Sonderausstattung zu sehen wünschen. Die hier beschriebenen Benutzerschnittstellenelemente erlauben dem Benutzer, irgendwelche oder alle dieser Aspekte in einer schnellen und effizienten Weise zu betrachten. Wie hier weiter beschrieben wird, umfaßt das Aspektelement einen Default-Aspekt, der vom Benutzer spezifiziert werden kann, um eine bestimmte Art von Information über das Objekt für die Darstellung zu steuern, wenn der Browser aufgerufen wird.
  • Andererseits erlauben Stile dem Benutzer, die Art von Information zu definieren, die anfänglich bei Verwendung des Browsers für alle in dem Feld "geöffneten" Objekte dargestellt wird. Diese Information kann Aspekte von Objekten auf jedem beliebigen Schachtelungsniveau bilden; entsprechend stellen Stile Sammlungen von Abbildungen zwischen Objekten und deren "Default-Aspekten" bereit. Wie hier weiter beschrieben wird, kann der Benutzer das Feld zu jedem gewünschten "Stil" konfigurieren, wodurch die in diesem Feld erscheinenden Objekte und Aspekte geändert werden. Darüber hinaus kann das Stilelement dazu verwendet werden, mehr als eine Art von Information über eine einzelne Art von Objekt darzustellen, oder es kann dazu verwendet werden, unterschiedliche Information über verschiedene Arten von Objekten darzustellen.
  • Die auf dem Bildschirm dargestellten Aspekte von Objekten und Stile von Feldern werden vorzugsweise auf einer Feld-bei- Feld-Basis durch Hervorholen entsprechender hierarchischer Aspekt- und Feldstil-Menüs aus einem Pull-down- oder Pop-up- Menü bestimmt. Diese hierarchischen Menüs sind jeweils Benutzerschnittstellenelemente, die eine Liste von verfügbaren Einträgen bereitstellen, einschließlich jener, die gegenwärtig ausgewählt sind; diese gegenwärtig ausgewählten Einträge werden vorzugsweise durch Abhak-Markierungen (check marks) oder eine andere Beschriftung nahe den Einträgen gekennzeichnet. Genauer stellt die Erfindung Benutzerschnittstellenmechanismen zum Ersetzen eines bestehenden Aspekts und/oder Hinzufügen eines neuen Aspekts zur Darstellung bereit.
  • Zusätzlich zu den verfügbaren Aspekteinträgen umfaßt das Aspektmenü einen Default-Eintrag-Bereich zum Spezifizieren eines Default-Aspekts eines Objekts zur Darstellung in dem aktiven Feld. Der Default-Eintrag-Bereich erleichtert das Zurücksetzen sämtlicher der in einem Feld dargestellten Objekte zu deren, von dem ausgewählten Stil spezifizierten Default- Aspekten, nachdem der Benutzer diesen Default überschrieben hat. Das Überschreiben eines Aspekts ändert nur den direkt unter dem ausgewählten Objekt gezeigten Aspekt; alle anderen dargestellten Objekte zeigen die Default-Aspekte für deren Stile, solange bis auch sie explizit durch Auswählen eines neuen Wertes aus dem Aspektmenü überschrieben werden. Erfindungsgemäß kann der Default-Eintrag-Bereich so konfiguriert werden, daß er folgendes darstellt: (i) einen einzelnen Aspekt für alle ausgewählten Objekte in dem Feld, (ii) mehrere Aspekte für alle ausgewählten Objekte in dem Feld, oder (iii) verschiedene Aspekte für einige der ausgewählten Objekte in dem Feld.
  • Die ausgewählten Aspekte werden vorzugsweise in einer Datenstruktur gespeichert, die in einem benutzersichtbaren Objekt angesiedelt ist, während die ausgewählten Stile vorzugsweise in einer Datenstruktur gespeichert werden, die in einem Feldobjekt angesiedelt ist. Die Inhalte dieser Datenstrukturen bestimmen, welche Aspekte und Stile in dem Feld dargestellt werden; sie werden auch zum Bestimmen der geeigneten Befehle verwendet, die an den Fenstermanager zu senden sind, der dann das Feld darstellt.
  • Vorteilhafterweise erlaubt die hier beschriebene Erfindung einem Benutzer, Beziehungen zwischen Objekten eines Programms unter Benutzung des individuell anpaßbaren Browser-Gerüsts zu beeinflussen und somit Pfade zum Untersuchen des Inhalts dieser Objekte in einer vernünftigen Weise einzurichten. Beispielsweise kann der Benutzer die Elemente der Erfindung zum Betrachten verschiedener Objekte eines Programms als einen Baum von zusammenhängenden Klassen, Protokollen, oder Definitionen und Kommentaren konfigurieren, was dem Benutzer ermöglicht, diese "Aspekte" der Objekte durch den ganzen Baum, jeweils in einzelnen Niveaus, zu überprüfen.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die obigen und weitere Vorteile der Erfindung können durch Bezugnahme auf die folgende Beschreibung in Verbindung mit den angefügten Zeichnungen besser verstanden werden, in denen:
  • Fig. 1 ein Blockdiagramm eines Computersystems, so wie ein Personal-Computer-System ist, auf dem die Erfindung vorteilhaft arbeiten kann;
  • Fig. 2 ein Blockdiagramm ist, daß die Beziehung eines Betriebssystems, eines · Anwendungsprogramms, eines Bildschirmspeichers und eines Bildschirms des Computersystems von Fig. 1 zeigt;
  • Fig. 3 die Wechselwirkung zwischen einem Anwendungsprogramm und einem Fenstermanager gemäß der Erfindung zeigt;
  • Fig. 4 Einträge eines Browse-Menüs zeigt, einschließlich eines Aspektgruppeneintrags und dessen zugehörigen Aspektmenüs zum Darstellen einer Liste von verfügbaren Aspekteinträgen gemäß der Erfindung;
  • Fig. 5 Felder eines Fensters veranschaulicht, das verschiedene Aspekte eines Objekts gemäß der Erfindung zeigt;
  • Fig. 6 Einträge eines Browse-Menüs zeigt, einschließlich eines Feldstilgruppeneintrag und dessen zugehörigen Feldstilmenüs zum Darstellen einer Liste von verfügbaren Stileinträgen gemäß der Erfindung;
  • Fig. 7 verschiedene Stile zum Darstellen bestimmter Arten von Information über Objekte gemäß der Erfindung veranschaulicht;
  • Fig. 8 ein veranschaulichendes Flußdiagramm einer Folge von Schritten ist, die mit dem Setzen von Objektaspekten und Feldstilen zur Darstellung auf einem Bildschirm zusammenhängen; und
  • Fig. 9 ein veranschaulichendes Flußdiagramm einer Folge von Schritten ist, die zum Darstellen eines Fensters und zugehöriger Felder verwendet wird, wobei die Felder Aspekte und Stile von Objekten gemäß der Erfindung darstellen.
  • DETAILLIERTE BESCHREIBUNG VON VERANSCHAULICHENDEN AUSFÜHRUNGSFORMEN
  • Fig. 1 veranschaulicht ein Computersystem 100, umfassend eine zentrale Verarbeitungseinheit (CPU) 110, die mit bidirektionalen Bussen 112 und 116 zwischen einen Speicher 114 und eine Eingangs-/Ausgangs-(I/O)Schaltung 118 geschaltet ist. Der Speicher 114 umfaßt typischerweise einen Speicher mit wahlfreiem Zugriff (RAM) zur vorübergehenden Speicherung von Information, einschließlich eines Anwendungsprogramms (nicht gezeigt), und Nurlesespeicher (ROM) zur permanenten Speicherung der Computerkonfiguration und grundlegender Betriebsbefehle, wie Teilen eines Betriebssystems (nicht gezeigt). Wie hier näher beschrieben wird, wechselwirken das Applikationsprogramm und das Betriebssystem zur Steuerung der Operationen der CPU 110 und des Computersystems 100.
  • Die I/O-Schaltung 118 ist wiederum über einen bidirektionalen Bus 122 mit einer Massenspeichereinheit 120, wie einem Plattenlaufwerk und mit Cursorsteuereinrichtungen, wie einer Tastatur 124 (über Kabel 126) und einer Maus 130 (über Kabel 128) verbunden. Ein herkömmlicher Anzeigemonitor 132 mit einem Bildschirm 135 ist über ein Kabel 138 ebenfalls mit der I/O-Schaltung 118 verbunden. Genauer empfängt die I/O- Schaltung 118 Information, wie Steuer- und Datensignale, von der Maus 130 und der Tastatur 124 und liefert diese Information der CPU 110 zur Speicherung auf der Massenspeichereinheit 120 oder zur Darstellung auf dem Bildschirm 135. Es sei angemerkt, daß die I/O-Schaltung die nötige Hardware, z. B. Puffer und Adapter enthält, die zur Schnittstellenverbindung mit der Maus, der Tastatur und dem Anzeigemonitor benötigt ist.
  • Die Maus 130 enthält typischerweise wenigstens einen Druckschalter 134, der von einem Benutzer des Systems betätigt wird. Ein Cursor 140 wird auf dem Bildschirm 135 dargestellt, und dessen Position ist über die Maus 130 oder die Tastatur 124 steuerbar, wie wohlbekannt ist. Ein Beispiel der Maus 130 ist im US-Patent Re. 32,632 gezeigt und beschrieben.
  • Das Computersystem 100 ist vorzugsweise ein Personal-Computer der von Apple Computer Inc. verkauften Macintosh®- Computerserie, obgleich die Erfindung auch in Zusammenhang mit jedem beliebigen Computer ausgeführt werden kann. Auf diesen Computern ist Betriebssystemsoftware, wie das Apple®- System/7®-Betriebssystem resident, und sie werden durch diese gesteuert und koordiniert.
  • Eine Fensterumgebung wird typischerweise auf dem Bildschirm 135 dargestellt. Gemäß einem hier beschriebenen Aspekt der Erfindung umfaßt die Fensterumgebung Fenster 142, von denen jedes Felder 144 enthalten kann, wobei jedes Feld einen Teil eines Fensters 142 bedeckt. Die Fensterumgebung ist im allgemeinen Teil der Betriebssystemsoftware, die eine Sammlung von Nutzprogrammen zum Steuern der Operation des Computersystems 100 umfaßt. Das Betriebssystem wechselwirkt wiederum mit einem Anwendungsprogramm, um Funktionalität auf höherer Ebene, einschließlich einer Direktschnittstelle mit dem Benutzer zu liefern. Genauer verwendet das Anwendungsprogramm Verwendung von Betriebssystemfunktionen durch Ausgeben einer Folge von Prozeßbefehlen an das Betriebssystem, die dann den geforderten Prozeß ausführt. Beispielsweise kann das Anwendungsprogramm fordern, daß das Betriebssystem bestimmte Information in den Feldern 144 des Bildschirms 135 zur Präsentation gegenüber dem Benutzer darstellt.
  • Die vorliegende Erfindung leistet mit diesen Fenstern und Feldern die Bereitstellung neuer Benutzerschnittstellenelemente, wie Menüs und deren Einträge, die bei Aufruf Aktionen hervorrufen, welche die Fähigkeit des Benutzers verbessern, mit dem Computersystem zu interagieren. Dieses neue Verhalten des Systems wird durch die Wechselwirkung dieser Elemente mit einer Reihe von, mit dem Betriebssystem verbundenen Systemsoftwareroutinen herbeigeführt. Diese Systemsoftwareroutinen wechselwirken wiederum mit dem Anwendungsprogramm, um die Fenster und Felder zu erzeugen und die neuen Menüs zu managen, wie hier weiter beschrieben wird,
  • Fig. 2 ist eine schematische Veranschaulichung der Wechselwirkung eines Anwendungsprogramms 202 und eines Betriebssystems 204 eines Computersystems 200, welches dem Computersystem 100 von Fig. 1 ähnlich ist und diesem entsprechend Elemente aufweist. Das Anwendungsprogramm 202 und das Betriebssystem 204 wechselwirken, um die Operationen des Computers 200 zu steuern und koordinieren, wobei deren Wechselwirkung durch einen Pfeil 206 schematisch veranschaulicht ist. Um Information auf einem Bildschirm 235 darzustellen, erzeugt das Anwendungsprogramm 202 Darstellungsbefehle und sendet diese an ein Fenstermanagerprogramm 205 des Betriebssystems 204. Das Fenstermanagerprogramm 205 speichert die Information direkt (über einen Pfeil 208) in einen Bildschirmpuffer 210.
  • Der Fenstermanager 205 ist eine Systemsoftwareroutine, die im allgemeinen für das Managen des Fensters verantwortlich ist, das der Benutzer während des Betriebs des Anwendungsprogramms betrachtet; das Anwendungsprogramm ist im allgemeinen verantwortlich für das Managen der Felder. Das heißt, es ist im allgemeinen die Aufgabe des Fenstermanagers, den Ort und die Größe des Fensters und der Fensterbereiche zu verfolgen, die in Verbindung mit Elementen der verbesserten graphischen Benutzerschnittstelle der vorliegenden Erfindung gezeichnet und erneut gezeichnet werden müssen. Weitere Details bezüglich des Fenstermanagers werden in der oben genannten "Inside- Macintosh"-Veröffentlichung "Macintosh Tool Box Essentials" gegeben.
  • Unter Kontrolle verschiedener Hardware und Software im System werden die Inhalte des Bildschirmpuffers 210 aus dem Puffer gelesen und, wie schematisch durch einen Pfeil 212 angegeben ist, an einen Darstellungsadapter 214 geliefert. Der Darstellungsadapter enthält Hardware und Software (manchmal in Form von Firmware), welche die Information im Bildschirmpuffer 210 in eine Form umwandelt, die zum Ansteuern eines Bildschirms 235 eines Monitors 232 verwendet werden kann, der mit dem Darstellungsadapter durch ein Kabel 218 verbunden ist.
  • In einer bevorzugten Ausführungsform ist die hier beschriebene Erfindung in einer objektorientierten dynamischen Programmiersprache wie Common Lisp, unter Verwendung objektorientierter Programmier(OOP)-Techniken implementiert. Die Common-Lisp-Sprache ist wohlbekannt, und viele Artikel und Texte sind verfügbar, welche die Sprache im Detail beschreiben.
  • Darüber hinaus sind Common-Lisp-Compiler von mehreren Anbietern erhältlich. Entsprechend werden hier aus Gründen der Klarheit die Details der Common-Lisp-Sprache und die Arbeitsweise des Common-Lisp-Compilers nicht weiter im Detail diskutiert.
  • Wie vom Fachmann verstanden wird, beinhalten OOP-Techniken die Definition, Erzeugung, Verwendung und Vernichtung von "Objekten". Diese Objekte sind Softwaregrößen, die Datenelemente und Routinen oder Funktionen, welche die Datenelemente manipulieren, umfassen. Die Daten und zugehörigen Funktionen werden von der Software als eine Größe behandelt, die so erzeugt, verwendet und gelöscht werden kann, als wäre sie ein einziger Gegenstand. Zusammen ermöglichen die Daten und Funktionen, daß Objekte nahezu jegliche Größe der wirklichen Welt modellieren können, und zwar ausgedrückt durch deren Eigenschaften, die durch die Datenelemente repräsentiert werden können, und deren Verhalten, das durch die Datenmanipulations- Funktionen repräsentiert werden kann. Auf diese Weise können Objekte konkrete Dinge wie Menschen und Computer, modellieren, sie können aber auch abstrakte Konzepte, wie Zahlen oder geometrische Formen modellieren.
  • Objekte werden durch erzeugte "Klassen" definiert, die als Templets fungieren, die den Compiler anweisen, wie ein tatsächliches Objekt zu konstruieren ist. Eine Klasse kann beispielsweise die Anzahl und den Typ von Datenvariablen und die Schritte, welche in den die Daten manipulierenden Funktionen erhalten sind, spezifizieren.
  • Die grundsätzlichen Vorzüge von OOP-Techniken erwachsen aus drei Grundprinzipien: Kapselung, Polymorphismus und Vererbung. Genauer gesagt können Objekte so gestaltet sein, daß sie die gesamte oder einen Teil ihrer internen Datenstruktur und internen Funktionen verbergen oder kapseln. Polymorphismus ist ein Konzept, das es Objekten und Funktionen, die das gleiche Gesamtformat haben, aber mit verschiedenen Daten arbeiten, erlaubt unterschiedliche Funktionen zu haben, um konsistente Resultate hervorzubringen. Vererbung erlaubt andererseits Programmentwicklern, auf einfache Weise bereits bestehende Programme wiederzuverwenden und das Schaffen von Software aus dem Nichts zu vermeiden. Das Prinzip der Vererbung erlaubt einem Softwareentwickler, Klassen (und die Objekte, die später aus diesen erzeugt werden) als zusammengehörig zu deklarieren. Genauer gesagt können Klassen als Subklassen anderer Basisklassen ausgezeichnet werden. Die Erzeugung einer neuen Subklasse, die einen Teil der Funktionalität (mit selektiver Modifikation) einer anderen Klasse hat, erlaubt Softwareentwicklern, bestehenden Code auf einfache Weise so individuell anzupassen, daß er ihren speziellen Bedürfnissen genügt.
  • Erfindungsgemäß sind das Fenster und dessen Felder "Objekte", die vom Anwendungsprogramm zum Kommunizieren mit dem Fenstermanager, der vorzugsweise ein objektorientiertes Programm ist, erzeugt werden. Die Wechselwirkung zwischen einem Anwendungsprogramm und einem Fenstermanager ist in größeren Einzelheiten in Fig. 3 veranschaulicht.
  • Im allgemeinen hat ein Anwendungsprogramm 308 eine Schnittstelle mit dem Fenstermanager 310 durch Erzeugen und Manipulieren von Objekten. Der Fenstermanager ist selbst ein Objekt, das erzeugt wird, wenn das Betriebssystem gestartet wird. Genauer gesagt erzeugt das Anwendungsprogramm Fensterobjekte 300, die den Fenstermanager veranlassen, zugehörige Fenster auf dem Bildschirm zu erzeugen. Dies ist schematisch durch einen Pfeil 302 gezeigt. Darüber hinaus erzeugt das Anwendungsprogramm 308 individuelle Feldobjekte 350, die in jedem Fensterobjekt 300 gespeichert sind, wie schematisch durch Pfeile 352 und 354 gezeigt ist.
  • Da zum Darstellen vieler Felder auf dem Bildschirm viele Feldobjekte erzeugt werden können, kommuniziert das Fensterobjekt 300 mit dem Fenstermanager 310 mittels einer Folge von Zeichenbefehlen, die vom Fensterobjekt 300 an den Fenstermanager 310 ausgegeben werden, wie durch einen Pfeil 304 veranschaulicht ist. Die Anwendung 308 kommuniziert auch mit dem Fenstermanager 310, indem sie Befehle an den Manager 310 sendet, wie durch einen Pfeil 316 angegeben ist. Der Fenstermanager 310 hält eine Fensterliste 312, die eine Liste jedes derzeit im System vorhandenen Fensters enthält.
  • Obwohl objektorientierte Programmierung signifikante Verbesserungen gegenüber anderen Programmierkonzepten bietet, erfordert die Programmentwicklung noch beträchtlichen Aufwand an Zeit und Mühe, insbesondere wenn keine vorbestehenden Softwareprogramme zur Modifikation verfügbar sind. Folglich ist eine Vorgehensweise des Standes der Technik, dem Programmentwickler einen Satz vordefinierter, miteinander verbundener Klassen, die einen Satz von Objekten erzeugen, sowie zusätzliche gemischte Routinen, die sämtlich auf die Ausführung allgemein auftretender Aufgaben in einer speziellen Umgebung gerichtet sind, zur Verfügung zu stellen. Solche vordefinierten Klassen und Bibliotheken werden typischerweise "Anwendungsgerüste" (application frameworks) genannt und stellen im wesentlichen eine vorgefertigte Struktur für eine arbeitende Anwendung bereit.
  • Beispielsweise könnte ein Anwendungsgerüst für eine herkömmliche graphische Benutzerschnittstelle einen Satz von vordefinierten Graphikschnittstellenobjekten bereitstellen, die Fenster, Laufleisten (scroll bars), Menüs, usw. erzeugen und die Unterstützung und das "Default"-Verhalten für diese Graphikschnittstellenobjekte bereitstellen. Da Anwendungsgerüste auf objektorientierten Techniken basieren, können die vordefinierten Klassen als Basisklassen verwendet werden, und das eingebaute Default-Verhalten kann an entwicklerdefinierte Subklassen vererbt und entweder modifiziert oder überschrieben werden, um Entwicklern die Erweiterung des Gerüsts und die Schaffung individuell angepaßter Lösungen in einem bestimmten Fachgebiet zu erlauben. Diese objektorientierte Vorgehensweise bringt einen großen Vorteil gegenüber herkömmlicher Programmierung, da der Programmierer das ursprüngliche Programm nicht ändert, sondern vielmehr die Fähigkeiten des ursprünglichen Programms erweitert. Außerdem arbeiten sich die Entwickler nicht blind durch Schichten von Code, weil das Gerüst architekturbezogene Führung und Modellierung bereitstellt und gleichzeitig den Entwickler davon befreit, spezifische, für das Problemfeld einzigartige Tätigkeiten zu erbringen.
  • Es sind viele Arten von Anwendungsgerüsten verfügbar, abhängig von dem Niveau des betroffenen Systems und der Art des zu lösenden Problems. Die Arten von Gerüsten reichen von hochausgebauten Anwendungsgerüsten, welche die Entwicklung einer Benutzerschnittstelle unterstützen, zu geringer ausgebauten Gerüsten, die elementare Softwaredienste, wie Kommunikation, Drucken, Dateisystemunterstützung, Graphik usw. bereitstellen. Im Handel verfügbare Beispiele solcher Anwendungsgerüste umfassen MacApp (Apple), OWL (Borland), NeXT Step App Kit (NeXT) und Smalltalk-80 MVC (Parcplace).
  • Während die Vorgehensweise mit Anwendungsgerüsten sämtliche der Prinzipien von Einkapselung, Polymorphismus und Vererbung in der Objektebene benutzt und eine wesentliche Verbesserung gegenüber anderen Programmiertechniken darstellt, gibt es Schwierigkeiten, die sich ergeben. Diese Schwierigkeiten werden durch die Tatsache verursacht, daß es für Entwickler einfach ist, ihre eigenen Objekte wiederzuverwenden, aber daß es für sie schwierig ist, von anderen Objekten erzeugte Programme zu verwenden. Weiter bestehen Anwendungsgerüste im allgemeinen aus einer oder mehreren Objekt-"Schichten" oben auf einem monolithischen Betriebssystem, und selbst mit der Flexibilität der Objektschicht ist es noch oft nötig, mit Hilfe schwieriger Prozeduraufrufe direkt mit dem darunterliegenden Betriebssystem in Wechselwirkung zu treten.
  • In derselben Weise, in der ein Anwendungsgerüst dem Entwickler vorgefertigte Funktionalität für ein Anwendungsprogramm bereitstellt, kann ein Systemgerüst (system framework), wie das in den bevorzugten Ausführungsformen enthaltene, vorgefertigte Funktionalität für Dienste auf dem Systemniveau bereitstellen, die Entwickler zum Schaffen individuell angepaßter Lösungen modifizieren oder überschreiben können, wobei schwierige Prozeduraufrufe, die bei den Anwendungsgerüstprogrammen des Standes der Technik nötig sind, vermieden werden. Man betrachte beispielsweise ein individuell anpaßbares Browsergerüst, welches die Grundlage für das Durchsehen und direkte Manipulieren von Objekten bereitstellen kann. Ein Anwendungsprogrammentwickler, der diese Fähigkeiten benötigte, hätte üblicherweise spezielle Routinen schreiben müssen, um diese bereitzustellen. Um dies mit einem Gerüst zu tun, braucht der Programmierer nur die Eigenschaften und das Verhalten zum fertigen Ausgang liefern, während das Gerüst die eigentlichen Routinen, welche die Aufgaben ausführen, bereitstellt. Eine bevorzugte Ausführungsform nimmt das Konzept von Gerüsten auf und wendet es durch das ganze System, einschließlich der Anwendung und des Betriebssystems an. Für den kommerziellen oder angestellten Entwickler oder Systemintegrator bedeutet dies, daß sämtliche der Vorteile, die für ein Gerüst, wie MacApp veranschaulicht wurden, nicht nur auf dem Systemniveau für solche Dienste wie Drucken, Graphik, Multimedia, Dateisysteme und I/O-Operationen, sondern auch auf dem Anwendungsniveau für Dinge wie Text und, wie hier beschrieben, graphische Benutzerschnittstellen zur Anwendung gebracht werden können.
  • Nun wieder bezugnehmend auf Fig. 3, sind das Fensterobjekt 300 und das Feldobjekt 350 Elemente einer verbesserten graphischen Benutzerschnittstelle mit einem individuell anpaßbaren Browsergerüst zur großen Verbesserung der Möglichkeit eines Benutzers, durch viele verschiedene benutzersichtbare Objekte, die im Speicher 114 gespeichert sind, zu navigieren oder browsen. Ein benutzersichtbares Objekt ist ein Objekt mit einer Darstellungsform auf dem Bildschirm 135, Das individuell anpaßbare Browsergerüst klassifiziert und organisiert diese benutzersichtbaren Objekte gemäß der Semantik einer bestimmten Aufgabe des Benutzers.
  • Häufig wird ein Benutzer verschiedene Arten von diesen benutzersichtbaren Objekten zugeordneter Information betrachten mögen. Erfindungsgemäß umfaßt die verbesserte graphische Benutzerschnittstelle neuartige Aspekt- und Stilelemente zum Steuern der Art von Objekten zugeordneter Information, die auf einem Bildschirm eines Computersystems dargestellt wird, wenn diese Objekte durchgesehen werden.
  • Genauer steuert das Aspektelement der Schnittstelle die für jedes Objekt in einem Feld dargestellte Information, d. h. dessen "Aspekt" steuert; das Aspektelement umfaßt weiter einen Default-Aspekt, der vom Benutzer spezifiziert werden kann, um eine bestimmte Art von Information über das Objekt für die Darstellung beim Aufruf des Browsers zu steuern. Andererseits steuern die Stilelemente die Arten von Information, die für alle Objekte innerhalb dieses Felds dargestellt werden. Erfindungsgemäß stellen diese neuartigen Benutzerschnittstellenelemente dem Benutzer ein individuell anpaßbares Browsergerüst zur Verfügung.
  • Fig. 4 zeigt ein hierarchisches Aspektmenü 400 zum Darstellen einer Liste von verfügbaren Aspekteinträgen 410 in Verbindung mit der vorliegenden Erfindung. Bei der beispielhaften Ausführungsform ist das Aspektmenü 400 ein Benutzerschnittstellenelement, auf das über einen "Aspekt"- Gruppeneintrag 420 eines Browse-Menüs 425 zugegriffen werden kann. Das Browse-Menü ist vorzugsweise ein Pull-down-Menü, das von einer Menüleiste 428 aus verfügbar ist. Der Aspektgruppeneintrag 420 ist immer dann aktiv, wenn es ein aktives Feld im Fenster 450 gibt.
  • Wie bemerkt wurde, steuern die im Aspektmenü 400 dargestellten Aspekteinträge 410 die Art von Information, die benutzersichtbaren Objekten zügeordnet ist, die ein Benutzer möglicherweise untersuchen mag, wenn das individuell anpaßbare Browsergerüst aufgerufen wird. Beispielsweise umfassen die von diesen Einträgen repräsentierten Aspektparameter Klassen des ausgewählten Objekts, dessen Funktionen, dessen Dateien und die Definitionen des Objekt. Ein Benutzer kann jeglichen Aspekt, der gegenwärtig in einem aktiven Feld dargestellt ist, durch Auswählen eines der verfügbaren Aspekteinträge in der Liste überschreiben. Genauer kann der Benutzer vorzugsweise Aspekteinträge ersetzen oder substituieren, indem er z. B. einen Cursor mit einer Maus auf die Einträge "zieht", ohne eine Änderungstaste, wie eine Hochstelltaste, niederzuhalten. Im Gegensatz dazu kann der Benutzer vorzugsweise einen neuen Aspekt durch Ziehen des Cursors mit der niedergedrückten Änderungstaste hinzufügen. Natürlich können andere Mechanismen zum Auswählen der Aspekteinträge gemäß der Erfindung angewendet werden. Die Aspekte, die gegenwärtig dargestellt werden oder für die Darstellung ausgewählt sind, sind durch Abhak- Markierungen 430 oder eine andere ähnliche Beschriftung neben den Einträgen gekennzeichnet.
  • Zusätzlich zu den verfügbaren Aspekteinträgen 410 umfaßt das Aspektmenü 400 einen Default-Eintrag-Bereich 412 zum Spezifizieren eines Defaultaspekts zur Darstellung in dem Feld. Dieser Default-Eintrag-Bereich erleichtert das Zurücksetzen sämtlicher in einem Feld dargestellter Objekte auf deren Defaultaspekte, die durch den ausgewählten Stil spezifiziert sind, nachdem der Benutzer diesen Default überschrieben hat.
  • Das Überschreiben eines Aspekts ändert nur den direkt unter dem ausgewählten Objekt gezeigten Aspekt; alle anderen dargestellten Objekte zeigen die Defaultaspekte für ihre Stile, solange sie nicht ebenfalls durch Auswählen eines neuen Werts aus dem Aspektmenü explizit überschrieben werden. Erfindungsgemäß kann der Default-Eintrag-Bereich so konfiguriert werden, daß er folgendes darstellt: (i) einen einzelnen Aspekt für alle ausgewählten Objekte im Feld, (ii) mehrere Aspekte für alle ausgewählten Objekte in dem Feld, oder (iii) verschiedene Aspekte für einige der ausgewählten Objekte.
  • Fig. 5 zeigt verschiedene Aspekte eines in einem Feld dargestellten Fahrzeugobjekts. Diese. Aspekte stellen Verknüpfungen zwischen einem· Objekt und dessen Arten von Information oder anderen Arten von Objekten, die der Benutzer untersuchen will, beim Aufrufen des individuell anpaßbaren Browsergerüsts bereit. Das heißt, die
  • Aspektbenutzerschnittstellenelemente sind völlig unabhängig von den Arten von Information oder den Arten von Objekten, die sie zurü; kgeben. Diese Arten von Information können jegliches Medium oder jegliche Datenart umfassen, wie Klang, Graphik, Text und Video, wohingegen die Arten von Objekten spezielle Instanzen dieser Medien oder Datenarten umfassen können. Beispielsweise veranschaulicht Fig. 5 ein Fenster 500, das "Mazda-Händler Joe Bob" darstellt, wobei die Felder 510-540 verschiedene Aspekte des ausgewählten Objekts, wie ein Mazda- Fahrzeug, veranschaulichen. Die Aspekte "Modelle", "Sonderausstattung", "Beschreibung der Sonderausstattung" und "Abbildung des Fahrzeugs" stellen hier Verknüpfungen zwischen einem Objekt < Fahrzeug> und verschiedenen Medien-/Datenarten, die diesem Objekt zugeordnet sind, bereit. Genauer sind im Feld 510 die verschiedenen Modelle von Mazda-Fahrzeugen, die beim Händler Joe Bob erhältlich sind, aufgelistet; das Feld 520 zeigt die verschiedenen Sonderausstattungen, die bei einem bestimmten Modell, wie dem Mazda MX-6 erhältlich sind; das Feld 530 stellt eine Textbeschreibung einer Antiblockiersystem- Sonderausstattung bereit; und das Feld 540 ist eine Abbildung des MX-6-Fahrzeugs. Erfindungsgemäß kann jede Medien- und Datenart, die in Fig. 5 dargestellt ist, als Objekt, d. h. Instanz dieses Typs repräsentiert sein.
  • Fig. 6 zeigt ein hierarchisches Feldstilmenü 600 zum Darstellen einer Liste von verfügbaren Stileinträgen 610 in Verbindung mit der vorliegenden Erfindung. Ein "Stil" ist vorzugsweise eine Sammlung von Abbildungen zwischen den Objekten und deren Default-Aspekten; im allgemeinen erlaubt er dem Benutzer, die anfängliche für alle in einem Feld "geöffneten" Objekte dargestellte Art von Information zu definieren, wenn das individuell anpaßbare Browsergerüst verwendet wird. Entsprechend können Stile als "Default"-Aspekte der Objekte angesehen werden. Die Liste von in dem Menü 600 dargestellten Einträgen 610 fungiert als "Platzhalter" für diese Default-Aspekte.
  • Wie bei dem Aspektmenü 400 von Fig. 4 kann auf das Feldstilmenü 600 über einen "Feldstil"-Gruppeneintrag 620 eines Pull-down-Browse-Menüs 625 zugegriffen werden, das von einer Menüleiste 620 aus erhältlich ist. Wiederum ist der Feldstilgruppeneintrag 620 aktiv, wann immer es im Fenster 650 ein aktives Feld gibt. Der Feldstilparameter, der gegenwärtig dargestellt oder zur Darstellung ausgewählt ist, wird durch eine Anhakmarkierung 630 neben dem Eintrag gekennzeichnet.
  • Wie bemerkt wurde, kann der Benutzer das Feld zu jedem gewünschten "Stil" konfigurieren, wobei er die in diesem Feld erscheinenden Objekte und Aspekte ändert/überschreibt. Der Benutzer kann auch die, für sämtliche Objekte in dem Feld gezeigte Art von Information ändern, indem er einen anderen Stilparameter aus dem Feldstilmenü 600 wählt. Darüber hinaus kann das Stilelement dazu verwendet werden, mehr als eine Art von Information über einen einzelnen Typ oder ein einzelnes Objekt darzustellen, oder es kann dazu verwendet werden, unterschiedliche Information über verschiedene Arten von Objekten darzustellen. Fig. 7 zeigt verschiedene Stile zum Darstellen bestimmter Arten von Information über Objekte, die in Feldern eines Fensters 700 dargestellt sind.
  • Genauer zeigt Fig. 7 zwei Felder, ein oberes Feld 710, das einen Projekt-"Container" unter Verwendung eines "Klassen"- Stils zeigt und ein unteres Feld 720, das einen "Klassenhierarchie-"'Stil zeigt. Für das obere Feld 710 zeigt der ausgewählte Stil jede Klasse im Projektcontainer für andere Container und Subklassen dieser Klassen. Der Subklassen-Aspekt ist für mehrere der in dem Feld dargestellten Objekte überschrieben worden. In einem Fall ist der Quellcode für die Klasse gezeigt, während in einem anderen Fall alle für diese Klasse definierten Methoden gezeigt sind. Für diesen letzteren Fall ist die Methode so erweitert, daß sie andere Methoden, die diese Methode aufrufen, zeigt.
  • In dem unteren Feld 720 sind Superklassen und Subklassen Defaultmäßig gezeigt, d. h. als Default-Aspekte. Diese Arten von Information, die dem Objekt Klasse < basic-machine-pointer> zugeordnet sind, sind hier Default-Aspekte dieser Objekte, und, der "Stil" des Felds stellt entsprechend die Abbildung zwischen diesen Objekten und jenen Defaultaspekten dar. Es sei angemerkt, daß die Information in einem unterschiedlichen Layout dargestellt wird - als Graph - um ein veranschaulichendes Beispiel einer anderen Art der Betrachtung eines Objekts zu geben.
  • Die ausgewählten Aspekt- und Stilparameter werden vorzugsweise auf einer Feld für-Feld-Basis für das in dem Feld dargestellte Objekt bestimmt. Wieder bezugnehmend auf Fig. 3 hat entsprechend jedes, von dem Anwendungsprogramm 308 erzeugte Feldobjekt 350 vorzugsweise eine interne Datenstruktur 356, dis eine Liste jedes von dem jeweiligen Aspekt- und Stilmenü erhältlichen Aspekt- und Stileintrags enthält, zusammen mit dem Status jedes, d. h. gewählten oder nicht-gewählten Eintrags in der Liste. Außerdem enthält jedes Fensterobjekt 300 eine Liste von Feldern 306, und jedes Feldobjekt 350 enthält auch eine Liste von benutzersichtbaren Objekten in der Datenstruktur 356. Genauer hat jedes benutzersichtbare Objekt in der Liste 356 eine Datenstruktur, die spezifiziert, welche Aspekte für dieses Objekt darzustellen sind. Der Status jedes in dem Feld dargestellten Objekts bestimmt, ob jeder mögliche Aspekt- /Stilparameter gezeichnet wird oder nicht.
  • Es wird nun auf die Fig. 1 bis 7 in Verbindung mit dem Flußdiagramm von Fig. 8 Bezug genommen, um die Folge von Schritten zu beschreiben, die mit dem Setzen von Aspekten von Objekten und Stilen von Feldern zur Darstellung in einem Bildschirm zusammenhängen. Um einen gegenwärtig für ein benutzersichtbares Objekt dargestellten Aspekt/Feldstil zu setzen oder ändern, startet die Folge in Schritt 800 und schreitet fort zum Schritt 802, in dem ein Benutzer die Maus 130 (Fig. 1) so betätigt, daß der Cursor 140 auf das Browse- Menü 425, 625 "zeigt", und er dann den Knopf 134 der Maus "anklickt", um dieses Menü 425, 625 darzustellen.
  • Wie bemerkt wurde, sind die Aspekt- und Feldstilmenüs 400, 600 hierarchische Menüs, die deren jeweiligen Gruppeneinträgen zugeordnete Submenüs haben. In Schritt 804 handhabt der Benutzer die Maus derart, daß er den Cursor durch das Browse- Menü "zieht" und ihn entweder auf dem Aspektgruppeneintrag 420 oder dem Feldstilgruppeneintrag 620 zur Ruhe setzt. Das Aspekt- Submenü 400 bzw. das Feldstil-Submenü 600 wird auf dem Bildschirm dargestellt.
  • Diese Menüs 400, 600 sind auch als Submenüs vom "Zieh- Auswahl"-Typ (drag-select type) bekannt, die dem Benutzer die Auswahl eines Eintrags aus den Submenüs erlauben, indem der Knopf 134 der Maus 130 niedergehalten wird, während der Cursor 140 auf den gewünschten Eintrag gezogen wird und dann der Mausknopf freigegeben wird, wie im Schritt 806 angegeben ist. In Schritt 808 markiert das Anwendungsprogramm 308 vorzugsweise die zur Darstellung ausgewählten Aspekt-/Feldstilparameter mit Anhakmarkierungen neben deren Einträgen in den Menüs und entfernt dann die Menüs. Die Anwendung 308 modifiziert dann ein Feldobjekt 350 oder ein benutzersichtbares Objekt in diesem Feld, um die verschiedenen Aspekt-/Stilparameter in den Inhalt der Datenstruktur 356 einzuschließen, wie im Schritt 810 angegeben ist. Die Routine endet dann in Schritt 812.
  • Wie bemerkt wurde, werden die für ein bestimmtes Objekt dargestellten Aspekte und die für ein bestimmtes Feld verwendeten Feldstile vorzugsweise auf einer Feld für-Feld- Basis bestimmt; entsprechend bestimmt die vom Benutzer getätigte Auswahl von Aspekt-/Stilparametern, welche Aspekte/Stile für das gegenwärtig ausgewählte benutzersichtbare Objekt bzw. Objekte in dem gegenwärtig aktiven Feld dargestellt wird bzw. werden.
  • Wie auch bemerkt wurde, wechselwirken ein Fensterobjekt und ein Feldobjekt mit dem Fenstermanager, um verschiedene Fenstermanagementfunktionen, wie das Erzeugen eines Fensters und dessen Feldern bereitzustellen. Eine beispielhafte, von dem Anwendungsprogramm dazu verwendete Routine, ein Fenster und dessen zugehörige Felder darzustellen, wobei das letztere von diesen Aspekte und Stile von Objekten darstellt, ist im Flußdiagramm von Fig. 9 gezeigt, Die Routine startet in Schritt 900 und schreitet zu Schritt 902 fort, in welchem die Parameter, die das Fenster, z. B. dessen Größe und Schnittstellenelemente definieren, zusammen mit einer Anforderung zur Erzeugung eines neuen Fensters vom Fensterobjekt zum Fenstermanager gesendet werden (als Pfeil 304 in Fig. 3 veranschaulicht). In Reaktion auf diese Anforderung erzeugt der Fenstermanager ein Fenster (Schritt 904) und fügt das neue Fenster zur Fensterliste 310 hinzu. Die Liste erzeugter Fenster erlaubt dem Fenstermanager, die Orte und Größen von Fenstern zu verfolgen, die gezeichnet und erneut gezeichnet werden müssen, wenn Fenster in Verbindung mit Elementen der verbesserten graphischen Benutzerschnittstelle der vorliegenden Erfindung erzeugt oder gelöscht werden.
  • In Schritt 906 wird im Fensterobjekt 300 ein Feldobjekt 350 installiert, und in Schritt 908 wartet das Fensterobjekt auf ein Aktualisierungsereignis vom Fenstermanager, das angibt, daß das Fenster und das Feld gezeichnet werden müssen. Der Fenstermanager erzeugt solche Aktualisierungsereignisse, um die Darstellung von Fenstern und Feldern zu koordinieren. Bei Erhalt des Aktualisierungsereignisses bestimmt das Fensterobjekt in Schritt 910, welche Aspekt- und Stilparameter für jedes Objekt der im Feldobjekt gespeicherten Liste 356 gezeigt werden sollen, und in Schritt 912 sendet das Fensterobjekt geeignete Zeichenbefehle an den Fenstermanager, um diese Aspekte und Stile darzustellen. Die Routine endet dann in Schritt 914.
  • Ein Vorteil der vorliegenden Erfindung ist, daß sie einem Benutzer, wie einem Programmierer, erlaubt, die Beziehungen zwischen Elementen eines Programms, welches das individuell anpaßbare Browsergerüst verwendet, zu nutzen und somit Pfade zur Untersuchung der Inhalte dieser Elemente in vernünftiger Weise einzurichten. Beispielsweise kann der Programmierer die Werzeuge der Erfindung so konfigurieren, daß er die verschiedenen Objekte eines Programms als Baum zusammenhängender Klassen, Protokolle oder Definitionen und Kommentare sieht, wodurch dem Benutzer ermöglicht wird, diese "Aspekte" der Objekte, ein Niveau nach dem anderen, über dem ganzen Baum zu untersuchen.
  • Obwohl eine veranschaulichende Ausführungsform zum Steuern der Art von in einem Feld dargestellter Information unter Verwendung neuartiger Aspekt- und Stilbenutzerschnittstellenelemente gezeigt und beschrieben wurde, versteht es sich, daß verschiedene Adaptierungen und Modifikationen innerhalb des Bereichs der Erfindung, wie beansprucht, vorgenommen werden können. Beispielsweise hat die obige Beschreibung hierarchische Pull-down-Menüs als ein Mittel zum Setzen der Aspekt- und Feldstilelemente der Erfindung identifiziert. Die Erfindung ist jedoch auch auf Pop-up-artige hierarchische Menüs als ein Mittel zum Setzen dieser Elemente anwendbar. In jedem Fall können die hier beschriebenen Aspektelemente, bildlich ausgedrückt, in einer "Zieh-Absetz"- Weise (drag-drop) verwendet werden, um die Darstellung von zu einem Objekt gehöriger Information zu editieren. Gemäß dieser bildlichen Ausdrucksweise kann ein Benutzer einen ausgewählten Aspektparameter einfach zu dem geeigneten dargestellten Objekt "Ziehen" (entweder von dem Pull-down- oder Pop-up-Menü) und in unter diesem Objekt "absetzen", um die von diesem Aspekt repräsentierte Art von Information darzustellen.
  • Die obige Beschreibung ist auf spezielle Ausführungsformen dieser Erfindung gerichtet. Es ist jedoch klar, daß andere Abwandlungen und Modifikationen an den beschriebenen Ausführungsformen unter Erreichung einiger oder sämtlicher von deren Vorteilen vorgenommen werden können. Es ist daher das Ziel der angefügten Ansprüche, alle solche Abwandlungen und Modifikationen abzudecken, die in den Bereich der Erfindung, wie sie beansprucht wird, fallen.

Claims (17)

1. Graphische Benutzerschnittstelle zur Verwendung in einem Computersystem zum Verbessern der Fähigkeit eines Benutzers, von dem System zugreifbare Objekte durchzusehen, wobei das Computersystem einen Anzeigemonitor (132) zum Darstellen eines Cursors (140) auf einem Bildschirm (135), dem eine Einrichtung (130) zum Steuern des Cursors zugeordnet ist, aufweist, wobei die Schnittstelle folgendes umfaßt:
ein Fenster (142) des Bildschirms, wobei das Fenster zur Aufteilung in wenigstens ein Feld (144) zum Darstellen der im Speicher gespeicherten Objekte konfiguriert ist; und.
Mittel zum Steuern der Art von den Objekten zugeordneter Information, welche in den Feldern in Reaktion auf eine Benutzerbetätigung der cursorgesteuerten Einrichtung beim Durchsehen der im Speicher gespeicherten Objekte dargestellt wird, wobei das Steuermittel ein erstes Schnittstellenelement (420, 410) zum Steuern der Art von Information, die für jedes der in dem Feld dargestellten Objekte dargestellt wird, umfaßt, und wobei das Steuermittel darüber hinaus ein zweites Schnittstellenelement (620, 610) zum Steuern der Arten von Information, die anfänglich für sämtliche der Objekte in dem Feld dargestellt werden, umfaßt.
2. Graphische Benutzerschnittstelle von Anspruch 1, wobei das erste Schnittstellenelement ein Aspektelement zum Liefern von Verknüpfungen zwischen jedem Objekt und einer der Arten von Information und anderen Arten von Objekten, die für jedes Objekt dargestellt werden, ist.
3. Graphische Benutzerschnittstelle von Anspruch 2, wobei das Aspektelement einen Standard-Aspektparameter (412) zum Steuern einer besonderen Art von Information, die jedem Objekt zur Darstellung beim Durchsehen jedes Objekts zugeordnet ist, umfaßt.
4. Graphische Benutzerschnittstelle von Anspruch 3, darüber hinaus umfassend ein Mittel (410) zum Einstellen des Aspektelements zur Darstellung der Art von Information für jedes in dem Feld dargestellte Objekt.
5. Graphische Benutzerschnittstelle von Anspruch 4, wobei das Aspekt-Einstellmittel ein auf dem Bildschirm dargestelltes Aspekt-Menüelement umfaßt, wobei der Benutzer die cursorgesteuerte Einrichtung betätigt, um einen oder mehrere, in dem Aspekt-Menüelement dargestellte Parameter-Einträge auszuwählen.
6. Graphische Benutzerschnittstelle von Anspruch 3, wobei das zweite Schnittstellenelement ein Stilelement zum Liefern einer Sammlung von Abbildungen zwischen sämtlichen der in dem Feld dargestellten Objekte und den Standard-Aspektparametern der Objekte ist.
7. Graphische Benutzerschnittstelle von Anspruch 6, darüber hinaus umfassend ein Mittel (610) zum Einstellen der Stilelemente zur Darstellung der Arten von Information für sämtliche der anfänglich in dem Feld dargestellten Objekte.
8. Graphische Benutzerschnittstelle nach Anspruch 7, wobei das Stil-Einstellmittel ein auf dem Bildschirm dargestelltes Feldstil-Menüelement umfaßt, wobei der Benutzer die cursorgesteuerte Einrichtung betätigt, um eines oder mehrere, in dem Feldstil-Menüelement dargestellte Parametereinträge auszuwählen.
9. Computersystem mit einer graphischen Benutzerschnittstelle zum Verbessern der Fähigkeit eines Benutzers, benutzersichtbare, in einem Speicher des Computers gespeicherte Objekte durchzusehen, wobei der Computer einen Anzeigemonitor zum Darstellen eines Cursors auf einem Bildschirm, dem eine Einrichtung zum Steuern des Cursors zugeordnet ist, aufweist, wobei das Computersystem folgendes umfaßt:
einen Prozessor (110);
ein Betriebssystem (204), das mit dem Prozessor zur Steuerung des Bildschirms zusammenarbeitet;
ein von dem Betriebssystem erzeugtes Fensterverwaltungsobjekt (205; 310), wobei das Fensterverwaltungsobjekt ein Fenster zum Darstellen eines Feldes auf dem Bildschirm zeichnet;
ein Anwendungsprogramm (202; 308) zum Erzeugen der benutzersichtbaren Objekte zur Darstellung in dem Feld; und
ein Benutzerschnittstellenelement-Mittel zum Steuern der Art von Information, die den benutzersichtbaren Objekten zugeordnet ist, welche in dem Feld in Reaktion auf eine Benutzerbetätigung der cursorgesteuerten Einrichtung beim Durchsehen der im Speicher gespeicherten benutzersichtbaren Objekte dargestellt werden.
10. Das Computersystem von Anspruch 9, wobei das Benutzerschnittstellenelement-Mittel folgendes umfaßt:
ein Aspektelement (420, 410) zum Liefern von Verknüpfungen zwischen jedem der benutzersichtbaren Objekte und einer der Arten von Information und anderen Arten von benutzersichtbaren Objekten, die in dem Feld für jedes benutzersichtbare Objekt dargestellt werden, wobei das Aspektelement einen Standard- Aspektparameter zum Steuern einer besonderen Art von Information, die jedem benutzersichtbaren Objekt zugeordnet ist, umfaßt; und
ein Stilelement (620, 610) zum Liefern einer Abbildung zwischen den in dem Feld dargestellten benutzersichtbaren Objekten und den Standard-Aspektparametern der benutzersichtbaren Objekte.
11. Computersystem von Anspruch 10, wobei das Benutzerschnittstellenelement-Mittel darüber hinaus folgendes umfaßt:
ein auf dem Bildschirm dargestelltes Aspekt-Menüelement (410) zum Einstellen des Aspektelements in Reaktion auf eine Benutzerbetätigung der cursorgesteuerten Einrichtung zum Auswählen eines oder mehrerer, in dem Aspekt-Menüelement dargestellter Parametereinträge; und
ein auf dem Bildschirm dargestelltes Feldstil-Menüelement (610) zum Einstellen des Stilelements in Reaktion auf eine Benutzerbetätigung der cursorgesteuerten Einrichtung zum Auswählen eines oder mehrerer, in dem Feldstil-Menüelement dargestellter Parametereinträge.
12. Computersystem von Anspruch 11, darüber hinaus umfassend ein von dem Anwendungsprogramm erzeugtes Fensterobjekt (300), wobei das Fensterobjekt mit dem Fensterverwaltungsobjekt (310) durch Ausgeben einer Folge von Zeichenanweisungen zur Darstellung des Feldes kommuniziert.
13. Computersystem von Anspruch 12, darüber hinaus umfassend ein Feldobjekt (350), welches von dem Anwendungsprogramm erzeugt wird und in dem Fensterobjekt gespeichert wird, wobei das Feldobjekt eine interne Datenstruktur (356) hat, die eine Liste der ausgewählten Aspekt- und Stil-Parametereinträge enthält.
14. Verfahren zum Verbessern der Fähigkeit eines Benutzers, sichtbare Objekte durchzusehen, die im Speicher (114) eines Computersystems mit einer graphischen Benutzerschnittstelle gespeichert sind, wobei der Computer einen Anzeigemonitor (132) zum Darstellen eines Cursors (140) auf einem Bildschirm (135), dem eine Einrichtung (130) zum Steuern des Cursors zugeordnet ist, aufweist, wobei das Verfahren folgende Schritte umfaßt:
Erzeugen eines Fensterverwaltungsobjekts (310) von einem Betriebssystem des Computers;
Zeichnen eines Fensters (142) zum Darstellen eines Felds (144) auf dem Bildschirm unter Verwendung des Fensterverwaltungsobjekts;
Erzeugen der benutzersichtbaren Objekte zur Darstellung in dem Feld mit einem Anwendungsprogramm;
Auswählen von Aspekt- und Stilparametern (410, 610) aus auf dem Bildschirm dargestellten Benutzerschnittstellenmenüs der graphischen Benutzerschnittstelle, in Reaktion auf eine Benutzerbetätigung der cursorgesteuerten Einrichtung, wobei die Aspekt- und Stilparameter die Art von Information steuern, die den benutzersichtbaren Objekten zugeordnet ist, welche beim Durchsehen der im Speicher gespeicherten, benutzersichtbaren Objekte in dem Feld dargestellt werden, wobei die Aspektparameter die Art von Information, die für jedes der in dem Feld dargestellten Objekte dargestellt werden, steuern, und die Stilparameter die Arten von Information, die anfänglich für sämtliche der Objekte in dem Feld dargestellt werden, steuern.
15. Verfahren von Anspruch 14, wobei der Schritt des Auswählens folgende Schritte umfaßt:
Liefern von Verknüpfungen zwischen jedem der benutzersichtbaren Objekte und einer der Arten von Information und anderen Arten von benutzersichtbaren Objekten, die in dem Feld für jedes benutzersichtbare Objekt dargestellt werden, unter Verwendung der Aspekt-Parameter;
Liefern einer Sammlung von Abbildungen zwischen den in dem Feld dargestellten benutzersichtbaren Objekten und Standard- Aspektparametern der benutzersichtbaren Objekte, unter Verwendung der Stilparameter.
16. Verfahren von Anspruch 15, darüber hinaus umfassend folgende Schritte:
Erzeugen eines Fensterobjekts (300) von dem Anwendungsprogramm;
Ausgeben einer Folge von Zeichenanweisungen von dem Fensterobjekt an das Fensterverwaltungsobjekt; und
Darstellen des Felds in Reaktion auf die Zeichenanweisungen.
17. Verfahren nach Anspruch 16, darüber hinaus umfassend folgende Schritte:
Erzeugen eines Feldobjekts (350) von dem Anwendungsprogramm;
Speichern der ausgewählten Aspekt- und Stilparameter in einer Liste einer internen Datenstruktur (356) des Feldobjekts;
Speichern des Feldobjekts in dem Fensterobjekt; und
Senden der Aspekt- und Stilparameter an das Fensterverwaltungsobjekt beim Darstellen des Felds.
DE69526498T 1994-05-19 1995-05-10 Aspekt- und formelemente einer verbesserten graphischen benutzerschnittstelle Expired - Lifetime DE69526498T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US24631994A 1994-05-19 1994-05-19
PCT/US1995/005914 WO1995032468A1 (en) 1994-05-19 1995-05-10 Aspect and style elements of an improved graphical user interface

Publications (2)

Publication Number Publication Date
DE69526498D1 DE69526498D1 (de) 2002-05-29
DE69526498T2 true DE69526498T2 (de) 2002-12-19

Family

ID=22930172

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69526498T Expired - Lifetime DE69526498T2 (de) 1994-05-19 1995-05-10 Aspekt- und formelemente einer verbesserten graphischen benutzerschnittstelle

Country Status (4)

Country Link
EP (1) EP0760121B1 (de)
AU (1) AU2512695A (de)
DE (1) DE69526498T2 (de)
WO (1) WO1995032468A1 (de)

Also Published As

Publication number Publication date
EP0760121A1 (de) 1997-03-05
WO1995032468A1 (en) 1995-11-30
DE69526498D1 (de) 2002-05-29
AU2512695A (en) 1995-12-18
EP0760121B1 (de) 2002-04-24

Similar Documents

Publication Publication Date Title
DE69522684T2 (de) Statusanzeiger einer graphischen benutzerschnittstelle
DE69615470T2 (de) Darstellung von Beziehungen zwischen graphischen Objekten in einer Rechneranzeigevorrichtung
DE69525338T2 (de) Abstraktion von mustern und farben in einer graphischen benutzerschnittstelle
DE69410483T2 (de) Objektorientiertes aufgabensicheres rahmenwerk
DE69428647T2 (de) Verfahren und Gerät zur Erzeugung eines zweiten gemischten Bildsignals im räumlichen Kontext eines ersten Bildsignals
DE3787127T2 (de) Datenanzeigesystem.
DE69303289T2 (de) Steuersystem für anzeigemenüzustand
DE69600794T2 (de) Graphische entwicklungs- und verwaltungsumgebung für anwendungsprogramme
DE69533568T2 (de) Virtuelles Desk-Top-System und Verfahren dafür
DE69620301T2 (de) Fensterverwaltung
DE69805986T2 (de) Verfahren und vorrichtung zur konfigurierung von schiebefenstern
DE69837772T2 (de) Browser für hierarchische Strukturen
DE69310934T2 (de) Ballonhilfssystem.
DE69428988T2 (de) Interaktive anwenderschnittstelle
DE69403664T2 (de) Graphisches editorfachwerksystem
DE60314563T2 (de) Überlagerung mit elektronischer Tinte
DE69132981T2 (de) Betriebsmittelsteuerungsanordnung
DE69310214T2 (de) Dialogsystem
DE69310201T2 (de) Objektorientierte applikationsschnittstelle.
DE69500885T2 (de) Verfahren und vorrichtung zur verarbeitung eines dokuments
DE69523593T2 (de) Vorrichtung und verfahren zur aufteilung der anwendung in einer graphischen benutzerschnittstelle
DE69310187T2 (de) Objektorientiertes fachwerksystem
DE69311359T2 (de) Befehlssystem
DE69432579T2 (de) Verfahren und Vorrichtung zum Bearbeiten von Modell-Datenstrukturen eines Bildes, um ein für Menschen erkennbares Resultat zu erreichen
DE69426141T2 (de) Benutzerschnittstelle mit bewegbarer Folie mit durchclickenden Hilfsmitteln

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: APPLE INC., CUPERTINO, CALIF., US

8328 Change in the person/name/address of the agent

Representative=s name: WILHELMS, KILIAN & PARTNER, 81541 MUENCHEN