[go: up one dir, main page]

DE69620301T2 - Fensterverwaltung - Google Patents

Fensterverwaltung

Info

Publication number
DE69620301T2
DE69620301T2 DE69620301T DE69620301T DE69620301T2 DE 69620301 T2 DE69620301 T2 DE 69620301T2 DE 69620301 T DE69620301 T DE 69620301T DE 69620301 T DE69620301 T DE 69620301T DE 69620301 T2 DE69620301 T2 DE 69620301T2
Authority
DE
Germany
Prior art keywords
window
always
visible
windows
overlap
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
DE69620301T
Other languages
English (en)
Other versions
DE69620301D1 (de
Inventor
John Warren Trueblood
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.)
Sony Electronics Inc
Original Assignee
Sony Electronics 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 Sony Electronics Inc filed Critical Sony Electronics Inc
Application granted granted Critical
Publication of DE69620301D1 publication Critical patent/DE69620301D1/de
Publication of DE69620301T2 publication Critical patent/DE69620301T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04804Transparency, e.g. transparent or translucent windows

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • User Interface Of Digital Computer (AREA)
  • Digital Computer Display Output (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Generation (AREA)

Description

  • Die vorliegende Erfindung betrifft Fensterverwaltung bzw. Fenstermanagement bei Computersystemen. Eine bevorzugte Ausführungsform der Erfindung betrifft ein Verfahren und Gerät zur Anzeige einer Klasse immer sichtbarer Fenster bei einem X-Windows-System.
  • Ein Fenster ist ein Benutzerschnittstellenobjekt, das eine Korrelation zwischen einem speziellen Datensatz und einem speziellen Schirmbereich herstellt. Wenn das Fenster nicht verborgen oder durch ein anderes Benutzerschnittstellenobjekt bedeckt ist, wird der Datensatz typischerweise im korrespondierenden Schirmbereich angezeigt. Es hat sich erwiesen, dass die Verwendung von Fenstern eine effektive Art und Weise der Informationskommunikation zu einem Computerbenutzer ist. Beispielsweise kann ein Wortverarbeitungssystem, das einem Benutzer das Öffnen mehrerer Dokumente erlaubt, ein separates Fenster zur Anzeige der Inhalte jeder der geöffneten Dokumente bereitstellen.
  • Zwecks zusätzlicher Flexibilität erlauben viele Fenstermanagementsysteme, dass sich Fenster zueinander überlappen. Zwei Fenster überlappen sich, wenn es eine Überschneidung zwischen Schirmbereichen, die den Fenstern zugeordnet sind, gibt. Werden die Inhalte zweier oder mehr sich überlappenden Fenstern im gemeinsamen Schirmbereich angezeigt, kann die Information verstümmelt und schwer lesbar erscheinen. Folglich muss das Fenstermanagementsystem festlegen, was in dem Bereich, der den sich überlappenden Fenstern gemeinsam ist, angezeigt werden soll.
  • Um dieses durch sich überlappende Fenster hervorgerufene Problem anzugehen, ordnen die meisten Fenstermanagementsysteme jedem Fenster eine Position in einer "Stapelordnung" zu. Wenn sich mehrere Fenster den gleichen Schirmbereich teilen, wird nur die Information aus dem Fenster, das die höhere Position in der Stapelordnung aufweist, im Schirmbereich angezeigt. Infolgedessen wird der mit dem gemeinsamen Schirmbereich korrespondierende Abschnitt des niedriger angeordneten Fensters von dem mit dem Schirmbereich korrespondierenden Abschnitt des höher angeordneten Fensters "bedeckt". Dies bewirkt, dass einem Benutzer das niedriger angeordnete Fenster so erscheint, als wäre es körperlich unter dem höher angeordneten Fenster.
  • Die meisten Fenstermanagementsysteme erlauben Benutzern, individuelle Fenster zu bewegen, in der Größe zu ändern bzw. zu skalieren und deren Stapelordnung zu ändern oder wechseln. Beispielsweise nimmt bei dem von Apple Computer Inc. erhältlichen System-7-Betriebssystem ein Fenster die höchste Position in der Stapelordnung ein, wenn ein Benutzer unter Verwendung einer Eingabeeinrichtung wie beispielsweise einer Maus oder einer Rollkugel bzw. einem Trackball auf einen Abschnitt des Fensters klickt. Ein Fenster wird durch Ziehen einer Ecke am Boden des Fensters, bis das Fenster die gewünschten Dimensionen hat, skaliert. Ein Fenster wird durch Ziehen der Titelleiste des Fensters zu einer neuen Position auf dem Anzeigeschirm bewegt.
  • Bei manchen Anwendungen kann es wichtig sein, sicherzustellen, dass eine gewisse Information für den Benutzer immer sichtbar ist. Wird jedoch die Information in einem Fenster bei einem System angezeigt, das ein Überlappen von Fenstern erlaubt, kann die wesentliche Information vor dem Benutzer verborgen werden. Beispielsweise kann die Information verdeckt werden, wenn der Benutzer eine gewisse Tätigkeit ausführt, die bewirkt, dass ein Fenster, das in der Stapelordnung höher ist, sich mit dem gegebenen Fenster überlappt. Es können viele Arten von Benutzertätigkeiten bewirken, dass diese Situation auftritt. Beispielsweise kann der Benutzer bewirken, dass ein sich schon überlappendes Fenster eine Position in der Stapelordnung einnimmt, die höher ist, als die Position des gegebenen Fensters. Alternativ dazu kann der Benutzer ein Fenster, das in der Stapelordnung schon höher ist, zu einer Schirmposition bewegen, die sich mit dem gegebenen Fenster überlappt.
  • Es sind verschiedene Versuche gemacht worden, um zu verhindern, dass in einem Fenster angezeigte wichtige Information vor dem Benutzer verborgen wird. Beispielsweise stellt PC Tools for Windows ein fensterbasiertes grafisches Desktop bereit, durch das ein Benutzer spezifizieren kann, dass ein Fenster immer oben bzw. "always on top" bleibt. Dem immer oben bleibenden Fenster bzw. "Always-on-top"- Fenster ist eine Position in der Stapelordnung zugeordnet, die höher als die gewöhnlichen Fenstern zugeordnete höchste Position ist. Wenn folglich ein beliebiges Fenster derart manipuliert wird, dass es sich mit dem "Always-on-top"- Fenster überlappt, bedeckt der Überlappungsabschnitt des "Always-on-top"-Fensters das andere Fenster im gemeinsamen Schirmbereich.
  • Diese Vorgehensweise arbeitet gut, solange es nur ein Fenster gibt, das kritische Information enthält. Ein Problem tritt jedoch auf, wenn mehr als ein "Always-on-top"- Fenster benötigt werden. Werden bei PC Tools for Windows zwei Fenster als "Always-on-top"-Fenster bezeichnet, verhalten sie sich zueinander so, wie es normale Fenster zueinander tun. Das heißt, ein "Always-on-top"-Fenster weist eine höhere Stapelordnungsposition als das andere auf. Wird bewirkt, dass sich die zwei "Always-on-top"-Fenster überlappen, deckt im gemeinsamen Schirmbereich das höher angeordnete Fenster das niedriger angeordnete Fenster ab. Die im abgedeckten Abschnitt enthaltene Information des niedriger angeordneten Fensters ist für den Benutzer nicht länger sichtbar. Werden infolgedessen mehr als ein "Always-on- top"-Fenster angezeigt, kann nicht sichergestellt werden, dass für den Benutzer kritische Information immer sichtbar ist.
  • Ein Weg zur Vermeidung dieses Problems ist, jedes Mal nur ein "Always-on-top"-Fenster zuzulassen. Beispielsweise beschreibt die französische Patentveröffentlichung Nr. 2 693 810 ein Fenstermanagementsystem, das nur ein Fenster erzeugt, welches von anderen Fenstern nicht verborgen werden kann. Wenn ein Benutzer ein zweites Fenster als ein nicht verbergbares Fenster bezeichnet, hört das erste nicht verbergbare Fenster auf, nicht verbergbar zu sein. Da dieses System nicht für mehrere nicht verbergbare Fenster sorgt, ist seine Anwendbarkeit beschränkt.
  • Ein in Research Disclosure, Dezember 1992/1993, Nr. 344, Emsworth, GB veröffentlichter Artikel mit dem Titel "Automatic Tiling of Arbitrary Objects" lehrt eine Methodologie, die ein Freigeben oder Sperren eines automatischen Verfliesungsmodus erlaubt. Bei Freigabe wird eine konfigurierbare Klasse von Objekten (beispielsweise Icons, Tafeln, Fenster usw.) automatisch derart bemessen, dass sich kein Objekt überlappt und eine vernünftige maximale Größe des Objekts erreicht wird.
  • Aus dem US Patent Nr. 4 783 548 geht ein Multifenstersystem hervor, bei dem mehrere Fenster auf einem Anzeigeschirm eingestellt sind. Wird nach einer Änderung der Anzeigepriorität der Fenster detektiert, dass bei Ausführung der Anzeigepriorität ein Fenster existiert, das von anderen Fenstern mit höherer Priorität vollständig bedeckt ist und vollständig vom Schirm verschwindet, wird das Fenster, das vollständig bedeckt würde, automatisch zu einer Position verschoben, bei der ein Teil dieses Fensters auf dem Schirm gesehen werden kann, wonach das Fenster auf dem Schirm angezeigt wird.
  • Die Erfindung ist in den unabhängigen Ansprüchen 1 und 14 dargelegt, wobei verschiedene spezifische Ausführungsformen in den abhängigen Ansprüchen definiert sind.
  • Ausführungsformen der vorliegenden Erfindung können ein Verfahren und Gerät zur Herstellung einer immer sichtbaren Klasse von Fenstern bzw. Klasse von Immersichtbarfenstern in einer Computerimplementierten Fenstertechnik bzw. Fensterumgebung herstellen. Ein Benutzer kann ein oder mehrere Fenster als immer sichtbare Fenster bzw. Immersichtbarfenster bezeichnen. Wenn ein Immersichtbarfenster und ein nicht immer sichtbares Fenster bzw. Nichtimmersichtbarfenster einander überlappen, wird das Immersichtbarfenster oben auf dem Nichtimmersichtbarfenster angezeigt. Es wird verhindert, dass Immersichtbarfenster einander überlappen. Es sind Techniken bereitgestellt, um die Klasse der Immersichtbarfenster derart zu implementieren, dass sie mit dem X-Windows-System verträglich ist. Gemäß einer Technik wird das Vorrangumleitungsattribut als ein Kennzeichen zum Bezeichnen, welche Fenster Immersichtbarfenster sind, benutzt. Gemäß einer alternativen Technik wird eine Liste aus Immersichtbarfenstern als eine an einem Wurzel- bzw. Grundfenster angebrachte Eigenschaft beibehalten.
  • Ausführungsformen der Erfindung können auch ein Verfahren zum Anzeigen von Information auf einer Anzeigeeinrichtung eines Computersystems bereitstellen. Gemäß dem Verfahren wird Information in mehreren Fenstern auf der Anzeigeeinrichtung gleichzeitig angezeigt. Die mehreren Fenster enthalten ein erstes Immersichtbarfenster. Mehrere Konfigurationen, die mit den mehreren Fenstern korrespondieren, werden beibehalten. Insbesondere wird die Konfiguration für jedes Fenster beibehalten, um die Stelle und die Abmessungen bzw. Dimensionen des Fensters auf der Anzeigeeinrichtung zu reflektieren.
  • Es wird ein Ereignis detektiert, das einen Abschnitt eines zweiten Fensters veranlasst, einen gemeinsamen Bereich auf der Anzeigeeinrichtung mit einem Abschnitt des ersten Immersichtbarfensters einzunehmen. Beim Detektieren eines solchen Ereignisses wird festgestellt, ob das zweite Fenster ebenfalls ein Immersichtbarfenster ist. Ist das zweite Fenster ein Immersichtbarfenster, wird die Konfiguration eines oder beider Fenster geändert, um ein Überlappen zwischen den Fenstern zu verhindern. Wenn das zweite Fenster kein Immersichtbarfenster ist, wird das erste Fenster über dem zweiten Fenster angezeigt.
  • Ausführungsformen der vorliegenden Erfindung können auch eine Stapelordnung bereitstellen, die für die mehreren Fenster beibehalten wird. Es wird eine Benutzereingabe empfangen, die das zweite Fenster veranlasst, eine höhere Position in der Stapelordnung zu haben als das erste Immersichtbarfenster. Ist das zweite Fenster kein Immersichtbarfenster, wird die Stapelordnung geändert, um das erste Immersichtbarfenster zu veranlassen, eine höhere Position in der Stapelordnung als das zweite Fenster zu haben.
  • Es können verschiedene Techniken zum Bezeichnen eines Fensters als ein Immersichtbarfenster verwendet werden. Gemäß einer Ausführungsform wird das beim X-Windows-System verwendete Vorrangumleitungsattribut als ein Kennzeichen zum Bezeichnen von Immersichtbarfenstern benutzt. Gemäß einer anderen Ausführungsform wird eine an dem Grundfenster angebrachte Eigenschaft als eine Immersichtbarfensterliste definiert. Zum Bezeichnen eines Fensters als Immersichtbarfenster wird zur Immersichtbarfensterliste ein Eingang bzw. eine Eingabe addiert, der bzw. die das Fenster identifiziert. Jede dieser beiden Techniken kann ohne Abweichung vom X-Windows-Standard verwendet werden.
  • Nachfolgend beschriebene bevorzugte Ausführungsformen der Erfindung stellen bereit:
  • Ein Fenstertechniksystem, das erlaubt, dass Information gleichzeitig in mehreren Immersichtbarfenstern angezeigt wird,
  • eine immer sichtbare Klasse von Fenstern in einem Fenstermanagementsystem, das mit den derzeitigen X-Windows- Standards konsistent ist, und
  • ein Fenstermanagementsystem, das Benutzern erlaubt, Fensterattribute einschließlich eines Immersichtbarattributs und eines Transparenthintergrundattributs zu kombinieren.
  • Die vorliegende Erfindung ist beispielhaft und nicht einschränkend in den Figuren der beigefügten Zeichnungen dargestellt, in denen gleiche Bezugszeichen gleiche Elemente bezeichnen und in denen:
  • Fig. 1 ein Computersystem darstellt, auf das die bevorzugte Ausführungsform der vorliegenden Erfindung angewendet werden kann;
  • Fig. 2 eine Anzeigeeinrichtung darstellt, die gleichzeitig zwei Immersichtbarfenster und zwei normale Fenster auf einem Schirm gemäß einer Ausführungsform der Erfindung anzeigt;
  • Fig. 3 den Schirm nach Fig. 2 darstellt, nachdem der Benutzer ein normales Fenster, das sich mit einem Immersichtbarfenster überlappt, gewählt hat;
  • Fig. 4 den Schirm nach Fig. 2 darstellt, wenn der Benutzer sich im Prozess des Wählens und Vergrößerns eines normalen Fensters befindet, um das normale Fenster zu veranlassen, sich mit einem Immersichtbarfenster zu überlappen;
  • Fig. 5 den Schirm nach Fig. 2 darstellt, wenn die in Fig. 4 dargestellte Größenänderungs- bzw. Skalierungsoperation beendet ist;
  • Fig. 6 den Schirm nach Fig. 2 darstellt, wenn ein Benutzer versucht hat, ein Immersichtbarfenster in eine neue Position zu bewegen, die das Fenster veranlassen würde, ein anderes Immersichtbarfenster zu überlappen;
  • Fig. 7 den Schirm nach Fig. 2 nach der in Fig. 6 gezeigten Operation darstellt, zeigend, wie das bewegte Fenster nicht ein anderes Immersichtbarfenster überlappen darf;
  • Fig. 8 den Schirm nach Fig. 2 darstellt, wenn ein Benutzer versucht, ein Immersichtbarfenster derart zu skalieren, um das Immersichtbarfenster zu veranlassen, sich mit einem anderen Immersichtbarfenster zu überlappen;
  • Fig. 9 den Schirm nach Fig. 2 nach der in Fig. 8 gezeigten Operation darstellt;
  • Fig. 10 ein funktionelles Blockschaltbild eines Systems darstellt, das Immersichtbarfenster gemäß einer Ausführungsform der Erfindung implementiert;
  • Fig. 11 ein funktionelles Blockschaltbild eines Systems darstellt, das Immersichtbarfenster gemäß einer alternativen Ausführungsform der Erfindung implementiert;
  • Fig. 12a die Operation eines X-Client gemäß einer Ausführungsform der Erfindung darstellt;
  • Fig. 12b die Schritte zum Bezeichnen eines Immersichtbarfensters gemäß einer Ausführungsform der Erfindung darstellt;
  • Fig. 12c Schritte zum Bezeichnen eines Immersichtbarfensters gemäß einer alternativen Ausführungsform der Erfindung darstellt;
  • Fig. 13a die Operation eines Hilfsspeicher- bzw. Bump-Fenstermanagers gemäß einer Ausführungsform der Erfindung darstellt;
  • Fig. 13b die vom Bump-Fenstermanager ausgeführten Schritte zum Initialisieren einer Immersichtbarfensterliste darstellt;
  • Fig. 13c die vom Bump-Fenstermanager ausgeführten Schritte zum Bearbeiten der immer Sichtbarfensterliste zur Vermeidung einer Überlappung zwischen Immersichtbarfenstern darstellt;
  • Fig. 13d die vom Bump-Fenstermanager ausgeführten Schritte in Abhängigkeit von einer Detektion eines ein Fenster beeinflussenden Ereignisses darstellt; und
  • Fig. 13e eine Fortsetzung des in Fig. 13d dargestellten Flussdiagramms ist.
  • Es werden ein Verfahren und Gerät zum gleichzeitigen Anzeigen mehrerer Immersichtbarfenster beschrieben. In der folgenden Beschreibung sind zu Erläuterungszwecken zahlreiche spezielle Details dargelegt, um ein vollständiges Verständnis der vorliegenden Erfindung zu erzeugen. Es ist jedoch für den Fachmann einleuchtend, dass die vorliegende Erfindung ohne diese speziellen Details ausgeführt werden kann. In anderen Fällen sind wohlbekannte Strukturen und Einrichtungen in Blockschaltbildform gezeigt, um ein unnötiges Verundeutlichen der vorliegenden Erfindung zu vermeiden.
  • Bezugnehmend auf die Fig. 1 ist das Computersystem, bei dem die bevorzugte Ausführungsform der vorliegenden Erfindung implementiert werden kann, mit 100 bezeichnet. Das Computersystem 100 weist ein Bus oder eine andere Kommunikationseinrichtung 101 zur Informationskommunikation und eine an den Bus 101 gekoppelte Verarbeitungseinrichtung 102 zum Verarbeiten von Information auf. Das System 100 weist außerdem einen Direktzugriffsspeicher (RAM) oder eine andere dynamische Speichereinrichtung 104 (als Hauptspeicher bezeichnet) auf, der bzw. die an den Bus 101 zum Speichern von Information und von vom Prozessor 102 auszuführenden Befehlen auf. Der Hauptspeicher 104 kann auch zum zeitweiligen Speichern von Variablen oder Zwischeninformation während der Ausführung von Befehlen durch den Prozessor 102 verwendet werden. Das Computersystem 100 weist auch einen Nur-Lese-Speicher (ROM) und/oder eine statische Speichereinrichtung 106 auf, der bzw. die an den Bus 101 gekoppelt ist zum Speichern statischer Information und von Befehlen für den Prozessor 102 dient. An den Bus 101 ist zum Speichern von Information und Befehlen eine Datenspeichereinrichtung 107 gekoppelt.
  • Außerdem kann an das Computersystem 100 eine Datenspeichereinrichtung 107, beispielsweise eine Magnetplatte oder optische Platte und ihr korrespondierender Plattenantrieb gekoppelt sein. Das Computersystem 100 kann auch über den Bus 101 an eine Anzeigeeinrichtung 121 zur Anzeige von Information für einen Computerbenutzer, beispielsweise eine Kathodenstrahlröhre (CRT), gekoppelt sein. An den Bus 101 ist typischerweise eine alphanumerische Eingabeeinrichtung 122, die alphanumerische oder andere Tasten aufweist, gekoppelt, Information und Befehlsauswahlen zum Prozessor 102 zu übertragen. Eine andere Art Benutzereingabeeinrichtung ist eine Cursorsteuerung 123, beispielsweise eine Maus, ein Trackball oder Cursorrichtungstasten, um Richtungsinformation und Befehlsauswahlen zum Prozessor 102 zu übertragen und um eine Cursorbewegung auf dem Display bzw. der Anzeige 121 zu steuern. Diese Eingabeeinrichtung hat typischerweise zwei Freiheitsgrade auf zwei Achsen, einer ersten Achse (beispielsweise x) und einer zweiten Achse (beispielsweise y), die es der Einrichtung erlauben, Positionen in einer Ebene zu spezifizieren.
  • Alternativ dazu können andere Eingabeeinrichtungen wie beispielsweise ein Schreiber bzw. Schreibstift bzw. Stylus oder eine Schreibfeder bzw. Pen zum Zusammenwirken mit der Anzeige verwendet werden. Ein auf einem Computerschirm angezeigtes Objekt kann durch Verwendung eines Stylus oder einer Pen zum Berühren des angezeigten Objekts gewählt werden. Der Computer detektiert die Wahl durch Implementieren eines berührungsempfindlichen Schirms. Ähnlich können ein Lichtgriffel bzw. -schreiber bzw. eine Lichtpen und ein lichtempfindlicher Schirm zum Wählen eines angezeigten Objekts verwendet werden. Solche Einrichtungen können dementsprechend eine Wählposition und die Wahl mit einer einzigen Operation anstelle des "Zeigens und Klickens" wie bei einem eine Maus oder einen Trackball inkorporierenden System detektieren. Auf Stylus und Pen basierende Eingabeeinrichtungen sind ebenso wie berührungs- und lichtempfindliche Schirme im Stand der Technik wohlbekannt. Bei einem solchen System kann auch eine Tastatur wie beispielsweise die Tastatur 122 fehlen, wobei die gesamte Schnittstelle über den Stylus als Schreibinstrument (so wie eine Pen) bereitgestellt ist und der geschriebene Text unter Verwendung von optischen Zeichenerkennungstechniken (OCR-Techniken) interpretiert wird.
  • Die vorliegende Ausführungsform betrifft die Verwendung von Computersystemen 100 als einer Plattform zum Ausführen von Anwendungsprogrammen, welche die Anzeige mehrerer Immersichtbarfenster unterstützen. Die bevorzugte Ausführungsform der vorliegenden Erfindung ist zur Verwendung mit dem X-Windows-System entwickelt worden. Das X-Windows- System wurde ursprünglich von der MIT's Projekt Athena and Digital Equipment Corporation entwickelt und wird jetzt vom X-Consortium gemanagt. Das X-Windows-System ist detailliert in Xlib Referenz Manual, Volumes 1 and 2, O'Reilly & Associates, Inc. (1995) beschrieben.
  • Beim X-Windows-System ist Funktionalität zwischen Clientanwendungen und einer Serveranwendung verteilt. Die Client- und Serveranwendungen können auf einem einzelnen Prozessor oder einer einzelnen Arbeitsstation ausgeführt werden, oder sie können zwischen mehreren Prozessoren auf mehreren Arbeitsstationen, die über ein Netzwerk verbunden sind, verteilt sein.
  • Clientanwendungen
  • Die Clientanwendungen übertragen Anfragen bzw. Anforderungen zur Serveranwendung. Die Anforderungen können Anforderungen für die Ausführung einer spezifizierten Operation oder Anforderungen für Information enthalten. Die Serveranwendung reagiert auf die Anforderungen durch Ausführen der spezifizierten Operation oder durch Senden einer Antwort zur Clientanwendung, welche die angeforderte Information enthält.
  • Serveranwendungen
  • Zusätzlich zu Serveranforderungen sendet die Serveranwendung Ereignismeldungen und Fehlermeldungen zu den Clientanwendungen. Ereignismeldungen informieren die Clientanwendungen darüber, dass ein gewisses Ereignis aufgetreten ist. Typischerweise sind die Clientanwendungen so ausgebildet, dass sie bei Empfang gewisser Ereignismeldungen eine gewisse Aktion ausführen. Fehlermeldungen teilen dem Client mit, dass eine vorhergehende Anforderung des Client ungültig war.
  • Die Serveranwendung erhält komplexe Abstraktionen von Ressourcen aufrecht. Solche Ressourcen können beispielsweise Fenster, Bild- bzw. Pixkarten, Farbkarten, Cursor, Schriftarten bzw. Fonts und Grafikkontexte enthalten. Die Abstraktionen für eine Ressource enthält Attribute für die Ressource. Beispielsweise enthält die Abstraktion für ein Fenster Information über die Größe, Position, Randbreite und Stapelordnung des Fensters (die "Konfiguration" des Fensters).
  • Da die Abstraktionen mit dem Server aufrecht erhalten werden, ist nur eine Kopie der Abstraktionen erforderlich, ungeachtet dessen, wie viele Clients die Ressourcen benutzen. Da Clients keinen Zugriff auf die Abstraktionen selbst haben, müssen die Clients Anforderungen an die Serveranwendung übertragen, um Information über die Ressourcen wiederzugewinnen. Wenn ein Client eine Anforderung überträgt, die eine Ressource betrifft, identifiziert der Client die Ressource mit einer ganzzahligen Kennung bzw. ID, die mit der Ressource korrespondiert. Da nur eine ganzzahlige ID und nicht eine komplexe Abstraktion gesendet wird, ist der Verkehr zwischen den Clients und dem Server reduziert.
  • Der Fenstermanager
  • Eine Speziellzweck-Clientanwendung betrifft den Fenstermanager. Der Fenstermanager ist eine Clientanwendung, die gewisse spezielle Zuständigkeiten aufweist. Insbesondere vermittelt der Fenstermanager konkurrierende Befehle für die physikalischen Ressourcen einer den Schirmraum und die Farbtabelle bzw. Farbkarte enthaltenden Anzeige. Typischerweise veranlasst der Fenstermanager die Serveranwendung, eine Benutzerschnittstelle zu erzeugen, die es einem Benutzer erlaubt, Fenster auf dem Schirm herumzubewegen, Fenster zu skalieren und neue Anwendungen zu starten.
  • Fordert eine Clientanwendung eine Änderung der Konfiguration eines Fensters an, so sendet die Clientanwendung eine Anforderung an den Server. Da jedoch die Anforderung eine vom Fenstermanager gesteuerte Zuständigkeit betrifft, bedient die Serveranwendung die Anforderung nicht. Anstelle dessen beseitigt die Serveranwendung die Anforderung und überträgt eine die Argumente der Rekonfigurationsanforderung enthaltende Ereignismeldung zum Fenstermanager, um den Fenstermanager von der Rekonfigurationsanforderung zu informieren. Der Fenstermanager bestimmt dann, ob die in der Rekonfigurationsanforderung spezifizierten Modifikationen ausgeführt, modifiziert oder verweigert werden sollen. Bestimmt der Fenstermanager, dass die Modifikationen ausgeführt werden sollen, sendet der Fenstermanager die Rekonfigurationsanforderung an den Server. Da die Rekonfigurationsanforderung vom Fenstermanager stammt, bedient der Server die Rekonfigurationsanforderung. Bestimmt der Fenstermanager, dass die Rekonfigurationsanforderung modifiziert werden soll, sendet der Fenstermanager eine modifizierte Rekonfigurationsanforderung an die Serveranwendung. Der Prozess des Sendens von Rekonfigurationsanforderungen an den Fenstermanager zur Genehmigung bevor der Server auf die Rekonfigurationsanforderungen einwirkt, wird als Substrukturumleitung bezeichnet.
  • Fensterattribute
  • Wie oben erwähnt hält die Serveranwendung komplexe Datenstrukturen aufrecht, die Information über Ressourcen enthalten. Zusätzlich zu einer Fensterkonfiguration enthält die Datenstruktur für ein Fenster Information darüber, wie das Fenster auszusehen und zu agieren hat. Diese Information wird als Fensterattribute bezeichnet. Ein Attribut eines Fensters wird als Substrukturumleitungs-Aufhebung bzw. Substructure Redirect Override bezeichnet. Das Substructure-Redirect-Override-Attribut bestimmt, ob ein Fenster ohne Intervention durch den Fenstermanager auf dem Schirm abgebildet werden darf.
  • Immersichtbarfenster
  • Die vorliegende Ausführungsform erlaubt es einer Clientanwendung, Immersichtbarfenster, d.h. Fenster, die immer sichtbar sind, zu erzeugen und anzuzeigen. Es können mehrere Immersichtbarfenster gleichzeitig existieren, ohne dass die Eigenschaft des Immersichtbarseins des Fensters aufgehoben wird. Die Immersichtbarfenster können auch mit einer beliebigen Zahl normaler Fenster gleichzeitig existieren. In diesem Zusammenhang betreffen normale Fenster alle Fenster, die nicht Immersichtbarfenster sind. Das generelle Verhalten von Immersichtbarfenstern wird nun unter Bezugnahme auf die Fig. 2 bis 8 beschrieben.
  • Fensterverhalten
  • Gemäß der bevorzugten Ausführungsform der Erfindung wird das Fensterverhalten durch zwei einfache Regeln beherrscht. Erstens werden normalen Fenstern niemals höhere Positionen in der Stapelordnung gegeben als Immersichtbarfenstern. Dies hat zur Folge, dass kein Abschnitt eines Immersichtbarfensters jemals von einem normalen Fenster bedeckt oder verborgen wird. Zweitens werden Immersichtbarfenster daran gehindert, einander zu überlappen. Dies hat zur Folge, dass kein Abschnitt eines Immersichtbarfensters jemals von irgendeinem anderen Immersichtbarfenster bedeckt oder verborgen wird.
  • Diese Regeln sind in den Fig. 2 bis 9 dargestellt. Bezugnehmend auf die Fig. 2 stellt diese ein Anzeigeeinrichtung 200 dar, die gleichzeitig zwei Immersichtbarfenster 204 und 206 und zwei normale Fenster 208 und 210 auf einem Schirm 202 anzeigt. Auf dem Schirm 202 ist auch ein visueller Zeiger 212 gezeigt. Der visuelle Zeiger 212 wird von einem Benutzer zum Zeigen auf eine Stelle auf dem Schirm 202 verwendet. Der visuelle Zeiger 212 bewegt sich in Abhängigkeit von einer Benutzermanipulation einer Benutzereingabeeinrichtung, beispielsweise eine Maus oder ein Trackball, über den Schirm 202.
  • In dem in Fig. 2 gezeigten Zustand des Schirms 202 überlappen sich das Fenster 210 und das Fenster 208 und das Fenster 210 deckt einen Abschnitt des Fensters 208 ab. Die Fenster 204 und 206 überlappen Abdeckungsabschnitte des Fensters 210. Von den Fenstern 204 und 206 werden keine Abschnitte von irgendwelchen anderen Fenstern abgedeckt.
  • Wie oben erwähnt, hängt die Feststellung, welches Fenster das andere überlappt, von der laufenden Position der Fenster in der Stapelordnung ab. Das Fenster, das in der Stapelordnung höher ist, wird im Überlappungsbereich angezeigt, wobei die Fenster abgedeckt werden, die in der Stapelordnung niedriger sind. Folglich zeigt der Zustand des Schirms 202 in Fig. 2 an, dass das Fenster 210 in der Stapelordnung derzeit bzw. laufend höher ist als das Fenster 208, und dass die Fenster 204 und 206 in der Stapelordnung laufend höher sind als das Fenster 210.
  • Es können zahlreiche Fenstermanipulationsoperationen bewirken, dass sich zwei Fenster überlappen. Beispielsweise kann ein Fenster von einer Stelle auf dem Schirm 202 zu einer anderen Stelle 202 bewegt werden. Außerdem kann ein Fenster in der Größe verändert bzw. skaliert werden, um einen größeren Abschnitt des Schirms 202 zu bedecken. Andere Fenstermanipulationsoperationen ändern die Stapelordnung. Wird die Stapelordnung geändert, um ein Fenster, das von einem anderen Fenster bedeckt ist, in der Stapelordnung höher zu platzieren als das Fenster, das es bedeckt, wird das Fenster neu aufgebaut, um das andere Fenster zu bedecken. Bei typischen Fenstertechniksystemen muss ein Fenster gewählt werden, bevor es manipuliert werden kann. Der Wählprozess kann beispielsweise das Betätigen einer Benutzereingabeeinrichtung zum Positionieren des visuellen Zeigers 212 über einem visuellen Abschnitt eines Fensters und das Ausführen einer vordefinierten Benutzereingabeoperation (beispielsweise ein Klicken einer Maustaste) umfassen. Bei typischen Fenstertechniksystemen platziert die Wahl eines Fensters automatisch das Fenster in der Stapelordnung ganz oben. Wie nun unter Bezugnahme auf die Fig. 3 bis 8 beschrieben wird, modifiziert jedoch die vorliegende Erfindung dieses Standardfenstertechnikverhalten, um Immersichtbarfenster zu erhalten oder unterstützen.
  • Fig. 3 stellt einen Schirm 202 dar, nachdem ein Benutzer das Fenster 210 gewählt hat. Die derzeit abgedeckten Ränder des Fensters 210 sind durch gestrichelte Linien dargestellt. Wie oben erwähnt würde bei einem typischen Fenstertechniksystem die Wahl des Fensters 210 das Fenster 210 veranlassen, sich in der Stapelordnung in die höchste Position zu bewegen. Deshalb würde das Fenster 219 neu aufgebaut, um die Abschnitte der anderen Fenster, mit denen es sich überlappt, abzudecken. Gemäß der vorliegenden Ausführungsform jedoch wird ein normales Fenster wie beispielsweise das Fenster 210 in der Stapelordnung niemals in eine höhere Position bewegt, als irgendein derzeit existierendes Immersichtbarfenster. Folglich würde die Wahl des Fensters 210 nicht das Fenster 210 veranlassen, sich in der Stapelordnung über die Fenster 204 und 206 zu bewegen. Deshalb würde nach der Wahl des Fensters 210 der Schirm 202 noch wie in der Fig. 2 dargestellt mit den von Abschnitten der Fenster 204 und 206 bedeckten Abschnitten des Fensters 210 erscheinen. Infolgedessen veranlasst die Wahl eines normalen Fensters, das sich mit einem oder mehreren Immersichtbarfenstern überlappt, das Normalfenster nicht, in der Stapelordnung höher als die Immersichtbarfenster bewegt zu werden.
  • Bezugnehmend auf die Fig. 4 stellt diese eine Situation dar, bei der ein Benutzer das Fenster 208 gewählt und vergrößert hat. Normalerweise würde die Wahl von 208 das Fenster 208 veranlassen, sich in der Stapelordnung in die höchste Position zu bewegen. Jedoch auf der Basis der bei der vorliegenden Ausführungsform implementierten Fensterverhaltensregeln wird das Fenster 208 in der Stapelordnung relativ zu anderen normalen Fenstern in der höchsten Position platziert, bleibt jedoch in der Stapelordnung relativ zu allen existierenden Immersichtbarfenstern niedriger. Folglich würde nach der Skalierung des Fensters 208 wie in Fig. 4 dargestellt der Schirm 202 wie in Fig. 5 dargestellt erscheinen. Insbesondere würde das Fenster 208 in der Stapelordnung höher platziert als das Fenster 210, jedoch noch niedriger als die Fenster 204 und 206. Infolgedessen würden die Fenster 204 und 206 das Fenster 208 noch bedecken, jedoch würde das Fenster 208 jetzt das Fenster 210 bedecken.
  • Fig. 6 stellt einen Versuch dar, zwei Immersichtbarfenster zu veranlassen, sich zu überlappen. Insbesondere stellt Fig. 6 die Situation dar, bei der ein Benutzer versucht hat, das Fenster 206 in eine neue Position auf dem Schirm 202 zu bewegen, die das Fenster 206 veranlassen würde, sich mit dem Fenster 204 zu überlappen. Wie oben erwähnt hindert die vorliegende Ausführungsform zwei Immersichtbarfenster daran, sich zu überlappen. Folglich wird das vom Benutzer manipulierte Immersichtbarfenster anders als das Anzeigefenster 206 in der vom Benutzer angezeigten Position in die nächste nicht überlappende vorhergehende Position zurückbewegt. Der Effekt dieses Verhaltens ist, dass zwei Immersichtbarfenster so erscheinen, dass sie anstelle sich zu überlappen aneinander stoßen. Fig. 7 stellt die Position des Fensters 206 nach der bei Fig. 6 ausgeführten Operation dar. Insbesondere ist das Fenster 206 jetzt neben dem Fenster 204, überlappt es jedoch nicht. Es sei darauf hingewiesen, dass in der Stapelordnung die Position eines Immersichtbarfensters in Bezug auf andere Immersichtbarfenster irrelevant ist, da sich Immersichtbarfenster niemals überlappen dürfen.
  • Fig. 8 stellt einen Versuch dar, ein Immersichtbarfenster derart zu skalieren, dass das Immersichtbarfenster veranlasst wird, sich mit einem anderen Immersichtbarfenster zu überlappen. Insbesondere ist das Fenster 206 skaliert worden, um sich mit dem Fenster 204 zu überlappen. Wie bei dem vorherigen Beispiel reagiert die vorliegende Ausführungsform durch Begrenzung der Skalierungsoperation des Fensters 206 auf die nächste nicht überlappende vorherige Position. Dies könnte beispielsweise in den in Fig. 9 dargestellten Fensterpositionen resultieren.
  • Es sei darauf hingewiesen, dass ein Bewegen des bearbeiteten Immersichtbarfensters zurück in die nächste nicht überlappende vorherige Position nur eine von mehreren möglichen Techniken zum Implementieren der vorliegenden Erfindung ist. Beispielsweise können Überlappungen zwischen Immersichtbarfenstern auch dadurch verhindert werden, dass das bearbeitete Immersichtbarfenster nach jeder Operation, die andernfalls das Immersichtbarfenster veranlassen würde, sich mit einem anderen Immersichtbarfenster zu überlappen, in seinen Anfangszustand zurückgebracht wird.
  • Alternativ dazu kann ein Überlappen zwischen Immersichtbarfenstern dadurch verhindert werden, dass die Bewegung eines Immersichtbarfensters zum "Stoßen" anderer Immersichtbarfenster aus ihren derzeitigen Positionen erlaubt wird. Versucht infolgedessen ein Benutzer, das Fenster 206 in Fig. 9 aufwärts zu bewegen, würde sich das Fenster 204 zusammen mit ihm aufwärts bewegen. Vorzugsweise würde diese Repositionierung der Fenster 204 und 206 nach oben angehalten, sobald das Fenster 204 den Rand des Schirms 202 erreichte. Die "Stoß"-Technik zur Verhinderung einer Überlappung zwischen den Immersichtbarfenstern erfordert Fenstermanagementroutinen, die komplexer sind, als sie bei anderen Überlappungsverhinderungstechniken erforderlich sind. Diese Komplexität hat den Grund in der Tatsache, dass die Bewegung eines Immersichtbarfensters die Bewegung einer beliebigen Zahl anderer Immersichtbarfenster benötigt (beispielsweise stößt das Fenster A das Fenster B, welches die Fenster C und D usw. stößt). Die vorliegende Erfindung ist nicht auf eine spezielle Art und Weise der Implementierung der oben beschriebenen Fensterverhaltensregeln beschränkt.
  • Allgemeine Systembeschreibung
  • Fig. 10 stellt ein funktionelles Blockschaltbild eines Computersystems 1000 zur Implementierung des oben beschriebenen Fensterverhaltens dar. Das Computersystem 1000 weist eine Anzeigeeinrichtung 1002, eine Eingabeeinrichtung 1004 und ein Fenstermanagementsystem 1006 auf. Das Fenstermanagementsystem 1006 managt die auf der Anzeigeeinrichtung 1002 angezeigten Fenster. Bei dem dargestellten Beispiel sind auf der Anzeigeeinrichtung 1002 drei Fenster 1008, 1010 und 1012 laufend angezeigt.
  • Das Fenstermanagementsystem 1006 enthält generell einen Speicher 1014, eine Fensteranzeigeeinheit 1018 und eine Eingabeempfangseinheit 1020. Der Speicher 1014 enthält mehrere Attribute 1022, 1024 und 1026 der auf der Anzeigeeinrichtung 1002 angezeigten Fenster. Die im Speicher 1014 gespeicherten Attribute 1022, 1024 und 1026 zeigen für jedes Fenster eine Stapelordnungposition, eine Schirmposition, eine Größe (enthaltend die vertikale und horizontale Abmessung) und, ob das Fenster ein Immersichtbarfenster ist, an.
  • Ein "Always-visible"- bzw. "Immersichtbar"-Attribut ist keines der normalen Fensterattribute, die in der X- Windows-Spezifikation definiert und unterstützt sind. Folglich würde ein System, das ein separat definiertes Immersichtbar-Attribut enthält, eine Erweiterung des X-Windows- Systems bilden, welches das System zu anderen Systemen inkompatibel macht. Deshalb existiert das Immersichtbar- Attribut bei der bevorzugten Ausführungsform nicht als ein separat definiertes Fensterattribut. Vielmehr werden Attribute und/oder Eigenschaften, die im X-Windows-System vorhanden sind, zum Speichern des Wertes des Immersichtbar- Attributs verwendet. Gemäß einer Ausführungsform wird das "Override-redirect"- bzw. "Überlagerungsumleitungs"- Attribut, das bei der X-Windows-Spezifikation definiert ist, als ein "Immersichtbar"-Kennzeichen verwendet. Bei einer alternativen Ausführungsform wird eine Liste als eine Eigenschaft eines Grundfensters angebracht und zum Identifizieren von Immersichtbarfenstern verwendet. Diese Ausführungsformen werden unten detaillierter beschrieben.
  • Fig. 10 stellt die Ausführungsform dar, bei der das Überlagerungsumleitungsattribut als ein Immersichtbarfensterkennzeichen verwendet ist. Bei dem dargestellten Beispiel enthalten die Attribute 1022 Daten, die anzeigen, dass das Fenster 1008 kein Immersichtbarfenster ist und dass das Fenster 1008 in der Stapelordnung das dritte ist. Die Attribute 1024 enthalten Daten, die anzeigen, dass das Fenster 1010 kein Immersichtbarfenster ist und dass das Fenster 1010 in der Stapelordnung das zweite ist. Die Attribute 1026 enthalten Daten, die anzeigen, dass das Fenster 1012 ein Immersichtbarfenster ist und dass das Fenster 1012 in der Stapelordnung das erste ist.
  • Die Fensteranzeigeeinheit 1018 veranlasst die Anzeigeeinrichtung 1002, die Fenster 1008, 1010 und 1012 auf der Basis der im Speicher 1014 gespeicherten Attribute 1022, 1024 und 1026 anzuzeigen. Wenn Abschnitte von zwei oder mehr Fenstern auf der Anzeigeeinrichtung 1002 sich einen gemeinsamen Schirmbereich teilen, veranlasst die Fensteranzeigeeinheit 1018 die Anzeigeeinrichtung 1002, den gemeinsamen Schirmbereich des Abschnitts desjenigen Fensters der zwei oder mehreren Fenster anzuzeigen, das in der Stapelordnung eine höhere Position als die anderen Fenster hat. Beispielsweise überlappen sich die Fenster 1008 und 1010. Da das Fenster 1010 in der Stapelordnung höher ist als das Fenster 1008, wird das Fenster 1010 im Überlappungsbereich angezeigt.
  • Die Eingabeempfangseinheit 1020 ist mit der Eingabeeinrichtung 1004 verbunden und empfängt eine Eingabe von einem Benutzer. Die Eingabe kann beispielsweise eine Eingabe sein, die Änderungen der im Speicher 1014 gespeicherten Attribute anzeigt. Die Fensteranzeigeeinheit 1018 enthält mehrere Einheiten zur Verarbeitung der Attributänderungen. Insbesondere enthält die Fensteranzeigeeinheit 1018 eine Überlappungsverarbeitungseinheit 1028, eine Überlappungskorrektureinheit 1030, eine Stapelordnungsverarbeitungseinheit 1032 und eine Stapelordnungskorrektureinheit 1034.
  • Die Überlappungsverarbeitungseinheit 1028 bestimmt, ob die Änderungen zwei oder mehr Immersichtbarfenster veranlassen, sich zu überlappen. Die Überlappungskorrektureinheit 1030 ändert die mehreren Attribute 1022, 1024 und 1026 so, wie sie zum Verhindern einer Überlappung zwischen Immersichtbarfenstern notwendig sind. Die Stapelordnungsverarbeitungseinheit 1032 bestimmt, ob die Änderungen ein Immersichtbarfenster veranlassen, eine niedrigere Position in der Stapelordnung als jedes Fenster, das kein Immersichtbarfenster ist, zu haben. Die Stapelordnungskorrektureinheit 1034 ändert die Attribute 1022, 1024 und 1026 so, wie sie zum Verhindern, dass das Immersichtbarfenster in der Stapelordnung eine niedrigere Position als jedes Fenster, das kein Immersichtbarfenster ist, notwendig ist.
  • Wie oben beschrieben kooperieren die Überlappungsverarbeitungseinheit 1028 und die Überlappungskorrektureinheit 1030, um sicherzustellen, dass Immersichtbarfenster niemals durch andere Immersichtbarfenster verborgen werden. Ähnlich kooperieren die Stapelordnungsverarbeitungseinheit 1032 und die Stapelordnungskorrektureinheit 1034, um sicherzustellen, dass Immersichtbarfenster nie durch irgendein Fenster, das kein Immersichtbarfenster ist, verborgen werden. Folglich werden auf der Anzeigeeinrichtung 1002 angezeigte Immersichtbarfenster nie durch irgendwelche andere Fenster verdeckt.
  • Client-basierte Implementierung
  • Wie oben erläutert steuern beim X-Windows-System Fenstermanager-Clients typischerweise die Regeln, welche die Benutzerschnittstellenaktivität regieren. Alle Anforderungen zum Beeinflussen des Verhaltens oder Aussehens von Fenstern gehen vom Fenstermanager zuerst durch die Substrukturumleitung. Derzeitige Fenstermanager unterstützen das Verhalten von oben beschriebenen Immersichtbarfenstern nicht. Folglich überlagert eine Ausführungsform der vorliegenden Erfindung eine Substrukturumleitung für Immersichtbarfenster durch Setzen des Substructur-Override-Redirect- Attributs von Immersichtbarfenstern. Da das Substructur- Override-Redirect-Attribut nur für Immersichtbarfenster gesetzt wird, dient der Wert des Substructur-Override- Redirect-Attributs auch als ein Kennzeichen zum Unterscheiden von Immersichtbarfenstern von normalen Fenstern.
  • Wenn einmal eine die vorliegende Erfindung implementierende Clientanwendung die Immersichtbarfenster wie oben beschrieben identifiziert hat, behält der Client seine eigene Liste von Immersichtbarfenstern bei. Die Liste enthält Information über jedes Immersichtbarfenster, darunter die Fenster-ID, den Ort und die Dimensionen des Fensters.
  • Der Client verfolgt dann alle Grafikereignisse, welche die Sichtbarkeit der Immersichtbarfenster beeinflusst. Würde irgendein Grafikereignis veranlassen, dass irgendein Abschnitt eines Immersichtbarfensters verborgen wird, modifizierte der Client das Ereignis, um die oben beschrieben Fensterverhaltensregeln zu erzwingen. Insbesondere detektiert der Client, wenn ein normales Fenster ganz oben in der Stapelordnung platziert ist und überträgt unmittelbar Anforderungen, die veranlassen, dass alle Immersichtbarfenster in der Stapelordnung höher platziert sind als das normale Fenster. Der Client detektiert auch, wenn ein Immersichtbarfenster bewegt oder skaliert wird. Die neue Position und Größe werden mit allen anderen Immersichtbarfenstern verglichen. Wenn die Fensterbewegung oder -größenänderung das Immersichtbarfenster veranlasst, sich mit einem oder mehreren anderen Immersichtbarfenstern zu überlappen, überträgt der Client eine Anforderung zum Repositionieren oder Skalieren des Immersichtbarfensters bei der nächsten Nichtüberlappungsposition.
  • Fenstermanager-basierte Implementierung
  • Eher als die vorliegenden Erfindung bei einer Clientanwendung zu implementieren, die den Fenstermanager, um Immersichtbarfenster zu implementieren, umgeht, kann die vorliegende Erfindung in einem Fenstermanager implementiert werden. Ähnlich wie bei der Clientimplementierung würde der Fenstermanager eine Liste der Immersichtbarfenster und entgegenwirkenden Ereignisse, die jeden Abschnitt eines Immersichtbarfensters veranlassen würden, abgedeckt oder verborgen zu werden, aufrechterhalten. Um jedoch zu andere Clients an der Ausführung von Operationen zu hindern, die einen Abschnitt eines Immersichtbarfensters verbergen, würde ein von der Substructur-Override-Redirect verschiedenes Kennzeichen zum Identifizieren von Immersichtbarfenstern verwendet werden. Beispielsweise kann eine Liste von Immersichtbarfenstern (eine "Immersichtbarfensterliste") definiert und als eine an dem Grundfenster angebrachte Eigenschaft definiert und erzeugt werden.
  • Bezugnehmend auf die Fig. 11 stellt diese eine Ausführungsform dar, bei der eine Immersichtbarfensterliste 1102 zum Identifizieren von Immersichtbarfenstern verwendet wird. Die Immersichtbarfensterliste 1102 enthält einen Fensteridentifizierer für jedes existierende Immersichtbarfenster. Insbesondere enthält die Immersichtbarfensterliste 1102 einen Eingang 1104, der mit dem Fenster 1012 korrespondiert, welches auf der Anzeigeeinrichtung 1102 das einzige Immersichtbarfenster ist. Während einer Fensterskalier-, Fensterwähl- oder Fensterbewegungsoperation greift die Fensteranzeigeeinheit 1018 auf die Immersichtbarfensterliste 1102 zu, um zu bestimmen, ob spezielle Fenster Immersichtbarfenster sind. Die Verwendung einer Immersichtbarfensterliste zum Identifizieren von Immersichtbarfenstern erlaubt eine gemeinsame Steuerung von Immersichtbarfenstern durch die Fensteranzeigeeinheit 1018 und einem normalen X-System-Fenstermanager.
  • X-Client-Anwendungsoperation
  • Bezugnehmend auf die Fig. 12a ist diese ein Flussdiagramm, das die Operation einer X-Client-Anwendung gemäß einer Ausführungsform der Erfindung darstellt. Der X-Client ist zum Bezeichnen eines oder mehrerer Fenster als "immer sichtbar" gekennzeichnet. Wie oben beschrieben gibt es verschiedene mögliche Verfahren zum Bezeichnen eines Fensters als ein Immersichtbarfenster. Zur Beschreibung zweier solcher Verfahren wird auf die Fig. 12b und 12c Bezug genommen. Gemäß dieser Technik sind alle Fenster, welche das "Überlagerungsumleitungs"-Attribut aufweisen, als "Immersichtbar"-Fenster gesetzt. Gemäß der zweiten Technik wird eine Fensterliste IDS für alle Immersichtbarfenster in Form einer an das Grundfenster angebrachten Eigenschaft beibehalten. Bei Verwendung dieser Technik spricht jede Anwendung, die ein Immersichtbarfenster erzeugt, auf ein Addieren der Fenster-ID zur Immersichtbarfensterliste zum Zeitpunkt der Erzeugng des Fensters an. Ein nachfolgend beschriebener Bump-Fenstermanager entfernt die ID von einem Immersichtbarfenster aus der Immersichtbarfensterliste automatisch zu dem Zeitpunkt, bei dem das Immersichtbarfenster gelöscht wird.
  • Unter nunmehriger Bezugnahme auf die Fig. 12a verbindet sich beim Schritt 1202 ein X-Client mit einem X-Server. Der X-Client verbindet sich mit dem X-Server, indem er einen Xlib-Ruf erzeugt, der einen Kommunikationspfad zwischen dem X-Client und einem bezeichneten X-Server herstellt. Beim Schritt 1204 erzeugt der X-Client ein Fenster.
  • Beim Schritt 1208 kennzeichnet der X-Client, dass das beim Schritt 1204 erzeugte Fenster ein Immersichtbarfenster ist. Wie oben erläutert kann das Fenster entsprechend einer aus jeder Menge von Techniken als Immersichtbarfenster gekennzeichnet werden. Nur eine Technik ist in der Fig. 12b bezeichnet. Gemäß dieser Technik wird beim Schritt 1216 das "Überlagerungsumleitungs"-Attribut des Fensters gesetzt.
  • Eine alternative Technik zum Kennzeichnen eines Fensters als ein Immersichtbarfenster ist in der Fig. 12c dargestellt. Gemäß der in Fig. 12c dargestellten Technik weist das Grundfenster eine Eigenschaft, die als eine Immersichtbarfensterliste definiert ist, auf. Beim Schritt 1218 wird die Immersichtbarfensterlisteneigenschaft wiedergewonnen. Beim Schritt 1220 wird ein mit dem neu erzeugten Fenster korrespondierendes Fenster-ID als eine Eingabe in die Immersichtbarfensterliste addiert. Beim Schritt 1222 wird die Eigenschaft des mit der Immersichtbarfensterliste korrespondierenden Grundfensters aktualisiert, um die revidierte Immersichtbarfensterliste zu reflektieren.
  • Unter Bezugnahme auf die Fig. 12a wiederum wird das Fenster beim Schritt 1210 abgebildet. Die Abbildung des Fensters bewirkt, dass das Fenster auf der geeigneten Anzeige angezeigt wird. Beim Schritt 1212 führt der Client die ganze Clientverarbeitung aus. Dieser Schritt stellt generell die Operation des Client dar. Die während dieses Schrittes tatsächlich ausgeführten Schritten variieren auf der Basis des X-Client und der Interaktion zwischen dem X- Client, dem Benutzer und anderen Anwendungen. Während der X-Client-Operation können verschiedene Ereignisse auftreten, die das Immersichtbarfenster beeinflussen. Beispielsweise können andere Fenster (sowohl Immersichtbarfenster als auch nicht immer sichtbare Fenster) erzeugt, abgebildet, bewegt, skaliert verändert und gelöscht werden. Wenn der X-Client durch die ganze Verarbeitung ist, löscht der X-Client das Fenster beim Schritt 1214.
  • Bump-Fenstermanageroperation
  • Gemäß einer Ausführungsform der Erfindung wird zum Erzeugen des oben beschriebenen Fensterverhaltens ein Bump- Fenstermanager verwendet. Ein Bump-Fenstermananger kann eine Komponente eines X-Windows-Managers sein oder kann zu einem X-Windows-Manager separat koexistieren. Der Zweck des Bump-Fenstermanagers ist, Fenster zu identifizieren und zu überwachen, die als Immersichtbarfenster gekennzeichnet sind. Bei einer Änderung der Stapelordnung stellt der Bump- Fenstermanager sicher, dass alle Immersichtbarfenster über allen anderen Fenstern gestapelt sind. Wird ein Immersichtbarfenster bewegt oder skaliert, prüft der Bump-Fenstermanager auf Überlappungszustände mit anderen Immersichtbarfenstern. Tritt ein solcher Überlappungszustand auf, gibt der Bump-Fenstermanager eine Bewegungs- oder Skalierungsoperation aus, um das Immersichtbarfenster, an dem die Operation ausgeführt wurde, bei einer vorherigen Position und/oder Größe, die kein anderes Immersichtbarfenster überlappt, zu platzieren. Die Operation des Bump-Fenstermanagers wird in Bezug auf die Fig. 13a, 13b, 13c, 13d und 13e detaillierter beschrieben.
  • Fig. 13a ist ein Flussdiagramm, das die Operation eines Bump-Fenstermanagers darstellt. Beim Schritt 1302 verbindet sich der Bump-Fenstermanager mit dem X-Server. Dies stellt einen Kommunikationsweg zwischen dem Bump-Fenstermanager und einem spezifizierten X-Server her.
  • Beim Schritt 1304 initialisiert der Bump-Fenstermanager eine Immersichtbarfensterliste. Bezugnehmend auf die Fig. 13b zeigt diese die während des Schrittes 1304 vom Bump-Fenstermanager ausgeführten Schritte detaillierter. Insbesondere frägt der Bump-Fenstermanager beim Schritt 1314 den X-Server nach einer Fensterliste ab. Beim Schritt 1316 identifiziert der Bump-Fenstermanager die Immersichtbarfenster in der Fensterliste und erzeugt eine Immersichtbarfensterliste. Vorzugsweise sind alle Immersichtbarfenster Abgeleitete des Grundfensters.
  • Das vom Bump-Fenstermanager verwendete Verfahren zum Identifizieren; welche der vom X-Server identifizierten Fenster Immersichtbarfenster sind, hängt von der zum Kennzeichnen von Immersichtbarfenstern verwendeten Technik ab. Wenn beispielsweise das Überlagerungsumleitungs-Attribut als ein Kennzeichen zum Bezeichnen von Immersichtbarfenstern verwendet wird, inspiziert der Bump-Fenstermanager das Überlagerungsumleitungs-Attribut aller vom X-Server identifizierten Fenster. Wenn eine an ein Grundfenster angebrachte Eigenschaft verwendet wird, um die Immersichtbarfenster aufzulisten, inspiziert der Bump-Fenstermanager die zugehörige Eigenschaft des Grundfensters.
  • Beim Schritt 1318 frägt der Bump-Fenstermanager den X- Server nach der Größe und Position aller Immersichtbarfenster ab. Beim Schritt 1320 speichert der Bump-Fenstermanager in einer Immersichtbarfensterliste die Größen, Positionen und den Fensterstatus jedes der Immersichtbarfenster. Folglich enthält die Eingabe für jedes Immersichtbarfenster in der Immersichtbarfensterliste die Fenster-ID, die Stelle, die Größe, den Status (abgebildet/nicht abgebildet) und die Stapelordnung des Immersichtbarfensters.
  • Beim Schritt 1322 verarbeitet der Bump-Fenstermanager die neue Liste. Die vom Bump-Fenstermanager ausgeführten Operationen zum Verarbeiten der neuen Immersichtbarfensterliste sind in der Fig. 13c dargestellt. Bezugnehmend auf die Fig. 13c bilden die Schritte 1326, 1338 und 1340 eine Schleife, die wiederholt wird, bis einer Überlappung zwischen abgebildeten Immersichtbarfenstern begegnet wird oder bis Eingaben für alle Immersichtbarfenster verarbeitet sind. Die Information in einem nicht abgebildeten Fenster kann nicht durch ein anderes Fenster verborgen werden, da die Information nicht selbst angezeigt wird. Deshalb wird bei der bevorzugten Ausführungsform ein Überlappen zwischen einem nicht abgebildeten Immersichtbarfenster und irgendeinem anderen Immersichtbarfenster ignoriert.
  • Wird einem Überlappen zwischen einem speziellen abgebildeten Immersichtbarfenster und einem oder mehreren anderen abgebildeten Immersichtbarfenstern begegnet, geht die Steuerung vom Schritt 1326 zum Schritt 1328. Beim Schritt 1328 bestimmt der Bump-Fenstermanager eine neue Position für das spezielle Immersichtbarfenster, die ein Überlappen zwischen dem Immersichtbarfenster und allen anderen abgebildeten Immersichtbarfenstern vermeidet. Beim Schritt 1330 wird festgestellt, ob eine solche Position existiert. Existiert eine solche Position, wird das Immersichtbarfenster zur Position beim Schritt 1336 bewegt. Existiert eine solche Position nicht, geht die Steuerung zum Schritt 1332.
  • Beim Schritt 1332 stellt der Bump-Fenstermanager fest, ob die Größengrenze des Immersichtbarfensters erreicht ist. In diesem Zusammenhang ist die Größengrenze die minimale Größe, die das Immersichtbarfenster annehmen darf. Ist die Größengrenze für das Immersichtbarfenster erreicht, geht die Steuerung zum Schritt 1338 und es wird die nächste Immersichtbarfenstereingabe in die Liste verarbeitet. Ist die Größengrenze für das Immersichtbarfenster nicht erreicht, wird die Größe des Immersichtbarfensters reduziert. Die Schritte 1326, 1328, 1330, 1332 und 1334 bilden eine Schleife derart, dass die Größe eines Immersichtbarfensters reduziert wird, bis jedes Fenster zu einer Nichtüberlappungsposition bewegt werden kann oder seine Größengrenze erreicht ist.
  • Bezugnehmend auf die Fig. 13a wiederum wartet nach dem Initialisieren der Immersichtbarfensterliste der Bump- Fenstermanager auf ein Fensterereignis (Schritt 1306). Tritt ein Fensterereignis auf, geht die Steuerung zum Schritt 1308, bei dem das Fensterereignis verarbeitet wird. Der Schritt 1308 wird unter Bezugnahme auf die Fig. 13d und 13e detaillierter beschrieben.
  • Bezugnehmend auf die Fig. 13d und 13e stellen diese ein Flussdiagramm der vom Bump-Fenstermanager beim Auftreten eines Fensterereignisses ausgeführten Schritte dar. Beim Schritt 1342 empfängt der Bump-Fenstermanager Daten, die das aufgetretene Ereignis identifizieren. Bei den Schritten 1344 bis 1358 identifiziert der Bump- Fenstermanager den Typ des aufgetretenen Ereignisses.
  • Spezifiziert das Ereignis, dass ein spezielles Fenster zu bewegen ist, geht die Steuerung vom Schritt 1344 zum Schritt 1360. Beim Schritt 1360 stellt der Bump-Fenstermanager fest, ob das Fenster, an dem die Operation auszuführen ist, ein Immersichtbarfenster ist. Ist das Fenster kein Immersichtbarfenster, muss der Bump-Fenstermanager keine weitere Verarbeitung in Abhängigkeit vom Fensterereignis ausführen. Ist das Fenster ein Immersichtbarfenster, geht die Steuerung zum Schritt 1376. Beim Schritt 1376 stellt der Bump-Fenstermanager fest, ob die Bewegung das Immersichtbarfenster veranlasst, sich mit einem anderen Immersichtbarfenster zu überlappen. Wenn nicht, muss der Bump- Fenstermanager keine weitere Verarbeitung in Abhängigkeit vom Fensterereignis ausführen. Andernfalls wird das Immersichtbarfenster beim Schritt 1384 zu einer Nichtüberlappungsstelle bewegt. Die Nichtüberlappungsstelle kann beispielsweise neben einem anderen Immersichtbarfenster sein, sich aber nicht mit diesem überlappen. Beim Schritt 1390 wird die Eingabe in die Immersichtbarfensterliste, die mit dem Fenster, das bewegt wurde, korrespondiert, aktualisiert, um die neue Stelle des Fensters, das bewegt wurde, zu reflektieren.
  • Spezifiziert das Ereignis, dass ein spezielles Fenster zu skalieren ist, geht die Steuerung vom Schritt 1346 zum Schritt 1362. Beim Schritt 1362 stellt der Bump-Fenstermanager fest, ob das Fenster, an dem die Operation auszuführen ist, ein Immersichtbarfenster ist. Ist das Fenster kein Immersichtbarfenster, muss der Bump-Fenstermanager keine weitere Verarbeitung in Abhängigkeit vom Fensterereignis ausführen. Ist das Fenster ein Immersichtbarfenster, geht die Steuerung zum Schritt 1378. Beim Schritt 1378 stellt der Bump-Fenstermanager fest, ob die Skalierungsoperation das Immersichtbarfenster veranlasst, sich mit einem anderen Immersichtbarfenster zu überlappen. Wenn nicht, muss der Bump-Fenstermanager keine weitere Verarbeitung in Abhängigkeit von dem Fensterereignis ausführen. Andernfalls wird das Immersichtbarfenster beim Schritt 1386 auf eine Größe skaliert, bei der das Immersichtbarfenster sich nicht mit irgendeinem anderen Immersichtbarfenster überlappt. Die neue Größe des Fensters ist kleiner als die beim Skalierungsereignis spezifizierte Größe. Beispielsweise kann die Größe eine Größe sein, die den Rand des skalierten Fensters veranlasst, neben dem Rand eines anderen Immersichtbarfensters zu sein, sich aber nicht mit diesem Rand zu überlappen. Beim Schritt 1392 wird die Eingabe in die Immersichtbarfensterliste, die mit dem Fenster, das skaliert wurde, korrespondiert, aktualisiert, um die neue Größe des Fensters, das skaliert wurde, zu reflektieren.
  • Ist das Ereignis eine Änderung der Stapelordnung spezifiziert, geht die Steuerung vom Schritt 1348 zum Schritt 1364. Beim Schritt 1364 stellt der Bump-Fenstermanager fest, ob in der neuen Stapelordnung irgendein nicht immer sichtbares Fenster über irgendeinem Immersichtbarfenster ist. Ist in der neuen Stapelordnung kein nicht immer sichtbares Fenster über irgendeinem Immersichtbarfenster, muss der Bump-Fenstermanager keine weitere Verarbeitung in Abhängigkeit vom Fensterereignis ausführen. Ist in der neuen Stapelordnung irgend ein nicht immer sichtbares Fenster über irgendeinem Immersichtbarfenster, geht die Steuerung zum Schritt 1380. Beim Schritt 1380 stellt der Bump-Fenstermanager die neue Stapelordnung ein, um sicherzustellen, dass in der Stapelordnung alle Immersichtbarfenster über allen nicht immer sichtbaren Fenstern sind.
  • Spezifiziert das Ereignis, dass ein spezielles Fenster zu erzeugen ist, geht die Steuerung vom Schritt 1350 zum Schritt 1366. Beim Schritt 1366 stellt der Bump-Fenstermanager fest, ob das neu erzeugte Fenster ein Immersichtbarfenster ist. Ist das Fenster kein Immersichtbarfenster, stellt der Bump-Fenstermanager beim Schritt 1382 die Stapelordnung ein, um sicherzustellen, dass in der Stapelordnung alle Immersichtbarfenster über allen nicht immer sichtbaren Fenstern sind. Ist das Fenster ein Immersichtbarfenster, geht die Steuerung zum Schritt 1388. Beim Schritt 1388 wird zu der Immersichtbarfensterliste eine Eingabe für das neu erzeugte Immersichtbarfenster addiert.
  • Spezifiziert das Ereignis, dass ein spezielles Fenster zu löschen ist, geht die Steuerung vom Schritt 1352 zum Schritt 1368. Beim Schritt 1368 stellt der Bump-Fenstermanager fest, ob das Fenster, an dem die Operation auszuführen ist, ein Immersichtbarfenster ist. Ist das Fenster kein Immersichtbarfenster, muss der Bump-Fenstermanager keine weitere Verarbeitung in Abhängigkeit von dem Fensterereignis ausführen. Ist das Fenster ein Immersichtbarfenster, geht die Steuerung zum Schritt 1396. Beim Schritt 1396 wird die Immersichtbarfensterliste aktualisiert. Insbesondere wird die Eingabe des zu löschenden Immersichtbarfensters aus der Immersichtbarfensterliste entfernt.
  • Spezifiziert das Ereignis, dass ein spezielles Fenster abzubilden ist, geht die Steuerung vom Schritt 1354 zum Schritt 1370. Beim Schritt 1370 stellt der Bump-Fenstermanager fest, ob das Fenster, an dem die Operation auszuführen ist, ein Immersichtbarfenster ist. Ist das Fenster kein Immersichtbarfenster, muss der Bump-Fenstermanager keine weitere Verarbeitung in Abhängigkeit von dem Fensterereignis ausführen. Ist das Fenster ein Immersichtbarfenster, geht die Steuerung zum Schritt 1398. Beim Schritt 1398 wird die Immersichtbarfensterliste aktualisiert. Insbesondere wird der Abbildungs/Nichtabbildungs-Status in der Eingabe für das Immersichtbarfenster revidiert, um zu reflektieren, dass das Immersichtbarfenster abgebildet wird. Ist die Eingabe einmal revidiert, wird beim Schritt 1394 die Immersichtbarfensterliste verarbeitet, um sicherzustellen, dass kein abgebildetes Immersichtbarfenster sich mit irgendeinem anderen abgebildeten Immersichtbarfenster überlappt. Die bei der Verarbeitung der Immersichtbarfensterliste involvierten Schritte sind oben in Bezug auf die Fig. 13c beschrieben.
  • Spezifiziert das Ereignis, dass ein spezielles Fenster abzubilden ist, geht die Steuerung vom Schritt 1356 zum Schritt 1372. Beim Schritt 1372 stellt der Bump-Fenstermanager fest, ob das Fenster, an dem die Operation auszuführen ist, ein Immersichtbarfenster ist. Ist das Fenster kein Immersichtbarfenster, muss der Bump-Fenstermanager keine weitere Verarbeitung in Abhängigkeit vom Fensterereignis ausführen. Ist das Fenster ein Immersichtbarfenster, geht die Steuerung zum Schritt 1400. Beim Schritt 1400 wird die Immersichtbarfensterliste aktualisiert. Insbesondere wird der Abbildungs/Nichtabbildungs-Status in der Eingabe für das Immersichtbarfenster revidiert, um zu reflektieren, dass das Immersichtbarfenster nicht länger abgebildet wird.
  • Spezifiziert das Ereignis spezifiziert, dass eine Eigenschaft eines speziellen Fenster zu ändern ist, geht die Steuerung vom Schritt 1358 zum Schritt 1374. Beim Schritt 1374 stellt der Bump-Fenstermanager fest, ob die zu ändernde Eigenschaft eine Immersichtbarfensterliste ist. Ist die zu ändernde Eigenschaft keine Immersichtbarfensterliste, muss der Bump-Fenstermanager keine weitere Verarbeitung in Abhängigkeit von dem Fensterereignis ausführen. Ist die zu ändernde Eigenschaft eine Immersichtbarfensterliste, geht die Steuerung zum Schritt 1402. Beim Schritt 1402 wird die Immersichtbarfensterliste revidiert wie es im Ereignis spezifiziert ist. Ist die Immersichtbarfensterliste einmal revidiert, wird die Immersichtbarfensterliste beim Schritt 1404 verarbeitet, um sicherzustellen, dass keine abgebildeten Immersichtbarfenster sich mit irgendwelchen anderen abgebildeten Immersichtbarfenstern überlappen. Die bei der Verarbeitung der Immersichtbarfensterliste involvierten Schritte sind oben in Bezug auf die Fig. 13c beschrieben.
  • Bezugnehmend auf die Fig. 13a wiederum definieren die Schritte 1306, 1308 und 1300 eine Schleife, in der Fensterereignisse wie oben beschrieben verarbeitet werden, bis ein Zustand eintritt, der ein den Bump-Fenstermanager veranlasst, zu abzuschließen. Beim Eintreten eines solchen Zustandes geht die Steuerung vom Schritt 1310 zum Schritt 1312. Beim Schritt 1312 schließt der Bump-Fenstermanager die zwischen dem Bump-Fenstermanager und dem X-Server hergestellte Verbindung.
  • Transparente Hintergründe
  • Gemäß einem bevorzugten Aspekt der Erfindung ist es wünschenswert, Immersichtbarfenster bereitzustellen, die einen transparenten Hintergrund aufweisen. Durch einen transparenten Hintergrund kann ein Benutzer die vom Fenster abgedeckten Schirmbereiche sehen. Nur die Vordergrunddaten im Fenster sind nicht transparent. Durch Bereitstellen von Immersichtbarfenstern mit transparentem Hintergrund kann sichergestellt werden, dass gewisse Daten immer sichtbar sind und dazu noch die von Immersichtbarfenster abgedeckte Informationsmenge minimiert ist.
  • Mögliche Anwendungen
  • Die durch die Ausführungsformen der Erfindung bereitgestellten Immersichtbarfenster sind ideal zur Verwendung bei jeder Computeranwendung, welche die konstante Anzeige kritischer Information erfordert. Beispielsweise dürfen bei einer Luftverkehrskontrolle gewisse Daten, die zu einem Flugzeug gehören, nicht von irgendeiner anderen Information abgedeckt werden. Bisher erlaubte dieser Zwang Luftverkehrskontrollanwendungen nicht, Vorteil von fensterbasierten Umgebungen zu haben. Jedoch können durch Anzeigen der kritischen Daten in Immersichtbarfenstern Luftverkehrskontrollanwendungen Vorteil von dem durch fensterbasierte Grafikumgebungen bereitgestellten Komfort haben. Luftverkehrskontrolle ist nur ein Beispiel eines Gebiets, das beträchtlichen Vorteil von der vorliegenden Erfindung haben kann. Jedoch ist die vorliegende Erfindung nicht auf irgendein spezielles Anwendungsgebiet beschränkt.

Claims (1)

1. Verfahren zur Anzeige von Information in einer fensterbasierten Schnittstelle auf einem Schirm einer Anzeigeeinrichtung in einem Computersystem, wobei das Verfahren die Schritte aufweist:
Anzeigen mehrerer Fenster auf dem Schirm, wobei die mehreren Fenster ein oder mehrere immer sichtbare Fenster (204, 206) aufweisen,
Anzeigen einer ersten Information in einem immer sichtbaren Fenster (204, 206) der mehreren Fenster,
Empfangen eines Ereignisses, das ein gewähltes Fenster der mehreren Fenster veranlassen würde, einen Abschnitt des immer sichtbaren Fensters (204, 206) zu bedecken,
Verhindern eines Überlappens des gewählten Fensters mit dem immer sichtbaren Fenster, wenn das gewählte Fenster ein immer sichtbares Fenster (204, 206) ist, und
Anzeigen des immer sichtbare Fensters auf dem Schirm oben auf dem gewählten Fenster, wenn das gewählte Fenster kein immer sichtbares Fenster (208, 210) ist.
2. Verfahren nach Anspruch 1, mit dem Schritt eines Detektierens, wenn ein Ereignis das gewählte Fenster veranlassen würde, das eine oder eines der mehreren immer sichtbaren Fenster (204, 206) zu überlappen, durch Ausführen der Schritte:
Speichern von Orientierungsdaten, die einen mit dem einen oder jedem der mehreren immer sichtbaren Fenster (204, 206) korrespondierenden Bereich des Schirms anzeigen,
Detektieren, wenn ein Versuch gemacht wird, das gewählte Fenster in einem neuen Bereich des Schirms anzuzeigen, und
Vergleichen des neuen Bereiches mit den Orientierungsdaten, um zu bestimmen, ob der neue Bereich sich mit dem mit dem einen oder einem der mehreren immer sichtbaren Fenster (204, 206) korrespondierenden Bereich des Schirms schneidet.
3. Verfahren nach Anspruch 2, mit einem Ändern entweder der Konfiguration des ersten immer sichtbaren Fensters oder der Konfiguration des zweiten Fensters oder Ändern der Konfigurationen sowohl des ersten immer sichtbaren Fensters als auch des zweiten Fensters, so dass kein Abschnitt des zweiten Fensters einen gemeinsamen Bereich auf der Anzeigeeinrichtung mit einem Abschnitt des ersten immer sichtbaren Fensters einnimmt, wenn das zweite Fenster ein immer sichtbares Fenster ist.
4. Verfahren nach Anspruch 2, mit einem Anzeigen des Abschnitts des ersten Fensters im gemeinsamen Bereich, wenn das zweite Fenster kein immer sichtbares Fenster ist.
5. Verfahren nach Anspruch 2, wobei das erste Fenster einen transparenten Hintergrund aufweist, und
der Schritt des Anzeigens des Abschnitts des ersten Fensters im gemeinsamen Bereich die Schritte eines Anzeigens von Information aus dem ersten Fenster im gemeinsamen Bereich und Anzeigens von Information aus einem das erste Fenster überlappenden nicht transparenten Fenster im gemeinsamen Bereich aufweist.
Verfahren nach Anspruch 1, mit den Schritten:
Aufrechterhalten einer Stapelordnung der mehreren Fenster,
Anzeigen der mehreren Fenster auf dem Schirm in Abhängigkeit von der Stapelordnung, wobei bei einem Überlappen eines Fensters der mehreren Fenster das Fenster mit einer höheren Position in der Stapelordnung oberhalb des Fensters, mit dem es sich überlappt, angezeigt wird,
Detektieren, wenn ein Ereignis ein Fenster, das nicht ein immer sichtbares Fenster ist, veranlasst, eine höhere Position in einer Stapelordnung als das eine oder eines der mehreren immer sichtbaren Fenster einnimmt, und
Bewirken, dass ein Fenster eine Position in der Stapelordnung einnimmt, die niedriger als das eine oder jedes der mehreren immer sichtbaren Fenster ist.
7. Verfahren nach Anspruch 1, mit dem Schritt eines Bestimmens des immer sichtbaren Fenster als ein immer sichtbares Fenster durch Ausführen des Schritts eines Einstellens eines vorrangigen Umleitungsattributs des immer sichtbaren Fensters.
3. Verfahren nach Anspruch 1, mit dem Schritt eines Bestimnens des immer sichtbaren Fensters als ein immer sichtbares Fenster durch Ausführen der Schritte:
Erzeugen einer Immersichtbarfensterliste und
Addieren zur Immersichtbarfensterliste einen Eingang, der mit dem immer sichtbaren Fenster korrespondiert.
9. Verfahren nach Anspruch 8, wobei der Schritt des Erzeugens einer Immersichtbarfensterliste eine Herstellung der Immersichtbarfensterliste als eine Eigenschaft eines Wurzelfensters enthält.
10. Verfahren nach Anspruch 8, wobei der Eingang einen Fensteridentifizierer, einen Ortsindikator, einen Größenindikator und einen Stapelordnungsindikator für das immer sichtbare Fenster aufweist.
11. Verfahren nach Anspruch 10, wobei der Eingang Daten aufweist, die anzeigen, ob das immer sichtbare Fenster abgebildet wird.
12. Verfahren nach Anspruch 8, mit:
Detektieren eines Ereignisses, welches das erste immer sichtbare Fenster zerstört, und
Entfernen eines Eingangs, der mit dem ersten Immersichtbarfenster aus der Immersichtbarfensterliste korrespondiert.
13. Verfahren nach Anspruch 1, mit:
Detektieren eines Ereignisses, das ein neues immer sichtbares Fenster erzeugt,
Addieren eines Eingangs,
Feststellen, ob das neue immer sichtbare Fenster und ein anderes immer sichtbares Fenster einander überlappen, und,
wenn das neue immer sichtbare Fenster und ein anderes immer sichtbares Fenster einander überlappen,
Ändern entweder von Orientierungsdaten des neuen immer sichtbaren Fensters, die einen Bereich des Schirms anzeigen, der mit dem neuen Fenster korrespondiert, oder von Orientierungsdaten des anderen immer sichtbaren Fensters, oder Ändern der Orientierungsdaten sowohl des neuen immer sichtbaren Fensters als auch des anderen immer sichtbaren Fensters, so dass kein Abschnitt des neuen immer sichtbaren Fensters das andere Immersichtbarfenster überlappt.
14. Fensterbasiertes Computersystem, das Fenster aus mehreren Fensterklassen (204, 206, 208, 210) unterstützt, wobei eine spezielle Fensterklasse (204, 208) der mehreren Fensterklassen mit Fenstern korrespondiert, die nicht mit anderen Fenstern überlappt werden können.
15. Fensterbasiertes Computersystem nach Anspruch 1, mit einer Fensteranzeigeeinheit (200, 1000, 1006) die so konfiguriert ist, dass eine Überlappung zwischen zwei Fenstern der speziellen Fensterklasse (204, 206) verhindert ist.
16. Fensterbasiertes Computersystem nach Anspruch 15, wobei die Fensteranzeigeeinheit außerdem so konfiguriert ist, dass eine Überlappung zwischen einem Fenster der speziellen Fensterklasse (204, 206) und einem Fenster, das nicht von der speziellen Fensterklasse (208, 210) ist, ermöglicht ist.
17. Fensterbasiertes Computersystem nach Anspruch 16, wobei die Fensteranzeigeeinheit (200, 1000, 1006) außerdem so konfiguriert ist, dass eine Überlappung zwischen dem Fenster der speziellen Fensterklasse (204, 206) und dem Fenster, das nicht von der speziellen Fensterklasse (208, 210) ist, detektiert und das Fenster der speziellen Fensterklasse oben auf dem Fenster, das nicht von der speziellen Fensterklasse ist, angezeigt wird.
18. Fensterbasiertes Computersystem nach Anspruch 15, wobei die Fensteranzeigeeinheit (200, 1000, 1006) eine Überlappung zwischen zwei Fenstern der speziellen Fensterklasse verhindert, indem sie bewirkt, dass die Fenster so erscheinen, als wenn die zwei Fenster aneinander stoßen würden, wenn ein Benutzer versucht, eine Operation auszuführen, die andernfalls bewirken würde, dass die zwei Fenster sich überlappen.
19. Fensterbasiertes Computersystem nach Anspruch 15, mit:
einem Speicher (100) der mehrere Attribute mehrerer Fenster enthält, wobei die mehreren Attribute anzeigen, ob jedes Fenster der mehreren Fenster ein immer sichtbares Fenster ist, wobei die mehreren Attribute eine Stapelordnungsposition für jedes Fenster der mehreren Fenster anzeigen,
einer Eingabeempfangseinheit, die ein Eingangsereignis empfängt, wobei die Eingabe Änderungen in den mehreren Attributen bestimmt,
einer Fensteranzeigeeinheit zur Anzeige der mehreren Fenster auf der Anzeigeeinrichtung auf der Basis der mehreren Attribute,
wobei in dem Fall, dass Abschnitte zweier oder mehrerer Fenster der mehreren Fenster sich einen gemeinsamen Schirmbereich teilen, die Fensteranzeigeeinheit im gemeinsamen Schirmbereich den Abschnitt desjenigen Fensters der zwei oder mehreren Fenster anzeigt, das in der Stapelordnung eine höhere Position als die anderen der zwei oder mehreren Fenster aufweist, wobei die Fensteranzeigeeinheit eine Überlappungsverarbeitungseinheit zur Bestimmung, ob die Änderungen zwei oder mehrere immer sichtbare Fenster veranlassen, sich zwischen zwei oder mehreren immer sichtbaren Fenstern zu überlappen, und eine Stapelordnungskorrektureinheit zur Änderung der mehreren Attribute, um zu verhindern, dass das immer sichtbare Fenster in der Stapelordnung eine niedrigere Position als jedes andere Fenster, das kein immer sichtbares Fenster ist, aufweist.
20. Fenstermanagementsystem nach Anspruch 14, mit einem Mechanismus (1000, 1006) zur Aufrechterhaltung einer Aufzeichnung darüber, welche der mehreren Fenster immer sichtbare Fenster sind.
21. Fenstermanagementsystem nach Anspruch 20, wobei die mehreren Attribute ein vorrangiges Umleitungsattribut aufweist, und
der Mechanismus die Aufzeichnung durch Einstellung des vorrangen Umleitungsattributs jedes der mehreren Fenster aufrechterhält, um zu reflektieren, ob das Fenster ein immer sichtbares Fenster ist.
DE69620301T 1995-06-07 1996-06-04 Fensterverwaltung Expired - Lifetime DE69620301T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/482,184 US5675755A (en) 1995-06-07 1995-06-07 Window system preventing overlap of multiple always-visible windows

Publications (2)

Publication Number Publication Date
DE69620301D1 DE69620301D1 (de) 2002-05-08
DE69620301T2 true DE69620301T2 (de) 2002-11-21

Family

ID=23915057

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69620301T Expired - Lifetime DE69620301T2 (de) 1995-06-07 1996-06-04 Fensterverwaltung

Country Status (5)

Country Link
US (2) US5675755A (de)
EP (1) EP0747805B1 (de)
JP (1) JP4076239B2 (de)
CA (1) CA2177801C (de)
DE (1) DE69620301T2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004055835A1 (de) * 2004-07-09 2006-02-02 Volkswagen Ag Anzeigeeinrichtung für ein Fahrzeug und Verfahren zur Anzeige von Informationen

Families Citing this family (175)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09233467A (ja) * 1996-02-21 1997-09-05 Fujitsu Ltd 画像データ通信装置及び画像データ通信システムにおける通信データ量調整方法
GB2310989B (en) * 1996-03-08 2001-02-28 Ibm Graphical user interface
US6124856A (en) * 1996-04-24 2000-09-26 International Business Machines Corporation Method and apparatus for displaying modeless bar interfaces in a computer system
AU4351297A (en) * 1996-09-27 1998-04-17 Honeywell Inc. Method for constraining the available display surface in which application displays may be rendered
US6018341A (en) * 1996-11-20 2000-01-25 International Business Machines Corporation Data processing system and method for performing automatic actions in a graphical user interface
CA2483488A1 (en) * 1997-02-19 1998-08-19 Gallium Software Inc. User interface and method for maximizing the information presented on a screen
US6686936B1 (en) 1997-11-21 2004-02-03 Xsides Corporation Alternate display content controller
US6330010B1 (en) * 1997-11-21 2001-12-11 Xsides Corporation Secondary user interface
US6639613B1 (en) 1997-11-21 2003-10-28 Xsides Corporation Alternate display content controller
US6018332A (en) 1997-11-21 2000-01-25 Ark Interface Ii, Inc. Overscan user interface
US6337717B1 (en) 1997-11-21 2002-01-08 Xsides Corporation Alternate display content controller
US6473102B1 (en) * 1998-05-11 2002-10-29 Apple Computer, Inc. Method and system for automatically resizing and repositioning windows in response to changes in display
JP3509060B2 (ja) 1998-05-28 2004-03-22 松下電器産業株式会社 表示制御装置および方法
US6437809B1 (en) 1998-06-05 2002-08-20 Xsides Corporation Secondary user interface
US6426762B1 (en) 1998-07-17 2002-07-30 Xsides Corporation Secondary user interface
US6493005B1 (en) 1999-03-30 2002-12-10 Sony Corporation On screen display
US6518985B2 (en) 1999-03-31 2003-02-11 Sony Corporation Display unit architecture
US6590592B1 (en) 1999-04-23 2003-07-08 Xsides Corporation Parallel interface
AU5276800A (en) 1999-05-21 2000-12-12 Xsides Corporation Parallel graphical user interface
JP2003506742A (ja) 1999-08-01 2003-02-18 ディープ ヴィデオ イメージング リミテッド 層状スクリーンを備えた、相互作用的(インタラクティブ)な3次元ディスプレイ
US6880126B1 (en) * 1999-08-03 2005-04-12 International Business Machines Corporation Controlling presentation of a GUI, using view controllers created by an application mediator, by identifying a destination to access a target to retrieve data
CA2420081C (en) * 1999-08-19 2011-10-11 Deep Video Imaging Limited Control of depth movement for visual display with layered screens
JP2003507774A (ja) 1999-08-19 2003-02-25 ディープ ヴィデオ イメイジング リミテッド 多層スクリーンのデータ表示
CA2420082C (en) 1999-08-19 2013-03-12 Deep Video Imaging Limited Display method for multiple layered screens
US6630943B1 (en) * 1999-09-21 2003-10-07 Xsides Corporation Method and system for controlling a complementary user interface on a display surface
US7020690B1 (en) * 1999-10-19 2006-03-28 Netzero, Inc. Inactivity timer for an internet client
US6779177B1 (en) 1999-10-28 2004-08-17 International Business Machines Corporation Mechanism for cross channel multi-server multi-protocol multi-data model thin clients
US7181686B1 (en) 1999-10-29 2007-02-20 International Business Machines Corporation Selecting screens in a GUI using events generated by a set of view controllers
US6862686B1 (en) 1999-10-29 2005-03-01 International Business Machines Corporation Method and apparatus in a data processing system for the separation of role-based permissions specification from its corresponding implementation of its semantic behavior
JP3871014B2 (ja) * 2000-01-28 2007-01-24 セイコーエプソン株式会社 情報表示方式及び方法
US20040226041A1 (en) * 2000-02-18 2004-11-11 Xsides Corporation System and method for parallel data display of multiple executing environments
US6727918B1 (en) 2000-02-18 2004-04-27 Xsides Corporation Method and system for controlling a complementary user interface on a display surface
WO2001080215A1 (en) * 2000-04-19 2001-10-25 Broadcom Corporation Apparatus and method for persistent display interface
US6636245B1 (en) * 2000-06-14 2003-10-21 Intel Corporation Method and apparatus to display video
US6763355B2 (en) 2000-12-18 2004-07-13 International Business Machines Corporation Method and apparatus in mark-up language documents for providing mark-up language hidden attributes
US6789109B2 (en) * 2001-02-22 2004-09-07 Sony Corporation Collaborative computer-based production system including annotation, versioning and remote interaction
DE10110943B4 (de) * 2001-03-07 2006-11-30 Siemens Ag Positionieren von auf einer Benutzeroberfläche angezeigten Bereichen
US20020129050A1 (en) * 2001-03-09 2002-09-12 Gryskiewicz Paul S. Displaying video in application
FI20010817A7 (fi) * 2001-04-20 2003-02-14 Nokia Corp Menetelmä informaation esittämiseksi elektroniikkalaitteen näytöllä ja elektroniikkalaite
NZ511444A (en) 2001-05-01 2004-01-30 Deep Video Imaging Ltd Information display
JP3812368B2 (ja) * 2001-06-06 2006-08-23 豊田合成株式会社 Iii族窒化物系化合物半導体素子及びその製造方法
US20020186257A1 (en) * 2001-06-08 2002-12-12 Cadiz Jonathan J. System and process for providing dynamic communication access and information awareness in an interactive peripheral display
US7185290B2 (en) * 2001-06-08 2007-02-27 Microsoft Corporation User interface for a system and process for providing dynamic communication access and information awareness in an interactive peripheral display
US20030030675A1 (en) * 2001-08-09 2003-02-13 International Business Machines Corporation Entry panel processing system
NZ514119A (en) 2001-09-11 2004-06-25 Deep Video Imaging Ltd Improvement to instrumentation
US7350156B2 (en) * 2001-09-21 2008-03-25 Yamaha Corporation Audio signal editing apparatus and control method therefor
NO315679B1 (no) * 2001-10-19 2003-10-06 Dmates As Rik kommunikasjon over internett
US7619585B2 (en) * 2001-11-09 2009-11-17 Puredepth Limited Depth fused display
AU2002349461A1 (en) * 2001-12-07 2003-06-30 Ntt Docomo, Inc. Mobile communication terminal, application executing control method, application executing control program, and computer-readable recording medium
US6976244B2 (en) * 2002-01-09 2005-12-13 International Business Machines Corporation Method, system, and product for storage of attribute data in an object oriented environment
US8756513B1 (en) * 2002-04-23 2014-06-17 Microsoft Corporation Document viewing mechanism for document sharing environment
NZ517713A (en) * 2002-06-25 2005-03-24 Puredepth Ltd Enhanced viewing experience of a display through localised dynamic control of background lighting level
US7305680B2 (en) * 2002-08-13 2007-12-04 Sharp Laboratories Of America, Inc. Listening module for asynchronous messages sent between electronic devices of a distributed network
NZ521505A (en) 2002-09-20 2005-05-27 Deep Video Imaging Ltd Multi-view display
US20040196958A1 (en) * 2002-11-29 2004-10-07 Werner Beck Operating device for a diagnostic imaging unit
JP4214777B2 (ja) * 2002-12-27 2009-01-28 ヤマハ株式会社 ヘルプ表示装置およびプログラム
JP4412701B2 (ja) * 2003-01-24 2010-02-10 日本電気株式会社 画面情報表示方法、システム及びコンピュータプログラム
JP2004310655A (ja) * 2003-04-10 2004-11-04 Matsushita Electric Ind Co Ltd ウィンドウスタック制御方法
US9182937B2 (en) 2010-10-01 2015-11-10 Z124 Desktop reveal by moving a logical display stack with gestures
US20120084675A1 (en) 2010-10-01 2012-04-05 Imerj, Llc Annunciator drawer
NZ525956A (en) * 2003-05-16 2005-10-28 Deep Video Imaging Ltd Display control system for use with multi-layer displays
US20040261039A1 (en) * 2003-06-19 2004-12-23 International Business Machines Corporation Method and system for ordering on-screen windows for display
JP4280656B2 (ja) * 2003-06-20 2009-06-17 キヤノン株式会社 画像表示装置およびその画像表示方法
US8122361B2 (en) * 2003-10-23 2012-02-21 Microsoft Corporation Providing a graphical user interface in a system with a high-assurance execution environment
US7765143B1 (en) * 2003-11-04 2010-07-27 Trading Technologies International, Inc. System and method for event driven virtual workspace
US20050097089A1 (en) * 2003-11-05 2005-05-05 Tom Nielsen Persistent user interface for providing navigational functionality
US8302111B2 (en) 2003-11-24 2012-10-30 Time Warner Cable Inc. Methods and apparatus for hardware registration in a network device
US7266726B1 (en) 2003-11-24 2007-09-04 Time Warner Cable Inc. Methods and apparatus for event logging in an information network
US20050125742A1 (en) * 2003-12-09 2005-06-09 International Business Machines Corporation Non-overlapping graphical user interface workspace
JP2005202750A (ja) * 2004-01-16 2005-07-28 Internatl Business Mach Corp <Ibm> パワーマネージメント実行装置、コンピュータ、パワーマネージメント実行方法、およびプログラム
US6999875B2 (en) * 2004-02-06 2006-02-14 Alpine Electronics, Inc Display method and apparatus for navigation system
US9213538B1 (en) 2004-02-06 2015-12-15 Time Warner Cable Enterprises Llc Methods and apparatus for display element management in an information network
US7694233B1 (en) * 2004-04-30 2010-04-06 Apple Inc. User interface presentation of information in reconfigured or overlapping containers
US7376911B2 (en) * 2004-05-20 2008-05-20 International Business Machines Corporation Method and system for controlling screen focus for files and applications during presentations
US20060048067A1 (en) * 2004-08-31 2006-03-02 Microsoft Corporation System and method for increasing the available workspace of a graphical user interface
US8402384B2 (en) * 2004-11-09 2013-03-19 Research In Motion Limited Dynamic bar oriented user interface
US7657842B2 (en) * 2004-11-12 2010-02-02 Microsoft Corporation Sidebar tile free-arrangement
US20060107226A1 (en) * 2004-11-16 2006-05-18 Microsoft Corporation Sidebar autohide to desktop
US20060150108A1 (en) * 2005-01-06 2006-07-06 Canon Kabushiki Kaisha Information processing device, information processing method, storage medium, and program
US7426697B2 (en) * 2005-01-18 2008-09-16 Microsoft Corporation Multi-application tabbing system
US8341541B2 (en) * 2005-01-18 2012-12-25 Microsoft Corporation System and method for visually browsing of open windows
US7478326B2 (en) * 2005-01-18 2009-01-13 Microsoft Corporation Window information switching system
US7552397B2 (en) * 2005-01-18 2009-06-23 Microsoft Corporation Multiple window behavior system
US7747965B2 (en) * 2005-01-18 2010-06-29 Microsoft Corporation System and method for controlling the opacity of multiple windows while browsing
JP4434973B2 (ja) * 2005-01-24 2010-03-17 株式会社東芝 映像表示装置、映像合成配信装置、プログラム、システム及び方法
KR100610487B1 (ko) * 2005-02-15 2006-08-08 주식회사 팬택 이동통신 단말기에서의 이벤트 발생시 화면 구성 장치 및방법
DE102005009105A1 (de) * 2005-02-28 2006-09-07 Siemens Ag Verfahren und Verwalten einer Anzeigeeinrichtung
US7673255B2 (en) * 2005-04-22 2010-03-02 Microsoft Corporation Interface and system for manipulating thumbnails of live windows in a window manager
US8769433B2 (en) * 2005-05-13 2014-07-01 Entrust, Inc. Method and apparatus for protecting communication of information through a graphical user interface
US20070008338A1 (en) * 2005-05-28 2007-01-11 Young-Chan Kim Display system, display apparatus, and method of controlling video source and display apparatus
US20070040788A1 (en) * 2005-08-17 2007-02-22 Texas Instruments, Inc. Modular Graphics Stack With Video Support
US7644391B2 (en) 2005-08-18 2010-01-05 Microsoft Corporation Sidebar engine, object model and schema
US8578290B2 (en) * 2005-08-18 2013-11-05 Microsoft Corporation Docking and undocking user interface objects
US7499989B2 (en) * 2005-08-18 2009-03-03 Microsoft Corporation Installing data with settings
US7568165B2 (en) * 2005-08-18 2009-07-28 Microsoft Corporation Sidebar engine, object model and schema
US7665032B2 (en) * 2005-08-18 2010-02-16 Microsoft Corporation Sidebar engine, object model and schema
JP2007065356A (ja) * 2005-08-31 2007-03-15 Toshiba Corp 合成オブジェクト表示装置、合成オブジェクト表示方法およびプログラム
JP4695474B2 (ja) * 2005-09-21 2011-06-08 株式会社東芝 合成映像制御装置、合成映像制御方法およびプログラム
NZ542843A (en) * 2005-10-05 2008-08-29 Pure Depth Ltd Method of manipulating visibility of images on a volumetric display
US7437678B2 (en) * 2005-10-27 2008-10-14 International Business Machines Corporation Maximizing window display area using window flowing
JP5119587B2 (ja) * 2005-10-31 2013-01-16 株式会社デンソー 車両用表示装置
US7793231B2 (en) * 2006-01-19 2010-09-07 International Business Machines Corporation Method and system for providing a primary window overlay
EP1986086A4 (de) * 2006-02-13 2014-07-16 Ibm Steuereinrichtung, steuerprogramm und steuerverfahren zur steuerung der anzeige einer anzeigeeinrichtung zum anzeigen überlagerter fenster
US7831924B2 (en) * 2006-03-23 2010-11-09 Intel Corporation Method and apparatus to control the display of windows in a processing system
US20080010608A1 (en) * 2006-07-05 2008-01-10 Honeywell International, Inc. Apparatus and methods for ensuring visibility of display window
US8694953B2 (en) * 2006-08-14 2014-04-08 Payman Khodabandehloo Tool and methodology for enterprise software applications
US8893038B2 (en) * 2006-10-03 2014-11-18 International Business Machines Corporation Graphical association of task bar entries with corresponding desktop locations
US20100088623A1 (en) * 2006-10-13 2010-04-08 Core Aplli Incorporated Operational support computer program and operational assitance computer system
WO2008044574A1 (en) * 2006-10-13 2008-04-17 Panasonic Corporation Display control device, display control method, program, and accumulation circuit
JP2008122507A (ja) * 2006-11-09 2008-05-29 Sharp Corp 画面表示処理装置、映像表示装置、osd表示方法
JP4888165B2 (ja) * 2007-03-12 2012-02-29 富士ゼロックス株式会社 画像処理装置及びプログラム
US8432411B2 (en) * 2007-05-18 2013-04-30 Pure Depth Limited Method and system for improving display quality of a multi-component display
JP5219407B2 (ja) * 2007-05-31 2013-06-26 株式会社エヌ・ティ・ティ・ドコモ 情報処理装置及びプログラム
JP4342578B2 (ja) * 2007-07-24 2009-10-14 株式会社エヌ・ティ・ティ・ドコモ 情報処理装置およびプログラム
US8726190B2 (en) * 2007-09-28 2014-05-13 Adobe Systems Incorporated Automatically transformed graphical user interface
US8468462B2 (en) * 2007-10-09 2013-06-18 Honeywell International, Inc. Display management in a multi-window display
US8490014B2 (en) * 2007-11-07 2013-07-16 International Business Machines Corporation Method and system for controlling the arrangements of windows on a display
US20090132954A1 (en) * 2007-11-20 2009-05-21 Honeywell International Inc. Apparatus and method for isolating problems in content loaded into a human-machine interface application
KR101012300B1 (ko) * 2008-03-07 2011-02-08 삼성전자주식회사 터치스크린을 구비한 휴대 단말기의 사용자 인터페이스장치 및 그 방법
US9253205B2 (en) * 2008-04-02 2016-02-02 Yougetitback Limited Invocation of system services through auxiliary interface
US9886599B2 (en) * 2008-04-02 2018-02-06 Yougetitback Limited Display of information through auxiliary user interface
US9258326B2 (en) * 2008-04-02 2016-02-09 Yougetitback Limited API for auxiliary interface
US9838877B2 (en) 2008-04-02 2017-12-05 Yougetitback Limited Systems and methods for dynamically assessing and mitigating risk of an insured entity
US9916481B2 (en) 2008-04-02 2018-03-13 Yougetitback Limited Systems and methods for mitigating the unauthorized use of a device
US10289671B2 (en) * 2008-05-07 2019-05-14 Microsoft Technology Licensing, Llc Graphically displaying selected data sources within a grid
US8266550B1 (en) * 2008-05-28 2012-09-11 Google Inc. Parallax panning of mobile device desktop
US8312384B2 (en) * 2008-06-11 2012-11-13 Honeywell International Inc. Apparatus and method for fault-tolerant presentation of multiple graphical displays in a process control system
US20090319944A1 (en) * 2008-06-12 2009-12-24 Honeywell International Inc. Navigation display including multi-control window
US8600405B2 (en) 2008-08-12 2013-12-03 Apogee Technology Consultants, Llc Location-based recovery device and risk management system for portable computing devices and data
TW201009687A (en) * 2008-08-28 2010-03-01 Honda Shing System of automatic window adjustment and method thereof
US20100146434A1 (en) * 2008-12-09 2010-06-10 Yahoo!, Inc. Minimap Navigation for Spreadsheet
US9524700B2 (en) * 2009-05-14 2016-12-20 Pure Depth Limited Method and system for displaying images of various formats on a single display
US8928682B2 (en) * 2009-07-07 2015-01-06 Pure Depth Limited Method and system of processing images for improved display
CA2686995A1 (en) * 2009-12-03 2011-06-03 Ibm Canada Limited - Ibm Canada Limitee Handling user-interface gestures in non-rectangular regions
JP2011186572A (ja) * 2010-03-05 2011-09-22 Hitachi Consumer Electronics Co Ltd 映像表示装置システム
US9310978B2 (en) * 2010-03-24 2016-04-12 Kyocera Document Solutions Inc. Operation apparatus and image forming apparatus having the same
US8842080B2 (en) 2010-10-01 2014-09-23 Z124 User interface with screen spanning icon morphing
US8860758B2 (en) * 2010-12-15 2014-10-14 Canon Kabushiki Kaisha Display control apparatus and method for displaying overlapping windows
KR20120066846A (ko) * 2010-12-15 2012-06-25 삼성전자주식회사 모바일 디바이스
US9633392B2 (en) * 2011-04-13 2017-04-25 Paypal, Inc. Integrated finding experience systems and methods
US9043715B2 (en) 2011-06-02 2015-05-26 International Business Machines Corporation Alert event notification
JP5604386B2 (ja) * 2011-07-29 2014-10-08 楽天株式会社 情報処理装置、情報処理装置の制御方法、プログラム及び情報記録媒体
JP5879536B2 (ja) * 2012-01-18 2016-03-08 パナソニックIpマネジメント株式会社 表示装置および表示方法
JP5982884B2 (ja) * 2012-03-08 2016-08-31 ソニー株式会社 表示制御装置、表示制御方法およびコンピュータ読み取り可能な記録媒体
CN103957779B (zh) * 2012-03-12 2016-05-11 株式会社东芝 医用信息阅览装置
KR101984673B1 (ko) * 2012-07-27 2019-05-31 삼성전자주식회사 복수 어플리케이션을 실행하는 디스플레이 장치 및 그 제어 방법
JP2014032450A (ja) * 2012-08-01 2014-02-20 Sony Corp 表示制御装置、表示制御方法及びコンピュータプログラム
AT513943B1 (de) * 2013-02-08 2018-04-15 Frequentis Ag Verfahren zur Herstellung und Aufbereitung von sicherheitskritischen Informationen
US9977413B2 (en) 2013-03-11 2018-05-22 Honeywell International Inc. Apparatus and method for managing open windows in a graphical display for a representation of a process system
US9600595B2 (en) * 2013-05-21 2017-03-21 International Business Machines Corporation Modification of windows across multiple displays
US9442627B2 (en) * 2013-06-24 2016-09-13 Evernote Corporation Expandable two-dimensional flow for container hierarchy
US9720557B2 (en) * 2013-08-26 2017-08-01 Cellco Partnership Method and apparatus for providing always-on-top user interface for mobile application
WO2015159360A1 (ja) * 2014-04-15 2015-10-22 楽天株式会社 閲覧装置、表示制御方法、記録媒体、ならびに、プログラム
KR102243106B1 (ko) * 2014-08-20 2021-04-22 삼성전자 주식회사 디스플레이장치 및 그 제어방법
KR20160149603A (ko) * 2015-06-18 2016-12-28 삼성전자주식회사 전자 장치 및 전자 장치에서의 노티피케이션 처리 방법
JP6541462B2 (ja) * 2015-06-25 2019-07-10 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
US10915952B2 (en) 2015-12-18 2021-02-09 Trading Technologies International, Inc. Manipulating trading tools
US10241658B2 (en) * 2016-04-28 2019-03-26 Kyocera Document Solutions Inc. Information processing apparatus, non-transitory computer-readable recording medium with information processing program recorded thereon, and information processing method
US11295706B2 (en) * 2016-06-30 2022-04-05 Microsoft Technology Licensing, Llc Customizable compact overlay window
KR102375950B1 (ko) * 2016-12-02 2022-03-17 삼성전자주식회사 화면의 크기를 조절하기 위한 방법 및 그 전자 장치
JP7007401B2 (ja) * 2017-06-16 2022-01-24 マイクロソフト テクノロジー ライセンシング,エルエルシー ルールベースのユーザインタフェース生成
US11716558B2 (en) 2018-04-16 2023-08-01 Charter Communications Operating, Llc Apparatus and methods for integrated high-capacity data and wireless network services
US11044597B2 (en) 2018-08-07 2021-06-22 Charter Communications Operating, Llc Apparatus and methods for registration and operation in wireless networks
CA3115813A1 (en) 2018-10-12 2020-04-16 Charter Communications Operating, Llc Apparatus and methods for cell identification in wireless networks
US11749071B2 (en) * 2018-12-21 2023-09-05 Ncr Corporation Self-contained scanner configuration
JP7202876B2 (ja) * 2018-12-25 2023-01-12 フォルシアクラリオン・エレクトロニクス株式会社 表示制御装置、及び表示制御方法
US10980025B2 (en) 2019-01-31 2021-04-13 Charter Communications Operating, Llc Methods and apparatus for frequency transition management in a quasi-licensed wireless system
US11129171B2 (en) 2019-02-27 2021-09-21 Charter Communications Operating, Llc Methods and apparatus for wireless signal maximization and management in a quasi-licensed wireless system
US11026205B2 (en) 2019-10-23 2021-06-01 Charter Communications Operating, Llc Methods and apparatus for device registration in a quasi-licensed wireless system
JP2021157277A (ja) * 2020-03-25 2021-10-07 ソニーグループ株式会社 情報処理装置、情報処理方法及びプログラム
US11410393B2 (en) * 2020-08-25 2022-08-09 Spatial Systems Inc. Auto arranging wall in an augmented reality system
US11694413B2 (en) 2020-08-25 2023-07-04 Spatial Systems Inc. Image editing and sharing in an augmented reality system
DE102020122201A1 (de) * 2020-08-25 2022-03-03 Claas Tractor Sas Landwirtschaftliche Arbeitsmaschine
CN112887731B (zh) * 2021-01-22 2023-05-26 北京淳中科技股份有限公司 压缩码流取流方法、装置、电子设备及存储介质
CN114063840B (zh) * 2021-11-08 2024-10-11 中控技术股份有限公司 基于视窗操作系统的多窗口控制方法、系统、设备和介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4789962A (en) * 1984-10-31 1988-12-06 International Business Machines Corporation Methods of displaying help information nearest to an operation point at which the help information is requested
JPH0727349B2 (ja) * 1985-07-01 1995-03-29 株式会社日立製作所 マルチウインドウの表示制御方式
GB2191917A (en) * 1986-06-16 1987-12-23 Ibm A multiple window display system
US5142618A (en) * 1986-11-21 1992-08-25 Hitachi, Ltd. Window management apparatus for a document creating apparatus
US5287448A (en) * 1989-05-04 1994-02-15 Apple Computer, Inc. Method and apparatus for providing help information to users of computers
US5060170A (en) * 1989-08-09 1991-10-22 International Business Machines Corp. Space allocation and positioning method for screen display regions in a variable windowing system
CA2030438C (en) * 1990-01-22 2002-05-28 Donald Vincent Alecci Method of reducing data storage requirements associated with computer windowing environments
FR2693810B1 (fr) * 1991-06-03 1997-01-10 Apple Computer Systemes d'interfaces d'utilisateurs a acces direct a une zone secondaire d'affichage.
US5371847A (en) * 1992-09-22 1994-12-06 Microsoft Corporation Method and system for specifying the arrangement of windows on a display
US5436637A (en) * 1993-03-05 1995-07-25 Borland International, Inc. Graphical user interface system and methods for improved user feedback
US5513342A (en) * 1993-12-28 1996-04-30 International Business Machines Corporation Display window layout system that automatically accommodates changes in display resolution, font size and national language
US5487143A (en) * 1994-04-06 1996-01-23 Altera Corporation Computer user interface having tiled and overlapped window areas

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004055835A1 (de) * 2004-07-09 2006-02-02 Volkswagen Ag Anzeigeeinrichtung für ein Fahrzeug und Verfahren zur Anzeige von Informationen

Also Published As

Publication number Publication date
EP0747805A1 (de) 1996-12-11
US6031530A (en) 2000-02-29
JPH09146751A (ja) 1997-06-06
US5675755A (en) 1997-10-07
CA2177801C (en) 2004-11-16
EP0747805B1 (de) 2002-04-03
DE69620301D1 (de) 2002-05-08
JP4076239B2 (ja) 2008-04-16
CA2177801A1 (en) 1996-12-08

Similar Documents

Publication Publication Date Title
DE69620301T2 (de) Fensterverwaltung
DE69123465T2 (de) Verfahren zur Änderung der Abmessungen von Computeranzeigefenstern und ihrer Bewegung
DE69523593T2 (de) Vorrichtung und verfahren zur aufteilung der anwendung in einer graphischen benutzerschnittstelle
DE69428647T2 (de) Verfahren und Gerät zur Erzeugung eines zweiten gemischten Bildsignals im räumlichen Kontext eines ersten Bildsignals
DE69026647T2 (de) Zoommodusbetriebsarten in einem Anzeigegerät
DE69432698T2 (de) Verfahren und Vorrichtung zur Aufnahme von Anmerkungen auf einen Anzeigeschirm ohne Überlappung
DE69410483T2 (de) Objektorientiertes aufgabensicheres rahmenwerk
DE3787127T2 (de) Datenanzeigesystem.
DE69129091T2 (de) System und Verfahren zum Emulieren einer Fensterverwaltungsumgebung mit einer einheitlichen Fensterschnittstelle
DE69522684T2 (de) Statusanzeiger einer graphischen benutzerschnittstelle
DE69533568T2 (de) Virtuelles Desk-Top-System und Verfahren dafür
DE69603790T2 (de) Auswahlerleichterung auf einer graphischen Schnittstelle
DE69315969T2 (de) Darstellung von Informationen in einem Anzeigesystem mit transparenten Fenstern
DE69327948T2 (de) Bereich-layout in einer Sicht auf einem grafischen Anzeigeschirm
DE69805990T2 (de) Verfahren und vorrichtungen zum zugriff auf information und einheiten in mehreren arbeitsflächen
DE69838233T2 (de) Bildsystem und Verfahren für virtuelle Realität
DE69615470T2 (de) Darstellung von Beziehungen zwischen graphischen Objekten in einer Rechneranzeigevorrichtung
DE69523543T2 (de) Taskbar mit Startmenü
DE69615236T2 (de) Verfahren zur vergrösserten Sichtbarkeit und Auswahlmöglichkeit von Ikonen
DE69318571T2 (de) Verfahren und system für die in-ort-wechselwirkung mit eingebetteten objekten
DE69719413T2 (de) Verfahren und Gerät zum Gruppieren von graphischen Objekten in einem Rechnersystem mit einer graphischen Benutzerschnittstelle
DE69717965T2 (de) Verfahren und vorrichtung zur darstellung von objekten mittels fenstern
DE69327632T2 (de) Mehrere graphische Benutzerschnittstellen auf einer einzigen Anzeige
DE69526634T2 (de) Verschiebungs- und Entladungsoperation in einer graphischen Benutzerschnittstelle
DE69716185T2 (de) Mechanismus zum Steuern der sichtbaren Anwesenheit von Desktop-Objekten in einer graphischen Benutzerschnittstelle

Legal Events

Date Code Title Description
8364 No opposition during term of opposition