Canvas (クラス)
public Canvas {inherits ShapeBox, AntialiasMixin}
インポート元: CURL.GUI.STANDARD. package 内で定義されています CURL.GUI.SHAPES.
直接継承しているサブクラス: ScrollbarChannel, SliderPanel, SimpleEditableCanvas

四角形の領域に配置されたグラフィック オブジェクトを表示します。

説明

Canvas は (x,y) 座標で指定されたオブジェクトのコレクションを表示するために使用されます。オブジェクトは重ねることができます。その場合、既定では、最も後に追加されたオブジェクトが一番上になる順番で描画されます。この順番は Canvas.add のキーワード引数を使用することで変更することができます。
Canvas のサイズを指定するには width と height プロパティを使用します。それらの既定値は 2in です。
CanvasGraphicShape オブジェクトを表示することができます。Shape は常に最後に描画されます。よって重なっている Graphic の一番上に表示されます。GraphicShape オブジェクトの中に含まれている Graphics は、このルールの例外であり、GraphicShape と同じタイミングで描画されます。例えば Shape が最後になる既定とは異なった順番で描画するために GraphicShape を使用することができます。
GraphicShape の子は、独自の順番とインデックスを持つことに注意してください。index キーワードを使用する時、描画は別として上記は Canvas.add に影響します。また、Canvas.set-child-index にも影響します。詳細は Canvas.add を参照して下さい。

注意事項

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

次の例は、Canvas を作成し、それに複数のアイテムを追加する方法を示しています。


{value
    let c:Canvas =
        {Canvas background="lime", width=10cm, height=5cm}
    {c.add {bold Words}, x=1.5cm, y=1cm}
    {c.add {bold font-size=48, color="cyan",
               Big Words}, x=2cm, y=2.5cm}
    {c.add 1776, x=3.5cm, y=2.5cm}
    {c.add {CommandButton label="Press me!"}, x=7.25cm, y=1.75cm}
    {c.add
        {TextField value="Hello"}, x=1cm, y=4cm}
    {c.add
        {VBox background="yellow", "abcdefg", "ABCDEFG"},
        x=5cm,
        y=2cm,
        index="first"}
    c
}

コンストラクタ
clone-appearance-from:新規オブジェクトを生成するためのコンストラクタ。
コンストラクタ protected {Canvas.clone-appearance-from
other:Canvas,
fixup:#{proc-type {Visual, Visual}:Visual}
}
default:新しい Canvas を初期化します。
コンストラクタ public {Canvas.default
resize-action:#{proc-type {Canvas}:void} = null,
display-context-change-action:#{proc-type {Canvas}:void} = null,
factor:AntialiasFactor = AntialiasFactor.off,
use-host-rendering?:bool = true,
support-advanced-draw-operations?:bool = false,
...
}

プロパティ
actual-height:Canvas の現在の高さを距離として示したものです。
フィールド public Canvas.actual-height:Distance
actual-width:Canvas の現在の幅を距離として示したものです。
フィールド public Canvas.actual-width:Distance
clip-child-shadows?:この box の子の影がこの box の目に見える境界の外に描画されるかどうかを規定します。
アクセサ public Canvas.clip-child-shadows?:bool
clonable-class?:当該クラスがクローン化可能である場合は、true を返します。その他の場合は false を返します。
アクセサ protected Canvas.clonable-class?:bool
points-per-pixel:この Canvas のピクセル サイズを距離として表したものです。
フィールド public Canvas.points-per-pixel:Distance
style-element:スタイリングの目的のための、この Visual の "要素" や "型" です。
アクセサ public Canvas.style-element:String
プロパティ 継承 ShapeBox: as-Box, display-context
プロパティ 継承 AntialiasMixin: actual-oversample-factor, factor, layout-context, support-advanced-draw-operations?, use-host-rendering?
プロパティ 継承 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
プロパティ 継承 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
プロパティ 継承 ShapeContainerBase: as-Shape, shape-children
プロパティ 継承 GetBoundsBox: layout-locally-valid?, layout-valid?
プロパティ 継承 DataBindingTarget: data-binding-context, data-bindings
プロパティ 継承 EventTarget: event-handlers
プロパティ 継承 OptionListInterface: options-present-here
プロパティ 継承 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

