DE69018731T2 - Window display setup and method. - Google Patents

Window display setup and method.

Info

Publication number
DE69018731T2
DE69018731T2 DE69018731T DE69018731T DE69018731T2 DE 69018731 T2 DE69018731 T2 DE 69018731T2 DE 69018731 T DE69018731 T DE 69018731T DE 69018731 T DE69018731 T DE 69018731T DE 69018731 T2 DE69018731 T2 DE 69018731T2
Authority
DE
Germany
Prior art keywords
partition
scrollable
window
display
logical
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 - Fee Related
Application number
DE69018731T
Other languages
German (de)
Other versions
DE69018731D1 (en
Inventor
Michael Morris Goldring
Lesley Regina Kalmin
Richard Irving Seidner
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE69018731D1 publication Critical patent/DE69018731D1/en
Application granted granted Critical
Publication of DE69018731T2 publication Critical patent/DE69018731T2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/34Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators for rolling or scrolling
    • G09G5/346Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators for rolling or scrolling for systems having a bit-mapped display memory

Landscapes

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

Description

Die vorliegende Erfindung bezieht sich im allgemeinen auf die Anzeige in Fenstern von Computersystemen.The present invention relates generally to the display in windows of computer systems.

Die Informationsanzeige, die von einem, in einem Computersystem laufenden Anwendungsprogramm erzeugt wird, ist oft für den vermeintlichen Nutzen der Anwendung wichtig. Schlechte Anzeigen können eine ansonsten gute Anwendung nahezu unbrauchbar machen und gute Anzeigen können einem Benutzer bei der effizienteren Nutzung eines Anwendungsprogramm helfen.The display of information produced by an application program running on a computer system is often important to the perceived usefulness of the application. Bad displays can render an otherwise good application almost useless, and good displays can help a user use an application program more efficiently.

Fenster werden oft benutzt, um gleichzeitig mehrere Informationselemente auf einem Bildschirm anzuzeigen. Fenster sind separate Bereiche, welche oft durch Rahmen getrennt werden, die irgendwie unabhängig bearbeitet werden. Verschiedene Fenster können Ausgaben aus verschiedenen, gleichzeitig laufenden Anwendungen erhalten, und eine einzelne Anwendung kann Ausgaben in verschiedenen Fenstern erzeugen.Windows are often used to display multiple items of information on a screen at the same time. Windows are separate areas, often separated by frames, that are manipulated independently in some way. Different windows can receive output from different applications running simultaneously, and a single application can produce output in different windows.

Im allgemeinen können Fenster nebeneinander oder überlappend angezeigt werden. Nebeneinander angeordnete Fenster werden nebeneinander, horizontal oder/und vertikal, angezeigt, wobei sich deren angezeigten Bereiche nicht überlappen. Bei überlappenden Fenstern scheinen die einzelnen Fenster aufeinander gestapelt zu sein, wie einzelne, auf einem Schreibtisch gestapelte Blätter, wobei die verdeckten Teile von darunterliegenden Fenstern nicht angezeigt werden. Diese Art der Anzeige wird manchmal als Desktop Metapher für Anzeigen oder als Messy-Desk-Windowing bezeichnet.In general, windows can be displayed side by side or cascaded. Side by side windows are displayed side by side, horizontally and/or vertically, with their displayed areas not overlapping. With cascaded windows, the individual windows appear to be stacked on top of each other, like individual sheets of paper stacked on a desk, with the hidden parts of underlying windows not displayed. This type of display is sometimes referred to as the desktop metaphor for displays or as messy desk windowing.

Das IBM Technical Disclosure Bulletin, Vol.22, No.10, March 1980, Seiten 4734-2737, "Local Scrolling with a Multiple Partitioned Display", beschreibt ein Anzeigesystem zur Anwendung in einem Datenverarbeitungssystem. Das Anzeigesystem enthält ein Anzeigegerät, auf dem eine Vielzahl von unabhängigen, rollfähigen Partitionen und eine Vielzahl von unabhängigen, nicht-rollfähigen Partitionen angezeigt werden kann. Ein Mikroprozessor ordnet jeder nicht-rollfähigen Partition einen Fenstersteuerblock und jeder rollfähigen Partition eine Vielzahl von Fenstersteuerblöcken zu. Jeder Fenstersteuerblock enthält Hinweisadressen in einer Vielzahl von Datengruppen, welche die in der entsprechenden Partition anzuzeigenden Daten definieren.The IBM Technical Disclosure Bulletin, Vol.22, No.10, March 1980, pages 4734-2737, "Local Scrolling with a Multiple Partitioned Display", describes a display system for use in a data processing system. The display system includes a display device on which a plurality of independent scrollable partitions and a plurality of independent non-scrollable partitions can be displayed. A microprocessor assigns a window control block to each non-scrollable partition and a plurality of window control blocks to each scrollable partition. Each window control block contains pointers in a plurality of data groups that define the data to be displayed in the corresponding partition.

Viele auf Großrechnern basierende Anwendungen, die normalerweise von Anwendungen abstammen, die geschrieben wurden, bevor Arbeitsstationen allgemein bekannt wurden, werden oft für auf zeichenbasierende, nicht-programmierbare Terminals geschrieben. In einigen Terminals, die konzipiert wurden, um mit größeren verbunden zu werden, unterstützen Zentralcomputersysteme primitive Grafik- oder Zeichengrafikmöglichkeiten oder liefern bestimmte Teile des Bildschirms als aktiv für Rollzwecke. Die Kombination aus vielen verfügbaren Terminals und deren Software-Treibern liefern oft die Fähigkeit, eine extrem begrenzte Form der Fenstertechnik durchzuführen. Diese Form der Fenstertechnik, die als Fenstertechnik mit geteiltem Bildschirm bezeichnet wird, hat normalerweise über die gesamte Breite angeordnete Fenster, die vertikal auf dem Bildschirm gestapelt sind. Diese Fenster haben keine Begrenzungen und nur das Rollen des gesamten Fensters ist zulässig. In diesem Fall ist es wünschenswert, eine höhere Schnittstelle für Anwendungsprogramme vorzusehen, welche Einzelheiten des Fenstersystems verbirgt und rufbare Fensteraufrufe vorsieht, die denen ähnlich sind, die in Arbeitsstationen verfügbar sind. Außerdem ist es für ein solches Fenstertechniksystem wünschenswert, in nicht-programmierbaren Terminals wirksam zu sein.Many mainframe-based applications, usually descended from applications written before workstations became commonplace, are often written for character-based, non-programmable terminals. In some terminals designed to interface with larger mainframe systems, primitive graphics or character graphics capabilities are supported, or certain parts of the screen are provided as active for scrolling purposes. The combination of many available terminals and their software drivers often provides the ability to perform an extremely limited form of windowing. This form of windowing, called split-screen windowing, typically has full-width windows stacked vertically on the screen. These windows have no borders, and only scrolling of the entire window is permitted. In this case, it is desirable to provide a higher level interface for application programs which can control the details of the windowing system. and provides callable window calls similar to those available in workstations. In addition, it is desirable for such a windowing system to be effective in non-programmable terminals.

Gemäß der vorliegenden Erfindung wird nun ein Verfahren zur Anzeige von überlappenden, logischen Fenstern auf dem Bildschirm zur Benutzung in einem Datenverarbeitungssystem bereitgestellt, das eine Prozessoreinheit und einen nicht-programmierbaren Bildschirm enthält, mit dem eine Vielzahl von unabhängigen, rollfähigen Partitionen und eine Vielzahl von unabhängigen, nicht-rollfähigen Partitionen angezeigt werden kann, wobei das Verfahren enthält: die Zuordnung eines aus einer Vielzahl von Fenstersteuerblöcken in ein logisches Fenster, das von einem in dem Datenverarbeitungssystem ausgeführten Anwendungsprogramm erzeugt wird, wobei der Fenstersteuerblock Hinweisadressen in einer Vielzahl von Datengruppen enthält; dadurch gekennzeichnet wird, daß das Verfahren enthält: das Füllen einer Vielzahl von Partitionskennzeichen in den Fenstersteuerblock, der wenigstens ein erstes Partitionskennzeichen entsprechend einer nicht-rollfähigen Partition enthält, um eine Grenze für das logische Fenster und ein zweites Kennzeichen entsprechend einer rollfähigen Partition für das logische Fenster bereitzustellen; das Setzen, das für jede nicht- rollfähige und rollfähige Partition erfolgt, einer Hinweisadresse in dem Fenstersteuerblock an eine Datengruppe für die Partition, die ihre Attribute zur Überlappung der rollfähigen Partition auf der nicht-rollfähigen Partition definiert; die Erzeugung der nicht-rollfähigen Partition entsprechend dem ersten Partitionskennzeichen für das logische Fenster auf dem Bildschirm; und die Erzeugung der rollfähigen Partition entsprechend dem zweiten Partitionskennzeichen für das logische Fenster auf dem Bildschirm, so daß die rollfähige Partition die nicht-rollfähige Partition überlappt, um das logische Fenster auf dem Bildschirm anzuzeigen.According to the present invention there is now provided a method of displaying overlapping logical windows on a display screen for use in a data processing system including a processor unit and a non-programmable display capable of displaying a plurality of independent scrollable partitions and a plurality of independent non-scrollable partitions, the method comprising: allocating one of a plurality of window control blocks into a logical window generated by an application program executing in the data processing system, the window control block containing pointers in a plurality of data groups; characterized in that the method comprises: filling a plurality of partition identifiers into the window control block including at least a first partition identifier corresponding to a non-scrollable partition to provide a boundary for the logical window and a second identifier corresponding to a scrollable partition for the logical window; setting, for each non-scrollable and scrollable partition, a pointer in the window control block to a data group for the partition defining its attributes for overlapping the scrollable partition on the non-scrollable partition; creating the non-scrollable partition according to the first partition identifier for the logical window on the screen; and creating the scrollable partition according to the second partition label for the logical window on the screen, so that the scrollable partition overlaps the non-scrollable partition to display the logical window on the screen.

Von einem anderen Aspekt der Erfindung aus gesehen, wird nun ein Anzeigesystem zur Anwendung in einem Datenverarbeitungssystem bereitgestellt, wobei das Anzeigesystem enthält: einen nicht-programmierbaren Bildschirm, mit dem eine Vielzahl von unabhängigen, rollfähigen Partitionen und eine Vielzahl von unabhängigen, nicht-rollfähigen Partitionen von logischen Fenstern angezeigt werden kann, und Mittel, um einen aus einer Vielzahl von Fenstersteuerblöcken einem logischen Fenster zuzuordnen, das von einem in dem Datenverarbeitungssystem ausgeführten Anwendungsprogramm erzeugt wird, wobei der Fenstersteuerblock Hinweisadressen in einer Vielzahl von Datengruppen enthält; dadurch gekennzeichnet wird, daß das Verfahren enthält: das Füllen einer Vielzahl von Partitionskennzeichen in den Fenstersteuerblock, der wenigstens ein erstes Partitionskennzeichen entsprechend einer nicht-rollfähigen Partition enthält, um eine Grenze für das logische Fenster und ein zweites Kennzeichen entsprechend einer rollfähigen Partition für das logische Fenster bereitzustellen; Mittel, um für jede nicht-rollfähige und rollfähige Partition eine Hinweisadresse in dem Fenstersteuerblock an eine Datengruppe für die Partition setzen, die ihre Attribute zur Überlappung der rollfähigen Partition auf der nicht-rollfähigen Partition definiert; Mittel zur Erzeugung der nicht-rollfähigen Partition entsprechend dem ersten Partitionskennzeichen für das logische Fenster auf dem Bildschirm; und Mittel zur Erzeugung der rollfähigen Partition entsprechend dem zweiten Partitionskennzeichen für das logische Fenster auf dem Bildschirm, so daß die rollfähige partition die nicht-rollfähige Partition überlappt, um das logische Fenster auf dem Bildschirm anzuzeigen.Viewed from another aspect of the invention there is now provided a display system for use in a data processing system, the display system comprising: a non-programmable display capable of displaying a plurality of independent scrollable partitions and a plurality of independent non-scrollable partitions of logical windows, and means for associating one of a plurality of window control blocks with a logical window generated by an application program executing in the data processing system, the window control block containing pointers in a plurality of data groups; characterized in that the method includes: filling a plurality of partition identifiers in the window control block containing at least a first partition identifier corresponding to a non-scrollable partition to provide a boundary for the logical window and a second identifier corresponding to a scrollable partition for the logical window; means for setting, for each non-scrollable and scrollable partition, a pointer in the window control block to a data group for the partition defining its attributes for overlapping the scrollable partition on the non-scrollable partition; means for creating the non-rollable partition corresponding to the first partition identifier for the logical window on the screen; and means for creating the rollable partition corresponding to the second partition identifier for the logical window on the screen so that the scrollable partition overlaps the non-scrollable partition to display the logical window on the screen.

Somit wird gemäß der vorliegenden Erfindung ein Fenstertechniksystem als Schnittstelle zwischen Anwendungsprogrammen und nicht-programmierbaren Terminaltreibern bereitgestellt. Das System präsentiert im Anwendungsprogramm logische Fenster, von denen jedes innen durch wenigstens zwei getrennte Teile dargestellt wird. Der erste Teil enthält den Rahmen und den nicht- rollfähigen Text für ein logisches Fenster, während der zweite Teil rollfähigen Text für das Fenster enthält. Durch Aufrufe an den Bildschirmtreiber manipuliert das Fenstertechniksystem diese separaten Teile, so daß diese als einzelnes Fenster auf dem Bildschirm angezeigt werden.Thus, in accordance with the present invention, a windowing system is provided as an interface between application programs and non-programmable terminal drivers. The system presents logical windows in the application program, each of which is internally represented by at least two separate parts. The first part contains the frame and non-scrollable text for a logical window, while the second part contains scrollable text for the window. Through calls to the display driver, the windowing system manipulates these separate parts so that they are displayed as a single window on the display screen.

Somit liefert die vorliegende Erfindung ein Fenstersystem, welches zahlreiche, unabhängige Fenster in nicht-programmierbaren Bildschirmen stützt. Das Fenstertechniksystem kann Funktionen in einzelnen Fenstern bereitstellen, welche diese Fenster manipulieren, während die Funktionsdetails von einem Anwendungsprogrammierer verborgen werden und kann ebenfalls wirksamer in nicht-programmierbaren Terminals funktionieren.Thus, the present invention provides a windowing system that supports numerous, independent windows in non-programmable displays. The windowing system can provide functions in individual windows that manipulate those windows while hiding the functional details from an application programmer and can also function more effectively in non-programmable terminals.

Damit die Erfindung ganz verstanden werden kann, wird nun ein bevorzugtes Ausführungsbeispiel nur anhand von Beispielen mit Bezug auf die beiliegenden Zeichnungen beschrieben, in denenIn order that the invention may be fully understood, a preferred embodiment will now be described by way of example only with reference to the accompanying drawings in which

FIGUR 1 eine vereinfachte Bildschirmdarstellung zeigt, in der das Messy-Desk-Windowing dargestellt ist;FIGURE 1 shows a simplified screen representation illustrating messy desk windowing;

FIGUR 2 mehrere unterschiedliche Teile eines einzelnen logischen Fensters zeigt;FIGURE 2 shows several different parts of a single logical window;

FIGUR 3 die Benutzung von zwei separaten Bereichen zeigt, welche zusammen angezeigt werden, um ein einzelnes logisches Fenster darzustellen;FIGURE 3 shows the use of two separate panes displayed together to form a single logical window;

FIGUR 4 ein Blockdiagramm zeigt, das ein System zur Anzeige von Fenstern in nicht-programmierbaren Terminals darstellt;FIGURE 4 is a block diagram illustrating a system for displaying windows in non-programmable terminals;

FIGUR 5 ein Blockdiagramm eines Fenster-Manager-Systems zeigt;FIGURE 5 shows a block diagram of a window manager system;

FIGUR 6 Einzelheiten eines Fenstersteuerblocks zeigt; undFIGURE 6 shows details of a window control block; and

FIGUR 7 Einzelheiten einer Datengruppe zeigt.FIGURE 7 shows details of a data group.

Nun mit Bezug auf Figur 1, die einen Musterbildschirm zeigt, auf dem die Benutzung von überlappenden Fenstern dargestellt ist. Der Bildschirm 10 kann nahezu jeder CRT Bildschirm sein, wie diese in dem Stand der Technik bekannt sind. Der Rahmen 12 umgibt den Bereich der Anzeige, in welcher für den Anwender Informationen optisch dargestellt werden. Weitere Teile eines typischen Computer-Terminals, wie Tastatur, Gehäuse, Helligkeits-/Kontrastregelungen, sind nicht abgebildet.Referring now to Figure 1, there is shown a sample screen illustrating the use of overlapping windows. The screen 10 may be virtually any CRT screen known in the art. The frame 12 surrounds the area of the display in which information is visually presented to the user. Other parts of a typical computer terminal, such as keyboard, case, brightness/contrast controls, are not shown.

In der Anzeige 10, Text 14, 16, wird gezeigt, wie Zeichengrafiken 18 zur Bildung von Linien benutzt werden. Innerhalb des Anzeigenbereichs sind 4 Fenster 20, 22, 24, 26 überlappend angeordnet. Jedes Fenster ist rechteckig und enthält einen Rahmen. Teile eines Fensters, die von anderen Fenstern überlappt werden, werden nicht angezeigt. Zur Vereinfachung der Darstellung enthalten die Fenster in Figur 1 keinen Text, obwohl im allgemeinen bei normaler Benutzung Text in den Fenstern enthalten ist.In the display 10, text 14, 16, it is shown how character graphics 18 are used to form lines. Within the display area, 4 windows 20, 22, 24, 26 are arranged in an overlapping manner. Each window is rectangular and contains a frame. Parts of a window that are overlapped by other windows are not displayed. To simplify the illustration The windows in Figure 1 do not contain any text, although text is generally contained in the windows during normal use.

Wie Figur 1 zeigt, ist Fenster 26 das oberste Fenster, das in absteigender Reihenfolge von den Fenstern 24, 22 und 20 gefolgt wird. Somit ist Fenster 20 zuunterst im Stapel, und jeder Teil davon, der von einem anderen Fenster überlagert wird, wird nicht auf dem Bildschirm 10 angezeigt.As Figure 1 shows, window 26 is the topmost window, followed in descending order by windows 24, 22 and 20. Thus, window 20 is at the bottom of the stack, and any part of it that is overlaid by another window is not displayed on the screen 10.

Größe und Lage der Fenster 20, 22, 24, 26 sowie deren Reihenfolge im Stapel werden von dem Benutzer oder den Anwendungsprogrammen bestimmt. Größe und Lage der Fenster können vorzugsweise von dem Benutzer mehr oder weniger nach Belieben verändert werden, so daß künftig jede gegebene Lage des Fensters unbestimmt ist. Die Anwendungsprogramme, die in diese Fenster geschrieben werden, müssen in der Lage sein, dies für die Größe oder Lage eines Fensters durchzuführen.The size and position of the windows 20, 22, 24, 26 and their order in the stack are determined by the user or the application programs. The size and position of the windows can preferably be changed more or less at will by the user, so that in the future any given position of the window is indeterminate. The application programs that are written in these windows must be able to do this for the size or position of a window.

Viele anzuzeigende Fenster haben die Eigenschaft, daß einige der darin enthaltenen Informationen, einschließlich des Rahmens relativ statisch bleiben. Figur 2 zeigt ein typisches Fenster 30, das einen Rahmen 32 hat, welcher dieses umgibt und einen Fenstertitel 34, der sich in dem Rahmen 32 befindet. Der Kopftext 36, der normalerweise informative Hinweise für den Benutzer liefert, wird in der Nähe des Fensteroberteils 32 positioniert. In einigen Fenstersystemen kann eine Trennlinie 38 zwischen dem Kopftext 36 und dem Rest des Textes in Fenster 30 gezogen werden. Am unteren Rand des Fensters 30 wird der Fußtext 40 manchmal benutzt, um dem Benutzer weitere Informationen und Hinweise zu liefern. Der Rest des Fensters ist ein rollfähiger Bereich 42, der aus dem gesamten Bereich zwischen den Rahmen 32, unterhalb der Trennlinie 38 und oberhalb des Fußtextes 40 besteht. Dieser Bereich 42 wird von den Anwendungsprogrammen geschrieben und ist normalerweise rollfähig, wenn Text eingegeben wurde.Many display windows have the property that some of the information contained therein, including the frame, remains relatively static. Figure 2 shows a typical window 30 having a frame 32 surrounding it and a window title 34 located within the frame 32. The header text 36, which normally provides informative notices to the user, is positioned near the top of the window 32. In some windowing systems, a dividing line 38 may be drawn between the header text 36 and the rest of the text in window 30. At the bottom of window 30, footer text 40 is sometimes used to provide further information and notices to the user. The remainder of the window is a scrollable area 42 consisting of the entire area between the frame 32, below the dividing line 38 and above the footer text 40. This area 42 is written by the application programs and is normally scrollable when text has been entered.

Teile des Fensters 30, die nicht im rollbaren Bereich 42 liegen, enthalten den Rahmen 32, Titel 34, Kopftext 36, die Trennlinie 38 sowie den Fußtext 40 und sind relativ statisch. Der rollfähige Bereich 42 ist relativ dynamisch mit aktualisierter Information, die auf vollkommen regulärer Basis dort geschrieben wurde.Parts of the window 30 that are not in the scrollable area 42 include the frame 32, title 34, header text 36, divider line 38 and footer text 40 and are relatively static. The scrollable area 42 is relatively dynamic with updated information written there on a completely regular basis.

Die im Zusammenhang mit den Figuren 1 und 2 beschriebenen Fenstern können von einem Anwendungsprogrammierer auf vollkommen einfache Art in die meisten Personal Computer und in einige Desktop Computer implementiert werden. Dies ist so, weil einige dieser Geräte mit eingebauter Unterstützung für komplexe Fenstertechnikfunktionen konzipiert sind. Nicht-programmierbare, aufzeichenbasierende Terminals, die normalerweise mit Großrechnersystemen benutzt werden, können solche Fenstertechnikfunktionen nicht unterstützen. Figur 3 zeigt ein Konzept gemäß der vorliegenden Erfindung, die eine effiziente Implementierung von Messy-Desk-Windowing mit solchen nicht-programmierbaren Terminals zuläßt.The windows described in connection with Figures 1 and 2 can be implemented by an application programmer in a perfectly simple manner in most personal computers and in some desktop computers. This is because some of these devices are designed with built-in support for complex windowing functions. Non-programmable, record-based terminals normally used with mainframe systems cannot support such windowing functions. Figure 3 shows a concept in accordance with the present invention that allows efficient implementation of messy desk windowing with such non-programmable terminals.

Mit Bezug auf Figur 3 ist ein Fenster 46 in einen äußeren Bereich 48 und einen inneren Bereich 50 gegliedert. Die Bereiche 48, 50 werden als unabhängige Bereiche für Anzeigezwecke betrachtet, sind jedoch, wie abgebildet, überlappend angeordnet, um einem Benutzer ein einzelnes logisches Fenster zu präsentieren. Der äußere Bereich 48 enthält nicht-rollfähige Informationen, die sich relativ selten ändern, während der innere Bereich 50 relativ dynamischen Text enthält. Der äußere Bereich 48 enthält Fensterrahmen, Titel, Kopftext und Fußtext. Der innere Bereich 50 enthält keinen Rahmen und besteht in erster Linie aus rollfähiger Textinformation.Referring to Figure 3, a window 46 is divided into an outer region 48 and an inner region 50. The regions 48, 50 are considered independent regions for display purposes, but are arranged in an overlapping manner as shown to present a single logical window to a user. The outer region 48 contains non-scrollable information that changes relatively infrequently, while the inner Area 50 contains relatively dynamic text. The outer area 48 contains window frames, titles, header text and footer text. The inner area 50 contains no frame and consists primarily of scrollable text information.

Die zeichenbasierenden, nicht-programmierbaren Terminals, die normalerweise, zusammen mit ihren Software-Treibern, mit der vorliegenden Erfindung verwendet werden, liefern normalerweise innerhalb eines definierten Bereichs rollfähige Textplazierung. Diese sorgen jedoch nicht für das Rollen eines Teilbereichs, da der Rest des intakten Bereichs zurückbehalten wird. Indem ein logisches Fenster in zwei unabhängigen Bereichen definiert wird, können somit die rollfähigen Teile der Anzeige unabhängig von den nicht-rollfähigen Teilen gesteuert werden. Dadurch wird die Wirksamkeit gesteigert, wenn rollfähiger Text in ein Fenster geschrieben wird. Terminals und Treiber manipulieren auch den erweiterten Datenstrom in den Grenzbereichen, so daß Schriftarten, Farbe, Blink- und andere Anzeigeattribute innerhalb jedes Bereichs korrekt gesteuert werden. Einige Terminals sind in der Lage, Grafiken und Animationen in zahlreichen Stufen zu unterstützen.The character-based, non-programmable terminals that are typically used with the present invention, along with their software drivers, typically provide scrollable text placement within a defined region. However, these do not provide for scrolling of a subregion, as the rest of the region is retained intact. Thus, by defining a logical window in two independent regions, the scrollable portions of the display can be controlled independently of the non-scrollable portions. This increases the efficiency of writing scrollable text in a window. Terminals and drivers also manipulate the extended data stream in the border regions so that fonts, color, blinking, and other display attributes are properly controlled within each region. Some terminals are capable of supporting graphics and animations at numerous levels.

Wie nachstehend ausführlicher beschrieben wird, kann ein Fenster mehr als zwei unabhängige Bereiche haben. Ein einzelnes logisches Fenster kann einen äußeren Bereich mit relativ statischem, nicht-rollfähigem Text und zwei oder drei separaten, rollfähigen Bereichen innerhalb seines Rahmens haben. Die separaten, rollfähigen Bereiche werden vorzugsweise ohne Überlappung in unmittelbarer Nähe voneinander angeordnet. Einige logische Fenster enthalten weder rollfähige noch nicht-rollfähige Bereiche. Ein Fenster kann zum Beispiel nur feste Informationen enthalten, die von dem Benutzer nicht geändert werden kann. Solch ein Fenster benötigt daher keinen inneren, rollfähigen Bereich 50.As described in more detail below, a window may have more than two independent regions. A single logical window may have an outer region of relatively static, non-scrollable text and two or three separate, scrollable regions within its border. The separate, scrollable regions are preferably placed in close proximity to each other without overlapping. Some logical windows contain neither scrollable nor non-scrollable regions. For example, a window may contain only fixed information that cannot be changed by the user. Such a window therefore does not require an inner scrollable area 50.

Figur 4 zeigt ein höheres Blockdiagramm, das ein bevorzugtes System zur Durchführung der Fenstertechnik beschreibt. Ein Anwendungsprogramm 60 führt, bezogen auf ein Terminal, eine Ausgabe durch, indem ein Fenstermanager-Subsystem 62 aufgerufen wird. Der Fenstermanager 62 besteht aus einer Sammlung von Verfahren und Datenstrukturen, die nachstehend ausführlicher beschrieben werden, und welche die Funktion der logischen Fenster steuern, welche das Anwendungsprogramm 60 zu sehen wünscht. Der Fenstermanager kommuniziert mit einem Anzeigemanager 64, der seinerseits über eine Datenverbindung 68 mit einem Bildschirm 66 kommuniziert. Der Bildschirm 66 ist oft an einem Ort aufgestellt, der von dem Zentralcomputersystem entfernt ist, so daß die Datenverbindung 68 eine serielle Schnittstelle ist, die eine oder mehrere Telefon- oder Satellitenverbindungen enthalten kann.Figure 4 shows a high level block diagram describing a preferred system for implementing windowing. An application program 60 performs output relative to a terminal by invoking a window manager subsystem 62. The window manager 62 consists of a collection of methods and data structures, described in more detail below, which control the operation of the logical windows that the application program 60 wishes to view. The window manager communicates with a display manager 64, which in turn communicates with a display 66 via a data link 68. The display 66 is often located at a location remote from the host computer system so that the data link 68 is a serial interface which may include one or more telephone or satellite links.

Der Anzeigemanager 64 ist ein Software-Subsystem, das sich im Hauptcomputer befindet und den Bildschirm 66 steuert. Der Anzeigemanager 44 sendet dem Bildschirm 66 anzuzeigende Zeichen una sendet dem Bildschirm 66 ebenfalls Steuersequenzen, die zur Positionierung des Cursors, Hervorhebung von Text und zur Durchführung von anderen Anzeigefunktionen dienen. Informationen, welche von einem Benutzer in den Bildschirm 66 eingegeben werden, gelangen zum Anzeigemanager 64 und werden über den Fenstermanager 62 an das Anwendungsprogramm 60 übertragen. Ein Beispiel eines typischen Subsystems eines Anzeigemanagers 64, das sich zur Benutzung mit der vorliegenden Erfindung eignet, ist als GRAPHICAL DATA DISPLAY MANAGER (GDDM) bekannt, bei IBM verfügbar und derzeit weitverbreitet.The display manager 64 is a software subsystem located in the main computer that controls the display screen 66. The display manager 44 sends characters to the display screen 66 to be displayed and also sends control sequences to the display screen 66 that are used to position the cursor, highlight text, and perform other display functions. Information entered by a user on the display screen 66 is passed to the display manager 64 and transmitted to the application program 60 via the window manager 62. An example of a typical display manager 64 subsystem suitable for use with the present invention is known as the GRAPHICAL DATA DISPLAY MANAGER (GDDM), available from IBM, and currently in wide use.

Figur 5 beschreibt ausführlicher den Fenstermanager 62. Die Kommunikation mit dem Anwendungsprogramm 60 und dem Anzeigemanager 64 erfolgt über die Fensteraufrufe 80. Die Fensteraufrufe 80 bestehen aus einer Sammlung von Verfahren, die über das Anwendungsprogramm aufgerufen werden können und die ihrerseits Verfahrensaufrufe in dem Anzeigemanager-Subsystem machen. Pseudocodebeschreibungen von der Durchführung von einigen der wichtigsten Verfahren innerhalb der Fensteraufrufe 80 werden im Anhang fortgesetzt und nachstehend ausführlicher beschrieben.Figure 5 describes the window manager 62 in more detail. Communication with the application program 60 and the display manager 64 is via the window calls 80. The window calls 80 consist of a collection of methods that can be called via the application program and which in turn make method calls in the display manager subsystem. Pseudocode descriptions of the execution of some of the most important methods within the window calls 80 are continued in the appendix and described in more detail below.

Die Fensteraufrufverfahren 80 greifen auf eine Vielzahl von Datenstrukturen zu, die Fenstersteuerblöcke 82, 84, 86 genannt werden. Jeder Fenstersteuerblock entspricht einem logischen Fenster und enthält alle erforderlichen Informationen, um sowohl die rollfähigen als auch die nicht-rollfähigen Teile eines logischen Fensters zu erzeugen und zu steuern. Wann immer ein neues logisches Fenster von dem Anwendungsprogramm erstellt wird, wird ein neuer Fenstersteuerblock zugeordnet und bei den Fensteraufrufen 80 zur Verfügung gehalten. Wenn ein Fenster gelöscht wird, wird der entsprechende Fenstersteuerblock aufgegeben.The window call methods 80 access a variety of data structures called window control blocks 82, 84, 86. Each window control block corresponds to a logical window and contains all the information necessary to create and control both the scrollable and non-scrollable portions of a logical window. Whenever a new logical window is created by the application program, a new window control block is allocated and made available to the window calls 80. When a window is deleted, the corresponding window control block is abandoned.

Zusätzlich zu der Kopfinformation enthält jeder Fenstersteuerblock 82, 84, 86 Hinweisadressen für ein oder mehrere Datenobjekte 88. Diese Datenobjekte 88, auch Gruppen genannt, enthalten den Text, der an den Anzeigemanager zur Anzeige auf dem Bildschirm gesendet wird. In einem Ausführungsbeispiel kann die Anwendung Daten in die Datenobjekte 88 plazieren, aus denen diese durch die Fensteraufrufe 80 zur Übertragung an den Anzeigemanager herausgezogen werden können. Als Alternative, durch Verwendung eines etwas mehr objektorientiertes Verfahren, schreibt die Anwendung Daten in ein logisches Fenster, indem ein Fensteraufrufe 80 durchgeführt wird, so daß die Anwendung keinen direkten Zugriff auf die Datenobjekte 88 hat. Verschiedene Datenobjekte 88 werden für verschiedene Teile eines logischen Fensters verwendet, wie dies detaillierter in Figur 6 dargestellt ist.In addition to the header information, each window control block 82, 84, 86 contains pointers to one or more data objects 88. These data objects 88, also called groups, contain the text that is sent to the display manager for display on the screen. In one embodiment, the application can place data into the data objects 88 from which it can be extracted by the window calls 80 for transmission to the display manager. Alternatively, using a slightly more object-oriented approach, the application writes data to a logical window by making a window call 80 so that the application does not have direct access to the data objects 88. Different data objects 88 are used for different parts of a logical window, as shown in more detail in Figure 6.

Mit Bezug auf Figur 6 wird eine bevorzugte interne Struktur für einen Fenstersteuerblock 82 gezeigt. Ein Teil 90 des Fenstersteuerblocks 82 enthält allgemeine Informationen, die für das logische Fenster relevant sind. Diese Information 90 enthält eine Fensterart, zum Beispiel Primärfenster, Pulldown- Fenster oder Hervorholfenster. Die Lage des Fensters ist eingeschlossen, wobei die Information im allgemeinen X und Y Koordinaten für eine Ecke des Fensters enthält. Die Größe des Fensters, aus Reihen- und Spaltennummern bestehend, ist ebenfalls enthalten, da dies zu den verschiedenen Fensterstatusinformationen gehört. Verschiedene Informationen, die zu dem logischen Fenster gehören, zum Beispiel ein Fenstertitel, sofern vorhanden, und die Identität des Anwendungsprogramms, das zu diesem Fenster gehört, kann ebenfalls darin enthalten sein.Referring to Figure 6, a preferred internal structure for a window control block 82 is shown. A portion 90 of the window control block 82 contains general information relevant to the logical window. This information 90 includes a window type, for example, primary window, pull-down window, or pop-up window. The location of the window is included, with the information generally including X and Y coordinates for a corner of the window. The size of the window, consisting of row and column numbers, is also included, as this is part of the various window status information. Various information pertaining to the logical window, for example, a window title, if any, and the identity of the application program associated with that window, may also be included.

Ein nächster Teil 92 des Fenstersteuerblocks 82 enthält Kennzeichen für die Partitionen, die zum Aufbau des logischen Fensters verwendet werden. Eine Partition ist ein logischer Bereich, der von dem GDDM Anzeigemanager benutzt wird und entspricht den Bereichen 48, 50, die im Zusammenhang mit Figur 3 beschrieben werden. In einem bevorzugten Ausführungsbeispiel ist somit eine Partition für den nicht-rollfähigen Bereich 48 eines logischen Fensters 46 bestimmt, wobei die verbleibenden Partitionen für einen oder mehrere rollfähige Bereiche 50 verwendet werden. Ein typisches Fenster wird aus einer nicht- rollfähigen und einer rollfähigen Partition bestehen. Zusätzlich rollfähige Partitionen werden normalerweise nur für komplexe Rolloperationen benötigt, wie dies zum Beispiel der Fall sein kann, wenn Kopftext von Reihen oder Spalten innerhalb des rollfähigen Bereichs statisch bleiben müssen.A next part 92 of the window control block 82 contains identifiers for the partitions used to construct the logical window. A partition is a logical area used by the GDDM display manager and corresponds to the areas 48, 50 described in connection with Figure 3. Thus, in a preferred embodiment, one partition is designated for the non-scrollable area 48 of a logical window 46, with the remaining partitions being used for one or more scrollable areas 50. A typical window is constructed from a non- scrollable and a scrollable partition. Additional scrollable partitions are normally only needed for complex scrolling operations, such as when headers of rows or columns within the scrollable area must remain static.

Ein Datenteil 94 enthält Hinweisadressen zu Datengruppen 88, welche - wie zuvor erwähnt - Text enthalten, der in dem logischen Fenster zu plazieren ist. Die Daten können auf jede Art organisiert werden, die für die Benutzung mit dem Anzeigemanager 64 in der in Figur 6 gezeigten Anwendung passend ist und bei der Verwendung mit einem GDDM Anzeigemanager 64 nützlich ist.A data portion 94 contains pointers to data groups 88, which, as previously mentioned, contain text to be placed in the logical window. The data may be organized in any manner that is appropriate for use with the display manager 64 in the application shown in Figure 6 and is useful when used with a GDDM display manager 64.

In dem Datenteil 94 sind mehrere Hinweisadressen zu Daten, die in der nicht-rollfähigen Partition plaziert sind, die ersten. Eine Grenzgruppen-Hinweisadresse 96 verweist auf eine Gruppe 88, welche Felddefinitionen, die nachstehend beschrieben sind, enthält, sowie alle Informationen enthält, die erforderlich sind, um die Grenze des logischen Fensters anzuzeigen. Eine Aktionsbereichs-Hinweisadresse 98 verweist auf eine Gruppe 88, die einen Kopftext 36 enthält und eine Schlüssellegende-Hinweisadresse 100 verweist auf eine Gruppe 88, die Fußtext 40 enthält. Zusätzliche Hinweisadressen (ohne Abbildung) können auf andere Datengruppen 88 verweisen, welche andere, nicht- rollfähige Textbereiche definieren. Wenn ein bestimmtes Fenster keine besondere Einrichtung enthält, zum Beispiel einen Aktionsbereich oder eine Schlüssellegende, werden die entsprechenden Hinweisadressen einfach auf NULL gesetzt.In the data part 94, several pointers to data placed in the non-scrollable partition are first. A boundary group pointer 96 points to a group 88 containing field definitions described below as well as all information required to indicate the boundary of the logical window. An action area pointer 98 points to a group 88 containing header text 36 and a key legend pointer 100 points to a group 88 containing footer text 40. Additional pointers (not shown) may point to other data groups 88 defining other non-scrollable text areas. If a particular window does not contain any special facility, such as an action area or key legend, the corresponding pointers are simply set to NULL.

Die Hinweisadressen 96, 98, 100 führen zu Daten, welche in der nicht-rollfähigen Partition enthalten sind. Eine erste Textgruppen-Hinweisadresse 102 verweist auf eine Datengruppe 88, welche Daten enthält, die in dem rollfähigen Bereich anzuzeigen sind. Ein Artkennzeichen 104 für die erste Textgruppe gibt an, ob dieser Bereich derzeit rollfähig ist und kann benutzt werden, um andere Informationen über die zugehörige Datengruppe 88 anzuzeigen. Außerdem werden Textgruppen-Hinweisadressen, zum Beispiel Textgruppen-Hinweisadresse 106, in Verbindung mit zusätzlich rollfähigen Partitionen nach der ersten rollfähigen Partition verwendet. Jede dieser anderen Textgruppen hat ebenfalls ein zu ihr gehörendes Artkennzeichen 108.The reference addresses 96, 98, 100 lead to data that is contained in the non-rollable partition. A first Text group pointer 102 refers to a data group 88 which contains data to be displayed in the scrollable region. A type identifier 104 for the first text group indicates whether this region is currently scrollable and can be used to display other information about the associated data group 88. In addition, text group pointers, for example text group pointer 106, are used in conjunction with additional scrollable partitions after the first scrollable partition. Each of these other text groups also has a type identifier 108 associated with it.

Mit Bezug auf Figur 7 wird eine bevorzugte Organisation für eine Datengruppe 88 beschrieben. Jede Datengruppe 88 enthält ein oder mehrere Felder, wobei jedes Feld normalerweise einer anzuzeigenden Textzeile entspricht. Die Information, die zur Anzeige von jedem Feld erforderlich ist, wird in Gruppen angeordnet, so daß diese eine Anzeigergruppe 110, eine Feldkennzeichengruppe 111, eine Attributengruppe 112 und eine Kettengruppe 114 bilden. Wie Figur 7 zeigt, entspricht jede benachbarte Eingabe in eine Attributengruppe 110, 111, 112, 114 einem Feld, so daß ein erstes Feld 116 die erste Eingabe in jeder der Gruppen 110, 111, 112, 114 enthält.Referring to Figure 7, a preferred organization for a data group 88 is described. Each data group 88 contains one or more fields, each field typically corresponding to a line of text to be displayed. The information required to display each field is arranged in groups to form an indicator group 110, a field label group 111, an attribute group 112, and a chain group 114. As shown in Figure 7, each adjacent entry in an attribute group 110, 111, 112, 114 corresponds to a field, so that a first field 116 contains the first entry in each of the groups 110, 111, 112, 114.

Die Anzeigereingabe für jedes Feld enthält verschiedene Statusanzeiger für dieses Feld. Die Feldkennzeichen-Eingabe für jedes Feld enthält eine symbolische Bezeichnung für dieses Feld, um den Bezug auf dieses gegebenenfalls durch die Anwendung zu vereinfachen. Die Attributeneingabe für ein Feld enthält Informationen für den Anzeigemanager 64, die verwendet werden, um den Text von jedem Feld anzuzeigen, zum Beispiel Informationen zu Größe, Farbe und Hervorhebungen. Die Ketteneingabe für jedes Feld ist vorzugsweise eine Hinweisadresse in einer Kette, welche den Text für dieses Feld enthält.The indicator input for each field contains various status indicators for that field. The field label input for each field contains a symbolic label for that field to facilitate reference to it by the application if necessary. The attribute input for a field contains information for the display manager 64 that is used to display the text of each field, for example Information about size, color and highlighting. The chain input for each field is preferably a reference address in a chain containing the text for that field.

Die Fensteraufrufe 80 können einfach aus einem Fenstersteuerblock für die Daten herausgezogen werden, die an den Anzeigemanager 64 zu senden sind. Die Verwendung des beschriebenen Systems ermöglicht eine relativ einfache Implementierung der Funktionen, die für die höhere Steuerung von logischen Fenstern erforderlich sind. Diese Funktionen enthalten Funktionen zum Erstellen und Löschen von Fenstern, zum Schreiben von Text in Fenster und zum Lesen von Text, der von einem Benutzer eingegeben wurde sowie zum Formatieren, Verschieben und Rollen von Fenstern, sind jedoch nicht auf diese Funktionen begrenzt. Der Pseudocode zur Durchführung dieser wichtigen Funktionen wird nachstehend beschrieben.The window calls 80 can be easily extracted from a window control block for the data to be sent to the display manager 64. Use of the system described allows for relatively simple implementation of the functions required for high-level control of logical windows. These functions include, but are not limited to, functions for creating and deleting windows, writing text into windows, reading text entered by a user, and formatting, moving, and scrolling windows. The pseudocode for performing these important functions is described below.

Createwindow /* erstellt anhand der Information im WCB ein Fenster am Bildschirm */Createwindow /* creates a window on the screen based on the information in the WCB */

100 Gültigkeit des WCB's prüfen, der als Eingabe in die Funktion gelangte /* äußere Partition erstellen */100 Check the validity of the WCB that was entered into the function as input /* create outer partition */

101 Anzeige aufrufen, um äußere Partition zu definieren101 Display to define outer partition

102 Anzeige aufrufen, um äußere Partitionsseite zu erstellen, damit diese gleiches Format wie äußere Partition hat102 Display to create outer partition page so that it has the same format as outer partition

103 neue MAPREC erstellen und ans Ende der Kette anhängenCreate 103 new MAPREC and append it to the end of the chain

104 Rahmenecken und horizontale Linien gemäß Gerätecharakteristika ersetzen104 Replace frame corners and horizontal lines according to device characteristics

105 WENN wir Symbole haben105 IF we have symbols

106 DANN Symbol-Satz Attribute für Grenzfelder erstellen und programmierte Symbolecken verwenden106 THEN Create symbol set attributes for border fields and use programmed symbol corners

107 SONST verbindende horizontale Linien und Emulator-Eckenzeichen verwenden107 ELSE use connecting horizontal lines and emulator corner characters

108 richtige Zeichen in den Ecken plazierenPlace 108 correct characters in the corners

109 SCHLEIFE über äußeren Partitionsgruppen109 LOOP over outer partition groups

110 WENN Gruppen-Hinweisadresse nicht-Null110 IF group reference address non-zero

111 DANN Teil des von der Gruppe beschriebenen Fensters zeichnen111 THEN draw part of the window described by the group

112 ENDE SCHLEIFE /* innere Partition erstellen */112 END LOOP /* create inner partition */

113 Anzeige aufrufen, um Text (innere) Partition zu definieren113 Display to define text (inner) partition

114 Anzeige aufrufen, um darunterliegende Seite für Textpartition zu definieren, in WCB zu formatieren oder im Partitionsformat vorzugeben114 Call up display to define underlying page for text partition, format in WCB or specify in partition format

115 neue MAPREC erstellen und ans Ende der Kette hängenCreate 115 new MAPRECs and attach them to the end of the chain

116 SCHLEIFE über Feldern in Textgruppe116 LOOP over fields in text group

117 Anzeige aufrufen, um Feld zu definieren117 Call display to define field

118 Anzeige aufrufen, um Text in Feld anzuzeigen118 Call display to display text in field

119 ENDE SCHLEIFE119 END LOOP

120 WindowOpen Anzeiger in WCB setzen120 Set WindowOpen indicator in WCB

Destroywindow /* Fenster und dessen WCB's löschen, zugehörigen Speicher löschen */Destroywindow /* Delete window and its WCBs, delete associated memory */

100 Gültigkeit des WCB prüfen, der als Eingabe in die Funktion gelangte100 Check the validity of the WCB that was entered into the function

101 SCHLEIFE über jeder Gruppe in der WCB101 LOOP over every group in the WCB

102 SCHLEIFE über jedem Feld in der Gruppe102 LOOP over each field in the group

103 WENN diese Kette existiert, diese löschen103 IF this chain exists, delete it

104 ENDE SCHLEIFE104 END LOOP

105 Gruppenspeicher löschen105 Delete group memory

106 ENDE SCHLEIFE106 END LOOP

107 auf Gesamtspeicher MAPREC zeigen107 show total memory MAPREC

108 MAPREC aus Partitionen entfernen, die dem WCB gehören108 Remove MAPREC from partitions owned by WCB

109 WCB Speicher löschen109 Clear WCB memory

WriteText /* neue Felder erstellen und/oder Text in vorhandenen Feldern plazieren */WriteText /* create new fields and/or place text in existing fields */

100 Gültigkeit des WCB prüfen, der als Eingabe in die Funktion gelangte100 Check the validity of the WCB that was entered into the function

101 aktuelle äußere Partition erstellen101 create current outer partition

102 auf erste Gruppe in Partition zeigen102 point to first group in partition

103 SCHLEIFE über Gruppen in der Partition103 LOOP over groups in the partition

104 auf erstes Feld in der Gruppe zeigen104 point to first field in group

105 WENN auf Textgruppe gezeigt wird, aktuelle innere Partition erstellen105 IF pointed to text group, create current inner partition

106 SCHLEIFE über Feldern der Gruppe106 LOOP over fields of the group

107 WENN Writetext Anzeiger setzen107 IF Writetext Set indicator

108 DANN (Kette neu schreiben, ggf. mit Leerzeichen auffüllen108 THEN (rewrite the chain, fill with spaces if necessary)

109 Darstellungsbefehl für Textänderung eingeben109 Enter display command for text change

110 WENN Anzeige aufrufen erfolgreich110 IF display call successful

111 DANN Anzeiger rückstellen111 THEN reset indicator

112 SONST Return mit Fehlercode)112 ELSE Return with error code)

