JP2003506768A - Graphic object with minimum and desired size - Google Patents

Graphic object with minimum and desired size

Info

Publication number
JP2003506768A
JP2003506768A JP2001514377A JP2001514377A JP2003506768A JP 2003506768 A JP2003506768 A JP 2003506768A JP 2001514377 A JP2001514377 A JP 2001514377A JP 2001514377 A JP2001514377 A JP 2001514377A JP 2003506768 A JP2003506768 A JP 2003506768A
Authority
JP
Japan
Prior art keywords
elasticity
size
graphic
objects
compression
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
JP2001514377A
Other languages
Japanese (ja)
Inventor
ハルステッド・ロバート・エイチ・ジュニア
ホーリングズワース・デイビッド・イー
Original Assignee
カール・コーポレイション
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 カール・コーポレイション filed Critical カール・コーポレイション
Publication of JP2003506768A publication Critical patent/JP2003506768A/en
Pending legal-status Critical Current

Links

Classifications

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

Abstract

To process the layout of graphical objects, elastics data structures are established for the graphical objects to define minimum and preferred sizes, stretch properties and compression properties. Composite graphical objects include elastics properties computed from their components through add and max operations which are dependent on relative elasticities of the components. The positions of origins within graphical objects are defined by pairs of elastics in each of two dimensions. One application of elastics is with respect to text blocks where preferred width and compressibility of each text block is a function of the amount of text in the text block. The elastics and dimensions of graphical objects are processed in a three pass layout negotiation. In the first pass, preferred sizes and elasticities of the graphical objects are computed along a first dimension. In a second pass, size values of the graphical objects along the first dimension are computed from the preferred sizes and elasticities, and preferred sizes and elasticities of the graphical objects along a second dimension are computed based on the size values of the graphical objects along the first dimension. In a final pass, size values of the graphical objects along the second dimension are computed from the preferred sizes and elasticities.

Description

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

【0001】[0001]

【発明の背景】BACKGROUND OF THE INVENTION

近年、インターネットを利用するユーザ数は指数関数的に増加してきた。この
人気の増大につれ、" オンライン利用" を強化するツールに対する需要も増加し
てきた。この要望に答えるために、Java(登録商標)のようなオブジェクト志向
の新しいコンピュータ・プログラム言語が開発されてきた。これらの言語は従来
技術を通して進歩したものであるが、改良の余地は残っている。詳細には、可変
サイズ・ウインドウ内のグラフィック・オブジェクトの複雑な構造のレイアウト
を効率的に変更する能力において改良の余地がある。これらの言語を使用して、
Web サイト上で高品質、リアルタイムのグラフィックスを実現することは困難で
ある。
In recent years, the number of users who use the Internet has increased exponentially. As this popularity has increased, so has the demand for tools that enhance "online use." To meet this need, new object-oriented computer programming languages, such as Java, have been developed. Although these languages have advanced through the prior art, there is room for improvement. In particular, there is room for improvement in the ability to efficiently change the layout of complex structures of graphic objects in variable size windows. Using these languages,
Achieving high quality, real-time graphics on a website is difficult.

【0002】 Javaにより、グラフィック・オブジェクトに対し最小と最大サイズを指定でき
、これら最小と最大サイズとの差が大きい場合、これらの値を利用してオブジェ
クトにさらに伸縮性を持たせることができる。
With Java, a minimum and maximum size can be specified for a graphic object, and if the difference between these minimum and maximum sizes is large, these values can be used to make the object more elastic.

【0003】 インターネット用途向けに特定して開発された言語は、MIT Curl Language で
あり、これはM. Hostetterらによる、"Curl:A Gentle Slope Language for the
Web,"WorldwideWeb Journal, Vol 2, Issue 2, O'Reilly & Associates, Spling
1997 に記載されている。本発明の実施形態はCurl言語を拡張している(本発明
の実施形態の言語は、"Curl"と呼ばれ、以前の"MIT Curl"言語と区別されている
)。MIT Curlはスリー・パス・レイアウト・ネゴシエーション方法(three pass
layout negotiation )を使用しており、オブジェクトを、最小サイズと伸張係
数に関してそれらのサイズの基本設定値(size preference) を記述できた。
A language specifically developed for Internet use is the MIT Curl Language, which is described by M. Hostetter et al., "Curl: A Gentle Slope Language for the
Web, "WorldwideWeb Journal, Vol 2, Issue 2, O'Reilly & Associates, Spling
It is described in 1997. Embodiments of the present invention extend the Curl language (the language of the embodiments of the present invention is called "Curl" to distinguish it from the former "MIT Curl" language). MIT Curl is a three pass layout negotiation method (three pass
layout negotiation) was used, and the object was able to describe the size preference with respect to the minimum size and expansion factor.

【0004】 TeX はテキスト・フォーマット・プログラムであり、広く使用されている。こ
のプログラムは、Donald E. Knuth のThe TeXBook, Addison-Wesley, Reading,
MA, 1984により開発された。TeX は、" グルー(glue)" として知られるコンセ
プトを利用してフィル・オブジェクトの寸法基本設定値を表わし、また異なる伸
張および圧縮オーダーを組み込んでおり、このオーダーを使用して異なる種類の
フィル・オブジェクトを記述できる。全体レイアウトが変化するとき、個々のフ
ィル・オブジェクトの寸法はこれらオブジェクトの望ましいサイズと伸張度に依
存して変化する。
TeX is a text format program and is widely used. This program is based on Donald E. Knuth's The TeXBook, Addison-Wesley, Reading,
Developed by MA, 1984. TeX utilizes a concept known as "glue" to represent dimensional preferences for fill objects and incorporates different stretch and compression orders, which are used to create different types of fill Can describe objects. As the overall layout changes, the dimensions of the individual fill objects change depending on the desired size and stretch of these objects.

【0005】 Stk と呼ばれるRobert Haistead により開発されたグラフィックス・ツール・
キットは、" グルー(glue)" として知られる弾性のコンセプトを取り入れてお
り、容積を持つグラフィック・オブジェクトに関する最小サイズ、伸張度係数、
および伸張オーダーの機能を有する。このキットは、弾性追加、最大化および分
割オペレーションに関して、グラフィック・オブジェクトの水平および垂直ボッ
クスのレイアウト計算を公式化している。Stk は一般には知られておらず、また
使用されていない。Stk のレイアウト・メカニズムはSwatに組み込まれている。
Swatは、MIT において、Harold Abelson、James MillerおよびNatalya Cohen に
より開発されたグラフィックス・ツールである。
A graphics tool developed by Robert Haistead called Stk
The kit incorporates the concept of elasticity known as "glue", which is the minimum size, expansion factor, and
And the function of extension order. This kit formulates horizontal and vertical box layout calculations for graphic objects in terms of elastic add, maximize and split operations. Stk is not generally known or used. Stk's layout mechanism is built into Swat.
Swat is a graphics tool developed at the MIT by Harold Abelson, James Miller and Natalya Cohen.

【0006】[0006]

【発明の概要】[Outline of the Invention]

本発明によれば、グラフィック・オブジェクトをレイアウトするためのシステ
ム、方法、およびデータ構造を提供する。最小および望ましいサイズが複数のグ
ラフィック・オブジェクトの各々に対し決定される。弾性もまた、複数のグラフ
ィック・オブジェクトの各々に対し決定される。最小サイズはグラフィック・オ
ブジェクトの望ましいサイズと弾性に対し個々に指定される。グラフィック・オ
ブジェクトを処理して、複数のグラフィック・オブジェクトを組み込んでいる、
より大きいグラフィック・オブジェクトの最小サイズおよび望ましいサイズを決
定する。
According to the present invention, there is provided a system, method and data structure for laying out graphic objects. A minimum and desired size is determined for each of the plurality of graphic objects. Elasticity is also determined for each of the plurality of graphic objects. The minimum size is specified individually for the desired size and elasticity of the graphic object. Processing graphic objects and embedding multiple graphic objects,
Determine the minimum and desired size of larger graphic objects.

【0007】 グラフィック・オブジェクトの望ましいデータ構造には、最小サイズ、望まし
いサイズおよび弾性を含む。各グラフィック・オブジェクトの弾性は、別個の伸
張度および圧縮度係数により決定できる。
Preferred data structures for graphic objects include minimum size, desired size and elasticity. The elasticity of each graphic object can be determined by separate stretch and compression factors.

【0008】 プロセスには加算オペレーションを含むことができ、この加算オペレーション
では、加算結果の最小サイズと望ましいサイズの各々は、複数のグラフィック・
オブジェクトの、それぞれ、最小サイズおよび望ましいサイズの総和である。
The process can include an add operation in which each of the minimum and desired size of the add result is a plurality of graphic
The sum of the minimum size and the desired size, respectively, of the object.

【0009】 プロセスには最大オペレーションを含むことができ、このオペレーションでは
、最大結果は複数のグラフィック・オブジェクトの最小サイズよりも大きい最小
サイズを含む。最大結果はまた、その他のサイズに対して最小の弾性を持つグラ
フィック・オブジェクトの好ましいサイズである望ましいサイズを含む。
The process can include a maximum operation, where the maximum result includes a minimum size that is greater than a minimum size of the plurality of graphic objects. The maximum result also includes the desired size, which is the preferred size of the graphic object with the least elasticity relative to other sizes.

【0010】 プロセスは分割オペレーションを含むことができ、このオペレーションでは、
サイズを複数のグラフィック・オブジェクトに分割する。分割オペレーションで
は、分割されるサイズが最小サイズの総和よりも小さい場合、サイズをグラフィ
ック・オブジェクトの最小サイズに比例して分割する。分割されるサイズが最小
サイズの総和よりも大きい場合、望ましいサイズの総和に対する余剰量または不
足量が計算される。サイズは、望ましいサイズからの必要な変化を基準にして、
各グラフィック・オブジェクトの弾性に従って分割される。この結果の弾性は、
圧縮と伸張オーダー(この場合のオーダーは等しい)と、別々の伸張度および圧
縮度係数を基準にすることができる。
The process can include a split operation, where
Divide the size into multiple graphic objects. The split operation splits the size proportionally to the minimum size of the graphic object if the size to be split is less than the sum of the minimum sizes. If the size to be divided is larger than the sum of the minimum sizes, the surplus or deficit for the desired size sum is calculated. The size is based on the required change from the desired size,
It is divided according to the elasticity of each graphic object. The resulting elasticity is
The compression and decompression orders (in this case, the orders are equal) and the different decompression and compression factors can be used as a reference.

【0011】 1 つの好ましい実施形態では、グラフィック・オブジェクトのオリジナル・レ
イアウトの弾性を取り消す方法は、そのグラフィック・オブジェクトの寸法の新
しいレイアウト弾性を受け取るステップを含む。このとき、この新しいレイアウ
ト弾性が格納される。得られたレイアウト弾性は、新しいレイアウト弾性とオリ
ジナル・レイアウト弾性とから決定されている。最後に、得られたレイアウト弾
性は戻される。
In one preferred embodiment, a method of canceling elasticity of an original layout of a graphic object comprises receiving a new layout elasticity of the graphic object's dimensions. At this time, this new layout elasticity is stored. The obtained layout elasticity is determined from the new layout elasticity and the original layout elasticity. Finally, the layout elasticity obtained is returned.

【0012】 本発明の前述およびその他の目的、特徴および利点は、添付図面に示す本発明
の好ましい実施形態の以下の詳細な説明で明らかになるであろう。図面では、同
一参照符号は異なる図面においても同一部品を指す。図面は必ずしも縮尺通りで
なく、本発明の原理を示すことに重点が置かれている。
The foregoing and other objects, features and advantages of the present invention will become apparent in the following detailed description of the preferred embodiments of the invention illustrated in the accompanying drawings. In the drawings, the same reference numerals refer to the same parts in different drawings. The drawings are not necessarily to scale and emphasis is placed on illustrating the principles of the invention.

【0013】[0013]

【発明の実施の形態】DETAILED DESCRIPTION OF THE INVENTION

2 Dグラフィックス・システムに要求されるジョブの1 つは、表示されるオブ
ジェクトのレイアウト(位置とサイズ)を計算することである。Curlプログラム
言語のグラフィック表示の構成では、要素の" リ−フ・グラフィックス(leaf g
raphics )" をグループ化して大きいアセンブリにし、それらをBox として知ら
れるグラフィック・コンテナ内に置く。Box は次々に他のBox 内に置くことがで
き、この方法により、複雑なグラフィック表示を任意に構成できる。
One of the jobs required of a 2D graphics system is to calculate the layout (position and size) of the displayed objects. The configuration of the graphic representation of the Curl programming language consists of "leaf graphics (leaf g
raphics) "into a large assembly and put them in a graphic container known as a Box. Boxes can be placed inside other Boxes one after the other, which allows you to arbitrarily compose complex graphic displays. it can.

【0014】 リ−フ・グラフィックスはいくつかの種類のグラフィック・オブジェクトを含
むことができる。 1 .矩形および楕円のような簡単な幾何形状は、プログラムで指定されるように
、そのサイズを、Curlプログラム内で指定するか、またはレイアウト時に計算す
るかのどちらでも可能である。ラベルのような簡単な文字列も、このカテゴリに
入る。 2 .イメージおよび他のグラフィックスは拡大縮小できるが、アスペクト・レシ
オ(幅と高さの比率)を維持する必要がある。 3 .フォーマットされたテキスト・ブロック、幅と高さは拡大縮小できるが、そ
れらは相互にほぼ反比例関係にあることが必要である(幅が縮小すると、高さが
拡大する)。
Leaf graphics can include several types of graphic objects. 1. Simple geometries, such as rectangles and ellipses, can either have their size specified within the Curl program, or calculated at layout time, as specified by the program. Simple strings such as labels also fall into this category. 2. Images and other graphics can be scaled, but the aspect ratio (width to height ratio) must be maintained. 3. Formatted text blocks, whose width and height can be scaled, but they need to be approximately inversely related to each other (reduced width increases height).

【0015】 図1は、多数のグラフィック・オブジェクトを含む典型的なCurlウィンドウを
示しており、リ−フ・グラフィックスとBox の両方を含んでいる。図2は、図1
に表れているグラフィック・オブジェクトの構成を示し、部分的に展開されたア
ウトライン・フォームで示されている。各グラフィック・オブジェクトは、Box
またはリ−フ・グラフィックスのどちらであっても、図2において、" {VBox
74}" などのような名前を持つ単一ライン上に示されている。{VBox 74 }は、
オブジェクト(VBox)のタイプを示し、またダイヤグラムのこのラインに関連す
る特定オブジェクトを指定する固有数(74)を含む。各Box は、Box ネームの左
の三角形アイコンを含むライン上に示され、一方、各リ−フ・グラフィックスは
グラフィック・ネームの隣りに四角形アイコンにより示されている。{VBox 74
}または{HBox 63 }のように、Box に対応する三角形アイコンを押すと、その
三角形をBox の子オブジェクトとして直接含まれている各オブジェクトのアイコ
ンにリンクしている、三角形の底に接続されたラインによって、そのBox 内に含
まれるグラフィックスが後続のライン上に示される。{CdeButton 64}または{
HBox 70 }のように、Box の三角形が右を指示すると、そのBox は子オブジェク
トを持つことができる(簡単化のため図示していない)。しかし、実際は、右方
向指示の三角形で示される全てのBox が子オブジェクトを持つとは限らない。例
えば、{CastTextFlowBox 60}は子オブジェクトを持たない。
FIG. 1 shows a typical Curl window containing a large number of graphic objects, including both leaf graphics and Box. 2 is shown in FIG.
Figure 3 shows the composition of the graphic object shown in Figure 2 and is shown in a partially expanded outline form. Each graphic object is a Box
In either case of leaf graphics or leaf graphics, "{VBox
74} "is shown on a single line with a name such as {VBox 74}
Indicates the type of object (VBox) and also contains a unique number (74) that specifies the particular object associated with this line of the diagram. Each Box is shown on a line containing a triangle icon to the left of the Box name, while each leaf graphic is shown by a square icon next to the Graphic Name. {VBox 74
} Or {HBox 63}, the triangle icon corresponding to the Box is connected to the bottom of the triangle, which links the triangle to the icon of each object directly contained as a child of the Box. Lines show the graphics contained within that Box on subsequent lines. {CdeButton 64} or {
If a Box triangle points to the right, as in HBox 70}, the Box can have child objects (not shown for simplicity). However, in reality, not all Boxes indicated by a right-pointing triangle have child objects. For example, {CastTextFlowBox 60} has no child objects.

【0016】 図1のトップ・レベルのオブジェクトを示す図2のダイヤグラムは、{CdePan
eView 1 }であり、その下に、単一グラフィック子として、{VBox 70 }を有す
る。{VBox 70 }は、その下に、いくつかの子オブジェクトを有し、その各々は
その区画を水平に満たし、さらに上から下に配列されている。{MenuBar 75}は
メニュー・バー・オブジェクトであり、図1のメニュー・バー75を定義し、ワー
ド"File"、"Edit"等を含む。{HBox 72 }はツールバー・オブジェクトであり、
これらワードの真下にある。図2は、拡張されたこのHBoxを示しており、"Print
" 、"Window"等の名称の付けられたツールボタンに対応している別個のCdeButtu
m オブジェクトを示す。{CdeButton 62}は"Print" ツールボタンであり、その
下に展開されて、Frame オブジェクト{Frame 61}を含む。{Frame 61}は、そ
の下に{VBox 59 }を含む。最後に、{VBox 59 }はプリンタ・アイコン{Pict
ure 44}と、{CastTextFlowBox 60}内に含まれるワード"Print" をスタックし
ているエンティティティである。図1に示される他のオブジェクトは同様にグル
ープ化される。特に、{PageViewPane 77 }はワード"Welcome to Curl" と、関
連テキストおよびグラフィックスを含む大きい領域に対応し、一方、{Stretchy
TextDisplay 78}は、スクリーンの一番下のブランク・ステータス区画に対応し
ており、時々、実行中のアプリケーション・プログラムを示すメッセージを表示
する。
The diagram of FIG. 2 showing the top-level objects of FIG. 1 is {CdePan
eView 1}, with {VBox 70} as a single graphic child below it. The {VBox 70} has several child objects below it, each of which fills its compartment horizontally and is arranged from top to bottom. {MenuBar 75} is a menu bar object that defines the menu bar 75 of FIG. 1 and contains the words "File", "Edit", etc. {HBox 72} is a toolbar object,
Right below these words. Figure 2 shows this expanded HBox with "Print
A separate CdeButtu that supports tool buttons named "," Window ", etc.
m Indicates an object. {CdeButton 62} is the "Print" tool button, expanded below it to contain the Frame object {Frame 61}. {Frame 61} includes {VBox 59} below it. Finally, {VBox 59} is the printer icon {Pict
ure 44} and the word "Print" contained within {CastTextFlowBox 60} is an entity. The other objects shown in FIG. 1 are similarly grouped. In particular, {PageViewPane 77} corresponds to the word "Welcome to Curl" and a large area containing related text and graphics, while {Stretchy
TextDisplay 78} corresponds to the blank status section at the bottom of the screen and occasionally displays a message indicating which application program is running.

【0017】 Curlはこれらの種類のグラフィックスを全てサポートし、さらにそれらの組合
せの全てをBox 内に一緒に置くことを可能にするため、Curlは、レイアウト・シ
ステムにより提供される、以下の基本的問題の解決策を必要とする。
Since Curl supports all of these types of graphics, and further allows all of their combinations to be put together in a Box, Curl provides the following basics provided by the layout system: Need a solution to a social problem.

【0018】 1 .簡単なリ−フ・グラフィックスまたは合成グラフィックス(すなわちBox )
のどちらかである、グラフィック・オブジェクトのサイズ基本設定を表示する。
この表示は、Box が、それらのサイズ基本設定に対しそのコンポーネント・グラ
フィックスに問合せでき、それらの結果を結合してBox 自体のサイズ基本設定の
表示に入れるものとする必要がある。この表示は、多くの簡単なグラフィックス
のような剛性オブジェクトと、イメージおよびフォーマットされたテキストのよ
うな伸縮性のあるオブジェクトの両方のサイズ基本設定をコード化できるものと
する必要がある。 Curlでは、この役割は"elastics (弾性値)" により表示される。以下に詳し
く述べるように、弾性値は個々のグラフィック・オブジェクトの高さと幅に対し
決定される。合成グラフィック・オブジェクトに対する弾性値はそれらのコンポ
ーネントの弾性値から計算される。 2 .剛性および伸縮性オブジェクト両方のサイズ基本設定を考慮に入れた方法で
、グラフィック・レイアウトを計算する。例えば一定アスペクト・レシオのイメ
ージと、フォーマットされたテキストとの両方のような、高さと幅の関係を守る
伸縮性オブジェクトの存在は、この問題をさらに複雑にする。
1. Simple leaf graphics or composite graphics (ie Box)
Display size preferences for graphic objects, which are either:
This display should allow the Box to query its component graphics for their size preferences and combine the results into the Box's own size preference display. The display should be able to code size preferences for both rigid objects such as many simple graphics and elastic objects such as images and formatted text. In Curl, this role is denoted by "elastics". Elasticity values are determined for the height and width of individual graphic objects, as described in more detail below. Elastic values for composite graphic objects are calculated from the elastic values of their components. 2. Compute the graphic layout in a manner that takes into account size preferences for both rigid and elastic objects. The presence of stretchable objects that adhere to height-width relationships, such as both constant aspect ratio images and formatted text, further complicate this problem.

