JPH08171484A - Class library for graphic programming - Google Patents

Class library for graphic programming

Info

Publication number
JPH08171484A
JPH08171484A JP7148480A JP14848095A JPH08171484A JP H08171484 A JPH08171484 A JP H08171484A JP 7148480 A JP7148480 A JP 7148480A JP 14848095 A JP14848095 A JP 14848095A JP H08171484 A JPH08171484 A JP H08171484A
Authority
JP
Japan
Prior art keywords
class
functionality
library
int
designation
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.)
Pending
Application number
JP7148480A
Other languages
Japanese (ja)
Inventor
Stephen G Eick
グレゴリー イック スチーヴン
Paul J Lucas
ジェイ ルーカス ポール
Graham J Wills
ジョン ウィルス グラハム
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.)
AT&T Corp
Original Assignee
AT&T 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 AT&T Corp filed Critical AT&T Corp
Publication of JPH08171484A publication Critical patent/JPH08171484A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

PURPOSE: To obtain a C++ class library used for generating a data visualization program by designating the object class of an object which succeeds a substance class and also has an additional functionality by means of a third class designation which designates the succession of the substance class and an area class. CONSTITUTION: A primitive code by which a compiler 107 generates a code 109 adds an object designation (specification) 105 and a class designation (specification) 103. The class which is designated by the class designations 103d, 103c and 103a for designating the object class which is designated by the object designation 105a is succeeded. A normal function designation 104 adds the code for designating an operation interface and executing the operation and a virtual function designation 102 designates the interface. The code for executing the operation is added to a single normal function 104 and the respective kinds of class designations 103 succeeding the class having the virtual function are provided with the normal functions 104 which are respectively different against the virtual functions.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、主にオブジェクト指向
プログラミングシステムに関し、これをさらに詳細に述
べると、オブジェクト指向グラフィックプログラミング
用ライブラリに関する。
FIELD OF THE INVENTION This invention relates generally to object oriented programming systems, and more particularly to libraries for object oriented graphic programming.

【0002】[0002]

【従来の技術】グラフィカルユーザインタフェースによ
り、コンピュータシステムは、以前に比べてはるかに利
用しやすくなった。代表的なグラフィカルユーザインタ
フェースでは、ディスプレイが一つ以上のウィンドウに
分割されている。各ウィンドウは、システムのユーザが
実行しているアクティビティに対応し、ユーザは、マウ
スおよび/またはキーボードなどの座標指示器によって
ウィンドウおよびその内容を操作することができる。グ
ラフィカルユーザインタフェースを有するシステムは、
ユーザがコマンドやファイル名を覚えてキー入力したり
作業中のコンテキストを思い出す必要が全くないことか
ら、旧式のコマンドラインインタフェースを用いるシス
テムに比べて利用しやすい。それだけでなく、コンテキ
スト全体を表示画面上で見ることができ、ユーザは、座
標指示器だけで、画面上で項目を選択し、所望の操作を
指定する。
BACKGROUND OF THE INVENTION Graphical user interfaces have made computer systems much more accessible than ever before. In a typical graphical user interface, the display is divided into one or more windows. Each window corresponds to an activity being performed by a user of the system, who can manipulate the window and its contents by means of coordinate indicators such as a mouse and / or keyboard. A system with a graphical user interface
It is easier to use than systems that use the old-fashioned command-line interface because users never have to remember commands or filenames to type in keys or remember their working context. Not only that, the entire context can be seen on the display screen, and the user can select the item on the screen and specify the desired operation only with the coordinate indicator.

【0003】グラフィカルユーザインタフェースの重要
なクラスは、データの視覚化に用いる複数のグラフィカ
ルユーザインタフェースである。例えば、プログラムに
より、ユーザは、1組以上の統計と米国内の各州との間
にどのような関連性があるか調べることができる。プロ
グラムのグラフィカルユーザインタフェースは、米国の
地図と、統計値が複数のカラーにマップされたセレクタ
バーから成る。マウスによりセレクタバーの1領域を選
択すると、選択された領域内に統計値のある州が州の統
計値に対応した色になる。このようなグラフィカルユー
ザインタフェースは、S.G.Eick、J.L.St
effan、ならびにE.E.Sumner Jr.の
「Seesoft−A Tool For Visua
lizing Line Oriented Soft
ware Statistics」(IEEE Tra
nsactions On Software Eng
ineering、vol.18#11、1992年1
1月)に開示されている。
An important class of graphical user interfaces are the multiple graphical user interfaces used to visualize data. For example, the program may allow a user to find out how one or more sets of statistics relate to each state in the United States. The program's graphical user interface consists of a map of the United States and a selector bar with statistics mapped to multiple colors. When one area of the selector bar is selected with the mouse, the states having a statistical value in the selected area have a color corresponding to the statistical value of the state. Such a graphical user interface is described in S. G. Eick, J .; L. St
effan, and E. E. FIG. Summer Jr. "Seesoft-A Tool For Visual
lizing Line Oriented Soft
were Statistics "(IEEE Tra
nsactions On Software Eng
ineering, vol. 18 # 11, 1992 1
January).

【0004】旧型のコマンドラインインタフェースに比
べてグラフィカルユーザインタフェースは利用しやすい
が、グラフィカルユーザインタフェース付きプログラム
は、旧型のコマンドラインインタフェース用に書かれた
プログラムに比べてはるかに大規模で複雑である。した
がって、グラフィカルユーザインタフェース付きプログ
ラムは、開発に時間がかかり、プログラムに多くの記憶
空間が必要となり、また、実行の高速化には、よりパワ
フルなプロセッサが必要になる。
Although a graphical user interface is easier to use than the older command line interface, programs with a graphical user interface are much larger and more complex than programs written for the older command line interface. Therefore, a program with a graphical user interface takes a long time to develop, requires a lot of storage space for the program, and requires a more powerful processor to speed up the execution.

【0005】コンピュータサイエンティストは、これま
で、グラフィカルユーザインタフェースプログラムのコ
ンポーネントライブラリを開発し、オブジェクト指向プ
ログラミングシステムを用いてグラフィカルユーザイン
タフェースプログラムを書くという二つの方法により、
グラフィカルユーザインタフェースのプログラミングの
問題に対処してきた。コンポーネントライブラリが利用
可能な場合、プログラマは、プログラムの中でライブラ
リからコンポーネントを使用することができ、したがっ
て、自分でコンポーネントを書きデバッグする必要がな
くなる。このようなコンポーネントライブラリの一例と
して、Xコンソーティアム製ウィンドウシステムの一部
であるXウィンドウツールキットが挙げられる(Xウィ
ンドウシステムは、マサチューセッツ・インスティチュ
ート・オブ・テクノロジーの商標)。このXウィンドウ
システムについては、O.Jonesの「Introd
uction to the X Window Sy
stem Prentice Hall」(1989
年)に記載されている。
Computer scientists have so far developed two components of a graphical user interface program component library and writing the graphical user interface program using an object-oriented programming system.
We have addressed the programming problem of graphical user interfaces. If a component library is available, the programmer can use the component from the library in the program, thus eliminating the need to write and debug the component himself. An example of such a component library is the X Window Toolkit, which is part of the X Consortium window system (X Window System is a trademark of the Massachusetts Institute of Technology). This X window system is described in O. Jones' Introd
action to the X Windows Sy
"Stem Prentice Hall" (1989
Year).

【0006】オブジェクト指向プログラミングシステム
では、オブジェクトを定義できるプログラミング言語を
使用している。オブジェクトは、プログラムによって処
理される実体にすぎない。各オブジェクトはクラスを有
しており、クラスは、オブジェクトに可能なあらゆる操
作を定義している。オブジェクトには、クラスが組み込
まれたオブジェクトとプログラマによってクラスが定義
されているオブジェクトがある。例えば、整変数は、整
数クラスが組み込まれたオブジェクトである。整数クラ
スの演算には、加算、減算、乗算、ならびに係数演算が
あるが、除算は整数結果がでないことから、含まれてい
ない。プログラマは、組込みクラスや他の予め定義され
たクラスによって自分自身のクラスを定義できる。
Object-oriented programming systems use programming languages that can define objects. Objects are just entities that are processed by a program. Each object has a class, which defines all possible operations on the object. Objects include objects in which the class is embedded and objects in which the class is defined by the programmer. For example, integer variables are objects that incorporate the integer class. Integer class operations include addition, subtraction, multiplication, and coefficient operations, but division is not included because the integer result is not. Programmers can define their own classes with built-in classes or other predefined classes.

【0007】クラスを定義するにあたり、プログラマ
は、クラスの各動作の実行方法を指定する。例えば、プ
ログラマは、オブジェクトがウィンドウとなっているク
ラスを定義できる。このようなクラスを有するオブジェ
クトの動作には、ウィンドウの作成と破棄、ディスプレ
イ上へのウィンドウのエクスポーズ、ウィンドウのリサ
イジング、およびウィンドウのクリアがあり、プログラ
マは、これらの各動作をどのように実行するのか指定し
なければならない。
In defining a class, the programmer specifies how to perform each action of the class. For example, a programmer can define a class whose object is a window. Behaviors for objects with such classes include window creation and destruction, window exposure on the display, window resizing, and window clearing. How programmers can handle each of these behaviors. You have to specify whether to execute.

【0008】オブジェクト指向プログラミングシステム
には、2つの重要な利点がある。第一の利点は、プログ
ラムが扱う実体(例えば、ウィンドウ)が直接プログラ
ム内に現われることから、プログラムは書きやすく、し
かも理解しやすい。第二に、クラス定義により、プログ
ラミングシステムは、他の方法ではプログラムが誤動作
した時に初めて明らかになるようなプログラミングエラ
ーを数多く検出できる。このようなオブジェクト指向プ
ログラミングシステムの一例として、C++言語および
コンパイラがあり、Stanley B.Lippma
nの「C++Primer(第2版)、 Addiso
n−Wesley Publishing Co.,
Reading, MA」(1991年)に説明が記載
されている。
Object-oriented programming systems have two important advantages. The first advantage is that programs are easy to write and understand because the entity (eg, window) that the program handles appears directly in the program. Second, the class definition allows the programming system to detect many programming errors that would otherwise be apparent only when the program malfunctions. An example of such an object-oriented programming system is the C ++ language and compiler, and Stanley B. et al. Lippma
n “C ++ Primer (2nd edition), Addiso
n-Wesley Publishing Co. ,
"Reading, MA" (1991).

【0009】オブジェクト指向プログラミングシステム
では、当然、ライブラリが使用できる。上記のXウィン
ドウツールキットなどの既存のライブラリは、オブジェ
クト指向プログラミングシステムでの使用に適したもの
になっており、これまでにプログラミンググラフィカル
ユーザインタフェース用C++ライブラリも開発されて
きた。このようなライブラリの市販されている例として
は、XVTソフトウェア社のXVTポータビリティツー
ルキットがある。
Libraries can, of course, be used in object oriented programming systems. Existing libraries such as the X Window toolkit described above are suitable for use in object oriented programming systems, and C ++ libraries for programming graphical user interfaces have been developed so far. A commercially available example of such a library is the XVT Portability Toolkit from XVT Software.

【0010】[0010]

【発明が解決しようとする課題】プログラミンググラフ
ィカルユーザインタフェース用の既存ライブラリは有効
ではあるものの、若干の問題点がある。第一に、このよ
うなライブラリは、予め定義された一連のクラスをプロ
グラマに提供するものであり、プログラマが自作のクラ
スを定義することができない。第二に、クラスが予め定
義されているために、このようなライブラリは汎用性を
有していなければならない。また、各クラスは多くの動
作を備える必要があり、ある一定の動作は多くの状況に
対処できなければならない。その結果、こうしたクラス
は、プログラマにとって理解しにくいものとなり、一連
の動作に対するコードは長く複雑になり、実行速度も遅
くなる。第三に、動作が複雑になればなるほど、プログ
ラマのやりたいことに合わなくなることが多くなり、目
的に応じた作成が限られた範囲内でしかできなくなる。
このような欠点は、プログラマが、既存のグラフィカル
ユーザインタフェースを変形するのではなく、データの
視覚化に用いられるような本当に新しいグラフィカルユ
ーザインタフェースを設計している場合には、特に重大
である。第四に、ライブラリおよびプログラミングツー
ルは、通常、パッケージとして提供されることから、異
なるライブラリとツールセットの間に互換性がないこと
が度々生じている。最後に、既存のライブラリのうちい
ずれのライブラリも、データを視覚化するグラフィカル
ユーザインタフェースの作成にうまく適合していない。
ここに開示する本発明は、グラフィカルユーザインタフ
ェースのプログラミングを行う既存ライブラリに見られ
る上記ならびにそれ以外の問題点を解決する手段を提供
することを目的としている。
While existing libraries for programming graphical user interfaces are effective, they do have some drawbacks. First, such libraries provide the programmer with a set of predefined classes that the programmer cannot define. Second, such a library must be generic because the classes are predefined. Also, each class must have many actions, and certain actions must be able to handle many situations. As a result, these classes are harder for programmers to understand, and the code for a series of operations is long and complex and slow to execute. Thirdly, the more complex the operation, the more often it does not match what the programmer wants to do, and the creation according to the purpose can be done only within a limited range.
Such drawbacks are especially acute when the programmer is designing a truly new graphical user interface to be used for data visualization rather than modifying the existing graphical user interface. Fourth, libraries and programming tools are typically provided as packages, often resulting in incompatibilities between different libraries and toolsets. Finally, none of the existing libraries are well suited for creating graphical user interfaces to visualize data.
It is an object of the present invention disclosed herein to provide means for solving the above and other problems found in existing libraries for programming a graphical user interface.

【0011】[0011]

【課題を解決するための手段】本発明は、Vzと呼ばれ
るC++クラスから成るライブラリによって前記の問題
を解決している。ライブラリ内のクラスは、2つのカテ
ゴリに分類される。一つは、ディスプレイの1種類の領
域を指定する領域クラスであり、もう一つは、このよう
な領域クラスのうち1クラスを有するオブジェクトに付
加される機能性を指定する機能性クラスである。ライブ
ラリの領域クラスのうち1クラスを継承する任意のユー
ザ定義クラスは、ライブラリの機能性クラスのいずれか
のクラスも継承する。各機能性クラスは、密接に関連し
た小さな機能性の集合のみを指定する。その結果、ウィ
ンドウなどの表示領域を表すオブジェクトの特性が、必
要とされている機能性を指定するこのようなクラスのみ
を継承することによって正確に定義される。
The present invention solves the above problem by a library of C ++ classes called Vz. The classes in the library are divided into two categories. One is an area class that specifies one type of area of the display, and the other is a functionality class that specifies the functionality added to an object having one of these area classes. Any user-defined class that inherits one of the library's domain classes also inherits any of the library's functionality classes. Each functionality class specifies only a closely related set of small functionality. As a result, the characteristics of the object representing the display area, such as a window, are precisely defined by inheriting only those classes that specify the required functionality.

【0012】例えば、Vzによって提供される領域クラ
スの一つにVzDrawingAreaがあるが、これ
は、いかなる種類の内容も定義されていないウィンドウ
を定義する。また、機能性クラスの一つにVzMous
ableがあり、これは、マウス入力に反応する機能性
を提供する。したがって、VzDrawingArea
およびVzMousableの両方を継承するクラスを
有するオブジェクトがあるとすれば、それは、マウス入
力に反応するウィンドウを表すことになる。以上述べた
ことから明らかなように、Vzライブラリのクラスを領
域クラスと狭く定義された機能性クラスに分類し、オブ
ジェクトクラスを定義するための継承を利用することに
よって、オブジェクトをタスク用に正確に定義すること
が手近に行える。このような機能性は、必要とされる機
能性のみが継承されなければならず、機能性の変更は継
承を変更することによってのみ実行できる。
For example, one of the area classes provided by Vz is VzDrawingArea, which defines a window with no content of any kind defined. VzMous is one of the functional classes.
There is an available, which provides the functionality to respond to mouse input. Therefore, VzDrawingArea
If there is an object that has a class that inherits both VzMousable and VzMousable, it will represent a window that responds to mouse input. As is clear from the above description, by classifying the Vz library class into a domain class and a narrowly defined functionality class, and using inheritance to define an object class, an object can be accurately defined for a task. Can be defined at hand. Such functionality must only inherit the required functionality, and changes in functionality can only be made by modifying the inheritance.

【0013】狭く定義された機能性クラスと継承の組み
合わせは、従来技術によるライブラリクラスの複雑さに
比べてはるかに理解しやすいものとなっている。さら
に、オブジェクトのコードは、継承されたオブジェクト
の領域クラスおよび機能性クラスに必要なコーダのみを
使用することから、従来技術によるライブラリシステム
のクラスを用いて作成されたオブジェクトに比べて、一
般に小型で実行速度が速くなる。最後に、ライブラリの
クラスは、特にグラフィカルユーザインタフェースに用
いられるオブジェクトを定義するクラスと共に継承され
ることから、従来技術によるライブラリの場合に見られ
るような互換性の問題は一切生じない。図形ライブラリ
を対象とする上記手法は、一般化が可能である。プログ
ラミング領域用クラスライブラリは、オブジェクトによ
って表された実体の種類を指定する実体クラスと実体に
与えられる機能性を指定する機能性クラスに分けられ
る。また、実体の種類と機能性は、当然、アプリケーシ
ョン領域によって決まる。本発明の上記ならびに他の目
的と利益とは、以下の図面および実施例を熟読すること
により、当業者にとって明らかになるであろう。図面お
よび実施例に使用されている参照符号は、3桁以上であ
る。最下位の2桁は、図の中の番号であり、残りの桁は
図番である。したがって、参照符号305の付いた要素
が図3に最初に示されている。
The combination of narrowly defined functional classes and inheritance is much easier to understand than the complexity of prior art library classes. In addition, the code for an object is generally smaller and smaller than objects created using prior art library system classes because it uses only the coders needed for the inherited object's domain and functionality classes. Execution speed becomes faster. Finally, since the classes of the library are inherited, especially with the classes that define the objects used for the graphical user interface, there are no compatibility issues as seen with prior art libraries. The above method for the graphic library can be generalized. The programming area class library is divided into an entity class that specifies the type of entity represented by the object and a functionality class that specifies the functionality given to the entity. Also, the type and functionality of the entity are naturally determined by the application area. The above as well as other objects and advantages of the present invention will become apparent to those of ordinary skill in the art by reading the following drawings and examples. The reference numbers used in the drawings and examples have more than two digits. The lowest two digits are numbers in the figure, and the remaining digits are figure numbers. Therefore, the element labeled with reference numeral 305 is first shown in FIG.

【0014】[0014]

【実施例】以下の実施例の説明は、まず初めに、オブジ
ェクト指向プログラミングシステムの概要を述べ、次
に、本発明の原理とVzライブラリに関する概要および
図形プログラムを書くうえでライブラリのクラスがどの
ように用いられるか例を挙げ、最後に、ライブラリのク
ラスについて詳細に説明している。 (オブジェクト指向プログラミングシステム:図1)
DESCRIPTION OF THE PREFERRED EMBODIMENTS The following description of the embodiments firstly outlines an object-oriented programming system, then outlines the principles of the present invention and the Vz library and how the classes of the library are in writing a graphics program. Finally, a detailed description of the library classes is given. (Object-oriented programming system: Figure 1)

【0015】図1は、グラフィカルユーザインタフェー
スのコードを作成する際に用いられるオブジェクト指向
プログラミングシステム101のブロック図である。オ
ブジェクト指向プログラミングシステム101は、CP
U111用のオブジェクトコード109を作成するオブ
ジェクト指向プログラミング言語向けのコンパイラ10
7を具備している。CPU111がコード109を実行
すると、実行結果として、ディスプレイ113への出力
123が得られる。この出力に対し、ディスプレイ11
3上にウィンドウ115が作成される。CPU111の
ユーザは、キーボード117および/またはマウス11
9を用いてウィンドウ115への入力を行う。矢印12
1によって示されるように、入力はCPU111に送信
され、ここでコード109の実行に作用した結果、ウィ
ンドウ115が変更される。したがって、コード109
の実行は対話型であり、ユーザは、キーボード117ま
たはマウス119からの入力によってウィンドウ115
の内容に応答し、ウィンドウ115の表示に変更を加え
る。この変更が行われた結果、当然、ユーザからさらに
入力が行われる。好ましい具体例では、オブジェクト指
向プログラミング言語がC++であり、コンパイラ10
7は、64メガバイトのメモリを持つシステムソフトウ
ェアバージョン5.2のIris indigo(シリ
コン・グラフィクス社)上で走行するユニックス・ソフ
トウェア・ラボラトリーズ(USL)のC++コンパイ
ラである。コンパイラによって生成されるコードは、上
記のシリコングラフィックス社のシステムを対象として
いる。
FIG. 1 is a block diagram of an object oriented programming system 101 used in creating code for a graphical user interface. The object-oriented programming system 101 is a CP
A compiler 10 for an object-oriented programming language that creates an object code 109 for U111
Equipped with 7. When the CPU 111 executes the code 109, the output 123 to the display 113 is obtained as the execution result. For this output, display 11
A window 115 is created on the top of the window 3. The user of the CPU 111 uses the keyboard 117 and / or the mouse 11
9 is used to input to the window 115. Arrow 12
As indicated by 1, the input is sent to the CPU 111, which affects the execution of the code 109, resulting in the modification of the window 115. Therefore, code 109
Is interactive, and the user can enter the window 115 by inputting from the keyboard 117 or the mouse 119.
The display of the window 115 is changed in response to the contents of. As a result of this change, further input is naturally made by the user. In the preferred embodiment, the object oriented programming language is C ++ and the compiler 10
7 is a Unix Software Laboratories (USL) C ++ compiler running on Iris indigo (Silicon Graphics, Inc.) with system software version 5.2 having 64 megabytes of memory. The code generated by the compiler is intended for the Silicon Graphics system described above.

