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

Viewport は、調整可能な起点を持つ Frame で、スクロール ウィンドウで一部見えるグラフィック階層のコンテナとして使用されます。


コンストラクタ
default:Viewport を初期化します。残余引数は、単に基本クラス コンストラクタに渡されます。
コンストラクタ public {Viewport.default ...}

プロパティ
child-height:Viewport の子のセルの高さです。
アクセサ public Viewport.child-height:Distance
child-width:Viewport の子のセルの高さです。
アクセサ public Viewport.child-width:Distance
clip-child-shadows?:この box の子の影がこの box の目に見える境界の外に描画されるかどうかを規定します。
アクセサ public Viewport.clip-child-shadows?:bool
halign-spec:レイアウトで使用される halign 値を提供します。
アクセサ protected Viewport.halign-spec:any
scrollbox:Viewport に関連する ViewportBox を識別します。
ローカル オプション public Viewport.scrollbox:#ViewportBox =null
valign-spec:レイアウト処理で使用される valign 値を提供します。
アクセサ protected Viewport.valign-spec:any
プロパティ 継承 Frame: clonable-class?, halign, hstretch?, hstretch?-spec, style-element, valign, vstretch?, vstretch?-spec
プロパティ 継承 BaseFrame: child, completely-clonable-children?, graphical-children, ordered-children, reverse-ordered-children, width-first?
プロパティ 継承 GetBoundsBox: layout-locally-valid?, layout-valid?
プロパティ 継承 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, 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
プロパティ 継承 DataBindingTarget: data-binding-context, data-bindings
プロパティ 継承 EventTarget: event-handlers
プロパティ 継承 OptionListInterface: option-register-proc, options-present-here, registered-option-keys

メソッド
allocate-layout-object:この BaseFrame 内に含まれる GraphicFrameLayout オブジェクトを作成します。
protected {Viewport.allocate-layout-object}:FrameLayout
attempt-revalidate-layout:最後のレイアウト ネゴシエーションが完了してから、Graphic のレイアウト設定が変更されたかどうかを判定します。
public {Viewport.attempt-revalidate-layout lc:LayoutContext}:bool
compute-child-bounds:この BaseFrame の子の境界セットを計算し、組み込みます。
protected {Viewport.compute-child-bounds
lc:LayoutContext,
before:Distance,
after:Distance,
horizontal?:bool = {value {mandatory-keyword-arg-missing} false},
set?:bool = {value {mandatory-keyword-arg-missing} false}
}:void
compute-parent-elastic:子オブジェクトに指定された整列オプションに従って、そのオブジェクトのサイズ設定を調整します。
protected {Viewport.compute-parent-elastic
source:Dimension,
horizontal?:bool = {value {mandatory-keyword-arg-missing} false}
}:Dimension
get-top-left-of-object:子孫の開始位置を返します。
public {Viewport.get-top-left-of-object}:(x:Distance, y:Distance)
set-size:このオブジェクトにレイアウト幅と高さを代入します。
public {Viewport.set-size lc:LayoutContext, bounds:GRect}:void
set-x-start:Viewport の水平位置を調整します。
public {Viewport.set-x-start x-start:Distance}:void
set-y-start:Viewport の垂直位置を調整します。
public {Viewport.set-y-start y-start:Distance}:void
メソッド 継承 Frame: add, clone-appearance-helper, remove-child
メソッド 継承 BaseFrame: add-internal, after-reposition, before-reposition, 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, propagate-request-layout, register-options
メソッド 継承 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: clear, compare-children, find-test-children, get-delimited-child-text-selection, get-gui-path-to-child, get-range-as-selected-text, get-visible-rect-in-root-into, graphical-child-visible-at, make-gui-mark, search-next-here, search-prev-here
メソッド 継承 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, 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-from-init-args, 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, 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



コンストラクタ詳細
default (コンストラクタ)
public {Viewport.default ...}

Viewport を初期化します。残余引数は、単に基本クラス コンストラクタに渡されます。




プロパティ詳細
child-height (アクセサ)
アクセサ public Viewport.child-height:Distance

Viewport の子のセルの高さです。

説明

Viewport が子を持たない場合、この値は 0pt になります。


child-width (アクセサ)
アクセサ public Viewport.child-width:Distance

Viewport の子のセルの高さです。

説明

Viewport が子を持たない場合、この値は 0pt になります。


clip-child-shadows? (アクセサ)
アクセサ public Viewport.clip-child-shadows?:bool

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

注意事項

この box 内の Graphic の影が、この box の境界の外に描画されないの場合は、true を返します。


halign-spec (アクセサ)
アクセサ protected Viewport.halign-spec:any

レイアウトで使用される halign 値を提供します。

説明

null の場合は原点に合わせて整列されます。それ以外の場合、この値は 0 (左揃え) ~ 1 (右揃え) の数になります。

オーバーライド

既定の実装は、原点に合わせた整列を指定する null を返します。異なる値を指定 (または計算) するように、派生クラスでオーバーライドできます。


scrollbox (ローカル オプション)
public Viewport.scrollbox:#ViewportBox =null