【0019】 Curlでは、この役割は、幅優先(wide-first)および高さ優先(height-first
)の2つの方式を有するスリー・パス・レイアウト・ネゴシエーション・アルゴ
リズムにより表示される。幅優先アルゴリズムは、グラフィック・オブジェクト
・トリー(tree)を通る第1 パスの幅基本設定を収集し、幅割当てを計算し、第2
パスの高さ基本設定を収集し、第3パスの高さ割当てを計算する。高さ優先アル
ゴリズムも同様であるが、高さと幅の役割が交代する。幅割当てが決められた後
(または、高さ優先レイアウトの場合は逆)、高さ基本設定を収集することによ
り、このアルゴリズムは、高さおよび幅基本設定が相互に独立でないオブジェク
トを収納する。
In Curl, this role is called wide-first and height-first.
) Is displayed by a three-pass layout negotiation algorithm having two methods. The breadth-first algorithm collects the width preference for the first pass through the graphic object tree, calculates the width allocation, and
Collect the pass height preferences and calculate the height assignment for the third pass. The height-first algorithm is similar, but the roles of height and width alternate. By collecting height preferences after the width allocation has been determined (or vice versa for height-first layouts), the algorithm accommodates objects whose height and width preferences are not independent of each other.

【0020】弾性の一般コンセプト レイアウト内のグラフィック・オブジェクトは望ましい寸法を有することがで
きる。例えば、図3では、2つの並んだグラフィック・オブジェクトAとBは望
ましい幅PAとPBを有することができる。しかし、ユーザがグラフィック・オブジ
ェクトAとBを含むウィンドウを拡大または縮小する場合に、表示器のハードウ
ェア表示寸法またはウィンドウ寸法に一致させるには、AとBの幅が順に変化し
て、スペースを満たすか、または視野から周辺部が欠けるのを避ける必要がある
。例えば、2つのオブジェクトAとBが幅W1を満たす場合、2つのオブジェクト
は、図3B に示される得られた幅WAとWBに比例して拡大できる。図3B の結果は
、2つのグラフィック・オブジェクトが拡大に対し同一弾性を持つ(つまり、同
一伸縮性を持つ)と仮定している。しかし、各グラフィック・オブジェクトに対
し弾性を決定することにより、1つのオブジェクトが他方に対し優先的に伸張す
るようにできる。例えば、オブジェクトBがオブジェクトAに対しより大きい伸
張性を持つように決定される場合、オブジェクトAは望ましい幅PAに留まり、図
3C に示されるように、全拡大はオブジェクトBにより発生する全幅W1によって
もたらされる。同様に、合成オブジェクトが、縮小した幅W2に減少する必要があ
る場合、2つのオブジェクトは、図3D に示されるように、比例して圧縮される
。その一方で、図3E に示されるように、オブジェクトAを大きい圧縮性を有す
るように決定して、オブジェクトAにより圧縮の大きい配分が発生するようにで
きる。
Graphic objects within the elastic general concept layout can have desirable dimensions. For example, in FIG. 3, two side-by-side graphic objects A and B may have the desired widths PA and PB. However, when the user enlarges or shrinks the window containing the graphic objects A and B, the widths of A and B are changed in order to match the hardware display size or the window size of the display, and the space is changed. It must be filled or the peripheral edge of the field of view must be avoided. For example, if two objects A and B fill a width W1, the two objects can grow proportionally to the resulting widths WA and WB shown in FIG. 3B. The results in Figure 3B assume that the two graphic objects have the same elasticity (ie, the same elasticity) for magnification. However, by determining the elasticity for each graphic object, one object can be stretched preferentially over the other. For example, if object B is determined to have greater extensibility relative to object A, then object A will stay at the desired width PA and the total expansion will depend on the total width W1 generated by object B, as shown in FIG. 3C. Be brought. Similarly, if the composite object needs to be reduced to the reduced width W2, the two objects will be proportionally compressed, as shown in FIG. 3D. On the other hand, as shown in FIG. 3E, object A can be determined to have a large compressibility so that object A causes a large distribution of compression.

【0021】 弾性表示は、機械的ばねと同様に作用する。ばねと同様に、弾性体は、変形さ
せる力が作用しないときの長さである" 望ましいサイズ" を有する。ばねと同様
、弾性体を望ましい長さよりも小さいサイズに圧縮すると、その弾性体は、圧縮
と反対の力を作用させると考えられる。この力は圧縮度合いが増加すると共に増
加するが、簡単な機械的ばねと異なり、弾性体は一般に、弾性変形の大きさに対
する力の大きさまたは力の変化率の不連続な変化を示す。
Elastic indications behave like mechanical springs. Like springs, elastic bodies have a "desired size", which is their length when no deforming force acts. Like a spring, when an elastic is compressed to a size less than the desired length, it is believed that the elastic exerts a force opposite that of compression. This force increases with increasing degree of compression, but unlike simple mechanical springs, elastic bodies generally exhibit a discontinuous change in force magnitude or rate of change of force with respect to the magnitude of elastic deformation.

【0022】 圧縮の代わりに、弾性体が望ましいサイズよりも長く伸ばされる場合、弾性体
は、圧縮力と同じく、変形の大きさと共に増加する力でその伸びに対抗している
と考えられる。
If instead of compression, the elastic is stretched longer than desired, it is believed that the elastic counters its elongation with a force that increases with the amount of deformation, as well as a compressive force.

【0023】 ばねの場合と同様、異なる弾性体は異なる割合の伸張度と圧縮度を有すること
ができる。伸張度と圧縮度の最大割合は、所定の変形に対抗する最小力を表わす
弾性に関係する。
As with springs, different elastic bodies can have different rates of extension and compression. The maximum proportion of stretch and compression is related to the elasticity, which represents the minimum force against a given deformation.

【0024】 機械的ばねと異なり、弾性体は異なる" オーダー" の伸張度と圧縮度を有する
こともできる。大きい伸張(または圧縮)オーダーを持つ弾性体は、小さい伸張
(または圧縮)オーダーを有する弾性体に比べ無限に伸張(または圧縮)できる
。異なる伸張オーダーを持つ2つの弾性体を直列に置き、そのアセンブリを伸張
すると、小さい伸張オーダーを持つ弾性体はそれの望ましいサイズに留まり、余
分の距離の全ては、大きい伸張オーダーを持つ弾性体を伸張することにより占有
される。
Unlike mechanical springs, elastic bodies can also have different "orders" of extension and compression. An elastic body having a large extension (or compression) order can be infinitely extended (or compressed) as compared with an elastic body having a small extension (or compression) order. When two elastics with different stretch orders are placed in series and the assembly is stretched, the elastic with the smaller stretch order stays at its desired size, and all the extra distance is the elastic with the larger stretch order. Occupied by stretching.

【0025】 しかし、上の状態での2つの弾性体が同一伸張オーダーを有する場合、それら
は両方共伸張される。各弾性体は、2つの弾性体の伸張に対抗する力が等しくな
る長さにまで伸張される。実際、これは、弾性体の1つが他方に比べN倍伸張さ
れた場合、その弾性体がそれの望ましいサイズを超えて伸張する量は、他方の弾
性体に配分される伸張量に比べN倍に大きくなることを意味する。
However, if the two elastics in the above state have the same stretch order, they are both stretched. Each elastic body is stretched to a length such that the forces opposing the stretching of the two elastic bodies are equal. In fact, this means that if one of the elastics is stretched N times more than the other, the amount by which it stretches beyond its desired size is N times the amount of stretching distributed to the other elastic. Means to grow to.

【0026】 伸張の代わりに、2つの弾性体のアセンブリがそれの望ましいサイズよりも小
さく圧縮される場合、その挙動は、伸張が圧縮に置き換わることを除いて、前記
の内容と類似している。
If, instead of stretching, the assembly of two elastics is compressed below its desired size, the behavior is similar to that described above, except that stretching replaces compression.

【0027】 グラフィック・レイアウトを実行するためには、弾性を使用してグラフィック
・オブジェクトの高さと幅の基本設定を表わす。したがって、以下のことを可能
とする必要がある。
In order to perform the graphic layout, elasticity is used to represent the height and width preferences of the graphic object. Therefore, it is necessary to be able to:

【0028】 1 .Box 内でグラフィックスを表現する弾性(体)を組合せて、Box 自体の高さ
と幅の基本設定を表現する弾性(体)を作成する。 2 .全体として、Box の高さまたは幅の割当てを仮定し、およびそのBox 内のグ
ラフィックスの高さまたは幅弾性(体)を仮定して、それらグラフィックスの各
々に対し高さまたは幅の割当てを計算する。
1. The elasticity (body) that represents the graphics in the Box is combined to create the elasticity (body) that represents the basic settings for the height and width of the Box itself. 2. As a whole, assume a height or width assignment for a Box, and the height or width elasticity (body) of the graphics in that Box, and assign a height or width assignment for each of those graphics. calculate.

【0029】 これらの必要事項をサポートするため、弾性体は特定の基本的オペレーション
をサポートする必要がある。 1 ." 加算" オペレーションは2つの弾性体を直列に置くことに相当する。例え
ば、このオペレーションを使用して、図3のように、水平並びに配列された2つ
またはそれ以上のグラフィックスを含むBox の幅弾性を計算できる。 2 ." 最大" オペレーションは2つの弾性体を並列に並べることに相当する。例
えば、このオペレーションを使用して、水平並びに配列されたいくつかのグラフ
ィックスを含むBox の高さ弾性(体)を計算できる。 3 ." 分割" オペレーションは2つの弾性と長さに適用される。このオペレーシ
ョンは、2つの弾性体が直列に置かれ、さらにそのアセンブリが特定の長さにな
るように伸張または圧縮される場合、各弾性体に割当てされる長さの部分を計算
する。 例えば、このオペレーションを使用して、図3のように水平並びに配列された
2つのグラフィックスを含むBox により、そのBox に対し特定の幅割当てを仮定
して、各グラフに対する幅割当てを計算できる。以下に述べるように、このオペ
レーションを加算オペレーションと合わせて使用し、特定の幅または高さを、対
象の寸法に沿って順に配列される任意の数のオブジェクトに配分できる。 これらの基本的オペレーションに加えて、弾性のCurlの使用を計算に入れたそ
の他のいくつかのオペレーションがある。
In order to support these requirements, elastics need to support certain basic operations. 1. The "add" operation is equivalent to placing two elastic bodies in series. For example, this operation can be used to calculate the width elasticity of a Box that contains two or more graphics arranged horizontally and as in FIG. 2. The "maximum" operation is equivalent to arranging two elastic bodies in parallel. For example, this operation can be used to calculate the height elasticity (body) of a Box containing some graphics arranged horizontally and horizontally. 3. The "split" operation applies to two elasticity and length. This operation calculates the portion of the length assigned to each elastic when the two elastics are placed in series and the assembly is stretched or compressed to a particular length. For example, this operation can be used to calculate a width allocation for each graph by a Box that contains two graphics arranged horizontally and horizontally as in Figure 3, assuming a particular width allocation for that Box. As will be described below, this operation can be used in conjunction with an add operation to distribute a particular width or height to any number of objects arranged in sequence along the dimension of interest. In addition to these basic operations, there are a few other operations that account for the use of elastic Curl.

【0030】 4 ." スケール" オペレーションは、弾性体をN(>0 )倍する。Nが整数の場
合、その結果は、加算オペレーションを使用して直列の弾性体をN回コピーする
ことにより得られるものと同一である。Nが整数でない場合、その結果はNに最
も近い2つの整数に相当する結果の間の、途中に補間される。 5 .2つの弾性体の" 同等" オペレーションは、2つの弾性体が全サイズにおい
て同一力を作用させる場合、本来の形に戻る。 6 ." サイズの平等" オペレーションは2つの弾性と特定の長さに適用する。こ
のオペレーションは、2つの弾性体が所定の長さに変形するときに、同一力を作
用させる場合、成立する。
4. The "scale" operation multiplies an elastic body by N (> 0). If N is an integer, the result is the same as that obtained by copying the elastic body in series N times using an add operation. If N is not an integer, the result is interpolated midway between the results corresponding to the two integers closest to N. Five . The "equal" operation of two elastic bodies returns to their original shape when the two elastic bodies exert the same force at all sizes. 6. The "size equality" operation applies to two elasticity and specific lengths. This operation is established when the same force is applied when the two elastic bodies deform to a predetermined length.

【0031】 また、" 減算" のような他のオペレーションは想像できるであろう。[0031]   You can also imagine other operations like "subtract".

【0032】Curl言語の弾性付与 前述の弾性の一般的コンセプトはレイアウト計算の高性能化に基本を置くが、
最も一般的な形式での実行にはコストが高くなる。さらに、Curlは前述の一般的
弾性コンセプトに対する近似を実行する。Curlの近似は以下の特性を持つ。 1 .伸張度(および伸張オーダー)が圧縮度(および圧縮オーダー)と異なる弾
性の表示が可能である。 2." 最小サイズ" の概念を組み込んでいる。Curl弾性は最小サイズよりも小さ
いサイズにまで圧縮することが極めて難しい。 3.前述の加算、最大、および他のオペレーションが実行されるとき、弾性の表
示を拡大できる能力に関して限界がある。この特性を持つ弾性の表示は、可能な
弾性オペレーションの全てに対しては正確な結果を導き出せない。したがって、
Curlは、結果のサイズを拡大させない必要がある場合、加算、最大、および他の
オペレーションに対し近似結果を導き出す。 4.一般的な弾性値の発生のいくつかに対しコンパクト表示の機能がある。例え
ば、伸張度と圧縮度が等しい弾性は、この同一性が維持されない一般弾性に比べ
さらにコンパクトに表示できる。
Elasticity of Curl Language Although the general concept of elasticity described above is based on improving layout calculation,
The most common form of implementation is expensive. In addition, Curl performs an approximation to the general elasticity concept described above. The Curl approximation has the following properties. 1. It is possible to display elasticity in which the degree of extension (and extension order) is different from the degree of compression (and compression order). 2. It incorporates the concept of "minimum size". Curl elasticity is extremely difficult to compress to a size smaller than the minimum size. 3. There is a limit as to the ability to magnify the representation of elasticity when the aforementioned addition, maximal, and other operations are performed. Representations of elasticity with this property may not yield accurate results for all possible elasticity operations. Therefore,
Curl derives approximate results for add, max, and other operations when it is necessary to not grow the size of the result. 4. There is a compact display function for some of the common elastic value generations. For example, elasticity with the same degree of extension and compression can be displayed more compactly than general elasticity in which this identity is not maintained.

【0033】 まとめると、標準Curl弾性は6つのフィールドを有する。 1 .最小サイズ(浮動小数点数) 2 .望ましいサイズ(浮動小数点数) 3 .圧縮度係数(浮動小数点数) 4 .圧縮オーダー(整数) 5 .伸張度係数(浮動小数点数) 6 .伸張オーダー(整数)[0033]   In summary, the standard Curl elasticity has 6 fields. 1. Minimum size (floating point number) 2. Desired size (float) 3. Compressibility factor (floating point number) Four . Compression order (integer) Five . Expansion coefficient (floating point number) 6. Extension order (integer)

【0034】 弾性を表わすCurlオブジェクトは、タイプ・コード(type code )(全Curlオ
ブジェクトで同様)と、前述の値を含むフィールドとを有する。特殊な例の弾性
のコンパクト表示は、異なるタイプ・コードと前記フィールドのサブセットとを
有する。欠落フィールドの関連する値は、タイプ・コードと、コンパクト表示で
適用されるフィールドとを参照して計算される。例えば、タイプ・コードStretc
hyElastic は、前述のリストからのフィールド(1) −(4) を含むオブジェクトに
関連している。フィールド(5) または(6) に対応する値が必要なとき、それらは
フィールド(3) と(4) からそれぞれ、値を提供して適用される。
A Curl object representing elasticity has a type code (same for all Curl objects) and a field containing the above-mentioned values. A special example elastic compact representation has different type codes and a subset of the fields. The associated value of the missing field is calculated with reference to the type code and the field applied in the compact representation. For example, type code Stretc
hyElastic is associated with the object containing fields (1)-(4) from the list above. When values corresponding to fields (5) or (6) are required, they are applied by providing values from fields (3) and (4) respectively.

【0035】 コンパクト弾性表示の別の例は、RigidElasticであり、これは望ましいサイズ
・フィールドだけを有する。他のフィールドに対応する値が必要なとき、それら
の値を計算して、最小サイズが望ましいサイズに等しく、さらにフィールド(3)
−(6) が標準の" 剛性" オブジェクトに関連する値を持つようにする。
Another example of a compact elastic display is RigidElastic, which has only the desired size field. When you need the corresponding values for the other fields, calculate those values so that the minimum size is equal to the desired size, and the field (3)
− Let (6) have values associated with standard “stiffness” objects.

【0036】Curl言語での基本的弾性オペレーションの実行 基本的弾性オペレーションのCurlでの実行は、以下の、標準の6つの弾性フィ
ールドによって記述できる。
Performing Basic Elasticity Operations in Curl The execution of basic elastic operations in Curl can be described by the following six standard elasticity fields.

【0037】 加算オペレーションは、以下のフィールドを持つ結果を生成する。 1 .最小サイズは、そのオペランドの最小サイズの総和である。 2 .望ましいサイズは、そのオペランドの望ましいサイズの総和である。 3 .圧縮度係数は、両方のオペランドが同一圧縮オーダーを有する場合、そのオ
ペランドの圧縮度係数の総和である。その他の場合は、結果の圧縮度係数は、よ
りも大きい圧縮オーダーを有するオペランドの圧縮度係数に等しくなる。 4 .圧縮オーダーはそのオペランドの圧縮オーダーの大きい方に等しくなる。 5 .両方のオペランドが同一伸張オーダーを持つ場合、伸張度係数はそのオペラ
ンドの伸張度係数の総和である。その他の場合は、結果の伸張度係数は、よりも
大きい伸張オーダーを有するオペランドの伸張度係数に等しくなる。 6 .伸張オーダーはそのオペランドの伸張オーダーの大きい方に等しくなる。
The add operation produces a result with the following fields: 1. The minimum size is the sum of the minimum sizes of its operands. 2. The desired size is the sum of the desired sizes of its operands. 3. The compressibility factor is the sum of the compressibility factors of the operands when both operands have the same compression order. Otherwise, the resulting compressibility factor will be equal to the compressibility factor of the operand with the greater compression order. Four . The compression order will be equal to the greater of the compression orders of its operands. Five . If both operands have the same extension order, then the extension factor is the sum of the extension factors for that operand. Otherwise, the resulting stretch factor is equal to the stretch factor of the operand with the higher stretch order. 6. The extension order is equal to the greater extension order of its operands.

【0038】 このルールに従って作成される弾性体は、加算オペレーションの理想結果の近
似値だけになることがある。例えば、小さい望ましいサイズと大きい圧縮オーダ
ーとを持つ弾性体Aが、大きい望ましいサイズと小さい圧縮オーダーとを持つ弾
性体Bに加算される場合、得られる弾性体Cの圧縮オーダーはAと等しくなり、
Cの望ましいサイズはAとBのそれらの望ましいサイズの和になる。したがって
、Cは容易に圧縮できる弾性体となり、サイズがBだけの望ましいサイズよりも
小さくなった後でも、容易に圧縮できる状態を維持する。この挙動はばねの機械
的システムの挙動とは異なる。機械的システムでは、高度に圧縮可能な弾性体A
は長さゼロに圧縮されると、Aのそれ以上の圧縮は不可能であり、このとき、B
の圧縮オーダーに対応して、弾性体Cは圧縮が極めて困難になる。
The elastic body created according to this rule may only be an approximation of the ideal result of the addition operation. For example, if an elastic body A with a small desired size and a large compression order is added to an elastic body B with a large desired size and a small compression order, the resulting elastic body C will have a compression order equal to A,
The desired size of C is the sum of those desired sizes of A and B. Therefore, C becomes an elastic body that can be easily compressed, and maintains a state in which it can be easily compressed even after the size becomes smaller than the desired size of B alone. This behavior differs from that of the mechanical system of the spring. For mechanical systems, highly compressible elastic body A
Is compressed to zero length, no further compression of A is possible, where B
Corresponding to the compression order of, the elastic body C becomes extremely difficult to compress.