【0016】コンパイラ107がオブジェクト指向言語
用のコンパイラであることから、コンパイラ107がコ
ード109を生成する原始コードには、コンパイラ10
7への入力を示す矢印103および105によって示さ
れるように、オブジェクト指定(仕様)105およびク
ラス指定(仕様)103が含まれている。どのオブジェ
クトも1クラスを有している必要があることから、各オ
ブジェクト指定105には、クラス指定103への参照
が含まれていなければならない。また、クラス指定10
3は、1つまたはそれ以上の他のクラスによって定義さ
れる。ある一定のクラス指定103によって定義された
クラスは、クラス指定103で使用されるクラスを継承
すると言われる。また、他のどのクラスも継承しないク
ラスは、ベースクラスと呼ばれている。
Since the compiler 107 is a compiler for an object-oriented language, the source code for the compiler 107 to generate the code 109 is the compiler 10
7 includes object designation (specification) 105 and class designation (specification) 103. Each object designation 105 must include a reference to the class designation 103, because every object must have one class. Also, class designation 10
3 is defined by one or more other classes. A class defined by a certain class designation 103 is said to inherit the class used in the class designation 103. A class that does not inherit from any other class is called a base class.

【0017】上記の関係は、図1において、クラス指定
103およびクラス指定103をオブジェクト指定10
5に接続する点線の矢印106によって示されている。
このため、オブジェクト指定105(a)によって指定
されるオブジェクトのクラスを指定するクラス指定10
3(d)は、クラス指定103(c)および103
(a)によって指定されるクラスを継承する。このクラ
ス指定は、両方ともベースクラスを指定する。継承は、
当然、1「世代」以上さかのぼることができる。したが
って、オブジェクト指定105(b)のクラス指定10
3(e)は、クラス指定103(f)によって定義され
るクラスを継承し、次に、指定103(b)によって定
義されるクラスを継承する。ここでは、クラス指定10
3(b)はベースクラスを指定する。
The above relationship is shown in FIG. 1 in which the class designation 103 and the class designation 103 are assigned to the object designation 10
This is indicated by the dotted arrow 106 connecting to 5.
Therefore, the class specification 10 that specifies the class of the object specified by the object specification 105 (a)
3 (d) is the class designation 103 (c) and 103
Inherit the class specified by (a). Both of these class specifications specify the base class. Inheritance is
Naturally, one can go back more than one "generation". Therefore, the class designation 10 of the object designation 105 (b)
3 (e) inherits the class defined by class designation 103 (f) and then inherits the class defined by designation 103 (b). Here, class designation 10
3 (b) specifies a base class.

【0018】以上述べた通り、オブジェクトのクラス
は、オブジェクトについてどのような動作を実行できる
か判断する。動作自体は、クラス指定103の機能指定
によって指定される。C++では、2種類の機能指定、
すなわち、仮想機能指定102と通常機能指定104が
ある。通常機能指定104には、動作用インタフェース
を指定し、動作を行うコードも含まれている。仮想機能
指定は、インタフェースを指定するだけである。動作を
行うコードは、単独の通常機能104に含まれていなけ
ればならず、仮想機能を有するクラスを継承している各
種クラス指定103は、その仮想機能に対してそれぞれ
異なる通常機能104を有することができる。唯一必要
とされる条件は、通常機能104のすべてが仮想機能1
02用に指定されたインタフェースを有していることで
ある。仮想機能102を定義するクラス指定に仮想機能
102を対象とする通常機能104がある場合、通常機
能104は、省略時解釈となる。別のクラスが仮想機能
を有するクラスを継承し、かつ仮想機能に対する通常機
能104を有していない場合、そのクラスは、省略時解
釈である通常機能を継承する。したがって、この仮想機
能によって、プログラマは、継承されたクラスの特定の
アプリケーションに対して要求された通りにそのクラス
の動作を定義することができる。
As mentioned above, a class of objects determines what actions can be performed on the objects. The operation itself is designated by the function designation of the class designation 103. In C ++, two types of function designation,
That is, there are a virtual function designation 102 and a normal function designation 104. The normal function designation 104 also includes code for designating an operation interface and performing an operation. The virtual function designation only designates the interface. The code that performs the operation must be included in a single normal function 104, and various class designations 103 that inherit a class having a virtual function must have different normal functions 104 for the virtual function. You can The only requirement is that all normal functions 104 are virtual functions 1
It has an interface specified for 02. When the class specification that defines the virtual function 102 includes the normal function 104 that targets the virtual function 102, the normal function 104 is defaulted. If another class inherits a class that has a virtual function and does not have a normal function 104 for the virtual function, that class inherits the default normal function. Thus, this virtual function allows a programmer to define the behavior of an inherited class as required for a particular application of that class.

【0019】上記の例は、Vzライブラリのクラスであ
るVzMouseableによって可能であり、このク
ラスは、仮想機能DoMouseを有している。仮想機
能インタフェースは、マウスの動きについての情報がコ
ード109にどのように渡されるのか定義するが、その
情報に対して採られる動作を定義するものではない。V
zMouseableを継承するクラスは、DoMou
seに対し、通常機能104を提供しなければならな
い。例えば、通常機能104によれば、マウスを使用し
てウィンドウ内のディスプレイ上のテキストの一部を選
択する場合に、ディスプレイ上で選択部分が強調表示さ
れ、テキストの移動や削除などの後の動作に使用するた
め退避されることになっている。
The above example is possible with VzMouseable, a class of the Vz library, which has a virtual function DoMouse. The virtual function interface defines how information about mouse movements is passed to code 109, but not the actions taken on that information. V
The class that inherits zMouseable is DoMou
The normal function 104 must be provided to the se. For example, according to the normal function 104, when the user uses the mouse to select a part of the text on the display in the window, the selected part is highlighted on the display and the subsequent action such as moving or deleting the text is performed. It is supposed to be evacuated for use.

【0020】(本発明にしたがって構成されたクラスラ
イブラリ:図2)以上述べた通り、オブジェクト指向プ
ログラミングシステム101内のクラス指定103の多
くは、クラスライブラリによって提供される。図2は、
本発明の原理にしたがって構成されたクラスライブラリ
211の図である。クラスライブラリ201には、2種
類のクラス指定子、すなわち、実体クラス201用の指
定子と機能性クラス203用の指定子とがある。実体ク
ラス201のクラス指定子は、オブジェクトをモノ、例
えば、内容についてある一定の形や種類を有するウィン
ドウ115として指定するクラスを定義する。Vzライ
ブラリ内のコードのような実体クラスの一例として、V
zDrawingAreaがあり、これは、内容の種類
が指定されていないウィンドウのクラスである(内容の
種類は、VzDrawingAreaを継承する別の実
体クラスを継承するコードとにより、追加できる)。こ
のクラスを対象とするクラス指定子205には、ウィン
ドウに関係のあるエクスポーズまたはリサイズ事象に反
応して採られる動作のための仮想機能102と、ウィン
ドウ自体の生成、破棄、エクスポーズ、またはリサイズ
が行われる際に採られる動作のための通常機能104が
含まれている。
(Class Library Constructed According to the Present Invention: FIG. 2) As described above, most of the class specifications 103 in the object-oriented programming system 101 are provided by the class library. Figure 2
FIG. 3 is a diagram of a class library 211 constructed according to the principles of the present invention. The class library 201 has two types of class specifiers, namely, a specifier for the entity class 201 and a specifier for the functionality class 203. The class specifier of the entity class 201 defines a class that specifies an object as a thing, for example, a window 115 having a certain shape and type of contents. As an example of an entity class such as code in the Vz library, V
There is a zDrawingArea, which is a class for windows with no content type specified (a content type can be added by code that inherits another entity class that inherits VzDrawingArea). The class specifier 205 for this class includes virtual functions 102 for actions taken in response to an expose or resize event related to the window and the creation, destruction, exposure, or resizing of the window itself. A normal function 104 is included for the actions taken when the is performed.

【0021】機能性クラス203のクラス指定子207
は、実体クラス201によって定義される実体に提供さ
れる機能を定義する。例えば、Vzの場合、機能性クラ
スVzMouseableは、マウスに反応する機能性
を提供する。したがって、クラスライブラリ211の原
理を用いると、マウスからの入力に反応する必要のある
ウィンドウ115を表すオブジェクトのクラスがあると
すれば、VzDrawingAreaおよびVzMou
seableを継承することにより、そのようなクラス
を定義することができる。この場合、当然、オブジェク
トのクラスは、通常機能104が全く継承されていない
か、あるいは、互いに異なる通常機能が必要とされてい
る仮想機能102に対し、通常機能104を提供しなく
てはならない。
The class specifier 207 of the functionality class 203
Defines the functionality provided to the entity defined by entity class 201. For example, in the case of Vz, the functionality class VzMouseable provides mouse-responsive functionality. Therefore, using the principles of class library 211, if there are classes of objects representing windows 115 that need to react to mouse input, then VzDrawingArea and VzMou.
It is possible to define such a class by inheriting the seal. In this case, naturally, the class of the object must provide the normal function 104 to the virtual function 102 in which the normal function 104 is not inherited at all or different normal functions are required.

【0022】図2の点線105は、継承がどのように行
われるかを示している。オブジェクトクラス指定209
は、オブジェクト指定105(n)に指定されているオ
ブジェクトのクラスを定義する。クラス指定209は、
クラスライブラリ211から実体クラス205(c)と
機能性クラス207(b)を継承する。好ましい具体例
のクラスライブラリでは、クラスライブラリ211によ
って定義された実体クラス201のうち任意のクラスか
ら継承を行うオブジェクトクラス指定209は、クラス
ライブラリ211によって定義された任意数の任意の機
能性クラス203を継承することができる。
The dotted line 105 in FIG. 2 shows how inheritance is done. Object class specification 209
Defines the class of the object specified in the object specification 105 (n). The class designation 209 is
The entity class 205 (c) and the functionality class 207 (b) are inherited from the class library 211. In the class library of the preferred specific example, the object class designation 209 that inherits from any class of the entity classes 201 defined by the class library 211 includes an arbitrary number of arbitrary functional classes 203 defined by the class library 211. Can be inherited.

【0023】点線が示すように、継承は、クラスライブ
ラリ211内でクラスを定義する際にも用いられる。実
体クラス205(d)は、実体クラス指定子205
(b)によって指定されたクラスと機能性クラス指定子
207(a)によって指定されたクラスを継承する。す
なわち、機能性クラス指定子205(d)によって指定
された実体クラスは、機能性クラス指定子207(a)
によって指定された機能性を有している。同様に、機能
性クラス指定子207(b)によって指定された機能性
クラスは、指定子207(a)によって指定された機能
性クラスを継承し、いずれのクラスに対しても定義され
ているすべての機能性を有している。
Inheritance is also used in defining classes within the class library 211, as indicated by the dotted lines. The entity class 205 (d) is the entity class specifier 205
Inherit the class specified by (b) and the class specified by the functionality class specifier 207 (a). That is, the entity class designated by the functionality class designator 205 (d) is the functionality class designator 207 (a).
It has the functionality specified by. Similarly, the functionality class specified by the functionality class specifier 207 (b) inherits the functionality class specified by the specifier 207 (a) and is defined for any class. It has the functionality of.

【0024】(クラスライブラリ例211:図3)好ま
しい具体例では、データの視覚化を行うために、Vzク
ラスライブラリにクラスライブラリ211の原理が具体
的に用いられている。図3は、Vzライブラリ301の
クラスとクラス同士の関係が示されている。実線で書か
れた方形304で示された領域クラスは実体クラス20
1であり、これらのクラスの各々は、クラスを継承する
オブジェクトが特定の種類のウィンドウ115を表すこ
とを指定し、楕円形で示されたクラスは機能性クラス2
03であり、これらのクラスの各々は、そのクラスが機
能性クラスを継承し、かつ領域クラスの中の一つである
ようなオブジェクトにおける機能性を指定する。点線で
書かれた方形302によって示されるクラスは、図形エ
ンジンを表すオブジェクトを定義する図形エンジンクラ
スである。破線矢印317で示されるように、図形エン
ジンは、実際に、VzDrawer機能性クラス323
で指定された動作を実行する。
(Class Library Example 211: FIG. 3) In the preferred embodiment, the principle of the class library 211 is specifically used in the Vz class library to visualize the data. FIG. 3 shows the classes of the Vz library 301 and the relationships between the classes. The area class indicated by a solid box 304 is the entity class 20.
1 and each of these classes specifies that the object that inherits the class represents a particular type of window 115, and the class indicated by the oval is the functionality class 2.
03, each of these classes specifies the functionality in the object that it inherits from the functionality class and is one of the domain classes. The class indicated by the dotted rectangle 302 is a graphics engine class that defines objects that represent graphics engines. As indicated by the dashed arrow 317, the graphics engine is actually the VzDrawer functionality class 323.
Performs the operation specified in.

【0025】以下に、ライブラリ301のクラスの各々
について概要を述べており、まず初めにVzFunct
ionalityクラス327およびこれを継承する機
能性クラス306について説明している。各クラスの詳
細な説明は、本出願の末尾に記載されている。
The outline of each class of the library 301 is described below. First, VzFunction
The ionality class 327 and the functionality class 306 that inherits from it are described. A detailed description of each class is given at the end of this application.

【0026】(機能性クラス306)機能性クラス30
6の階層の最上位に位置するクラスは、VzFunct
ionality327である。このクラスは、クラス
が機能性クラス306を継承しているオブジェクトへの
ポインタとなるデータメンバを指定する。このクラスの
コンストラクタによりポインタが設定され、実際にその
ようなオブジェクトがあるかどうかチェックする機能が
ある。このようなクラスは、すべての機能性クラスによ
って継承される。
(Functionality class 306) Functionality class 30
The class located at the top of the hierarchy of 6 is VzFunction
It is the orality 327. This class specifies a data member that is a pointer to an object that the class inherits from the functionality class 306. A pointer is set by the constructor of this class, and it has the function of checking whether such an object actually exists. Such classes are inherited by all functionality classes.

【0027】続いてVzColorManager32
1について説明すると、この機能性クラスは、ディスプ
レイ113の領域内の各カラーの使用を制御するうえで
必要な機能性を指定する。該クラスによって付加される
動作には、カラーの割当て、数値尺度に対するカラーの
マッピング、カラーのオーバレイ、カラーの設定と解
除、前景色と背景色の設定などがある。
Then, VzColorManager32
Referring to 1, this functionality class specifies the functionality required to control the use of each color within the area of the display 113. The operations added by the class include assigning colors, mapping colors to numerical scales, overlaying colors, setting and releasing colors, setting foreground and background colors, etc.

【0028】次に、VzColorManager32
1は、VzDrawer323によって継承される。こ
のVzDrawer323は、領域オブジェクトがドロ
ーコマンドに対して反応できるようにする機能性クラス
である。付加される動作には、ポストスクリプトファイ
ルとしての領域の出力、ダブルバッファリングの実行、
座標システム間の変換、フォントの指定と文字列のサイ
ズ測定、および点、線、方形、楕円形、多角形等のドロ
ーや多角形の充填等のドロー動作の実行などがある。
Next, VzColorManager32
1 is inherited by VzDrawer 323. This VzDrawer 323 is a functionality class that allows the region object to react to draw commands. The operation added is to output the area as a Postscript file, execute double buffering,
This includes conversion between coordinate systems, font specification and character string size measurement, and drawing operations such as drawing points, lines, rectangles, ellipses, polygons, and filling polygons.

【0029】VzGC321は、プログラム109に図
形基本立体を提供する図形システムが必要とする種類の
図形コンテキストを領域オブジェクトが指定できるよう
にするクラスである。VzGC321クラスの本来の役
割は、ライブラリ301からのクラスを図形システムに
よって提供された図形コンテキストオブジェクトに「ラ
ップアラウンド」させることである。VzMousea
ble335は、領域オブジェクトがマウスからの入力
に反応できるようにするクラスである。コンストラクタ
は、マウスのクリックのみ、クリックとドラッグの両
方、あるいはすべてのマウス操作などのうち、どのタイ
プのマウス入力によって上記クラスの方法を呼び出すか
確定する。反応を引き起こすマウス入力のタイプを取得
して設定する動作がいくつかあり、マウスからの入力に
対して領域オブジェクトがどのように反応するか指定す
る仮想コールバック機能がある。
The VzGC 321 is a class that allows the area object to specify the type of graphics context required by the graphics system that provides the program 109 with a graphics basic solid. The primary purpose of the VzGC321 class is to "wrap around" classes from the library 301 to the graphics context objects provided by the graphics system. VzMousea
The ble 335 is a class that enables the area object to respond to input from the mouse. The constructor determines which type of mouse input calls the method of the above class, such as mouse click only, both click and drag, or all mouse operations. There are several actions that get and set the type of mouse input that triggers the reaction, and there is a virtual callback function that specifies how the area object reacts to input from the mouse.

【0030】VzKeyable339は、領域オブジ
ェクトがキーボードからの入力に反応できるようにする
クラスである。コンストラクタは、キーボードの状態を
記憶するデータ構造を確定し、キーボード状態を取得し
設定する追加動作があり、領域オブジェクトがキーボー
ドからの入力に対してどのように反応するか指定する仮
想コールバック機能がある。最後の機能性クラス306
は、VzKeyable339を継承するVzKeyD
ispatcher341である。このクラスは、領域
オブジェクトがキーボードからの入力に対してどのよう
に反応するか定義できるようにする。各キーは、通常機
能104に対してマッピングされており、キーが押下さ
れると、マッピングされている機能104が実行され
る。マップはコンストラクタが作成し、他の追加動作に
は、機能に対するキーのマッピングやキーマップの退避
および復元がある。この機能性クラスの利用法の一つ
に、ユーザが、自分の好きなテキストエディタ用のキー
ストロークを用いてウィンドウ内でテキストを編集でき
るようにすることなどが挙げられる。
VzKeyable 339 is a class that enables a region object to respond to input from the keyboard. The constructor has the additional behavior of finalizing the data structure that stores the keyboard state, getting and setting the keyboard state, and has a virtual callback function that specifies how the region object reacts to keyboard input. is there. Last functionality class 306
Is VzKeyD that inherits VzKeyable339
It is ispatcher341. This class allows you to define how a region object reacts to keyboard input. Each key is mapped to the normal function 104, and when the key is pressed, the mapped function 104 is executed. Maps are created by the constructor, and other additional actions include mapping keys to functions and saving and restoring keymaps. One use of this functionality class is to allow a user to edit text in a window using keystrokes for his favorite text editor.

【0031】(領域クラス304)領域クラスは、ウィ
ンドウ、スライダ、ボタン、メニュー等のディスプレイ
113上の領域に関する操作を定義する。多くのグラフ
ィカルユーザインタフェースシステムの場合、これらの
領域は、グラフィカルユーザインタフェースシステムに
よって提供される固有オブジェクトで表されている。例
えば、基本システムがXウィンドウシステムの場合、固
有オブジェクトは、Xウィンドウ部品となる。固有オブ
ジェクトは、領域クラスを継承するオブジェクトを固有
オブジェクトに「ラップアラウンド」させることによ
り、Vzライブラリの領域クラスを継承するオブジェク
トに似た振る舞いをさせられる。このようなオブジェク
トを、ここではVzオブジェクトと呼ぶ。
(Area Class 304) The area class defines operations relating to areas on the display 113 such as windows, sliders, buttons, and menus. For many graphical user interface systems, these areas are represented by unique objects provided by the graphical user interface system. For example, when the basic system is the X window system, the unique object is the X window part. The unique object is made to behave like an object inheriting the area class of the Vz library by "wrapping around" an object that inherits the area class. Such an object is called a Vz object here.

