(クラス)
public abstract sealed RootFrame
{inherits
Frame}
グラフィック階層のルートとして使用されます。
説明
RootFrame は、ディスプレイ画面にウィンドウを実装する
View 、ならびに Curl グラフィックをプリンタに送信するために使用する
PrintRootFrame のスーパークラスとして機能します。
したがって、
RootFrame には、グラフィック階層のルートにあるオブジェクトで使用することができ、グラフィックの表示や印刷とは関係ないすべてのメソッドが含まれています。
コンストラクタ public | {RootFrame.default ...} |
フィールド protected RootFrame.bounds:
GRect ={GRect 0pt, 0pt, 0pt, 0pt}
アクセサ protected RootFrame.cached-background:
Background
フィールド protected RootFrame.changing-size?:
bool =false
ローカル オプション public RootFrame.height:
any
ローカル オプション public RootFrame.width:
any
フィールド public-get protected-set RootFrame.x:
Distance
フィールド public-get protected-set RootFrame.y:
Distance プロパティ 継承 Graphic:
avoid-page-break?, border-color, border-spec, border-style, border-width, cell-border-spec, cell-border-width, cell-margin, discrete-select-in-range?, display-context, enabled?, graphic-selectable, horigin, is-paginating?, layout, margin, opaque-to-events?, outside-margin, pagination-state, parent, possibly-displayed?, selection-context, shadow-color, shadow-spec, visible?, visual-parent, vorigin プロパティ 継承 Visual:
_style-element, cursor, data-source, dragee, font-size, graphical-parent, has-key-focus?, input-method-enabled?, input-method-keyboard-mode, name, options, style-class, style-manager, style-options, test-child?, test-description, test-name, test-parent?, test-type-name, test-visible?, tooltip, user-data
protected | {RootFrame.change-height hspec:any}:void |
protected | {RootFrame.change-width wspec:any}:void |
protected | {RootFrame.compute-default-bounds}:void |
protected | {RootFrame.compute-default-bounds-recur}:void |
protected | {RootFrame.compute-initial-size}:void |
public | {RootFrame.get-bounds}:GRect |
protected | {RootFrame.get-elastic-bounds-into}:void |
protected | {RootFrame.get-nonparent-bounds-into gr:GRect}:void |
public | {RootFrame.get-visible-bounds-into grect:GRect}:void |
public | {RootFrame.get-visible-rect-in-root-into}:(Distance, Distance) |
public | {RootFrame.propagate-request-layout epoch:int}:void |
public | {RootFrame.request-draw}:void |
public | {RootFrame.request-draw-rect}:void |
public abstract | {RootFrame.request-draw-rect-in-root rect:GRect}:void |
public abstract | {RootFrame.request-pointer-trace}:void |
public | {RootFrame.set-size-from-child wspec:any = null,hspec:any = null }:void |
public | {RootFrame.validate-layout}:void |
protected | {RootFrame.validate-layout-recur try-revalidate?:bool = false }:void |
メソッド 継承 BaseFrame:
add-internal, after-reposition, allocate-layout-object, attempt-revalidate-layout, before-reposition, compute-child-bounds, compute-parent-elastic, constrain-height, constrain-width, draw, end-pagination, get-height-preference, get-text, get-width-preference, install-child-bounds, internal-remove-child, note-attached, note-detaching, notify-option-children, paginate, pick-child, register-options, set-size メソッド 継承 Graphic:
create-pagination-state, detach, draw-range-as-selected, draw-shadow, find-ancestor, find-graphical-ancestor, fire-inferior-crossing-event, get-graphical-root, get-gui-path, get-origin-in-graphical-ancestor, get-origin-in-root, get-pagination-state, on-drag-enter, on-inspection, on-pointer-enter, option-changed, paint-with-decorations, replace-with, search-next, search-prev, start-pagination, xy-offset-to メソッド 継承 Visual:
add-from-init-args, animate, change-cursor, clonable-appearance?, clone-appearance, get-focus-manager, get-test-parent, get-test-property, get-view, maybe-fire-attach-event, maybe-fire-detach-event, non-keyword-init-arg, note-caret-position, on-drag-leave, on-pointer-leave, pop-cursor, prepare-test-object, prepare-test-parent, push-cursor, quantize-width, refresh-style-options, release-key-focus, request-key-focus, scroll-to-include, test-record, test-run, transform-from-display-coordinates, transform-from-graphical-root-coordinates, transform-to-display-coordinates, transform-to-graphical-root-coordinates メソッド 継承 GuiEventTarget:
handle-delegate-event, handle-event, on-action, on-cancel-mode, on-command-changed, on-commit, on-composition-change-event, on-composition-result-event, on-context-menu-event, on-current-record-change-request, on-current-record-changed, on-destroy-notify, on-destroy-requested, on-drag-over, on-drag-pointer, on-drag-started, on-drop, on-end-composition-event, on-focus-event, on-focus-in, on-focus-out, on-gesture, on-gesture-begin, on-gesture-end, on-gesture-magnify, on-gesture-pan, on-gesture-rotate, on-gesture-swipe, on-gesture-tap, on-gesture-touch, on-grab-release, on-gui-event, on-input-method-event, on-key-event, on-key-press, on-pointer-button, on-pointer-crossing, on-pointer-event, on-pointer-motion, on-pointer-press, on-pointer-release, on-pointer-scroll, on-raw-key-event, on-raw-key-press, on-raw-key-release, on-reset, on-selectable-added, on-selectable-removed, on-selection-changed, on-selection-context-activated, on-selection-context-deactivated, on-selection-event, on-start-composition-event, on-start-event, on-stop-event, on-view-activate, on-view-deactivate, on-window-close, remove-event-handlers-for-event-class メソッド 継承 OptionListInterface:
add-option, add-style-option, change-option-parent-notify, clone-options, get-option, get-option-by-name, keyword-init-arg, local-add-notify, local-remove-notify, name-to-option-key, new-option-item, option-change-notify, option-lookup, option-lookup-here, option-propagate-notify, option-set?, propagate-option-change, remove-option, remove-style-option, remove-styles, set-option-by-name, set-style-option-by-name, unset-option-by-name, unset-style-option-by-name
(コンストラクタ)
public | {RootFrame.default ...} |
(ローカル オプション)
グラフィカル オブジェクトの背景色または背景パターン。
説明
例
例:
背景を文字列に設定 |
|
{CheckButton
label="Check here if you like my background",
background="lime"
}
| |
例:
背景を Background オブジェクトに設定 |
|
{Fill
width = 2cm,
height = 2cm,
background =
{Background
{url "curl://install/docs/default/images/grass.jpg"}
}
}
| |
注意事項
(フィールド)
protected RootFrame.bounds:
GRect ={GRect 0pt, 0pt, 0pt, 0pt}
RootFrame の境界。
説明
ほとんどの
Graphic は、その境界を保持する関連
Layout オブジェクトを持っています。ただし、
RootFrame には親がないので
Layout がありません。
値は、
RootFrame の既定の境界を計算する際、または幅または高さの指定を変更する際に設定されます。
(アクセサ)
アクセサ protected RootFrame.cached-background:
Background
(フィールド)
protected RootFrame.changing-size?:
bool =false
(ローカル オプション)
public RootFrame.height:
any
(アクセサ)
オブジェクトのオプションの親を返します。
戻り値
オーバーライド
(フィールド)
(ローカル オプション)
public RootFrame.width:
any Graphic の幅設定。
説明
次の情報は、
width および
height オプションに適用します。
このオプションは、この
Graphic の
コンテナが、
レイアウト ネゴシエーション中にこの
Graphic の幅または高さ設定として受け取る値を記述します。このオプションは、そのオブジェクト
自体の
Graphic.get-width-preference メソッドによって返された値 (
本来の幅設定) に必ずしも一致しません。
このオプションには、次の型の値を指定できます。
プロシージャを除き、指定した値は、幅または高さ設定の記述に使用される前に、内部レイアウト ルーチンによって
OriginElastic に変換されます。
OriginElastic およびレイアウト システムでの使用方法の詳細については、「
エラスティックスとページ レイアウト」の章を参照してください。以下は、幅または高さ設定を
OriginElastic に変換する場合に注意する点です。
次のプロシージャが、
{proc {g:Graphic,
e:OriginElastic}:OriginElastic
...}width オプションまたは
height オプションの値として指定されると、対応するサイズ設定 (幅または高さ) の計算が必要になるたびにこのプロシージャが呼び出されます。
g はオプションを設定した
Graphic になり、
e は
g の本来のサイズ設定です。さらに、プロシージャの戻り値は
e で置き換えられるサイズ設定になります。
width または
height オプションのこの特徴が使用されるほとんどの状況で、
add-stretch プロシージャを呼び出して必要なプロシージャを作成することができます。詳細については、
add-stretch を参照してください。
幅と高さをさまざまに変えて指定した例を次に示します。
例 |
|
{HBox width = 4in,
valign = "bottom",
{Frame
background = "pink",
height = {add-stretch},
{RectangleGraphic
width = 1.2in,
height = {make-elastic
preferred-size = 14pt,
stretch-order = rigid-stretch-order
}
}
},
{Fill width = 5mm},
{Frame
background = "blue",
color = "white",
width = 48pt,
height = 40pixel,
"Hi there"
}
}
| |
次の例は、幅と高さの指定を整数ピクセルに丸めた結果を示しています(画面のピクセル サイズ設定により 3 つの行が一列に表示されている場合、変数
w の値をピクセル サイズの倍数とはまったく異なる値に変更してください)。
例 |
|
{value
let w:Distance = 4.0pt
let num-rects:int = 50
let rounded:HBox = {HBox}
let unrounded:HBox = {HBox}
{for i:int =
0 below num-rects do
{rounded.add
{RectangleGraphic height = 15pt, width = w}
}
{unrounded.add
{RectangleGraphic
height = 15pt,
width = {make-elastic
preferred-size = w,
stretch-order =
rigid-stretch-order
}
}
}
}
{VBox
rounded,
unrounded,
{RectangleGraphic
height = 15pt,
width = {make-elastic
preferred-size = w * num-rects,
stretch-order =
rigid-stretch-order
}
}
}
}
| |
1 行目の各四角形は、その幅が同じピクセル値に丸められているため画面上では揃って見えます。ただし、
Graphic のコレクションの幅を指定寸法の正確な合計に合わせる場合は、2 番目の行を生成するのに使用したスタイルを使用する必要があります。
(フィールド)
public-get protected-set RootFrame.x:
Distance
(フィールド)
public-get protected-set RootFrame.y:
Distance
(メソッド)
protected | {RootFrame.change-height hspec:any}:void |
高さ指定の変更を処理します。
hspec: 新しい高さ指定。
プログラミング注意事項
オーバーライド
サブクラスは、通常オーバーライドで super.change-height を呼び出す必要があります。
(メソッド)
protected | {RootFrame.change-width wspec:any}:void |
幅指定の変更を処理します。
wspec: 新しい幅指定。
プログラミング注意事項
オーバーライド
サブクラスは、通常オーバーライドで super.change-width を呼び出す必要があります。
(メソッド)
protected | {RootFrame.compute-default-bounds}:void |
レイアウト ネゴシエーションが成功するまでこれを繰り返し実行します。
説明
プログラミング注意事項
通常このメソッドが呼び出されるのはオブジェクトの初期化中のみで、外部から強制されたサイズの制約に基づくレイアウトではなく、本来のサイズ 設定に基づくサイズを確認する必要がある場合です。
(メソッド)
protected | {RootFrame.compute-default-bounds-recur}:void |
レイアウト ネゴシエーションが成功するまでこれを繰り返し実行します。
説明
レイアウト ネゴシエーションが成功するまで、
self.get-elastic-bounds-into を呼び出してこれを繰り返し実行します。
self が子オブジェクトを持たない場合、
3in x
2in のサイズが任意に選択されます。
プログラミング注意事項
(メソッド)
protected | {RootFrame.compute-initial-size}:void |
(メソッド)
(メソッド)
public | {RootFrame.get-bounds}:GRect |
(メソッド)
protected | {RootFrame.get-elastic-bounds-into}:void |
レイアウト ネゴシエーションを行い、その結果を GRect に格納します。
説明
このメソッドは、
self に対する width-first レイアウト ネゴシエーションを次のように行います。
- self.get-width-preference を呼び出します。これにより、幅設定 wpref が返されます。
- wpref の最初の最後のコンポーネントのユーザー設定サイズを lextent 引数と rextent 引数として self.constrain-width を呼び出します。この呼び出しの結果が、高さ設定 hpref になります。
- hpref の最初と最後のコンポーネントのユーザー設定サイズをそれぞれオブジェクトのアセントとディセントとして使用して、self.set-size を呼び出します。
この作業の結果、
self は、その実際のサイズがユーザー設定サイズになるように配置されます。
上記のメソッドの呼び出し中にレイアウトの無効化 (
Graphic.request-layout の呼び出し) が発生した場合、このメソッドはレイアウト ネゴシエーションを繰り返し実行しようとはしません。したがって、
get-elastic-bounds-into の呼び出し側が、レイアウトの無効化が発生したかどうかをチェックし (
self.layout-valid? が true であるか false であるかを確認し)、レイアウト ネゴシエーションの再試行などの適切な復元処理を実行する必要があります。
(メソッド)
このオブジェクトの現在の LayoutContext を返します。
戻り値
オーバーライド
ローカルにキャッシュされた、適切な
LayoutContext へのポインタを保持するオブジェクトは、このメソッドをオーバーライドしてそのポインタを返すことができます。
説明
(メソッド)
protected | {RootFrame.get-nonparent-bounds-into gr:GRect}:void |
レイアウト ネゴシエーションを行い、その結果を GRect に格納します。
説明
(メソッド)
グラフィック階層に含まれる指定上位オブジェクトの座標フレームでこのオブジェクトの左上隅のロケーションを見つけます。
ancestor: 対象の上位オブジェクトです。
戻り値
対象の座標、ならびに
ancestor が
self の上位オブジェクトである場合は true に、それ以外の場合は false に指定された
bool です。この
bool が false の場合、返される座標には意味はありません。
オーバーライド
これは
Visual のサブクラスに定義されなくてはならない抽象メソッドです。
注意事項
(メソッド)
public | {RootFrame.get-visible-bounds-into grect:GRect}:void |
オブジェクトの実際の可視領域の境界ボックスを計算します。
grect: この四角形の記述を格納する
GRect。四角形の値は、現在のオブジェクトの
内側起点からの相対値です。このオブジェクトが
View を祖先に持っていない場合、
grect が設定されて空の四角形を表します。
オーバーライド
通常はオーバーライドされません。
注意事項
(メソッド)
public | {RootFrame.get-visible-rect-in-root-into}:(Distance, Distance) |
この Box ボックスを含むウィンドウに表示されている四角形の一部を決定します。
rect: この
Box の
内部起点を基準として対象の四角形を示す
GRect。
rect には、このメソッドの呼び出しによる副作用があります。呼び出し後の
rect は、ウィンドウ内で実際に見えている元の四角形の一部を、そのウィンドウのトップレベルの
View の
内部起点を基準として示します 。
戻り値
ルート
View を基準としたこの
Box の位置。
必要な場合は、これらのオフセットを使用して、
rect をこの
Box の座標フレームに変換して戻すことができます。例外:
rect が空の四角形になる場合、つまり、元の四角形がまったく見えない場合の戻り値は任意です。
注意事項
このメソッドは、rect の境界を、その一部をクリッピングする任意の祖先の Box の指示どおりに減らします。しかし、この Box の祖先ではないオブジェクトが上に重なってその四角形の一部を隠している可能性がある遮蔽関係については考慮されません。したがって、このメソッドを呼び出した結果得られた rect 値は、可視領域の上境界を提供しますが、この領域全体が実際に見えていることを保証するわけではありません。
プログラミング注意事項
オーバーライド
通常はオーバーライドされません。
(メソッド)
public | {RootFrame.propagate-request-layout epoch:int}:void |
Box からそのグラフィカルな親 (存在する場合) に新しいレイアウト ネゴシエーションの要求を伝播します。
epoch: この
レイアウト無効化に関連付けられている Layout Epoch。これは、通常、
get-layout-epoch を使用して得られる現在の Layout Epoch です。
プログラミング注意事項
一般的に、このメソッドは、
Box.request-layout から
Box の親にレイアウトの要求を伝えるために呼び出されるか、
Layout.request-layout から呼び出されます。
Box でこのメソッドを呼び出すことは、
Box のグラフィカルな子孫のいずれかが新しいレイアウト ネゴシエーションを要求していることを示します。この状況は、
Box での
Box.request-layout の呼び出しとは対照的です。この場合は、
Box 自体が新しいレイアウト ネゴシエーションを要求していることを意味します。これらの 2 つの別個のメソッドが提供されるのは、その後のレイアウト ネゴシエーションの初めに
Graphic.attempt-revalidate-layout が呼び出されるときに、異なるアクションを保証するためです。
Box.propagate-request-layout の呼び出しによって、この
Box にレイアウト要求が通知された場合は、
Box 自体では何も変更されていないので、
Box の子で
Graphic.attempt-revalidate-layout メソッドが呼び出されたときにすべての子の答えが true であれば、
Box の
Graphic.attempt-revalidate-layout に対する答えは常に true になります。しかし、
Box.request-layout が呼び出された場合は、
Box は、そのすべての子のレイアウトについて有効性を再検証できたとしても、それ自体のレイアウトが有効とは認められない場合があります。これは、グラフィカルな子の追加や削除、またはそれらの子の空白や配列での変更など、
Box 自体の構造で変更が加えられている可能性があるからです。
オーバーライド
このメソッドは、情報を保持してレイアウト無効化を追跡する
Box サブクラスでオーバーライドできます。このようなオーバーライド メソッドにはすべて
super.propagate-request-layout の呼び出しが必要です。このメソッドは、グラフィック階層のルートになるように設計されている
View などのクラスでもオーバーライドされます。この場合、レイアウト要求を記録し、新しいレイアウト ネゴシエーションに合わせて整列させるコードによってメソッドがオーバーライドされます。
(メソッド)
public | {RootFrame.request-draw}:void |
描画する Graphic に属するピクセルを確認します。
注意事項
プログラミング注意事項
このオブジェクトのピクセルの再ペイントが必要になる何らかの理由があったとき、このメソッドが呼び出されます。このような状況が発生するのは、オブジェクトが初めて表示されるとき、ビューから削除されるとき、移動やサイズ変更が行なわれるとき (この場合、移動やサイズ変更の前と後でこのメソッドを呼び出す必要があります) などがあります。
オーバーライド
(メソッド)
public | {RootFrame.request-draw-rect}:void |
指定した GRect を再描画するためにピクセルを要求します。
rect: 再描画する領域を記述する
GRect。
プログラミング注意事項
注意事項
オーバーライド
通常はオーバーライドされません。
(メソッド)
public abstract | {RootFrame.request-draw-rect-in-root rect:GRect}:void |
RootFrame の座標系にすでに存在する GRect によって記述される領域の再ペイント処理を要求します。
説明
再ペイントされる領域は、グラフィカル階層のルートの座標系に関連して記述されます。
プログラミング注意事項
(メソッド)
public abstract | {RootFrame.request-pointer-trace}:void |
表示されたオブジェクトの幾何形状が変更されていることを宣言し、必要な PointerCrossing イベントの発生を要求します。
説明
オーバーライド
ポイント (x,y) を含む子オブジェクトの識別に (x,y) の位置をマップする、キャッシュされた状態を格納する
SequenceBox のようなサブクラスによってオーバーライドできます。こうした状態はリセットして、グラフィック階層のオブジェクトの幾何形状が変更されても新しい
PointerEnvelopeEvent が適切に送信されるようにします。このメソッドをオーバーライドする場合、オーバーライド メソッドには以下の呼び出しを含めます。
{super.request-pointer-trace}
(メソッド)
Graphic のレイアウト オブジェクトを設定します。
l: 設置するレイアウト オブジェクト。
プログラミング注意事項
このメソッドは、このオブジェクトをグラフィカルな親に接続する過程で呼び出されます。グラフィック階層のオブジェクトの接続/切断に使われるプロトコルを理解せずにこのメソッドを使用するのは危険です。
注意事項
オーバーライド
通常はオーバーライドされません。
(メソッド)
public | {RootFrame.set-size-from-child wspec:any = null,hspec:any = null }:void |
ウィンドウの内容のサイズ設定に基づき、指定されたとおりに調整してウィンドウのサイズを指定します。
wspec, hspec:
View の内容のサイズ設定から計算された幅や高さをオーバーライドするために、幅や高さを指定します。これらのパラメータのいずれか、または両方が指定されていない場合、内容のサイズ設定が使用されます。
(メソッド)
public | {RootFrame.validate-layout}:void |
Box のレイアウトを有効にします。
プログラミング注意事項
このメソッドは、境界および原点の位置についての情報のクエリができるように Box のレイアウトを有効にする必要があるときに呼び出されます。このメソッドは、一般に、レイアウト システムの一部をなすコードによってのみ呼び出されます。
オーバーライド
この抽象メソッドは、Box の 具象サブクラスによって、必要なアクションを実際に実行するコードでオーバーライドされなければなりません。
(メソッド)
protected | {RootFrame.validate-layout-recur try-revalidate?:bool = false }:void |
レイアウト ネゴシエーションが成功するまでこれを実行します。
説明