【0039】 ここに述べる加算オペレーションは単に近似であるが、その結果を、固定され
たスペース量に表示できる長所を持つ。弾性加算オペレーションから理想結果を
作成する全ての方法は、加算オペレーションの結果自体が別の加算オペレーショ
ンに対するオペランドとして提供されるため、スペース量の増加を必要とし、結
果の忠実度の向上とバランスする必要があるスペースと時間の費用の増加につな
がる。前述の近似は効率的に計算でき、また実際に良好な結果を与える。
Although the addition operation described here is only an approximation, it has the advantage that the result can be displayed in a fixed amount of space. All methods of creating an ideal result from an elastic add operation require an increased amount of space, as the result of one add operation itself is provided as an operand to another add operation, and need to be balanced with improved fidelity of the result. There is an increase in space and time costs. The above approximation can be calculated efficiently and gives good results in practice.

【0040】 2つの弾性体AとBの最大オペレーションは、以下のフィールドを持つ結果を
生成する。 1 .最小サイズは、そのオペランドの最小サイズの大きい方である。 2 .望ましいサイズは、他の望ましいサイズに対して最小弾性(体)である弾性
(体)の望ましいサイズに近い。弾性値(elasticity)は最初にオーダーが決定さ
れる。オーダーが等しい場合は、係数を比較する。一方の弾性体を伸張して他方
に一致させ、同時に他方を圧縮して最初の弾性体に一致させる必要があるために
、弾性値比較は伸張度と圧縮度の比較である。詳細には、望ましいサイズは、以
下(a)または(b)の場合には、Aの望ましいサイズに等しい。 (a)Aの望ましいサイズがBのそれよりも大きく、かつ次のどちらかである。
(i)Aの圧縮オーダーがBの伸縮オーダーよりも小さいか、または (ii)Aの圧縮オーダーがBの伸縮オーダーに等しく、かつAの圧縮度係数がB
の伸縮度係数以下である。 (b)Aの望ましいサイズがBのそれよりも小さく、かつ次のどちらかである。
(i)Aの伸縮オーダーがBの圧縮オーダーよりも小さいか、または (ii)Aの伸縮オーダーがBの圧縮オーダーに等しく、かつAの伸張度係数がB
の圧縮度係数よりも小さい。 その他の場合は、結果の望ましいサイズは、Bの望ましいサイズに等しい。
The maximum operation of two elastics A and B produces a result with the following fields: 1. The minimum size is the larger of the minimum sizes of its operands. 2. The desired size is close to the desired size of elasticity (body), which is the minimum elasticity (body) relative to other desired sizes. The elasticity is first ordered. If the orders are equal, compare the coefficients. Since it is necessary to stretch one elastic body to match the other and simultaneously compress the other to match the first elastic body, the elasticity value comparison is a comparison between the extension degree and the compression degree. Specifically, the desired size is equal to the desired size of A in the following cases (a) or (b). (A) The desired size of A is larger than that of B, and either:
(I) the compression order of A is smaller than the expansion order of B, or (ii) the compression order of A is equal to the expansion order of B, and the compression factor of A is B
Is less than or equal to the coefficient of elasticity. (B) The desired size of A is smaller than that of B, and either:
(I) the expansion / contraction order of A is smaller than the compression order of B, or (ii) the expansion / contraction order of A is equal to the compression order of B, and the expansion coefficient of A is B
Is less than the compression factor of. Otherwise, the desired size of the result is equal to the desired size of B.

【0041】 3 .圧縮度係数は、望ましいサイズ・フィールド(2) の値に対し選択された望ま
しいサイズの弾性(体)の圧縮度係数である。両方のオペランドが同一の望まし
いサイズを有する場合、そのオペランドが異なる圧縮オーダーを持つと、より小
さい圧縮オーダーに関連する圧縮度係数が使用され、そうでないときは、2つの
圧縮度係数の小さい方が使用される。 4 .圧縮オーダーは、フィールド(3) に対し選択された圧縮度係数に関連する圧
縮オーダーである。 5 .伸張度係数は、フィールド(2) の値に対し選択された望ましいサイズの弾性
の伸張度係数である。両方のオペランドが同一の望ましいサイズを有する場合、
そのオペランドが異なる伸張オーダーを持つと、より小さい伸張オーダーに関連
する伸張度係数が使用され、そうでないときは、2つの伸張度係数の小さい方が
使用される。 6 .伸張オーダーは、フィールド(5) に対し選択された伸張度係数に関連する伸
張オーダーである。
3. The compressibility factor is the elasticity (body) compressibility factor of the desired size selected for the value of the desired size field (2). If both operands have the same desired size, and the operands have different compression orders, then the compression factor associated with the smaller compression order is used, otherwise the smaller of the two compression factors is used. Four . The compression order is the compression order associated with the compression factor selected for field (3). Five . The modulus of elasticity is the modulus of elasticity of the desired size of elasticity selected for the value of field (2). If both operands have the same desired size,
If the operands have different expansion orders, then the expansion coefficient associated with the smaller expansion order is used, otherwise the smaller of the two expansion coefficients is used. 6. The stretch order is the stretch order associated with the stretch factor selected for field (5).

【0042】 前述の加算の実行と同様に、最大オペレーションのこの実行は、状態によって
は近似結果を生成するだけである。例えば、弾性体Aが小さい望ましいサイズと
小さい圧縮オーダーとを有し、一方、弾性体Bが大きい望ましいサイズと大きい
圧縮オーダーとを有すると仮定する。AとBの伸張オーダーがBの圧縮オーダー
よりも大きい場合、AとBの大きいほうである弾性体Cの望ましいサイズは、B
の望ましいサイズに等しくなる。同様に、Cの圧縮度と圧縮オーダーはBのそれ
らと等しくなり、この場合、Cは容易に圧縮できる。機械的ばねと同様に、Aの
望ましいサイズが達成されると、Cは圧縮がさらに困難になると推定される。し
かし、弾性体Cが前述のアウトラインに従って計算されると、このような状態が
発生しない。
Similar to performing the addition described above, this performing of the maximum operation only produces an approximate result in some states. For example, assume that elastic A has a small desired size and a small compression order, while elastic B has a large desired size and a large compression order. When the expansion order of A and B is larger than the compression order of B, the desirable size of elastic body C, which is the larger of A and B, is B
Equals the desired size of. Similarly, the compression degree and compression order of C are equal to those of B, in which case C can be easily compressed. Similar to mechanical springs, C is presumed to be more difficult to compress once the desired size of A is achieved. However, when the elastic body C is calculated according to the outline described above, such a state does not occur.

【0043】 加算オペレーションの場合と同様に、最大オペレーションの全体忠実度は、結
果を計算するのに必要なスペースと時間を制限しないことを条件とする。前述の
近似が使用されるのは、それが効率的計算を可能にし、かつ実際に良好な結果を
与えるからである。2つの弾性体AおよびBと、長さxに関する分割オペレーシ
ョンは、分割(A,B、x )と記述され、弾性体Aを有するオブジェクトの長さ
を生成する。分割オペレーションは次のように実行される。
As with the add operation, the overall fidelity of the maximum operation is subject to the unlimited space and time required to compute the result. The approximation described above is used because it allows efficient computations and gives good results in practice. The split operation on the two elastic bodies A and B and the length x is described as split (A, B, x) and produces the length of the object having the elastic body A. The split operation is executed as follows.

