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

ScrollBox や類似したクラスの共通のスーパークラスです。

説明

ViewportBox の主な目的は、ViewportBox のコンテンツの一部を表示する内部的な Viewport を保持することです。
導入: バージョン 6.0

コンストラクタ
default:ViewportBox を作成します。
コンストラクタ protected {ViewportBox.default viewport-class:Type = Viewport, ...}

プロパティ
child-height:ビューポート内のオブジェクトの高さです。
アクセサ public ViewportBox.child-height:Distance
child-width:Viewport 内のオブジェクトの幅です。
アクセサ public ViewportBox.child-width:Distance
device-pixel-size:現在の DisplayContext のデバイス ピクセル サイズです。
フィールド protected ViewportBox.device-pixel-size:Distance =1pt
display-context:このオブジェクトに関連付けられている DisplayContext
非ローカル オプション public ViewportBox.display-context:#DisplayContext
have-hscroll?:この ViewportBox の水平スクロール位置を修正できるかどうかを指定します。
アクセサ public ViewportBox.have-hscroll?:bool
have-vscroll?:この ViewportBox の垂直スクロール位置を変更可能にするかどうかを指定します。
アクセサ public ViewportBox.have-vscroll?:bool
hstretch?:ViewportBox が、自身に含まれる Graphic を水平に伸長できるかどうかを制御します。
ローカル オプション public ViewportBox.hstretch?:bool
viewport:ViewportBox に関連付けられた Viewport です。
フィールド public-get protected-set ViewportBox.viewport:Viewport
vstretch?:ViewportBox が、自身に含まれる Graphic を垂直に伸長できるかどうかを制御します。
ローカル オプション public ViewportBox.vstretch?:bool
プロパティ 継承 Frame: clonable-class?, halign, halign-spec, hstretch?-spec, style-element, valign, valign-spec, vstretch?-spec
プロパティ 継承 ScrollerInterface: horizontal-position, max-horizontal-position, max-vertical-position, min-horizontal-position, min-vertical-position, vertical-position
プロパティ 継承 BaseFrame: child, completely-clonable-children?, graphical-children, ordered-children, reverse-ordered-children, width-first?
プロパティ 継承 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?, 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

メソッド
add:Frame に子アイテムを追加します。
public {ViewportBox.add g:any, ...}:#Visual
add-adornment:Viewport を含む、ViewportBox の内部構造を追加します。
protected {ViewportBox.add-adornment g:any, ...}:#Visual
clear:ボックスのグラフィカルな子を削除します。
public {ViewportBox.clear}:void
get-viewport-bounds: relative-to の座標系で、現在のスクロール位置に対して、表示可能な四角形の境界を取得します。
public {ViewportBox.get-viewport-bounds
relative-to:Visual,
dest:#GRect = null
}:#GRect
remove-child:Frame の子を削除します。
public {ViewportBox.remove-child}:void
scroll-to:ViewportBox のビューポートを指定されたどおりに配置します。
public abstract {ViewportBox.scroll-to
x:Distance = -1pt,
y:Distance = -1pt
}:void
set-scroll-sizes:ViewportBox または Viewport 内のオブジェクトのサイズ変更の後、Viewport のパラメータを設定します。
public abstract {ViewportBox.set-scroll-sizes view-bounds:GRect}:void
set-viewport-x:Viewport の水平オフセットを指定通りに設定します。
protected {ViewportBox.set-viewport-x v:Distance}:void
set-viewport-y:この ViewportBoxViewport の垂直オフセットを、指定されたように設定します。
protected {ViewportBox.set-viewport-y v:Distance}:void
メソッド 継承 Frame: clone-appearance-helper
メソッド 継承 ScrollerInterface: scroll-to-include-relative-point
メソッド 継承 BaseFrame: add-internal, after-reposition, allocate-layout-object, attempt-revalidate-layout, before-reposition, compute-child-bounds, compute-parent-elastic, 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, set-size
メソッド 継承 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: 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 (コンストラクタ)
protected {ViewportBox.default viewport-class:Type = Viewport, ...}

