ShapeBox (クラス)
public ShapeBox {inherits SequenceBox, ShapeRoot}
パッケージ: CURL.GUI.SHAPES
直接継承しているサブクラス: Canvas, ChartBox

Shape の階層を表示します。

説明

ShapeBox は、ShapeRoot の実装です。これは、SequenceBox から継承され、Box としての要件を満たします。
ShapeBox の既定の動作は、コンテンツに応じてサイズの設定を決定することです。この動作は、サブクラスの要件ではありません。ただし、たとえば、Canvas はそのサイズを独自に判別します。

注意事項

このオブジェクトは、"ShapeBox"のスタイル ルールを記述することによってスタイル化することが出来ます。

コンストラクタ
clone-appearance-from:新規オブジェクトを生成するためのコンストラクタ。
コンストラクタ protected {ShapeBox.clone-appearance-from
other:ShapeBox,
fixup:#{proc-type {Visual, Visual}:Visual}
}
default:新しい ShapeBox を作成します。
コンストラクタ public {ShapeBox.default ...}

プロパティ
as-Box:Box にキャストされたこの ShapeRoot です。
アクセサ public ShapeBox.as-Box:Box
clonable-class?:当該クラスがクローン化可能である場合は、true を返します。その他の場合は false を返します。
アクセサ protected ShapeBox.clonable-class?:bool
display-context:このオブジェクトに関連付けられている DisplayContext
非ローカル オプション public ShapeBox.display-context:#DisplayContext
style-element:スタイリングの目的のための、この Visual の "要素" や "型" です。
アクセサ public ShapeBox.style-element:String
プロパティ 継承 SequenceBox: child-array, completely-clonable-children?, contains-valid?, graphical-children, invalid-epoch, layouts-have-valid-sequence-number?, option-register-proc, ordered-children, registered-option-keys, reverse-ordered-children
プロパティ 継承 ShapeRoot: as-ShapeRoot
プロパティ 継承 ShapeContainerBase: as-Shape, shape-children
プロパティ 継承 GetBoundsBox: layout-locally-valid?, layout-valid?
プロパティ 継承 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
プロパティ 継承 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
プロパティ 継承 DataBindingTarget: data-binding-context, data-bindings
プロパティ 継承 EventTarget: event-handlers
プロパティ 継承 OptionListInterface: options-present-here