【0044】 1 .x が2つの弾性(体)の最小サイズの和よりも小さい場合、長さx は弾性(
体)の最小サイズに比例して分割される。したがって、分割オペレーションの結
果は以下のようになる。 (x*A.最小サイズ)/(A.最上サイズ+B.最小サイズ) 2.一方、余剰(または不足)eは、x から2つの望ましいサイズの和を減算し
て計算される。eは、以下のように、2つの弾性(体)に配分される。 a.eが余剰で、かつ2つの弾性(体)が等しい伸張オーダーを有する場合、e
は2つの弾性(体)の伸張度係数に比例して分割される。したがって、弾性体A
の配分される余剰分は以下のようになる。 (e*A.伸張度)/(A.伸張度+B.伸張度) b.eが不足で、かつ2つの弾性(体)が等しい圧縮オーダーを有する場合、e
は2つの弾性(体)の圧縮度係数に比例して分割する。 c.eが余剰で、かつ2つの弾性(体)が異なる伸張オーダーを有する場合、全
てのeをより大きい伸張オーダーを持つ弾性(体)に配分する。 d.eが不足で、かつ2つの弾性(体)が異なる圧縮オーダーを有する場合、全
てのeをより大きい圧縮オーダーを持つ弾性(体)に配分する。
1. If x is less than the minimum size of two elastic (body) lengths, the length x is elastic (
The body is divided in proportion to the minimum size. Therefore, the result of the split operation is: (X * A. Minimum size) / (A. Top size + B. Minimum size) 2. On the other hand, the surplus (or deficit) e is calculated by subtracting the sum of the two desired sizes from x. e is distributed to two elasticity bodies as follows. a. If e is a surplus and the two elastic bodies have the same extension order, e
Is divided in proportion to the elastic modulus of the two elastic bodies. Therefore, the elastic body A
The surplus allocated to is as follows. (E * A. Stretch degree) / (A. Stretch degree + B. Stretch degree) b. If e is insufficient and the two elastic bodies have the same compression order, e
Divides in proportion to the compressibility coefficient of the two elastic bodies. c. If e is a surplus and the two elasticity (body) have different extension orders, all e are allocated to the elasticity (body) having the larger extension order. d. If e is insufficient and the two elastics (bodies) have different compression orders, all e are distributed to the elastics (bodies) with the larger compression orders.

【0045】 次に、分割オペレーションの結果は、Aの望ましいサイズとAに対し配分され
たeの部分との和になる。ただし、AまたはBのどちらかに、それの最小サイズ
よりも小さいサイズを割当てることを避けるために、必要に応じて、この結果が
調整されている場合は除く。
The result of the split operation is then the sum of the desired size of A and the portion of e allocated to A. However, unless this result is adjusted, as necessary, to avoid assigning either A or B a size smaller than its minimum size.

【0046】 スケール・オペレーションは、弾性体Aにスケール・ファクタ(倍率)f を適
用する。得られる弾性のパラメータは、以下のように、Aのスケール・ファクタ
から計算される。 1 .最小サイズは、Aの最小サイズのf倍である。 2 .望ましいサイズは、Aの望ましいサイズのf倍である。 3 .圧縮度係数は、Aの圧縮度係数のf倍である。 4 .圧縮オーダーは、Aの圧縮オーダーに等しい。 5 .伸張度係数は、Aの伸張度係数のf倍である。 6.伸張オーダーは、Aの伸張オーダーに等しい。 他の弾性オペレーションは同様の方法で実行される。
The scale operation applies a scale factor (magnification) f to the elastic body A. The elastic parameter obtained is calculated from the scale factor of A as follows. 1. The minimum size is f times the minimum size of A. 2. The desired size is f times the desired size of A. 3. The compression factor is f times the compression factor of A. Four . The compression order is equal to the compression order of A. Five . The expansion coefficient is f times the expansion coefficient of A. 6. The extension order is equal to the extension order of A. Other elastic operations are performed in a similar manner.

【0047】グラフィック原点と寸法 前述と同様に、Curlは弾性を使用して、グラフィック・オブジェクトのサイズ
基本設定を記述する。このようなオブジェクトの各々は幅と高さを持ち、またオ
ブジェクト内のどこかにある" 原点" を有する。原点は、例えば、ベースライン
から上下に突出するテキストのラインのベースラインの位置を表示するのに有効
な方法である。また、原点は垂直位置合わせに有効であり、例えば、数字が、テ
キスト列内に入り、かつテキスト列の原点が前記数字の小数点の位置にある場合
、1つの列の数字の小数点を、前記原点に位置合わせして、簡単に整列させるこ
とができる。
Graphic Origin and Dimensions As before, Curl uses elasticity to describe size preferences for graphic objects. Each such object has a width and height, and has an "origin" somewhere within the object. The origin is, for example, an effective method for displaying the position of the baseline of a line of text protruding vertically from the baseline. Also, the origin is effective for vertical alignment, for example, if a number falls within the text string and the origin of the text string is at the decimal point position of the digit, the decimal point of the number in one column is set to the origin point. It can be easily aligned by aligning with.

【0048】 原点を考慮することにより、図4に示されるように、弾性を使用して記述され
る4つのサイズ基本設定が存在する。 1 .オブジェクトの原点とその上部までの距離(オブジェクトの" 上側部" ) 2 .オブジェクトの原点とその底部までの距離(オブジェクトの" 下側部" ) 3 .オブジェクトの原点とその左端までの距離(オブジェクトの" 左範囲" ) 4 .オブジェクトの原点とその右端までの距離(オブジェクトの" 右範囲" )
Considering the origin, there are four size preferences described using elasticity, as shown in FIG. 1. The distance between the origin of the object and its top ("upper part" of the object) 2. The distance between the origin of the object and its bottom ("lower part" of the object) 3. Distance from the origin of the object to its left edge ("left range" of the object) Distance between the origin of the object and its right edge ("right range" of the object)

【0049】 垂直寸法のサイズ基本設定を記述する単一ユニット内への上側部と下側部に対
し、サイズ基本設定を記述する弾性体を一緒に束ねることは有利である。同様に
、オブジェクトの左と右範囲に対する基本設定を記述する弾性体を一緒に束ねる
ことは有利である。したがって、Curl実行は、原点の両側にサイズ基本設定を記
述するペアの弾性オブジェクトを含むクラスOriginalErastic を提供する。
It is advantageous to bundle the elastics describing the size settings together for the upper and lower parts into a single unit describing the size settings for the vertical dimension. Similarly, it is advantageous to bundle elastic bodies together that describe the basic settings for the left and right range of the object. Therefore, the Curl implementation provides a class OriginalErastic that contains a pair of elastic objects that describe size preferences on either side of the origin.

【0050】 図形や矩形のような簡単なグラフィックスは、適正な弾性体を簡単に合成して
、例えば図形のピクセル数のような内部パラメータを基にして、それらのサイズ
基本設定を記述する。一方、グラフィック・コンテナは、前述の弾性オペレーシ
ョンを使用して、それらコンテナのコンポーネント・グラフィックスの弾性体を
組み合わせて弾性体を生成する。
For simple graphics such as graphics and rectangles, the appropriate elastics are simply composited and their size settings are described based on internal parameters such as the number of pixels in the graphics. Graphic containers, on the other hand, use the elastic operations described above to combine the elastic bodies of their component graphics to create elastic bodies.

【0051】HBoxとVboxによる弾性の使用 例えば、Curlは、グラフィックスの集積を水平並びで置いた、HBoxとして知ら
れるコンテナを有する。HBoxはいくつかのオプションを有し、そのオプションに
より、HBoxのコンポーネントをそれらの原点、底部、上部、または中心に位置合
わせするように指定できる。そのコンポーネントの原点に位置合わせされている
HBoxを考慮する場合、HBox自体の原点は、HBox内の第1(最も左)オブジェクト
の原点に配置され、HBox内の他のコンポーネントの全ての原点はHBox自体の原点
と同一ライン上に位置合わせされる。
Using Elasticity with HBox and Vbox For example, Curl has a container, known as an HBox, that has a collection of graphics arranged in a horizontal row. The HBox has several options that allow you to specify that the components of the HBox should be aligned with their origin, bottom, top, or center. Aligned to the origin of the component
When considering the HBox, the origin of the HBox itself is located at the origin of the first (leftmost) object in the HBox, and the origins of all other components in the HBox are aligned with the origin of the HBox itself. To be done.

【0052】 図5は3つのオブジェクト、すなわちCastTextGFlowBox、Rectangle (矩形)
、および別のCastTextGFlowBoxを含む。図6はそのHBoxのグラフィック階層を示
す。この特定のHBoxは、コンポーネント・オブジェクトの垂直原点に整列するよ
うに配置されている。Rectangle は、原点が矩形の左下コーナーであることを必
要とする弾性体を生成する、一方、テキストは、原点がテキストの左端であるこ
とを必要とする弾性体を生成する、このように、これら3 つのオブジェクトは
このHBox内に表示されるとき、Rectangle の底部はテキストのベースラインに位
置合わせされるが、これは一般に希望する配列である。各テキスト・ブロックの
底部がそのテキスト・ブロックのベースラインより下(テキスト・ブロック内の
下方文字"y" と"g" の位置により示されるように)であっても、原点の使用によ
りこの配列が可能になる。
FIG. 5 shows three objects, CastTextGFlowBox and Rectangle.
, And another CastTextGFlowBox. FIG. 6 shows the graphic hierarchy of the HBox. This particular HBox is aligned to the vertical origin of the component object. Rectangle produces an elastic body that requires the origin to be the lower left corner of the rectangle, while text produces an elastic body that requires the origin to be the left edge of the text, thus these When the three objects are displayed within this HBox, the bottom of the Rectangle is aligned with the baseline of the text, which is generally the desired array. Even if the bottom of each text block is below the text block's baseline (as indicated by the position of the lower letters "y" and "g" in the text block), this array is used by the origin. Will be possible.

【0053】 図7は、オブジェクトの水平原点に位置されたいくつかのオブジェクトを含む
VBoxを示す。図で示されるように、小数点を数字の1つの列に整列させることは
、水平原点を位置合わせするのに便利である。図8は、図7に対応するグラフィ
ックス階層を示しており、図7に表れる全オブジェクトが図8に明らかに示され
るように完全に展開されている。Curlでは、原点が小数点を表わしている全テキ
スト列に対し小数点のすぐ左に置かれたテキストを含む、グラフィック・オブジ
ェクトを作成することができる。しかし、このようなオブジェクトはCirl内に組
み込まれないため、数字の各列は2つのテキスト・ブロックを含むHBoxとして構
成される。すなわち、第1ブロックは小数点の左に数字を含み、第2ブロックは
小数点を含み、存在する場合は、その右に数字を含む。各HBoxは、第1テキスト
・ブロックの右端の原点を置くように構成されている。Ruleオブジェクトは、"
33.333" の真下に水平ラインを表示する機能を持つ。Ruleオブジェクトは、1/72
インチ(0.35mm)の固定高さを持つが、幅は伸張でき、それによりその幅がVBox
の幅に自動的に一致する。
FIG. 7 contains several objects located at the horizontal origin of the objects
Indicates VBox. Aligning the decimal points to one column of numbers, as shown, is useful for aligning the horizontal origin. FIG. 8 shows the graphics hierarchy corresponding to FIG. 7, with all the objects appearing in FIG. 7 fully expanded as clearly shown in FIG. Curl allows you to create a graphic object that contains the text placed to the immediate left of the decimal point for all text strings whose origin represents the decimal point. However, since such an object is not embedded in Cirl, each string of numbers is constructed as an HBox containing two text blocks. That is, the first block contains a number to the left of the decimal point and the second block contains a decimal point and, if present, the number to the right. Each HBox is configured to place the rightmost origin of the first text block. The Rule object is "
It has a function to display a horizontal line just under 33.333 ". Rule object is 1/72
Has a fixed height of inch (0.35mm) but can be stretched in width, which makes it wider
Automatically matches the width of.

【0054】 図5のような場合には、HBoxの左の範囲の弾性は、単に第1コンポーネントの
左の範囲の弾性である。HBoxの右の範囲の弾性は、弾性加算オペレーションを使
用して計算され、第1 コンポーネントの右の範囲の弾性を、残りのコンポーネン
ト全ての左右の範囲の弾性に結合する。HBoxの上側部弾性は、弾性最大オペレー
ションを使用して計算され、HBoxコンポーネントの全ての上側部弾性を結合する
。HBoxの下側部弾性は、同様に、弾性最大オペレーションを使用して計算され、
HBoxコンポーネントの全ての下側部弾性を結合する。
In the case of FIG. 5, the elasticity of the left area of the HBox is simply the elasticity of the left area of the first component. The right range elasticity of the HBox is calculated using the elastic add operation, which combines the right range elasticity of the first component with the left and right range elasticity of all remaining components. The HBox's Upper Elasticity is calculated using the Elastic Maximum operation and combines all the upper elastics of the HBox component. The lower side elasticity of the HBox is similarly calculated using the elastic maximum operation,
Joins all the underside elasticity of the HBox component.

【0055】 前述の説明は、HBoxのサイズ基本設定を記述する弾性を、HBoxのグラフィック
の子オブジェクトのサイズ基本設定を描く弾性から計算する方法を説明している
。図5の他の部分は、これらの弾性を使用してレイアウト決定を行う方法である
。幅優先レイアウト・ネゴシエーションでは、HBoxがその幅弾性を計算後、HBox
のグラフィックの親オブジェクトが、HBoxの左右範囲の数値を最終的に決定し、
これらの値をHBoxに通信する。HBoxはこの情報を使用して、HBoxのグラフィック
の子から前に得られた幅弾性と組合せて、HBoxのグラフィックの子の各々に対し
、左右範囲および水平原点位置を計算する。
The above description describes a method of calculating the elasticity describing the HBox's size preferences from the elasticity describing the HBox's graphic child object's size preferences. The other part of FIG. 5 is a method of making a layout decision using these elasticity. In width-first layout negotiation, the HBox calculates its width elasticity and then
The graphic's parent object finally determines the numbers in the left and right range of the HBox,
Communicate these values to HBox. The HBox uses this information to calculate the left-right range and horizontal origin position for each of the HBox's graphic children in combination with the width elasticity previously obtained from the HBox's graphic children.

【0056】 HBoxの第1の子オブジェクトに左範囲は、それがHBox自体の左範囲に等しいた
め、容易に計算される。しかし、HBoxの子オブジェクトの残りの左右範囲の計算
は、複雑な作業である。図9に示されるように、3つのグラフィックの子A、B
、Cを持つ場合を考える。各オブジェクトの原点は"*" で記されている。
The left extent of the HBox's first child object is easily calculated because it is equal to the left extent of the HBox itself. However, calculating the left and right bounds of the HBox child objects is a complex task. As shown in FIG. 9, three graphic children A, B
, C. The origin of each object is marked with "*".

【0057】 A、B、Cの左範囲はal、bl、clでそれぞれ表わされ、A、B、Cの右範囲は
ar、br、crでそれぞれ表わされている。記号AL、AR等は、範囲を計算するのに使
用されたA、B、Cの基本設定を描く対応する弾性を意味する。
The left ranges of A, B, and C are represented by al, bl, and cl, and the right ranges of A, B, and C are
Represented by ar, br, and cr, respectively. The symbols AL, AR, etc. refer to the corresponding elasticity delineating the basic settings of A, B, C used to calculate the range.

【0058】 前述のように、alは全体としてはHBoxの左範囲に等しいが、和ar+bl+cl+cr
はHBoxの右範囲に等しくする必要がある。これらの値を計算するいくつかの方法
がある。簡単な方法は、弾性分割オペレーションを連続的に適用して、右から左
に進める。第1のこのような分割オペレーションは、以下の式を計算する。 cr=divide(CR,AR+BL+BR+CL,r ) ここで、r はHBoxの右範囲であり、AR+BL+BR+CLは4つの弾性体AR 、BL、
BR、CLの弾性和である。第2の分割オペレーションは、以下の式を計算する。 cl =divide(CL,AR+BL+BR,r-cr) 第3の分割オペレーションは、以下の式を計算する。 br=divide(BR,AR+BL,r-cr-cl ) この方法で計算を進行し、必要な範囲の全てが計算され終るまで続ける。この手
順は、おおよそ3つのグラフィックの子を持つHBoxに対し一般化したものである
As described above, al is equal to the left range of HBox as a whole, but sum ar + bl + cl + cr
Must be equal to the right range of HBox. There are several ways to calculate these values. A simple method is to apply elastic splitting operations sequentially, proceeding from right to left. The first such split operation computes the following equation: cr = divide (CR, AR + BL + BR + CL, r) where r is the right range of HBox, and AR + BL + BR + CL are four elastic bodies AR, BL,
It is the elastic sum of BR and CL. The second split operation computes the following formula: cl = divide (CL, AR + BL + BR, r-cr) The third division operation calculates the following equation. br = divide (BR, AR + BL, r-cr-cl) Proceed with the calculation by this method, and continue until the calculation of all necessary range is completed. This procedure is a generalization for an HBox with approximately three graphic children.

【0059】 代替方法はこの方法と異なるが、同一結果を導き出す。代替方法は、以下のよ
うに、第1にcl+crを計算する。 cl+cr=divide(CL+CR,AR+BL+BR+CL,r ) 次にこの結果を、以下のように、コンポーネントclとcrに分解する。 cl=divide(CL,CR,cl+cr) cr=(cl+cr)−cl
The alternative method differs from this method but leads to the same result. An alternative method is to first calculate cl + cr as follows. cl + cr = divide (CL + CR, AR + BL + BR + CL, r) Next, this result is decomposed into components cl and cr as follows. cl = divide (CL, CR, cl + cr) cr = (cl + cr) -cl

【0060】 同一方法をさらに繰返して、blとbrから求められるbl+brを算出するなどする
。後述するように、この方法は、HBox内に含まれる比較的剛性のグラフィック・
オブジェクトのまわりに、必要に応じて挿入されるパディング(padding) の量を
、HBoxが計算するときの計算をわずかに簡単化する。
The same method is further repeated to calculate bl + br calculated from bl and br. As we will see later, this method is based on the relatively rigid graphics contained within the HBox.
It slightly simplifies the calculation when the HBox calculates the amount of padding that is inserted around the object as needed.

【0061】 さらに別の手順の計算が可能である。例えば、図18のフローチャートは、範
囲を左から右に計算する方法を示す。
Still another procedure of calculation is possible. For example, the flow chart of Figure 18 illustrates a method of calculating a range from left to right.

【0062】 Curlはまた、VBoxとし知られるコンテナを有する。VBoxは、HBoxと全く同一に
機能するが、水平寸法と垂直寸法が入れ代わっている。
Curl also has a container known as a VBox. The VBox works exactly like the HBox, but with horizontal and vertical dimensions swapped.

【0063】HBoxとVBoxの弾性計算が正確に機能する理由 弾性加算および分割オペレーションを決定する目的は、HBox内のコンポーネン
ト・オブジェクトの水平範囲を計算するための前述のポリシーから導くことがで
きる。1つの例に対し、前述の例の弾性体AR、BL、BR、CRの5つが等しい場合を
考える。このとき、範囲ar、bl、cl、crの5つ全てが等しいことが望ましいこと
は直感的に分かる。これが成立するためには、以下のオペレーションがr の値の
1/5 となる結果を導く必要がある。 cr =divide(CR,AR+BL+BR+CL,r ) さらに、同様に、以下のオペレーションがr の値の2/5 となる結果を導く必
要がある。 cl+cr=divide (CL+CR,AR+BL+BR,r) 実際、これらの望ましい値は、加算オペレーションから得られる弾性の3つの主
要特性により、上で与えられた加算と分割の決定により得られる。
Why HBox and VBox Elasticity Calculations Work Correctly The purpose of determining elastic add and split operations can be derived from the aforementioned policy for calculating the horizontal extent of component objects within an HBox. For one example, consider a case where the five elastic bodies AR, BL, BR, CR in the above example are equal. At this time, it is intuitively understood that it is desirable that all five of the ranges ar, bl, cl and cr are equal. For this to work, the following operations on the value of r
It is necessary to derive a result that is 1/5. cr = divide (CR, AR + BL + BR + CL, r) Furthermore, similarly, the following operation needs to lead to a result that is 2/5 of the value of r. cl + cr = divide (CL + CR, AR + BL + BR, r) In fact, these desired values are obtained by the addition and division decisions given above, due to the three main properties of elasticity obtained from the addition operation.

【0064】 1.結果の望ましいサイズは、オペランドの望ましいサイズの総和である。 2.オペランドの伸張オーダーが等しいとき、その結果の伸張度係数はオペラン
ドの伸張度係数の総和に等しい。 3.オペランドの圧縮度オーダーが等しいとき、その結果の圧縮度係数はオペラ
ンドの圧縮度係数の総和に等しい。
1. The desired size of the result is the sum of the desired sizes of the operands. 2. When the expansion orders of the operands are equal, the resulting expansion coefficient is equal to the sum of the expansion coefficients of the operands. 3. When the compactness orders of the operands are equal, the resulting compactness factor is equal to the sum of the compactness factors of the operands.

【0065】 このように、N個の等しい弾性の総和では、総和の望ましいサイズ、伸張度係
数、および圧縮度係数は、オペランドの弾性の対応特性の値の各N倍である。分
割オペレーションのdivide(A ,B ,r )の値r がAとBの望ましいサイズの和
よりも大きく、かつAとBの伸張オーダーが等しい場合、分割オペレーションは
、AとBの間の余剰s −r をそれらの伸張度係数に比例して配分する。分割オペ
レーションが等しい圧縮オーダーを持つ2つの弾性間のスペースの不足を配分す
るときにも、相似配分は維持する。分割オペレーションのこれらの配分特性は、
加算オペレーションが望ましいサイズ、伸張度係数、および圧縮度係数を計算す
る方法と結合して、前述の計算が、確実に直感的にも分かる希望する結果を生成
することを保証する。弾性(体)が伸張度係数または圧縮度係数を持たない場合
、これらの結果は生成できない。なぜなら、総和AR+BL+BR+CLが、その間にス
ペースの配分を必要とする4つのユニットを含むのに対して、総和AR+BL+BRは
3つだけを含むことを、分割オペレーションが認識する一般的方法が存在しない
からである。
Thus, for N equal sums of elasticity, the desired size of the summation, the stretch coefficient, and the compressibility coefficient are each N times the value of the corresponding characteristic of the elasticity of the operands. If the value r of the divide operation's divide (A, B, r) is greater than the sum of the desired size of A and B, and the stretch order of A and B is equal, the split operation is the surplus s between A and B. Distribute -r proportionally to their stretch factors. Similar distributions are maintained even when the split operation distributes the lack of space between two elastics with equal compression orders. These allocation characteristics of split operations are
The addition operation, combined with the method of calculating the desired size, stretch factor, and compressibility factor, ensures that the above calculations produce the desired results that are certainly intuitive. These results cannot be generated if the elasticity (body) does not have a stretch or compression factor. This is because there is no general way for a split operation to recognize that the summation AR + BL + BR + CL contains four units that require space allocation between them, whereas the summation AR + BL + BR contains only three units. .

【0066】 別の例として、問題とする弾性体の全てが等しい場合(CLが他の全てに比べて
大きい伸張オーダーを有することを除いて)を考える。さらに、この例における
距離rがAR+BL+BR+CL+CRの望ましいサイズよりも大きいと仮定すると、配分
するための余剰のスペースができる。直感的に分かるように、余剰スペースの全
てがCLに割当てられることが望ましい。なぜなら、CLが他の全ての弾性体よりも
大きい伸張を有するからである。この場合、CLを含む全ての弾性体(例えばCL−
CRまたはAR+BL+BR+CL)の総和が、CLと同一伸張オーダーを有し、かつCLと等
しい伸張度係数を有することが、弾性加算オペレーションの定義から理解できる
。その一方で、CLを含まない(例えばAR+BL+BRのような)弾性の和は、前述の
ように、小さい伸張オーダーと、加算される弾性に比例する伸張度係数とを有す
る。この場合、右側のオペランドにCLを含む、以下のような分割オペレーション cr=divide(CR,AR+BL+BR+CL,r ) は、余剰スペースを全て右側のオペランドに割当てるので、crはCRの望ましいサ
イズに等しくなる。しかし、左側のオペランドにCLを含む、以下のような分割オ
ペレーション cl=divide(CL,AR+BL+BR,r −cr) は、余剰スペースを全て左側のオペランドに割当てるので、clはCRの望ましいサ
イズと、割当てられた余剰スペースの量との和に等しくなる。最後に、どちらの
オペランドにもCLを含まない、以下のような分割オペレーション br=divide(BR,AR+BL,r-cr-cl ) は、前述のとおりに機能する。以下の論理により、加算と分割オペレーションの
機能が同時に作用することにより、加算される弾性の間に距離を割当てるために
使用される分割オペレーションの順番にかかわらず、CLに対し余剰スペース全て
を割当てる直感的に分かる望ましい結果が得られる。例えば、第1ステップが、 cr=divide(CR,AR+BL+BR+CL,r ) または、 cl+cr=divide(CL−CR,AR+BL+BR,r ) のどちらでも、望ましい結果が得られる。
As another example, consider the case where all of the elastic bodies in question are equal (except that CL has a larger stretch order than all others). Furthermore, assuming that the distance r in this example is larger than the desired size of AR + BL + BR + CL + CR, there is extra space to allocate. As is intuitive, it is desirable that all of the surplus space be allocated to CL. This is because CL has a greater stretch than all other elastic bodies. In this case, all elastic bodies including CL (eg CL-
It can be seen from the definition of the elastic add operation that the sum of CR or AR + BL + BR + CL) has the same stretch order as CL and has a stretch factor equal to CL. On the other hand, the sum of elasticity without CL (such as AR + BL + BR) has a small extension order and an extension coefficient proportional to the added elasticity, as described above. In this case, cr is equal to the desired size of CR, because the following division operation, cr = divide (CR, AR + BL + BR + CL, r), which includes CL in the right operand, allocates all excess space to the right operand. However, the following division operation cl = divide (CL, AR + BL + BR, r-cr) that includes CL in the left operand allocates all the surplus space to the left operand, so cl is the desired size of CR and allocation. Equal to the amount of surplus space allocated. Finally, the following split operation br = divide (BR, AR + BL, r-cr-cl), where neither operand contains CL, works as described above. The intuition of allocating all of the extra space for CL, regardless of the order of the division operations used to allocate the distance between the elasticity to be added, is that the functions of the addition and division operations work simultaneously due to the following logic: The desired result is obtained. For example, if the first step is either cr = divide (CR, AR + BL + BR + CL, r) or cl + cr = divide (CL-CR, AR + BL + BR, r), the desired result is obtained.

【0067】 同一結論が、この特性の多くの他の例からも導かれる。[0067]   The same conclusions are drawn from many other examples of this property.

【0068】グリッドとテーブル 複雑なグラフィック・レイアウトは、HBoxとVBoxを相互に内部にネスティング
(組み入れる)することにより作成できる。Curlもまたグリットと表コンテナを
有し、それらを使用して、図10のようなレイアウトを作成できる。この場合の
図10では、AとC(およびBとD)の垂直配置、ならびにAとB(およびCと
D)の水平配置が維持される必要がある。このようなレイアウトは、HBoxとVBox
を単にネスティングするだけでは作成できない。グリッドとテーブルは、HBoxと
VBoxに比べて幾何的制約をより多くもたらすが、基本的弾性オペレーションを連
続的に適用して、多くのそれらの幾何形状を計算できる。
Grids and Tables Complex graphic layouts can be created by nesting HBoxes and VBoxes inside each other. Curl also has grit and table containers that can be used to create a layout like that of FIG. In this case in FIG. 10, the vertical arrangement of A and C (and B and D) and the horizontal arrangement of A and B (and C and D) need to be maintained. Layouts like this are HBox and VBox
Cannot be created simply by nesting the. Grid and table are HBox and
It brings more geometric constraints than VBox, but the basic elastic operations can be applied sequentially to compute many of their geometries.

【0069】フィル・オブジェクト グラフィック・レイアウトの作成において、フィル・オブジェクト(伸縮可能
なオブジェクト)を使用することは極めて有効である。このフィル・オブジェク
トは描画オペレーションを実行しないが、高さと幅の基本設定を有し、スペース
も取る。剛性のフィル・オブジェクトをHBoxとVBoxの内部で使用し、他のグラフ
ィック・オブジェクトまわりにパディングおよび/またはインデントを置くこと
ができる。伸張フィル・オブジェクトを使用して、位置合わせと中心合わせがで
きる。例えば、1つの要望をサポートして、以下のようなコンテンツ(内容)の
テーブルを作成する。 真夏の夜の夢 5 テンペスト 89 ベローナの2人の紳士 173
Fill Object It is extremely effective to use a fill object (a stretchable object) in creating a graphic layout. This fill object does not perform drawing operations, but has basic height and width settings and also takes up space. Rigid fill objects can be used inside HBoxes and VBoxes to place padding and / or indentation around other graphic objects. You can use the stretch fill object to align and center. For example, one request is supported, and the following table of contents is created. Midsummer Night's Dream 5 Tempest 89 Two gentlemen of Verona 173

【0070】 Curlでは、このレイアウトを、コンテンツのテーブルの各ラインに対し1つの
オブジェクトを含むVBoxとして指定できる。これに対し、各ラインはHBoxであり
、HBoxには、3つのオブジェクト、すなわち、タイトルを含むテキスト・オブジ
ェクトと、幅の基本設定がテキスト・オブジェクトよりも大きい伸張オーダーを
有するフィル・オブジェクトと、ページ・ナンバーを含むテキスト・オブジェク
トとを含む。VBoxはその子オブジェクトの全てに同一幅を割当てるが、これに対
し、各HBoxはタイトルの左揃えとページ・ナンバーの右揃えを行い、余剰幅全て
をフィル・オブジェクトに割当てる。この理由は、その幅基本設定の伸張オーダ
ーが、HBoxのグラフィックの子オブジェクト全ての幅伸張オーダーよりも大きい
からである。
In Curl, this layout can be specified as a VBox containing one object for each line of the table of contents. In contrast, each line is an HBox, which has three objects: a text object that contains the title, a fill object whose width preference has a greater stretch order than the text object, and a page. And a text object containing a number. The VBox allocates the same width to all of its child objects, whereas each HBox aligns the title to the left and the page number to the right, and allocates all the extra width to the fill object. The reason for this is that the expansion order of the width basic setting is larger than the width expansion order of all the child objects of the HBox graphic.

【0071】 伸張フィル・オブジェクトを使用して、中心合わせされるグラフィック・オブ
ジェクトよりも大きいグラフィック・コンテナ内のグラフィック・オブジェクト
を中心に置くことができる。この場合、1つの伸張オブジェクトは、以下のCurl
の表示のように、中心に置かれたオブジェクトの各側面に置かれる。 {HBox{Fill},object,{Fill}}
Stretch fill objects can be used to center graphic objects in larger graphic containers than centered graphic objects. In this case, one decompression object is the following Curl
Is placed on each side of the centered object, as in the display. {HBox {Fill}, object, {Fill}}

【0072】 フィル・オブジェクトは他のオブジェクトよりも大きい伸張オーダーを持つた
め、全ての余剰幅はフィル・オブジェクトに割当てられる。2つのフィル・オブ
ジェクトが同一伸張オーダーと伸張度係数を有する場合、余剰幅はそれらに等し
く割当てされる。結果的に、各フィル・オブジェクトは同一幅を有し、グラフィ
ック・オブジェクトはHBoxにより占められるスペース内で中心合わせされる。2
つのフィル・オブジェクトが同一伸張オーダーを持つが、同一伸張度係数でない
場合、余剰スペースはそれらの伸張度係数に比例して割当てられ、オブジェクト
の左に割当てされたスペースが、それの右に割当てられたスペースの幅の半分で
あるような、可能な他のレイアウトを形成する。
Since fill objects have a larger stretch order than other objects, all extra width is allocated to fill objects. If two fill objects have the same stretch order and stretch factor, the extra width is assigned to them equally. As a result, each fill object has the same width and the graphic objects are centered within the space occupied by the HBox. Two
If two fill objects have the same stretch factor but not the same stretch factor, the extra space is allocated proportionally to their stretch factor and the space allocated to the left of the object is allocated to its right. Form another possible layout, such as being half the width of the available space.

【0073】 Curl弾性が、伸張オーダーおよび伸張度係数を有する事実は、前述の方法の好
結果を得るには極めて重要である。伸張オーダーが存在しない場合、全ての余剰
幅をフィル・オブジェクトに割当てる方法が存在しなくなり、必然的に、余剰幅
の一部分が中心合わせされたか、または位置調整されたオブジェクトに割り当て
られ、少なくともそれらにわずかな変形を与える。
The fact that Curl elasticity has an extensional order and an extensibility coefficient is extremely important for the successful outcome of the above-mentioned method. If there is no stretch order, there is no way to assign all the extra widths to fill objects, and necessarily a portion of the extra widths will be assigned to centered or justified objects, at least for them. Gives a slight deformation.

【0074】パディング弾性 特定のオブジェクトが" 剛性" であると直感的に考えられるのは、そのオブジ
ェクトが、最も過酷な環境に置かれた場合を除いては、伸張または圧縮されない
ことを意味する。例えば、図11はHBox内に含まれる異なる高さの3つの矩形を
示す。HBoxの高さは最も高い矩形の高さに等しい、しかし、この状態は、他の矩
形を伸張してHBoxの高さに一致させることが望ましくない場合に生じる。なぜな
ら、矩形は通常は剛性オブジェクトと考えられるからである。他方で、フィル・
オブジェクトのような弾性オブジェクトが同一HBox内に含まれる場合、その弾性
オブジェクトはHBoxの全高さに伸張するのが望ましい。
Padding Elastic The intuitive idea that a particular object is "rigid" means that it will not stretch or compress unless it is placed in the most harsh environment. For example, Figure 11 shows three rectangles of different height contained within the HBox. The height of the HBox is equal to the height of the tallest rectangle, but this situation occurs when it is not desirable to stretch other rectangles to match the height of the HBox. This is because the rectangle is usually considered a rigid object. On the other hand, Phil
If elastic objects, such as objects, are contained within the same HBox, it is desirable that the elastic objects extend the full height of the HBox.

【0075】 これらの目的は、パディング弾性を使用して、剛性オブジェクトが伸張されな
い領域を満たすことにより、Curl内で達成される。例えば、パディング弾性は、
図11の各矩形の上方で使用される。
These objectives are achieved within Curl by using padding elasticity to fill areas where rigid objects are not stretched. For example, padding elasticity is
Used above each rectangle in FIG.

【0076】 パディング弾性は、その値が" パディングしきい値伸張オーダー" として知ら
れる、伸張オーダーを有する。したがって、伸張オーダーが" パディングしきい
値伸張オーダー" よりも小さい値を有する全てのオブジェクトが、剛性と考えら
れる。なぜなら、パディングは伸張に優先してそのオブジェクトを伸張するから
である。したがって、HBoxの幅と高さの基本設定は、HBoxの子オブジェクトの基
本設定を正確に表わし、パディング弾性はHBoxの幅と高さの基本設定の計算には
使用されない。しかし、HBoxの子オブジェクト間でHBoxの指定された幅と高さを
割当てされる場合は、パディング弾性をデバイスとして使用して、剛性オブジェ
クトの伸張を避ける。
The padding elasticity has an extension order whose value is known as the "padding threshold extension order". Therefore, any object whose stretch order is less than the "padding threshold stretch order" is considered rigid. This is because padding takes precedence over decompression and decompresses that object. Therefore, the HBox's width and height preferences accurately represent the preferences of the HBox's child objects, and the padding elasticity is not used to calculate the HBox's width and height preferences. However, if the specified width and height of the HBox are assigned between the child objects of the HBox, use padding elasticity as a device to avoid stretching rigid objects.

【0077】 図11の例は、オブジェクトを底部で位置合わせされている。したがって、パ
ディング弾性はオブジェクトの上方だけに必要になる。図12のような他の例で
は、オブジェクトは中心で位置合わせされ、パディングは各オブジェクトの上方
と下方の両方で必要とされる。
In the example of FIG. 11, the object is bottom aligned. Therefore, padding elasticity is needed only above the object. In another example, such as in FIG. 12, the objects are centered and padding is required both above and below each object.

【0078】 同様のパディング方法は、VBoxと、剛性オブジェクトを伸張する可能性を有す
る他のコンテナとにより使用される。Curlのグラフィック・コンテナによっては
、剛性オブジェクトの伸張は希望するが初期設定によりパディングを使用すると
いう特定の状態では、パディングの使用を無効にできるオプションを有するもの
がある。
A similar padding method is used by VBoxes and other containers that have the potential to stretch rigid objects. Some Curl graphic containers have the option to disable the use of padding in certain situations where you want to stretch rigid objects but use padding by default.

【0079】TextFlowBoxes による弾性の使用 CurlのTextFlowBox コンテナは一種の輸送手段であり、所定長さのライン上に
フォーマットされたテキストのパラグラフを表示する。単一のTextFlowBox はテ
キストの複数のパラグラフを含むことができるが、単一パラグラフを含むTextFl
owBox は重要な特定の事例である。なぜなら、テーブルのような多くのグラフィ
ック・ディスプレイは、単一パラグラフとして扱えるテキスト・ブロックを含む
からである。TextFlowBox の幅と高さの基本設定を描くのに使用する弾性(体)
を選択することにより、以下の3つの目的が達成される。
Using Elasticity with TextFlowBoxes Curl's TextFlowBox container is a type of vehicle that displays a paragraph of formatted text on a line of a given length. A TextFl containing a single paragraph, although a single TextFlowBox can contain multiple paragraphs of text.
The owBox is an important specific case. This is because many graphic displays, such as tables, contain blocks of text that can be treated as a single paragraph. Elasticity (body) used to draw the basic settings for the width and height of the TextFlowBox
By selecting, the following three objects are achieved.

【0080】 1.他の制約が存在しない場合、パラグラフの各々を単一ライン上に表わすこと
ができるように、TextFlowBox を水平に十分拡大する必要がある。 2.いくつかのTextFlowBox は、HBoxまたは同様のコンテナ(テーブルの行など
)に含まれ、かつ、それら全てを(1) のように表わすための十分な利用スペース
がない場合、その利用スペースは、それらの高さをほぼ同一にする方法でTextFl
owBox 間で配分される必要がある。 3.いくつかのTextFlowBox は、VBoxまたは同様のコンテナ(テーブルの列など
)に含まれ、VBoxの幅の基本設定は、上記(1) のように表わすときに最大幅にな
るように、TextFlowBox により管理される必要がある。
1. In the absence of other constraints, the TextFlowBox needs to be expanded horizontally enough so that each paragraph can be represented on a single line. 2. If some TextFlowBoxes are contained in an HBox or similar container (such as a table row) and there is not enough available space to represent them all as in (1), then the available space is their space. TextFl by the method of making height almost the same
Must be distributed among owBox. 3. Some TextFlowBoxes are contained in a VBox or similar container (such as table columns), and the VBox's width preference is managed by the TextFlowBox so that it has the maximum width when expressed as in (1) above. Need to

【0081】 VBoxが2つのTextFlowBox を含み、その1つが長いパラグラフを含み、他の1
つが極めて短いパラグラフ(2つのワードのような)を含むと仮定する。この原
則が述べていることは、他の制約が存在しない場合、短いパラグラフが、長いパ
ラグラフを数ラインのテキストとして表わすようにする方法で、VBoxの水平範囲
を" 引込み" しないことである。
A VBox contains two TextFlowBoxes, one containing a long paragraph and the other one.
Suppose one contains a very short paragraph (such as two words). This principle states that, in the absence of other constraints, short paragraphs do not "pull" the horizontal extent of a VBox in a way that causes long paragraphs to be represented as a few lines of text.

【0082】 これら機能の目的は、TextFlowBox の幅弾性(体)を以下のように計算するこ
とにより達成される。(TextFlowBox の幅基本設定は、TextFlowBox の原点がそ
れの左端に置かれることを必要とし、それによりTextFlowBox の左範囲の弾性体
が、望ましいサイズが0である高剛性の弾性体を持つことになる。したがって、
以下に述べる幅弾性は、TextFlowBox の右範囲に対応する弾性である。) 1.最小サイズは最長の分割できないテキスト・エレメントの幅である(一般に
、1 ワードのテキスト)。 2.望ましいサイズは、TextFlowBox 内の最長パラグラフが、単一ラインのテキ
ストとしてレイアウトできるのに必要な幅であり、それにより、目的(1) を達成
する。 3.圧縮度係数は、TextFlowBox の最長パラグラフ内のテキストの総量に比例す
る。言いかえると、全ての固定された左または右の、マージンその他の目的のイ
ンデントを含まない最長パラグラフの長さに比例する。 4.圧縮オーダーは、" テキスト・フロー圧縮オーダー" として知られる標準値
である。 5.伸張度尾係数は圧縮度係数に等しい。 6.伸張オーダーは、" テキスト・フロー伸張オーダー" として知られる標準値
である。重要なことは、" テキスト・フロー伸張オーダー" は" テキスト・フロ
ー圧縮オーダー" よりも大きく、" パディングしきい値伸張オーダーよりも小さ
いことである。
The purpose of these functions is achieved by calculating the width elasticity (body) of the TextFlowBox as follows. (The TextFlowBox width preference requires the origin of the TextFlowBox to be at its left edge, which causes the elastic body in the left range of the TextFlowBox to have a highly rigid elastic body with a desired size of zero. Therefore,
The width elasticity described below is the elasticity corresponding to the right range of the TextFlowBox. ) 1. The minimum size is the width of the longest indivisible text element (typically one word of text). 2. The desired size is the width needed to allow the longest paragraph in the TextFlowBox to be laid out as a single line of text, thereby achieving objective (1). 3. The compression factor is proportional to the total amount of text in the longest paragraph of the TextFlowBox. In other words, it is proportional to the length of the longest paragraph that does not include any fixed left or right margins or other indentation of interest. 4. The compression order is a standard value known as the "text flow compression order". 5. The extension factor is equal to the compression factor. 6. Stretch order is a standard value known as "text flow stretch order". What is important is that the "text flow decompression order" is greater than the "text flow compression order" and less than the "padding threshold decompression order".

【0083】 " テキスト・フロー伸張オーダー" が" テキスト・フロー圧縮オーダー" より
も大きいという事実により、目的(3) を達成する。2つまたはそれ以上の異なる
サイズのTextFlowBox が、目的(3) の記述で特定されたように、VBoxまたは同様
にコンテナに含まれる場合を考える。弾性最大オペレーションは、これらのText
FlowBox の幅弾性(体)上で実行される。各TextFlowBox の伸張度が、TextFlow
Box (複数)のどの圧縮度よりもはるかに大きいため(なぜなら、それらの伸張
オーダーはそれらの圧縮オーダーよりも大きい)、弾性最大オペレーションに対
するルールでは、その結果が最大の望ましいサイズ(最長パラグラフを含むText
FlowBox のサイズ)を持つ幅弾性に等しいことを要求する。
The purpose (3) is achieved by the fact that the "text flow decompression order" is greater than the "text flow compression order". Consider the case where two or more differently sized TextFlowBoxes are contained in a VBox or similarly container, as specified in the purpose (3) description. Elastic maximum operation is these Text
It is executed on the width elasticity (body) of the FlowBox. The degree of expansion of each TextFlowBox is TextFlow
The rule for elastic max operations is that the result is the largest desired size (including the longest paragraph) because it is much larger than any degree of compression of the Boxes (because their stretch order is larger than their compression order). Text
(Equal to the width elasticity of the FlowBox size).

【0084】 "TextFlowBox伸張オーダー" が、" パディングしきい値伸張オーダー" よりも
小さいという事実は、TextFlowBox がパディング弾性の記述の前述の意味の剛性
オブジェクトとして作用することを意味する。したがって、TextFlowBox が、Te
xtFlowBox の望ましい幅よりさらに大きいスペースが利用できる状況で出現する
場合、パディングの使用が無効にならない限り、このTextFlowBox は水平には伸
張されない。この方法は、テキストの扱い方の通常概念に一致する、ただし、こ
の方法は、必要に応じて、TextFlowBox に" パディングしきい値伸張オーダー"
よりも大きい伸張を持つ幅弾性を与えることにより変更できる。
The fact that the “TextFlowBox stretch order” is smaller than the “padding threshold stretch order” means that the TextFlowBox acts as a rigid object in the sense of the padding elasticity description above. Therefore, TextFlowBox is
If more space is available than the desired width of the xtFlowBox, then this TextFlowBox will not be stretched horizontally unless the use of padding is disabled. This method is in line with the usual notion of how to handle text, however, this method uses a "padding threshold stretch order" for the TextFlowBox if necessary.
It can be modified by giving width elasticity with greater stretch.

【0085】 TextFlowBox の幅弾性の圧縮度係数は、前述の目的(2) を満足できるパラメー
タである。使用者が対象を選択する特定の事例は、使用中のTextFlowBox の各々
がテキストの単一パラグラフから構成されている事例である。この事例が対象に
される理由は、特にこのようなTextFlowBox がテーブルのコンポーネントとして
現われるとき、隣接するTextFlowBox の高さが等しいことが望ましい実際の状況
で最も頻繁に発生する事例であるためである。
The compressibility coefficient of the width elasticity of the TextFlowBox is a parameter that can satisfy the above-mentioned purpose (2). A particular case where the user selects an object is where each TextFlowBox in use consists of a single paragraph of text. This case is targeted because it is the most frequent case in actual situations where it is desirable for adjacent TextFlowBoxes to have the same height, especially when such TextFlowBoxes appear as components of a table.

【0086】 この圧縮度係数は、所定のテキスト・ブロックが表示器上の一定領域を占有す
る(言いかえると、幅が減少すると高さが増加して(またはその逆)、幅と高さ
の積をほぼ一定にする)と仮定することを基にして導かれる。テキストがこのモ
デルに正確には従わないいくつかの理由があるが、このモデルはかなり有益な近
似である。このモデルに従う2 つのテキスト・ブロックPとQを考える。この場
合、Pの望ましい幅はpであり、Qの望ましい幅はqである。さらに、これら2
つのテキスト・ブロックが全幅W(ただし、W<p+q)のスペース内に水平に
レイアウトされる必要があると考える。不足d=(p+q)を、PとQの高さが
等しくなるように、PとQの間に配分する必要がある。PとQの望ましい幅はそ
れらの面積に比例するとき――これは、PとQの各々がテキストの単一パラグラ
フを含む場合を考慮する事例で生じる――、この望ましい配分は、この不足dを
PとQの間に、それらの面積に比例して割当てる。例えば、Pの面積がQよりも
大きい場合、不足dの比例的に大きい割当てがPに配分される。
The compression factor is such that a given block of text occupies a certain area on the display (in other words, as width decreases, height increases (or vice versa)). It is derived based on the assumption that the product is almost constant). There are several reasons why the text does not exactly follow this model, but it is a fairly informative approximation. Consider two text blocks P and Q that follow this model. In this case, the desired width of P is p and the desired width of Q is q. In addition, these 2
Consider that one text block needs to be laid out horizontally within a space of full width W (where W <p + q). The deficit d = (p + q) needs to be distributed between P and Q such that the heights of P and Q are equal. When the desired width of P and Q is proportional to their area-this occurs in the case where we consider each case of P and Q containing a single paragraph of text-this desired allocation is Is assigned between P and Q in proportion to their area. For example, if the area of P is greater than Q, then a proportionally larger allocation of deficiency d is distributed to P.