【0032】領域クラスのベースクラスは、VzObj
ectクラス303である。クラス303は、このクラ
スを継承するVzオブジェクトを固有オブジェクトにラ
ップアラウンドできるようにする。前記クラスのデータ
は、固有オブジェクトを示すポインタである。動作は、
以下の通りである。 ●Vzオブジェクトの単独での生成ならびに固有オブジ
ェクトの生成、さらに、Vzオブジェクトの固有オブジ
ェクトへのラップアラウンド、およびVzオブジェクト
とラップアラウンドされている固有オブジェクトの削除
を行うための割当てならびに削除に関する動作。 ●Vzオブジェクトならびに固有オブジェクトを示すポ
インタを返す動作。 ●固有オブジェクトが所属しているオブジェクト階層に
関する情報を返す動作。 ●固有オブジェクトによって表される領域の寸法を取得
し設定する動作。 ●Vzオブジェクトを生成および破棄する機能とウィン
ドウの生成ならびに破壊
The base class of the area class is VzObj.
This is the ect class 303. Class 303 enables Vz objects that inherit this class to wrap around to a unique object. The data of the class is a pointer indicating a unique object. The operation is
It is as follows. Operations related to generation of a Vz object by itself and generation of a unique object, further wrapping of a Vz object to a unique object, and assignment and deletion for performing deletion of a unique object wrapped with a Vz object. An operation of returning a pointer indicating a Vz object and a unique object. ● An operation that returns information about the object hierarchy to which a unique object belongs. ● The act of getting and setting the dimensions of the area represented by a unique object. ● Ability to create and destroy Vz objects and create and destroy windows

【0033】事象のコールバック 点線矢印319によって示されるように、VzObje
ct303を継承する任意のクラスは、任意の機能性ク
ラス306、すなわち、VzFunctionalit
y327を継承する任意のクラスを継承する。領域クラ
ス304の階層における次のクラスは、VzDrawi
ngArea305である。このようなクラス305を
有するオブジェクトは、プログラムが描く領域を表して
いる。VzObjectの動作に対し前記クラスによっ
て付加される動作には、新規VzDrawingare
aオブジェクトを作成したり既存の固有オブジェクトに
このようなオブジェクトをラップアラウンドさせるコン
ストラクタや、エクスポーズおよびリサイズ事象を行う
ための仮想機能、および図形領域のクリアならびにエク
スポーズを行うための動作などがある。以上のことから
明らかなように、このクラスには、図形領域に現われる
ものを指定する動作は一切ない。
Event callback VzObje, as indicated by the dotted arrow 319.
Any class that inherits ct303 is an optional functionality class 306, namely VzFunctionalit
Inherit any class that inherits y327. The next class in the hierarchy of region class 304 is VzDraw
ngArea305. An object having such a class 305 represents an area drawn by the program. The operations added by the above class to the operations of VzObject include the new VzDrawingare.
a Constructor that creates an object or wraps such an object into an existing native object, virtual functions to perform expose and resize events, and operations to clear and expose graphic areas. . As is apparent from the above, there is no operation in this class for specifying what appears in the graphic area.

【0034】VzDrawingArea305は、残
りの領域クラス306のすべてのクラスによって直接あ
るいは間接的に継承される。まず初めにVzTextA
rea325について説明すると、このクラスは、テキ
ストが表示されているディスプレイ113の領域がオブ
ジェクトで表現されているオブジェクトクラスによって
継承される。前記クラスによって付加される動作によ
り、テキストを任意にスクロールあるいは強調表示した
り、種々のフォントおよびカラーでドロー(描画)処理
できる。このような動作を行うための機能性は、VzT
extAreaによって継承されるVzDrawer3
23により提供される。動作についてさらに詳細に説明
すると、クラスコンストラクタには、スクロールや左マ
ージンを指定するための引数がある。他の動作には、領
域に対して最高16フォントまで割り当てる動作、テキ
ストをウィンドウ上に表示するよう指定しテキストのポ
インタを返す動作、ウィンドウにテキストを配置する動
作、行の強調表示、表示されたテキストに関する情報を
返す動作などがある。前記情報には、テキスト内の行
数、表示されている行数、表示されている開始行と最終
行の数、所定行が表示されているかどうか、所定行の高
さなどがある。さらに、テキストの複数行を繰り返す反
復機能もオブジェクトに用意されている。
VzDrawingArea 305 is directly or indirectly inherited by all the classes of the remaining area classes 306. First of all, VzTextA
Explaining the rea 325, this class is inherited by an object class in which an area of the display 113 in which text is displayed is represented by an object. By the operation added by the class, the text can be arbitrarily scrolled or highlighted, and the drawing (drawing) process can be performed with various fonts and colors. The functionality for performing such operations is VzT
VzDrawer3 inherited by extArea
23 provided. To explain the behavior in more detail, the class constructor has arguments for scrolling and specifying the left margin. Other actions include allocating up to 16 fonts for a region, specifying text to be displayed in a window and returning a pointer to the text, placing text in the window, highlighting lines, and displaying There are operations such as returning information about text. The information includes the number of lines in the text, the number of lines displayed, the number of displayed start and end lines, whether a predetermined line is displayed, the height of the predetermined line, and the like. In addition, the object also has a repeat function that repeats multiple lines of text.

【0035】VzTextAreaはVzBRowse
r337によって継承されるが、このVzBRowse
r337は、機能性クラスVzMouseable33
5およびVzKeyDispatcher341からも
継承している。このような継承から予想されるように、
VzBrowserは、テキストを表示してユーザがキ
ーボード117やマウス119を用いて表示されたテキ
ストを処理できる領域を表すオブジェクトを対象にした
クラスである。付加される動作には、テキスト内での移
動、テキストの探索、各種行におけるマークの設定、ポ
ップアップメニューからマークが付けられた行のテキス
トを選択することによりその行にジャンプする動作など
がある。前記クラスがVzKeyableを継承するこ
とから、キーボード117からの入力による影響は再定
義可能である。
VzTextArea is VzBrowse
This VzBrowse is inherited by r337.
r337 is a functional class VzMouseable33
5 and VzKeyDispatcher341. As expected from such inheritance,
VzBrowser is a class that targets an object that displays a text and that represents a region in which the user can process the displayed text using the keyboard 117 or the mouse 119. The operations to be added include movement within text, searching for text, setting marks on various lines, and jumping to the line by selecting the text of the marked line from the pop-up menu. Since the class inherits VzKeyable, the effect of input from the keyboard 117 can be redefined.

【0036】次に、VzGLDrawingArea3
07について説明すると、この領域クラスは、シリコン
グラフィックス社のコンピュータ上で実行するプログラ
ムの生成に用いられるVzライブラリを作成するために
特別に用意されたクラスである。新たな動作として挙げ
られるのは、シリコングラフィックス社のシステムで固
有領域オブジェクトを形成するのに必要な引数を提供す
るコンストラクタである。VzBarlayout33
1も、機能性クラスVzMouseableを継承す
る。このクラスは、バーの行または列を描き、かつマウ
スを用いて前記Eickの引用文献に開示されている方
法によりその処理を行うための図形領域を表すオブジェ
クトによって継承される。前記クラスは、さらに、最後
の領域クラス、すなわちVzColorSelecto
r333によって継承されるが、この領域クラスは、機
能性クラスVzDrawer323からも継承してい
る。VzColorSelector333は、Eic
kの引用文献に開示されている種類のセレクタを含んだ
領域を表すオブジェクトによって継承されるクラスであ
る。操作には、セレクタ内でバーを切り換える動作や数
値範囲にカラーの範囲を割り当てる動作などがある。
Next, VzGLDDrawingArea3
Explaining No. 07, this area class is a class specially prepared for creating a Vz library used for generating a program to be executed on a computer of Silicon Graphics. The new behavior is the constructor that provides the arguments needed to form the eigenregion object in the Silicon Graphics system. VzBarlayout33
1 also inherits the functionality class VzMouseable. This class is inherited by an object that represents a graphical area for drawing a row or column of bars and for doing so by the method disclosed in the Eick reference cited above using a mouse. The class is also the last domain class, namely VzColorSelecto.
Although inherited by r333, this area class also inherits from the functionality class VzDrawer323. VzColorSelector333 is Eic
It is a class that is inherited by an object that represents an area that contains a selector of the type disclosed in the cited reference of k. The operations include the operation of switching the bar in the selector and the operation of assigning the color range to the numerical range.

【0037】残りのクラスとして図形エンジンクラス3
02があり、このクラスには、基本図形システムにより
提供される動作がある。ここでのベースクラスは、Vz
AbstractEngine309であり、一連の高
レベル図形操作のための仮想機能を定義する。VzAb
stractEngine309を継承するクラスは、
コードの生成にVzライブラリ301を使用できるよう
な基本図形システムの各々に対し、このような仮想機能
を実行できるようにする。現在、このような基本システ
ムには3種類のものがある。したがって、VzGLEn
gine311は、SGI装置で用いられる図形システ
ム用の機能を実現し、VzPSEngineは、ポスト
スクリプトでの機能を実現することから、領域クラス3
04のうち1クラスによって表される任意のオブジェク
トがポストスクリプトプリンタで印刷できる(ポストス
クリプトは、Adobe Systems社の商標)。
最後に、VzXEngineは、Xウィンドウシステム
での機能を実現する。
Figure engine class 3 as the remaining classes
02, this class has the operations provided by the primitive graphics system. The base class here is Vz
AbstractEngine 309, which defines virtual functions for a series of high-level graphic operations. VzAb
The class that inherits structEngine309 is
It is possible to perform such virtual functions for each of the basic graphics systems that can use the Vz library 301 for code generation. Currently, there are three types of such basic systems. Therefore, VzGLEn
Since the gine 311 realizes the function for the graphic system used in the SGI device, and the VzPSEngine realizes the function in the Postscript, the area class 3
Any object represented by one of the 04 classes can be printed on a Postscript printer (Postscript is a trademark of Adobe Systems).
Finally, VzXEngine implements functionality in the X Window System.

【0038】(Vz301を用いる図形プログラム例:
図4〜6)次に、Vzライブラリを用いたフロートと呼
ばれるプログラム例について詳細に説明する。フロート
は、テキストをブラウジングするプログラムである。ユ
ーザがこのプログラムを実行する場合、ユーザは、ファ
イル名と探索ストリングを指定する。図4では、フロー
トを実行することによって生成されるウィンドウ401
が示されている。ファイル405の行の表現は、行の長
さに対応する行表現の長さで、カラム403に配置され
る。前記ファイルの1行に探索ストリングが含まれてい
る場合、対応する行表現405が強調表示される。この
種の表示の詳細については、前記Eickの引用文献に
記載されている。探索ストリングを含んでいるテキスト
の一部を見る場合、ユーザは、マウスを使用して行表現
の領域を選択する。その領域が強調表示されている行表
示のいずれかを含んでいた場合、プログラムは、選択さ
れた領域のテキスト行でファイル表示をオーバレイする
ことにより、選択操作への応答を行う。テキストは、行
表現の表示上で「浮遊(フロート)」しているように見
えることから、このようなプログラム名が付けられた。
(Example of graphic program using Vz301:
4 to 6) Next, an example of a program called a float using the Vz library will be described in detail. Float is a program for browsing text. When the user runs this program, the user specifies the filename and search string. In FIG. 4, the window 401 generated by executing the float
It is shown. The line representation of the file 405 is the length of the line representation that corresponds to the line length and is located in column 403. If one line of the file contains a search string, the corresponding line representation 405 is highlighted. Details of this type of display can be found in the Eick reference cited above. When looking at the portion of the text containing the search string, the user uses the mouse to select a region of the line representation. If the region contains any of the highlighted line displays, the program responds to the selection operation by overlaying the file display with the text lines of the selected region. The text was given such a name because it appears to be "floating" in the line representation display.

【0039】ウィンドウ401は、FloatDraw
クラスのオブジェクトにより、前記プログラム内で表示
される。図5は、FloatDraw503を指定する
際にVzライブラリ301のクラスがどのように用いら
れるか示している。FloatDraw503は、ライ
ブラリ領域クラスVzDrawingArea305と
ライブラリ機能性クラスVzDrawer323および
VzMouseable335を継承する。クラス32
3および335から継承された機能性によって、プログ
ラムは、FloatDraw503クラスのオブジェク
トによって表されたウィンドウ上で図形動作を行い、前
記ウィンドウ上でマウス入力への応答も行う。
Window 401 is FloatDraw
Displayed within the program by objects of the class. FIG. 5 shows how the class of the Vz library 301 is used when specifying the FloatDraw 503. The FloatDraw 503 inherits the library area class VzDrawingArea 305 and the library functionality classes VzDrawer 323 and VzMouseable 335. Class 32
Due to the functionality inherited from 3 and 335, the program also performs graphical operations on the window represented by the FloatDraw 503 class object and also responds to mouse input on said window.

【0040】図6A、6B、6C、および6Dは、フロ
ートプログラム用の完全なC++原始コード601を示
している。図6Aの冒頭から説明すると、原始テキスト
は、includeファイルをいくつか指定している。
このincludeファイル中には、Vzライブラリク
ラス用の原始コードを含むincludeファイル61
1が含まれている。また、ここでは、includeフ
ァイル603に、Vzライブラリ301から継承したタ
イプのオブジェクトを用いるアプリケーションプログラ
ムのクラスとなっているクラスを対象にした原始コード
が含まれている。さらに、includeファイル60
5にはVzDrawingAreaクラス305の原始
コードが、includeファイル607にはVzDr
awer323の原始コードが、また、include
ファイル609にはVzMouseable609の原
始コードが含まれている。
6A, 6B, 6C, and 6D show the complete C ++ source code 601 for a float program. Starting from the beginning of FIG. 6A, the source text specifies some include files.
The include file 61 includes the source code for the Vz library class.
1 is included. In addition, here, the include file 603 includes source code for a class that is a class of an application program that uses an object of a type inherited from the Vz library 301. In addition, include file 60
5 is the source code of the VzDrawingArea class 305, and the include file 607 is VzDr.
The source code of awer323 is also included
The file 609 contains the source code of VzMouseable 609.

【0041】613にFloatDrawクラスの指定
開始が確認できる。FloatDrawがライブラリ3
01から継承する305、323、および325の3ク
ラスがFloatDrawの後のセミコロンに続いて表
示されている。次に、615では、FloatDraw
タイプ503のオブジェクトを対象にしたコンストラク
タの指定が行われている。引数(VzNativeOb
ject w)は、親固有オブジェクトへのポインタで
ある。FloatDrawクラスのオブジェクトが生成
される場合、親固有オブジェクトの子である固有オブジ
ェクトが生成され、FloatDrawクラスのオブジ
ェクトが子固有オブジェクトにラップアラウンドされ
る。さらに、FloatDrawクラスのオブジェクト
が上記のクラスから継承することから、コンストラクタ
には、上記クラスのコンストラクタへの参照が含まれて
いなければならない。このようなコンストラクタは、コ
ロンの次に表示されている。
At 613, the designation start of the FloatDraw class can be confirmed. FloatDraw is library 3
The three classes 305, 323, and 325 that inherit from 01 are displayed following the semicolon after FloatDraw. Next, in 615, FloatDraw
The specification of the constructor for the object of type 503 is performed. Argument (VzNativeOb
jject w) is a pointer to the parent unique object. When an object of the FloatDraw class is created, a unique object that is a child of the parent unique object is created, and an object of the FloatDraw class is wrapped around the child unique object. Furthermore, since the objects of the FloatDraw class inherit from the above class, the constructor must include a reference to the constructor of the above class. Such constructors are listed after the colon.

【0042】FloatDraw503クラスのオブジ
ェクトには、ウィンドウ401から生成される情報を生
成するためのファイルの読取り、ウィンドウ401の作
成、行表現405のマウス選択に対する反応という3つ
の動作がある。これらの動作は、いずれも仮想機能10
2として指定される。すなわち、617のReadFi
le仮想機能としての読取り操作、619のDoExp
ose機能としてのドローイング操作、DoMouse
621のマウス選択への応答である。
An object of the FloatDraw 503 class has three operations: reading a file for generating information generated from the window 401, creating the window 401, and reacting to the mouse selection of the row representation 405. These operations are all performed by the virtual function 10
Specified as 2. That is, 617 ReadFi
read operation as le virtual function, 619 DoExp
Draw function as ose function, DoMouse
621 is the response to mouse selection.

【0043】以上の仮想機能102を実現する通常機能
104が、図6および6Cに示されている。ReadF
ileを具体的に示したものが、図6Bの623であ
り、ここでは、引数としてファイル名と探索ストリング
へのポインタを採用し、3つの配列を作成している。1
つはファイル内の行に対するlnであり、もう1つは、
各行の長さに対するlnlenであり、残りの1つは、
行が探索文字列に対する整合性を含んでいるか否かを示
すlnmatである。その結果、以上の配列は、ウィン
ドウ401の生成に必要な情報が含まれたものとなって
いる。
A normal function 104 that implements the above virtual function 102 is shown in FIGS. 6 and 6C. ReadF
A specific example of ile is 623 in FIG. 6B. Here, a file name and a pointer to a search string are adopted as arguments, and three arrays are created. 1
One for the line in the file, the other for
Lnlen for each line length, the remaining one is
Is an lnmat indicating whether or not the line contains a match for the search string. As a result, the above array contains information necessary for generating the window 401.

【0044】図6Bの625に表示されたDoExpo
seの実行によってウィンドウ401が現われると、コ
ラム403と行表現405が表示される。この機能によ
ってウィンドウの現サイズが決まり、この表示を生成す
るReadFileによって生成された配列が用いられ
る。行表現405は、各行に対して作成される。行内で
整合性があれば、行表現405が強調表示され、整合性
がなければ、強調表示は行われない。
DoExpo displayed at 625 in FIG. 6B.
When window 401 appears by executing se, column 403 and line representation 405 are displayed. This function determines the current size of the window and uses the array created by ReadFile to create this display. The row representation 405 is created for each row. If there is consistency in the line, the line representation 405 is highlighted, otherwise it is not highlighted.

【0045】マウス選択に対する反応によって強調表示
された行の選択に対して実行された通常機能が、図6C
の627に示されているDoMouseである。この機
能により、ウィンドウ内の現在のマウスの位置が分か
り、ウィンドウ上のオーバレイに使用されたメモリ内の
領域を消去し、そのマウス位置からどの行表現405が
選択されたかを判断し、その中で探索テキストとの整合
性のあるものがあるかどうかチェックし、あれば、テキ
ストをオーバレイの適正な位置に作成する。その結果表
示されたものが、図4の407に示されている。ここで
注意しなければならないのは、DoExpose625
とDoMouse627が、それぞれ、VzDrawi
ngAreaおよびVzMouseableで仮想機能
を実行することである。このような実行は、継承された
クラスが実際にオブジェクトの定義に使用できるように
ならないうちに行う必要がある。
The normal function performed for selecting a row highlighted by a reaction to a mouse selection is shown in FIG. 6C.
DoMouse shown in 627 of the above. With this function, the current mouse position in the window is known, the area in the memory used for the overlay on the window is erased, and the line position 405 selected from the mouse position is determined. Checks if there is any match with the search text, and if so, creates the text in the correct position in the overlay. The resulting display is shown at 407 in FIG. DoExpose625 should be noted here.
And DoMouse627 are respectively VzDraw
Execute virtual functions in ngArea and VzMouseable. This must be done before the inherited class can actually be used to define the object.

【0046】図6Dに機能main629が示されてい
るが、これを実行すると、ウィンドウ401が表示され
る。行631では、クラスVzApplication
のオブジェクトが構成されている。このクラスのオブジ
ェクトは、プログラムが実行されるウィンドウ環境を初
期化して、プログラムを実行する。次に、行633で
は、FloatDrawのオブジェクトdrawが構成
され、メインウィンドウを表す固有モードオブジェクト
にラップアラウンドされる。その後、634において、
機能ReadFile623が実行される。635で
は、カラーの割当てと定義を行う機能が実行される。こ
れらの機能は、VzColorManager321の
クラス定義の一部であり、VzColorManage
r321は、言うまでもなく、FloatDrawクラ
スの定義に用いられるVzDrawer323クラスに
よって継承されたものである。639のmainの最終
行により、マウス119の動作を待って応答するメイン
事象ループが開始する。
The function main 629 is shown in FIG. 6D, but when it is executed, the window 401 is displayed. In line 631, class VzApplication
Objects are configured. Objects of this class initialize the window environment in which the program executes and execute the program. Next, in line 633, the FloatDraw object draw is constructed and wrapped around to the native mode object representing the main window. Then at 634,
The function ReadFile 623 is executed. At 635, the function of assigning and defining colors is performed. These functions are part of the class definition of VzColorManager321, and VzColorManager
Needless to say, r321 is inherited by the VzDrawer323 class used for the definition of the FloatDraw class. The last line of the main at 639 initiates the main event loop that waits for and responds to the movement of mouse 119.

【0047】(ライブラリ301のクラスに関する詳細
な説明)次に、ライブラリ301のクラスについて詳細
に説明する。説明の順序は、クラス名のアルファベット
順となっている。
(Detailed Description of Class of Library 301) Next, the class of the library 301 will be described in detail. The order of explanation is alphabetical by class name.

【0048】クラス名 VzApplication−アプリケーションの詳細
を扱うクラス概要
Class Name VzApplication- Outline of Classes Handling Details of Application