ViewportBox を作成します。

viewport-class:
この ViewportBox で使用するために作成される Viewport の型です。ViewportTextFlowViewport のいずれかである必要があります。
一般的には、この値は指定する必要はありません。



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

ビューポート内のオブジェクトの高さです。

戻り値

ビューポート内のオブジェクトの高さです。

注意事項

返された情報は、この ViewportBox のレイアウトが現在有効である場合に限り有効となります。


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

Viewport 内のオブジェクトの幅です。

説明

返された情報は、この ViewportBox のレイアウトが現在有効である場合に限り有効となります。


device-pixel-size (フィールド)
protected ViewportBox.device-pixel-size:Distance =1pt

現在の DisplayContext のデバイス ピクセル サイズです。

説明

Viewport は、通常、次のようにデバイス ピクセル サイズを使用し、距離を数量化します。
self.device-pixel-size * {round v / self.device-pixel-size}


この値は、デバイスのピクセルが非常に小さい場合は、 DisplayContext.pixel-size とは異なります (印刷時など)。詳細については、 Renderer2d.device-pixel-size および Renderer2d.pixel-size を参照してください。


display-context (非ローカル オプション)
public ViewportBox.display-context:#DisplayContext

このオブジェクトに関連付けられている DisplayContext

プログラミング注意事項

このオプションは、Curl グラフィック システム内での通信のために使用されます。これは、ユーザー コードで不用意に設定や設定解除を行わないでください。また、通常は、ユーザー コードで直接読み取るべきではありません。現在の DisplayContext が必要な場合は、Visual.get-display-context を呼び出すことによりフェッチしてください。

画面上のウィンドウまたは印刷されたページで表示可能なすべてのグラフィック階層は、そのルートにおいて、display-context オプションを DisplayContext オブジェクトに設定するオブジェクトを持つ必要があります。このオブジェクトは、グラフィック階層の表示に使用される表示媒体に適しています。つまり、オブジェクトは、display-context オプションの値が null から非 null DisplayContext オブジェクトに変更されるのをモニタリングすることにより、表示不可能なグラフィック階層に連結されていることを認識します。したがって、特定の動作を実行する必要のある Visual のサブクラスは、表示不可能なグラフィック階層に接続された場合、次のようなオプション宣言を含むことにより display-context オプションをモニタリングします。

{nonlocal-option public display-context:#DisplayContext
change handler}


ここで、change handler 内のコードは display-context オプションの現在値 (変数 display-context の値として、変更ハンドラ内にある) を取得し、null および非 null の値の間で行われる変更をモニタリングし、必要とされる動作を実行します。

ただし、このプログラミング熟語を使用するプログラマーは、グラフィカル表示を再配列する際、グラフィック階層からグラフィカル オブジェクトを一時的に分離し、これらを同じ階層に再アタッチすることが、割に一般的であることを理解するべきです。この処理により、一時的に分離されたオブジェクトは、display-context オブジェクトが null になり、再び非 null になるのを観察します。display-context オプションでの変更をモニタリングするコードは、この可能性を考慮に入れ、この状況における望ましくない動作の実行を回避しなくてはなりません。


have-hscroll? (アクセサ)
アクセサ public ViewportBox.have-hscroll?:bool

この ViewportBox の水平スクロール位置を修正できるかどうかを指定します。

説明

have-hscroll? 水平スクロールが必要とされる可能性があることを示します。たとえば、Viewport の内容が Viewport よりも大きい場合などです。

通常、hscroll? が false の場合は have-hscroll? も常に false であることが予測されますが、これは必要条件ではありません。

注意事項

この値は、ScrollBox.hscroll? とは異なります。これは、ScrollBox が、その内容を水平スクロールが必要とされるように配置するかどうかを指定します。

オーバーライド

既定の実装 ViewportBox.have-hscroll? は、常に true を返します。サブクラスは、必要に応じて false を返すように、このメソッドをオーバーライドすることができます。