【0087】 現在のCurl実行による目的(2) の満足度は、図14、15、16で示される。
これらの図は、階層が3つの異なる幅の各々に対し制約されるときの、図13に
示す構造を有するグラフィックな階層の表示状態を示す。図13に示されるよう
に、図14〜16に示される構造は3つのTextFlowBox を含むHBoxであり、それ
の各1つが異なる長さの単一パラグラフを有する。望ましい幅でレイアウトされ
ると、その結果の表現は図14に示すようになる。各TextFlowBox は、単一パラ
グラフを含むTextFlowBox の望ましい表現である単一ライン上に、それを表わす
のに必要なスペースを正確に与えられる。利用できる幅が減少すると、その減少
は構成要素のTextFlowBox の間で、それらの圧縮度係数に比例して(すなわち、
それらの中に含まれるテキストの長さに比例して)配分される。図15は幅減少
が調整されたときの結果の状態を表わし、各TextFlowBox に対するこの幅減少の
配分が望ましいレイアウトを実現しており、3つのBox 全てが同等の高さを有す
ることを示す。図16は幅減少がさらに大きいときの結果を示し、TextFlowBox
の高さを等しく維持するための減少の配分の方法を再度示している。
The degree of satisfaction of the objective (2) by the current Curl execution is shown in FIGS.
These figures show the display state of a graphical hierarchy having the structure shown in FIG. 13, when the hierarchy is constrained for each of three different widths. As shown in Figure 13, the structure shown in Figures 14-16 is an HBox containing three TextFlowBoxes, each one of which has a single paragraph of different length. When laid out with the desired width, the resulting representation is as shown in FIG. Each TextFlowBox is given exactly the space needed to represent it on a single line, which is the preferred representation of a TextFlowBox containing a single paragraph. As the available width decreases, the decrease is proportional among the constituent TextFlowBoxes, proportional to their compression factor (ie,
It is distributed (in proportion to the length of the text contained in them). FIG. 15 represents the resulting state when the width reductions are adjusted and shows that this distribution of width reductions for each TextFlowBox achieves the desired layout and that all three Boxes have equal height. Figure 16 shows the result when the width reduction is even larger, TextFlowBox
It shows again how to allocate reductions to keep the heights of the equal.

【0088】 ワードの長さが変化し、またライン分割がワード間(またはハイフンで結ばれ
たワードの特定位置)でだけ発生するため、この方法ではTextFlowBox の高さが
常に正確に等しくはならない。この方法は、1つのTextFlowBox がテキストの追
加ラインに対しわずかに拡大し、一方で、他のTextFlowBox が拡大しないマージ
ン状態を発生することが多い。また、TextFlowBox の幅がその最長ワード(また
は他の分割できないオブジェクト)の幅以下に減少すると、理想的な挙動からの
ずれがさらに多く発生する。それにもかかわらず、広範囲の状態に渡り、ここで
述べるTextFlowBox の幅弾性が、TextFlowBox の高さを等しく維持するのに役立
つ。
This method does not always make the heights of the TextFlowBox exactly the same, as the length of the words changes and line splitting only occurs between words (or at particular positions of hyphenated words). This method often results in a margin condition where one TextFlowBox expands slightly to the additional line of text, while the other TextFlowBox does not. Also, if the width of the TextFlowBox is reduced below the width of its longest word (or other indivisible object), there will be more deviation from ideal behavior. Nevertheless, over a wide range of conditions, the width elasticity of the TextFlowBox described here helps to keep the height of the TextFlowBox equal.

【0089】 幅優先のレイアウト・ネゴシエーションでは、TextFlowBox の望ましい高さを
設定することが、つまり高さ基本設定を表現することが、明快な方法である。な
ぜなら、高さ基本設定を計算する以前に、テキストの幅は既に既知だからである
。その結果、TextFlowBox の高さ基本設定は、最小および望ましいサイズの両方
共が、全テキストを表示するのに実際に必要とされる高さに等しい剛性弾性とな
る。
In the width-first layout negotiation, setting a desired height of the TextFlowBox, that is, expressing the height basic setting, is a clear method. This is because the width of the text is already known before calculating the height preference. As a result, the TextFlowBox's height preference is both a minimum and a desired size, a stiffness elasticity equal to the height actually needed to display the full text.

【0090】 前述の目的(2) は、高さ優先のレイアウト・ネゴシエーションを使用するとき
に満足な結果を得るのが困難である。したがって、この場合は、TextFlowBox の
サイズ基本設定の計算は、前述の目的(1) の記述のように、単に、オブジェクト
が含まれるテキストをレイアウトするのに必要となる寸法の剛性オブジェクトで
あると仮定して、計算される。
Objective (2) above is difficult to achieve with satisfactory results when using height-first layout negotiation. Therefore, in this case, assume that the calculation of the TextFlowBox's size preference is just a rigid object with the dimensions needed to lay out the text that contains the object, as described in Objective (1) above. And calculated.

【0091】簡単な剛性オブジェクト TextFlowBox は、幅と高さが相互にほぼ反比例するグラフィック・オブジェク
トの1つの例であるが、多角形および楕円のようなさらに簡単なグラフィック・
オブジェクトが存在し、それらは単に特定の自然サイズを有し、通常変形されな
い。これら剛性オブジェクトの幅と高さの基本設定は以下の特性の弾性により表
わされる。 1.最小サイズはそのオブジェクトの自然サイズ(適宜に、幅または高さ)であ
る。 2.望ましいサイズは最小サイズに等しい。 3.圧縮度係数は1のような標準値である。 4.圧縮オーダーは" 最小化伸張オーダー" として知られる標準値であり、" 最
小化伸張オーダー" は" テキスト・フロー圧縮オーダー" よりも小さく、かつ望
ましいサイズと最小サイズが等しい場合に、全弾性(体)の圧縮オーダーとして
使用される。実際に、どの程度の圧縮オーダーまたは圧縮度係数をこのような弾
性(体)に使用するかはほとんど問題にならない。なぜなら、弾性分割オペレー
ションは、最大の条件において、単に弾性(体)をその最小サイズよりも小さい
スペースに割当てるだけであり、圧縮オーダーまたは圧縮度係数の大きさは問題
にならないからである。 5.伸張度係数は1 のような標準値である。 6.伸張オーダーは" テキスト・フロー伸張オーダー" に等しい。
The simple rigid object TextFlowBox is one example of a graphic object whose width and height are approximately inversely proportional to each other, but simpler graphic objects such as polygons and ellipses.
Objects exist, they simply have a certain natural size and are usually not transformed. The basic width and height settings of these rigid objects are represented by the elasticity of the following properties. 1. The minimum size is the object's natural size (width or height, as appropriate). 2. The desired size is equal to the minimum size. 3. The compression factor is a standard value such as 1. 4. The compression order is a standard value known as the "minimized extension order", which is less than the "text flow compression order" and the total elasticity (body ) Used as a compression order. In practice, it does not matter how much compression order or compression factor is used for such elasticity (body). This is because the elastic division operation simply allocates the elasticity (body) to a space smaller than its minimum size in the maximum condition, and the size of the compression order or the compression factor does not matter. 5. The stretch factor is a standard value such as 1. 6. The decompression order is equal to the "text flow decompression order".

【0092】 この弾性(体)の主要特性は以下のとおりである。 1.オブジェクトの自然サイズにおける圧縮は極めて困難である。 2.伸張オーダーが" パディングしきい値伸張オーダー" よりも小さいため、パ
ディング弾性を使用するHBoxまたはVBoxなどのコンテナ内に置かれるとき、その
自然サイズ以上に伸張されない。 3.剛性オブジェクトの伸張オーダーがTextFlowBox の圧縮オーダーよりも大き
い(および同様に、TextFlowBox の伸張オーダーが剛性オブジェクトの圧縮オー
ダーよりも大きい)ため、VBoxがTextFlowBox と剛性オブジェクトの特定の組合
せを含む場合、VBox内に含まれるどのオブジェクトも、VBox内の他のすべてのオ
ブジェクトを望ましい幅よりも小さく圧縮させることがない。
The main characteristics of this elasticity (body) are as follows. 1. Compressing at the natural size of an object is extremely difficult. 2. The stretch order is less than the "padding threshold stretch order", so when placed in a container such as an HBox or VBox that uses padding elasticity, it does not stretch beyond its natural size. 3. In a VBox if the VBox contains a particular combination of TextFlowBox and a rigid object, because the rigid object's expanded order is greater than the TextFlowBox's compressed order (and similarly, the TextFlowBox's expanded order is greater than the rigid object's compressed order). Does not cause any of the objects contained in to compress all other objects in the VBox below the desired width.

【0093】 幅優先レイアウト・ネゴシエーションの間、TextFlowBox に対し幅を割当てら
れたと仮定して、TextFlowBox の高さ基本設定は、自然サイズがTextFlowBox 内
に含まれるテキストのレイアウトに必要とされる高さを持つ剛性弾性として圧縮
される。
Assuming that a width has been assigned to the TextFlowBox during width-first layout negotiation, the TextFlowBox's height preference is such that the natural size has the height required for the layout of the text contained within the TextFlowBox. Compressed as rigid elasticity.

【0094】一定アスペクト・レシオのオブジェクト 第3の一連のオブジェクトはイメージのようなグラフィックスを含む。このよ
うなグラフィックスは異なるサイズであるが、良好な表示のために、特定の" ア
スペクト・レシオ" (高さと幅の比)で表わされる。望ましい高さと幅が既知の
場合、このようなオブジェクトは剛性オブジェクトと同じに扱うことができる。
しかし、場合により、高さと幅を可変にしてオブジェクト・サイズがその周辺に
適合できるようにするのが便利である。これは、第1レイアウト・ネゴシエーシ
ョン・パスの間、伸張弾性を提供することにより(すなわち、幅優先レイアウト
・ネゴシエーションの間、幅基本設定として伸張弾性を提供することにより)、
Curlレイアウト・システムで達成できる。この伸張弾性により、パラメータを問
わず、周囲のグラフィックスに適合する望ましいレベルを得ることができる。第
2レイアウト・ネゴシエーション・パスの間、第1レイアウト・ネゴシエーショ
ン・パスの間に割り当てられたサイズ(すなわち、幅優先レイアウト・ネゴシエ
ーションの場合における幅)が既知になる。したがって、第2レイアウト・ネゴ
シエーション・パスの間に戻されるサイズ基本設定は剛性弾性であり、この剛性
弾性は、それの自然サイズがオブジェクトのアスペクト・レシオと、第1レイア
ウト・ネゴシエーション・パスの間に割り当てられたサイズとを使用して計算さ
れる。
Objects of Constant Aspect Ratio The third set of objects includes image-like graphics. Such graphics are of different sizes, but for good display, they are represented by a particular "aspect ratio" (height-to-width ratio). Such objects can be treated the same as rigid objects if the desired height and width are known.
However, in some cases it is convenient to have variable heights and widths to allow the object size to fit around it. This is done by providing stretch elasticity during the first layout negotiation pass (ie by providing stretch elasticity as a width preference during width-first layout negotiation).
Achievable with the Curl layout system. This stretch elasticity makes it possible to obtain a desired level that matches the surrounding graphics regardless of the parameters. During the second layout negotiation pass, the size allocated during the first layout negotiation pass (ie the width in the case of width-first layout negotiation) is known. Therefore, the size preference returned during the second layout negotiation pass is stiffness elasticity, which has its natural size between the aspect ratio of the object and the first layout negotiation pass. Calculated using the allocated size and.

【0095】弾性のオーバライド 場合により、グラフィック・オブジェクトのデフォールトの幅または高さの基
本設定をオーバライド(更新ないし上書き)することは有益である。更新された
新しい値を使用できるのは、グラフィック・オブジェクトがそれ自体の有する基
本設定を親オブジェクトにレポートする時であり、それにより、オーバライドが
形成したグラフィック関係を、親のグラフィック・オブジェクトに通信する。Cu
rlのオーバライドは、" 幅" と" 高さ" オプションにより、以下のようにして、
簡単に実行できる。 {Fill width=2cm,height=1cm }
Elastic Overrides In some cases, it may be beneficial to override (update or overwrite) the default width or height preferences for graphic objects. The updated new value can be used when the graphic object reports its own preferences to the parent object, thereby communicating the graphic relationships created by the override to the parent graphic object. . Cu
Override rl with "width" and "height" options as follows:
It's easy to do. {Fill width = 2cm, height = 1cm}

【0096】 これらオプションで指定された値は、上の例の"2cm" のような直線測定値また
は他の弾性値のどちらでも良い。供給された幅または高さ値がOriginElastic で
ある場合、これを代替値として直接使用して、別の場合にはグラフィック・オブ
ジェクトにより提供される幅または高さの基本設定とする。しかし、供給される
値がOriginElastic でない場合は、供給される値を、オブジェクトにより戻され
るOriginElastic を変更する際のガイドとして使用し、そのオブジェクトのグラ
フィックの親オブジェクト(例えば、HBoxコンテナ)によりレイアウト目的で実
際に使用されるオーバライドOriginElastic を計算する必要がある。
The values specified with these options may be either linear measurements such as "2 cm" in the above example or other elasticity values. If the supplied width or height value is an OriginElastic, use it directly as an alternative value, otherwise as the width or height preference provided by the graphic object. However, if the supplied value is not an OriginElastic, use the supplied value as a guide in modifying the OriginElastic returned by the object and use it for layout purposes by the graphic's parent object (for example, an HBox container). It is necessary to calculate the actual used OriginElastic override.

【0097】 供給される幅と高さが2cm のような直線測定値である場合、その値は、自然サ
イズが直線測定値に等しい剛性弾性(前の" 単純剛性オブジェクト" の項で述べ
たように)に変換される。したがって、グラフィック・オブジェクトに対しオー
バライドOriginElastic を決定するときは、2つの場合だけが存在する。 1.オーバライド幅または高さ値がOriginElastic として供給される、前述の場
合。 2.供給される値が弾性である場合。
If the width and height supplied are linear measurements, such as 2 cm, then the values are such that the stiffness elasticity is equal to the linear measurements (as described in the section "Simple Rigid Objects" above). To)). Therefore, there are only two cases when determining the override OriginElastic for a graphic object. 1. In the previous case where the override width or height value is supplied as an OriginElastic. 2. If the supplied value is elastic.