【外1】 [Outside 1]

【0049】解説 VzAppStreamは、アプリケーションメッセー
ジの送信が可能なストリームである。可能な場合、これ
らのメッセージは、必要に応じて作成されるポップアッ
プダイアログボックスに表示される。ダイアログが生成
可能になる前にストリームに対してメッセージが送信さ
れると、メッセージは標準出力に送られる。ストリーム
vzoutは、情報を表示することを目的としており、
ストリームvzwarnは警告メッセージを、ストリー
ムvzerrはエラーメッセージを表示するために用い
られる。VzApplicationは、ウィンドウ環
境の初期化処理と前記プログラムのメイン事象ループの
実行を行うクラスである。このクラスにより、適正なソ
ースから資源定義(ユーザ優先権)を得ることができ、
カーソル制御や有効な広域値の記憶が行える。
Explanation VzAppStream is a stream capable of transmitting an application message. If possible, these messages will appear in pop-up dialog boxes that are created as needed. If a message is sent to the stream before the dialog can be created, the message is sent to standard output. The stream vzout is intended to display information,
Stream vzwarn is used to display warning messages and stream vzerr is used to display error messages. VzApplication is a class that performs initialization processing of the window environment and execution of the main event loop of the program. This class allows you to get a resource definition (user priority) from the right source,
Cursor control and effective global value storage can be performed.

【0050】VzApplication コンストラクタ VzApplication(const char*
progName,int*,char**,int
wid=400,int ht=300,char**
prefs=NULL) コンストラクタは、第1の引数としてプログラム名を採
用する。プログラム名は、メインウィンドウのタイトル
として、さらに、固有資源の指定に用いられる名前とし
て表示される。次に、&argcおよびargvが第2
および第3パラメタとして渡されなければならない。さ
らに固有の特定コマンド行の引数の処理が行われ、ar
gcとargvの組み合わせから取り除かれる。wid
およびht引数は、メインウィンドウの幅と高さの省略
値である。prefsは、現在、未使用となっている。
積み上げ(コンストラクション)時には、前記プログラ
ム用にメインウィンドウが生成され、以下に述べる公的
変数が初期化される。VzApplicationオブ
ジェクトを2つ以上生成すると、エラーが発生する。
VzApplication Constructor VzApplication (const char *
progName, int *, char **, int
wid = 400, int ht = 300, char **
prefs = NULL) The constructor takes the program name as the first argument. The program name is displayed as the title of the main window and also as the name used to specify the unique resource. Then & argc and argv are second
And must be passed as the third parameter. Further processing of specific command line arguments that are unique, ar
Removed from the combination of gc and argv. wid
The and ht arguments are default values for the width and height of the main window. prefs is currently unused.
At the time of stacking (construction), a main window is created for the program, and the public variables described below are initialized. An error occurs when two or more VzApplication objects are generated.

【0051】ユーティリティルーチン int Go() int Go()によりメイン事象ループが開始し、メ
イン()ルーチンの最終行と呼ばれる。プログラムはこ
の呼出しから復帰しない。 const char *GetResource(c
onst char*,const char* de
f=NULL) 資源名である第1パラメタと省略返却値である第2パラ
メタと共に上記ルーチンを呼び出す。資源データベース
を探索して、指定された資源の値(nameという名の
プログラム)を見つけ出し、その値が返される。値が見
つからない場合は、第2引数defが返される。 void BusyCursor(int stat
e) 真のstateでこのルーチンを呼び出すと、カーソル
が「使用中の」カーソル(通常、時計)に変わる。ま
た、偽のstateで呼び出すと、カーソルを空き状態
にする呼出し以上に使用中の状態にするBusyCur
sorへの呼出しが行われていない限り、通常のカーソ
ルの状態に戻る。
Utility routine int Go () int Go () starts the main event loop and is called the last line of the main () routine. The program does not return from this call. const char * GetResource (c
onst char *, const char * de
f = NULL) The above routine is called with the first parameter which is the resource name and the second parameter which is the omitted return value. The resource database is searched to find the value (program named name) of the specified resource, and that value is returned. If no value is found, the second argument def is returned. void BusyCursor (int stat
e) Calling this routine with true state changes the cursor to the "busy" cursor (usually the clock). Also, when called with a false state, the BusyCur puts the cursor in a more in-use state than the call that makes the cursor empty.
Unless there is a call to sor, it returns to the normal cursor state.

【0052】公的データメンバ const char* name コンストラクタに渡されるプログラム名。 const char* resourceName 資源名。通常、プログラム名と同じ。 const VzNativeContext& co
ntext アプリケーショングローバルを記憶するために固有シス
テムによって使用される「アプリケーションコンテキス
ト」。 const VzNativeObject& pri
meObject 積み上げ時に生成される最上位ウィンドウ。通常、他の
ビュウの場合に親として使用される。 const VzNativeDisplay& di
splay ウィンドウが固有システムによって表示される概念上の
領域。
Public data member const char * name The program name passed to the constructor. const char * resourceName Resource name. Usually the same as the program name. const VzNativeContext & co
The "application context" used by native systems to store the application global. const VzNativeObject & pri
meObject The top-level window created when stacking. Usually used as a parent for other views. const VzNativeDisplay & di
The conceptual area in which the spray window is displayed by the native system.

【0053】クラス名 VzBarLayout−バーでドローを行うための専
門化されたVzDrawingArea概要
Class Name VzBarLayout-A specialized VzDrawingArea overview for drawing on the bar.

【外2】 [Outside 2]

【0054】解説 VzBarLayout VzBarLayoutは、VzDrawingAre
aおよびVzMouseableの一種であり、バーの
行(横方向)または列(縦方向)を対象にマウスのドロ
ーおよびトラックを行う際に用いられる。レイアウトで
は、「強調表示された」バー(マウスの動きに従うも
の)として0または1のバーが保持される。また、レイ
アウトでは、しきい値が保持される。バーの高さ(行)
または幅(列)がこの値を下回った場合、そのレイアウ
トは、「縮小される」と言われる。その場合、強調表示
されたバーのみが普通サイズで描かれる。
Explanation VzBarLayout VzBarLayout is VzDrawingAre
It is a type of a and Vz Mouseable, and is used when the mouse is drawn and tracked in the row (horizontal direction) or column (vertical direction) of the bar. The layout keeps 0 or 1 bars as "highlighted" bars (following mouse movements). In addition, the layout holds the threshold value. Bar height (row)
Or, if the width (column) falls below this value, the layout is said to be "shrinked". In that case, only the highlighted bar is drawn in normal size.

【0055】Public Intrerface コンストラクタ VzBarLayout(char const*na
me,VzNativeObject,BzLayou
tOptions,VzMouseActions,i
nt bars,int threshold=0) 所定の名前と親を持つVzBarLayoutを生成す
る。VzLayoutOptions引数は、VzRo
wsとVzColumnsの両方が選択できる場合を除
いては、ビット方式または以下のオプションのいずれか
の方式が用いられる。 VzRows 行レイアウトを選択する。 VzColumns 列レイアウトを選択する。 ラベルは、現在強調表示されている項目に対して印字さ
れるだけである。マウスがレイアウトの幅の左、中央、
または右3分の1以内であるかどうかによって、それぞ
れ、左寄せ、センタリング、または右寄せとなる。 VzGaps バーの間にギャップを設定するよう要
求する。 ギャップのサイズは、バーのサイズの20%、すなわ
ち、5画素の狭いものである。レイアウトが縮小された
場合、ギャップは犠牲になる。 VzFoating 浮動小数点演算によりバーのサ
イズを計算する。 このことは、バーが常にレイアウトの全体のサイズを満
たしていることを意味しているが、すべてのバーやギャ
ップが正確に同じサイズで表示されるとは限らない。こ
のオプションが選択されない場合、すべてのバーおよび
ギャップは完全に同じサイズになるが、バーとギャップ
を足したサイズが均等にレイアウトサイズに分割されな
い場合は、レイアウトを完全に満たす状態にはならな
い。
Public Instructor Constructor VzBarLayout (char const * na
me, VzNativeObject, BzLayou
tOptions, VzMouseActions, i
nt bars, int threshold = 0) Generate VzBarLayout having a given name and parent. The VzLayoutOptions argument is VzRo
Unless either ws and VzColumns can be selected, the bit method or one of the following options is used. Select the VzRows row layout. Select the VzColumns column layout. The label is only printed for the currently highlighted item. The mouse is the width of the layout left, center,
Alternatively, left alignment, centering, or right alignment is performed depending on whether it is within 1/3 of the right. Requests to set a gap between VzGaps bars. The size of the gap is 20% of the size of the bar, ie 5 pixels narrow. The gap is sacrificed if the layout is reduced. VzFoating Floating point arithmetic calculates bar size. This means that the bars will always fill the entire size of the layout, but not all bars or gaps will appear exactly the same size. If this option is not selected, all bars and gaps will be exactly the same size, but if the size of the bars plus gaps is not evenly divided into layout sizes, the layout will not be completely filled.

【0056】VzContinuousHighlig
hting 通常、DoBar()は、各バーにつき一度だけ呼び出
されて強調表示や非強調表示を行う。例えば、いったん
マウスがバー上に移動して強調表示されると、マウスを
動かすことはできるが、引き続きDoBar()を呼び
出してそれ以上同じバーを強調表示しなおすことはな
い。このオプションが指定された場合、たとえバーが同
じであっても、DoBar()は、すべてのマウス動作
に対して呼び出される。このため、強調表示されたバー
の上をマウスが移動している間、「動画」を行うことが
できる。VzDragが選択されると、レイアウトで
は、ドラッグ操作のため、DoBar()によりマウス
が通過したすべてのバーが確実に報告される。VzDr
awがVzDownを暗に示すことから、DoBa
r()は、同じバーの両方の事象に対して呼び出される
ことは一切ない。VzLeaveが選択され、かつマウ
スがレイアウトの境界線を解除する場合に限り、このこ
とを示すために負のバー指標でDoBar()が呼び出
される。VzMouseActionsオプションは、
VzMouseableに渡される。
VzContinuousHighlig
hting Normally, DoBar () is called only once for each bar for highlighting and non-highlighting. For example, once the mouse is moved over a bar and highlighted, the mouse can be moved but does not subsequently call DoBar () to re-highlight the same bar. If this option is specified, DoBar () will be called for all mouse movements, even if the bars are the same. Therefore, the "moving image" can be performed while the mouse is moving on the highlighted bar. When VzDrag is selected, the layout ensures that DoBar () reports all bars that the mouse has passed because of the drag operation. VzDr
Since aw implies VzDown, DoBa
r () is never called for both events on the same bar. DoBar () is called with a negative bar index to indicate this only if VzLeave is selected and the mouse breaks the layout border. The VzMouseActions option
Passed to VzMouseable.

【0057】void DrawBar(int ba
no,int count=0) 指定されたバーの描き直しを要求する。count引数
は、これから出されるDrawBar()要求の数を示
す働きをする。 int HighlightBar() const 現在強調表示されているバーがあれば、その指標を返却
し、そのようなバーが全くなければ、負の指標を返す。 void HighlightBar(int bar
no) 予め強調表示されているバーがあれば、unhighl
ightのDrawMethodを有するDrawBa
r()を呼び出して強調表示を解除し、指標が[0,B
arCount()−1]の範囲内にある場合に限り、
highlightのDrawMethodを有するD
rawBar()を呼び出して、強調表示されたバーを
所定の指標に設定する。新たなバーが強調表示された場
合にのみ、強調表示を解除するためcount引数が1
に設定される。
Void DrawBar (int ba
r no, int count = 0) Requests redrawing of the specified bar. The count argument serves to indicate the number of DrawBar () requests that will be issued. int HighlightBar () const Returns the index of the currently highlighted bar, if any, and a negative index if there is no such bar. void HighlightBar (int bar
no) unhighl if there is a bar highlighted in advance
DrawBa with DrawMethod of light
Call r () to cancel the highlighting and set the index to [0, B
arCount ()-1] only if
D with a highLight DrawMethod
Call rawBar () to set the highlighted bar to a given index. The count argument is 1 to remove highlighting only when a new bar is highlighted.
Is set to

【0058】void HighlightBarAt
(int coord) バー指標にマップされた所定の座標を有するHighl
ightBar()を呼び出す。 int BarCount() const バー数を返す。 int BarCount(int new coun
t) バー数を所定の数に設定し、DoResize()を呼
出し、バーの前の数を返す。
Void HighlightBarAt
(Int coord) High with predetermined coordinates mapped to the bar index
Calls lightBar (). int BarCount () const Returns the number of bars. int BarCount (int new coun
t) Set the number of bars to a predetermined number, call DoResize () and return the previous number of bars.

【0059】サイズ int BarSize(int when high
lighted=0)const 単一のバーの高さ(行)または幅(列)を返す。現時点
でレイアウトが縮小されており、かつwhen hig
hlighted引数が非ゼロの場合、返される値は、
しきい値パラメタに等しい。 int LayoutSize() const レイアウト全体の高さ(行)または幅(列)を返す。
Size int BarSize (int when high
lightted = 0) const Returns the height (row) or width (column) of a single bar. The layout has been reduced at the moment, and when hig
If the hligted argument is non-zero, the value returned is
Equal to the threshold parameter. int LayoutSize () const Returns the height (row) or width (column) of the entire layout.

【0060】その他 int Threshold() const しきい値パラメタの現行の値を返す。 int Threshold(int new thr
eshold) しきい値パラメタを所定の値に設定し、ExposeM
e()を呼び出し、前のしきい値パラメタを返す。
Others int Threshold () const Returns the current value of the threshold parameter. int Threshold (int new thr
threshold) Set the threshold parameter to a predetermined value, then ExposeM
Invokes e () and returns the previous threshold parameter.

【0061】保護インタフェース ドローイング virtual void DrawBar(int
bar no,DrawMethod,int red
uced,int left,int top,int
width,int height,int cou
nt)=0 純粋仮想メンバ機能である。導出されたクラスはこの機
能に優先し、バーを描く。レイアウトでバーを描く必要
のあるDrawMethodだけでなく、所定のバー指
標も渡される。DrawMethodsは、以下の通り
である。 draw normal バーを普通に描く。 highlight バーを「強調表示」して描く。 unhighlight バーが「強調表示されてい
ない」状態に戻るように描き直す。 reduced引数が非ゼロの場合、レイアウトは現時
点で縮小されており、バーを普通サイズで描けるような
充分な空きがない。そこで、バーが描き込まれる方形が
渡される。DrawMethodがhighlight
であれば、方形のサイズは、常に普通サイズである。c
ount引数は、これから出されるDrawBar()
要求の数を示している。
Protected Interface Drawing virtual void DrawBar (int
bar no, DrawMethod, int red
used, int left, int top, int
width, int height, int cou
nt) = 0 This is a pure virtual member function. The derived class overrides this feature and draws the bar. A given bar index is passed as well as the DrawMethod that needs to draw the bar in the layout. DrawMethods are as follows. draw Draw a normal bar normally. Draw the highlight bar with "highlight". Redraw the unhighlight bar to return to the "not highlighted" state. If the reduced argument is non-zero, the layout is currently reduced and there is not enough room to draw the bar in its normal size. Then, the rectangle in which the bar is drawn is passed. DrawMethod is highlight
If so, the square size is always the normal size. c
The out argument is the DrawBar () that will be issued.
Shows the number of requests.

