DE69620301T2 - Fensterverwaltung - Google Patents
FensterverwaltungInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/14—Display of multiple viewports
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/048—Indexing scheme relating to G06F3/048
- G06F2203/04804—Transparency, 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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)
| 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)
| 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)
| 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 |
-
1995
- 1995-06-07 US US08/482,184 patent/US5675755A/en not_active Expired - Lifetime
-
1996
- 1996-05-30 CA CA002177801A patent/CA2177801C/en not_active Expired - Fee Related
- 1996-06-04 EP EP96304058A patent/EP0747805B1/de not_active Expired - Lifetime
- 1996-06-04 DE DE69620301T patent/DE69620301T2/de not_active Expired - Lifetime
- 1996-06-07 JP JP14629296A patent/JP4076239B2/ja not_active Expired - Fee Related
-
1997
- 1997-04-10 US US08/838,818 patent/US6031530A/en not_active Expired - Lifetime
Cited By (1)
| 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 |