Viewport に関連する ViewportBox を識別します。

説明

ViewportBox は、selfをオプションの値とすることで、このオプションに自分自身を設定します。

プログラミング注意事項

このオプションは、ViewportBox とその関連 Viewport の間で行われる通信のためだけに使用されます。その他の目的では使用しないでください。


valign-spec (アクセサ)
アクセサ protected Viewport.valign-spec:any

レイアウト処理で使用される valign 値を提供します。

説明

null の場合は原点に合わせて整列されます。それ以外の場合、この値は 0 (上揃え) ~ 1 (下揃え) の数になります。

オーバーライド

既定の実装は、原点に合わせた整列を指定する null を返します。異なる値を指定 (または計算) するように、派生クラスでオーバーライドできます。





メソッド詳細
allocate-layout-object (メソッド)
protected {Viewport.allocate-layout-object}:FrameLayout

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

戻り値

新しい FrameLayout

オーバーライド

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


attempt-revalidate-layout (メソッド)
public {Viewport.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 のサブクラスを使用することをお勧めします。


compute-child-bounds (メソッド)
protected {Viewport.compute-child-bounds
lc:LayoutContext,
before:Distance,
after:Distance,
horizontal?:bool = {value {mandatory-keyword-arg-missing} false},
set?:bool = {value {mandatory-keyword-arg-missing} false}
}:void

この BaseFrame の子の境界セットを計算し、組み込みます。

lc: 現在のレイアウト ネゴシエーションに適用する LayoutContext
before: 子オブジェクトの起点位置の前に割り当てられる空白の量。horizontal? が true の場合、これは子オブジェクトの左エクステントです。それ以外の場合は、子の上になります。
after: 子オブジェクトの起点位置の後ろに割り当てられる空白の量。horizontal? が true の場合、これは子オブジェクトの右エクステントです。それ以外の場合は、子の下になります。
horizontal?: before および after が横幅に関するものである場合は、true になります。これらが高さに関するものである場合は、false になります。
set?: これが現在のレイアウト ネゴシエーションで計算された 2 つ目の境界セットである場合 (たとえば、そのネゴシエーションは幅を先に処理するものであり、これらが高さの境界である場合)、true になります。これが組み込まれる 1 つ目の境界セットである場合 (たとえば、ネゴシエーションが幅を先に処理するもので、これらが幅の境界である場合) は false です。

説明

このメソッドは、self.halign-specself.hstretch?-spec (horizontal? が true の場合) または self.valign-specself.vstretch?-spec (horizontal? が false の場合) の指定に合わせて、与えられた before および after 境界を調整します。結果の origin、before、および after の値は、BaseFrame.install-child-bounds に渡されて組み込まれます。

オーバーライド

before および after から、install-child-bounds メソッドに引数として提供する値に送る際に異なる計算セットを有効にする必要があるサブクラス内で、このメソッドをオーバーライドできます。


compute-parent-elastic (メソッド)
protected {Viewport.compute-parent-elastic
source:Dimension,
horizontal?:bool = {value {mandatory-keyword-arg-missing} false}
}:Dimension

子オブジェクトに指定された整列オプションに従って、そのオブジェクトのサイズ設定を調整します。

source: この BaseFrame の子オブジェクトの幅または高さのサイズ設定を示す Dimension
horizontal?: 現在の対象が幅である場合は true、高さの場合は false です。

戻り値

指定されている整列オプションによって要求される場合は、再配列された起点を持つ source と等しい Dimension

説明

使用される整列オプションは、self.halign-spec (horizontal? が true の場合) または self.valign-spec (horizontal? が false の場合) を呼び出して決定されます。

オーバーライド

BaseFrame.install-child-bounds で説明しているように、このメソッドは、返されるサイズ設定を調整する BaseFrame のサブクラスでオーバーライドできます。このメソッドがオーバーライドされる場合、オーバーライドするメソッドは、まず super.compute-parent-elastic を呼び出し、その呼び出しによって返される Dimension に対して処理を行う必要があります。


get-top-left-of-object (メソッド)
public {Viewport.get-top-left-of-object}:(x:Distance, y:Distance)

子孫の開始位置を返します。

g: Visual の子孫です。

戻り値

開始位置の x と y 座標です。

説明

g の左上隅が Viewport の左上隅になるように (スクロール バーが Viewport に対してそれだけ遠くにスクロールすることを許可していることを前提とする)、Viewport.set-x-start および Viewport.set-y-start に提供する位置を返します。


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

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

説明

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

プログラミング注意事項

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

オーバーライド

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


set-x-start (メソッド)
public {Viewport.set-x-start x-start:Distance}:void

Viewport の水平位置を調整します。

x-start: Viewport の内容の左端からの距離です。

説明

Viewport の左端が、Viewport の内容の左端から x-start になるように設定します。


set-y-start (メソッド)
public {Viewport.set-y-start y-start:Distance}:void

Viewport の垂直位置を調整します。

y-start: Viewport の内容の上端からの距離です。

説明

Viewport の上端が、Viewport の内容の上端から y-start になるように設定します。