【0062】マウス virtual void DoBar(int ba
no,VzMouseActions,int b
utton,int count) この仮想機能は導出されたクラスによってオーバーライ
ドされ、省略時の動作は、何もしない状態である。呼び
出されるのは、所定のバー指標に対し、選択されたVz
MouseOptionsが発生している場合のみであ
る。VzMouseActions引数は、選択された
VzMouseOptionsの中で発生したものを渡
す。バー指標は、VzMouseActions引数が
VzLeaveである場合に限り、負となる。coun
t引数は、これから出されるDoBar()要求の数を
示している。 int MouseCoord() const マウスの直前の座標(行方向がy、列方向がx)を返
す。
Mouse virtual void DoBar (int ba
r no, VzMouseActions, int b
(utton, int count) This virtual function is overridden by the derived class and the default behavior is to do nothing. Called is the selected Vz for a given bar index
Only if MouseOptions are occurring. The VzMouseActions argument passes what has occurred in the selected VzMouseOptions. The bar index is negative only if the VzMouseActions argument is VzLeave. coun
The t argument indicates the number of DoBar () requests to be issued. int MouseCoord () const Returns the coordinates immediately before the mouse (y in the row direction and x in the column direction).

【0063】変換 int BarToCoord(int bar
o)const 所定のバー指標に対応する上部(行方向)または左(列
方向)座標を返却する。バー指標が[0,BarCou
nt()−1]の範囲内にあるか否かの確認は行われな
い。 int CoordToBar(int)const 所定のマウス座標(行方向がy、列方向がx)に対応す
るバー指標を返却する。その結果得られたバー指標が
[0,BarCount()−1]の範囲内にあるか否
かの確認は行われない。 void BarToRect(int bar
o,int when highlighted,in
t*left,int*top,int*width,
int*height)const;所定のバー指標に
用いる方形を計算して、返す。その結果得られたバー指
標が[0,BarCount()−1]の範囲内にある
か否かの確認は行われない。バーが現在縮小されてお
り、かつwhen highlighted引数が非ゼ
ロの場合は、高さ(行方向)または幅(列方向)がしき
い値パラメタに等しい。
Transform int BarToCoord (int bar n
o) const Returns the top (row direction) or left (column direction) coordinates corresponding to a given bar index. The bar index is [0, BarCou
nt ()-1] is not checked. int CoordToBar (int) const Returns a bar index corresponding to a predetermined mouse coordinate (y in the row direction and x in the column direction). No confirmation is made as to whether the resulting bar index is within the range [0, BarCount ()-1]. void BarToRect (int bar n
o, int when highlighted, in
t * left, int * top, int * width,
int * height) const; Calculates and returns a rectangle used for a predetermined bar index. No confirmation is made as to whether the resulting bar index is within the range [0, BarCount ()-1]. The bar is currently shrinking and when If the highlighted argument is non-zero, the height (row direction) or width (column direction) is equal to the threshold parameter.

【0064】オプション int BarsInRows() const バーが行方向にある場合に限り、非ゼロを返す。ファイル Vz/Vz.h 各種Vzタイプおよび一覧を含む。 Options int BarsInRows () const Returns non-zero only if the bar is in the row direction. File Vz / Vz. h Includes various Vz types and listings.

【0065】クラス名 VzBrowser−テキスト行をブラウジングするオ
ブジェクト。概要
Class Name VzBrowser-An object for browsing text lines. Overview

【外3】 [Outside 3]

【0066】解説 VzBrowser 公的インタフェース VzBrowserは、VzTextArea、VzM
ouseable、およびVzKeyDispatch
erの一種であり、テキスト行のブラウジングに用いら
れる。さらに、テキストは、両方向に探索することがで
き、各種行にマークが設定されている。また、すべての
行指向viおよびemacsユニックステキストエディ
タキーボードコマンドがサポートされている。vi方式
によるマーク行の設定とその位置への移動の他に、左マ
ージンにボタンをクリックすることによって、行にマー
クを付けることもできる。a〜zの範囲内にある小文字
がその位置に表示され、表示された文字によって行に印
が付けられる。左マージンで2回クリックすると、行の
マークは消える。行にマーク付けをする場合、選択され
る文字は、最初に利用可能な文字である。マーク付けさ
れた行に対しては、ボタン3によりポップアップされた
メニューから一致するテキストを選択することによっ
て、その位置までジャンプすることができる。
Explanation VzBrowser public interface VzBrowser is VzTextArea, VzM
houseable, and VzKeyDispatch
A type of er used for browsing text lines. In addition, the text can be searched in both directions and various lines are marked. Also, all line-oriented vi and emacs Unix text editor keyboard commands are supported. In addition to setting and moving the marked line by the vi method, the line can be marked by clicking the button in the left margin. A lowercase letter in the range az is displayed at that position, and the displayed letter marks the line. If you click twice in the left margin, the line mark disappears. When marking a line, the character selected is the first available character. For marked lines, you can jump to that position by selecting the matching text from the menu popped up by button 3.

【0067】コンストラクタとデストラクタ VzBrowser(char const*nam
e,VzNativeObject parent) 所定の名前と親固有オブジェクトを有するVzBrow
serを生成する。ブラウザの省略時サイズは、80列
x24行である。 VzBrowser() 特になし。テキスト char const*Text(char cons
t*,longchar count=LONG MA
X) char const*Text(Vector<ch
ar const*>const&) 上記機能は、VzTextArea::Text()の
呼出しの他に、テキストに付いているすべてのマークの
クリアも行う。
[0067]Constructors and destructors VzBrowser (char const * nam
e, VzNativeObject parent) VzBrown with the given name and parent specific object
generate ser. The default size of the browser is 80 columns.
x 24 rows. VzBrowser () None in particular.text char const * Text (char cons
t *, longchar count = LONG MA
X) char const * Text (Vector <ch
ar const *> const &) The above function is a function of VzTextArea :: Text ().
In addition to calling all of the marks on the text
Also clear.

【0068】テキスト位置 VzBrowser& ShowLine(int i
ne no,int always center=
0) VzTextArea::ShowLine()の呼出
しの他に、上記機能は、ブラウザが子となっているシェ
ルがあれば、そのポップアップを行い、予め強調表示さ
れている行の強調表示を解除してテキストの行を強調表
示する。保護インタフェース void Dokey(VzKeyActions,V
zNativeEvent const*) VzKeyDispatcher::DoKey()を
オーバーライドして、viおよびemacsキーボード
コマンドを実行する。この機能は、次に発生したクラス
によってオーバーライドされる。ファイル Vz/Vz.h 各種Vzのタイプおよび一覧を含
む。
Text position VzBrowser & ShowLine (int i
ne no, int ways center =
0) In addition to calling VzTextArea :: ShowLine (), the above function pops up the shell of any shell that the browser is a child of, and cancels the highlighting of the line that is highlighted in advance. Highlight the line. Protection Interface void Dokey (VzKeyActions, V
zNativeEvent const *) Overrides VzKeyDispatcher :: DoKey () to execute vi and emacs keyboard commands. This functionality will be overridden by the next occurring class. File Vz / Vz. h Includes various Vz types and listings.

【0069】クラス名 VzColorManager−カラーの生成および指
定の管理。概要
Class Name VzColorManager-Management of color generation and specification. Overview

【外4】 [Outside 4]

【0070】解説 VzColorManager VzColorManagerは、VzFunctio
nalityの一種であり、カラーおよびカラーの範囲
を定義し、かつオーバレイ層の生成と使用を可能にす
る。ユーザが定義しなければならないこのクラスでの仮
想機能は一切ない。このクラスの目的は、他のクラスが
前記クラスを継承し、カラーの管理ルーチンへのアクセ
スを行えるようにすることである。コンストラクタ VzColorManager() 上記コンストラクタは、私的データ構造のみを初期化す
る。
Description VzColorManager VzColorManager is VzFunctionio
A type of nality that defines colors and ranges of colors and allows the creation and use of overlay layers. There are no virtual functions in this class that the user has to define. The purpose of this class is to allow other classes to inherit from it and have access to color management routines. Constructor VzColorManager () The above constructor initializes only private data structures.

【0071】カラー割当てメソッド static int AllocColors(in
t count,int*first,int ove
rlay=0) 上記メソッドにより、本プログラムによってのみ使用さ
れる一連のカラーの割当てを行う(カラーは、他のプロ
グラムと共用されない)。このルーチンは、count
カラーに対するスペースの割当てを試みる。また、カラ
ーの指標は連続しており、*firstで最初の指標が
返される。overlayが真であれば、オーバレイ層
が割り当てられる。このメソッドでは、割り当てられた
実際のカラーの数が返される。
Color Assignment Method static int AllocColors (in
t count, int * first, int ove
rlay = 0) The above method allocates a series of colors used only by this program (colors are not shared with other programs). This routine is a count
Attempt to allocate space for color. Also, the color indices are continuous, and the first index is returned in * first. If the overlay is true, the overlay layer is allocated. This method returns the number of actual colors assigned.

【0072】カラー定義メソッド static void MakeColorScal
e(VzColorOptions,int star
t,int count,doubledouble) 上記メソッドにより、VzColorOptionsパ
ラメタによって定義されたタイプのカラー数値範囲が定
義され、範囲はstartから開始して、サイズcou
ntの範囲となる。最後の2つのパラメタにより、スケ
ールのサブセットを定義できる。 static void MapColor(VzCo
lor,int r,int g,int b,int
gEq=−1) static void MapColor(VzCo
lor,char const*name,int g
Eq=−1) 上記メソッドにより、カラーマップの中の単色の割当て
を行う。
Color Definition Method static void MakeColorScal
e (VzColorOptions, int star
t, int count, doubledouble) The above method defines a color number range of the type defined by the VzColorOptions parameter, the range starting from start and size cou.
It becomes the range of nt. The last two parameters define a subset of the scale. static void MapColor (VzCo
lor, int r, int g, int b, int
gEq = -1) static void MapColor (VzCo
lor, char const * name, int g
Eq = -1) The above method allocates a single color in the color map.

【0073】共用されるカラーの要求 static VzColor RequestCol
or(int r,int g,int b,int
gEq=−1) static VzColor RequestCol
or(char const*name,int gE
q=−1) 上記メソッドにより、引数によって示された共用される
カラーの指標が返される。また、そのようなカラーがな
い場合は、生成される。
Shared Color Request static VzColor RequestCol
or (int r, int g, int b, int
gEq = -1) static VzColor RequestCol
or (char const * name, int gE
q = -1) The above method returns the index of the shared color indicated by the argument. Also, if there is no such color, it is generated.

【0074】オーバレイメソッド static void MapOverlay(Vz
Color,int r,int g,int b,i
nt gEq=−1) static void MapOverlay(Vz
Color,charconst*name,int
gEq=−1) static void MapAllOverlay
s(int r,intg,int b,int gE
q=−1) static void MapAllOverlay
s(char const*name,int gEq
=−1) 通常のカラーの上にオーバレイカラーが配色される場
合、上記メソッドにより、その結果できるカラーを定義
する。最後の2つのメソッドは、全オーバレイに対し、
1色を定義する(通常の状態)場合に用いられる。
Overlay method static void MapOverlay (Vz
Color, int r, int g, int b, i
nt gEq = -1) static void MapOverlay (Vz
Color, charconst * name, int
gEq = -1) static void MapAllOverlay
s (int r, intg, int b, int gE
q = -1) static void MapAllOverlay
s (char const * name, int gEq
= -1) If an overlay color is placed on top of a regular color, the above method defines the resulting color. The last two methods are for all overlays
Used when defining one color (normal state).

【0075】カラー調整メソッド static void MapOffColor
(VzColor,intg,int b,int g
Eq=−1) static void MapOffColor(c
har const*name,int gEq=−
1) static VzColor ColorOn(Vz
Color,int on) static VzColor ColorOn(Vz
Color) 上記メソッドにより、「オフ」の色が何色か定義し、か
つ各色を「オン」(通常の状態)または「オフ」(一時
的にオフの色に変わる)にする。
Color adjustment method static void MapOffColor
(VzColor, intg, int b, int g
Eq = -1) static void MapOffColor (c
har const * name, int gEq =-
1) static VzColor ColorOn (Vz
Color, int on) static Vz Color ColorOn (Vz
Color) The above method defines how many "off" colors, and turns each color "on" (normal state) or "off" (temporarily changes to off color).

【0076】カラー設定メソッド VzColor BackColor() 現行の背景色VzColor BackColor
(VzNativeGC,VzColor)を返す。 VzColor ForeColor(VzNati
veGC,VzColor) 前景および背景色を設定する。
Color setting method VzColor BackColor () Current background color VzColor BackColor
Returns (VzNativeGC, VzColor). VzColor ForeColor (VzNati
veGC, VzColor) Set foreground and background colors.

【0077】その他のメソッド static double ColorInters
ity(VzColor) グレイスケールの色彩強度を返す。 static u long ColorIndex
(VzColor) カラーの固有色指標を返す。 u long OverlayMask() con
st オーバレイ面に対する固有マスクを返す。 VzNativeColorMap ColorMa
p() 固有カラーマップを返す。 static void InDisplay(Vz
NativeDisplay);
Other Methods static double ColorInters
ity (VzColor) Returns the gray scale color intensity. static u long ColorIndex
(VzColor) Returns the unique color index of the color. u long OverlayMask () con
st Returns the unique mask for the overlay surface. VzNativeColorMap ColorMa
p () Returns the unique colormap. static void InDisplay (Vz
NativeDisplay);

【0078】各カラーが定義される固有ディスプレイを
返す。ファイル Vz/Vz.h 各種Vzタイプおよび一覧を含む。参照 VzFunctionality(3) VzObject(3) VzDrawer(3)
Returns the unique display in which each color is defined. File Vz / Vz. h Includes various Vz types and listings. Reference VzFunctionality (3) VzObject (3) VzDrawer (3)

【0079】クラス名 VzColorSelector−選択的にカラーをコ
ード化するオブジェクト。概要
Class Name VzColorSelector-An object that selectively encodes colors. Overview

【外5】 [Outside 5]

【0080】解説 VzColorSelector VzColorSelectorは、VzBarLay
outおよびVzDrawerの一種であり、カラーの
コード化と選択を行う。カラーの範囲は、バー数が均等
になるように分割される。バーの状態は、「オン」また
は「オフ」である。ボタン1および2は、それぞれバー
を「オン」または「オフ」にする。ボタン3は、メニュ
ーをポップアップする。公的インタフェース コンストラクタ VzColorSelector(char cons
t*name,VzNativeObject par
ent,VzColorSelectorOption
s,int bars) 所定の名前と親を有するVzColorSelecto
rを生成する。VzColorSelectorOpt
ionsは、ポップアップメニューにメニュー項目「p
roportional」を付け加えるVzPropo
rtionalの追加オプションを有するVzLayo
utOptionsのスーパーセットである。さらに、
VzRainbow、VzEqualized、または
VzGrayのVzColorManagerオプショ
ンのうち1つが渡される。この処理が実行されると、カ
ラー選択子は、所定のオプションを渡して、VzCol
orManager::AllocColors()を
実行する。残りのVzLayoutOptionsは、
VzBarLayoutに渡される。
Explanation VzColorSelector VzColorSelector is VzBarLay
It is a kind of out and VzDrawer, and performs color coding and selection. The color range is divided so that the number of bars is even. The state of the bar is "on" or "off". Buttons 1 and 2 turn the bar "on" or "off", respectively. Button 3 pops up a menu. Public interface constructor VzColorSelector (char cons
t * name, VzNativeObject par
ent, VzColorSelectorOption
s, int bars) VzColorSelecto with the given name and parent
produces r. VzColorSelectorOpt
ions uses the pop-up menu with the menu item "p
"Proportional" added VzPropo
VzLayo with additional options for partial
It is a superset of utOptions. further,
One of the VzColorManager options of VzRainbow, VzEqualized, or VzGray is passed. When this process is executed, the color selector passes VzCol by passing a predetermined option.
orManager :: AllocColors () is executed. The remaining VzLayoutOptions are
Passed to VzBarLayout.

【0081】バー状態 int BarOn(int bar no)cons
t 所定のバー指標のカラーがオンとなっている場合に限
り、非ゼロを返す。所定の指標を有するバーの状態を強
制的にon引数の値にする(非ゼロは、「オン」を意味
する)。また、これから出されるBarOn()への呼
出しの数が渡されなければならない。bar no引数
に対して特殊値VzAllBarsを渡し、一度に全バ
ーを示すことができる。
Bar state int BarOn (int bar no) cons
t Returns non-zero only if the given bar index color is on. Forces the state of the bar with the given index to the value of the on argument (non-zero means "on"). Also, the number of calls to BarOn () that are about to be issued must be passed. bar You can pass the special value VzAllBars for the no argument to indicate all bars at once.

【0082】カラーの管理 void BarColors(int count,
VzColor first) カラー選択子が使用するカラーを設定する。ここで設定
されるカラーは、VzColorManager::A
llocColors()によりシステムカラーマップ
に予め割り当てられている。引数firstは、次にく
る範囲の最初のカラーを指定する。この機能は、いつで
も呼出し可能である。 VzColor BarColor(int bar
no)const 所定のバー指標のカラーを返す。 VzColor ColorBase() const カラー撰択子が使用しているベースカラーを返す。 int ColorCount() const カラー撰択子が使用しているカラーの数を返す。
Color Management void BarColors (int count,
VzColor first) Sets the color used by the color selector. The color set here is VzColorManager :: A
Pre-assigned to the system colormap by llocColors (). The argument first specifies the first color of the next range. This function can be called at any time. VzColor BarColor (int bar
no) const Returns the color of the given bar index. VzColor ColorBase () const Returns the base color used by the color selector. int ColorCount () const Returns the number of colors used by the color selector.

【0083】バー数 int BarCount(int new coun
t) VzBarLayout::BarCount()の呼
出しに加え、新規バーのすべてが「オン」になるように
カラー選択子のリセットも行う。保護インタフェース データ構造 struct BarInfoStruct { char const *label double percentage; }; 彩色されたバーの描き方についての情報を保持するため
の構造。メンバlabelは、バーに用いられるラベル
をコード化し、percentageは、バーの彩色さ
れた部分の描かれる割合をコード化する。このメンバ
は、[0.0,1.0]の範囲内にある。
Number of bars int BarCount (int new coun
t) In addition to calling VzBarLayout :: BarCount (), it also resets the color selector so that all new bars are "on". Protected Interface Data Structure struct BarInfoStruct {char const * label double percentage;}; Structure to hold information about how to draw the colored bar. The member label codes the label used for the bar and the percentage codes the drawn percentage of the colored part of the bar. This member is in the range [0.0,1.0].

【0084】コールバック機能 virtual void BarInfo(int
bar no,BarInfoStruct*)con
st=0 純粋仮想メンバ機能である。描く必要のある各バーに対
して呼び出される。バー指標およびBarInfoSt
ructへのポインタが渡される。labelに対する
省略値がないことから、省略値の設定が必要である。p
ercentageの省略値は、1.0である。オーバ
ーライドされた場合は、導出されたクラスが、ポインタ
で示されたBarInfoStructの値を変更し、
バーの描き方の制御が行われる。 virtual void BarChanged(i
nt bar no,int on,int coun
t=0) バーの状態がオンからオフまたはオフからオンに変わる
場合は必ず呼び出される。バー指標および新規の状態が
渡される。さらに、これから出されるBarChang
ed()への呼出しの数も渡される。省略時の動作は、
何もしない状態である。ファイル Vz/Vz.h 各種Vzのタイプおよび一覧を含
む。
Callback function virtual void BarInfo (int
bar no, BarInfoStruct *) con
st = 0 Pure virtual member function. Called for each bar that needs to be drawn. Bar Index and BarInfoSt
A pointer to ruct is passed. Since there is no default value for label, it is necessary to set the default value. p
The default value of error is 1.0. If overridden, the derived class modifies the value of BarInfoStruct pointed to by the pointer,
Controls how to draw the bar. virtual void BarChanged (i
nt bar no, int on, int coun
t = 0) Called whenever the state of the bar changes from on to off or off to on. The bar index and new state are passed. In addition, BarChang to be released
The number of calls to ed () is also passed. The default behavior is
It is in a state where it does nothing. File Vz / Vz. h Includes various Vz types and listings.

【0085】クラス名 VzDrawer−一般的な図形作成能力を付け加え
る。概要
Class Name VzDrawer-Adds general graphics creation capabilities. Overview

【外6】 [Outside 6]

【0086】解説 VzDrawer VzDrawerは、VzColorManagerの
一種であり、したがって、VzFunctionali
tyの一種でもあり、単純な一般的図形コマンドの選択
を行う。このクラスからの継承によって、GL、X、ウ
ィンドウズまたはポストスクリプトの出力を行う図形ル
ーチンへのアクセスが可能になり、座標システムの選択
が行える。コンストラクタ VzDrawer(EngineType what=
DynamicEngine) 上記コンストラクタは、パラメタとして描く図形環境の
タイプを取得する。省略時メソッドは、積み上げに関し
て最も適切なエンジンを動的に選択する。ポストスクリプトのサポート void Postscript() static voidFinishedPS() Postscript()は、ファイルのセットアップ
を行い、準備されたファイルにオブジェクトのポストス
クリプトを書き込む。任意のオブジェクトがFinis
hedPS()メソッドを呼び出してファイルを閉じる
まで、その後Postscript()が呼び出される
と、同じファイルに追加的に書き込まれる。
Explanation VzDrawer VzDrawer is a kind of VzColorManager, and therefore VzFunctional
It is also a type of ty and selects simple general graphic commands. Inheriting from this class allows access to graphics routines that output GL, X, Windows or Postscript, and allows selection of coordinate systems. Constructor VzDrawer (EngineType what =
DynamicEngine) The above constructor acquires the type of graphic environment to be drawn as a parameter. The default method dynamically chooses the most appropriate engine for stacking. Postscript Support void Postscript () static voidFinishedPS () Postscript () performs file setup and writes object Postscript to a prepared file. Any object is Finis
It will additionally write to the same file until Postscript () is called until the file is closed by calling the hedPS () method.

【0087】バッファリング出力 inline void BeginBuffer(i
nt x=0,int=y=0,int width=
0,int height=0 inline void EndBuffer() 上記の呼出しにより図形コードを一括すると、ディスプ
レイのダブルバッファリングが可能になる。座標システムメソッド inline void UserCoord(dou
ble xmin,double xmax,doub
le ymin,double ymax) 物理的ディスプレイ領域が引数によって定義された浮動
小数点仮想座標システムに写像される座標システムをセ
ットアップする。 inline int XUtoS(double
x) inline int YUtoS(double
y) inline int XscaleUtoS(dou
ble x) inline int YscaleUtoS(dou
ble y) inline double XStoU(long
x) inline double YStoU(long
y) inline double XscaleStoU
(long x) inline double YscaleStoU
(long y) 上記メソッドにより、座標システム間の変換が可能にな
る。
Buffering output inline void BeginBuffer (i
nt x = 0, int = y = 0, int width =
0, int height = 0 inline void EndBuffer () When the graphic codes are bundled by the above call, double buffering of the display becomes possible. Coordinate system method inline void UserCoord (dou
ble xmin, double xmax, doub
le ymin, double ymax) Set up a coordinate system in which the physical display area is mapped to the floating point virtual coordinate system defined by the arguments. inline int XUtoS (double
x) inline int YUtoS (double
y) inline int XscaleUtoS (dou
ble x) inline int YscaleUtoS (dou
bly) inline double XStoU (long
x) inline double YStoU (long
y) inline double XscaleStoU
(Long x) inline double YscaleStoU
(Long y) The above method allows conversion between coordinate systems.

【0088】一般的なメソッド inline void Clear(VzColor
c=−99) ディスプレイ領域を背景色にクリアする。 inline void ForeColor(VzC
olor c) inline void BackColor(VzC
olor c) 前景および背景色をセットアップする。 inline VzColor BackColo
r() 背景色を返す。 inline void LineWidth(int
wid) 後続のコマンド用に行の幅をセットアップする。 inline int SetFont(char c
onst*charset) 今後のテキスト表示用にフォントをセットアップする。
General Method inline void Clear (VzColor
c = -99) Clear the display area to the background color. inline void ForeColor (VzC
color c) inline void BackColor (VzC
color c) Set up foreground and background colors. inline VzColor BackColo
r () Returns the background color. inline void LineWidth (int
wid) Set up line width for subsequent commands. inline int SetFont (char c
onst * charset) Set up the font for future text display.

【0089】フォント情報メソッド inline int MeasureString
(const char*txt) 文字列の幅を画素で測定する。 inline int FontHeight()co
nst inline int FontHeight(int
*ascent,int *descent)con
st 所定フォントの特性を返す。
Font information method inline int MeasureString
(Const char * txt) Measures the width of the character string in pixels. inline int FontHeight () co
nst inline int FontHeight (int
* Ascent, int * descent) con
st Returns the characteristics of the given font.

【0090】その他のルーチン Frame Xxxxx(int...) Frame Xxxxx(int...) Fill Xxxxx(double...]) Fill Xxxxx(double...]) 残りのメソッドは、現行オブジェクトに図形を描く際に
用いられる。描くのは、フレームまたは中身が充填され
た形であり、画素ベースあるいは浮動小数点式座標シス
テムに基づいている。このため、各図形コマンドには、
通常、4つのルーチンがある。ファイル Vz/Vz.h 各種Vzタイプと一覧を含む。 abort(3) VzObject(3) VzFunctionality(3) VzColorManager(3)
Other Routines Frame Xxxxx (int ...) Frame Xxxxx (int ...) Fill Xxxxx (double ...)) Fill Xxxxx (double ...)) The remaining methods draw a shape on the current object. Used when drawing. The drawing is in a frame or filled form and is based on a pixel-based or floating point coordinate system. Therefore, each graphic command
Usually, there are four routines. File Vz / Vz. h Includes various Vz types and listings. abort (3) VzObject (3) VzFunctionality (3) VzColorManager (3)

【0091】クラス名 VzDrawingArea−図形の描き込みを行うオ
ブジェクト。概要
Class name VzDrawingArea-An object for drawing a figure. Overview

【外7】 [Outside 7]