【0098】 前者の場合には、グラフィック・オブジェクトは供給されたオーバライドOrig
inElastic を格納し、そのOriginElastic を要求されたときに、それを単に戻す
だけである。
In the former case, the graphic object is the supplied override Orig.
It stores the inElastic and simply returns it when the OriginElastic is requested.

【0099】 後者の場合には、次の2つの特性を持つオーバライドOriginElastic を計算す
るのが望ましい。 1.オーバライドOriginElastic の2 つのコンポーネント弾性の和(弾性加算オ
ペレーションを使用)が供給された幅または高さ値に等しい。 2.制約(1) を条件として、オーバライドOriginElastic の2つのコンポーネン
ト弾性間の関係が、幅と高さの基本設定を表わすオブジェクトにより供給される
オリジナルOriginElastic の2 つのコンポーネント弾性間の関係に可能な限り近
くなる。
In the latter case, it is desirable to calculate the override OriginElastic with the following two characteristics. 1. Override OriginElastic's two component elastic sum (using the elastic add operation) equals the supplied width or height value. 2. Subject to constraint (1), the relationship between the two component elasticity of the override OriginElastic should be as close as possible to the relationship between the two component elasticity of the original OriginElastic supplied by the object representing the basic settings for width and height. .

【0100】 図23は2つのテキスト・ボックスの水平配置と、それらに対応する弾性を示
す。2つのテキスト・ボックスXとYは、グラフィック・オブジェクトHBox内に
含まれる。この例の目的に対し、テキスト・ボックス(XとY)の構成が、HBox
の原点が2つのテキスト・ボックス(XとY)を分離するライン上にあるように
構成されていると仮定する。戻されるオリジナルOriginElastic は、AとBを含
むラインにより表わされる。オリジナルOriginElastic が戻されるのは、幅値が
取り消されたときである。Tは、幅値が取り消された場合の状態を表わす。前述
のように、オーバライド値はオプション値(剛性弾性で表わされることが多い)
またはOriginElastic である。オーバライド値がOriginElastic である場合、オ
ーバライドOriginElastic を戻すための計算を実行する必要はなく、供給された
OriginElastic を単に戻すだけである。オーバライド値が供給されない場合、オ
ーバライドOriginElastic を計算する必要がある。
FIG. 23 shows the horizontal alignment of two text boxes and their corresponding elasticity. Two text boxes X and Y are contained within the graphic object HBox. For the purposes of this example, the composition of the text boxes (X and Y) is HBox
Suppose that the origin of is configured to be on the line separating the two text boxes (X and Y). The original OriginElastic returned is represented by the line containing A and B. The original OriginElastic is returned when the width value is cancelled. T represents the state when the width value is canceled. As mentioned above, the override value is an optional value (often expressed as rigidity elasticity).
Or Origin Elastic. If the override value is OriginElastic, you do not need to perform a calculation to return the override OriginElastic, and the supplied
It just puts the OriginElastic back in. If no override value is provided, the override OriginElastic needs to be calculated.

【0101】 特に、特性(2) が多少主観的な基準であるため、これらの特性を有すると言わ
れているオーバライドOriginElastic を計算するいくつかの異なる方法が存在す
る。以下に概要を述べる方法は、Curl実行において実際に使用される方法であり
、実際の用途での妥当な値を計算することが立証されている。以下の説明では、
AとB(図23)はOriginElastic の" 第1”と" 最後" のコンポーネントを表
わす。Tは幅オプション値として供給される弾性を表わす。AAとBBはその結果得
られるオーバライドOriginElastic の第1と最後のコンポーネントを表わす。こ
の方法は、Curlプログラミング表記法を用いて記述される。コードは2つの手順
(サブルーチン)、すなわちコンポーネントへの伸張分散と第1への伸張分散と
を使用する。" |" の垂直バーで始まるラインはコメントを含む。
In particular, because property (2) is a somewhat subjective measure, there are several different ways to calculate the Override OriginElastic that is said to have these properties. The method outlined below is the method actually used in Curl execution and has been proven to calculate reasonable values for practical use. In the explanation below,
A and B (FIG. 23) represent the "first" and "last" components of OriginElastic. T represents the elasticity supplied as a width option value. AA and BB represent the first and last components of the resulting override OriginElastic. This method is described using the Curl programming notation. The code uses two procedures (subroutines): decompression distribution to components and decompression distribution to the first. Lines beginning with a vertical bar of "|" include comments.

【0102】[0102]

【数1】 [Equation 1]

【0103】[0103]

【数2】 [Equation 2]

【0104】[0104]

【数3】 [Equation 3]

【0105】[0105]

【数4】 [Equation 4]

【0106】[0106]

【数5】 [Equation 5]

【0107】[0107]

【数6】 [Equation 6]

【0108】[0108]

【数7】 [Equation 7]

【0109】[0109]

【数8】 [Equation 8]

【0110】[0110]

【数9】 [Equation 9]

【0111】 図24は図23に示されるグラフィック・オブジェクトの階層を示す。グラフ
ィック・コンテナ・オブジェクトHBox 150はグラフィック・オブジェクトXとY
156 を含む階層のルートである。各グラフィック・オブジェクトは関連するレイ
アウト・オブジェクト154 を有し、レイアウト・オブジェクトは表示されるオブ
ジェクトの位置とサイズを記述する。オーバライド152 は、Elastic またはOrig
inalElastic のどちらかで、グラフィック階層に格納される。
FIG. 24 shows the hierarchy of the graphic objects shown in FIG. Graphic Container Object HBox 150 is Graphic Object X and Y
It is the root of the hierarchy that contains 156. Each graphic object has an associated layout object 154, which describes the position and size of the displayed object. Override 152 is Elastic or Orig
Stored in the graphic hierarchy with either inalElastic.

【0112】 図25は、弾性を用いて定義(決定)されたグラフィック・オブジェクトにオ
ーバライドを提供する方法のフローチャートを示す。このプロセスはステップ16
0 で始まる。まず、オリジナルのOriginalElastic がグラフィック・オブジェク
トから決定される(ステップ162 )。オリジナルのOriginalElastic は、合成グ
ラフィック・オブジェクトに対し計算され、さらに,グラフィック・オブジェク
ト用に単に格納される。オーバライドがグラフィック・オブジェクトに関連しな
い場合(ステップ164 )、オリジナルのOriginalElastic は、オーバライドによ
り得られたOriginalElastic に単にコピーされるだけである(ステップ166 )。
オーバライドが存在する場合、オリジナルのOriginalElastic と格納されたオー
バライド弾性とから、オーバライドされた新しいOriginalElastic が計算される
(前述のCurlプログラミング表記法を使用して記述される方法を参照)(ステッ
プ168 )。次に、新しいOriginalElastic (ステップ166 〜168 )がステップ17
0 で戻される。このプロセスはステップ172 で終了する。
FIG. 25 shows a flowchart of a method for providing an override to a graphic object defined (determined) using elasticity. This process is step 16
Starts with 0. First, the original OriginalElastic is determined from the graphic object (step 162). The original OriginalElastic is calculated for the composite graphic object and then simply stored for the graphic object. If the override is not associated with a graphic object (step 164), the original OriginalElastic is simply copied to the originalElastic obtained by the override (step 166).
If an override is present, a new overridden OriginalElastic is calculated from the original OriginalElastic and the stored override elasticity (see the method described using the Curl programming notation above) (step 168). Then the new OriginalElastic (steps 166-168) is added to step 17
Returned at 0. The process ends at step 172.

【0113】 弾性をオーバライドするのは、特定の表示関係を保存しながら、グラフィック
・オブジェクトの表示特性を変更する有効なメカニズムである。特に、オーバラ
イドされた新しいOriginalElastic 内の2つのコンポーネント弾性の間の関係は
、オリジナルのOriginalElastic 内の2つのコンポーネント弾性間の関係に近い
Overriding elasticity is an effective mechanism for changing the display characteristics of a graphic object while preserving certain display relationships. In particular, the relationship between the two component elasticity in the overridden new OriginalElastic is close to the relationship between the two component elasticity in the original OriginalElastic.

【0114】Curlのスリー・パス・レイアウト・ネゴシエーション・アルゴリズム 前に説明したように、Cuelは2つのネゴシエーション命令の、幅優先と高さ優
先とをサポートする。これの適用に対しては、テキストが最初に水平ラインにフ
ォーマットされ(例えば、西欧言語を使用するとき)、TextFlowBox に対する幅
基本設定の前述の説明に示したように、一般に幅優先ネゴシエーションは良好な
結果を導き出す。以下の説明は幅優先レイアウト・ネゴシエーションを記述する
。高さ優先ネゴシエーションの詳細は、幅と高さが入れ替わることを除いて、完
全に類似する。
Curl's Three-Pass Layout Negotiation Algorithm As previously described, Cuel supports two negotiation instructions, breadth-first and height-first. For this application, the text is first formatted into horizontal lines (for example, when using Western European languages), and width-first negotiation generally yields good results, as shown above in the width preference for TextFlowBox. Derive. The following description describes breadth-first layout negotiation. The details of the height-first negotiation are completely similar, except that the width and height are swapped.

【0115】 オブジェクトgを持つ幅優先レイアウト・ネゴシエーションは、オブジェクト
の親がgのget-width-preference method (幅基本設定取得方法)を呼び出すと
きに開始される。この方法は、ペアの弾性(または、ペアの弾性に変換できる情
報)を戻すための役割を果たし、左右の範囲に割当てされるスペースの量に対す
るgの基本設定を記述する。GがBox の場合、この情報は一般に、gのグラフィ
ックの子オブジェクト各々の幅基本設定取得方法を呼び出し、その結果を適正な
方法で組合せることにより、導き出される。
The width-first layout negotiation with the object g is started when the parent of the object calls the get-width-preference method of g. This method serves to return the elasticity of the pair (or information that can be transformed into the elasticity of the pair) and describes the basic setting of g for the amount of space allocated to the left and right ranges. If G is a Box, this information is generally derived by invoking the width preference get method of each of the graphic's child objects of g and combining the results in the proper manner.

【0116】 gを持つ幅優先レイアウト・ネゴシエーション次のステップは、g の制約幅方
法が呼び出されるときに発生する。この方法は引数として、g 用に計算された左
右範囲値を取り、ペアの弾性(または、ペアの弾性に変換できる情報)を戻す役
割を果たし、上側部と下側部に割当てされたスペース量に対するg の基本設定を
記述する。g がBox である場合、この方法は一般に、g の各グラフィックの子に
対する左右範囲を計算し、その後、各子オブジェクトのconstrain-width (幅制
約)方法を呼び出して各子の高さ基本設定を得る。次に、これらの高さ基本設定
を適正な方法で組み合せて、g の高さ基本設定を導き出す。
Width-First Layout Negotiation with g The following steps occur when the constrained width method of g is invoked. This method takes as argument the left and right range values calculated for g and serves to return the elasticity of the pair (or information that can be converted into elasticity of the pair), the amount of space allocated to the upper and lower parts. Describe the basic settings of g for. If g is a Box, this method generally computes the left-right bounds for each graphic child of g and then calls the constraint-width method on each child object to set the height preference for each child. obtain. Then combine these height preferences in the proper way to derive a height preference for g.

【0117】 レイアウト・ネゴシエーションの最終ステップは、g の設定サイズ方法が呼び
出されるときに発生する。この方法は引数として、g に割当てられた左右範囲お
よび上側部と下側部の記述を受け取る。g は将来の参照用にこの情報の記述を作
成する。g がBox である場合、適正な引数を持つグラフィックの子の各々に関す
る設定サイズ方法を呼び出すことが予想される。
The final step of layout negotiation occurs when the set size method of g is invoked. This method takes as arguments the left and right bounds assigned to g and a description of the upper and lower parts. g makes a description of this information for future reference. If g is a Box, it is expected to call the set size method on each of the graphic's children with the proper arguments.

【0118】 このレイアウト・ネゴシエーション方法は、幅決定がなされるまで、高さ基本
設定に関する情報を必要としないため、それらの幅割当てが既知になるまで、テ
キスト・ブロックと図形のようなオブジェクトがそれらの高さ基本設定を決定す
るのを引き延ばす機会を提供する。この方法により、ワード・ラップ(word wra
p )を持つパラグラフと、一定アスペクト・レシオを持つ図形の両方を、さらに
高度にフォーマットできる。
This layout negotiation method does not need information about the height preferences until a width decision is made, so objects such as text blocks and graphics can be created until their width allocation is known. Provides an opportunity to postpone determining the height preferences. This way, word wrap (word wra
Both paragraphs with p) and figures with constant aspect ratio can be formatted to a higher degree.

【0119】 図17、18、19は、代表的グラフィック・コンテナのHBoxがレイアウトを
処理する方法を説明するフローチャートを表わす。各フローチャートは、スリー
・パス幅優先レイアウト・ネゴシエーションの3つのパスの1つにおけるHBoxの
機能を示す。高さ優先レイアウト・ネゴシエーションにおける機能も同様である
が、動作の詳細シーケンスは異なる。
17, 18 and 19 represent flow charts illustrating how an exemplary graphic container HBox handles layout. Each flow chart illustrates the function of the HBox in one of the three paths of the three path width first layout negotiation. The functions in height-first layout negotiation are similar, but the detailed sequence of operations is different.

【0120】 スリー・フェーズのレイアウト・ネゴシエーションの間に、HBoxを呼び出す方法
は以下のようである。 第1パス:{HBox,get-width-preference } 第2パス:{HBox,constrain-width lextent:float,rextent:float} 第3パス:{HBox,set-size bounds:GRect}
The method of calling the HBox during three phase layout negotiation is as follows. First pass: {HBox, get-width-preference} Second pass: {HBox, constrain-width lextent: float, rextent: float} Third pass: {HBox, set-size bounds: GRect}

【0121】 HBox.get-width-preference method(幅基本設定取得法)はHBoxの幅基本設定
を表わすOriginElastic を戻し、HBox.constrain-width(幅制約方法)はHBoxの
高さ基本設定を表わすOriginElastic を戻す。HBox. constrain-width (幅制約
)に対するlextent およびrextent 引数は、HBoxの高さ基本設定を計算する目的
のために仮定される左右の範囲を与える。HBox.set-size (サイズ設定)に対す
る引数として供給されるGRect オブジェクトは、HBoxに割当てられた矩形領域を
表わす左右の範囲と、上側部および下側部値を示す4つの浮動小数点数とを含む
The HBox.get-width-preference method (origin width acquisition method) returns OriginElastic representing the width basic setting of the HBox, and HBox.constrain-width (width constraint method) OriginElastic representing the height basic setting of the HBox. Bring back. The lextent and rextent arguments to HBox. Constrain-width give the left and right bounds assumed for the purpose of calculating the HBox's height preference. The GRect object supplied as an argument to HBox.set-size contains the left and right bounds that represent the rectangular area allocated for the HBox and four floating point numbers that represent the top and bottom values. .