have-vscroll? (アクセサ)
アクセサ public ViewportBox.have-vscroll?:bool

この ViewportBox の垂直スクロール位置を変更可能にするかどうかを指定します。

説明

have-vscroll? 垂直スクロールが必要とされる可能性があることを示します。たとえば、Viewport の内容が Viewport よりも大きい場合などです。

通常、vscroll? が false の場合は have-vscroll? も常に false であることが予測されますが、これは必ずしもそうでなくてはならないわけではありません。

注意事項

この値は、ScrollBox.vscroll? とは異なります。これは、ScrollBox が、その内容を垂直スクロールが必要とされるように配置するかどうかを指定します。

オーバーライド

既定の実装 ViewportBox.have-vscroll? は、常に true を返します。サブクラスは、必要に応じて false を返すように、このメソッドをオーバーライドすることができます。


hstretch? (ローカル オプション)
public ViewportBox.hstretch?:bool

ViewportBox が、自身に含まれる Graphic を水平に伸長できるかどうかを制御します。

説明

既定では、ViewportBox 内のオブジェクトは、ViewportBox そのものがユーザー設定サイズよりも大きい場合でも、常にその ユーザー設定サイズ に指定されます。ただし、このオプションが true に設定され、ViewportBox の幅が ViewportBox に含まれるオブジェクトのユーザー設定幅よりも大きい場合、オブジェクトはその幅が ViewportBox の幅に等しくなるように伸長されます。

詳細については、Frame.hstretch? を参照してください。


viewport (フィールド)
public-get protected-set ViewportBox.viewport:Viewport

ViewportBox に関連付けられた Viewport です。



vstretch? (ローカル オプション)
public ViewportBox.vstretch?:bool

ViewportBox が、自身に含まれる Graphic を垂直に伸長できるかどうかを制御します。

説明

既定では、ViewportBox 内のオブジェクトは、例え ViewportBox そのものがユーザー設定サイズよりも大きい場合でも、常にその ユーザー設定サイズ に指定されます。ただし、このオプションが true に設定され、ViewportBox の高さが ViewportBox に含まれるオブジェクトのユーザー設定高さよりも大きい場合、オブジェクトはその高さが ViewportBox の高さに等しくなるように伸長されます。

詳細については、Frame.vstretch? を参照してください。





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

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

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

注意事項

Frame.add にはキーワード パラメータ replace? もあります。replace? が true の場合、Frameが直前に保持していた子があれば、それが g に置き換えられます。replace? が false (既定) の場合、子を保持している Frame でこのメソッドを呼び出そうとするとエラーが発生します。

戻り値

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

オーバーライド

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

{super.add g, ...}

これで、Frame 自体の追加アクションを呼び出し、replace? 引数が指定されている場合は、この引数とともに渡します。


add-adornment (メソッド)
protected {ViewportBox.add-adornment g:any, ...}:#Visual

Viewport を含む、ViewportBox の内部構造を追加します。

g: ViewportBox のグラフィカルな子として追加されるアイテムです。g は、ViewportBox.viewport により指定された Viewport であるか、あるいはそれを含んでいなければなりません。

このメソッドは、内部構造の設定中に、サブクラスのみから呼び出されるものです。通常、アイテムには、ユーザーが ViewportBox の内容と見なすものは含まれていません。このような内容は、ViewportBox.add により追加されます。

g がまだ Graphic ではない場合、g Graphic にキャストされ、その結果が ViewportBox のグラフィカルな子として追加されます。
...: このメソッドの署名は ViewportBox.add の署名との互換性を保つため残余引数を許可していますが、ViewportBox.add-adornment は実際に引数が提供されるとエラーを通知します。

戻り値

ViewportBox に追加される実際のオブジェクトです。


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

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



get-viewport-bounds (メソッド)
public {ViewportBox.get-viewport-bounds
relative-to:Visual,
dest:#GRect = null
}:#GRect

relative-to の座標系で、現在のスクロール位置に対して、表示可能な四角形の境界を取得します。