【0092】解説 VzDrawingArea VzDrawingAreaは、VzObjectの一
種であり、図形の描き込みを行う。図形は、エクスポー
ズ事象によって視野に「さらされて」いる領域の結果と
して発生し、また、そのように発生しなければならな
い。コンストラクタ VzDrawingArea(char const*
name,VzNativeObject paren
t,int collect exposures=
1) 所定の名前と親固有オブジェクトを持つVzDrawi
ngAreaを生成する。引数collect exp
osuresは、VzDrawingAreaが複数の
エクスポーズ事象を収集し、収集した事象をすべて包含
した最小の方形にまとめるかどうか判断する。この機能
は、ほぼ常に必要とされている。 VzDrawingArea(VzNativeObj
ect self,int collect expo
sures=1) すでに積み上げられた固有オブジェクトにVzrawi
ngAreaをラップアラウンドする代替コンストラク
タ。このコンストラクタは、異なる種類の固有オブジェ
クトにVzDrawingAreaをラップアラウンド
するための手段である。Vzライブラリのシリコングラ
フィックス社によるインプリメンテーションにおいて、
本コンストラクタは、VzGLDrawingArea
クラスによって用いられる。
Explanation VzDrawingArea VzDrawingArea is a kind of VzObject and draws a figure. The graphic results and must occur as a result of the area that is "exposed" to the field of view by the expose event. Constructor VzDrawingArea (char const *
name, VzNativeObject paren
t, int collect exposures =
1) VzDraw with a given name and parent specific object
Generate ngArea. Argument collect exp
Osures determines whether the VzDrawingArea collects multiple exposed events and groups them into a minimal rectangle that includes all the collected events. This feature is almost always needed. VzDrawingArea (VzNativeObj
ect self, int collect expo
sures = 1) Vzrawi is added to the unique objects already stacked.
An alternative constructor that wraps around ngArea. This constructor is a means for wrapping a VzDrawingArea into different types of unique objects. In the implementation of Vz library by Silicon Graphics,
This constructor is VzGLDDrawingArea
Used by the class.

【0093】エクスポーズおよびリサイズ事象 virtual void DoExpose(int
left,int top,int width,i
nt height)=0 純粋仮想メンバ機能。VzDrawingAreaの領
域が描き直される必要のある場合に呼び出される。渡さ
れた方形が、その領域のフレームになる。方形の境界線
の外側に描いても、特に害はない。 virtual void DoResize() VzDrawingAreaのサイズ(幅、高さ、ある
いはその両方)が変わるときは、必ず呼び出される。省
略時の動作としては、何もしない。一般に、VzDra
wingAreaのサイズと共に図形の尺度が変わるこ
とが予想される場合は、オーバーライドされてExpo
seMe()が呼び出される。
Expose and Resize Events virtual void DoExpose (int
left, int top, int width, i
nt height) = 0 Pure virtual member function. Called when the area of VzDrawingArea needs to be redrawn. The passed rectangle becomes the frame of the area. There is no particular harm to drawing outside the boundaries of the rectangle. virtual void DoResize () Invoked whenever the size (width, height, or both) of the VzDrawingArea changes. The default action is to do nothing. Generally, VzDra
If it is expected that the scale of the shape will change with the size of the wingArea, it will be overridden by Expo.
seMe () is called.

【0094】クリアとエクスポーズ VzDrawingArea& ClearMe(in
t left,inttop,int width,i
nt height) VzDrawingArea& ClearMe() VzDrawingAreaの一部または全体を背景色
にクリアする。 VzDrawingArea& ExposeMe(i
nt left,inttop,int width,
int height) VzDrawingArea& ExposeMe() VzDrawingAreaの一部または全体を対象に
エクスポーズ事象を生成する。これは、VzDrawi
ngAreaの一部または全部を強制的に描き直す方法
である。エクスポーズ事象を受け取らずにVzDraw
ingAreaに直接描き込んではいけない。その他 int CollectExposures() co
nst int CollectExposures(int
collect) それぞれ、エクスポーズ−収集機能の状態を取得し、設
定する。ファイル Vz/Vz.h 各種Vzタイプおよび一覧を含む。
Clear and Expose VzDrawingArea & ClearMe (in
t left, int top, int width, i
nt height) VzDrawingArea & ClearMe () Clears a part or the whole of VzDrawingArea to the background color. VzDrawingArea & ExposeMe (i
nt left, inttop, int width,
int height) VzDrawingArea & ExposeMe () Generates an exposure event for a part or all of VzDrawingArea. This is VzDrawi
This is a method of forcibly redrawing part or all of ngArea. VzDraw without receiving expose event
Do not draw directly into ingArea. Others int CollectExposures () co
nst int CollectExposures (int
collect) Acquire and set the state of the expose-collection function, respectively. File Vz / Vz. h Includes various Vz types and listings.

【0095】クラス名 VzFunctionality−機能性を対象とする
ベースクラス。概要
Class Name VzFunctionality-A base class for functionality. Overview

【外8】 [Outside 8]

【0096】解説 VzFunctionality VzFunctionalityは、他のすべてのfu
nctionality(機能性)クラスに対するベー
スクラスである。すべての導出されたクラスは、仮想継
承を用いなければならない。機能性とは、ユーザの「対
話技法」であり、その最も良い例が、マウスとキーボー
ドである。例えば、「特殊なVzObjectは、マウ
スによって処理可能であるという機能性を有している」
と言うことができる。データメンバ VzObject*const possessor 1つまたはそれ以上の機能性を有するVzObject
を示す一定ポインタ。コンストラクタ VzFunctionality(VzObject
*) 機能性の保有者を所定のVzObjectに初期化す
る。一般に、渡される引数は、ジス(this)であ
る。仮想継承により、最も導出されたクラスは、常にこ
のコンストラクタを呼び出す必要がある。ユーザが呼出
しを忘れた場合は、翻訳時エラーとなる。
Explanation VzFunctionality VzFunctionality is all other fu.
It is a base class for the nctality (functionality) class. All derived classes must use virtual inheritance. Functionality is the user's "dialogue technique," the best of which is the mouse and keyboard. For example, "a special VzObject has the functionality of being processable by the mouse."
Can be said. Data Member VzObject * constpostor VzObject with one or more functionalities
A constant pointer to. Constructor VzFunctionality (VzObject
*) Initialize the functionality owner to a given VzObject. In general, the argument passed is this. Due to virtual inheritance, most derived classes should always call this constructor. If the user forgets to call, a translation error will occur.

【0097】その他 void assert object() cons
t プロセッサの固有オブジェクトが存在することを確認す
るためのチェックを行う。存在しない場合は、エラーメ
ッセージにより表明し、abort()を呼び出す。こ
の状態は、ユーザがVzObjectまたはそこから導
出されたクラスから取得する前にVzFunction
alityまたはそこから導出された別の機能性クラス
からクラスを取得する場合に、発生する。C++では、
複継承の導出順序が重大になる場合がある。これは、そ
のうちの一つである。ただし、この操作の誤りは、翻訳
時に検出できない。したがって、プロセッサの固有オブ
ジェクトでコンストラクタに入れる必要のある場合に
は、assert object()の呼出しが、導出
された機能性クラスに任されている。ファイル Vz/Vz.h 各種Vzタイプおよび一覧を含む。
Others void assert object () cons
t Check to make sure that the processor's native object exists. If not, assert with an error message and call abort (). This state is a VzFunction before the user gets it from VzObject or a class derived from it.
Occurs when retrieving a class from the affinity or another functionality class derived from it. In C ++,
The order of deriving multiple inheritance can be significant. This is one of them. However, this operation error cannot be detected during translation. Therefore, if you need to put it in the constructor in a processor-specific object, then assert The call to object () is left to the derived functionality class. File Vz / Vz. h Includes various Vz types and listings.

【0098】クラス名 VzGC−図形コンテキスト機能性。概要 Class Name VzGC-Graphic Context Functionality. Overview

【外9】 [Outside 9]

【0099】解説 VzGC VzGCは、VzFunctionalityの一種で
あり、固有図形コンテキストをユーザ導出クラスに提供
する。ただし、VzGCは、独立型オブジェクトにもな
り得る。このクラスを使用した場合の利点は、固有図形
コンテキストについて適正な生成と破棄を確実に行うこ
とである。データメンバ VzNativeGC gc VzNativeGCである。導出されたクラスがあれ
ば、このデータメンバを継承する。コンストラクタとデストラクタ VzGC() 省略時のコンストラクタである。VzGCとVzNat
iveGCを生成する。 VzGC(VzNativeGC const&) VzGCを生成し、所定のVzNativeGCにラッ
プアラウンドさせる。 VzGC(VzObject*) VzGCとVzNativeGCを生成し、所定のVz
Objectに添付する。これは、独立型VzGCを取
得するために用いられるコンストラクタである。 VzGC() VzGCとVzNativeGCを両方とも破壊する。
Description VzGC VzGC is a type of VzFunctionality and provides a unique graphic context to a user-derived class. However, VzGC can also be a standalone object. The advantage of using this class is to ensure proper creation and destruction of eigengraphic contexts. Data member VzNativeGC gc VzNativeGC. If there is a derived class, inherit this data member. Constructor and Destructor VzGC () This is the default constructor. VzGC and VzNat
Generate iveGC. VzGC (VzNativeGC const &) Generates VzGC and causes it to wrap around to a predetermined VzNativeGC. VzGC (VzObject *) Generates VzGC and VzNativeGC, and sets a predetermined Vz
Attach to Object. This is the constructor used to get the standalone VzGC. VzGC () destroys both VzGC and VzNativeGC.

【0100】代入 VzGC& operator=(VzNativeG
C const&) 現行のVzNativeGCを破壊し、所定のVzNa
tiveGCにラップアラウンドさせる。変換 operator VzNativeGC() VzNativeGCへの変換。これにより、VzNa
tiveGCを要するいずれの場所にもVzGCを用い
ることができる。ファイル Vz/Vz.h 各種Vzタイプおよび一覧を含む。
Substitution VzGC & operator = (VzNativeG
C const &) Destroys the current VzNativeGC,
Wrap around in the GC. Conversion operator VzNativeGC () Conversion to VzNativeGC. As a result, VzNa
VzGC can be used anywhere where the tiveGC is required. File Vz / Vz. h Includes various Vz types and listings.

【0101】クラス名 VzGLDrawingArea−図形描き込みを行う
シリコングラフィックスのオブジェクト。概要
Class Name VzGLDDrawingArea-Silicon graphics object for drawing graphics. Overview

【外10】 [Outside 10]

【0102】解説 VzGLDrawingArea VzGLDrawingAreaは、Vzライブラリに
関するシリコングラフィックス社のインプリメンテーシ
ョン用に専門化されたVzDrawingAreaの一
種である。コンストラクタ VzGLDrawingArea(char cons
t*name,VzNativeObject par
ent,GLXconfig const*=0,in
t collect exposures=1) 所定の名前と親固有オブジェクトを持つVzGLDra
wingAreaを生成する。GLXconfig c
onst*引数は、シリコングラフィックスの固有図形
領域を構成する際に用いられる。省略値は、以下の通り
である。 {GLX NORMAL、GLX DOUBLE、TR
UE}、{GLX NORMAL、GLX COLOR
MAP、TRUE}、{GLX NORMAL、GLX
ZSIZE、GLX NOCONFIG}、{0、
0、0} 最初の行は、ダブルバッファリングの制御に用いられ
る。ただし、シリコングラフィックス社のワークステー
ションのビットプレーンがわずかしかない場合は、ダブ
ルバッファリングはオフにされる。ファイル Vz/Vz.h 各種Vzタイプおよび一覧を含む。参照 VzDrawingArea(3)
Description VzGLDDrawingArea VzGLDDrawingArea is a type of VzDrawingArea specialized for Silicon Graphics' implementation of the Vz library. Constructor VzGLDDrawingArea (char cons
t * name, VzNativeObject par
ent, GLXconfig const * = 0, in
t collect exposures = 1) VzGLDra with a given name and parent-specific object
Generate wingArea. GLXconfig c
The onst * argument is used when constructing a unique graphics area of silicon graphics. The default values are as follows. {GLX NORMAL, GLX DOUBLE, TR
UE}, {GLX NORMAL, GLX COLOR
MAP, TRUE}, {GLX NORMAL, GLX
ZSIZE, GLX NOCONFIG}, {0,
0,0} The first row is used to control double buffering. However, if the Silicon Graphics workstation has very few bitplanes, double buffering is turned off. File Vz / Vz. h Includes various Vz types and listings. Reference VzDrawingArea (3)

【0103】クラス名 VzKeyDispatcher−キーストロークを動
作にマップする機能性クラス。概要
Class Name VzKeyDispatcher-A functional class that maps keystrokes to actions. Overview

【外11】 [Outside 11]

【0104】解説 VzKeyDispatcher VzKeyDispatcherは、VzKeyabl
eの一種であり、より高度なキーボード操作を行うため
に用いられる。特に、このクラスは、キーをメンバ機能
にマップすることができる。キーが押下された場合は、
必ず、マップされたメンバ機能が呼び出される。導出さ
れたクラスは、テンプレートパラメタderivedに
対して自分の名前を渡す。ローカルタイプ typedef void(Derived::*Ke
yHandler)() KeyHandlerタイプは、「引数やリターンタイ
プを全く持たない導出クラスのメンバ機能を示すポイン
タ」である。この導出クラスのメンバ機能は、マップさ
れたキーを含むシグネチャを有していなければならな
い。コンストラクタ VzKeyDispatcher(KeyHandle
r default handler) VzKeyDispatcherを生成する。まず初め
に、すべてのキーを所定のKeyHandlerにマッ
プする。
Explanation VzKeyDispatcher VzKeyDispatcher is VzKeyabl
It is a type of e and is used to perform more advanced keyboard operations. In particular, this class can map keys to member functions. If a key is pressed,
Be sure to call the mapped member function. The derived class passes its name to the template parameter derived. Local type typedef void (Derived :: * Ke
yHandler) () The KeyHandler type is a "pointer indicating the member function of the derived class that has no argument or return type". The member functions of this derived class must have a signature that contains the mapped key. Constructor VzKeyDispatcher (KeyHandle
r default handler) VzKeyDispatcher is generated. First, map all keys to a given KeyHandler.