113 ENDE SCHLEIFE113 END LOOP

114 ENDE SCHLEIFE114 END LOOP

Readwindow /* Eingabe vom Bildschirm lesen, WCB aktualisieren */Readwindow /* Read input from screen, update WCB */

100 Aktuelle Partition abfragen100 Query current partition

101 WENN keine aktuelle Partition DANN Return101 IF no current partition THEN Return

102 Schreiben/Lesen am Bildschirm mit Anzeigemanagerbefehl102 Writing/reading on the screen with display manager command

103 Cursor-Information abfragen103 Query cursor information

104 WENN der Cursor in keiner Partition ist104 IF the cursor is not in a partition

105 DANN in oberer Partition plazieren105 THEN place in upper partition

106 TEMP Liste mit WCB's erstellen, deren Partitionen sich derzeit am Bildschirm befinden106 TEMP Create a list of WCBs whose partitions are currently on the screen

107 auf Gesamtliste zeigen, welche Partitionen in WCB's abbildet (MAPREC's)107 show on total list which partitions are mapped in WCB's (MAPREC's)

/* Feld mit Hinweisadressen in WCB's für aktuelle Fenster erstellen *1/* Create field with reference addresses in WCB's for current windows *1

/* erste aktuelle Partition im Feld erstellen *//* create first current partition in the field */

