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

グラフィカルな子を持つことができるすべての Curl グラフィック オブジェクトの (抽象) 基本クラス。

プログラミング注意事項

このクラスは、Curl グラフィック コンテナとのインターフェイスを定義します。したがって、任意のグラフィック コンテナである値を取る可能性がある変数は、Box タイプとして宣言する必要があります。

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

プロパティ
clip-child-shadows?:この box の子の影がこの box の目に見える境界の外に描画されるかどうかを規定します。
アクセサ public Box.clip-child-shadows?:bool
completely-clonable-children?:Visual のすべての子を完全にクローン化できる場合は、true を返します。
アクセサ protected Box.completely-clonable-children?:bool
graphical-children:ボックスのグラフィカルな子の反復子を返します。
アクセサ public abstract Box.graphical-children:{Iterator-of Graphic}
ordered-children:子を順番に返す、この Box のグラフィカルな子の反復子。
アクセサ public Box.ordered-children:{Iterator-of Graphic}
reverse-ordered-children:この Box のグラフィカルな子の反復子で、子を逆の順序で返します。これは、Box.ordered-children を反転するものです。
アクセサ public Box.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, 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: option-register-proc, options-present-here, registered-option-keys

メソッド
clear:ボックスのグラフィカルな子を削除します。
public {Box.clear}:void
compare-children:このボックスの 2 つの子のグラフィカルな順序を検証します。
public {Box.compare-children a:Graphic, b:Graphic}:GraphicalOrder
find-test-children:フィルタに基づいてテストの子を蓄積します。
public {Box.find-test-children
children:{Array-of Visual},
filter:{proc-type {Visual}:bool}
}:void
get-delimited-child-text-selection:子グラフィックから与えられた選択範囲のテキストを取得して、その後ろに適切な区切り文字を挿入します。
protected {Box.get-delimited-child-text-selection
child:Graphic,
delimiter:StringInterface,
into:StringBuf,
start-bound:#GuiMark,
end-bound:#GuiMark
}:void
get-gui-path-to-child:指定されたBoxから、指定されたこのオブジェクトの子に向かうGUIパスを計算します。
public {Box.get-gui-path-to-child
child:Visual,
root:Box
}:{Array-of int}
get-range-as-selected-text:start-boundend-bound 間の、このグラフィック内に含まれる選択したテキストを取得します。
public {Box.get-range-as-selected-text
into:StringBuf,
start-bound:#GuiMark = null,
end-bound:#GuiMark = null
}:void
get-visible-rect-in-root-into:この Box ボックスを含むウィンドウに表示されている四角形の一部を決定します。
public {Box.get-visible-rect-in-root-into
rect:GRect
}:(xoffset:Distance, yoffset:Distance)
graphical-child-visible-at:位置 x、y にある目に見えるグラフィカルな子を規定します。
public {Box.graphical-child-visible-at x:Distance, y:Distance}:#Graphic
make-gui-mark:この Graphic を参照する GuiMark を作成する標準的な方法。
public {Box.make-gui-mark}:GuiMark
note-attached:ルートが RootFrame であるグラフィック階層にこの Visual が追加されたとき、そのグラフィック階層内でこれより下にあるすべての Visual に対して AttachEvent を起動します。
public {Box.note-attached}:void
note-detaching:ルートが RootFrame であるグラフィック階層からこの Visual が削除されたとき、そのグラフィック階層内でこれより下にあるすべての Visual に対して DetachEvent を起動します。
public {Box.note-detaching}:void
propagate-request-layout:Box からそのグラフィカルな親 (存在する場合) に新しいレイアウト ネゴシエーションの要求を伝播します。
public {Box.propagate-request-layout epoch:int}:void
request-layout:Graphic のレイアウト設定が変更されたため、新しいレイアウト ネゴシエーションを行う必要があることを通知します。
public {Box.request-layout}:void
search-next-here:この Graphic 内か、その子の 1 つに現れるパターンの境界を返します。通常このメソッドは、アプリケーション コードから直接呼び出しません。代わりに Graphic.search-next を呼び出します。
public {Box.search-next-here
pattern:SearchPattern,
gm:#GuiMark = null
}:(pattern-start:#GuiMark,pattern-end:#GuiMark)
search-prev-here:この Graphic 内か、その子の 1 つに現れるパターンの境界を返します。通常このメソッドは、アプリケーション コードから直接呼び出しません。代わりに Graphic.search-prev を呼び出します。
public {Box.search-prev-here
pattern:SearchPattern,
gm:#GuiMark = null
}:(#GuiMark, #GuiMark)
validate-layout:Box のレイアウトを有効にします。
public abstract {Box.validate-layout}:void
メソッド 継承 Graphic: after-reposition, attempt-revalidate-layout, before-reposition, constrain-height, constrain-width, contains-point?, create-pagination-state, detach, draw, draw-range-as-selected, draw-shadow, end-pagination, find-ancestor, find-graphic-at, 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, pointer-enter-occurred, pointer-leave-occurred, replace-with, request-draw, request-draw-rect, request-pointer-trace, search-next, search-prev, set-layout, set-size, start-pagination, xy-offset-to
メソッド 継承 Visual: add, 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-envelope-event, 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, notify-option-children, option-change-notify, option-lookup, option-lookup-here, option-propagate-notify, option-set?, propagate-option-change, register-options, 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 {Box.clone-appearance-from other:Box}

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

other: クローンする Box

注意事項

クローン化をサポートする Box のサブクラスには、このコンストラクタを呼び出すコンストラクタが必要です。ただし、これらのコンストラクタがそれぞれ自身のオプションをクローン化する場合は、その限りではありません。


default (コンストラクタ)
public {Box.default ...}

このタイプの新しいオブジェクトを作成します。

注意事項

このメソッドは 3 種類の引数を受け取ります。



プロパティ詳細
clip-child-shadows? (アクセサ)
アクセサ public Box.clip-child-shadows?:bool

この box の子の影がこの box の目に見える境界の外に描画されるかどうかを規定します。

オーバーライド

既定では、false を返します。そのため、Box の子の影は Box の外側に描画されます。子の影が Box の目に見える境界の外に描画されない場合、 true を返します。
導入: バージョン 6.0


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

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

オーバーライド

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


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

ボックスのグラフィカルな子の反復子を返します。

オーバーライド

Box の具象サブクラスは、このメソッドをオーバーライドして、そのクラス用の子の反復子を作成して返す必要があります。


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

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

説明

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


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

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

注意事項

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

オーバーライド

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





メソッド詳細
clear (メソッド)
public {Box.clear}:void

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



compare-children (メソッド)
public {Box.compare-children a:Graphic, b:Graphic}:GraphicalOrder

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

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

戻り値

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

オーバーライド

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


find-test-children (メソッド)
public {Box.find-test-children
children:{Array-of Visual},
filter:{proc-type {Visual}:bool}
}:void

フィルタに基づいてテストの子を蓄積します。

children: 配列。フィルタを渡すテストの子はこの配列に追加されます。
filter: 引数としてテストの子を受け取り、子が許可されるかどうかを示す論理値を返すプロシージャ。

注意事項

テスト オブジェクト (test-name または test-type-name が null 以外) またはテストの親 (test-parent? が true) を持つ場合は、オブジェクトはテストの子です。
また、テストの子は表示可能でなければなりません。実装では、Visual.test-visible? または Graphic.visible? が false のオブジェクトを検索しないでください。


get-delimited-child-text-selection (メソッド)
protected {Box.get-delimited-child-text-selection
child:Graphic,
delimiter:StringInterface,
into:StringBuf,
start-bound:#GuiMark,
end-bound:#GuiMark
}:void

子グラフィックから与えられた選択範囲のテキストを取得して、その後ろに適切な区切り文字を挿入します。

child: 選択されたテキストを探す Graphic
into: テキストを格納する StringBuf
delimiter: into 内で、選択したテキストの後ろに置く StringInterface。選択したテキストに新しい行が含まれている場合、この区切り文字の代わりに改行文字が使われることに注意してください。
start-bound: child 内で選択が開始する論理的位置を表す GuiMarknull の場合、child の先端を使います。
end-bound: child 内で選択が終了する論理的位置を表す GuiMarknull の場合、child の後端を使います。

プログラミング注意事項

このメソッドは、Graphic.get-range-as-selected-text の実装で使われるユーティリティ メソッドです。グラフィカルな子から与えられた選択テキストをつなぎ合わせるのに使います。

オーバーライド

通常はオーバーライドしません。代わりに Graphic.get-range-as-selected-text をオーバーライドします。


get-gui-path-to-child (メソッド)
public {Box.get-gui-path-to-child
child:Visual,
root:Box
}:{Array-of int}

指定されたBoxから、指定されたこのオブジェクトの子に向かうGUIパスを計算します。

child: パスが計算されるVisualchildは、selfの直接の子であることが必要です。
root: childへ向かうパスのスタート地点

プログラミング注意事項

このメソッドは、Graphic.get-gui-pathの実装から呼び出されます。

例外のスロー

ChildNotInRootErrorselfrootの子孫でない場合

注意事項

コンテナオブジェクトは、子オブジェクト左から右に並べる為に、合理的なスキーマを使用するかもしれません。その為GUIパスの数値の詳細は、あるCurlセッションと他のセッションで同じであることは保証されません。

オーバーライド

Boxでのこのメソッドの既定の実装は、selfordered-children内のchildのインデックスを計算し、rootからselfへのパスにインデックスを追加します。これは、多くの種類のBoxにおいて正しい計算になりますが、例えば、TextFlowBoxは、より複雑な内部構造を持っており、有益なGUIパスを生成する為にこのメソッドをオーバーライドしています。
導入: バージョン 7.0


get-range-as-selected-text (メソッド)
public {Box.get-range-as-selected-text
into:StringBuf,
start-bound:#GuiMark = null,
end-bound:#GuiMark = null
}:void

start-boundend-bound 間の、このグラフィック内に含まれる選択したテキストを取得します。

into: 結果を格納する StringBuf
start-bound: グラフィック内の開始ポイントを区切る GuiMark。null の場合、開始ポイントはグラフィックの先頭の端と見なされます。
end-bound: グラフィック内の終了ポイントを区切る GuiMark。null の場合、終了ポイントは、グラフィックの最後の端と見なされます。

オーバーライド

通常コンテナは再帰的に呼び出しを実行して、適切な区切り文字を挿入します。その他のサブクラスは、直接テキストを提供します。


get-visible-rect-in-root-into (メソッド)
public {Box.get-visible-rect-in-root-into
rect:GRect
}:(xoffset:Distance, yoffset:Distance)

この Box ボックスを含むウィンドウに表示されている四角形の一部を決定します。

rect: この Box内部起点を基準として対象の四角形を示す GRectrect には、このメソッドの呼び出しによる副作用があります。呼び出し後の rect は、ウィンドウ内で実際に見えている元の四角形の一部を、そのウィンドウのトップレベルのView内部起点を基準として示します 。

戻り値

ルート View を基準としたこの Box の位置。

必要な場合は、これらのオフセットを使用して、rect をこの Box の座標フレームに変換して戻すことができます。例外:rect が空の四角形になる場合、つまり、元の四角形がまったく見えない場合の戻り値は任意です。

注意事項

このメソッドは、rect の境界を、その一部をクリッピングする任意の祖先の Box の指示どおりに減らします。しかし、この Box の祖先ではないオブジェクトが上に重なってその四角形の一部を隠している可能性がある遮蔽関係については考慮されません。したがって、このメソッドを呼び出した結果得られた rect 値は、可視領域の上境界を提供しますが、この領域全体が実際に見えていることを保証するわけではありません。

プログラミング注意事項

このメソッドは、BasicLayout.request-draw-rect によって呼び出され、再描画四角形で実際に再描画が必要である可能性がある部分を決定します。

オーバーライド

通常はオーバーライドされません。


graphical-child-visible-at (メソッド)
public {Box.graphical-child-visible-at x:Distance, y:Distance}:#Graphic

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

説明

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

戻り値

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

プログラミング注意事項

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

注意事項

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


make-gui-mark (メソッド)
public {Box.make-gui-mark}:GuiMark

この Graphic を参照する GuiMark を作成する標準的な方法。

戻り値

初期化されてグラフィックの先頭の端に新しく割り当てられた GuiMark

オーバーライド

GuiMark のカスタム サブクラスが Graphic のコンテンツを参照する必要がある場合、Graphic のサブクラスでこのメソッドをオーバーライドします。


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

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

説明

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

オーバーライド

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


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

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

説明

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

オーバーライド

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


propagate-request-layout (メソッド)
public {Box.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 などのクラスでもオーバーライドされます。この場合、レイアウト要求を記録し、新しいレイアウト ネゴシエーションに合わせて整列させるコードによってメソッドがオーバーライドされます。


request-layout (メソッド)
public {Box.request-layout}:void

Graphic のレイアウト設定が変更されたため、新しいレイアウト ネゴシエーションを行う必要があることを通知します。

オーバーライド

request-layout 操作の実行時に更新される記録情報を持つ Graphic のサブクラスによって、このメソッドをオーバーライドできます。このようなオーバーライド メソッドは、必ず {super.request-layout} を呼び出します。オーバーライド メソッドの例として、BasicBox.request-layout があります。


search-next-here (メソッド)
public {Box.search-next-here
pattern:SearchPattern,
gm:#GuiMark = null
}:(pattern-start:#GuiMark,pattern-end:#GuiMark)

この Graphic 内か、その子の 1 つに現れるパターンの境界を返します。通常このメソッドは、アプリケーション コードから直接呼び出しません。代わりに Graphic.search-next を呼び出します。

pattern: 検索する SearchPattern
gm: 検索を開始する GuiMark。指定しない場合は Graphic の先端から検索を開始します。gm を指定する場合、gm.graphic がこのメソッドを呼び出す Graphic等しくなければならない点に注意してください。

戻り値

パターンの開始を定める GuiMark と、終了を定める GuiMark

説明

searchable? が true であるグラフィカルな子は、この Graphic の内容とともに再帰的に検索されます。
このメソッドは、Graphic を右から左に検索する Graphic.search-prev-here に似ています。

オーバーライド

このメソッドの基本実装は常に null, null を返します。SearchPattern を実際に識別して探し出せる Graphic のサブクラスでは、それを実行するためにこのメソッドをオーバーライドする必要があります。


search-prev-here (メソッド)
public {Box.search-prev-here
pattern:SearchPattern,
gm:#GuiMark = null
}:(#GuiMark, #GuiMark)

この Graphic 内か、その子の 1 つに現れるパターンの境界を返します。通常このメソッドは、アプリケーション コードから直接呼び出しません。代わりに Graphic.search-prev を呼び出します。

pattern: 検索する SearchPattern
gm: 検索を開始する GuiMark。指定しない場合は Graphic の左端から検索を開始します。gm を指定する場合、gm.graphic がこのメソッドを呼び出す Graphic等しくなければならない点に注意してください。

戻り値

パターンの開始を定める GuiMark と、終了を定める GuiMark

説明

searchable? が true であるグラフィカルな子は、この Graphic の内容とともに再帰的に検索されます。
このメソッドは、Graphic を左から右に検索する Graphic.search-next-here に似ています。

オーバーライド

このメソッドの基本実装は常に null, null を返します。SearchPattern を実際に識別して探し出せる Graphic のサブクラスでは、それを実行するためにこのメソッドをオーバーライドする必要があります。


validate-layout (メソッド)
public abstract {Box.validate-layout}:void

Box のレイアウトを有効にします。

プログラミング注意事項

このメソッドは、境界および原点の位置についての情報のクエリができるように Box のレイアウトを有効にする必要があるときに呼び出されます。このメソッドは、一般に、レイアウト システムの一部をなすコードによってのみ呼び出されます。

オーバーライド

この抽象メソッドは、Box の 具象サブクラスによって、必要なアクションを実際に実行するコードでオーバーライドされなければなりません。