【0105】キーマッピング void MapKey(u int ch,KeyH
andler,intignore case=0) void MapKey(u int from,u
int to,KeyHandler,int ign
ore case=0) void MapKey(char const*ke
ys,KeyHandler,int ignore
case=0 単一文字ch、文字範囲[from,to]、または文
字セットkeysのいずれかを所定のKeyHandl
erにマップする。ignore caseが非ゼロで
あれば、大文字と小文字の両方が同時にマップされる。 void PushKeyMap(KeyHandle
r default handler) 現行のキーマッピングセットを内部スタックに押し込
み、そのキーマッピングセットを所定のマッピングセッ
トにする。この操作は、「モードの」キーボードインタ
ラクションを含む場合に、有効である。 void PopKeyMap() 現行のキーマッピングセットをポップオフして廃棄し、
内部スタックから古いセットを復元する。スタックが空
の場合、実行時エラーになる。ファイル Vz/Vz.h 各種Vzタイプおよび一覧を含む。参照 VzKeable(3)
Key Mapping void MapKey (u int ch, KeyH
andler, design case = 0) void MapKey (u int from, u
int to, KeyHandler, int ign
ore case = 0) void MapKey (char const * ke
ys, KeyHandler, int ignore
case = 0 A single character ch, a character range [from, to], or a character set keys is set to a predetermined KeyHandl.
map to er. Ignore If case is non-zero, both uppercase and lowercase letters are mapped at the same time. void PushKeyMap (KeyHandle)
r default Handler) Pushes the current key mapping set into the internal stack and makes that key mapping set into the given mapping set. This operation is useful if it involves "modal" keyboard interactions. void PopKeyMap () Pop off and discard the current key mapping set,
Restore old set from internal stack. If the stack is empty, a run-time error will occur. File Vz / Vz. h Includes various Vz types and listings. Reference VzKeable (3)

【0106】クラス名 VzKeyable−キーボードでの対話に用いる機能
性クラス。概要
Class Name VzKeyable-The functionality class used for keyboard interaction. Overview

【外12】 [Outside 12]

【0107】解説 VzKeyable VzKeyableは、VzFunctionalit
yの一種であり、キーボードによる対話を行う。コンストラクタとデストラクタ VzKeyable(VzKeyActions=Vz
Down) 所定のキー動作をDoKey()により報告するよう要
求する。ビット方式による論理和のVzキー動作は、以
下の通りである。 VzDown 任意のキーを押下する。 VzUp 任意のキーを解除する。 VzAll 上記の全動作。 VzKeyable() 特になし。キー状態 int Key() const 押下または解除された直前(現在ではない)のキーを返
す。ASCIIコードまたは上記の特殊一覧のいずれか
一つが返される。
Explanation VzKeyable VzKeyable is VzFunctionalit
It is a kind of y and interacts with the keyboard. Constructor and Destructor VzKeyable (VzKeyActions = Vz
Down) Requests that certain key actions be reported by DoKey (). The Vz key operation of the logical sum according to the bit system is as follows. VzDown Press any key. VzUp Release any key. VzAll All the above operations. VzKeyable () Nothing in particular. Key state int Key () const Returns the key immediately before (not currently) pressed or released. Either the ASCII code or one of the special lists above is returned.

【0108】コールバック機能 virtual void DoKey(VzKeyA
ctions,VzNativeEvent cons
t*) 選択されたVzKeyActionsのいずれか一つが
発生した場合に呼び出される。省略時動作は、何もしな
い状態である。実際のVzKeyActionが渡され
る。さらに、トリガするVzNativeEventを
示すポインタも渡される。その他 VzKeyActions KeyActions()
const VzKeyActions KeyActions(V
zKeyActions) 前の設定をオーバーライドして、現行のVzKeyAc
tionsを取得し設定する。ファイル Vz/Vz.h 各種Vzタイプおよび一覧を含む。参照 VzFunctionality(3)
Callback function virtual void DoKey (VzKeyA
actions, VzNativeEvent cons
t *) Called when any one of the selected VzKeyActions occurs. The default action is to do nothing. The actual VzKeyAction is passed. Furthermore, a pointer indicating the VzNativeEvent to trigger is also passed. Others VzKeyActions KeyActions ()
const VzKeyActions KeyActions (V
zKeyActions) Overrides previous setting and replaces current VzKeyAc
Gets and sets the "tions". File Vz / Vz. h Includes various Vz types and listings. Reference VzFunctionality (3)

【0109】クラス名 VzMouseable−マウスによる対話に用いる機
能性クラス。概要
Class Name VzMouseable-Functional class used for mouse interaction. Overview

【外13】 [Outside 13]

【0110】解説 VzMouseable VzMouseableは、VzFunctional
ityの一種であり、マウスによる対話を行う。コンストラクタとデストラクタ VzMouseable(VzMouseAction
s) 所定のマウス動作をDoMouse()により報告する
よう要求する。ビット方式による論理和のVzマウス動
作は、以下の通りである。 VzMotion すべてのマウス動作。 VzDown 任意のボタンを押下する。 VzDrag 任意のボタンの押下によるすべてのマ
ウス動作。 VzUp 任意のボタンを上げる。 VzAll 上記の全動作。 VzLeave マウスがプロセッサVzObjec
tの境界線の範囲内にあり、かつ放置されてからずっと
そのような状態である場合に、最後の時点を報告する。 VzHints 小さな動きを逐一報告しないことに
より、動作やドラッグ事象のスピードアップを図る。
Explanation VzMouseable VzMouseable is VzFunctional.
It is a type of "ity" and has a dialogue with a mouse. Constructor and Destructor VzMouseable (VzMouseAction
s) Request that certain mouse movements be reported by DoMouse (). The bitwise OR Vz mouse operation is as follows. VzMotion All mouse movements. VzDown Press any button. VzDrag All mouse movements by pressing any button. VzUp Raise any button. VzAll All the above operations. VzLeave mouse is a processor VzObjec
The last time point is reported if it is within the boundary of t and has been in such a state since being left unattended. VzHints Speed up actions and drag events by not reporting small movements one by one.

【0111】VzDownとVzUpの両方が選択され
た場合、マウスのダウン/アップが対で要求されている
とみなされる。この場合、ダウン事象に対し、マッチン
グアップ事象が確実に報告される。この操作は、ダウン
事象のマウスポインタを「つかむ」ことによって行わ
れ、これにより、マウスボタンが解除されるまで、ポイ
ンタは占有オブジェクトの境界線内にとどまることにな
る。VzDownとVzUpのいずれか一つが選択され
た場合は、特殊なマウス事象に関する処理は特に発生し
ない。 VzMouseable() 特になし。
If both VzDown and VzUp are selected, mouse down / up is considered to be required in pairs. In this case, a matching up event is reliably reported for a down event. This is done by "grabbing" the mouse pointer for the down event, which will keep the pointer within the bounds of the occupied object until the mouse button is released. If any one of VzDown and VzUp is selected, no special mouse event processing is performed. VzMouseable () Nothing in particular.

【0112】マウス状態 int MouseX() const int MouseY() const int Mouse(int button) con
st マウスの直前(現在ではない)位置またはボタンの状態
を返す。ボタンの番号は、[1,5]の範囲内である。
非ゼロは、「ダウン」を意味する。 void UpdateMouse() マウス状態を更新し、呼出し時点の状態を反映させる。
Mouse state int MouseX () const int MouseY () const int Mouse (int button) con
st Returns the previous (non-current) position of the mouse or the state of the button. The button numbers are in the range [1,5].
Non-zero means "down". void UpdateMouse () Updates the mouse state to reflect the state at the time of calling.

【0113】コールバック機能 virtual void DoMouse(VzMo
useActions,int button,VzN
ativeEvent const*) 選択されたVzMouseActionsのいずれか一
つが発生した場合に呼び出される。省略時動作は、何も
しない状態である。実際のVzMouseAction
とボタンが渡される。VzActionがボタンを必要
としない場合、button引数はゼロである。さら
に、トリガするVzNativeEventを示すポイ
ンタも渡される。少なくともVzライブラリに関するX
−Windows/OSF−Motifのインプリメン
テーションにおいて、ボタン3によりメニューをポップ
アップする場合に、この機能が必要である。その他 VzMouseActions MouseActio
ns() const VzMouseActions MouseActio
ns(VzMouseActions) 前の設定をオーバーライドして、現行のVzMouse
Actionsを確保し設定する。ファイル Vz/Vz.h 各種Vzタイプおよび一覧を含む。参照 VzFunctionality(3)
Callback function virtual void DoMouse (VzMo
useActions, int button, VzN
activeEvent const *) Called when any one of the selected VzMouseActions occurs. The default action is to do nothing. Actual VzMouseAction
And the button is passed. If VzAction does not require a button, the buttonton argument is zero. Furthermore, a pointer indicating the VzNativeEvent to trigger is also passed. At least X for Vz library
-In a Windows / OSF-Motif implementation, this function is needed when popping up the menu with button 3. Others VzMouseActions MouseActio
ns () const VzMouseActions MouseActio
ns (VzMouseActions) Overrides previous setting to replace current VzMouse
Secure and set Actions. File Vz / Vz. h Includes various Vz types and listings. Reference VzFunctionality (3)

【0114】クラス名 VzNative*−基本図形システムの固有タイプ。概要 Class name VzNative * -unique type of basic graphics system. Overview

【外14】 [Outside 14]

【0115】解説 このヘッダは、若干の固有基本図形システムのタイプに
対しVzと同等の機能を定義する。Vzライブラリの残
りの部分およびユーザから基本タイプを「隠す」ために
用いられる。タイプ VzNativeColorMap 固有カラーマップ。 VzNativeContext 固有「アプリケーションコンテキスト」。 VzNativeDisplay 固有「ディスプレイ」。このタイプは、物理モニタに対
応している。 VzNativeEvent 固有事象、すなわち、「アウトゼア」からの何らかの事
象の発生に関連した情報を保持するデータ構造。 VzNativeGC 固有「図形コンテキスト」、すなわち、図形のカラーお
よび線幅等の図形環境設定を保持するデータ構造。 VzNativeObject 固有図形オブジェクト。例えば、Vzライブラリに関す
るX−Windowsのインプリメンテーションでは、
Widgetタイプにマップされる。 VzNativeWindow 固有「ウィンドウ」。これは、オブジェクト自体を描き
込むディスプレイ上の方形に対応する固有オブジェクト
である。例えば、Vzライブラリに関するX−Wind
owsのインプリメンテーションでは、Windowタ
イプにマップされる。
Description This header defines Vz-equivalent functionality for some native primitive graphics system types. Used to "hide" the base type from the rest of the Vz library and the user. Type VzNativeColorMap native colormap. VzNativeContext Specific "application context". VzNativeDisplay Unique "display". This type corresponds to a physical monitor. VzNativeEvent A data structure that holds specific events, ie, information related to the occurrence of some event from "Out There". VzNativeGC A unique "graphic context", ie, a data structure that holds graphic preferences such as color and line width of a graphic. VzNativeObject Unique graphic object. For example, in the X-Windows implementation of the Vz library,
Maps to the Widget type. VzNativeWindow specific "window". This is a unique object that corresponds to a rectangle on the display that draws the object itself. For example, X-Wind related to Vz library
In the ows implementation, it is mapped to the Window type.

【0116】クラス名 VzObject−基本図形システムのオブジェクトラ
ッパ。概要
Class Name VzObject-Object Wrapper for Basic Graphics System. Overview

【外15】 [Outside 15]

【0117】解説 VzObject VzObjectは、固有ウィンドウ環境図形オブジェ
クトにC++オブジェクトをラップアラウンドするのに
用いられる。公的インタフェース データメンバ VzNativeObject const obje
ct VzObjectがラップアラウンドされる固有オブジ
ェクト。値が一定であることから、公的に使用可能であ
る。
Description VzObject VzObject is used to wrap a C ++ object into a native window environment graphic object. Public interface data member VzNativeObject const object
ct The unique object that the VzObject is wrapped around. Since the value is constant, it can be used publicly.

【0118】動的割当て void*operator new(size t,
int delete with window) VzObjectのインスタンスまたはそこから導出さ
れたクラスが、配置構文形式により引数VzDelet
eWithWindowを用いてこの演算子newによ
って動的に割り当てられ、さらに、その固有ウィンドウ
およびオブジェクトが破棄される場合、ラップアラウン
ドされたVzObjectも破棄される。このことは、
外部で保持されているこのVzObjectを示すポイ
ンタがいつでも無効になり得ることを意味しており、し
たがって、そのようなポインタは使用すべきではない。
それよりも、導出されたクラスは、登録者や加入者のよ
うにある一定のクラスからも導出されるべきである。し
たがって、破棄されたVzObjectについては、登
録の取消しが適正に行われる。 void*operator new(size t) 通常の動的割当て。この演算子newによりVzObj
ectのインスタンスまたはそこから導出されたクラス
を動的に生成する場合、固有ウィンドウおよびオブジェ
クトが破棄されても、そのインスタンスは破棄されな
い。代わりに、MyWindow()は、その時点から
「ウィンドウなし」を返す。 void operator delete(void
*) この演算子は、コンパイラの警告を取り除くためにのみ
提供されており、単にグローバル演算子deleteを
呼び出すだけである。
[0118]Dynamic allocation void * operator new (size t,
int delete with window) VzObject instance or derived from it
The created class has an argument VzDelete in the layout syntax format
By using this operator new with eWithWindow
Dynamically assigned by the
And a wraparound if the object is destroyed
The added VzObject is also discarded. This is
Poi showing this VzObject that is held externally
Means that your computer can become invalid at any time,
Therefore, such pointers should not be used.
Rather, the derived classes are registrants and subscribers.
It should also be derived from a certain class. Shi
Therefore, for the discarded VzObject,
The recording is canceled properly. void * operator new (size t) Normal dynamic allocation. By this operator new, VzObj
an instance of ect or a class derived from it
When dynamically generating a unique window and object
Object is destroyed, its instance is not destroyed.
Yes. Instead, MyWindow ()
Returns "no window". void operator delete (void
*) This operator is only to get rid of the compiler warning
Is provided and simply the global operator delete
Just call.

【0119】ディスプレイとウィンドウ VzNativeDisplay MyDisplay
() const VzNativeWindow MyWindow()
const それぞれ、ディスプレイまたはウィンドウを返す。この
ウィンドウは必ずしも有効であるとは限らない。つま
り、VzWindowCreate()とOnWind
owCreate()が呼び出される前は有効ではな
い。
Display and Window VzNativeDisplay MyDisplay
() Const VzNativeWindow MyWindow ()
const returns a display or window, respectively. This window is not always valid. That is, VzWindowCreate () and OnWind
It is not valid before owCreate () is called.

【0120】C++オブジェクトの取得 static VzObject*This(VzNa
tiveObject) 所定の固有オブジェクトにラップアラウンドされるVz
Objectを示すポインタを返す。固有オブジェクト
は、ラップアラウンドされる有効なVzObjectを
有していなければならず、そうでない場合は、結果が未
定義となる。
Acquisition of C ++ object static VzObject * This (VzNa
(TiveObject) Vz wrapped around to a specific unique object
Returns a pointer to Object. The unique object must have a valid VzObject to wrap around, otherwise the result will be undefined.

【0121】幅と高さ virtual int Width() const virtual VzObject& Width(i
nt) virtual int Height() cons
t virtual VzObject& Height
(int) それぞれ、幅と高さを取得し設定する。上記機能が仮想
であるという事実が否定され、今後、非仮想ベースにす
ることができる。
Width and Height virtual int Width () const virtual VzObject & Width (i
nt) virtual int Height () cons
t virtual VzObject & Height
(Int) Acquire and set the width and height, respectively. The fact that the above functions are virtual has been denied and can be made non-virtual in the future.

【0122】祖先 VzNativeObject Parent() c
onst 固有の親のオブジェクトを返す。 static VzNativeObject Top
(VzNativeObject) 所定の固有オブジェクトに関する固有の最上位オブジェ
クトを返す。 VzNativeObject Top() cons
t 本VzObjectの固有最上位オブジェクトを返す。
Ancestor VzNativeObject Parent () c
onst Returns the unique parent object. static VzNativeObject Top
(VzNativeObject) Returns the unique top-level object for a given unique object. VzNativeObject Top () cons
t Returns the unique top-level object of this VzObject.

【0123】保護インタフェース コンストラクタとデストラクタ VzObject(VzNativeObject) VzObjectのインスタンスを生成し、所定の固有
オブジェクトにラップアランウドする。 virtual VzObject();VzObje
ctのインスタンスを破棄する。このインスタンスがラ
ップアラウンドされている固有オブジェクトも破棄す
る。
Protected Interface Constructor and Destructor VzObject (VzNativeObject) Creates an instance of VzObject and wraps it to a given native object. virtual VzObject (); VzObje
Discard the instance of ct. The private object that this instance is wrapped around is also destroyed.

【0124】ウィンドウの生成と破棄 virtual void OnWindowCrea
te() VzObjectのインスタンスの積み上げよりも常に
後にくる固有ウィンドウが生成される場合に呼び出され
る。省略時の動作は、何もしない状態である。 virtual void OnWindowDest
roy() 固有ウィンドウがソフトウェアユーザによって破棄され
る場合、すなわち、ユーザがウィンドウマネジャによっ
てある一定のウィンドウを破棄する場合にのみ呼び出さ
れる。VzObjectがプログラマによって、すなわ
ち、delete演算子によって破棄される場合は、プ
ログラマは破棄されることを知っているために、呼び出
されない。省略時の動作は、何もしない状態である。 virtual void VzWindowCrea
te() virtual void VzWindowDest
roy() 両機能は、Vzライブラリの使用に対してのみ用いら
れ、エンドユーザによってオーバーライドされてはなら
ない。これらの機能は、OnWindowCreate
()とOnWindowDestroy()と全く同様
に振る舞うが、後者は前者よりも前に呼び出される。
Creating and destroying a window virtual void OnWindowCrea
te () Called when a unique window is created that always comes after the stack of instances of VzObject. The default action is to do nothing. virtual void OnWindowDest
roy () Called only when the native window is destroyed by the software user, that is, when the user destroys certain windows by the window manager. If the VzObject is destroyed by the programmer, i.e. by the delete operator, it is not called because the programmer knows it will be destroyed. The default action is to do nothing. virtual void VzWindowCrea
te () virtual void VzWindowDest
Both roy () functions are used only for Vz library usage and should not be overridden by the end user. These functions are the OnWindowCreate
Behaves exactly like () and OnWindowsDestroy (), but the latter is called before the former.

【0125】マクロ #define VzCAST(T,native)
((T*)VzObject::This(nativ
e)) VzObject::This()が固有オブジェクト
であれば、タイプTへのポインタに入れる。ファイル Vz/Vz.h 各種Vzタイプおよび一覧を含む。参照 Registry(3),Publication
(3)
Macro #define VzCAST (T, native)
((T *) VzObject :: This (nativ
e)) If VzObject :: This () is a unique object, put it in the pointer to type T. File Vz / Vz. h Includes various Vz types and listings. Reference Registry (3), Publication
(3)

【0126】クラス名 VzTextArea−テキストの各行を描くオブジェ
クト。概要
Class Name VzTextArea-An object that draws each line of text. Overview

【外16】 [Outside 16]

【0127】解説 VzTextArea 公的インタフェース VzTextAreaは、VzDrawingArea
およびVzDrawerの一種であり、任意にスクロー
ルするテキストの各行を描く場合に用いられる。テキス
トの行は、彩色や強調表示が可能であり、また、異なる
フォントで個々に独立して描くこともできる。行の高さ
は、最大フォントの高さである。行番号は、ゼロから開
始する。省略時の行の外観は、白色、強調表示なし、n
on12フォントである。
Explanation VzTextArea Public interface VzTextArea is VzDrawingArea.
And VzDrawer, which is used to draw each line of text that scrolls arbitrarily. Lines of text can be colored and highlighted, and can also be drawn individually in different fonts. The line height is the maximum font height. Line numbers start from zero. The default line appearance is white, no highlighting, n
on12 font.

【0128】コンストラクタとデストラクタ VzTextArea(char const*nam
e,VzNativeObject parent,i
nt scrollable,int left mar
gin=0) 所定の名前と親固有オブジェクトを有するVzText
Areaを生成する。scrollable引数は、V
zTextAreaが右側にスクロールバーがあるかど
うか判断するのに用いられる。left margin
引数は、図形領域の左端から各行が何画素インデントさ
れているか判断する。 VzTextArea() 特になし。
[0128]Constructors and destructors VzTextArea (char const * nam
e, VzNativeObject parent, i
nt scrollable, int left mar
gin = 0) VzText with given name and parent unique object
Generate Area. The scrollable argument is V
zTextArea has scroll bar on right side
It is used to judge whether or not. left margin
The argument is the number of pixels indented on each line from the left edge of the graphic area.
To determine if VzTextArea () None in particular.

【0129】フォント void MountFont(int slot,c
har const*font name) VzTextAreaには、フォントの「マウント」が
可能な16のフォント「スロット」がある。スロット番
号は、[0,15]である。最初の時点では、すべての
スロットにnon12フォントがマウントされている。
MountFont()が呼び出されると、最大のライ
ンハイトとラインディセントを計算し直して、Expo
seMe()を呼び出す。
Font void MountFont (int slot, c
har const * font name) VzTextArea has 16 font "slots" that can "mount" fonts. The slot number is [0,15]. Initially, all slots have non12 fonts mounted.
When MountFont () is called, the maximum line height and line descent are recalculated, and Expo
Call seMe ().

【0130】テキスト char const*Text(char cons
t*,long char count=LONG
AX) テキストのドローを設定する。テキストの次のブロック
の開始を示すポインタが渡される。空文字が現われるか
または所定数の文字になるまで、テキストは増大するも
のとみなされる。内部的には、テキストの前記ブロック
は、複数行に分割され、各行末は復帰改行が採られる。 char const*Text(Vector<ch
ar const*>const&) テキストのドローを設定する。引数により各行の開始を
示すポインタが渡される。
Text char const * Text (char cons
t *, long char count = LONG M
AX) Set the text draw. A pointer to the start of the next block of text is passed. The text is considered to grow until an empty character appears or a predetermined number of characters. Internally, the block of text is split into multiple lines with a carriage return at the end of each line. char const * Text (Vector <ch
ar const *> const &) Set the text draw. A pointer that indicates the start of each line is passed as an argument.

【0131】行アクセス char const*TextAt(int lin
no)const テキストの指定行を示すポインタを返す。テキスト位置 VzTextArea& Topline(int l
ine no) 底部に「空白」行を残さない限り、所定の行を開始行に
する。その場合、開始行の番号は、LineCount
()−LinesShowing()となる。 VzTextArea& ShowLine(int
line no,always center=0) 指定行が表示されている現行の範囲内にない場合、すな
わち、always center引数が非ゼロの場合、
その行は、図形領域内でセンタリングされる。範囲内に
あれば、ShowLine()は、何もしない。
[0131]Line access char const * TextAt (int lin
e no) const Returns a pointer to the specified line of text.Text position VzTextArea & Topline (int l
ine no) Start with a given line unless you leave a "blank" line at the bottom
I do. In that case, the start line number is LineCount.
() -LinesShowing (). VzTextArea & ShowLine (int
line no, alwayss center = 0) If the specified line is not within the current range being displayed,
Wow, alwayss If the center argument is non-zero,
The row is centered within the graphics area. Within range
If so, ShowLine () does nothing.

【0132】強調表示 VzTextArea& HighlightLine
(int line no,int yes) 指定行の強調表示を引数yesの値に設定する(非ゼロ
は、強調表示されていることを意味する)。その他 int LineCount()const 行数を返す。 int LineHeight(int*ascent
=0,int*descent=0)const VzDrawer::FontHeight()x1.
2を返す。引数は、FontHeight()と同じで
ある。 int LinesShowing(int part
ial=0)const 図形領域内で完全にまたは部分的に(引数による)表示
されている行数を返す。 int TopLine() const int BottomLine() const それぞれ、図形領域の開始行または最終行の行番号を返
す。 int IsLineShowing(int lin
no)const 指定行が表示されている行の範囲内にあれば、非ゼロを
返す。
[0132] highlighted VzTextArea & HighlightLine
(Int line no, int yes) Set the highlighting of the specified line to the value of the argument yes (non-zero means highlighting). Others int LineCount () const Returns the number of lines. int LineHeight (int * ascent
= 0, int * descent = 0) const VzDrawer :: FontHeight () x1.
Returns 2. The argument is the same as FontHeight (). int LinesShowing (int part
ial = 0) const Returns the number of lines that are completely or partially (depending on the argument) displayed in the graphic area. int TopLine () const int BottomLine () const Returns the line number of the start line or the end line of the graphic area, respectively. int IsLineShowing (int lin
e no) const If the specified line is within the range of the displayed line, non-zero is returned.

【0133】保護インタフェース データ構造 struct LineInfoStruct { VzColor color; short font; }; テキストの1行をドローする方法についての情報を保持
する構造。colorメンバは、行の色をコード化し、
fontは、フォントスロットをコード化する。 virtual void LineInfo(int
line no,LineInfoStruct*)
const ドローしなければならない各行に対して呼び出される。
行番号およびLineInfoStructを示すポイ
ンタが渡される。colorの省略値は白色であり、f
ontは0である。オーバーライドされた場合は、導出
されたクラスが、テキスト行をどのようにドローするか
制御するポインタで示されたLienInfoStru
ctの値を変更する。省略時の動作としては、何もしな
い。
Protected Interface Data Structure struct LineInfoStruct {VzColor color; short font;}; A structure that holds information about how to draw a line of text. The color member encodes the row color,
font encodes a font slot. virtual void LineInfo (int
line no, LineInfoStruct *)
Const Called for each row that must be drawn.
A pointer indicating the line number and LineInfoStruct is passed. The default value of color is white, and f
ont is 0. If overridden, the derived class will have a LienInfoStrru pointed to by a pointer that controls how the text line is drawn.
Change the value of ct. The default action is to do nothing.

【0134】データメンバ VzColor const black,white 黒と白のVzColors。VzTextAreaIterator VzTextAreaIteratorは、Vecto
rConstIterator<char const
*>の一種であり、VzTextAreaに関して、テ
キスト行を繰り返す。コンストラクタ VzTextAreaIterator(VzText
Area const&,int first ind
ex=0,int reverse=0) 0番目からまたは指定方向の所定の要素から繰り返しを
開始する所定のVzTextAreaについてVzTe
xtAreaIteratorを生成する。ファイル Vz/Vz.h 各種Vzタイプおよび一覧を含む。参照 Vector(3)、VzDrawer(3)、VzD
rawingArea(3)
Data member VzColor const black, white VzColors of black and white. VzTextAreaIterator VzTextAreaIterator is Vecto
rConstIterator <charconst
It is a type of *> and repeats a text line for VzTextArea. Constructor VzTextAreaIterator (VzText
Area const &, int first ind
ex = 0, int reverse = 0) VzTe for a given VzTextArea starting from 0th or a given element in a specified direction
Generate xtAreaIterator. File Vz / Vz. h Includes various Vz types and listings. Reference Vector (3), VzDrawer (3), VzD
drawingArea (3)

【0135】結論 以上述べた実施例は、オブジェクト指向プログラミング
システムを使用するプログラミングに関する当業者に対
して開示されたものであり、クラスがある一定の実体ク
ラスを継承するオブジェクトによって表現される実体を
指定する実体クラスと、クラスが実体クラスを継承する
オブジェクトによって継承されることができ、かつこの
ようなオブジェクトに有効な機能性を指定する機能性ク
ラスとにクラスが分割されているクラスライブラリがど
のように構成できるのか述べている。好ましい具体例で
は、実体クラスのいずれかを継承する任意のオブジェク
トが、機能性クラスのいずれかを継承している。狭く定
義付けされた機能性クラスと実体クラスを有するクラス
ライブラリがあることにより、プログラマは、そのクラ
スライブラリを用いて、オブジェクトによって表された
実体の特性を正確に定義し、かつそのオブジェクトが必
要とする機能性のみを有するオブジェクトを提供するこ
とができる。従来技術によるクラスライブラリを使用せ
ずにこのようなクラスライブラリを用いることにより、
プログラマは、より迅速にプログラムを開発することが
できるようになる。さらに、これによって出来上がった
プログラムは、手近な問題に対してもうまく適応し、従
来技術のクラスライブラリによって開発されたプログラ
ムに比べて小型でしかも高速である。
Conclusion The embodiments described above are disclosed to those skilled in the art of programming using an object-oriented programming system, and a class specifies an entity represented by an object that inherits a certain entity class. What is a class library in which a class is divided into a subclass and a functionality class that can be inherited by an object that inherits from the subclass and that specifies the useful functionality for such an object. States that it can be configured. In the preferred embodiment, any object that inherits any of the entity classes inherits any of the functionality classes. By having a class library with narrowly defined functional and entity classes, programmers can use that class library to accurately define the characteristics of the entity represented by the object, and the object needs it. It is possible to provide an object having only the functionality to perform. By using such a class library without using the prior art class library,
Programmers will be able to develop programs more quickly. Furthermore, the resulting program adapts well to the problems at hand and is smaller and faster than programs developed with prior art class libraries.

【0136】また、上記実施例は、データビジュアライ
ゼーションプログラムを対象にしたクラスのVzライブ
ラリにおいて前記原理がどのように具体化されている
か、さらに、Vzライブラリがどのように用いられて図
形プログラム例でオブジェクトクラスを指定しているか
という点についても詳細に示している。このライブラリ
において、実体クラスが領域クラス内で具体的に示され
ており、この領域クラスは、ディスプレイ上の領域を表
すオブジェクトによって継承されている。機能性クラス
は、特定の入力に反応できる領域クラスによって定義さ
れたオブジェクトを提供する。Vzライブラリにおいて
特に利点のある機能性クラスには、マウスからの入力に
反応するスクリーンの領域を作成するVzMousea
bleクラス、キーボードからの入力に反応する領域を
作成するVzKeyable、さらに、ドローイングコ
マンドに反応する領域を作成するVzDrawerクラ
スがある。
Further, the above-mentioned embodiment is a graphic program example in which the above-mentioned principle is embodied in the Vz library of the class targeted for the data visualization program and how the Vz library is used. It also shows in detail whether an object class is specified. In this library, the entity class is concretely shown in the area class, and this area class is inherited by the object representing the area on the display. The functionality class provides the objects defined by the domain class that can respond to specific inputs. A particularly advantageous functionality class in the Vz library is VzMousea, which creates areas of the screen that respond to mouse input.
There are a ble class, a VzKeyable that creates an area that responds to input from the keyboard, and a VzDrawer class that creates an area that responds to a drawing command.

【0137】VzライブラリはC++言語でインプリメ
ントされ、かつデータビジュアライゼーションプログラ
ムで使用することを目的としているが、前記ライブラリ
で具体的に示されている原理がデータビジュアライゼー
ション向けの他のライブラリでも使用でき、かつこのよ
うな原理を実施しているライブラリがC++以外の言語
でも実施可能なことは、以上述べたことから明らかであ
ろう。特に、本発明の原理は、コンパイルを採用してい
るプログラミングシステムだけでなく、インタプリテー
ションによるプログラミングシステムにも適用可能であ
る。さらに、当業者は、Vzライブラリに他のクラスも
追加することができ、また、既存のクラスについて上記
以外のインプリメンテーションも可能であることが、す
ぐに理解できるであろう。以上のことから、前記実施例
は、限定的なものではなく、いずれの場合も具体例とし
て例示されたものとして理解すべきであり、本発明の範
囲は、上記実施例によって定められるものではなく、特
許法によって容認されている特許請求の範囲がおよぶ領
域にしたがって解釈された添付クレームによって判断さ
れるものとする。
Although the Vz library is implemented in the C ++ language and is intended for use in data visualization programs, the principles embodied in the library can also be used in other libraries for data visualization. And, it will be apparent from the above that a library implementing such a principle can be implemented in a language other than C ++. In particular, the principles of the present invention are applicable not only to programming systems that employ compilation, but also to programming systems with interpretation. Moreover, one of ordinary skill in the art will readily appreciate that other classes may be added to the Vz library and other implementations of existing classes are possible. From the above, the above embodiments are not limited, and should be understood as being illustrated as specific examples in any case, and the scope of the present invention is not defined by the above embodiments. It shall be determined by the appended claims, which are construed according to the scope of the claims as permitted by the Patents Act.

【図面の簡単な説明】[Brief description of drawings]

【図1】オブジェクト指向プログラミングシステムのブ
ロック図である。
FIG. 1 is a block diagram of an object oriented programming system.

【図2】本発明の技術により作成されたライブラリがオ
ブジェクトクラスの指定にどのように用いられるかを示
したブロック図である。
FIG. 2 is a block diagram showing how a library created by the technique of the present invention is used to specify an object class.

【図3】Vzライブラリのクラスと相互の関係を示す図
である。
FIG. 3 is a diagram showing a mutual relationship with classes of a Vz library.

【図4】ライブラリを用いて作成されたプログラム例に
よって作成されたウィンドウである。
FIG. 4 is a window created by an example program created using a library.

【図5】ウィンドウを表しているオブジェクトのクラス
継承を示すブロック図である。
FIG. 5 is a block diagram showing class inheritance of objects representing windows.

【図6A】見本プログラムのコードの一部である。FIG. 6A is a portion of code for a sample program.

【図6B】見本プログラムのコードの別の部分である。FIG. 6B is another portion of the code for the sample program.

【図6C】見本プログラムのコードの第3の部分であ
る。
FIG. 6C is the third piece of code for the sample program.

【図6D】見本プログラムgのコードの第4の部分であ
る。
FIG. 6D is the fourth part of the code for the sample program g.

【符号の説明】[Explanation of symbols]

107 コンパイラ 109 GUIコード 111 CPU 113 ディスプレイ 115 ウィンドウ 117 キーボード 119 マウス 107 Compiler 109 GUI Code 111 CPU 113 Display 115 Window 117 Keyboard 119 Mouse

─────────────────────────────────────────────────────
─────────────────────────────────────────────────── ───

【手続補正書】[Procedure amendment]

【提出日】平成7年11月16日[Submission date] November 16, 1995

【手続補正1】[Procedure Amendment 1]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】図4[Name of item to be corrected] Fig. 4

【補正方法】変更[Correction method] Change

【補正内容】[Correction content]

【図4】ライブラリを用いて作成されたプログラム例に
よって作成されたディスプレイ上に表示した中間調画像
である。
FIG. 4 is a halftone image displayed on a display created by a program example created using a library.

【手続補正2】[Procedure Amendment 2]

【補正対象書類名】図面[Document name to be corrected] Drawing

【補正対象項目名】図4[Name of item to be corrected] Fig. 4

【補正方法】変更[Correction method] Change

【補正内容】[Correction content]

【図4】 [Figure 4]

───────────────────────────────────────────────────── フロントページの続き (72)発明者 ポール ジェイ ルーカス アメリカ合衆国 60540 イリノイズ,ネ イパーヴィル,アパートメント 10,ハン チングトン サークル ウエスト 18 (72)発明者 グラハム ジョン ウィルス アメリカ合衆国 60532 イリノイズ,リ ッスル,アパートメント 104,バッキン ガム ドライヴ 2733 ─────────────────────────────────────────────────── ─── Continued Front Page (72) Inventor Paul Jay Lucas United States 60540 Ilnoise, Naperville, Apartment 10, Huntington Circle West 18 (72) Inventor Graham John Virus United States 60532 Ilnoise, Lisle, Apartment 104, Buckingham Drive 2733

Claims (11)

【特許請求の範囲】[Claims] 【請求項1】 オブジェクトおよびそのクラスを指定し
かつ継承によってクラス指定を行えるタイプのプログラ
ミングシステムに使用するクラス指定のライブラリにお
いて、 オブジェクトによって表される実体を指定する実体クラ
スを対象にした第1クラス指定と、 前記実体クラスを継承するオブジェクトの追加機能性を
指定する機能性クラスを対象にした第2クラス指定とか
ら成り、 前記実体クラスを継承しかつ前記追加機能性を有するオ
ブジェクトのオブジェクトクラスが前記実体クラスと領
域クラスの両方の継承を指定する第3クラス指定により
プログラミングシステムにおいて指定されることを特徴
とするライブラリ。
1. A first class targeting an entity class that designates an entity represented by an object in a class-designating library used in a programming system of a type which designates an object and its class and can classify by inheritance And a second class designation for a functionality class that specifies additional functionality of an object that inherits the entity class, wherein the object class of the object that inherits the entity class and has the additional functionality is A library specified in a programming system by a third class specification that specifies inheritance of both the entity class and the area class.
【請求項2】 複数の実体クラスを対象にした複数の第
1クラス指定と、 複数の機能性クラスを対象にした複数の第2クラス指定
とを具備することを特徴とする請求項1に記載のライブ
ラリ。
2. The method according to claim 1, further comprising a plurality of first class designations targeting a plurality of entity classes and a plurality of second class designations targeting a plurality of functionality classes. Library.
【請求項3】 前記機能性クラスの各々が前記実体クラ
スの任意のクラスと共に継承可能であることを特徴とす
る請求項2に記載のライブラリ。
3. The library according to claim 2, wherein each of the functionality classes is inheritable with any class of the entity class.
【請求項4】 第1クラス指定のクラスを継承するオブ
ジェクトがディスプレイ上の領域を表し、かつ前記機能
性クラスが前記領域によって追加的に保持可能な個々の
機能性を指定することを特徴とする請求項2に記載のラ
イブラリ。
4. The object inheriting a class designated by the first class represents an area on a display, and the functionality class specifies individual functionality that can be additionally held by the area. The library according to claim 2.
【請求項5】 前記機能性クラスが、座標指示器からの
入力に反応する機能性を指定するマウス操作クラスと、
キーボードからの入力に反応する機能性を指定するキー
操作クラスと、ドローコマンドに反応する機能性を指定
するドロークラスとを具備することを特徴とする請求項
4に記載のライブラリ。
5. The mouse operation class, wherein the functionality class specifies functionality that responds to input from a coordinate indicator.
The library according to claim 4, comprising a key operation class that specifies functionality that responds to input from a keyboard, and a draw class that specifies functionality that responds to draw commands.
【請求項6】 前記機能性クラスの各々が実体クラスの
任意のクラスと共に継承可能であることを特徴とする請
求項4に記載のライブラリ。
6. The library of claim 4, wherein each of the functionality classes is inheritable with any class of entity class.
【請求項7】 前記オブジェクトによって表される前記
実体がディスプレイ上の1領域であり、かつ前記機能性
クラスが前記領域における追加機能性を指定することを
特徴とする請求項1に記載のライブラリ。
7. The library of claim 1, wherein the entity represented by the object is an area on a display, and the functionality class specifies additional functionality in the area.
【請求項8】 前記領域がさらに座標指示器からの入力
にも反応するように前記機能性によって指定されること
を特徴とする請求項7に記載のライブラリ。
8. The library of claim 7, wherein the area is further specified by the functionality to be responsive to input from a coordinate indicator.
【請求項9】 前記領域がさらにキーボードからの入力
にも反応するように前記機能性クラスによって指定され
ることを特徴とする請求項7に記載のライブラリ。
9. The library of claim 7, wherein the area is further designated by the functionality class to be responsive to keyboard input.
【請求項10】 前記領域がさらにドローコマンドにも
反応できるように前記機能性クラスによって指定される
ことを特徴とする請求項7に記載のライブラリ。
10. The library of claim 7, wherein the area is further designated by the functionality class to be responsive to draw commands.
【請求項11】 オブジェクトおよびそのクラスを指定
しかつ継承によるクラス指定が可能なタイプのプログラ
ミングシステムによりプログラムを生成する方法におい
て、 オブジェクトによって表される実体を指定する実体クラ
スを対象にした第1クラス指定と、前記実体クラスを継
承するオブジェクトの追加機能性を指定する機能性クラ
スを対象にした第2クラス指定とから成るクラス指定の
ライブラリにおいて定義されたクラスを、オブジェクト
クラスを対象にした第3クラス指定に使用することと、 オブジェクトの指定にオブジェクトクラスを使用するこ
とと、 前記プログラミングシステムにおけるコード生成手段を
用いて、前記第1クラス指定と、前記第2クラス指定
と、前記第3クラス指定と、前記オブジェクトを対象と
する前記指定により、前記プログラムのオブジェクトコ
ードを生成することから成る方法。
11. A method for generating a program by a programming system of a type that specifies an object and its class and is capable of class specification by inheritance, the first class targeting an entity class that specifies an entity represented by the object. The class defined in the library of the class designation consisting of the designation and the second class designation targeting the functionality class designating the additional functionality of the object inheriting the entity class, and the third class targeting the object class. Using for class designation, using an object class for designation of an object, and using the code generation means in the programming system, the first class designation, the second class designation, and the third class designation And targeting the object A method comprising generating, by specification, an object code of said program.
JP7148480A 1994-06-15 1995-06-15 Class library for graphic programming Pending JPH08171484A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/260133 1994-06-15
US08/260,133 US5564048A (en) 1994-06-15 1994-06-15 Object-oriented functionality class library for use in graphics programming

Publications (1)

Publication Number Publication Date
JPH08171484A true JPH08171484A (en) 1996-07-02

Family

ID=22987900

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7148480A Pending JPH08171484A (en) 1994-06-15 1995-06-15 Class library for graphic programming

Country Status (5)

Country Link
US (1) US5564048A (en)
EP (1) EP0696770B1 (en)
JP (1) JPH08171484A (en)
CA (1) CA2149463C (en)
DE (1) DE69527898T2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7174286B2 (en) 2001-07-26 2007-02-06 Irise Systems and methods for defining a simulated interactive web page
JP2009539147A (en) * 2006-06-01 2009-11-12 クゥアルコム・インコーポレイテッド Apparatus and method for selectively double buffering part of displayable content
US8954870B2 (en) 2010-10-08 2015-02-10 Irise System and method for extending a visualization platform

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08249185A (en) * 1995-03-15 1996-09-27 Fujitsu Ltd Object data processor
US5692183A (en) * 1995-03-31 1997-11-25 Sun Microsystems, Inc. Methods and apparatus for providing transparent persistence in a distributed object operating environment
US5745115A (en) * 1996-01-16 1998-04-28 International Business Machines Corporation Graphical user interface having a shared menu bar for opened applications
US6023280A (en) * 1996-02-28 2000-02-08 Lucent Technologies Inc. Calculation and visualization of tabular data
US6704802B1 (en) * 1996-03-27 2004-03-09 Dell Usa, Lp Method and system for communicating between independent software modules
US5745675A (en) * 1996-04-23 1998-04-28 International Business Machines Corporation Object oriented framework mechanism for performing computer system diagnostics
US6078848A (en) * 1996-07-27 2000-06-20 Lexitech, Inc. Browser kiosk system
US5761071A (en) * 1996-07-27 1998-06-02 Lexitech, Inc. Browser kiosk system
US6052515A (en) * 1997-06-27 2000-04-18 Sun Microsystems, Inc. System and process for providing visualization of program code internal state in an object-oriented programming language
US6356285B1 (en) 1997-12-17 2002-03-12 Lucent Technologies, Inc System for visually representing modification information about an characteristic-dependent information processing system
US6320600B1 (en) 1998-12-15 2001-11-20 Cornell Research Foundation, Inc. Web-based video-editing method and system using a high-performance multimedia software library
US6601195B1 (en) 1999-09-09 2003-07-29 International Business Machines Corporation Switch adapter testing
US6560720B1 (en) 1999-09-09 2003-05-06 International Business Machines Corporation Error injection apparatus and method
US6487208B1 (en) 1999-09-09 2002-11-26 International Business Machines Corporation On-line switch diagnostics
US6466211B1 (en) 1999-10-22 2002-10-15 Battelle Memorial Institute Data visualization apparatuses, computer-readable mediums, computer data signals embodied in a transmission medium, data visualization methods, and digital computer data visualization methods
US6970850B1 (en) 1999-10-27 2005-11-29 Automated Business Companies Proximity service provider system
US6915303B2 (en) 2001-01-26 2005-07-05 International Business Machines Corporation Code generator system for digital libraries
US7200122B2 (en) * 2001-09-06 2007-04-03 Avaya Technology Corp. Using link state information to discover IP network topology
US7069343B2 (en) * 2001-09-06 2006-06-27 Avaya Technologycorp. Topology discovery by partitioning multiple discovery techniques
US7571239B2 (en) 2002-01-08 2009-08-04 Avaya Inc. Credential management and network querying
US7131113B2 (en) * 2002-12-12 2006-10-31 International Business Machines Corporation System and method on generating multi-dimensional trace files and visualizing them using multiple Gantt charts
US7000036B2 (en) * 2003-05-12 2006-02-14 International Business Machines Corporation Extended input/output measurement facilities
US7426577B2 (en) * 2003-06-19 2008-09-16 Avaya Technology Corp. Detection of load balanced links in internet protocol netwoks
US7996471B2 (en) * 2004-07-13 2011-08-09 At&T Intellectual Property I, L.P. Electronic message distribution system
US20070124385A1 (en) * 2005-11-18 2007-05-31 Denny Michael S Preference-based content distribution service
US8826229B2 (en) * 2011-06-02 2014-09-02 The Mathworks, Inc. Immutable properties in a class
US9594736B2 (en) * 2013-10-11 2017-03-14 Apple Inc. Display and selection of bidirectional text
CN109976749B (en) * 2019-03-28 2024-01-16 深圳市创联时代科技有限公司 Inheritance method for drawing process

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5220500A (en) * 1989-09-19 1993-06-15 Batterymarch Investment System Financial management system
GB9105278D0 (en) * 1990-04-27 1991-04-24 Sun Microsystems Inc Method and apparatus for implementing object-oriented programming using unmodified c for a window-based computer system
US5404529A (en) * 1993-07-19 1995-04-04 Taligent, Inc. Object-oriented interprocess communication system interface for a procedural operating system
US5379432A (en) * 1993-07-19 1995-01-03 Taligent, Inc. Object-oriented interface for a procedural operating system

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7174286B2 (en) 2001-07-26 2007-02-06 Irise Systems and methods for defining a simulated interactive web page
US7349837B2 (en) 2001-07-26 2008-03-25 Irise Systems and methods for a programming environment for a simulation of a computer application
US9361069B2 (en) 2001-07-26 2016-06-07 Irise Systems and methods for defining a simulated interactive web page
JP2009539147A (en) * 2006-06-01 2009-11-12 クゥアルコム・インコーポレイテッド Apparatus and method for selectively double buffering part of displayable content
US8954870B2 (en) 2010-10-08 2015-02-10 Irise System and method for extending a visualization platform
US9465527B2 (en) 2010-10-08 2016-10-11 Irise System and method for extending a visualization platform
US9946518B2 (en) 2010-10-08 2018-04-17 Irise System and method for extending a visualization platform

Also Published As

Publication number Publication date
DE69527898T2 (en) 2003-04-10
CA2149463C (en) 1999-08-31
EP0696770B1 (en) 2002-08-28
EP0696770A1 (en) 1996-02-14
CA2149463A1 (en) 1995-12-16
US5564048A (en) 1996-10-08
DE69527898D1 (en) 2002-10-02

Similar Documents

Publication Publication Date Title
JPH08171484A (en) Class library for graphic programming
US5555368A (en) Object-oriented multi-tasking view framework
US5621434A (en) Cursor manipulation system and method
JP2521035B2 (en) Placing annotations on the display
US5557730A (en) Symbol browsing and filter switches in an object-oriented development system
USRE37722E1 (en) Object-oriented system for the transparent translation among locales of locale-dependent application programs
US6006279A (en) Plug-in module host framework
US5544301A (en) Object-oriented view layout system
US6865733B2 (en) Standardized interface between Java virtual machine classes and a host operating environment
EP0734552B1 (en) Object-oriented task security framework
JP3565441B2 (en) Data processing system
US20010017622A1 (en) Apparatus and method for generating a configurable program explanation using templates and transparent graphical user interfaces
Gettys et al. Xlib: C language X interface (X version 11, release 4)
US20050060685A1 (en) Program generator
EP0602845A2 (en) Message dispatching in an event driven architecture
EP0607130B1 (en) Image position interpretation in a graphics system
EP0662658A2 (en) Dynamically specifying invocations in compiled objects
US5524200A (en) Object-oriented non-rectilinear viewing framework
US20020049867A1 (en) Application transfer method, application transfer system and storage medium therefore
US20040006649A1 (en) Dialog item interface definition object
WO1996015493A1 (en) Object-oriented operating system
Leipert The Tree Interface—Version 1.0 User Manual
Gamma et al. ET++ 2.2—Introduction and Installation
Koutsofios Editing Pictures with lefty
Nies et al. Chiron-1 User Manual

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20010815

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20041005

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20041012