【0122】 次に17、18、19のフローチャートを説明する。グラフィック・レイアウ
トは複雑なトリー(tree)であり、各オブジェクトは多数の子コンポーネントを持
つ親オブジェクトであってもよく、それら子コンポーネントはそれ自体がその子
に対する親であることができ、こうしてトリーの葉にまでつらなる。図17〜1
9のフローチャートの各々は、対応するルーチンがその親により呼び出されたと
きの、子コンポーネント内のプロセスを表わす。各ルーチン内で、子はその子の
各々に対し同一呼び出しを行う。このようにして、呼び出しはトリーのルートか
ら葉に通過し、それらのそれぞれの結果をトリー・ルートを通して戻す。
Next, the flowcharts 17, 18, and 19 will be described. The graphic layout is a complex tree, where each object can be a parent object with many child components, which can themselves be parents to their children, thus I'll grow tired. 17 to 1
Each of the nine flow charts represents a process in a child component when the corresponding routine is called by its parent. Within each routine, the child makes the same call to each of its children. In this way, the call passes from the root of the tree to the leaves and returns their respective results through the tree root.

【0123】 フローチャートが制限される場合とは、HBoxがそれに含まれるオブジェクトの
原点に位置合わせされ、底部、上部、または中心を位置合わせするのに必要なロ
ジックを含まない場合である。これらの追加機能を持つHBoxに対するロジックを
指定することにより、明瞭な実行が可能になる。フローチャートは図9の簡単な
例に関して記述され、ここでは呼び出しはHBoxに対し実行されれ、順次その3つ
の子A、B、Cへの呼び出しを行う。
A case where the flow chart is restricted is when the HBox is aligned with the origin of the objects it contains and does not contain the logic necessary to align the bottom, top, or center. By specifying the logic for the HBox that has these additional functions, clear execution becomes possible. The flow chart is described with respect to the simple example of FIG. 9, where a call is made to the HBox, which in turn makes a call to its three children A, B, C.

【0124】 計算は、HBoxで専用に理解されるいくつかの変数を使用して記述される。これ
には以下を含む。 A、D、R:内部計算に使用される弾性。 P:パディングに使用される弾性。 C:現在対象としている子グラフィック・オブジェクトに対するポインタ。 i:整数インデックス変数。 CWE :子オブジェクトから受け取られた幅基本設定を格納するOriginElasticsの
アレイ。 CHE :子オブジェクトから受け取られた高さ基本設定を格納するOriginElastics
のアレイ。 RR:HBoxの幅基本設定を累積するのに使用される弾性のアレイ。 letent、rextent 、ascent、descent 、casc、cdese 、cp、after 、cspace:グ
ラフィック・オブジェクトのサイズと位置を割当てるのに使用される数。 CLEXおよびCREX:子オブジェクトに対し計算される、左右の範囲それぞれのアレ
イ。 XPOS:子オブジェクトの原点のx座標のアレイ。 CBOUNDS :GRect オブジェクト。
Calculations are described using some variables that are understood exclusively in HBox. This includes: A, D, R: Elasticity used for internal calculation. P: elasticity used for padding. C: A pointer to the child graphic object currently targeted. i: integer index variable. CWE: An array of OriginElastics that stores the width preferences received from the child objects. CHE: OriginElastics that stores the height preferences received from the child objects
Array of. RR: An array of elastics used to accumulate the width preference of the HBox. letent, rextent, ascent, descent, casc, cdese, cp, after, cspace: Numbers used to allocate size and position for graphic objects. CLEX and CREX: An array for each of the left and right extents calculated on the child objects. XPOS: An array of x coordinates of the origin of the child objects. CBOUNDS: GRect object.

【0125】 HBoxに対する親が、get-width-preference(幅基本設定取得)を呼び出すとき
(図17)、この例のHBoxは左右の弾性(体)LとRから構成される幅弾性WEを戻
す。HBoxの左弾性は、オブジェクトAの左弾性であり、右弾性は図20に示され
る残りの弾性AR、BL、CL、CRの総和である。最後に、HBox自体は、その
子A、B、Cの各々に対しget-width-preference(幅子本設定取得)呼び出しを
実行し、それぞれの左右弾性を得る。詳細には、102 で、HBoxの左右の弾性が最
初にゼロに設定され、HBoxの子i の数が3に設定される。104 では、iが最初3
に設定され、従ってゼロよりも大きく、その結果システムは106 に続く。106 で
は、HBoxはその子C(i =3 )に対しget-width-preference(幅基本設定取得)
呼び出しを実行し、CLとCRを受け取る。右弾性は、ゼロに留まり、後続の方法の
参照のためにR[3]で格納される。子Cの全体幅基本設定も、後続の方法の参照の
ためにCWE[3]に格納される。子Cの右コンポーネントCRは値R に加算され、HBox
の右弾性の累積として役立つ。(フローチャートにおいて、最終コンポーネント
/第1コンポーネントの用語は、右範囲/左範囲および下側部/上側部をそれぞ
れ表わし、幅優先または高さ優先プロセスが実行されるかどうかに依存する。こ
の例では、最終/第1 は右/左に一致する)。
When the parent of the HBox calls get-width-preference (width basic setting acquisition) (FIG. 17), the HBox in this example returns the width elasticity WE composed of left and right elasticity (body) L and R. . The left elasticity of the HBox is the left elasticity of the object A, and the right elasticity is the sum of the remaining elasticity AR, BL, CL, CR shown in FIG. Finally, the HBox itself executes a get-width-preference (get width width main setting) call for each of its children A, B, C to obtain the respective left and right elasticity. Specifically, at 102, the left and right resilience of the HBox is initially set to zero and the number of HBox children i is set to three. 104, i is 3 first
, And thus greater than zero, so that the system continues at 106. In 106, HBox gets-width-preference (get basic width setting) for its child C (i = 3)
Make a call and receive CL and CR. The right elasticity stays at zero and is stored in R [3] for reference in subsequent methods. The overall width preference of child C is also stored in CWE [3] for reference in subsequent methods. The right component CR of the child C is added to the value R and the HBox
Serves as an accumulation of the right elasticity of. (In the flow chart, the terms final component / first component refer to right range / left range and lower / upper part, respectively, depending on whether a breadth-first or height-first process is performed. In this example, Last / first matches right / left).

【0126】 さらに子Cを処理するため、108 ではi =3 とし、子Cの左コンポーネントCL
を、110 で、HBoxの右コンポーネントR に加える。インデックスi は112 で減少
され、104 でゼロと比較される。次のループでは、BRとBLが同様に106 と110 で
R に加算され、値RR[2] が保存される。詳細には、RR[2] は子Cの左右の弾性の
和である。
In order to further process the child C, i = 3 in 108 and the left component CL of the child C is set.
Add 110 to the right component R of the HBox. The index i is reduced at 112 and compared to zero at 104. In the next loop, BR and BL are 106 and 110 as well.
It is added to R and the value RR [2] is stored. Specifically, RR [2] is the sum of left and right elasticity of the child C.

【0127】 この例の最終ループでは、子Aが処理される。値RR[1] は子BとCの左右の弾
性の和である。右弾性ARは106 でHBoxの右弾性R に加算されるが、108 では、シ
ステムは114 に進行する。したがって、最終の子Aの左弾性ALはHBoxの左弾性に
なる。最後に、112 でゼロに減少されたiを用いて、左右の弾性LとRがOrigin
alElastic WEを形成する。HBoxに対するOriginalElastic はその親に戻される。
その値は、トリーのルートに対する親のget-width-preference(幅基本設定取得
)ルーチンを通り、トリーにまで戻る。
In the final loop of this example, child A is processed. The value RR [1] is the sum of the left and right elasticity of the children B and C. The right elasticity AR adds to the right elasticity R of the HBox at 106, but at 108 the system progresses to 114. Therefore, the left elasticity AL of the final child A becomes the left elasticity of HBox. Finally, using i reduced to zero at 112, the left and right elasticity L and R are Origin
Form alElastic WE. OriginalElastic for HBox is returned to its parent.
Its value goes through the parent's get-width-preference routine for the root of the tree and back into the tree.

【0128】 次に、幅制約がconstrain-width (幅制約)呼び出し(図18)を通し下方の
トリーにまで通過し、HBoxを計算された上側部と下側部から構成されるOriginal
Elastic HEに戻す。
Next, the width constraint is passed through the constraint-width call (FIG. 18) to the tree below, and the HBox is composed of the calculated upper and lower parts of the Original.
Return to Elastic HE.

【0129】 constrain-width (幅制約)呼び出しを受け取ると、HBoxは図18の方法を実
行する。図17の方法で計算された左右弾性とHBoxに対するパディング弾性とを
基に、118 で、パディングを分割オペレーションを通して、lextent とrextent
(親呼び出しに含まれる左右範囲の距離)から取除く。上側部と下側部は、カー
ソル位置の値cpと同様に、ゼロに初期化される。constrain-width (幅制約)プ
ロセスは子を左から右に処理し、cpが割当てられた隣りの領域の左端を決定し、
HBoxの原点から右をカウントする。子インデックスi は、左から右への処理に対
し1 に設定される。値の"after(後)" は子の間で分割される距離であり、最初
はrextent に設定される(図21A)。
Upon receiving the constrain-width call, the HBox performs the method of FIG. Based on the left-right elasticity calculated by the method of FIG. 17 and the padding elasticity for the HBox, at 118, the padding is divided through the lextent and rextent
Remove from (left and right range included in parent call). The upper and lower parts are initialized to zero, like the value cp at the cursor position. The constrain-width process processes the children from left to right to determine the left edge of the adjacent region where cp is allocated,
Count right from the origin of the HBox. The child index i is set to 1 for left-to-right processing. The value "after" is the distance split between children, initially set to rextent (Fig. 21A).

【0130】 120 では、i はHBoxの子の数3よりも小さく、システムは122 に続く。122 で
は、子Aの左右の弾性hがLとRに格納される。124 では、第1子Aに対しi=
1となり、システムは126 に進行する。126 では、HBoxはlextent CLEX[1] とre
xtent CREX[1] とを計算して、constraint-width(幅制限)呼び出しで子Aに送
られる。第1子Aに送られるlextent はHBoxで受け取られるlextent である。CL
EX[1] に割り当てられたlextent を用いて、cpをlextent で増加する。子Aに送
られるrextent は、分割オペレーションで計算された値を除く値である。図21
Aに示されるように、"after( 後)"距離は、この方法でのこの点において受け取
られるrextent に等しく、子Aの右弾性Rと、第1パス内の子BおよびCの累積
された幅基本設定RR[1] との間で分割される必要がある。弾性Rに割当てられた
"after( 後)"の部分は、値cspaceである。
At 120, i is less than three HBox children, and the system continues at 122. At 122, the left and right elasticity h of the child A is stored in L and R. At 124, i =
1 and the system progresses to 126. In 126, HBox is lextent CLEX [1] and re
xtent CREX [1] is calculated and sent to child A in a constraint-width call. The lextent sent to the first child A is the lextent received by the HBox. CL
Increase cp with lextent, using the lextent assigned to EX [1]. The rextent sent to the child A is a value excluding the value calculated in the split operation. Figure 21
As shown in A, the "after" distance is equal to the rextent received at this point in the method, and the right elasticity R of child A and the accumulated child B and C in the first pass. It needs to be split between the width basic setting RR [1]. Assigned to elasticity R
The "after" part is the value cspace.

【0131】 次に、値cspaceが、制約されたrexentとして子Aに送られる。、上側部と下側
部弾性AとDを決定する子の高さOrigonalElastic が子Aから戻される。HBoxの
原点に対する子の原点までの距離を設定する値XPOS[1] が、子Aをゼロに設定す
る。この理由は、HBoxの原点が一番左の子の原点と同一であると定義されている
からである。
The value cspace is then sent to child A as a constrained rexent. , The child height OrigonalElastic, which determines the upper and lower elasticity A and D, is returned from the child A. The value XPOS [1] that sets the distance to the origin of the child relative to the origin of the HBox sets child A to zero. The reason for this is that the origin of the HBox is defined to be the same as the origin of the leftmost child.

【0132】 128 では、カーソル・ポインタcpがcspaceによりA の左端まで増加され、子イ
ンデックスが1づつ増加される。割当てられる状態にある距離"after(後)" が
、図21Aの"after" から図21Aのcspaceを減算して、図21Bに示されるよ
うに、BとCの左右の範囲の間に割当てられる距離を提供することにより計算さ
れる。
At 128, the cursor pointer cp is incremented by cspace to the left edge of A and the child index is incremented by 1. The distance "after" in the allocated state is allocated between the left and right ranges of B and C, as shown in FIG. 21B by subtracting cspace of FIG. 21A from "after" of FIG. 21A. Calculated by providing the distance.

【0133】 120 から、この方法は122 に戻り、第2の子を処理する。図17の方法で計算
された子Bに対する左右の弾性がLとRを決定する(図21B)。第1子は既に
処理されているため、この方法は124 から130 まで処理する。次に、割当てられ
るcspaceが、L+RとRR[2] との間に距離"after" を分割して計算される。次に
、子Bの左右の弾性LとRに従って値cspaceを分割して、CLEX[2] を決定し、cs
paceとCLEX[2] との差がCREX[2] を決定する。子BXPOS[2] の原点の位置が、CL
EX[2] をcpで決定された子Bの左端に加えることにより決定される。またHBoxは
子B にconstrain-width (幅制約)呼び出しを提供して、子Bを計算されたCLEX
[2] とCREX[2] に制約し、子B からその上側部と下側部の弾性を受け取る。次に
、HBoxに対する上側部と下側部の弾性A,Dが、HBoxの現在の上側部と下側部の
値A,Dと、子Bから戻された上側部と下側部の値とに適用される最大オペレー
ションを通して決定される。
From 120, the method returns to 122 to process the second child. The elasticity of the left and right sides of the child B calculated by the method of FIG. 17 determines L and R (FIG. 21B). This method processes from 124 to 130 because the first child has already been processed. The cspace allocated is then calculated by dividing the distance "after" between L + R and RR [2]. Next, the value cspace is divided according to the elasticity L and R on the left and right of the child B, CLEX [2] is determined, and cs
The difference between pace and CLEX [2] determines CREX [2]. The origin position of child BXPOS [2] is CL
Determined by adding EX [2] to the left edge of child B determined by cp. The HBox also provides a constraint-width call to child B to compute child B CLEX.
Constrain to [2] and CREX [2], and receive the elasticity of its upper and lower parts from child B. Next, the elasticity A, D of the upper side and the lower side with respect to the HBox is the current values A, D of the upper side and the lower side of the HBox and the values of the upper side and the lower side returned from the child B. Is determined through the maximum operations applied to.

【0134】 次のループでは、この方法は、ステップ122 と130 で、第3の子を同様に処理
する。次に、HBoxが、3 つの子のA 、B 、C に対し最大上側部と最大下側部であ
るその高さOriginElastic を戻す。
In the next loop, the method processes the third child in steps 122 and 130 similarly. The HBox then returns its height, OriginElastic, which is the maximum upper and lower sides for the three children A, B, and C.

【0135】 図19はset-size(サイズ設定)方法を示しおり、この方法により、HBoxがそ
の左範囲、右範囲、上側部および下側部を備え、またHBoxが適正な値をその子の
各々まで通過させる。134 では、HBoxに対する適正なパディングがPで格納され
る。上側部および下側部が、親からの呼び出し内で提供されるコンポーネントか
ら取られ、子インデックスが1に設定される。第1子に対し、この方法は決定プ
ロセス136 から138 を通過する。138 では、子A に対する上側部および下側部の
弾性AとDが、図18の計算から外れている、子の高さ弾性(体)の対応するコ
ンポーネントにより決定される。次に、子の上側部と下側部のcascとcdesc が、
上側部、下側部、およびパディング弾性に従って制限された上側部および下側部
を分割する分割オペレーションにより計算される( 図22) 。次に子の境界が、
constraint-width(幅制約)方法(図18)で前に制約された範囲と、ここで計
算された上側部と下側部とから、子に対し決定される。次にこれらの境界は、se
t-size(サイズ設定)呼び出しを通して子に提供され、子インデックスが1づつ
増加される。各子の境界が決定されると、この方法は決定136 から親に戻る。
FIG. 19 illustrates a set-size method whereby an HBox is provided with its left range, right range, upper and lower parts, and the HBox assigns appropriate values to each of its children. Pass through. At 134, the proper padding for the HBox is stored at P. The upper and lower parts are taken from the component provided in the call from the parent and the child index is set to 1. For the first child, the method goes through decision processes 136-138. At 138, the upper and lower resiliences A and D for the child A are determined by the corresponding components of the child's height elasticity (body), which deviates from the calculation of FIG. Next, the casc and cdesc of the upper and lower parts of the child are
Calculated by a split operation that splits the upper, lower, and upper and lower bounds according to padding elasticity (FIG. 22). Then the boundary of the child
It is determined for the child from the range previously constrained by the constraint-width method (FIG. 18) and the upper and lower sides calculated here. Then these boundaries are se
It is provided to the child through a t-size call and the child index is incremented by 1. Once the boundaries of each child have been determined, the method returns from decision 136 to the parent.

【0136】 本発明を好ましい実施形態により詳細に図示し、説明してきたが、当業者には
、添付の特許請求項に限定された本発明の精神と範囲から逸脱することなく、形
状または細部の各種の変更が実行可能であることは理解されるであろう。
While the present invention has been illustrated and described in detail in terms of preferred embodiments, those skilled in the art can make changes in shape or detail without departing from the spirit and scope of the invention as defined in the appended claims. It will be appreciated that various modifications can be made.

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

【図1】 本発明の利用を示す、多数のグラフィック・オブジェクトを含む表示ウィンド
ウの例を示す。
FIG. 1 shows an example of a display window containing a number of graphic objects illustrating the use of the present invention.

【図2】 図1のウィンドウで表示されるグラフィック・オブジェクトの階層の部分図であ
る。
FIG. 2 is a partial view of the hierarchy of graphic objects displayed in the window of FIG.

【図3】 弾性のコンセプトを示しており、図では、2つのグラフィック・オブジェクト
のサイズが変化して、可変ウィンドウ幅を満たしている。
FIG. 3 illustrates the concept of elasticity, in which the size of two graphic objects has changed to fill a variable window width.

【図4】 グラフィック・オブジェクトのオリジナルに対する左右の範囲、上側部と下側
部を示す。
FIG. 4 shows the left and right extents of the graphic object relative to the original, the upper and lower parts.

【図5】 垂直原点を使用して、グラフィック・オブジェクトを1行のテキストのベース
ラインに位置合わせしている図である。
FIG. 5 is a diagram of using a vertical origin to align a graphic object with a baseline of a line of text.

【図6】 図5で表示されるグラフィック・オブジェクトの階層を示している。[Figure 6]   6 illustrates a hierarchy of graphic objects displayed in FIG.

【図7】 水平原点を使用して、グラフィック・オブジェクトを数字の列に位置合わせし
ている図である。
FIG. 7 is a diagram of using a horizontal origin to align a graphic object with a sequence of numbers.

【図8】 図7で表示されるグラフィック・オブジェクトの階層を示している。[Figure 8]   8 shows a hierarchy of graphic objects displayed in FIG. 7.

【図9】 Hboxの3つのグラフィック・オブジェクトの左右の範囲と、対応する弾性体と
を示す。
FIG. 9 shows the left and right ranges of three graphic objects of the Hbox and the corresponding elastic bodies.

【図10】 4つのグラフィック・オブジェクトのグリッドを示す。[Figure 10]   A grid of four graphic objects is shown.

【図11】 高さの異なる3つの矩形を含むHBoxのパディングの使用を示す。FIG. 11   Shows the use of HBox padding containing three rectangles of different height.

【図12】 高さの異なる矩形の中心を合わせたHBoxのパディングの使用を示す。[Fig. 12]   Demonstrates the use of HBox padding that centers rectangles of different heights.

【図13】 3つのテキスト・ボックスの水平配置のグラフィック階層を示す。[Fig. 13]   3 illustrates a horizontally arranged graphic hierarchy of three text boxes.

【図14】 望ましい幅が与えられたときの、図13の3つのテキスト・ボックスの水平配
置を示す。
FIG. 14 shows the horizontal placement of the three text boxes of FIG. 13 given the desired width.

【図15】 望ましい幅より多少狭い幅が与えられたときの、図14の3つのテキスト・ボ
ックスの水平配置を示す。
FIG. 15 shows the horizontal alignment of the three text boxes of FIG. 14 given a width that is somewhat narrower than desired.

【図16】 望ましい幅よりかなり狭い幅が与えられたときの、図14と15の3つのテキ
スト・ボックスの水平配置を示す。
FIG. 16 shows the horizontal alignment of the three text boxes of FIGS. 14 and 15 when given a width much narrower than desired.

【図17】 HBoxのプロセスに対するスリー・パス法の第1パスを示すフローチャートであ
る。
FIG. 17 is a flow chart showing the first pass of the three pass method for the HBox process.

【図18】 HBoxのプロセスに対するスリー・パス法の第2パスを示すフローチャートであ
る。
FIG. 18 is a flow chart showing the second pass of the three pass method for the HBox process.

【図19】 HBoxのプロセスに対するスリー・パス法の第3パスを示すフローチャートであ
る。
FIG. 19 is a flowchart showing the third pass of the three pass method for the HBox process.

【図20】 図17の方法を説明するのに使用される3つのグラフィック・オブジェクトの
HBoxを示す。
FIG. 20 shows three graphical objects used to describe the method of FIG.
Indicates HBox.

