(クラス)
public abstract SequenceBox
{inherits
BasicBox}
複数の子を持つことができるほとんどの Box のスーパークラス。
説明
SequenceBox は、複数の子を持つことができるすべての
Box の共通スーパークラスですが、
TextFlowBox はこれに含まれていません。TextFlowBox にはテキストと
Graphic が含まれるため、特別な要件があります。
SequenceBox には、子オブジェクトを順番に並べたリストを管理するメソッドが含まれます。
SequenceBox.add は新しい子オブジェクトを追加し、
SequenceLayout 型のレイアウト オブジェクトに関連付けます。
SequenceBox の子に対応する
SequenceLayout オブジェクトは、
SequenceBox.child-array に格納されます。
また、
SequenceBox および
SequenceLayout には、複数の子を持つ
Box で実行する必要があるその他の多数の操作メソッドが含まれます。これには、レイアウト要求および再描画の要求の送信や登録されたオプション キーのリストの管理などがあります。
| コンストラクタ protected | {SequenceBox.clone-appearance-from other:SequenceBox} |
| コンストラクタ protected | {SequenceBox.default ...} |
フィールド public-get protected-set SequenceBox.child-array:{
Array-of SequenceLayout}
アクセサ protected SequenceBox.completely-clonable-children?:
bool
フィールド protected SequenceBox.contains-valid?:
bool =false
アクセサ public SequenceBox.graphical-children:{
Iterator-of Graphic}
フィールド protected SequenceBox.invalid-epoch:
int =-1
フィールド protected SequenceBox.layouts-have-valid-sequence-number?:
bool =true
アクセサ protected SequenceBox.option-register-proc:#{
proc-type {OptionKey}:
void}
アクセサ public SequenceBox.ordered-children:{
Iterator-of Graphic}
アクセサ public SequenceBox.registered-option-keys:{
Array-of OptionKey}
アクセサ public SequenceBox.reverse-ordered-children:{
Iterator-of Graphic}
プロパティ 継承 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, selection-context, shadow-color, shadow-spec, visible?, vorigin, width プロパティ 継承 Visual:
_style-element, clonable-class?, cursor, data-source, dragee, font-size, input-method-enabled?, input-method-keyboard-mode, name, options, options-present-here, style-class, style-element, style-manager, style-options, test-description, test-name, test-parent?, test-type-name, test-visible?, tooltip, user-data
| protected | {SequenceBox.add-at-index-with-layout}:void |
| protected abstract | {SequenceBox.allocate-layout-object}:SequenceLayout |
| public | {SequenceBox.before-reposition}:void |
| clear: | ボックスのグラフィカルな子を削除します。 |
| public | {SequenceBox.clear}:void |
| draw: | このオブジェクトの可視表現を描画します。 |
| public | {SequenceBox.end-pagination}:void |
| public | {SequenceBox.find child:any}:int |
| public | {SequenceBox.graphical-child-visible-at}:#Graphic |
| public | {SequenceBox.note-attached}:void |
| public | {SequenceBox.note-detaching}:void |
| public | {SequenceBox.notify-option-children}:void |
| public | {SequenceBox.propagate-request-layout epoch:int}:void |
| public | {SequenceBox.register-options}:void |
| public | {SequenceBox.request-draw}:void |
| public | {SequenceBox.request-pointer-trace}:void |
| protected | {SequenceBox.validate-layout-sequence-numbers}:void |
メソッド 継承 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-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, add-option, add-style-option, 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, release-key-focus, remove-option, remove-style-option, 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-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-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:
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-styles, set-option-by-name, set-style-option-by-name, unset-option-by-name, unset-style-option-by-name
(コンストラクタ)
| protected | {SequenceBox.clone-appearance-from other:SequenceBox} |
(コンストラクタ)
| protected | {SequenceBox.default ...} |
新しい SequenceBox オブジェクトを初期化します。
...: 残余引数は、コンテナに追加されるイベント ハンドラ、グラフィック オプション、およびオブジェクトです。
(フィールド)
public-get protected-set SequenceBox.child-array:{
Array-of SequenceLayout}
(アクセサ)
アクセサ protected SequenceBox.completely-clonable-children?:
bool Visual のすべての子を完全にクローン化できる場合は、true を返します。
オーバーライド
既定の実装は
true を返します。子がある
Box のようなサブクラスは、そのすべての子について、
complete-clone-required? が
true として渡された
Visual.clonable-appearance? が
true を返す場合は、このゲッターをオーバーライドし、
true を返す必要があります。その他の場合は
false を返すはずです。
(フィールド)
protected SequenceBox.contains-valid?:
bool =false
この項目はサポートされていません。内部使用限定となっています。
(アクセサ)
アクセサ public SequenceBox.graphical-children:{
Iterator-of Graphic}
SequenceBox のグラフィカルな子の反復子を返します。
注意事項
graphical-children を呼び出すときに、SequenceBox の子の追加や削除を同時に実行しないでください。実行すると、反復子が予期せぬ動作を行なう可能性があります。SequenceBox に対して子を追加または削除する場合、graphical-children を再度呼び出して新しい反復子を作成します。
(フィールド)
protected SequenceBox.invalid-epoch:
int =-1
このオブジェクト、またはそのいずれかの子孫の最も新しいレイアウト無効化 (つまり Graphic.request-layout の呼び出し) のエポック。これが現在のエポック (LayoutContext.epoch によって返される値) と同じかそれより大きい場合、レイアウト無効化が現在のレイアウト ネゴシエーション中に発生しているので、レイアウト ネゴシエーションを再開する必要があります。
プログラミング注意事項
(フィールド)
protected SequenceBox.layouts-have-valid-sequence-number?:
bool =true
self.child-array 内に含まれている
SequenceLayout が有効なシーケンス番号を持っている場合に
true です。
SequenceLayout のシーケンス番号が有効であるのは、そのシーケンス番号が self.child-array 内の SequenceLayout のインデックスである場合です。
(アクセサ)
アクセサ protected SequenceBox.option-register-proc:#{
proc-type {OptionKey}:
void}
子オブジェクトが興味を持つ非ローカルオプションに関して、このオブジェクトに通知するために呼び出されるプロシージャ。
プログラミング注意事項
返されたプロシージャは、各オプション子(またはその子孫)が興味を持つ、各非ローカルオプションに対して1回呼び出されます。オプション キーが、このプロシージャを介して登録されていない場合は、オプション値が変更する場合に、このオブジェクトは子孫に対し、(子孫がこのオプションに関心を示していないため)変更ハンドラを呼び出す必要はありません。
特に、返された値が null でない場合は、このオブジェクトが新しいオプション子を入手すると
OptionListInterface.change-option-parent-notify がそれを呼び出します。
注意事項
既定では、返されたプロシージャは、そのオプション親に登録を転送します。
オーバーライド
まれですが、典型的には、オプションの伝搬メカニズムをオーバーライドするオブジェクトのみにより、オーバーライドされます。
(アクセサ)
アクセサ public SequenceBox.ordered-children:{
Iterator-of Graphic}
子を順番に返す、この Box のグラフィカルな子の反復子。
説明
選択や検索、および制御のタブ順に使用されます。このメソッドの既定の実装は、
Box.graphical-children と同じです。Box のサブクラスで、グラフィカルな子の順序が
graphical-children の順序と異なる場合は、このメソッドをオーバーライドする必要があります。
(アクセサ)
アクセサ public SequenceBox.registered-option-keys:{
Array-of OptionKey}
このオブジェクトおよびその子孫により登録されたオプション キーのリストを返します。
戻り値
オーバーライド
(アクセサ)
アクセサ public SequenceBox.reverse-ordered-children:{
Iterator-of Graphic}
この Box のグラフィカルな子の反復子で、子を逆の順序で返します。これは、Box.ordered-children を反転するものです。
注意事項
既定の実装では、それぞれの子のポインタにメモリが割り当てられます。
オーバーライド
このメソッドはオーバーライドが必要とは限りません。メソッドの既定の実装では、
Box.ordered-children を反転します。ただし、既定の実装は少し効率が悪いので、このアクセッサをより効率的に実装できるサブクラスは適宜実装してください。
(メソッド)
子アイテムを SequenceBox に追加します。
g: 追加するアイテム。
g がまだ
Graphic でない場合、
g は
Graphic に強制変換され、その結果が追加されます。
注意事項
SequenceBox.add はまた次の 3 つのパラメータを受け取ります。
- index=where では、SequenceBox の子のリストの where で示される位置に g がつなぎ合わせられることを示します。where が 0 の場合、g はリストの最初の子として追加されます。where が数字 n の場合、g は n 番目の子の後につなぎ合わされます。where の数字が SequenceBox の子の現在の数よりも大きい場合はエラーとなります。また、where には first または last の明確な意味を持つ文字列の 1 つを指定することもできます。
- before=sibling では、SequenceBox の子のリストの sibling の直前に g が 追加されることを示します。sibling は、SequenceBox の子 Graphic の 1 つか、Graphic の 1 つのレイアウト オブジェクトのいずれかになります。
- after=sibling では、SequenceBox の子オブジェクト リストの sibling の直後に g が 追加されることを示します。sibling は、SequenceBox の子 Graphic の 1 つか、Graphic の 1 つのレイアウト オブジェクトのいずれかになります。
戻り値
追加された実際の値。追加された
Graphic のサブタイプになります。
オーバーライド
子の追加にさらに別の処理を関連付けることができるように、
SequenceBox のサブクラスでオーバーライドできます。この種のオーバーライド メソッドは、以下を呼び出す必要があります。
{super.add g, ...}を呼び出して、
SequenceBox 自体の追加アクションを呼び出し、キーワード引数が指定されている場合はそのキーワード引数とともに渡します。
(メソッド)
(メソッド)
| protected | {SequenceBox.add-at-index-with-layout}:void |
関連するレイアウト オブジェクトでグラフィックを追加します。
(メソッド)
(メソッド)
| protected abstract | {SequenceBox.allocate-layout-object}:SequenceLayout |
(メソッド)
最後のレイアウト ネゴシエーションが完了してから、Graphic のレイアウト設定が変更されたかどうかを判定します。
戻り値
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 状態に設定する必要があります。
プログラミング注意事項
オーバーライド
(メソッド)
| public | {SequenceBox.before-reposition}:void |
Graphic が移動またはサイズ変更されることを、Graphic に対して通知します。
layout-context: このオブジェクトを含んでいるグラフィック階層のサブツリーに対応する
LayoutContext オブジェクト。
プログラミング注意事項
このメソッドは、レイアウト ネゴシエーションまたはその他の操作で可視オブジェクトを移動またはサイズ変更するときに必ず呼び出します。このメソッドは、オブジェクトが見えない場合でも呼び出すことができます。また、このメソッドを呼び出したとしても、その後オブジェクトを移動またはサイズ変更しなくてもかまいません。
オーバーライド
(メソッド)
| public | {SequenceBox.clear}:void |
(メソッド)
このボックスの 2 つの子のグラフィカルな順序を検証します。
戻り値
b の位置に対する
a の位置に当たる
GraphicalOrder。
a と
b のどちらかが
self のグラフィカルな子ではない場合は、エラーが発生します。
オーバーライド
このメソッドはオーバーライドが必要とは限りません。既定の実装では、