relative-to: 対象の座標系を定義する Visual。ビューポートの境界は、この座標系内で返されます。
dest: 結果の保存先となる GRect。実装では、このパラメータを使用する必要はありません。したがって、呼び出し側は戻り値が dest と同じであると仮定してはなりません。

戻り値

ビューポートの境界を表す GRect。呼び出し側のコードでは、必要に応じて GRect を保持または変更することができます。

説明

有効な座標を指定できない場合 (たとえば、 relative-to が、スクロールするオブジェクトと同じグラフィック階層に存在しない場合、あるいは境界の決定にはレイアウトの計算が必要で、この結果に信頼性がない場合)、null が返されます。

オーバーライド

サブクラスでは、このメソッドの説明に従う必要があります。これが不可能な場合、たとえば Visual を含まない配置メカニズムを表すのに ScrollerInterface が使用される場合などでは、サブクラスは常に null を返すことができます。

サブクラスが非 null の GRect を返す場合、GRectdest として渡された値であるか、新しく作成された GRect でなければなりません。


remove-child (メソッド)
public {ViewportBox.remove-child}:void

Frame の子を削除します。

オーバーライド

子が Frame から切り離されたときにサブクラスで別の記録処理を実行する場合、または最初にこのメソッドを呼び出す場合、Frame のサブクラスでオーバーライドできます。


scroll-to (メソッド)
public abstract {ViewportBox.scroll-to
x:Distance = -1pt,
y:Distance = -1pt
}:void

ViewportBox のビューポートを指定されたどおりに配置します。

x: 適用される水平オフセットです (ViewportBox.horizontal-position により解釈される)。
y: 適用される垂直オフセットです (ViewportBox.vertical-position により解釈される)。

注意事項

このメソッドが呼び出されると、可能な場合は、ViewportBox.horizontal-position が値 x を、ViewportBox.vertical-position が 値 y を返すように、ビューポートが配置されます。x または y のいずれかが指定されていない場合、その寸法における現在のビューポート位置が保存されます。

オーバーライド

この、ViewportBox の抽象メソッドは、具象サブクラスによりオーバーライドされる必要があります。


set-scroll-sizes (メソッド)
public abstract {ViewportBox.set-scroll-sizes view-bounds:GRect}:void

ViewportBox または Viewport 内のオブジェクトのサイズ変更の後、Viewport のパラメータを設定します。

view-bounds: Viewport の新しい境界です。

説明

サムの長さの調整、ならびに Scrollbar に対する値範囲の調整など、オブジェクト サイズに変更が行われた場合に ViewportBox が必要とするアクションを実行します。


set-viewport-x (メソッド)
protected {ViewportBox.set-viewport-x v:Distance}:void

Viewport の水平オフセットを指定通りに設定します。

v: 水平オフセットの新しい値 (ポイント単位) です。

説明

このメソッドは、Viewport の位置の設定時 ( ViewportBox.scroll-to または ViewportBox.horizontal-position の一部として) にサブクラスにより呼び出されるようにします。

Distance-to-pixel の四捨五入により引き起こされる、表示におけるアーティファクトの発生を最小限に抑えるため、このメソッドは結果の値で Viewport.set-x-start を呼び出す前に vViewportBox.device-pixel-size の倍数に四捨五入します。


set-viewport-y (メソッド)
protected {ViewportBox.set-viewport-y v:Distance}:void

この ViewportBoxViewport の垂直オフセットを、指定されたように設定します。

v: 垂直オフセットの新しい値 (ポイント単位) です。

説明

このメソッドは、Viewport の位置の設定時 ( ViewportBox.scroll-to または ViewportBox.vertical-position の一部として) にサブクラスにより呼び出されるようにします。

Distance-to-pixel の四捨五入により引き起こされる、表示におけるアーティファクトの発生を最小限に抑えるため、このメソッドは結果の値で Viewport.set-x-start を呼び出す前に vViewportBox.device-pixel-size の倍数に四捨五入します。