【図21A】 図18の方法の一例を示す。FIG. 21A   An example of the method of FIG. 18 is shown.

【図21B】 図18の方法の他の例を示す。FIG. 21B   18 shows another example of the method of FIG.

【図22】 図19の方法を示す。FIG. 22   The method of FIG. 19 is shown.

【図23】 2つのテキスト・ボックスの水平配置と、それらに対応する、オーバライドを
含む弾性値を示す。
FIG. 23 shows the horizontal alignment of two text boxes and their corresponding elasticity values including overrides.

【図24】 図23で表示されるグラフィック・オブジェクトの階層を示す。FIG. 24   FIG. 24 shows a hierarchy of graphic objects displayed in FIG.

【図25】 弾性のオーバライドを提供する方法を示すフローチャートである。FIG. 25   6 is a flow chart illustrating a method of providing elastic override.

───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,MZ,SD,SL,SZ,TZ,UG ,ZW),EA(AM,AZ,BY,KG,KZ,MD, RU,TJ,TM),AE,AG,AL,AM,AT, AU,AZ,BA,BB,BG,BR,BY,BZ,C A,CH,CN,CR,CU,CZ,DE,DK,DM ,DZ,EE,ES,FI,GB,GD,GE,GH, GM,HR,HU,ID,IL,IN,IS,JP,K E,KG,KP,KR,KZ,LC,LK,LR,LS ,LT,LU,LV,MA,MD,MG,MK,MN, MW,MX,MZ,NO,NZ,PL,PT,RO,R U,SD,SE,SG,SI,SK,SL,TJ,TM ,TR,TT,TZ,UA,UG,UZ,VN,YU, ZA,ZW Fターム(参考) 5B009 NC07 NG02 NG05 5E501 AA01 AC15 FA14 FB04 ─────────────────────────────────────────────────── ─── Continued front page    (81) Designated countries EP (AT, BE, CH, CY, DE, DK, ES, FI, FR, GB, GR, IE, I T, LU, MC, NL, PT, SE), OA (BF, BJ , CF, CG, CI, CM, GA, GN, GW, ML, MR, NE, SN, TD, TG), AP (GH, GM, K E, LS, MW, MZ, SD, SL, SZ, TZ, UG , ZW), EA (AM, AZ, BY, KG, KZ, MD, RU, TJ, TM), AE, AG, AL, AM, AT, AU, AZ, BA, BB, BG, BR, BY, BZ, C A, CH, CN, CR, CU, CZ, DE, DK, DM , DZ, EE, ES, FI, GB, GD, GE, GH, GM, HR, HU, ID, IL, IN, IS, JP, K E, KG, KP, KR, KZ, LC, LK, LR, LS , LT, LU, LV, MA, MD, MG, MK, MN, MW, MX, MZ, NO, NZ, PL, PT, RO, R U, SD, SE, SG, SI, SK, SL, TJ, TM , TR, TT, TZ, UA, UG, UZ, VN, YU, ZA, ZW F-term (reference) 5B009 NC07 NG02 NG05                 5E501 AA01 AC15 FA14 FB04

Claims (22)

【特許請求の範囲】[Claims] 【請求項1】 グラフィック・オブジェクトを処理し、そのグラフィック・
オブジェクトをレイアウトする方法であって、 複数のグラフィック・オブジェクトの各々の望ましいサイズを決定するステッ
プと、 前記複数のグラフィック・オブジェクトの各々の望ましい弾性を決定するステ
ップと、 前記望ましいサイズと弾性とを個々に特定された前記複数のグラフィック・オ
ブジェクトの各々に対して、そのオブジェクトの最小サイズを決定するステップ
と、 前記複数のグラフィック・オブジェクトを処理して、前記複数のグラフィック
・オブジェクトを組み込んでいる大きいグラフィック・オブジェクトの最小サイ
ズと望ましいサイズとを決定するステップと、 を含んでいる方法。
1. A graphic object is processed and its graphic
A method of laying out objects, the method comprising: determining a desired size for each of a plurality of graphic objects; determining a desired elasticity for each of the plurality of graphic objects; Determining, for each of the plurality of graphic objects identified in, a minimum size of the object, a large graphic processing the plurality of graphic objects and incorporating the plurality of graphic objects. Determining a minimum size and a desired size for the object.
【請求項2】 請求項1において、前記処理ステップが、加算結果の前記最
小サイズと望ましいサイズの各々が、複数のグラフィック・オブジェクトの前記
最小および望ましいサイズのそれぞれの和である加算オペレーションを実行する
ステップを含む方法。
2. The method of claim 1, wherein the processing step performs an addition operation in which each of the minimum size and the desired size of the addition result is the sum of the minimum and desired sizes of a plurality of graphic objects. A method including steps.
【請求項3】 請求項1において、前記処理ステップが、最大結果が複数の
グラフィック・オブジェクトの最小サイズよりも大きい最小サイズと望ましいサ
イズとを含む最大オペレーションを実行するステップであって、前記望ましいサ
イズが、他のサイズに対する弾性が最小である前記グラフィック・オブジェクト
の望ましいサイズであるような、最大オペレーションを実行するステップを含む
方法。
3. The method of claim 1, wherein the processing step comprises performing a maximum operation that includes a minimum size and a desired size whose maximum result is greater than a minimum size of the plurality of graphic objects. Performing a maximum operation such that is the desired size of the graphic object that has the least elasticity to other sizes.
【請求項4】 請求項3において、各グラフィック・オブジェクトの弾性が
、別々の伸張度係数と圧縮度係数により決定されている方法。
4. The method according to claim 3, wherein the elasticity of each graphic object is determined by a separate expansion coefficient and compression coefficient.
【請求項5】 請求項1において、前記処理ステップが、複数のグラフィッ
ク・オブジェクト間にサイズを分割する分割オペレーションを含む方法であって
、分割された前記サイズが前記最小サイズよりも小さい場合、前記分割オペレー
ションが、前記複数のグラフィック・オブジェクトの最小サイズに比例して前記
サイズを分割する方法。
5. The method according to claim 1, wherein the processing step includes a dividing operation for dividing a size between a plurality of graphic objects, wherein the divided size is smaller than the minimum size. A method, wherein a split operation splits the size proportionally to a minimum size of the plurality of graphic objects.
【請求項6】 請求項1において、前記処理ステップが分割オペレーション
を含む方法であって、分割された前記サイズが前記最小サイズの和よりも大きい
場合、望ましいサイズの和に対する余剰または不足を計算し、そのサイズを、望
ましいサイズからの必要とされる変化を基準にして各オブジェクトの弾性に従っ
て分割する方法。
6. The method of claim 1, wherein the processing step comprises a split operation, wherein if the split size is greater than the minimum size sum, a surplus or deficiency for the desired size sum is calculated. , A method of dividing its size according to the elasticity of each object based on the required change from the desired size.
【請求項7】 請求項6において、弾性が別々の伸張度と圧縮度特性とによ
り決定されている方法。
7. The method of claim 6, wherein elasticity is determined by separate stretch and compressibility characteristics.
【請求項8】 請求項7において、弾性が、伸張および圧縮オーダーに基づ
いており、オーダーが等しいときは別々の伸張度および圧縮度係数に基づいてい
る方法。
8. The method of claim 7, wherein elasticity is based on stretch and compression orders and, when the orders are equal, on separate stretch and compression factors.
【請求項9】 請求項1において、弾性が、伸張および圧縮オーダーに基づ
いており、オーダーが等しいときは別々の伸張度および圧縮度係数に基づいてい
る方法。
9. The method of claim 1, wherein elasticity is based on stretch and compression orders and, when the orders are equal, on separate stretch and compression factors.
【請求項10】 グラフィック・オブジェクトのレイアウトに対する弾性を
決定するデータ処理システムのデータ構造であって、 望ましいサイズと、 弾性と、 前記グラフィック・オブジェクトの、前記望ましいサイズおよび弾性とは独立
に特定された最小サイズと、 を含んでいるデータ構造。
10. A data structure of a data processing system for determining elasticity for a layout of a graphic object, the data structure being specified independently of a desired size, elasticity, and the desired size and elasticity of the graphic object. A data structure that contains a minimum size and.
【請求項11】 請求項10において、前記弾性が圧縮度と伸張度特性とを
含んでいるデータ構造。
11. The data structure of claim 10, wherein the elasticity includes compressibility and extensibility properties.
【請求項12】 請求項11において、前記圧縮度および伸張度特性が、圧
縮度および伸張度係数と、圧縮および伸長オーダーとを含んでいるデータ構造。
12. The data structure of claim 11, wherein the compressibility and decompression characteristics include compression and decompression factors and compression and decompression orders.
【請求項13】 請求項10において、前記弾性が弾性係数と弾性オーダー
とを含んでいるデータ構造。
13. The data structure according to claim 10, wherein the elasticity includes a modulus of elasticity and an elasticity order.
【請求項14】 データ処理システムであって、 前記複数のグラフィック・オブジェクトの各々の望ましいサイズを決定する手
段と、 前記複数のグラフィック・オブジェクトの各々の弾性を決定する手段と、 前記複数のグラフィック・オブジェクトの各々の、前記望ましいサイズおよび
弾性とは独立に特定された最小サイズを決定する手段と、 前記複数のグラフィック・オブジェクトを処理して、前記複数のグラフィック
・オブジェクトを組み込んでいる大きいグラフィック・オブジェクトの最小サイ
ズと望ましいサイズとを決定する手段と、 を備えているシステム。
14. A data processing system comprising: means for determining a desired size of each of the plurality of graphic objects; means for determining elasticity of each of the plurality of graphic objects; Means for determining a minimum size of each of the objects, which is specified independently of said desired size and elasticity, and a large graphic object processing said plurality of graphic objects and incorporating said plurality of graphic objects. A system for determining a minimum size and a desired size for the system.
【請求項15】請求項14において、前記処理ステップが、加算結果の前記
最小サイズと望ましいサイズの各々が、複数のグラフィック・オブジェクトの前
記最小および望ましいサイズのそれぞれの和となる加算オペレーションを実行す
るステップを含むシステム。
15. The method according to claim 14, wherein the processing step performs an addition operation in which each of the minimum size and the desired size of an addition result is the sum of the minimum and desired sizes of a plurality of graphic objects. A system that includes steps.
【請求項16】 請求項14において、前記処理ステップが、最大結果が複
数のグラフィック・オブジェクトの最小サイズよりも大きい最小サイズと望まし
いサイズとを含む最大オペレーションであって、前記望ましいサイズが、他のサ
イズに対する弾性が最小である前記グラフィック・オブジェクトの望ましいサイ
ズとなるような、最大オペレーションを実行するステップを含むシステム。
16. The method of claim 14, wherein the processing step is a maximum operation including a minimum size and a desired size whose maximum result is greater than a minimum size of the plurality of graphic objects, the desired size being another. A system comprising performing a maximum operation that results in a desired size of the graphic object that has minimal elasticity to size.
【請求項17】 請求項16において、各グラフィック・オブジェクトの弾
性が、別々の伸張度および圧縮度係数により決定されているシステム。
17. The system according to claim 16, wherein the elasticity of each graphic object is determined by separate stretch and compression factors.
【請求項18】 請求項14 において、前記複数のグラフィック・オブジェ
クトを処理する手段が、サイズを複数のグラフィック・オブジェクト間に分割す
る分割オペレーションを処理するものであって、分割対象のサイズが前記最小サ
イズの和よりも小さい場合、前記分割オペレーションが、前記複数のグラフィッ
ク・オブジェクトの各最小サイズに比例して前記サイズを分割するシステム。
18. The method according to claim 14, wherein the means for processing the plurality of graphic objects processes a division operation for dividing a size among the plurality of graphic objects, and the size of the division target is the minimum. A system, wherein the dividing operation divides the size in proportion to each minimum size of the plurality of graphic objects if the size is less than the sum of the sizes.
【請求項19】 請求項14において、処理手段が、分割オペレーションを
処理する手段を含むものであって、分割対象のサイズが前記最小サイズの和より
も大きい場合、望ましいサイズの和に対する余剰または不足を計算し、前記サイ
ズを、望ましいサイズからの必要とされる変化を基準にして各オブジェクトの弾
性に従って分割するシステム。
19. The method according to claim 14, wherein the processing means includes means for processing a division operation, and when the size of the division target is larger than the sum of the minimum sizes, a surplus or a shortage with respect to the sum of the desired sizes. And dividing the size according to the elasticity of each object based on the required change from the desired size.
【請求項20】 請求項19において、弾性が別々の伸張度および圧縮度特
性により決定されているシステム。
20. The system of claim 19, wherein elasticity is determined by separate stretch and compressibility characteristics.
【請求項21】 請求項20において、弾性が、伸張および圧縮オーダーに
基づいており、オーダーの等しいときは別々の伸張度および圧縮度係数に基づい
ているシステム。
21. The system of claim 20, wherein elasticity is based on stretch and compression orders, and when the orders are equal, separate stretch and compression factors.
【請求項22】 請求項14において、弾性が、伸張および圧縮オーダーに
基づいており、オーダーの等しいときは別々の伸張度および圧縮度係数に基づい
ているシステム。
22. The system of claim 14, wherein elasticity is based on stretch and compression orders and, when the orders are equal, on separate stretch and compression factors.
JP2001514377A 1999-07-30 2000-07-19 Graphic object with minimum and desired size Pending JP2003506768A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/364,462 US6356279B1 (en) 1999-07-30 1999-07-30 Processing of graphical objects with minimum and preferred sizes
US09/364,462 1999-07-30
PCT/US2000/019655 WO2001009834A1 (en) 1999-07-30 2000-07-19 Graphical objects with minimum and preferred sizes

Publications (1)

Publication Number Publication Date
JP2003506768A true JP2003506768A (en) 2003-02-18

Family

ID=23434628

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001514377A Pending JP2003506768A (en) 1999-07-30 2000-07-19 Graphic object with minimum and desired size

Country Status (8)

Country Link
US (1) US6356279B1 (en)
EP (1) EP1203349B8 (en)
JP (1) JP2003506768A (en)
AT (1) ATE251326T1 (en)
AU (1) AU6111400A (en)
CA (1) CA2380695A1 (en)
DE (1) DE60005691D1 (en)
WO (1) WO2001009834A1 (en)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6504544B1 (en) * 1999-07-30 2003-01-07 Curl Corporation Processing layout of text graphical objects
US6667750B1 (en) 1999-07-30 2003-12-23 Curl Corporation Multiple pass layout of graphical objects with elastics
US20040189709A1 (en) * 1999-07-30 2004-09-30 Curl Corporation Overriding elastic values for graphical objects
US6868524B1 (en) * 1999-10-22 2005-03-15 Microsoft Corporation Method and apparatus for text layout across a region
AU1246001A (en) 1999-11-01 2001-05-14 Curl Corporation System and method supporting property values as options
WO2001033348A2 (en) * 1999-11-01 2001-05-10 Curl Corporation System and method supporting mapping of option bindings
WO2001033347A2 (en) * 1999-11-01 2001-05-10 Curl Corporation System and method supporting nonlocal values
WO2001033346A2 (en) * 1999-11-01 2001-05-10 Curl Corporation System and method supporting type checking of options
US6750887B1 (en) * 2000-06-02 2004-06-15 Sun Microsystems, Inc. Graphical user interface layout manager
US6919890B2 (en) * 2000-09-28 2005-07-19 Curl Corporation Grid and table layout using elastics
US20020111969A1 (en) * 2000-09-28 2002-08-15 Halstead Robert H. System and method for processing graphical objects for layout using an elastic difference operation
EP1446731A2 (en) 2001-11-21 2004-08-18 Sitecore APS A method for building and managing a web site
US7568181B2 (en) * 2002-02-25 2009-07-28 Loma Linda University System for building interactive calculations on web pages
US7418664B2 (en) * 2002-04-03 2008-08-26 Microsoft Corporation Application sharing single document sharing
US7028266B2 (en) * 2002-04-05 2006-04-11 Microsoft Corporation Processing occluded windows during application sharing
US8136109B1 (en) 2002-04-19 2012-03-13 Tibco Software Inc. Delivery of data and formatting information to allow client-side manipulation
US8756513B1 (en) 2002-04-23 2014-06-17 Microsoft Corporation Document viewing mechanism for document sharing environment
US7478340B2 (en) * 2003-10-22 2009-01-13 Microsoft Corporation Systems and methods for managing preparation of graphical elements for presentation
US20060218088A1 (en) * 2005-03-24 2006-09-28 Flora John R Intelligent auto-fill transaction data
US20060224558A1 (en) * 2005-03-24 2006-10-05 Flora John R Associating multiple categories with single payee or payor in financial software application
US20060218087A1 (en) * 2005-03-24 2006-09-28 Zimmerman Jeffrey P Automated aggregation and comparison of individual spending relative to population of similar users
US20060218086A1 (en) * 2005-03-24 2006-09-28 Heather Campbell Payee aliasing
US7779362B1 (en) * 2005-09-02 2010-08-17 Adobe Systems Inc. Methods and apparatus for selecting objects by state
JP4944434B2 (en) * 2005-12-06 2012-05-30 キヤノン株式会社 Layout method and program
US8177121B2 (en) * 2006-01-13 2012-05-15 Intuit Inc. Automated aggregation and comparison of business spending relative to similar businesses
US7656404B1 (en) 2006-03-21 2010-02-02 Intuit Inc. Line trimming and arrow head placement algorithm
US8185453B1 (en) 2006-03-21 2012-05-22 Intuit Inc. Contextual access to workflow functionality
AU2007201652B2 (en) * 2007-04-13 2010-09-02 Canon Kabushiki Kaisha Laying out graphical elements on a page
US9086780B2 (en) * 2008-10-03 2015-07-21 Digital Delivery Networks, Inc. System, method and computer-readable medium for visual presentation of aspect of software programs
US10402034B2 (en) * 2014-04-02 2019-09-03 Microsoft Technology Licensing, Llc Adaptive user interface pane manager
US10209849B2 (en) 2015-01-21 2019-02-19 Microsoft Technology Licensing, Llc Adaptive user interface pane objects
US10042655B2 (en) 2015-01-21 2018-08-07 Microsoft Technology Licensing, Llc. Adaptable user interface display

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4799172A (en) 1986-04-30 1989-01-17 Gerber Scientific Products, Inc. Apparatus and method for automatic layout of sign text
US5208906A (en) 1988-12-30 1993-05-04 Chipsoft Ca, Corp. Method and apparatus for representing bordered areas of a generic form with records
US5649216A (en) 1991-05-17 1997-07-15 Joseph S. Sieber Method and apparatus for automated layout of text and graphic elements
US5721848A (en) * 1994-02-04 1998-02-24 Oracle Corporation Method and apparatus for building efficient and flexible geometry management widget classes
US6125385A (en) 1996-08-01 2000-09-26 Immersion Corporation Force feedback implementation in web pages
US5796401A (en) 1996-08-09 1998-08-18 Winer; Peter W. System for designing dynamic layouts adaptable to various display screen sizes and resolutions
US6144974A (en) 1996-12-13 2000-11-07 Adobe Systems Incorporated Automated layout of content in a page framework
US5973692A (en) 1997-03-10 1999-10-26 Knowlton; Kenneth Charles System for the capture and indexing of graphical representations of files, information sources and the like

Also Published As

Publication number Publication date
EP1203349A1 (en) 2002-05-08
DE60005691D1 (en) 2003-11-06
US6356279B1 (en) 2002-03-12
ATE251326T1 (en) 2003-10-15
AU6111400A (en) 2001-02-19
CA2380695A1 (en) 2001-02-08
EP1203349B8 (en) 2003-12-03
WO2001009834A1 (en) 2001-02-08
EP1203349B1 (en) 2003-10-01

Similar Documents

Publication Publication Date Title
JP2003511748A (en) Layout processing of text and graphic objects
JP2003506768A (en) Graphic object with minimum and desired size
JP2003506769A (en) Multiple path layout of elastic graphic objects
US6380940B1 (en) Processing graphical objects having origins defined with elasticity
EP1200934B1 (en) Graphical objects with stretch and compression properties
Gibbs Taking computers to task
EP0412924B1 (en) Method of controlling construction of variable window on a display screen
US20050240865A1 (en) Method for assigning graphical images to pages
US20080109327A1 (en) System and method for interacting with item catalogs
US20160027195A1 (en) System and method for automatic generation of image distributions
US7747947B2 (en) Document creation system and related methods
EP0447095A2 (en) Workspace displays
JP2003530608A (en) Computing apparatus and method for displaying data by interactive split pie chart
US10289671B2 (en) Graphically displaying selected data sources within a grid
GB2392595A (en) Page composition
US20040189709A1 (en) Overriding elastic values for graphical objects
JP2947984B2 (en) Figure Drawing Method in Multiprocessor System
JP3102422B2 (en) Production planning system, production planning method, and recording medium recording production planning program
JPH08129585A (en) Scheduling system and gantt chart processing system
GB2422704A (en) Document creation

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20040928