メソッド
add:Shape を、この ShapeBox に追加します。
public {ShapeBox.add obj:any, ...}:#Visual
add-shape-graphic-child:shape に含まれる Graphic をこの ShapeRoot のグラフィカル階層に追加します。
public {ShapeBox.add-shape-graphic-child}:ShapeLayout
after-reposition:Graphic が移動またはサイズ変更されたことを、Graphic に通知します。
public {ShapeBox.after-reposition layout-context:LayoutContext}:void
allocate-layout-object:この SequenceBox 内に含まれる GraphicSequenceLayout オブジェクトを作成します。
protected {ShapeBox.allocate-layout-object}:ShapeBoxLayout
before-reposition:Graphic が移動またはサイズ変更されることを、Graphic に対して通知します。
public {ShapeBox.before-reposition layout-context:LayoutContext}:void
clear:ボックスのグラフィカルな子を削除します。
public {ShapeBox.clear}:void
clone-appearance-helper:クローンを作成し、クローン自体を返します。
protected {ShapeBox.clone-appearance-helper
fixup:#{proc-type {Visual, Visual}:Visual}
}:Visual
constrain-height:指定した高さの制約を受けた場合にこの Graphic の幅設定を返します。
public {ShapeBox.constrain-height
lc:LayoutContext,
ascent:Distance,
descent:Distance
}:Dimension
constrain-width:指定した高さの制約を受けた場合にこの Graphic の高さ設定を返します。
public {ShapeBox.constrain-width
lc:LayoutContext,
lextent:Distance,
rextent:Distance
}:Dimension
draw:このオブジェクトの可視表現を描画します。
public {ShapeBox.draw r2d:Renderer2d}:void
get-current-draw-transformation:最後に実行された描画中にレンダラーに適用された変換を取得します。
public {ShapeBox.get-current-draw-transformation}:Transformation2d
get-gui-path-to-child:指定されたBoxから、指定されたこのオブジェクトの子に向かうGUIパスを計算します。
public {ShapeBox.get-gui-path-to-child
child:Visual,
root:Box
}:{Array-of int}
get-height-preference:この Graphic の高さ設定を返します。
public {ShapeBox.get-height-preference lc:LayoutContext}:Dimension
get-width-preference:この Graphic の幅設定を返します。
public {ShapeBox.get-width-preference lc:LayoutContext}:Dimension
handle-crossing:ポインタ イベントe についての通知に応じて、必要な場合に PointerCrossing イベントを発生させます。
protected {ShapeBox.handle-crossing
c:#EventForwarder,
e:GuiInputEvent,
entered?:bool = false,
left?:bool = false
}:void
invalidate-shape-layout:Shape のレイアウトに関するキャッシュされた情報を無効にします。
public {ShapeBox.invalidate-shape-layout}:void
note-attached:ルートが RootFrame であるグラフィック階層にこの Visual が追加されたとき、そのグラフィック階層内でこれより下にあるすべての Visual に対して AttachEvent を起動します。
public {ShapeBox.note-attached}:void
note-detaching:ルートが RootFrame であるグラフィック階層からこの Visual が削除されたとき、そのグラフィック階層内でこれより下にあるすべての Visual に対して DetachEvent を起動します。
public {ShapeBox.note-detaching}:void
notify-option-children:このオブジェクトのオプションの子にオプションが変更されたことを通知します。
public {ShapeBox.notify-option-children
item:OptionItem,
removed?:bool
}:void
on-drag-enter:DragEnter イベントのスタティック イベント ハンドラ
public {ShapeBox.on-drag-enter e:DragEnter}:void
on-pointer-enter:PointerEnter イベントのスタティック イベント ハンドラ
public {ShapeBox.on-pointer-enter e:PointerEnter}:void
on-pointer-envelope-event:PointerEnvelopeEventスタティック イベント ハンドラ
public {ShapeBox.on-pointer-envelope-event e:PointerEnvelopeEvent}:void
pick-child:指定された点 (x, y) を覆う BasicBox の子をピックアップします。
public {ShapeBox.pick-child x:Distance, y:Distance}:#EventForwarder
register-options:このオブジェクトがバインドのモニタリングを必要とする非ローカル オプション キーを登録します。
public {ShapeBox.register-options p:{proc-type {OptionKey}:void}}:void
request-draw:描画する Graphic に属するピクセルを確認します。
public {ShapeBox.request-draw
layout-context:LayoutContext = {self.get-layout-context}
}:void
request-draw-rect:指定した GRect を再描画するためにピクセルを要求します。
public {ShapeBox.request-draw-rect
rect:GRect,
layout-context:LayoutContext = {self.get-layout-context}
}:void
request-pointer-trace:表示されたオブジェクトの幾何形状が変更されていることを宣言し、必要な PointerCrossing イベントの発生を要求します。
public {ShapeBox.request-pointer-trace}:void
set-size:このオブジェクトにレイアウト幅と高さを代入します。
public {ShapeBox.set-size lc:LayoutContext, bounds:GRect}:void
shape-container-pick-child:指定された点 (x, y) を覆う ShapeContainerBase の子を選択します。
public {ShapeBox.shape-container-pick-child}:(result:#EventForwarder, local-x:Distance, local-y:Distance )
メソッド 継承 SequenceBox: add-at-index, add-at-index-with-layout, attempt-revalidate-layout, compare-children, end-pagination, find, graphical-child-visible-at, internal-remove-child, propagate-request-layout, swap-children, validate-layout-sequence-numbers
メソッド 継承 BasicBox: contains-point?, find-graphic-at, pointer-enter-occurred, pointer-leave-occurred
メソッド 継承 ShapeContainerBase: clone-children, constrain-shape-layout-bounds, draw-shape-child, draw-shape-children, get-all-children-at-point, get-child-at-point, get-leaf-at-point, get-shape-bounds, get-shape-bounds-in-shape-root, get-shape-layout-bounds, get-shape-root, remove, set-shape-index, set-shape-index-after, set-shape-index-before, shape-container-fire-inferior-crossing-event, shape-container-handle-crossing, shape-container-pointer-enter-occurred, shape-container-pointer-leave-occurred
メソッド 継承 GetBoundsBox: get-bounds, get-elastic-bounds-into, get-nonparent-bounds-into, request-layout, validate-layout
メソッド 継承 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-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, 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
メソッド 継承 Box: find-test-children, get-delimited-child-text-selection, get-range-as-selected-text, get-visible-rect-in-root-into, make-gui-mark, search-next-here, search-prev-here
メソッド 継承 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
メソッド 継承 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-inspection, option-changed, paginate, paint-with-decorations, replace-with, search-next, search-prev, set-layout, start-pagination, xy-offset-to
メソッド 継承 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



コンストラクタ詳細
clone-appearance-from (コンストラクタ)
protected {ShapeBox.clone-appearance-from
other:ShapeBox,
fixup:#{proc-type {Visual, Visual}:Visual}
}

新規オブジェクトを生成するためのコンストラクタ。

other: クローンする ShapeBox
fixup:
各クローンを作成するために呼び出されるプロシージャ。クローン化する時に使用され ShapeBox.clone-children に渡されます。
このプロシージャは二つの引数と共に呼び出されます。元のオブジェクトと clone-appearance のメカニズムによって生成されたコピーオブジェクトです。このプロシージャによって返された値はクローンとして使用されます。このプロシージャはコピーするオブジェクトに修正を加えて返すことができます。このプロシージャが null を返すことはできません。

説明

クローン化をサポートする ShapeBox のサブクラスはこのコンストラクタを呼び出すコンストラクタを持たなければなりません。クローンされた子に追加しなければならない情報があるかどうか分からない場合、このコンストラクタはサブクラスの子のクローンを作成しません。このクラスのサブクラスは子のクローンを作成しそれらを追加する必要があります。追加の情報が必要でない場合、単に ShapeBox.clone-children を呼び出すだけです。そうでない場合は、ShapeBox.clone-children をオーバーライドしそれを呼び出さなければなりません。通常、clone-apperance-from コンストラクタから呼び出される ShapeBox.clone-children は以下のようになります。
{if {type-of self} == {compile-time-type-of self} then
    {self.clone-children other, fixup}
}


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

新しい ShapeBox を作成します。

...: 残余引数を Shape にして、ShapeBox、イベント ハンドラ、またはグラフィック オプションの初期化に追加することができます。



プロパティ詳細
as-Box (アクセサ)
アクセサ public ShapeBox.as-Box:Box

Box にキャストされたこの ShapeRoot です。



clonable-class? (アクセサ)
アクセサ protected ShapeBox.clonable-class?:bool

当該クラスがクローン化可能である場合は、true を返します。その他の場合は false を返します。

オーバーライド

既定の実装は false を返します。クローン化機能を提供するクラスは、{type-of self} == {compile-time-type-of self} を返すためには、このゲッターをオーバーライドする必要があります。クローン化可能な Visual が必ずしもクローン化可能であるとは限らないので、単に true を返すだけでは正しくありません。
このメソッドをオーバーライドする場合は、Visual.clone-appearance-helper もオーバーライドする必要があります。


display-context (非ローカル オプション)
public ShapeBox.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 オプションでの変更をモニタリングするコードは、この可能性を考慮に入れ、この状況における望ましくない動作の実行を回避しなくてはなりません。


style-element (アクセサ)
アクセサ public ShapeBox.style-element:String

スタイリングの目的のための、この Visual の "要素" や "型" です。

説明

この実装によって Visual._style-elementの値が返されますが、通常は定数を返すためにオーバーライドされます。

オーバーライド

Visual のサブクラスのスタイルが他のオブジェクトと異なる場合、このゲッターは適切な文字列を返すようにオーバーライドされる必要があります。 慣例では,この文字列はクラス名または、オブジェクトを生成するマークアップの名前です。
オーバーライドでは、空の文字列でないかぎり、self._style-elementを返さなければなりません。
導入: バージョン 6.0





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

Shape を、この ShapeBox に追加します。

obj: 追加するアイテムです。objShape の場合、アイテムはこのオブジェクトの形状の子として追加されます。それ以外の場合、objShape に強制変換され、その結果が追加されます。

戻り値

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

説明

指定可能な追加のキーワード パラメータを含む詳細については、ShapeContainerBase.add を参照してください。


add-shape-graphic-child (メソッド)
public {ShapeBox.add-shape-graphic-child}:ShapeLayout

shape に含まれる Graphic をこの ShapeRoot のグラフィカル階層に追加します。

説明

このメソッドは GraphicShape の実装から排他的に呼び出されることを想定しています。このメソッドを呼び出す必要はありません。


after-reposition (メソッド)
public {ShapeBox.after-reposition layout-context:LayoutContext}:void

Graphic が移動またはサイズ変更されたことを、Graphic に通知します。

layout-context: このオブジェクトを含んでいるグラフィック階層のサブツリーに対応する LayoutContext オブジェクト。

プログラミング注意事項

この Graphic を移動またはサイズ変更した操作の前に、Graphic.before-reposition を呼び出した場合、このメソッドはこの操作後に呼び出されます。この操作の前にオブジェクトが見えなかったとしても、操作前に Graphic.before-reposition を呼び出さなかった場合は、この操作後に、Graphic.after-reposition でなく Graphic.request-draw が呼び出されます。

Graphic に対して g.after-reposition g が呼び出されるのは、この操作の前に g.before-reposition を呼び出した場合のみです。ただし、この操作の前に g.before-reposition を呼び出しても、この操作の後に g.after-reposition が呼び出されない場合もあります。このような事態が発生するのは、オブジェクトを移動やサイズ変更がなかったと (g の親などが) 判断した場合、あるいは他のオブジェクトが、操作前と操作後の両方で、g の位置の可視境界全体に対する LayoutContext.request-draw-rect-in-root 操作を 1 回以上呼び出した場合です。

Graphic.before-repositionGraphic.after-reposition はともに、オブジェクトの位置が有効な場合にしか呼び出されません。

オーバーライド

既定の定義 Graphic.after-reposition は、単に Graphic.request-draw を呼び出すだけです。Graphic.request-draw は、Graphic.before-repositionの既定の実装でも使用されていることを前提とした適切な処理方法です。ただし、Graphic.before-reposition をオーバーライドする場合は、Graphic.after-reposition もオーバーライドする必要があります。


allocate-layout-object (メソッド)
protected {ShapeBox.allocate-layout-object}:ShapeBoxLayout

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

戻り値

新しい SequenceLayout

オーバーライド

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


before-reposition (メソッド)
public {ShapeBox.before-reposition layout-context:LayoutContext}:void

Graphic が移動またはサイズ変更されることを、Graphic に対して通知します。

layout-context: このオブジェクトを含んでいるグラフィック階層のサブツリーに対応する LayoutContext オブジェクト。

プログラミング注意事項

このメソッドは、レイアウト ネゴシエーションまたはその他の操作で可視オブジェクトを移動またはサイズ変更するときに必ず呼び出します。このメソッドは、オブジェクトが見えない場合でも呼び出すことができます。また、このメソッドを呼び出したとしても、その後オブジェクトを移動またはサイズ変更しなくてもかまいません。

オーバーライド

既定の定義 Graphic.before-reposition は、 単にGraphic.request-draw を呼び出します。これは常に正しい処理です。ただし、高度なオブジェクトでは、このメソッドを次のいずれかのコードでオーバーライドできます。


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

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



clone-appearance-helper (メソッド)
protected {ShapeBox.clone-appearance-helper
fixup:#{proc-type {Visual, Visual}:Visual}
}:Visual

クローンを作成し、クローン自体を返します。

オーバーライド

既定の実装はエラーをスローします。クローン化機能を提供するクラスは、
{{compile-time-type-of self}.clone-appearance-from self, fixup}
を返すためには、このゲッターをオーバーライドする必要があります。


constrain-height (メソッド)
public {ShapeBox.constrain-height
lc:LayoutContext,
ascent:Distance,
descent:Distance
}:Dimension

指定した高さの制約を受けた場合にこの Graphic の幅設定を返します。

lc: このレイアウト ネゴシエーションに対して有効な LayoutContext
ascent, descent: 高さの制約。この Graphic の起点からの相対的な上昇および下降の距離で表されます。

戻り値

オブジェクトの幅設定を表す Dimension。この Dimension は、後続のレイアウト処理中に OriginElastic に変換されます。

オーバーライド

既定のメソッド Graphic.constrain-height は、単に Graphic.get-width-preference を呼び出します。このメソッドは、オブジェクトが幅設定を計算する際に高さの制約を考慮しなくてもいい場合はオーバーライドする必要がありません。

このメソッドをオーバライドするクラスでは必ず Dimension を返すようにして、これで必要な水平軸に沿ったスペースをそのオブジェクトの起点との関係を含めて表します。実際には、これはこのメソッドが適切な OriginElastic または Dimension を返すことを意味します。Dimension の場合は、「次元から OriginElastics への変換」で説明する変換規則に従って、適切な OriginElastic に変換されます。

重要:このメソッドのオーバーライド実装には、レイアウト ネゴシエーションが確実にグラフィック階層全体に適用されるように、スーパークラス実装の呼び出しを含める必要があります。


constrain-width (メソッド)
public {ShapeBox.constrain-width
lc:LayoutContext,
lextent:Distance,
rextent:Distance
}:Dimension

指定した高さの制約を受けた場合にこの Graphic の高さ設定を返します。

lc: このレイアウト ネゴシエーションに対して有効な LayoutContext
lextent, rextent: 幅の制約。起点からの左と右の相対距離で表されます。

戻り値

オブジェクトの高さ設定を表す Dimension。この Dimension は、後続のレイアウト処理中に OriginElastic に変換されます。

オーバーライド

既定のメソッド Graphic.constrain-width は、単に Graphic.get-height-preference を呼び出します。このメソッドは、オブジェクトが高さ設定を計算する際に幅制約を考慮しなくてもいい場合はオーバーライドする必要がありません。

このメソッドをオーバライドするクラスでは必ず Dimension を返すようにして、これで必要な垂直軸に沿ったスペースをそのオブジェクトの起点との関係を含めて表します。実際には、これはこのメソッドが適切な OriginElastic または Dimension を返すことを意味します。Dimension の場合は、「次元から OriginElastics への変換」で説明する変換規則に従って、適切な OriginElastic に変換されます。

重要:このメソッドのオーバーライド実装には、レイアウト ネゴシエーションが確実にグラフィック階層全体に適用されるように、スーパークラス実装の呼び出しを含める必要があります。


draw (メソッド)
public {ShapeBox.draw r2d:Renderer2d}:void

このオブジェクトの可視表現を描画します。

renderer2d: このオブジェクトを使用してそれ自身を描画する Renderer2d

オーバーライド

既定のメソッド Graphic.draw は何もしません。Graphic のサブクラスは、必要とされる描画の操作を実行するコードでこのメソッドをオーバーライドしなければなりません。
このメソッドをオーバーライドする場合は、再描画が必要となる時はいつでも、描画する Graphic の範囲が有効でない事を確認しなければなりません。たとえば、データの値を更新するために描画をする時は、データの値が変わる時にアプレットは必ず Graphic.request-drawGraphic.request-draw-rectを呼び出さなければなりません。


get-current-draw-transformation (メソッド)
public {ShapeBox.get-current-draw-transformation}:Transformation2d

最後に実行された描画中にレンダラーに適用された変換を取得します。

説明

ShapeRoot の座標空間からグローバルなレンダリング座標空間への変換です。つまり、この ShapeRoot に対して最後に Graphic.draw を呼び出したときの Renderer2d.get-transformation の値です。
この値は、一般的にはビルボードなどの操作に使用されます。ビルボードの説明については、GraphicShape を参照してください。


get-gui-path-to-child (メソッド)
public {ShapeBox.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-height-preference (メソッド)
public {ShapeBox.get-height-preference lc:LayoutContext}:Dimension

この Graphic の高さ設定を返します。

lc: このレイアウト ネゴシエーションに対して有効な LayoutContext

戻り値

オブジェクトの高さ設定を表す Dimension。この Dimension は、後続のレイアウト処理中に OriginElastic に変換されます。

オーバーライド

このメソッドは、Graphic のサブクラス内で定義する必要があります。

このメソッドをオーバライドするクラスでは必ず Dimension を返すようにして、これで必要な垂直軸に沿ったスペースをそのオブジェクトの起点との関係を含めて表します。実際には、これはこのメソッドが適切な OriginElastic または Dimension を返すことを意味します。Dimension の場合は、「次元から OriginElastics への変換」で説明する変換規則に従って、適切な OriginElastic に変換されます。


get-width-preference (メソッド)
public {ShapeBox.get-width-preference lc:LayoutContext}:Dimension

この Graphic の幅設定を返します。

lc: このレイアウト ネゴシエーションに対して有効な LayoutContext

戻り値

このオブジェクトの幅設定を表す Dimension。この Dimension は、後続のレイアウト処理中に OriginElastic に変換されます。

オーバーライド

このメソッドは、Graphic のサブクラスで定義する必要があります。

このメソッドをオーバライドするクラスでは必ず Dimension を返すようにして、これで必要な水平軸に沿ったスペースをそのオブジェクトの起点との関係を含めて表します。実際には、これはこのメソッドが適切な OriginElastic または Dimension を返すことを意味します。Dimension の場合は、「次元から OriginElastics への変換」で説明する変換規則に従って、適切な OriginElastic に変換されます。


handle-crossing (メソッド)
protected {ShapeBox.handle-crossing
c:#EventForwarder,
e:GuiInputEvent,
entered?:bool = false,
left?:bool = false
}:void

ポインタ イベントe についての通知に応じて、必要な場合に PointerCrossing イベントを発生させます。

c: (e.x,e.y) が位置する、子のレイアウト オブジェクト。そのような子が存在しない場合、c は NULL になります。
e: ポインタ座標 e.x および e.y を含むイベント。
entered?: ポインタがこのオブジェクトに入っている場合は true になります。
left?: ポインタがこのオブジェクトから出ると true になります。

説明

このメソッドは、提供される引数による指定どおりに、また e 自体がドラッグ操作に関連付けられているかどうかに応じて、PointerEnterPointerLeaveDragEnterDragLeavePointerLeafEnter などの PointerCrossing イベントを発生させます。PointerLeave などのポインタが出るイベントは、出た self に子がある場合にその子で発生します。PointerLeafEnter などのリーフ交差イベントは、必要に応じて self で発生します。最後に、 PointerEnter などのポインタが入るイベントは、入った self に子がある場合に、その子で発生します。

プログラミング注意事項

このメソッドが呼び出されるのは、PointerEnvelopeEventself で発生したとき、または self.pointer-enter-occurred または self.pointer-leave-occurred が呼び出されたときです。


invalidate-shape-layout (メソッド)
public {ShapeBox.invalidate-shape-layout}:void

Shape のレイアウトに関するキャッシュされた情報を無効にします。

説明

このメソッドは、Shape がこの ShapeRoot の階層に対して追加または削除されるたびに呼び出されます。また、Shape の変換が変更される場合にも呼び出されます。


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

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

説明

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

オーバーライド

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


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

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

説明

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

オーバーライド

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


notify-option-children (メソッド)
public {ShapeBox.notify-option-children
item:OptionItem,
removed?:bool
}:void

このオブジェクトのオプションの子にオプションが変更されたことを通知します。

item: 追加または削除されたバインディング オプション。
removed?: item が削除された場合は true、それ以外の場合は false。

オーバーライド

既定の実装 OptionListInterface.notify-option-children では、何も行われません。サブクラスではこのメソッドをオーバーライドして、このオブジェクトの各オプションの子 c に対して {c.option-propagate-notify item removed? } を呼び出すようにする必要があります。


on-drag-enter (メソッド)
public {ShapeBox.on-drag-enter e:DragEnter}:void

DragEnter イベントのスタティック イベント ハンドラ

説明

スタティック イベント ハンドラの一般的な情報については、GuiEventTarget.on-pointer-event を参照してください。


on-pointer-enter (メソッド)
public {ShapeBox.on-pointer-enter e:PointerEnter}:void

PointerEnter イベントのスタティック イベント ハンドラ

説明

スタティック イベント ハンドラの一般的な情報については、GuiEventTarget.on-pointer-event を参照してください。


on-pointer-envelope-event (メソッド)
public {ShapeBox.on-pointer-envelope-event e:PointerEnvelopeEvent}:void

PointerEnvelopeEventスタティック イベント ハンドラ

説明

スタティック イベント ハンドラの一般的な情報については、GuiEventTarget.on-pointer-event を参照してください。


pick-child (メソッド)
public {ShapeBox.pick-child x:Distance, y:Distance}:#EventForwarder

指定された点 (x, y) を覆う BasicBox の子をピックアップします。

x, y: ポイントの座標です。

戻り値

この点を覆う子。該当する子がない場合は NULL を返します。

プログラミング注意事項

このメソッドは、PointerEvent を転送する場合やその他の類似の状況で使用されます。

注意事項

このメソッドの実装では、xy の最新の値を、これらの値について返された答えと合わせてキャッシュすることが推奨されます。このメソッドはたいてい同じ入力で連続して複数回呼び出されるからです。

オーバーライド

このメソッドは、適切な戻り値を計算するコードを持つ、BasicBox の具象サブクラスでオーバーライドする必要があります。


register-options (メソッド)
public {ShapeBox.register-options p:{proc-type {OptionKey}:void}}:void

このオブジェクトがバインドのモニタリングを必要とする非ローカル オプション キーを登録します。

p: 引数として OptionKey を使用して呼び出せるプロシージャ。

プログラミング注意事項

このメソッドは、オブジェクトがモニタしているオプション キーを確認する必要がある場合に任意のコード内で呼び出されます。このメソッドは、プロシージャ p をまったく呼び出さないかまたは何回か呼び出し、呼び出すたびに引数として OptionKey を渡す必要があります。このオブジェクトによりモニタリングされるオプション キーのセットは、p のすべての呼び出しで指定されたオプション キー セットの連結であると見なされます。p を複数回呼び出せるという能力を利用して、オプション親はモニタの対象となるオプション キーのリストを指定して p を一度呼び出し、次に、同じ引数 p を与えてオプションの子それぞれの register-options メソッドを呼び出し、このメソッドの目的を果たすことができます。この方法はシンプルですが、ほとんどの場合は、オプション親がその子における register-options 呼び出しの結果をキャッシュして、親の register-options メソッドが呼び出されたときにそのリストを提供する方がより効率的です。ローカル バインディング オプションへの変更通知は、それらのキーが登録されていない場合でも行われます。

オーバーライド

OptionListInterface.register-options の既定の実装は、このオブジェクトの変更ハンドラを持つ各非ローカル オプションで p を呼び出します。サブクラスは、{super.register-options p} を呼び出し、登録される必要がある追加のオプション キー上全てで、p を呼び出すように、このメソッドをオーバーライドする必要する必要があります。一般的に、これらの追加のオプション キーは、子供または子孫のオブジェクトが監視する必要がある非ローカル オプションに対応します。それは、このオブジェクトの子オブジェクト上で、register-options を呼び出すことによって決定されます。
注意 一般的に、このメソッドをオーバーライドする必要があるオブジェクトだけが、オプションの子を持つオブジェクトです。


request-draw (メソッド)
public {ShapeBox.request-draw
layout-context:LayoutContext = {self.get-layout-context}
}:void

描画する Graphic に属するピクセルを確認します。

layout-context: このオブジェクトを含むグラフィック階層のサブツリーに対応する LayoutContext オブジェクト。このキーワード引数が提供されない場合、Graphic.get-layout-context を呼び出して、適切な値を取得します。

注意事項

このオブジェクトを現在の位置で描画する場合、オブジェクトの Graphic.draw メソッドによってペイントされる、またはペイントされたピクセルすべてをカバーする回数の Graphic.request-draw-rect 呼び出しがこのメソッドで実行されます。既定のメソッド Graphic.request-draw が使用する単純な方法は、Graphic のレイアウト オブジェクトで Layout.request-draw-child を呼び出すことで、Graphic の境界ボックス全体の再描画を要求するというものです。

プログラミング注意事項

このオブジェクトのピクセルの再ペイントが必要になる何らかの理由があったとき、このメソッドが呼び出されます。このような状況が発生するのは、オブジェクトが初めて表示されるとき、ビューから削除されるとき、移動やサイズ変更が行なわれるとき (この場合、移動やサイズ変更の前と後でこのメソッドを呼び出す必要があります) などがあります。

オーバーライド

既定の定義 Graphic.request-draw はほとんどの目的に対応していますが、オブジェクトで実際にペイントされないピクセルが境界ボックスに多数ある場合はこのメソッドをオーバーライドして、より正確に計算する Graphic.request-draw-rect の呼び出しまたはそのセットを起動します。


request-draw-rect (メソッド)
public {ShapeBox.request-draw-rect
rect:GRect,
layout-context:LayoutContext = {self.get-layout-context}
}:void

指定した GRect を再描画するためにピクセルを要求します。

rect: 再描画する領域を記述する GRect
layout-context: 操作の実行に使用される LayoutContext を提供するオプションのパラメータ。このパラメータが提供されない場合、Graphic.get-layout-context を呼び出して LayoutContext を取得します。

プログラミング注意事項

このメソッドは、通常 Graphic.request-draw から呼び出されますが、Graphic の一部を再ペイントする必要があるときには常に呼び出すことができます。このメソッドを呼び出した後に、このオブジェクトの Graphic.draw メソッドが呼び出されて、影響する領域が再描画されることがあります(影響する領域が可視でない場合、Graphic.draw の呼び出しを省略できます)。

注意事項

このメソッドは、この Graphic のレイアウト オブジェクトで Layout.request-draw-rect を呼び出すことにより処理を行います。

オーバーライド

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


request-pointer-trace (メソッド)
public {ShapeBox.request-pointer-trace}:void

表示されたオブジェクトの幾何形状が変更されていることを宣言し、必要な PointerCrossing イベントの発生を要求します。

説明

要求は、このオブジェクトのグラフィック階層のルートに到達するまでグラフィカルな祖先のチェイン上を転送されていきます。このルートが View で、ポインタがその View 内にある場合、PointerNonevent を含む PointerEnvelopeEvent が発生し、必要な PointerCrossing イベントの生成を引き起こします。

オーバーライド

ポイント (x,y) を含む子オブジェクトの識別に (x,y) の位置をマップする、キャッシュされた状態を格納する SequenceBox のようなサブクラスによってオーバーライドできます。こうした状態はリセットして、グラフィック階層のオブジェクトの幾何形状が変更されても新しい PointerEnvelopeEvent が適切に送信されるようにします。このメソッドをオーバーライドする場合、オーバーライド メソッドには以下の呼び出しを含めます。

{super.request-pointer-trace}


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

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

説明

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

プログラミング注意事項

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

オーバーライド

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


shape-container-pick-child (メソッド)
public {ShapeBox.shape-container-pick-child}:(result:#EventForwarder, local-x:Distance, local-y:Distance )

指定された点 (x, y) を覆う ShapeContainerBase の子を選択します。

x, y: 点の座標。

戻り値

この点を覆う子。該当する子がない場合は NULL を返します。

プログラミング注意事項

このメソッドは、PointerEvent を転送する場合やその他の類似の状況で使用されます。

注意事項

このメソッドの実装では、xy の最新の値を、これらの値について返された答えと合わせてキャッシュすることが推奨されます。このメソッドはたいてい同じ入力で連続して複数回呼び出されるからです。