/* nur äußere Partitionen auswählen, um nur eine WCB pro Fenster zu erhalten *//* select only outer partitions to get only one WCB per window */

108 SCHLEIFE über MAPREC's108 LOOP over MAPREC's

109 WENN Partition aktuell ist, vor dem Feld plazieren109 IF partition is current, place before the field

110 Wenn auf äußere Partition gezeigt wird, entsprechenden WCB im Feld plazieren110 If pointing to outer partition, place corresponding WCB in the field

111 ENDE SCHLEIFE111 END LOOP

112 SCHLEIFE über WCB's im Feld112 LOOP over WCB's in the field

113 WENN Fenster geschlossen oder verkleinert ist, nächste Schleife im WCB erstellen113 IF window is closed or minimized, create next loop in WCB

114 aktuelle Textpartition erstellen114 Create current text partition

115 geänderte Felder abfragen, Feldkennzeichen in einer Liste plazieren115 query changed fields, place field identifiers in a list

116 SCHLEIFE über geändertem Feld von Textpartition116 LOOP over modified field of text partition

117 WCB-Feldhinweisadresse für geändertes Feld setzen117 Set WCB field reference address for changed field

118 Modified Field Anzeiger setzen118 Set Modified Field Indicator

119 ENDE SCHLEIFE119 END LOOP

