SequenceBox (クラス)
public abstract SequenceBox {inherits BasicBox}
インポート元: CURL.GUI.STANDARD. package 内で定義されています CURL.GUI.BASE.
直接継承しているサブクラス: Grid, OverlayBox, ShapeBox

複数の子を持つことができるほとんどの Box のスーパークラス。

説明

SequenceBox は、複数の子を持つことができるすべての Box の共通スーパークラスですが、TextFlowBox はこれに含まれていません。TextFlowBox にはテキストと Graphic が含まれるため、特別な要件があります。

SequenceBox には、子オブジェクトを順番に並べたリストを管理するメソッドが含まれます。SequenceBox.add は新しい子オブジェクトを追加し、SequenceLayout 型のレイアウト オブジェクトに関連付けます。SequenceBox の子に対応する SequenceLayout オブジェクトは、SequenceBox.child-array に格納されます。

また、SequenceBox および SequenceLayout には、複数の子を持つ Box で実行する必要があるその他の多数の操作メソッドが含まれます。これには、レイアウト要求および再描画の要求の送信や登録されたオプション キーのリストの管理などがあります。

コンストラクタ
clone-appearance-from:このタイプの新しいオブジェクトを作成するために Visual.clone-appearance が使用するコンストラクタ。
コンストラクタ protected {SequenceBox.clone-appearance-from other:SequenceBox}
default:新しい SequenceBox オブジェクトを初期化します。
コンストラクタ protected {SequenceBox.default ...}

プロパティ
child-array:これは、SequenceBox のそれぞれの子の SequenceLayout の配列です。
フィールド public-get protected-set SequenceBox.child-array:{Array-of SequenceLayout}
completely-clonable-children?:Visual のすべての子を完全にクローン化できる場合は、true を返します。
アクセサ protected SequenceBox.completely-clonable-children?:bool
contains-valid?:
フィールド protected SequenceBox.contains-valid?:bool =false
graphical-children:SequenceBox のグラフィカルな子の反復子を返します。
アクセサ public SequenceBox.graphical-children:{Iterator-of Graphic}
invalid-epoch:このオブジェクト、またはそのいずれかの子孫の最も新しいレイアウト無効化 (つまり Graphic.request-layout の呼び出し) のエポック。これが現在のエポック (LayoutContext.epoch によって返される値) と同じかそれより大きい場合、レイアウト無効化が現在のレイアウト ネゴシエーション中に発生しているので、レイアウト ネゴシエーションを再開する必要があります。
フィールド protected SequenceBox.invalid-epoch:int =-1
layouts-have-valid-sequence-number?:
self.child-array 内に含まれている SequenceLayout が有効なシーケンス番号を持っている場合に true です。
SequenceLayout のシーケンス番号が有効であるのは、そのシーケンス番号が self.child-array 内の SequenceLayout のインデックスである場合です。
SequenceBox.validate-layout-sequence-numbers を呼び出して、self.child-array 内の SequenceLayout のシーケンス番号を検証します。
フィールド protected SequenceBox.layouts-have-valid-sequence-number?:bool =true
option-register-proc:子オブジェクトが興味を持つ非ローカルオプションに関して、このオブジェクトに通知するために呼び出されるプロシージャ。
アクセサ protected SequenceBox.option-register-proc:#{proc-type {OptionKey}:void}
ordered-children:子を順番に返す、この Box のグラフィカルな子の反復子。
アクセサ public SequenceBox.ordered-children:{Iterator-of Graphic}
registered-option-keys:このオブジェクトおよびその子孫により登録されたオプション キーのリストを返します。
アクセサ public SequenceBox.registered-option-keys:{Array-of OptionKey}
reverse-ordered-children:この Box のグラフィカルな子の反復子で、子を逆の順序で返します。これは、Box.ordered-children を反転するものです。
アクセサ public SequenceBox.reverse-ordered-children:{Iterator-of Graphic}
プロパティ 継承 GetBoundsBox: layout-locally-valid?, layout-valid?
プロパティ 継承 Box: clip-child-shadows?
プロパティ 継承 Graphic: avoid-page-break?, background, 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, height, horigin, is-paginating?, layout, margin, opaque-to-events?, option-parent, outside-margin, pagination-state, parent, possibly-displayed?, selection-context, shadow-color, shadow-spec, visible?, visual-parent, vorigin, width
プロパティ 継承 Visual: _style-element, clonable-class?, cursor, data-source, dragee, font-size, graphical-parent, has-key-focus?, input-method-enabled?, input-method-keyboard-mode, name, options, style-class, style-element, style-manager, style-options, test-child?, test-description, test-name, test-parent?, test-type-name, test-visible?, tooltip, user-data
プロパティ 継承 DataBindingTarget: data-binding-context, data-bindings
プロパティ 継承 EventTarget: event-handlers
プロパティ 継承 OptionListInterface: options-present-here