メソッド
add:Canvas に子アイテムを追加します。
public {Canvas.add child:any, ...}:#Visual
add-at-index:GraphicSequenceBox の子の配列の指定されたインデックスに挿入します。
protected {Canvas.add-at-index g:#Graphic, where:any}:void
allocate-layout-object:この Box 内に含まれる GraphicLayout オブジェクトを作成します。
protected {Canvas.allocate-layout-object}:CanvasLayout
attempt-revalidate-layout:最後のレイアウト ネゴシエーションが完了してから、Graphic のレイアウト設定が変更されたかどうかを判定します。
public {Canvas.attempt-revalidate-layout lc:LayoutContext}:bool
clone-appearance-helper:クローンを作成し、クローン自体を返します。
protected {Canvas.clone-appearance-helper
fixup:#{proc-type {Visual, Visual}:Visual}
}:Visual
clone-children:Canvas の子のクローン。
protected {Canvas.clone-children
other:Visual,
fixup:#{proc-type {Visual, Visual}:Visual}
}:void
constrain-height:指定した高さの制約を受けた場合にこの Graphic の幅設定を返します。
public {Canvas.constrain-height
lc:LayoutContext,
ascent:Distance,
descent:Distance
}:Dimension
constrain-width:指定した高さの制約を受けた場合にこの Graphic の高さ設定を返します。
public {Canvas.constrain-width
lc:LayoutContext,
lextent:Distance,
rextent:Distance
}:Dimension
draw:このオブジェクトの可視表現を描画します。
public {Canvas.draw renderer2d:Renderer2d}:void
draw-internal:AntialiasMixin の内容をレンダリングします。
protected {Canvas.draw-internal
r2d:Renderer2d,
cell-bounds:GRect,
bounds:GRect
}:void
get-anchor:Canvas 内のオブジェクトの CanvasAnchor 値を取得します。
public {Canvas.get-anchor obj:any}:CanvasAnchor
get-gui-path-to-child:指定されたBoxから、指定されたこのオブジェクトの子に向かうGUIパスを計算します。
public {Canvas.get-gui-path-to-child
child:Visual,
root:Box
}:{Array-of int}
get-height-preference:この Graphic の高さ設定を返します。
public {Canvas.get-height-preference lc:LayoutContext}:Dimension
get-width-preference:この Graphic の幅設定を返します。
public {Canvas.get-width-preference lc:LayoutContext}:Dimension
get-xy:Canvas 内のオブジェクトの座標を取得します。
public {Canvas.get-xy obj:any}:(x:Distance, y:Distance)
invalidate-shape-layout:Shape のレイアウトに関するキャッシュされた情報を無効にします。
public {Canvas.invalidate-shape-layout}:void
move-to-xy:Canvas 内のオブジェクトを移動します。
public {Canvas.move-to-xy obj:any, x:any, y:any}:void
option-changed:このオブジェクトにオプションの値が変更したことを通知します。
public {Canvas.option-changed key:String, value:any}:void
set-anchor:Canvas 内のオブジェクトの CanvasAnchor 値を設定します。
public {Canvas.set-anchor obj:any, new-anchor:CanvasAnchor}:void
set-child-index:このオブジェクトのグラフィカルな子の描画順序を調整します。
public {Canvas.set-child-index child:any, new-index:int}:void
set-child-index-after:このオブジェクトのグラフィカルな子の描画順序を調整します。
public {Canvas.set-child-index-after child:any, after:any}:void
set-child-index-before:このオブジェクトのグラフィカルな子の描画順序を調整します。
public {Canvas.set-child-index-before child:any, before:any}:void
set-size:このオブジェクトにレイアウト幅と高さを代入します。
public {Canvas.set-size lc:LayoutContext, bounds:GRect}:void
shift-xy:Canvas 内のオブジェクトを移動します。
public {Canvas.shift-xy obj:any, deltax:any, deltay:any}:void
size-changed:Canvas のサイズが変更されたときに通知を送ります。
public {Canvas.size-changed}:void
メソッド 継承 ShapeBox: add-shape-graphic-child, after-reposition, before-reposition, clear, get-current-draw-transformation, handle-crossing, note-attached, note-detaching, notify-option-children, on-drag-enter, on-pointer-enter, on-pointer-envelope-event, pick-child, register-options, request-draw, request-draw-rect, request-pointer-trace, shape-container-pick-child
メソッド 継承 AntialiasMixin: draw-antialiased, option-lookup, propagate-option-change, set-antialiased-size, set-antialiased-size-in-pixels
メソッド 継承 SequenceBox: add-at-index-with-layout, compare-children, end-pagination, find, graphical-child-visible-at, internal-remove-child, propagate-request-layout, swap-children, validate-layout-sequence-numbers
メソッド 継承 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
メソッド 継承 BasicBox: contains-point?, find-graphic-at, pointer-enter-occurred, pointer-leave-occurred
メソッド 継承 ShapeContainerBase: 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
メソッド 継承 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
メソッド 継承 GetBoundsBox: get-bounds, get-elastic-bounds-into, get-nonparent-bounds-into, request-layout, validate-layout
メソッド 継承 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
メソッド 継承 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
メソッド 継承 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-here, option-propagate-notify, option-set?, 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
メソッド 継承 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, paginate, paint-with-decorations, replace-with, search-next, search-prev, set-layout, start-pagination, xy-offset-to
メソッド 継承 InitRestArgParser: process-rest-args
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize



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

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

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

説明

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


default (コンストラクタ)
public {Canvas.default
resize-action:#{proc-type {Canvas}:void} = null,
display-context-change-action:#{proc-type {Canvas}:void} = null,
factor:AntialiasFactor = AntialiasFactor.off,
use-host-rendering?:bool = true,
support-advanced-draw-operations?:bool = false,
...
}

新しい Canvas を初期化します。

resize-action: Canavas のサイズが変更されるときに呼び出されるオプション プロシージャ。
display-context-change-action: 表示コンテキストが変更されるたびに呼び出されるオプション プロシージャ。新しい表示コンテキストが NULL の場合は除きます。
factor: Canvas のコンテンツに対して実行されるアンチエイリアス処理の程度を示す AntialiasFactor 値。詳細については、AntialiasMixin を参照してください。
use-host-rendering?: 含まれているグラフィックに対して標準ホスト レンダラを使用するかどうかを決定します。詳細については、AntialiasMixin.use-host-rendering? を参照してください。
support-advanced-draw-operations?: 含まれているグラフィックの描画に使用されるレンダラが高度な DrawOperation をサポートするかどうかを決定します。詳細については、AntialiasMixin.use-host-rendering? を参照してください。
...: 残りの引数は、基本クラスのコンストラクタに渡されます。



プロパティ詳細
actual-height (フィールド)
public Canvas.actual-height:Distance

Canvas の現在の高さを距離として示したものです。

説明

このフィールドは、(Canvas.set-size の呼び出しによって) Canvas にそのサイズ変更が通知されるたびに更新されます。 Canvas.size-changed も参照してください。

プログラミング注意事項

このフィールドは記述しないでください。 これは、子オブジェクトによる読み取り用にのみ用意されています。


actual-width (フィールド)
public Canvas.actual-width:Distance

Canvas の現在の幅を距離として示したものです。

説明

このフィールドは、(Canvas.set-size の呼び出しによって) Canvas にそのサイズ変更が通知されるたびに更新されます。 Canvas.size-changed も参照してください。

プログラミング注意事項

このフィールドは記述しないでください。 これは、子オブジェクトによる読み取り用にのみ用意されています。


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

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

注意事項

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


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

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

オーバーライド

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


points-per-pixel (フィールド)
public Canvas.points-per-pixel:Distance

この Canvas のピクセル サイズを距離として表したものです。

説明

このフィールドは、CanvasDisplayContext が変更されるたびに更新されます。

プログラミング注意事項

このフィールドは記述しないでください。 これは、子オブジェクトによる読み取り用にのみ用意されています。


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

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

説明

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

オーバーライド

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





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

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

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

Canvas では、オブジェクトが指定した位置に配置されるので、Canvas の幅より長いテキスト部分を追加するとクリッピングされます。
...: 必要に応じて次の任意のキーワード引数を指定することができます。

説明

このメソッドは GraphicShape のどちらかをこの Canvas に追加することができます。
追加されたオブジェクトの基点は以下の様になります。
  • この Canvas の左上隅
  • x=y= キーワード引数を使用してこの Canvas 上の 指定されたポイント
Graphic においてこれは outside origin と同等になり、Shape においては、Shape の座標システムの基点となります。また、Shape.default コンストラクタを使用するか、Shape.apply-translationShape.apply-rotation メソッドを使用することによって直接 Shape の変換を操作することで Shape の位置を操作することができます。x=y= が指定されている場合、それらは追加された Shape のどのような変換も置き換えられます。
既に存在している子と関連する新しい子の順番を指定するために index キーワードを使用している場合、GraphicShape は 0 で始まる依存しない順番を持っています。例えば、Canvas に既に 2 つの RectangleGraphic と 3 つの TextShape が追加されていることを考えます。もし、index を指定し次に Graphic を追加した場合、index は 0 以上で 2 以下でなければなりません。同様に Shape を追加した場合、index は 0 以上で 3 以下でなければなりません。この条件が破られた場合、エラーがスローされます。(全ての Shape の子は常に Graphic の子全てを描画した後で描画されることに注意してください。GraphicShape の中に Graphic が入っている場合の例外を除きます。それらは GraphicShape が描画された時に描画されます。)

戻り値

追加された実際のオブジェクト。このオブジェクトのタイプは、Graphic のサブタイプか、Shape のサブタイプのいずれかです。

オーバーライド

子の追加において、さらに別の処理を関連付けるため、このメソッドは、Canvas のサブクラスによってオーバーライドされる可能性があります。この種のオーバーライド メソッドは、以下を呼び出す必要があります。

{super.add child, ...}

これで、Canvas 自体の追加アクションを呼び出して、提供された任意のキーワード引数を渡します。


add-at-index (メソッド)
protected {Canvas.add-at-index g:#Graphic, where:any}:void

GraphicSequenceBox の子の配列の指定されたインデックスに挿入します。

g: 追加する Graphic
where: この Graphic に対応する Layout が挿入される SequenceBox.child-array 内の場所。where の有効値は、"default"、"last"、"first"、または SequenceBox.child-array のサイズ以下の整数値です。これ以外の場合は、エラーが発生します。

where が "default" または "last" の場合、gSequenceBox.child-array の終わりに追加されます。"first" の場合、g は上記の配列の最初の位置に挿入されます。

注意事項

このメソッドは SequenceBox.allocate-layout-object を呼び出し、Layout オブジェクトを割り当てます。Graphic g は次にこの Layout に関連付けられます。


allocate-layout-object (メソッド)
protected {Canvas.allocate-layout-object}:CanvasLayout

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

戻り値

新しい Layout


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


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

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

オーバーライド

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


clone-children (メソッド)
protected {Canvas.clone-children
other:Visual,
fixup:#{proc-type {Visual, Visual}:Visual}
}:void

Canvas の子のクローン。

other: クローン化するための VisualotherCanvas 型でなければなりません。そうでない場合、エラーとなります。
fixup:
other が子を保持する場合、子のクローンを作成する時に fixupVisual.clone-appearance に渡されます。
このプロシージャは二つの引数と共に呼び出されます。元のオブジェクトと clone-appearance のメカニズムによって生成されたコピーオブジェクトです。このプロシージャによって返された値はクローンとして使用されます。このプロシージャはコピーするオブジェクトに修正を加えて返すことができます。このプロシージャが null を返すことはできません。

説明

このメソッドは other の子どもをクローン化し、それと関連づいている位置情報を持ったままそれらを追加します。サブクラスは子どものクローンを作成するために追加情報を必要とするためにこの機能を使用することができます。または、自身の実装を提供するためにオーバーライドすることができます。通常、clone-apperance-from コンストラクタから呼び出される Canvas.clone-children は以下のようになります。
{if {type-of self} == {compile-time-type-of self} then
    {self.clone-children other, fixup}
}

注意事項

この機能は、全てのスーパークラスが完全に作成された後にのみ呼ばれるべきです。


constrain-height (メソッド)
public {Canvas.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 {Canvas.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 {Canvas.draw renderer2d:Renderer2d}:void

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

説明

このメソッドは、単純に AntialiasMixin.draw-antialiased を呼び出します。このオブジェクトの描画をオーバーライドする場合は、通常は Canvas.draw ではなく Canvas.draw-internal をオーバーライドする必要があります。


draw-internal (メソッド)
protected {Canvas.draw-internal
r2d:Renderer2d,
cell-bounds:GRect,
bounds:GRect
}:void

AntialiasMixin の内容をレンダリングします。

renderer2d: この AntialiasMixin と関連したオフスクリーン Drawable にレンダリングする Renderer2d
cell-bounds: AntialiasMixin.draw-antialiased に渡される、このオブジェクトのセル境界。
bounds: AntialiasMixin.draw-antialiased に渡される、このオブジェクトの境界。

説明

AntialiasMixin の実装は、このメソッドをオーバーライドするものでなければなりません。renderer2d を使用して描画されたものは、アンチエイリアス処理されたように表示されます。このクラスの通常の実装 (AntialiasedFrameCanvas など) では、その子を描画するようにこのメソッドが実装されます。
通常の実装では、その draw メソッド内でこのメソッドが呼び出されるだけで、それ以上ことは行われません。アンチエイリアス処理を活用したいレンダリング操作は、すべて AntialiasMixin.draw-internal 内で行う必要があります。

注意事項

renderer2d は、常にオフスクリーン レンダラであるとは限りません。印刷時には、このメソッドが通常レンダラ内で直接呼び出されます。
オフスクリーン領域は、AntialiasMixin.draw-antialiased メソッドに渡される clear-color パラメータに従ってクリアされます。Background オブジェクトを (例えば、Graphic.background オプションから) 適用したい場合は、与えられた Renderer2d 内で Background.draw メソッドを呼び出します。


get-anchor (メソッド)
public {Canvas.get-anchor obj:any}:CanvasAnchor

Canvas 内のオブジェクトの CanvasAnchor 値を取得します。

obj: オブジェクト。これは、Canvas の子である Graphic か、Graphic などのレイアウト オブジェクトでなければなりません。

戻り値

この Canvas 内のオブジェクト obj に関連付けられた CanvasAnchor の値。


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

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

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

戻り値

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

オーバーライド

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

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


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

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

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

戻り値

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

オーバーライド

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

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


get-xy (メソッド)
public {Canvas.get-xy obj:any}:(x:Distance, y:Distance)

Canvas 内のオブジェクトの座標を取得します。

obj: オブジェクト。これは、Canvas の子である Graphic か、Graphic などのレイアウト オブジェクトでなければなりません。

戻り値

このオブジェクトの外側起点に関する Canvas の座標フレーム内のオブジェクト obj の座標。


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

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

説明

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


move-to-xy (メソッド)
public {Canvas.move-to-xy obj:any, x:any, y:any}:void

Canvas 内のオブジェクトを移動します。

obj: 移動されるオブジェクト。これは、Canvas の子である Graphic、または Graphic などのレイアウト オブジェクトでなければなりません。
x, y: Canvas の座標フレーム内のポイントの座標。ここに、obj外側起点を移動します。

注意事項

Canvas.shift-xy および Canvas.add も参照してください。


option-changed (メソッド)
public {Canvas.option-changed key:String, value:any}:void

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

key: 値が変更されたオプションの名前を指定する String
value: 新しい値。オプションが削除されている場合、新しい値は "no value" となりますが、value には特別な値 unbound-option を指定します。このメソッド内のコードは、unbound-option? プロシージャを呼び出して、この値が存在するかどうかを確認する必要があります。option-value プロシージャの使用も、この値の処理に有益です。

プログラミング注意事項

オプションが (a) ローカル オプションの場合、あるいは (b) 非ローカル オプションで、このオプションに対してオブジェクトが option-change ハンドラ プロシージャを宣言している場合、オプションの値がバインド、変更、またはバインド解除されるたびにオプション パッケージはこのメソッドを一度呼び出します。

オーバーライド

既定の実装 OptionListInterface.option-changed では何も行われません。サブクラスでは、key がサブクラスの実装に関連するオプション名であるかどうかをテストした後、このメソッドをオーバーライドして、{super.option-changed key, value} を呼び出す必要があります。


set-anchor (メソッド)
public {Canvas.set-anchor obj:any, new-anchor:CanvasAnchor}:void

Canvas 内のオブジェクトの CanvasAnchor 値を設定します。

obj: オブジェクト。これは、Canvas の子である Graphic か、Graphic などのレイアウト オブジェクトでなければなりません。
new-anchor: 新規の CanvasAnchor 値。


set-child-index (メソッド)
public {Canvas.set-child-index child:any, new-index:int}:void

このオブジェクトのグラフィカルな子の描画順序を調整します。

説明

child は、このオブジェクトの子の配列内で、新しいインデックスが new-index になるように移動されます。

注意事項

このメソッドは 子の Graphic をレンダリングするためにのみ便利です。Shape オブジェクトは Canvas.set-shape-indexCanvas.set-shape-index-afterCanvas.set-shape-index-before を使用して再編成されます。
GraphicShape は 0 から始まる依存しない順番を持つことに注意してください。new-index は 0 以上で Canvas に含まれる Graphic の数以下でなければなりません。この条件が破られた場合、エラーがスローされます。


set-child-index-after (メソッド)
public {Canvas.set-child-index-after child:any, after:any}:void

このオブジェクトのグラフィカルな子の描画順序を調整します。

説明

child は、このオブジェクトの子の配列内で after の直後に移動されます。

注意事項

このメソッドは、子 Graphic を再配列する場合にのみ役立ちます。Shape オブジェクトは、Canvas.set-shape-indexCanvas.set-shape-index-after、および Canvas.set-shape-index-before を使用して再配列できます。GraphicShape の順序付けはそれぞれ独立していますが、両方ともゼロから始まります。


set-child-index-before (メソッド)
public {Canvas.set-child-index-before child:any, before:any}:void

このオブジェクトのグラフィカルな子の描画順序を調整します。

説明

child は、このオブジェクトの子の配列内で before の直前に移動されます。

注意事項

このメソッドは、子 Graphic を再配列する場合にのみ役立ちます。Shape オブジェクトは、Canvas.set-shape-indexCanvas.set-shape-index-after、および Canvas.set-shape-index-before を使用して再配列できます。GraphicShape の順序付けはそれぞれ独立していますが、両方ともゼロから始まります。


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

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

説明

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

プログラミング注意事項

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

オーバーライド

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


shift-xy (メソッド)
public {Canvas.shift-xy obj:any, deltax:any, deltay:any}:void

Canvas 内のオブジェクトを移動します。

obj: 移動されるオブジェクト。これは、Canvas の子である Graphic、または Graphic などのレイアウト オブジェクトでなければなりません。
deltax, deltay: obj が移動される量。deltax 値が正の場合、obj は右に移動されます。deltay が正の場合、obj は下に移動されます。

注意事項

Canvas.move-to-xy も参照してください。


size-changed (メソッド)
public {Canvas.size-changed}:void

Canvas のサイズが変更されたときに通知を送ります。

説明

このメソッドは、Canvas.set-size が呼び出されるたびに呼び出されて、Canvas にそのサイズが変更されていることを通知します。Canvas.actual-width フィールドおよび Canvas.actual-height フィールドは、このメソッド内のコードがこれらの 2 つのフィールドに保存された値を使用して Canvas の新しいサイズを決定できるように、Canvas.size-changed の呼び出しの前に更新されます。これらの 2 つのフィールドが変更されるのは、直後に Canvas.size-changed が呼び出される場合だけです。

オーバーライド

Canvas がサイズを変更したときに必要になる、Canvas の内容の再配列などを実行する Canvas サブクラスで、このメソッドをオーバーライドします。