120 aktuelle äußere Partition erstellen120 create current outer partition

121 geänderte Felder abfragen, Feldkennzeichen in einer Liste plazieren121 query changed fields, place field identifiers in a list

122 SCHLEIFE über geänderten Feldern der äußeren Partition122 LOOP over changed fields of the outer partition

123 Feldhinweisadresse WCB für geändertes Feld setzen123 Set field reference address WCB for changed field

124 Modified Field Anzeiger setzen124 Set Modified Field Indicator

125 ENDE SCHLEIFE125 END LOOP

126 WENN Fenster Spezial-Eingabe-Feld hat, Eingabekette direkt an Besitzer senden und Eingabefeld löschen126 IF window has special input field, send input string directly to owner and delete input field

127 Windowevent Mitteilung an Fensterbesitzer senden127 Window event Send message to window owner

128 ENDE SCHLEIFE128 END LOOP

SizeWindow /* Fenster am Bildschirm neu formatieren und es in den oberen Bereich des Bildschirms setzen */SizeWindow /* Reformat the window on the screen and place it at the top of the screen */

100 Gültigkeit des WCB's prüfen, der als Eingabe in die Funktion gelangte100 Check the validity of the WCB that was entered into the function

/* Format innere Partition *//* Format inner partition */

101 WENN Textpartition vorhanden101 IF text partition exists

