(クラス)
BaseFrame は、グラフィカルな子を 1 つ格納するコンテナの基本クラスです。
説明
BaseFrame は、基本クラスとして使用されるものなので、子を追加するためのパブリックメソッドはありません。これは、派生クラスをどのように使用できるかについて、より完全な制御を提供します。
BaseFrame は、
Frame の基本クラスです。
Frame とは異なり、
BaseFrame には配列および伸長のプロパティはありません。
BaseFrame は、子が 1 つの特殊なコンテナの場合に便利です。
例
次の例は、BaseFrame を使用して、クリックされたときに内容を変えるグラフィカルな子オブジェクトを定義する方法を示しています。
BaseFrame.add-internal で BaseFrame にコンテンツを追加します。
| 例 |
 |
{define-class package final NumberFrame {inherits BaseFrame}
field counter:int=0
{constructor {default}
{construct-super.BaseFrame
text-selectable?=false,
{on e:PointerPress do
{output "hello"}
{self.add-internal {self.counter-string}, replace?=true}
set self.counter = self.counter + 1
{e.consume}
}
}
{self.add-internal {self.counter-string}}
set self.counter = self.counter + 1
}
{method {counter-string}:Graphic
{return {format "Pressed %d times", self.counter}}}
}
{NumberFrame}
| |
| コンストラクタ protected | {BaseFrame.clone-appearance-from} |
| コンストラクタ public | {BaseFrame.default ...} |
フィールド public-get protected-set BaseFrame.child:#
FrameLayout
アクセサ protected BaseFrame.clonable-class?:
bool
アクセサ protected BaseFrame.completely-clonable-children?:
bool
アクセサ public BaseFrame.graphical-children:{
Iterator-of Graphic}
アクセサ protected BaseFrame.halign-spec:
any
アクセサ protected BaseFrame.hstretch?-spec:
bool
アクセサ public BaseFrame.ordered-children:{
Iterator-of Graphic}
アクセサ public BaseFrame.reverse-ordered-children:{
Iterator-of Graphic}
アクセサ protected BaseFrame.valign-spec:
any
| vstretch?-spec: | レイアウト処理で使用される vstretch? 値 (BaseFrame の場合は true) を提供します。 |
アクセサ protected BaseFrame.vstretch?-spec:
bool
| width-first?: | このオブジェクトの現在のレイアウト ネゴシエーションで先に処理をするのは幅と高さのどちらかを指定します。 |
フィールド protected BaseFrame.width-first?:
bool プロパティ 継承 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, 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 | {BaseFrame.add-internal}:#Graphic |
| protected | {BaseFrame.allocate-layout-object}:FrameLayout |
| protected | {BaseFrame.clone-appearance-helper}:Visual |
| protected | {BaseFrame.compute-child-bounds}:void |
| protected | {BaseFrame.compute-parent-elastic source:Dimension,horizontal?:bool = {value {mandatory-keyword-arg-missing} false} }:Dimension |
| public | {BaseFrame.constrain-height}:Dimension |
| draw: | このオブジェクトの可視表現を描画します。 |
| public | {BaseFrame.end-pagination}:void |
| public | {BaseFrame.get-text}:String |
| protected | {BaseFrame.install-child-bounds}:void |
| protected | {BaseFrame.internal-remove-child}:void |
| public | {BaseFrame.note-attached}:void |
| public | {BaseFrame.note-detaching}:void |
| public | {BaseFrame.notify-option-children}:void |
| public | {BaseFrame.paginate}:(PaginationState, PaginationQuality) |
| public | {BaseFrame.propagate-request-layout epoch:int}:void |
メソッド 継承 Graphic:
create-pagination-state, detach, draw-range-as-selected, draw-shadow, find-ancestor, find-graphical-ancestor, fire-inferior-crossing-event, get-graphical-root, get-origin-in-graphical-ancestor, get-origin-in-root, get-pagination-state, get-top-left-in-ancestor, get-visible-bounds-into, on-drag-enter, on-inspection, on-pointer-enter, option-changed, paint-with-decorations, replace-with, request-draw, request-draw-rect, request-pointer-trace, search-next, search-prev, set-layout, start-pagination, xy-offset-to メソッド 継承 Visual:
add, add-from-init-args, add-option, add-style-option, animate, change-cursor, clonable-appearance?, clone-appearance, get-focus-manager, get-layout-context, 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, 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 | {BaseFrame.clone-appearance-from} |
このタイプの新しいオブジェクトを作成するために Visual.clone-appearance が使用するコンストラクタ。
注意事項
クローン化をサポートする
BaseFrame のサブクラスには、このコンストラクタを呼び出すコンストラクタが必要です。ただし、これらのコンストラクタがそれぞれ自身のオプションをクローン化し、それぞれの子を、クローンに追加する前にクローン化する場合は、その限りではありません。
(コンストラクタ)
| public | {BaseFrame.default ...} |
タイプが BaseFrame か、または BaseFrame のサブクラス (例:Frame) である新規オブジェクトを作成します。
注意事項
このメソッドは 2 種類の引数を受け取ります。
- それぞれのキーワード引数は、"name=value" というフォームで、新しく作成されるオブジェクトのプロパティ name に value を設定するように指定します。
- EventHandler タイプ (通常は on を使用して作成) の各ダイナミック イベント ハンドラ指定では、新しく作成されるオブジェクトに追加されるダイナミック イベント ハンドラを指定します。
なお、コンストラクタで
BaseFrame に子オブジェクトを直接追加することはできません。
BaseFrame.add-internal を呼び出して子を追加する手段を提供するには、
BaseFrame をオーバーライドする必要があります。
(フィールド)
(アクセサ)
アクセサ protected BaseFrame.clonable-class?:
bool 当該クラスがクローン化可能である場合は、true を返します。その他の場合は false を返します。
オーバーライド
既定の実装は
false を返します。クローン化機能を提供するクラスは、
{type-of self} == {compile-time-type-of self} を返すためには、このゲッターをオーバーライドする必要があります。クローン化可能な
Visual が必ずしもクローン化可能であるとは限らないので、単に
true を返すだけでは正しくありません。
(アクセサ)
アクセサ protected BaseFrame.completely-clonable-children?:
bool Visual のすべての子を完全にクローン化できる場合は、true を返します。
オーバーライド
既定の実装は
true を返します。子がある
Box のようなサブクラスは、そのすべての子について、
complete-clone-required? が
true として渡された
Visual.clonable-appearance? が
true を返す場合は、このゲッターをオーバーライドし、
true を返す必要があります。その他の場合は
false を返すはずです。
(アクセサ)
アクセサ public BaseFrame.graphical-children:{
Iterator-of Graphic}
BaseFrame の単一の子の繰返子を返します。
(アクセサ)
アクセサ protected BaseFrame.halign-spec:
any レイアウトで使用される halign 値を提供します。
説明
null の場合は原点に合わせて整列されます。それ以外の場合、この値は 0 (左揃え) ~ 1 (右揃え) の数になります。
オーバーライド
既定の実装は、原点に合わせた整列を指定する null を返します。異なる値を指定 (または計算) するように、派生クラスでオーバーライドできます。
(アクセサ)
アクセサ protected BaseFrame.hstretch?-spec:
bool レイアウトで使用される hstretch? 値 (BaseFrame の場合は true) を提供します。
オーバーライド
異なる値を指定 (または計算) するように、派生クラスでオーバーライドできます。
(アクセサ)
アクセサ public BaseFrame.ordered-children:{
Iterator-of Graphic}
子を順番に返す、この Box のグラフィカルな子の反復子。
説明
選択や検索、および制御のタブ順に使用されます。このメソッドの既定の実装は、
Box.graphical-children と同じです。Box のサブクラスで、グラフィカルな子の順序が
graphical-children の順序と異なる場合は、このメソッドをオーバーライドする必要があります。
(アクセサ)
アクセサ public BaseFrame.reverse-ordered-children:{
Iterator-of Graphic}
この Box のグラフィカルな子の反復子で、子を逆の順序で返します。これは、Box.ordered-children を反転するものです。
注意事項
既定の実装では、それぞれの子のポインタにメモリが割り当てられます。
オーバーライド
このメソッドはオーバーライドが必要とは限りません。メソッドの既定の実装では、
Box.ordered-children を反転します。ただし、既定の実装は少し効率が悪いので、このアクセッサをより効率的に実装できるサブクラスは適宜実装してください。
(アクセサ)
アクセサ protected BaseFrame.valign-spec:
any レイアウト処理で使用される valign 値を提供します。
説明
null の場合は原点に合わせて整列されます。それ以外の場合、この値は 0 (上揃え) ~ 1 (下揃え) の数になります。
オーバーライド
既定の実装は、原点に合わせた整列を指定する null を返します。異なる値を指定 (または計算) するように、派生クラスでオーバーライドできます。
(アクセサ)
アクセサ protected BaseFrame.vstretch?-spec:
bool レイアウト処理で使用される vstretch? 値 (BaseFrame の場合は true) を提供します。
オーバーライド
異なる値を指定 (または計算) するように、派生クラスでオーバーライドできます。
(フィールド)
protected BaseFrame.width-first?:
bool このオブジェクトの現在のレイアウト ネゴシエーションで先に処理をするのは幅と高さのどちらかを指定します。
プログラミング注意事項
(メソッド)
| protected | {BaseFrame.add-internal}:#Graphic |
このルーチンは、派生クラスが子グラフィックの追加または置換に使用できるプロテクトされたメソッドを提供します。例については、BaseFrame を参照してください。
replace?: 既存の子を置換するかどうかを指定します。false の場合、すでに子を持っている BaseFrame で add-internal を呼び出すとエラーが発生します。
戻り値
追加された実際の値。追加された
Graphic のサブタイプになります。
(メソッド)
(メソッド)
| protected | {BaseFrame.allocate-layout-object}:FrameLayout |
(メソッド)
最後のレイアウト ネゴシエーションが完了してから、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 状態に設定する必要があります。
プログラミング注意事項
オーバーライド
(メソッド)
Graphic が移動またはサイズ変更されることを、Graphic に対して通知します。
layout-context: このオブジェクトを含んでいるグラフィック階層のサブツリーに対応する
LayoutContext オブジェクト。
プログラミング注意事項
このメソッドは、レイアウト ネゴシエーションまたはその他の操作で可視オブジェクトを移動またはサイズ変更するときに必ず呼び出します。このメソッドは、オブジェクトが見えない場合でも呼び出すことができます。また、このメソッドを呼び出したとしても、その後オブジェクトを移動またはサイズ変更しなくてもかまいません。
オーバーライド
(メソッド)
| protected | {BaseFrame.clone-appearance-helper}:Visual |
クローンを作成し、クローン自体を返します。
オーバーライド
既定の実装はエラーをスローします。クローン化機能を提供するクラスは、
{{compile-time-type-of self}.clone-appearance-from self, fixup}
を返すためには、このゲッターをオーバーライドする必要があります。
(メソッド)
| protected | {BaseFrame.compute-child-bounds}:void |
この BaseFrame の子の境界セットを計算し、組み込みます。
before: 子オブジェクトの起点位置の前に割り当てられる空白の量。horizontal? が true の場合、これは子オブジェクトの左エクステントです。それ以外の場合は、子の上になります。
after: 子オブジェクトの起点位置の後ろに割り当てられる空白の量。horizontal? が true の場合、これは子オブジェクトの右エクステントです。それ以外の場合は、子の下になります。
horizontal?: before および after が横幅に関するものである場合は、true になります。これらが高さに関するものである場合は、false になります。
set?: これが現在のレイアウト ネゴシエーションで計算された 2 つ目の境界セットである場合 (たとえば、そのネゴシエーションは幅を先に処理するものであり、これらが高さの境界である場合)、true になります。これが組み込まれる 1 つ目の境界セットである場合 (たとえば、ネゴシエーションが幅を先に処理するもので、これらが幅の境界である場合) は false です。
説明
オーバーライド
before および
after から、
install-child-bounds メソッドに引数として提供する値に送る際に異なる計算セットを有効にする必要があるサブクラス内で、このメソッドをオーバーライドできます。
(メソッド)
| protected | {BaseFrame.compute-parent-elastic source:Dimension,horizontal?:bool = {value {mandatory-keyword-arg-missing} false} }:Dimension |
子オブジェクトに指定された整列オプションに従って、そのオブジェクトのサイズ設定を調整します。
horizontal?: 現在の対象が幅である場合は true、高さの場合は false です。
戻り値
指定されている整列オプションによって要求される場合は、再配列された起点を持つ
source と等しい
Dimension。
説明
使用される整列オプションは、
self.halign-spec (
horizontal? が true の場合) または