メソッド
add:子アイテムを SequenceBox に追加します。
public {SequenceBox.add g:any, ...}:#Visual
add-at-index:GraphicSequenceBox の子の配列の指定されたインデックスに挿入します。
protected {SequenceBox.add-at-index g:#Graphic, where:any}:void
add-at-index-with-layout:関連するレイアウト オブジェクトでグラフィックを追加します。
protected {SequenceBox.add-at-index-with-layout}:void
after-reposition:Graphic が移動またはサイズ変更されたことを、Graphic に通知します。
public {SequenceBox.after-reposition layout-context:LayoutContext}:void
allocate-layout-object:この SequenceBox 内に含まれる GraphicSequenceLayout オブジェクトを作成します。
protected abstract {SequenceBox.allocate-layout-object}:SequenceLayout
attempt-revalidate-layout:最後のレイアウト ネゴシエーションが完了してから、Graphic のレイアウト設定が変更されたかどうかを判定します。
public {SequenceBox.attempt-revalidate-layout lc:LayoutContext}:bool
before-reposition:Graphic が移動またはサイズ変更されることを、Graphic に対して通知します。
public {SequenceBox.before-reposition
layout-context:LayoutContext
}:void
clear:ボックスのグラフィカルな子を削除します。
public {SequenceBox.clear}:void
compare-children:このボックスの 2 つの子のグラフィカルな順序を検証します。
public {SequenceBox.compare-children}:GraphicalOrder
draw:このオブジェクトの可視表現を描画します。
public {SequenceBox.draw renderer2d:Renderer2d}:void
end-pagination:この Graphic に対するパジネーション プロセスを終了し、PaginationState を記録するためのデータ構造を割り当て解除します。
public {SequenceBox.end-pagination}:void
find:SequenceBox の子のリスト内で指定された子の位置を返します。
public {SequenceBox.find child:any}:int
graphical-child-visible-at:位置 x、y にある目に見えるグラフィカルな子を規定します。
public {SequenceBox.graphical-child-visible-at}:#Graphic
internal-remove-child:SequenceBox の子を削除します。
protected {SequenceBox.internal-remove-child l:SequenceLayout}:void
note-attached:ルートが RootFrame であるグラフィック階層にこの Visual が追加されたとき、そのグラフィック階層内でこれより下にあるすべての Visual に対して AttachEvent を起動します。
public {SequenceBox.note-attached}:void
note-detaching:ルートが RootFrame であるグラフィック階層からこの Visual が削除されたとき、そのグラフィック階層内でこれより下にあるすべての Visual に対して DetachEvent を起動します。
public {SequenceBox.note-detaching}:void
notify-option-children:このオブジェクトのオプションの子にオプションが変更されたことを通知します。
public {SequenceBox.notify-option-children
item:OptionItem,
removed?:bool
}:void
pick-child:指定された点 (x, y) を覆う BasicBox の子をピックアップします。
public {SequenceBox.pick-child x:Distance, y:Distance}:#EventForwarder
propagate-request-layout:Box からそのグラフィカルな親 (存在する場合) に新しいレイアウト ネゴシエーションの要求を伝播します。
public {SequenceBox.propagate-request-layout epoch:int}:void
register-options:このオブジェクトがバインドのモニタリングを必要とする非ローカル オプション キーを登録します。
public {SequenceBox.register-options
p:{proc-type {OptionKey}:void}
}:void
request-draw:描画する Graphic に属するピクセルを確認します。
public {SequenceBox.request-draw
layout-context:LayoutContext = {self.get-layout-context}
}:void
request-pointer-trace:表示されたオブジェクトの幾何形状が変更されていることを宣言し、必要な PointerCrossing イベントの発生を要求します。
public {SequenceBox.request-pointer-trace}:void
set-size:このオブジェクトにレイアウト幅と高さを代入します。
public {SequenceBox.set-size lc:LayoutContext, bounds:GRect}:void
swap-children:SequenceBox 内の 2 つの子の位置を交換します。
public {SequenceBox.swap-children g1:Graphic, g2:Graphic}:void
validate-layout-sequence-numbers:
この SequenceBox と関連したすべての SequenceLayout のシーケンス番号を検証します。
SequenceLayout のシーケンス番号が有効なのは、このレイアウトのシーケンス番号が self.child-array 内でのこのレイアウトの位置と対応している場合です。
protected {SequenceBox.validate-layout-sequence-numbers}:void
メソッド 継承 BasicBox: contains-point?, find-graphic-at, handle-crossing, on-pointer-envelope-event, pointer-enter-occurred, pointer-leave-occurred
メソッド 継承 GetBoundsBox: get-bounds, get-elastic-bounds-into, get-nonparent-bounds-into, request-layout, validate-layout
メソッド 継承 Box: find-test-children, get-delimited-child-text-selection, get-gui-path-to-child, get-range-as-selected-text, get-visible-rect-in-root-into, make-gui-mark, search-next-here, search-prev-here
メソッド 継承 Graphic: constrain-height, constrain-width, 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-height-preference, get-origin-in-graphical-ancestor, get-origin-in-root, get-pagination-state, get-top-left-in-ancestor, get-visible-bounds-into, get-width-preference, on-drag-enter, on-inspection, on-pointer-enter, option-changed, paginate, paint-with-decorations, replace-with, request-draw-rect, search-next, search-prev, set-layout, start-pagination, xy-offset-to
メソッド 継承 Visual: add-from-init-args, animate, change-cursor, clonable-appearance?, clone-appearance, clone-appearance-helper, get-focus-manager, get-layout-context, get-test-parent, get-test-property, get-text, 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
メソッド 継承 GraphicOptions: any-to-Distance, get-display-context
メソッド 継承 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
メソッド 継承 DataBindingTarget: add-data-binding, get-data-binding, refresh-data-binding, remove-data-binding, unset-property, update-data-binding, validate-data-binding
メソッド 継承 EventTarget: accepts-event-class?, add-event-handler, event-handler-present?, remove-event-handler, verify-event
メソッド 継承 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
メソッド 継承 BasicEventTarget: enqueue-event
メソッド 継承 InitRestArgParser: process-rest-args
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize



コンストラクタ詳細
clone-appearance-from (コンストラクタ)
protected {SequenceBox.clone-appearance-from other:SequenceBox}

このタイプの新しいオブジェクトを作成するために Visual.clone-appearance が使用するコンストラクタ。

other: クローンする SequenceBox

注意事項

クローン化をサポートする SequenceBox のサブクラスは、このコンストラクタを呼び出す必要があります。


default (コンストラクタ)
protected {SequenceBox.default ...}

新しい SequenceBox オブジェクトを初期化します。

...: 残余引数は、コンテナに追加されるイベント ハンドラ、グラフィック オプション、およびオブジェクトです。



プロパティ詳細
child-array (フィールド)
public-get protected-set SequenceBox.child-array:{Array-of SequenceLayout}

これは、SequenceBox のそれぞれの子の SequenceLayout の配列です。



completely-clonable-children? (アクセサ)
アクセサ protected SequenceBox.completely-clonable-children?:bool

Visual のすべての子を完全にクローン化できる場合は、true を返します。

オーバーライド

既定の実装は true を返します。子がある Box のようなサブクラスは、そのすべての子について、complete-clone-required?true として渡された Visual.clonable-appearance?true を返す場合は、このゲッターをオーバーライドし、true を返す必要があります。その他の場合は false を返すはずです。


contains-valid? (フィールド)
protected SequenceBox.contains-valid?:bool =false
この項目はサポートされていません。内部使用限定となっています。


graphical-children (アクセサ)
アクセサ public SequenceBox.graphical-children:{Iterator-of Graphic}

SequenceBox のグラフィカルな子の反復子を返します。

注意事項

graphical-children を呼び出すときに、SequenceBox の子の追加や削除を同時に実行しないでください。実行すると、反復子が予期せぬ動作を行なう可能性があります。SequenceBox に対して子を追加または削除する場合、graphical-children を再度呼び出して新しい反復子を作成します。


invalid-epoch (フィールド)
protected SequenceBox.invalid-epoch:int =-1

このオブジェクト、またはそのいずれかの子孫の最も新しいレイアウト無効化 (つまり Graphic.request-layout の呼び出し) のエポック。これが現在のエポック (LayoutContext.epoch によって返される値) と同じかそれより大きい場合、レイアウト無効化が現在のレイアウト ネゴシエーション中に発生しているので、レイアウト ネゴシエーションを再開する必要があります。

プログラミング注意事項

SequenceBox.propagate-request-layout メソッドは、このフィールドを現在のエポックと同じになるように設定します。フィールドの値は、レイアウト ネゴシエーションの再開が必要であることが明らかな場合に SequenceBox.set-size などのメソッドで使用され、価値のない結果 (または障害の可能性さえある) を生じる計算をスキップします。


layouts-have-valid-sequence-number? (フィールド)
protected SequenceBox.layouts-have-valid-sequence-number?:bool =true

self.child-array 内に含まれている SequenceLayout が有効なシーケンス番号を持っている場合に true です。
SequenceLayout のシーケンス番号が有効であるのは、そのシーケンス番号が self.child-array 内の SequenceLayout のインデックスである場合です。
SequenceBox.validate-layout-sequence-numbers を呼び出して、self.child-array 内の SequenceLayout のシーケンス番号を検証します。



option-register-proc (アクセサ)
アクセサ protected SequenceBox.option-register-proc:#{proc-type {OptionKey}:void}

子オブジェクトが興味を持つ非ローカルオプションに関して、このオブジェクトに通知するために呼び出されるプロシージャ。

プログラミング注意事項

返されたプロシージャは、各オプション子(またはその子孫)が興味を持つ、各非ローカルオプションに対して1回呼び出されます。オプション キーが、このプロシージャを介して登録されていない場合は、オプション値が変更する場合に、このオブジェクトは子孫に対し、(子孫がこのオプションに関心を示していないため)変更ハンドラを呼び出す必要はありません。

特に、返された値が null でない場合は、このオブジェクトが新しいオプション子を入手すると OptionListInterface.change-option-parent-notify がそれを呼び出します。

注意事項

既定では、返されたプロシージャは、そのオプション親に登録を転送します。

オーバーライド

まれですが、典型的には、オプションの伝搬メカニズムをオーバーライドするオブジェクトのみにより、オーバーライドされます。


ordered-children (アクセサ)
アクセサ public SequenceBox.ordered-children:{Iterator-of Graphic}

子を順番に返す、この Box のグラフィカルな子の反復子。

説明

選択や検索、および制御のタブ順に使用されます。このメソッドの既定の実装は、Box.graphical-children と同じです。Box のサブクラスで、グラフィカルな子の順序が graphical-children の順序と異なる場合は、このメソッドをオーバーライドする必要があります。


registered-option-keys (アクセサ)
アクセサ public SequenceBox.registered-option-keys:{Array-of OptionKey}

このオブジェクトおよびその子孫により登録されたオプション キーのリストを返します。

戻り値

これらの OptionKeyArray-of

オーバーライド

既定の実装 OptionListInterface.registered-option-keys は、このオブジェクトで OptionListInterface.register-options を呼び出し、その結果得られるオプション キーのセットを収集し、リストとして返します。これはシンプルで正確な方法ですが、あまり効率的ではない場合があります。したがって、サブクラスでもその register-options の実装が非常に複雑な場合は、この既定の実装を使用しないように推奨されます。代わりに、このようなサブクラスでは register-options 呼び出しの結果をリストとしてキャッシュし、このリストを返すだけのメソッドで OptionListInterface.registered-option-keys をオーバーライドする必要があります。


reverse-ordered-children (アクセサ)
アクセサ public SequenceBox.reverse-ordered-children:{Iterator-of Graphic}

この Box のグラフィカルな子の反復子で、子を逆の順序で返します。これは、Box.ordered-children を反転するものです。

注意事項

既定の実装では、それぞれの子のポインタにメモリが割り当てられます。

オーバーライド

このメソッドはオーバーライドが必要とは限りません。メソッドの既定の実装では、Box.ordered-children を反転します。ただし、既定の実装は少し効率が悪いので、このアクセッサをより効率的に実装できるサブクラスは適宜実装してください。





メソッド詳細
add (メソッド)
public {SequenceBox.add g:any, ...}:#Visual

子アイテムを SequenceBox に追加します。

g: 追加するアイテム。g がまだ Graphic でない場合、gGraphic に強制変換され、その結果が追加されます。

注意事項

SequenceBox.add はまた次の 3 つのパラメータを受け取ります。

戻り値

追加された実際の値。追加された Graphic のサブタイプになります。

オーバーライド

子の追加にさらに別の処理を関連付けることができるように、SequenceBox のサブクラスでオーバーライドできます。この種のオーバーライド メソッドは、以下を呼び出す必要があります。

{super.add g, ...}

を呼び出して、SequenceBox 自体の追加アクションを呼び出し、キーワード引数が指定されている場合はそのキーワード引数とともに渡します。


add-at-index (メソッド)
protected {SequenceBox.add-at-index g:#Graphic, where:any}:void

GraphicSequenceBox の子の配列の指定されたインデックスに挿入します。

g: 追加する Graphic
where: この Graphic に対応する Layout が挿入される SequenceBox.child-array 内の場所。where の有効値は、"default"、"last"、"first"、または SequenceBox.child-array のサイズ以下の整数値です。これ以外の場合は、エラーが発生します。

where が "default" または "last" の場合、gSequenceBox.child-array の終わりに追加されます。"first" の場合、g は上記の配列の最初の位置に挿入されます。

注意事項

このメソッドは SequenceBox.allocate-layout-object を呼び出し、Layout オブジェクトを割り当てます。Graphic g は次にこの Layout に関連付けられます。


add-at-index-with-layout (メソッド)
protected {SequenceBox.add-at-index-with-layout}:void

関連するレイアウト オブジェクトでグラフィックを追加します。



after-reposition (メソッド)
public {SequenceBox.after-reposition layout-context:LayoutContext}:void

Graphic が移動またはサイズ変更されたことを、Graphic に通知します。

layout-context: このオブジェクトを含んでいるグラフィック階層のサブツリーに対応する LayoutContext オブジェクト。

プログラミング注意事項

この Graphic を移動またはサイズ変更した操作の前に、Graphic.before-reposition を呼び出した場合、このメソッドはこの操作後に呼び出されます。この操作の前にオブジェクトが見えなかったとしても、操作前に Graphic.before-reposition を呼び出さなかった場合は、この操作後に、Graphic.after-reposition でなく Graphic.request-draw が呼び出されます。

Graphic に対して g.after-reposition g が呼び出されるのは、この操作の前に g.before-reposition を呼び出した場合のみです。ただし、この操作の前に g.before-reposition を呼び出しても、この操作の後に g.after-reposition が呼び出されない場合もあります。このような事態が発生するのは、オブジェクトを移動やサイズ変更がなかったと (g の親などが) 判断した場合、あるいは他のオブジェクトが、操作前と操作後の両方で、g の位置の可視境界全体に対する LayoutContext.request-draw-rect-in-root 操作を 1 回以上呼び出した場合です。

Graphic.before-repositionGraphic.after-reposition はともに、オブジェクトの位置が有効な場合にしか呼び出されません。

オーバーライド

既定の定義 Graphic.after-reposition は、単に Graphic.request-draw を呼び出すだけです。Graphic.request-draw は、Graphic.before-repositionの既定の実装でも使用されていることを前提とした適切な処理方法です。ただし、Graphic.before-reposition をオーバーライドする場合は、Graphic.after-reposition もオーバーライドする必要があります。


allocate-layout-object (メソッド)
protected abstract {SequenceBox.allocate-layout-object}:SequenceLayout

この SequenceBox 内に含まれる GraphicSequenceLayout オブジェクトを作成します。

戻り値

新しい SequenceLayout

オーバーライド

これをオーバーライドしてサブクラスの Layout を変更します。


attempt-revalidate-layout (メソッド)
public {SequenceBox.attempt-revalidate-layout lc:LayoutContext}:bool

最後のレイアウト ネゴシエーションが完了してから、Graphic のレイアウト設定が変更されたかどうかを判定します。

lc: このレイアウト ネゴシエーションに対して有効な LayoutContext

戻り値

bool。このオブジェクトのレイアウト設定が変更されていない場合は true。値が false の場合、変更の有無にかからわずレイアウト ネゴシエーションの確認が行なわれます。

注意事項

このメソッドは、完全なレイアウト ネゴシエーション、つまり、Graphic.set-size を呼び出してネゴシエーションを行ったオブジェクトに対してのみ呼び出すことを推奨します。このメソッドが true を返すと、直前の完全なレイアウト ネゴシエーション中に行われた同じ高さおよび幅設定の確認が繰り返された場合に、オブジェクトが、以前返された答えと全く同じ答え (OriginElastic.equal? によって計算された答え) を返すことになります。

このメソッドからオブジェクトがすぐに true を返す最も一般的なケースは、直前のレイアウト ネゴシエーションの結果を無効にするようなことがオブジェクトで発生しなかった場合です。また、このメソッドが true を返すこれ以外のケースは、Box であるオブジェクトの場合で、Box の子すべてに対して Graphic.attempt-revalidate-layout を呼び出し、これらの呼び出しすべてで true が返されたときに true を返します(Box の設定が Box の子の設定と変更されたかどうかが不明なその他のパラメータにのみ依存する場合、この処理が有効です)。

このメソッドが true を返し、このオブジェクトの親にその境界を変更する理由がない場合、親がこのオブジェクトに対してさらにレイアウト ネゴシエーションを呼び出す可能性はありません。したがって、このオブジェクトがそのレイアウトの有効性の判定を記録している場合、このメソッドから true を返す前にオブジェクトはそれ自体を layout-valid 状態に設定する必要があります。

プログラミング注意事項

このメソッドは通常このオブジェクトの親 BoxBox.attempt-revalidate-layout メソッドによって呼び出されます。この目的は、非効率な計算をトリガしないで、このオブジェクトから得た前回のレイアウト設定がまだ有効であるかどうかを確認するクイック ファスト チェックを行なうことです。

オーバーライド

既定のメソッド Graphic.attempt-revalidate-layout は、単に false を返します。false は常に安全な応答です。レイアウト設定が実際には変更されなかったできる限り多くの状況で true を返すメソッドで、このメソッドをオーバーライドするには、より正確な応答を提供できる Graphic のサブクラスを使用することをお勧めします。


before-reposition (メソッド)
public {SequenceBox.before-reposition
layout-context:LayoutContext
}:void

Graphic が移動またはサイズ変更されることを、Graphic に対して通知します。

layout-context: このオブジェクトを含んでいるグラフィック階層のサブツリーに対応する LayoutContext オブジェクト。

プログラミング注意事項

このメソッドは、レイアウト ネゴシエーションまたはその他の操作で可視オブジェクトを移動またはサイズ変更するときに必ず呼び出します。このメソッドは、オブジェクトが見えない場合でも呼び出すことができます。また、このメソッドを呼び出したとしても、その後オブジェクトを移動またはサイズ変更しなくてもかまいません。

オーバーライド

既定の定義 Graphic.before-reposition は、 単にGraphic.request-draw を呼び出します。これは常に正しい処理です。ただし、高度なオブジェクトでは、このメソッドを次のいずれかのコードでオーバーライドできます。


clear (メソッド)
public {SequenceBox.clear}:void

ボックスのグラフィカルな子を削除します。



compare-children (メソッド)
public {SequenceBox.compare-children}:GraphicalOrder

このボックスの 2 つの子のグラフィカルな順序を検証します。

a: 検証する 1 つ目の Graphic
b: 検証する 2 つ目の Graphic

戻り値

b と関連する a の位置に対応する GraphicalOrderab のどちらかが self のグラフィックの子で無い場合、GraphicalOrder.equal が返されます。後者の場合、ab と同じでない時は、少なくとも ab のうち一つはこのボックスの子ではありません。

オーバーライド

このメソッドはオーバーライドが必要とは限りません。既定の実装では、Box.ordered-children で指定された順序に従って、子の順序を比較します。ただし、既定の実装は (子の総数に比例するので) 効率が悪い場合があります。サブクラスが多数の子を持つことが予想され、このメソッドのより効率的な実装ができる場合は、適宜実装してください。


draw (メソッド)
public {SequenceBox.draw renderer2d:Renderer2d}:void

このオブジェクトの可視表現を描画します。

renderer2d: このオブジェクトを使用してそれ自身を描画する Renderer2d

オーバーライド

既定のメソッド Graphic.draw は何もしません。Graphic のサブクラスは、必要とされる描画の操作を実行するコードでこのメソッドをオーバーライドしなければなりません。
このメソッドをオーバーライドする場合は、再描画が必要となる時はいつでも、描画する Graphic の範囲が有効でない事を確認しなければなりません。たとえば、データの値を更新するために描画をする時は、データの値が変わる時にアプレットは必ず Graphic.request-drawGraphic.request-draw-rectを呼び出さなければなりません。


end-pagination (メソッド)
public {SequenceBox.end-pagination}:void

この Graphic に対するパジネーション プロセスを終了し、PaginationState を記録するためのデータ構造を割り当て解除します。

プログラミング注意事項

Graphic.start-pagination が呼び出されたすべての Graphic のついて、このメソッドを呼び出す必要があります。

注意事項

これは、Layout.end-pagination を呼び出したときに呼び出されます。


find (メソッド)
public {SequenceBox.find child:any}:int

SequenceBox の子のリスト内で指定された子の位置を返します。

child: 対象となる子オブジェクトで、子 Graphic 自体または子のレイアウト オブジェクトとして指定します。

戻り値

ボックスの子のリスト内にある child のインデックス。最初の子のインデックスが 0 になります。ボックスの子の中に child がない場合、‐1 が返されます。

例外のスロー

childLayout または Graphic のいずれでもない場合、このメソッドはエラーをスローします。


graphical-child-visible-at (メソッド)
public {SequenceBox.graphical-child-visible-at}:#Graphic

位置 x、y にある目に見えるグラフィカルな子を規定します。

説明

このメソッドは、(x, y) に描画された順番で最上位のグラフィカルな子を返します。
x, y: self の座標フレームを基準にしたポイントの座標。

戻り値

子のオブジェクトが見つかればそれを返します。そうでなければ、null を返します。

プログラミング注意事項

このメソッドは本来、操作を解釈する SelectionContext 用にデザインされており、様々なポジションのグラフィックを見つけるためにグラフィカル階層を "drill down" する必要があります。特に、Graphic.find-graphic-at とは異なっており、これはポインタの転送を意図し、イベントを許可しないコンテナ内の空のスペースは明白に無視します。

注意事項

既定の実装では、null を返します。子を持つことができる Graphic のサブクラスは、(x, y) に描画された順番で最上位のグラフィカルな子を返すためにオーバーライドします。
導入: バージョン 6.0


internal-remove-child (メソッド)
protected {SequenceBox.internal-remove-child l:SequenceLayout}:void

SequenceBox の子を削除します。

l: 削除される子 Graphic のレイアウト オブジェクト。

プログラミング注意事項

通常、レイアウト オブジェクトが l である GraphicGraphic.detach を呼び出した結果として、SequenceLayout.detach により呼び出されます。

オーバーライド

子が SequenceBox から切り離されたときにサブクラスが別の記録処理を実行する場合、SequenceBox のサブクラスでオーバーライドできます。


note-attached (メソッド)
public {SequenceBox.note-attached}:void

ルートが RootFrame であるグラフィック階層にこの Visual が追加されたとき、そのグラフィック階層内でこれより下にあるすべての Visual に対して AttachEvent を起動します。

説明

このメソッドは、ルートが RootFrame であるグラフィック階層に Visual が追加された直後で、オプションが反映される前に呼び出されます。

オーバーライド

Visual のサブクラスによってこれをオーバーライドし、AttachEvent をそのサブクラスおよび子グラフィック (存在する場合) に送信する必要があります。
AttachEvent は、その子グラフィックに対して起動する前に、この Visual に対して起動する必要があります。
Visual.maybe-fire-attach-event を呼び出して、Visual に対して AttachEvent を起動します。


note-detaching (メソッド)
public {SequenceBox.note-detaching}:void

ルートが RootFrame であるグラフィック階層からこの Visual が削除されたとき、そのグラフィック階層内でこれより下にあるすべての Visual に対して DetachEvent を起動します。

説明

このメソッドは、ルートが RootFrame であるグラフィック階層から Visual が削除される直前に呼び出されます。

オーバーライド

Visual のサブクラスによってこれをオーバーライドし、DetachEvent をそのサブクラスおよび子グラフィック (存在する場合) に送信する必要があります。
DetachEvent は、その子グラフィックに対して起動した後に、この Visual に対して起動する必要があります。
Visual.maybe-fire-detach-event を呼び出して、Visual に対して DetachEvent を起動します。


notify-option-children (メソッド)
public {SequenceBox.notify-option-children
item:OptionItem,
removed?:bool
}:void

このオブジェクトのオプションの子にオプションが変更されたことを通知します。

item: 追加または削除されたバインディング オプション。
removed?: item が削除された場合は true、それ以外の場合は false。

オーバーライド

既定の実装 OptionListInterface.notify-option-children では、何も行われません。サブクラスではこのメソッドをオーバーライドして、このオブジェクトの各オプションの子 c に対して {c.option-propagate-notify item removed? } を呼び出すようにする必要があります。


pick-child (メソッド)
public {SequenceBox.pick-child x:Distance, y:Distance}:#EventForwarder

指定された点 (x, y) を覆う BasicBox の子をピックアップします。

x, y: ポイントの座標です。

戻り値

この点を覆う子。該当する子がない場合は NULL を返します。

プログラミング注意事項

このメソッドは、PointerEvent を転送する場合やその他の類似の状況で使用されます。

注意事項

このメソッドの実装では、xy の最新の値を、これらの値について返された答えと合わせてキャッシュすることが推奨されます。このメソッドはたいてい同じ入力で連続して複数回呼び出されるからです。

オーバーライド

このメソッドは、適切な戻り値を計算するコードを持つ、BasicBox の具象サブクラスでオーバーライドする必要があります。


propagate-request-layout (メソッド)
public {SequenceBox.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 であれば、BoxGraphic.attempt-revalidate-layout に対する答えは常に true になります。しかし、Box.request-layout が呼び出された場合は、Box は、そのすべての子のレイアウトについて有効性を再検証できたとしても、それ自体のレイアウトが有効とは認められない場合があります。これは、グラフィカルな子の追加や削除、またはそれらの子の空白や配列での変更など、Box 自体の構造で変更が加えられている可能性があるからです。

オーバーライド

このメソッドは、情報を保持してレイアウト無効化を追跡する Box サブクラスでオーバーライドできます。このようなオーバーライド メソッドにはすべて super.propagate-request-layout の呼び出しが必要です。このメソッドは、グラフィック階層のルートになるように設計されている View などのクラスでもオーバーライドされます。この場合、レイアウト要求を記録し、新しいレイアウト ネゴシエーションに合わせて整列させるコードによってメソッドがオーバーライドされます。


register-options (メソッド)
public {SequenceBox.register-options
p:{proc-type {OptionKey}:void}
}:void

このオブジェクトがバインドのモニタリングを必要とする非ローカル オプション キーを登録します。

p: 引数として OptionKey を使用して呼び出せるプロシージャ。

プログラミング注意事項

このメソッドは、オブジェクトがモニタしているオプション キーを確認する必要がある場合に任意のコード内で呼び出されます。このメソッドは、プロシージャ p をまったく呼び出さないかまたは何回か呼び出し、呼び出すたびに引数として OptionKey を渡す必要があります。このオブジェクトによりモニタリングされるオプション キーのセットは、p のすべての呼び出しで指定されたオプション キー セットの連結であると見なされます。p を複数回呼び出せるという能力を利用して、オプション親はモニタの対象となるオプション キーのリストを指定して p を一度呼び出し、次に、同じ引数 p を与えてオプションの子それぞれの register-options メソッドを呼び出し、このメソッドの目的を果たすことができます。この方法はシンプルですが、ほとんどの場合は、オプション親がその子における register-options 呼び出しの結果をキャッシュして、親の register-options メソッドが呼び出されたときにそのリストを提供する方がより効率的です。ローカル バインディング オプションへの変更通知は、それらのキーが登録されていない場合でも行われます。

オーバーライド

OptionListInterface.register-options の既定の実装は、このオブジェクトの変更ハンドラを持つ各非ローカル オプションで p を呼び出します。サブクラスは、{super.register-options p} を呼び出し、登録される必要がある追加のオプション キー上全てで、p を呼び出すように、このメソッドをオーバーライドする必要する必要があります。一般的に、これらの追加のオプション キーは、子供または子孫のオブジェクトが監視する必要がある非ローカル オプションに対応します。それは、このオブジェクトの子オブジェクト上で、register-options を呼び出すことによって決定されます。
注意 一般的に、このメソッドをオーバーライドする必要があるオブジェクトだけが、オプションの子を持つオブジェクトです。


request-draw (メソッド)
public {SequenceBox.request-draw
layout-context:LayoutContext = {self.get-layout-context}
}:void

描画する Graphic に属するピクセルを確認します。

layout-context: このオブジェクトを含むグラフィック階層のサブツリーに対応する LayoutContext オブジェクト。このキーワード引数が提供されない場合、Graphic.get-layout-context を呼び出して、適切な値を取得します。

注意事項

このオブジェクトを現在の位置で描画する場合、オブジェクトの Graphic.draw メソッドによってペイントされる、またはペイントされたピクセルすべてをカバーする回数の Graphic.request-draw-rect 呼び出しがこのメソッドで実行されます。既定のメソッド Graphic.request-draw が使用する単純な方法は、Graphic のレイアウト オブジェクトで Layout.request-draw-child を呼び出すことで、Graphic の境界ボックス全体の再描画を要求するというものです。

プログラミング注意事項

このオブジェクトのピクセルの再ペイントが必要になる何らかの理由があったとき、このメソッドが呼び出されます。このような状況が発生するのは、オブジェクトが初めて表示されるとき、ビューから削除されるとき、移動やサイズ変更が行なわれるとき (この場合、移動やサイズ変更の前と後でこのメソッドを呼び出す必要があります) などがあります。

オーバーライド

既定の定義 Graphic.request-draw はほとんどの目的に対応していますが、オブジェクトで実際にペイントされないピクセルが境界ボックスに多数ある場合はこのメソッドをオーバーライドして、より正確に計算する Graphic.request-draw-rect の呼び出しまたはそのセットを起動します。


request-pointer-trace (メソッド)
public {SequenceBox.request-pointer-trace}:void

表示されたオブジェクトの幾何形状が変更されていることを宣言し、必要な PointerCrossing イベントの発生を要求します。

説明

要求は、このオブジェクトのグラフィック階層のルートに到達するまでグラフィカルな祖先のチェイン上を転送されていきます。このルートが View で、ポインタがその View 内にある場合、PointerNonevent を含む PointerEnvelopeEvent が発生し、必要な PointerCrossing イベントの生成を引き起こします。

オーバーライド

ポイント (x,y) を含む子オブジェクトの識別に (x,y) の位置をマップする、キャッシュされた状態を格納する SequenceBox のようなサブクラスによってオーバーライドできます。こうした状態はリセットして、グラフィック階層のオブジェクトの幾何形状が変更されても新しい PointerEnvelopeEvent が適切に送信されるようにします。このメソッドをオーバーライドする場合、オーバーライド メソッドには以下の呼び出しを含めます。

{super.request-pointer-trace}


set-size (メソッド)
public {SequenceBox.set-size lc:LayoutContext, bounds:GRect}:void

このオブジェクトにレイアウト幅と高さを代入します。

説明

このオブジェクトで set-size を呼び出すと、オブジェクトのレイアウト サイズを代入し、オブジェクトのレイアウト ネゴシエーションを完了します。グラフィック階層のすべてのオブジェクトにレイアウト サイズが代入された後で階層のレイアウト ネゴシエーションが完了します。
lc: このレイアウト ネゴシエーションに対して有効な LayoutContext
bounds: このオブジェクトの境界ボックスの左右および上下の範囲をオブジェクトの起点から相対的に示す GRect

プログラミング注意事項

このメソッドは、オブジェクトのグラフィカルな親によって呼び出されます。

オーバーライド

既定のメソッド Graphic.set-size は何も行ないません。Graphicのサブクラスはこのメソッドをオーバーライドして、ここで提供した情報をインターセプトできます。


swap-children (メソッド)
public {SequenceBox.swap-children g1:Graphic, g2:Graphic}:void

SequenceBox 内の 2 つの子の位置を交換します。

説明

これは、グラフィック階層から無用に子を削除せずに SequenceBox の内容の配置し直す効率的な方法です。実際に SequenceBox から子が削除されないので、そのローカル レイアウトの無効化も、オプション親の変更も起こりません。
与えられた子のいずれもシーケンス ボックスの子でない場合、エラーがスローされます。


validate-layout-sequence-numbers (メソッド)
protected {SequenceBox.validate-layout-sequence-numbers}:void

この SequenceBox と関連したすべての SequenceLayout のシーケンス番号を検証します。
SequenceLayout のシーケンス番号が有効なのは、このレイアウトのシーケンス番号が self.child-array 内でのこのレイアウトの位置と対応している場合です。