102 DANN (Distanz von äußerer Partition berechnen102 THEN (calculate distance from outer partition

103 WCB mit neuer Textpartition aktualisieren, basierend auf Bestimmung und Distanz103 Update WCB with new text partition, based on destination and distance

104 WENN neues Fensterformat zu klein für Textanzeige ist,104 IF new window format is too small for text display,

105 DANN (ist es unsichtbar zu machen,105 THEN (it is to be made invisible,

106 nach unten am Bildschirm schieben,106 slide down on the screen ,

107 reduzierten Anzeiger setzen)107 reduced indicator)

108 Darstellungsbefehl eingeben, um Textpartition zu formatieren)108 Enter display command to format text partition)

/* Format äußere Partition *//* Format outer partition */

108 WCB mit neuer, äußerer Partitionsposition und Abmessungen aktualisieren108 Update WCB with new outer partition position and dimensions

109 Darstellungsbefehl eingeben, um äußere Partition zu formatieren109 Enter display command to format outer partition

110 Partitionsseite löschen und mit neuen Abmessungen neu erstellen110 Delete partition page and recreate with new dimensions

/* äußere Partition neu erstellen *//* recreate outer partition */

111 festlegen, ob Titelfeld vorhanden111 determine whether title field exists

112 Eckenzeichen und ein Zeichen von jeder Seite sichernSave 112 corner characters and one character from each side

113 WCB mit neuer, äußerer Partitionsabmessung und neuem Format aktualisieren113 Update WCB with new outer partition dimensions and new format

114 Rahmen mit gesicherten Zeichen neu erstellen Rahmenecken mit gesicherten Zeichen neu erstellen114 Recreate frame with saved characters Recreate frame corners with saved characters

/* nach oben schieben *//* move up */

116 aktuelle obere Partition abfragen.116 query current upper partition.

117 WENN Fenster schieben, ist nicht oben117 IF sliding window is not at the top

118 DANN Text plazieren und äußere Partition nach oben am Bildschirm schieben118 THEN place text and move outer partition up on the screen

MoveWindow /* Verschiebt das Fenster am Bildschirm und schiebt es am Bildschirm nach oben */MoveWindow /* Moves the window on the screen and pushes it up on the screen */

100 Gültigkeit des WCB's prüfen, der als Eingabe in die Funktion gelangte100 Check the validity of the WCB that was entered into the function

101 WENN Textpartition vorhanden101 IF text partition exists

102 DANN (Distanz von äußerer Partition berechnen102 THEN (calculate distance from outer partition

103 WCB mit neuer Textpartition aktualisieren, basierend auf Bestimmung und Distanz103 Update WCB with new text partition, based on destination and distance

104 WENN Fenster nicht verkleinert ist104 IF window is not minimized

105 DANN Darstellungsbefehl eingeben, um Textpartition zu verschieben)105 THEN enter display command to move text partition)

106 WCB mit neuer, äußerer Partitionsposition aktualisieren106 Update WCB with new outer partition position

107 Darstellungsbefehl eingeben, um äußere Partition zu bewegen107 Enter display command to move outer partition

108 aktuelle, obere Partition abfragen.108 query current upper partition.

/* nach oben schieben *//* move up */

109 WENN Fenster verschieben nicht oben ist109 IF Move Window is not at the top

DANN Text und äußere Partitionen oben am Bildschirm plazierenTHEN place text and outer partitions at the top of the screen

ScrollWindow /* Fenstertext rollen und nach oben am Bildschirm schieben */ScrollWindow /* Scroll window text and move it up on the screen */

100 Gültigkeit des WCB's prüfen, der als Eingabe in die Funktion gelangte100 Check the validity of the WCB that was entered into the function

/* erforderliche Variablen setzen */-/* set required variables */-

101 WENN Textpartition nicht vorhanden101 IF text partition does not exist

102 DANN Return /* nur Text rollen */102 THEN Return /* just scroll text */

103 Textpartition aktualisieren103 Update text partition

104 Reihennummer des letzten Felds in der Textgruppe bestimmen104 Determine row number of last field in text group

WENN Rollart PAGESCROLLABLE ist oder links/rechts Rollen verlangt wirdIF scroll type is PAGESCROLLABLE or left/right scrolling is required

106 DANN (Abfrageposition der Partition relativ zur Seite106 THEN (query position of the partition relative to the page

107 neue Seitenpartition bestimmen107 Determine new page partition

108 Darstellungsbefehl eingeben, um Fenster im Verhältnis zur Seite zu verschieben)108 Enter display command to move window in relation to the page)

/* Rollen für Fenster durchführen, die nicht auf einer Seite eingesetzt sind *//* Roll windows that are not installed on one side */

109 WENN Rollart BIGSCROLLABLE ist109 IF roll type is BIGSCROLLABLE

110 DANN (bestimmen, welche Reihen oben im Fenster erscheinen110 THEN (determine which rows appear at the top of the window

111 Feldreihennummer für erstes Feld von dieser oberen Reihe suchen111 Find field row number for first field of this top row

112 bestimmen, welche Reihe am Fuß des Fensters erscheinen soll112 determine which row should appear at the bottom of the window

113 SCHLEIFE über Feldern zwischen erster und letzter Reihe113 LOOP over fields between first and last row

114 Kopierfeldattribute in temporärem Feld114 Copy field attributes in temporary field

115 Reihennummer durch Fensterreihennummer ersetzen115 Replace row number with window row number

116 Feldtext schreiben116 Write field text

117 ENDE SCHLEIFE117 END LOOP

118 Bodytopline in WCB aktualisieren118 Update bodytopline in WCB

119 Abfrage obere Partition aktualisieren119 Query update upper partition

120 WENN Fenster verschieben nicht oben ist120 IF Move Window is not at the top

121 DANN Text und äußere Partitionen oben am Bildschirm plazieren121 THEN place text and outer partitions at the top of the screen

Von nun folgt eine kurze Beschreibung der Funktion des Pseudocodes für jede dieser höheren Fensterfunktionen.From now on, a brief description of the function of the pseudocode for each of these higher window functions follows.

Die Createwindow Funktion erstellt ein Fenster anhand der Information, die diese über den Fenstersteuerblock (WCB) erhält. Die Inhalte der WCB werden auf Gültigkeit geprüft (Zeile 100). Die äußere Partition und die enthaltene Seite werden erstellt (Zeilen 101-102). Die neue Fensterinformation wird in einer neuen MAPREC Aufzeichnung am Ende der Fensterliste aufgezeichnet (Zeile 103). In einer MAPREC Aufzeichnung sind nur die Partitionen in den Fenstern abgebildet und eine zugehörige Liste von allen Abbildungen wird gegebenenfalls als Referenz behalten. Die Fensterrahmenzeichen werden gemäß dem verwendeten Gerätetyp und dessen Fähigkeiten (Zeilen 104-108) gesetzt. Die Fensterinhalte werden dann durch das Erstellen von Schleifen über die WCB Inhalte von der Gruppe erstellt (Zeilen 109- 112). Damit ist die Erstellung der äußeren Partition abgeschlossen und ein nahezu identischer Vorgang dient nun dazu, die innere Partition zu erstellen, die keinen Rahmen hat (Zeilen 113-119). Ein Anzeiger wird in der WCB gesetzt, um anzuzeigen, daß das Fenster erstellt wurde und derzeit in offenem Status ist.The Createwindow function creates a window based on the information it receives from the Window Control Block (WCB). The contents of the WCB are checked for validity (line 100). The outer partition and the contained page are created (lines 101-102). The new window information is recorded in a new MAPREC record at the end of the window list (line 103). In a MAPREC record, only the partitions are mapped to the windows and an associated list of all maps is kept for reference if necessary. The window frame characters are set according to the device type used and its capabilities (lines 104-108). The window contents are then created by creating loops over the WCB contents from the group (lines 109-112). This completes the creation of the outer partition, and a nearly identical process is now used to create the inner partition, which has no border (lines 113-119). An indicator is set in the WCB to indicate that the window has been created and is currently in the open state.

Die DestroyWindow Funktion löscht ein Fenster, den zugehörigen Speicher und die Anzeigemanagerkonzeptionen. Die Gültigkeit des WCB's wird geprüft (Zeile 100). Dann, für jede Gruppe wird eine Schleife erstellt, werden die Inhalte gelöscht, schließlich der Speicher für die Gruppen selbst gelöscht (Zeilen 101- 106). Die MAPREC Speicherung und die Anzeigemanagerkonzeptionen werden gelöscht (Partitionen und Seiten), (Zeilen 107- 108). Schließlich wird der WCB-Speicher gelöscht (Zeile 109).The DestroyWindow function deletes a window, its memory and its display manager concepts. The validity of the WCB is checked (line 100). Then, for each group, a loop is created, the contents are deleted, and finally the memory for the groups themselves is deleted (lines 101-106). The MAPREC storage and the display manager concepts are deleted (partitions and pages), (lines 107-108). Finally, the WCB memory is deleted (line 109).

Die WriteText Funktion erstellt neue Felder und/oder plaziert Text in vorhandene Felder. Der WCB wird auf Gültigkeit geprüft (Zeile 100) Die äußere Partition wird aktualisiert und deren erste Gruppe wird angezeigt (Zeilen 101-102). Dann, über jeder der Gruppen wird eine Schleife erstellt, wird jede Gruppe geprüft, um festzustellen, ob irgendwelche Felder erstellt oder ersetzt werden müssen (Zeilen 103-114). Eine der in dieser Konzeption verwendeten Optimierungen ist das Plazieren von WCB-Gruppen in der Reihenfolge, so daß die WriteText Funktion und die zugehörigen Funktionen durch die Liste mit Gruppen fallen können und dadurch die Schaltung von den äußeren Partitionsgruppen in die inneren Partitionsgruppen einfach handhaben können (Zeile 105). Dies erfolgt durch das Erstellen von Schleifen durch jedes der Felder in jeder Gruppe (Zeilen 106- 113). Ein WriteText Anzeiger wird dafür gesucht (der von dem aufgerufenen Programm gesetzt wurde, um diese Änderung im Feldtext anzuzeigen), und wenn dieser gesetzt ist (Zeile 107), dann wird der Befehl zum Aufrufen der Anzeige ausgegeben, um den Feldtext zu ändern und/oder gegebenenfalls neue Felder zu erstellen (Zeilen 108-109). Wenn diese Operationen erfolgreich waren, dann werden die WriteText Anzeiger in der WCB zurückgestellt, ansonsten wird ein Fehlercode zurückgeführt (Zeilen 110-112).The WriteText function creates new fields and/or places text into existing fields. The WCB is checked for validity (line 100). The outer partition is updated and its first group is displayed (lines 101-102). Then, looping over each of the groups, each group is checked to see if any fields need to be created or replaced (lines 103-114). One of the optimizations used in this design is placing WCB groups in order so that the WriteText function and its associated functions can fall through the list of groups and thereby easily handle switching from the outer partition groups to the inner partition groups (line 105). This is done by looping through each of the fields in each group (lines 106-113). A WriteText indicator is looked for (set by the called program to indicate this change in the field text), and if it is set (line 107), then the command to call the indicator is issued to change the field text and/or create new fields if necessary (lines 108-109). If these operations were successful, then the WriteText indicators in the WCB are reset, otherwise an error code is returned (lines 110-112).

Die ReadWindow Funktion veranlaßt, daß alle Anzeigenänderungen am Bildschirm angezeigt werden und ermöglicht dem Benutzer, mit dem Programm einzugreifen. Diese informiert dann die Fensterbesitzer von den Änderungen und/oder Eingriffen. Programmierte Funktionsschlüsselinformationen werden zuerst an den Besitzer des aktuellen Fensters gesandt. Fenster, in denen Text geändert wurde, haben auch Mitteilungen abgeschickt, daß in ihrem Fenster eine Änderung durchgeführt wurde. WCB-Felder, für welche Änderungen durchgeführt wurden, werden mit einem Modified Anzeiger markiert. Eine Spezial-Feld-Bezeichnung existiert als eine Annehmlichkeit für Fenster, die nur auf eine Eingabekette in einem bestimmten Feld reagieren.The ReadWindow function causes all display changes to be displayed on the screen and allows the user to intervene with the program. This then informs the window owners of the changes and/or interventions. Programmed function key information is sent first to the owner of the current window. Windows in which text has been changed have also sent messages that a change has been made in their window. WCB fields, for which changes have been made are marked with a Modified indicator. A special field label exists as a convenience for windows that only respond to a string of input in a particular field.

ReadWindow verriegelt zuerst die aktuelle Partition, und wenn eine nicht gefunden wird, Rückführung an denjenigen, der diesen Befehl abgesetzt hat (Zeilen 100-101). Andernfalls wird ein Anzeigemanagerbefehl ausgegeben, um die Änderungen in die Anzeige zu schreiben und dem Benutzer zu ermöglichen, einzugreifen (Zeile 102). Die Cursor-Position wird dann bestimmt, und wenn diese nicht in einer definierten Partition war, wird diese in der oberen Partition (Zeilen 103-105) plaziert. Eine temporäre Liste von Partitionen, die derzeit am Bildschirm vorhanden sind, wird erstellt und mit der Liste aller WCB's verglichen (Zeilen 106-111). Die aktuelle Partition wird auf der Vorderseite der Liste der WCB's plaziert (Zeile 110).ReadWindow first locks the current partition, and if one is not found, returns to whoever issued this command (lines 100-101). Otherwise, a display manager command is issued to write the changes to the display and allow the user to intervene (line 102). The cursor position is then determined, and if it was not in a defined partition, it is placed in the upper partition (lines 103-105). A temporary list of partitions currently on the screen is created and compared with the list of all WCBs (lines 106-111). The current partition is placed at the front of the list of WCBs (line 110).

Jede der WCB's wird dann durch die folgende Schleife (Zeilen 112-128) bearbeitet. Geschlossene oder verkleinerte Fenster werden ignoriert, da in diesen keine Änderungen erscheinen werden (Zeile 113). Die Textpartition wird aktualisiert, und eine Schleife bestimmt, ob eines der Felder geändert wurde. In dem Fall wird der WCB-Anzeiger für dieses Feld als geändert markiert (Zeilen 114-119). Die gleiche Schleife wird dann für die äußere Partition wiederholt (Zeilen 120-125). Wenn das Spezial-Eingabe-Feld des WCB's gesetzt wurde, dann wird der Feldtext für das geänderte Feld (Zeile 126) erhalten. Die Ergebnisse der Lesoperation werden dem Fensterbesitzer übermittelt (Zeile 127).Each of the WCBs is then processed by the following loop (lines 112-128). Closed or minimized windows are ignored, as no changes will appear in them (line 113). The text partition is updated, and a loop determines if any of the fields have been changed. If so, the WCB indicator for that field is marked as changed (lines 114-119). The same loop is then repeated for the outer partition (lines 120-125). If the WCB's special input field was set, then the field text for the changed field is obtained (line 126). The results of the read operation are communicated to the window owner (line 127).

Die SizeWindow Funktion formatiert das Fenster in der Anzeige neu und schiebt es im Bildschirm nach oben. Der WCB wird auf Gültigkeit geprüft (Zeile 100). Die innere Partition wird zuerst formatiert (Zeilen 101-108). Dies wird durchgeführt, indem zuerst geprüft wird, ob diese eine Textpartition hat und falls dies der Fall ist, wird diese im Verhältnis zur äußeren Partition formatiert. Wenn das neue Fenster zu klein für den dafür vorgesehenen Text ist, wird die Partition unsichtbar gemacht (Zeilen 104-105).The SizeWindow function reformats the window in the display and moves it up the screen. The WCB is checked for validity (line 100). The inner partition is formatted first (lines 101-108). This is done by first checking if it has a text partition and if so, formatting it relative to the outer partition. If the new window is too small for the text it will hold, the partition is made invisible (lines 104-105).

Die äußere Partition wird dann neu formatiert und neu erstellt (Zeilen 108-115). Der WCB wird mit der angeforderten Position und den Abmessungen aktualisiert (Zeilen 108). Ein Anzeigemanagerbefehl wird ausgegeben, um die äußere Partition neu zu formatieren (Zeile 109). Die Partitionsseite wird neu erstellt (Zeile 110). Die Inhalte der äußeren Partition werden entsprechend den neuen Abmessungen neu erstellt (Zeile 111-115). Schließlich wird das Fenster aktualisiert, indem dessen gesamte Partitionen aktualisiert werden, wenn dieses nicht schon oben am Bildschirm ist (Zeilen 116-118).The outer partition is then reformatted and rebuilt (lines 108-115). The WCB is updated with the requested position and dimensions (lines 108). A display manager command is issued to reformat the outer partition (line 109). The partition page is rebuilt (line 110). The contents of the outer partition are rebuilt according to the new dimensions (lines 111-115). Finally, the window is updated, updating all of its partitions if it is not already at the top of the screen (lines 116-118).

Die MoveWindow Funktion verschiebt das Fenster und schiebt es am Bildschirm nach oben. Der WCB wird auf Gültigkeit geprüft (Zeile 100). Die neue Position der inneren Partition wird anhand von Bestimmung und Distanz von der äußeren Partition berechnet (Zeilen 101-103). Wenn das Fenster nicht geschlossen ist, wird der Anzeigemanagerbefehl ausgegeben, um die Partitionen zu verschieben (Zeilen 104-107). Das Fenster wird oben am Bildschirm plaziert, wenn es nicht bereits schon dort ist (Zeilen 109-110).The MoveWindow function moves the window and pushes it up on the screen. The WCB is checked for validity (line 100). The new position of the inner partition is calculated based on the destination and distance from the outer partition (lines 101-103). If the window is not closed, the display manager command is issued to move the partitions (lines 104-107). The window is placed at the top of the screen if it is not already there (lines 109-110).

Die ScrollWindow Funktion rollt die Inhalte des Fensters und schiebt es am Bildschirm nach oben. Der WCB wird auf Gültigkeit geprüft (Zeile 100). Wenn es für dieses Fenster keine Textpartition gibt, kehrt die Funktion zurück, da nur Fenstertexte gerollt werden (Zeilen 101-102). Die innere Partition wird aktualisiert (Zeile 103). Berechnungen werden durchgeführt, um festzulegen, welche Daten nach der Rolloperation angezeigt werden (Zeile 104). Die Operation wird dann fortgesetzt, indem die angeforderten Anzeigemanagerbefehle durchgeführt werden, mit denen das Rollergebnis erzielt wird (105- 117). Der WCB wird mit der neuen Positionsinformation aktualisiert und das Fenster wird oben am Bildschirm plaziert (Zeilen 118-121).The ScrollWindow function scrolls the contents of the window and moves it up the screen. The WCB is checked for validity (line 100). If there is no text partition for this window, the function returns, since only window text is scrolled (lines 101-102). The inner partition is updated (line 103). Calculations are performed to determine what data is displayed after the scroll operation (line 104). The operation then continues by executing the requested display manager commands that produce the scroll result (105-117). The WCB is updated with the new position information and the window is placed at the top of the screen (lines 118-121).

Weitere Fenstersteuerungsfunktionen können auf einfache Weise implementiert werden, indem die zuvor beschriebenen Funktionen oder Techniken verwendet werden, die ähnlich denen sind, die in solchen Funktionen verwendet werden.Additional window control functions can be easily implemented using the functions described previously or techniques similar to those used in such functions.

Wie es von dem Fachmann geschätzt wird, wurde ein Fenstermanagersystem beschrieben, das höhere, vollkommen funktionelle Unterstützung bei Messy-Desk-Windowing in einem nicht-programmierbaren, zeichenbasierenden Bildschirm bereitstellt. Ein solches System kann mit auf Großrechnern basierenden Anwendungen benutzt werden, für welche Fenstertechnik bisher im allgemeinen nicht zur Verfügung stand. Das hier beschriebene Fenstertechniksystem kann einfach als Paket bereitgestellt werden, das in zahlreichen Anwendungsprogrammen verwendet werden kann. Mit den Techniken aus der vorliegenden Erfindung können Fenster wirksam in einem Bildschirm manipuliert werden, welcher normalerweise nicht dafür bestimmt ist, deren Benutzung zu unterstützen. Zahlreiche Arten von Fenstern, wie Hervorhol- und Pulldownfenster, können mit den beschriebenen Techniken implementiert werden.As will be appreciated by those skilled in the art, a window management system has been described which provides high-level, fully functional support for messy desk windowing in a non-programmable, character-based display. Such a system can be used with mainframe-based applications for which windowing has not been generally available heretofore. The windowing system described here can be readily provided as a package for use in numerous application programs. With the techniques of the present invention, windows can be effectively manipulated in a display which would not normally be is designed to support their use. Numerous types of windows, such as pop-up and pull-down windows, can be implemented using the techniques described.

Claims (11)

1. Ein Verfahren zur Anzeige von überlappenden, logischen Fenstern (46) auf einem nicht-programmierbaren Bildschirm (66) zur Benutzung in einem Datenverarbeitungssystem, das eine Prozessoreinheit und den nicht-programmierbaren Bildschirm (66) enthält, mit dem eine Vielzahl von unabhängigen, rollfähigen Partitionen (50) und eine Vielzahl von unabhängigen nicht-rollfähigen Partitionen (48) angezeigt werden kann, wobei das Verfahren enthält:1. A method of displaying overlapping logical windows (46) on a non-programmable display (66) for use in a data processing system including a processor unit and the non-programmable display (66) capable of displaying a plurality of independent scrollable partitions (50) and a plurality of independent non-scrollable partitions (48), the method comprising: die Zuordnung eines aus einer Vielzahl von Fenstersteuerblöcken (82-86) in ein logisches Fenster (46), das von einem in dem Datenverarbeitungssystem ausgeführten Anwendungsprogramm erzeugt wird, wobei der Fenstersteuerblock (82) Hinweisadressen (96-108) in einer Vielzahl von Datengruppen (88) enthält;assigning one of a plurality of window control blocks (82-86) to a logical window (46) generated by an application program executing in the data processing system, the window control block (82) containing pointers (96-108) in a plurality of data groups (88); dadurch gekennzeichnet wird, daß das Verfahren enthält:characterized in that the process comprises: das Füllen einer Vielzahl von Partitionskennzeichen (92) in den Fenstersteuerblock (82), der wenigstens ein erstes Partitionskennzeichen (ID 1) entsprechend einer nichtrollfähigen Partition (48) enthält, um eine Grenze für das logische Fenster (46) und ein zweites Kennzeichen (ID 2) entsprechend einer rollfähigen Partition (50) für das logische Fenster (46) bereitzustellen;filling a plurality of partition identifiers (92) into the window control block (82) including at least a first partition identifier (ID 1) corresponding to a non-rollable partition (48) to provide a boundary for the logical window (46) and a second identifier (ID 2) corresponding to a rollable partition (50) for the logical window (46); das Setzen, das für jede nicht-rollfähige (48) und rollfähige (50) Partition erfolgt, einer Hinweisadresse (96-108) in dem Fenstersteuerblock (82-86) an eine Datengruppe (88) für die Partition (48,50), die ihre Attribute zur Überlappung der rollfähigen Partition (50) auf der nicht-rollfähigen Partition (48) definiert; die Erzeugung der nicht-rollfähigen Partition (48) entsprechend dem ersten Partitionskennzeichen (ID 1) für das logische Fenster (46) auf dem Bildschirm (66); undsetting, for each non-rollable (48) and rollable (50) partition, a pointer (96-108) in the window control block (82-86) to a data group (88) for the partition (48,50) defining its attributes for overlapping the rollable partition (50) on the non-rollable partition (48); creating the non-rollable partition (48) corresponding to the first partition identifier (ID 1) for the logical window (46) on the screen (66); and die Erzeugung der rollfähigen Partition (50) entsprechend dem zweiten Partitionskennzeichen (ID 2) für das logische Fenster (46) auf dem Bildschirm (66), so daß die rollfähige Partition (50) die nicht-rollfähige Partition (48) überlappt, um das logische Fenster (46) auf dem Bildschirm (66) anzuzeigen.creating the scrollable partition (50) corresponding to the second partition identifier (ID 2) for the logical window (46) on the display screen (66) such that the scrollable partition (50) overlaps the non-scrollable partition (48) to display the logical window (46) on the display screen (66). 2. Ein Verfahren wie in Anspruch 1 angemeldet, das die Erzeugung eines zusätzlichen rollfähigen Partitionskennzeichens für das logische Fenster (46) auf dem Bildschim (66) enthält, wobei die zusätzliche Partition die nicht-rollfähige Partition (48) überlappt, um das logische Fenster (46) auf dem Bildschirm (66) darzustellen.2. A method as claimed in claim 1, including generating an additional scrollable partition label for the logical window (46) on the display screen (66), the additional partition overlapping the non-scrollable partition (48) to display the logical window (46) on the display screen (66). 3. Ein Verfahren wie in Anspruch 1 angemeldet, wobei die nicht-rollfähige Partition (48) eine Fensterbegrenzung enthält, und die rollfähige Partition (50) an einer Stelle angezeigt wird, die ganz innerhalb der Grenzen der nicht- rollfähigen Partition (48) liegt, wodurch die Fensterbegrenzung die rollfähige Partition (50) umgibt.3. A method as claimed in claim 1, wherein the non-scrollable partition (48) includes a window boundary, and the scrollable partition (50) is displayed at a location that is entirely within the boundaries of the non-scrollable partition (48), whereby the window boundary surrounds the scrollable partition (50). 4. Ein Verfahren wie in Anspruch 3 angemeldet, wobei die nicht-rollfähige Partition (48) oben und unten nicht-rollfähigen Text enthält, und die rollfähige Partition (50) an einer Stelle zwischen dem oberen und unteren Text angezeigt wird.4. A method as claimed in claim 3, wherein the non-scrollable partition (48) contains non-scrollable text at the top and bottom, and the scrollable partition (50) is displayed at a location between the top and bottom text. 5. Ein Verfahren wie in Anspruch 1 angemeldet, wobei die nicht-rollfähige Partition (48) eine Vielzahl von Unterbereichen enthält, wobei der Text zur Anzeige jedes Unterbereichs in einer separaten Datengruppe (88) gespeichert wird.5. A method as claimed in claim 1, wherein the non-scrollable partition (48) contains a plurality of sub-regions, the text for indicating each sub-region being stored in a separate data group (88). 6. Eine Anzeigeeinrichtung zur Benutzung in einem Datenverarbeitungssystem, wobei die Anzeigeeinrichtung enthält:6. A display device for use in a data processing system, the display device comprising: einen nicht-programmierbaren Bildschirm (66), der eine Vielzahl von unabhängigen rollfähigen Partitionen (50) und eine Vielzahl von unabhängigen nicht-rollfähigen Partitionen (48) der logischen Fenster (46) anzeigen kann; unda non-programmable screen (66) capable of displaying a plurality of independent scrollable partitions (50) and a plurality of independent non-scrollable partitions (48) of the logical windows (46); and Mittel (62), um eine Vielzahl von Fenstersteuerblöcken (82-86) einem logischen Fenster (46) zuzuordnen, das von einem in dem Datenverarbeitungssystem ausgeführten Anwendungsprogramm erzeugt wird, wobei der Fenstersteuerblock (82) Hinweisadressen (96-108) in einer Vielzahl von Datengruppen (88) enthält;means (62) for associating a plurality of window control blocks (82-86) with a logical window (46) generated by an application program executing in the data processing system, the window control block (82) containing pointers (96-108) in a plurality of data groups (88); dadurch gekennzeichnet wird, daß die Einrichtung enthält:characterized in that the device contains: Mittel (62), um eine Vielzahl von Partitionskennzeichen (92) in den Fenstersteuerblock (82) zu füllen, der wenigstens ein erstes Partitionskennzeichen (ID 1) entsprechend einer nicht-rollfähigen Partition (48) enthält, um eine Grenze für das logische Fenster (46) und ein zweites Kennzeichen (ID 2) entsprechend einer rollfähigen Partition (50) für das logische Fenster (46) bereitzustellen;means (62) for filling a plurality of partition identifiers (92) into the window control block (82) including at least a first partition identifier (ID 1) corresponding to a non-rollable partition (48) to provide a boundary for the logical window (46) and a second identifier (ID 2) corresponding to a rollable partition (50) for the logical window (46); Mittel (62), um für jede nicht-rollfähige (48) und rollfähige (50) Partition eine Hinweisadresse (96-108) in dem Fenstersteuerblock (82-86) an eine Datengruppe (88) für die Partition (48,50) zu setzen, die ihre Attribute zur Überlappung der rollfähigen Partition (50) auf der nicht- rollfähigen Partition (48) definiert;means (62) for setting, for each non-rollable (48) and rollable (50) partition, a pointer (96-108) in the window control block (82-86) to a data group (88) for the partition (48,50) defining its attributes for overlapping the rollable partition (50) on the non-rollable partition (48); Mittel (64), um die nicht-rollfähige Partition (48) entsprechend dem ersten Partitionskennzeichen (ID 1) für das logische Fenster (46) auf dem Bildschirm (66) zu erzeugen; undMeans (64) for generating the non-scrollable partition (48) corresponding to the first partition identifier (ID 1) for the logical window (46) on the screen (66); and Mittel (64), um die rollfähige Partition (50) entsprechend dem zweiten Partitionskennzeichen (ID 2) für das logische Fenster (46) auf dem Bildschirm (66) zu erzeugen, so daß die rollfähige Partition (50) die nicht-rollfähige Partition (48) überlappt, um das logische Fenster (46) auf dem Bildschirm (66) anzuzeigen.Means (64) for creating the scrollable partition (50) corresponding to the second partition identifier (ID 2) for the logical window (46) on the display screen (66) so that the scrollable partition (50) overlaps the non-scrollable partition (48) to display the logical window (46) on the display screen (66). 7. Eine Einrichtung wie in Anspruch 6 angemeldet, die Mittel (62) zur Erzeugung eines zusätzlichen rollfähigen Partitionskennzeichens für das logische Fenster (46) auf dem Bildschirm (66) enthält, wobei die zusätzliche Partition die nicht-rollfähige Partition (48) überlappt, um das logische Fenster (46) auf dem Bildschirm (66) darzustellen.7. An apparatus as claimed in claim 6, including means (62) for generating an additional scrollable partition label for the logical window (46) on the display screen (66), the additional partition overlapping the non-scrollable partition (48) to display the logical window (46) on the display screen (66). 8. Eine Einrichtung wie in Anspruch 1 angemeldet, wobei die nicht-rollfähige Partition (48) eine Fensterbegrenzung enthält, und die rollfähige Partition (50) an einer Stelle angezeigt wird, die ganz innerhalb der Grenzen der nicht- rollfähigen Partition (48) liegt, wodurch die Fensterbegrenzung die rollfähige Partition (50) umgibt.8. A device as claimed in claim 1, wherein the non-scrollable partition (48) includes a window boundary, and the scrollable partition (50) is displayed at a location that is entirely within the boundaries of the non-scrollable partition (48), whereby the window boundary surrounds the scrollable partition (50). 9. Eine Einrichtung wie in Anspruch 8 angemeldet, wobei die nicht-rollfähige Partition (48) oben und unten nicht-rollfähigen Text enthält, und die rollfähige Partition (50) an einer Stelle zwischen dem oberen und unteren Text angezeigt wird.9. A device as claimed in claim 8, wherein the non-scrollable partition (48) contains non-scrollable text at the top and bottom, and the scrollable partition (50) is displayed at a location between the top and bottom text. 10. Eine Einrichtung wie in Anspruch 6 angemeldet, wobei die nicht-rollfähige Partition (48) eine Vielzahl von Unterbereichen enthält, wobei der Text zur Anzeige jedes Unterbereichs in einer separaten Datengruppe (88) gespeichert wird.10. A device as claimed in claim 6, wherein the non-scrollable partition (48) contains a plurality of sub-regions, the text for indicating each sub-region being stored in a separate data group (88). 11. Ein Datenverarbeitungssystem mit einer Prozessoreinheit und einem Bildschirm, wie dies in irgendeinem der Ansprüche 6 bis 10 angemeldet wurde.11. A data processing system comprising a processor unit and a display as claimed in any one of claims 6 to 10.
DE69018731T 1989-08-14 1990-08-03 Window display setup and method. Expired - Fee Related DE69018731T2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US39359989A 1989-08-14 1989-08-14

Publications (2)

Publication Number Publication Date
DE69018731D1 DE69018731D1 (en) 1995-05-24
DE69018731T2 true DE69018731T2 (en) 1995-11-16

Family

ID=23555418

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69018731T Expired - Fee Related DE69018731T2 (en) 1989-08-14 1990-08-03 Window display setup and method.

Country Status (4)

Country Link
EP (1) EP0413484B1 (en)
JP (1) JPH0377997A (en)
CA (1) CA2021823C (en)
DE (1) DE69018731T2 (en)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU631749B2 (en) * 1990-09-14 1992-12-03 Digital Equipment Corporation System and method for communication between windowing environments
US5345552A (en) * 1992-11-12 1994-09-06 Marquette Electronics, Inc. Control for computer windowing display
US5544301A (en) * 1993-12-30 1996-08-06 Taligent, Inc. Object-oriented view layout system
AU7872494A (en) * 1993-12-30 1995-07-17 Taligent, Inc. Object-oriented view coordinate space system
US5615326A (en) * 1993-12-30 1997-03-25 Taligent, Inc. Object-oriented viewing framework having view grouping
US5524199A (en) * 1993-12-30 1996-06-04 Taligent Object-oriented view system with background processing of update request
US5566287A (en) * 1994-06-28 1996-10-15 Thomson Consumer Electronics, Inc. Method for asynchronously maintaining an image on a display device
US6078306A (en) * 1997-10-21 2000-06-20 Phoenix Technologies Ltd. Basic input-output system (BIOS) read-only memory (ROM) with capability for vertical scrolling of bitmapped graphic text by columns
EP1785923A1 (en) * 2005-11-04 2007-05-16 Research In Motion Limited Method and system for updating message threads
US20070106729A1 (en) 2005-11-04 2007-05-10 Research In Motion Limited Method and system for updating message threads

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61109137A (en) * 1984-10-31 1986-05-27 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション Determination of assistant information display position
CA1233257A (en) * 1984-12-26 1988-02-23 Irene H. Hernandez Tailored document building
JPS6215591A (en) * 1985-07-15 1987-01-23 株式会社日立製作所 Multiscreen display control system
JPH07117825B2 (en) * 1985-09-02 1995-12-18 株式会社日立製作所 Multi-window display terminal control method
JPS62222288A (en) * 1986-03-25 1987-09-30 株式会社リコー Display unit with multiwindow display function
JPS62223786A (en) * 1986-03-26 1987-10-01 株式会社リコー Display unit with multiwindow display function
JP2583850B2 (en) * 1986-04-02 1997-02-19 カシオ計算機株式会社 Window display control device
JP2586452B2 (en) * 1986-05-13 1997-02-26 カシオ計算機株式会社 Multi-window display device
JPS63287993A (en) * 1987-05-21 1988-11-25 株式会社リコー Display device with multi-window display function
JPS63304315A (en) * 1987-06-05 1988-12-12 Ricoh Co Ltd Multi-window processor
JP2578736B2 (en) * 1987-09-22 1997-02-05 株式会社リコー Multi-window display device for data processing system having a plurality of terminals

Also Published As

Publication number Publication date
CA2021823A1 (en) 1991-02-15
CA2021823C (en) 1999-01-26
JPH0377997A (en) 1991-04-03
DE69018731D1 (en) 1995-05-24
EP0413484B1 (en) 1995-04-19
EP0413484A3 (en) 1991-10-23
EP0413484A2 (en) 1991-02-20

Similar Documents

Publication Publication Date Title
DE3787125T2 (en) Multi-window display system.
DE69732547T2 (en) A method and apparatus for collapsing and extending selected areas of workspaces on a computer-controlled display system
DE68923492T2 (en) Method for accessing selected windows in a multi-process operating system.
DE3885085T2 (en) Procedure for automatically changing the dimensions of displayed objects in relation to changes in the dimensions of the image window.
DE3586273T2 (en) IMPLICIT GENERATION OF A SUPER BLOCK STRUCTURE IN A VARIO-DATA EDITOR.
DE3586274T2 (en) VARIABLE DATA EDITING DEVICE USING ATTRIBUTE FLOWS FOR TEXT OBJECTS.
DE3586272T2 (en) INTEGRATED VARIO-DATA EDITING DEVICE.
DE69735975T2 (en) System and method for superimposing images optionally stored in different native formats
DE3689034T2 (en) Electronic system for the preparation of text and graphics.
DE69026647T2 (en) Zoom mode modes in a display device
DE3852034T2 (en) HELP PROVIDING IN A DATA PROCESSING SYSTEM.
DE3787496T2 (en) Method and device for controlling multi-windows and workstation with multi-window function.
DE69837772T2 (en) Browser for hierarchical structures
DE69123173T2 (en) Scroll bar with information provided by the system or user
US5175813A (en) Window display system and method for creating multiple scrollable and non-scrollable display regions on a non-programmable computer terminal
DE3881331T2 (en) Flexible window management on a computer display.
DE3850560T2 (en) Cursor-controlled direct access to several application programs.
DE69534331T2 (en) Method and device for highlighting the detail of a tree structure
DE68919503T2 (en) Method and system for displaying a user interface on a computer screen.
DE4334524C2 (en) Document processing device
DE69031851T2 (en) Graphic arrangement for displaying spatially distributed, time-variant data
DE68928531T2 (en) DOCUMENT FOLDER IMAGE FOR DISPLAY IN A DATA PROCESSING SYSTEM
DE3586790T2 (en) LINE-DYNAMIC EDITOR FOR MIXED OBJECT DOCUMENTS.
DE60008498T2 (en) Method and system for adding and deleting elements in a range of named cells according to various methods in an electronic spreadsheet
DE68923491T2 (en) Process for dynamic triggering of background windows for priority applications.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee