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

グラフィック階層のルートとして使用されます。

説明

RootFrame は、ディスプレイ画面にウィンドウを実装する View 、ならびに Curl グラフィックをプリンタに送信するために使用する PrintRootFrame のスーパークラスとして機能します。

したがって、RootFrame には、グラフィック階層のルートにあるオブジェクトで使用することができ、グラフィックの表示や印刷とは関係ないすべてのメソッドが含まれています。

コンストラクタ
default:RootFrame オブジェクトを作成します。
コンストラクタ public {RootFrame.default ...}

プロパティ
background:グラフィカル オブジェクトの背景色または背景パターン。
ローカル オプション public RootFrame.background:Background
bounds:RootFrame の境界。
フィールド protected RootFrame.bounds:GRect ={GRect 0pt, 0pt, 0pt, 0pt}
cached-background:このオブジェクトの Graphic.background のキャッシュ コピー。
アクセサ protected RootFrame.cached-background:Background
changing-size?:RootFrame が、サイズの変更中であることを示します。
フィールド protected RootFrame.changing-size?:bool =false
height:Graphic の高さ設定。
ローカル オプション public RootFrame.height:any
option-parent:オブジェクトのオプションの親を返します。
アクセサ public RootFrame.option-parent:#GraphicOptions
pref-option-parent:RootFrame.option-parent のキャッシュ値。
フィールド protected RootFrame.pref-option-parent:#PrefOptionParent
width:Graphic の幅設定。
ローカル オプション public RootFrame.width:any
x:RootFrameDrawable の左上隅から起点までのオフセット。
フィールド public-get protected-set RootFrame.x:Distance
y:RootFrameDrawable の左上隅から起点までのオフセット。
フィールド public-get protected-set RootFrame.y:Distance
プロパティ 継承 Frame: clonable-class?, halign, halign-spec, hstretch?, hstretch?-spec, style-element, valign, valign-spec, vstretch?, vstretch?-spec
プロパティ 継承 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?, 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, horigin, is-paginating?, layout, margin, opaque-to-events?, outside-margin, pagination-state, parent, possibly-displayed?, selection-context, shadow-color, shadow-spec, visible?, visual-parent, vorigin
プロパティ 継承 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

メソッド
change-height:高さ指定の変更を処理します。
protected {RootFrame.change-height hspec:any}:void
change-width:幅指定の変更を処理します。
protected {RootFrame.change-width wspec:any}:void
compute-default-bounds:レイアウト ネゴシエーションが成功するまでこれを繰り返し実行します。
protected {RootFrame.compute-default-bounds}:void
compute-default-bounds-recur:レイアウト ネゴシエーションが成功するまでこれを繰り返し実行します。
protected {RootFrame.compute-default-bounds-recur}:void
compute-initial-size:RootFrame の初期サイズを設定します。
protected {RootFrame.compute-initial-size}:void
fire-event-in-envelope:e を含む PointerEnvelopeEvent を作成し、この RootFrame で発生させます。GuiEvent.consumed? フラグの値を返します。

これにより、イベント座標をオブジェクトの起点に合わせて調整し、最も内側で最上位の Visual に、イベント e を送信します。
protected {RootFrame.fire-event-in-envelope e:PointerEvent}:bool
get-bounds:RootFrame の境界を返します。
public {RootFrame.get-bounds}:GRect
get-elastic-bounds-into:レイアウト ネゴシエーションを行い、その結果を GRect に格納します。
protected {RootFrame.get-elastic-bounds-into}:void
get-layout-context:このオブジェクトの現在の LayoutContext を返します。
public {RootFrame.get-layout-context}:LayoutContext
get-nonparent-bounds-into:レイアウト ネゴシエーションを行い、その結果を GRect に格納します。
protected {RootFrame.get-nonparent-bounds-into gr:GRect}:void
get-top-left-in-ancestor:グラフィック階層に含まれる指定上位オブジェクトの座標フレームでこのオブジェクトの左上隅のロケーションを見つけます。
public {RootFrame.get-top-left-in-ancestor
ancestor:Graphic
}:(x:Distance, y:Distance, found?:bool)
get-visible-bounds-into:オブジェクトの実際の可視領域の境界ボックスを計算します。
public {RootFrame.get-visible-bounds-into grect:GRect}:void
get-visible-rect-in-root-into:この Box ボックスを含むウィンドウに表示されている四角形の一部を決定します。
public {RootFrame.get-visible-rect-in-root-into
rect:GRect
}:(Distance, Distance)
propagate-request-layout:Box からそのグラフィカルな親 (存在する場合) に新しいレイアウト ネゴシエーションの要求を伝播します。
public {RootFrame.propagate-request-layout epoch:int}:void
request-draw:描画する Graphic に属するピクセルを確認します。
public {RootFrame.request-draw
layout-context:LayoutContext = {self.get-layout-context}
}:void
request-draw-rect:指定した GRect を再描画するためにピクセルを要求します。
public {RootFrame.request-draw-rect
rect:GRect,
layout-context:LayoutContext = {self.get-layout-context}
}:void
request-draw-rect-in-root:RootFrame の座標系にすでに存在する GRect によって記述される領域の再ペイント処理を要求します。
public abstract {RootFrame.request-draw-rect-in-root rect:GRect}:void
request-pointer-trace:表示されたオブジェクトの幾何形状が変更されていることを宣言し、必要な PointerCrossing イベントの発生を要求します。
public abstract {RootFrame.request-pointer-trace}:void
set-layout:Graphic のレイアウト オブジェクトを設定します。
public {RootFrame.set-layout l:#Layout}:void
set-size-from-child:ウィンドウの内容のサイズ設定に基づき、指定されたとおりに調整してウィンドウのサイズを指定します。
public {RootFrame.set-size-from-child
wspec:any = null,
hspec:any = null
}:void
validate-layout:Box のレイアウトを有効にします。
public {RootFrame.validate-layout}:void
validate-layout-recur:レイアウト ネゴシエーションが成功するまでこれを実行します。
protected {RootFrame.validate-layout-recur
try-revalidate?:bool = false
}:void
メソッド 継承 Frame: add, clone-appearance-helper, remove-child
メソッド 継承 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, register-options, set-size
メソッド 継承 BasicBox: contains-point?, find-graphic-at, handle-crossing, on-pointer-envelope-event, pointer-enter-occurred, pointer-leave-occurred
メソッド 継承 GetBoundsBox: request-layout
メソッド 継承 Box: clear, compare-children, find-test-children, get-delimited-child-text-selection, get-gui-path-to-child, get-range-as-selected-text, 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, on-drag-enter, on-inspection, on-pointer-enter, option-changed, paint-with-decorations, replace-with, search-next, search-prev, start-pagination, xy-offset-to
メソッド 継承 Visual: add-from-init-args, animate, change-cursor, clonable-appearance?, clone-appearance, get-focus-manager, 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 {RootFrame.default ...}

RootFrame オブジェクトを作成します。




プロパティ詳細
background (ローカル オプション)
public RootFrame.background:Background

グラフィカル オブジェクトの背景色または背景パターン。

説明

グラフィカル オブジェクトの背景色または背景パターンを、"red" などの FillPattern に自動変換する BackgroundFillPattern、 または String に設定します。


例: 背景を文字列に設定
{CheckButton
    label="Check here if you like my background",
    background="lime"
}



例: 背景を Background オブジェクトに設定
{Fill
    width = 2cm,
    height = 2cm,
    background =
        {Background
            {url "curl://install/docs/default/images/grass.jpg"}
        }
}

注意事項

背景を Observable でもある FillPattern アニメーションに設定すると、必要に応じて Graphic がそれ自体を再描画するように FillPattern が登録されます。

ただし、よりシンプルな call-back メカニズムによって背景を NotifyingFillPattern に設定した場合もこのような処理が行われるので注意してください。


bounds (フィールド)
protected RootFrame.bounds:GRect ={GRect 0pt, 0pt, 0pt, 0pt}

RootFrame の境界。

説明

ほとんどの Graphic は、その境界を保持する関連 Layout オブジェクトを持っています。ただし、RootFrame には親がないので Layout がありません。

値は、RootFrame の既定の境界を計算する際、または幅または高さの指定を変更する際に設定されます。


cached-background (アクセサ)
アクセサ protected RootFrame.cached-background:Background

このオブジェクトの Graphic.background のキャッシュ コピー。



changing-size? (フィールド)
protected RootFrame.changing-size?:bool =false

RootFrame が、サイズの変更中であることを示します。

プログラミング注意事項

この値が true の場合、RootFrame.width および RootFrame.height オプションの変更は無視されます。これは、無限ループの発生を回避するためです。

詳細については、View.set-view-size-options を参照してください。


height (ローカル オプション)
public RootFrame.height:any

Graphic の高さ設定。

説明

詳細については Graphic.width を参照してください。


option-parent (アクセサ)
アクセサ public RootFrame.option-parent:#GraphicOptions

オブジェクトのオプションの親を返します。

戻り値

このオブジェクトのオプションの親である OptionListInterface。ただし、このオブジェクトがオプションの親を持たない場合は、null になります。

オーバーライド

既定の実装 OptionListInterface.option-parent は常に null を返します。サブクラスでは、通常は super.option-parent は呼び出さずに、適切な値を返すコードでこのメソッドをオーバーライドします。


pref-option-parent (フィールド)
protected RootFrame.pref-option-parent:#PrefOptionParent

RootFrame.option-parent のキャッシュ値。



width (ローカル オプション)
public RootFrame.width:any

Graphic の幅設定。

説明

次の情報は、width および height オプションに適用します。

このオプションは、この Graphicコンテナが、レイアウト ネゴシエーション中にこの Graphic の幅または高さ設定として受け取る値を記述します。このオプションは、そのオブジェクト自体Graphic.get-width-preference メソッドによって返された値 (本来の幅設定) に必ずしも一致しません。

このオプションには、次の型の値を指定できます。

プロシージャを除き、指定した値は、幅または高さ設定の記述に使用される前に、内部レイアウト ルーチンによって OriginElastic に変換されます。OriginElastic およびレイアウト システムでの使用方法の詳細については、「エラスティックスとページ レイアウト」の章を参照してください。以下は、幅または高さ設定を OriginElastic に変換する場合に注意する点です。



次のプロシージャが、

{proc {g:Graphic, e:OriginElastic}:OriginElastic ...}

width オプションまたは height オプションの値として指定されると、対応するサイズ設定 (幅または高さ) の計算が必要になるたびにこのプロシージャが呼び出されます。g はオプションを設定した Graphic になり、eg の本来のサイズ設定です。さらに、プロシージャの戻り値は e で置き換えられるサイズ設定になります。

width または height オプションのこの特徴が使用されるほとんどの状況で、 add-stretch プロシージャを呼び出して必要なプロシージャを作成することができます。詳細については、 add-stretch を参照してください。

幅と高さをさまざまに変えて指定した例を次に示します。


{HBox width = 4in,
    valign = "bottom",
    {Frame
        background = "pink",
        height = {add-stretch},
        {RectangleGraphic
            width = 1.2in,
            height = {make-elastic
                         preferred-size = 14pt,
                         stretch-order = rigid-stretch-order
                     }
        }
    },
    {Fill width = 5mm},
    {Frame
        background = "blue",
        color = "white",
        width = 48pt,
        height = 40pixel,
        "Hi there"
    }
}


次の例は、幅と高さの指定を整数ピクセルに丸めた結果を示しています(画面のピクセル サイズ設定により 3 つの行が一列に表示されている場合、変数 w の値をピクセル サイズの倍数とはまったく異なる値に変更してください)。


{value
    let w:Distance = 4.0pt
    let num-rects:int = 50
    let rounded:HBox = {HBox}
    let unrounded:HBox = {HBox}
    {for i:int =
        0 below num-rects do
        {rounded.add
            {RectangleGraphic height = 15pt, width = w}
        }
        {unrounded.add
            {RectangleGraphic
                height = 15pt,
                width = {make-elastic
                            preferred-size = w,
                            stretch-order =
                                rigid-stretch-order
                        }
            }
        }
    }
    {VBox
        rounded,
        unrounded,
        {RectangleGraphic
            height = 15pt,
            width = {make-elastic
                        preferred-size = w * num-rects,
                        stretch-order =
                            rigid-stretch-order
                    }
        }
    }
}


1 行目の各四角形は、その幅が同じピクセル値に丸められているため画面上では揃って見えます。ただし、Graphic のコレクションの幅を指定寸法の正確な合計に合わせる場合は、2 番目の行を生成するのに使用したスタイルを使用する必要があります。


x (フィールド)
public-get protected-set RootFrame.x:Distance

RootFrameDrawable の左上隅から起点までのオフセット。



y (フィールド)
public-get protected-set RootFrame.y:Distance

RootFrameDrawable の左上隅から起点までのオフセット。






メソッド詳細
change-height (メソッド)
protected {RootFrame.change-height hspec:any}:void

高さ指定の変更を処理します。

hspec: 新しい高さ指定。

プログラミング注意事項

このメソッドは、RootFrame.height オプション変更ハンドラから呼び出されます。通常、ユーザーはこれを直接呼び出す必要はありません。

オーバーライド

サブクラスは、通常オーバーライドで super.change-height を呼び出す必要があります。


change-width (メソッド)
protected {RootFrame.change-width wspec:any}:void

幅指定の変更を処理します。

wspec: 新しい幅指定。

プログラミング注意事項

このメソッドは、RootFrame.width オプション変更ハンドラから呼び出されます。通常、ユーザーはこれを直接呼び出す必要はありません。

オーバーライド

サブクラスは、通常オーバーライドで super.change-width を呼び出す必要があります。


compute-default-bounds (メソッド)
protected {RootFrame.compute-default-bounds}:void

レイアウト ネゴシエーションが成功するまでこれを繰り返し実行します。

説明

レイアウト ネゴシエーションが実行された回数を示すカウントを初期化し、self.compute-default-bounds-recur を呼び出します。

プログラミング注意事項

通常このメソッドが呼び出されるのはオブジェクトの初期化中のみで、外部から強制されたサイズの制約に基づくレイアウトではなく、本来のサイズ 設定に基づくサイズを確認する必要がある場合です。


compute-default-bounds-recur (メソッド)
protected {RootFrame.compute-default-bounds-recur}:void

レイアウト ネゴシエーションが成功するまでこれを繰り返し実行します。

説明

レイアウト ネゴシエーションが成功するまで、self.get-elastic-bounds-into を呼び出してこれを繰り返し実行します。

self が子オブジェクトを持たない場合、3in x 2in のサイズが任意に選択されます。

プログラミング注意事項

このメソッドは、直接呼び出さないでください。代わりに RootFrame.compute-default-bounds を呼び出します。このメソッドは、RootFrame.compute-default-bounds の実装からのみ呼び出してください。


compute-initial-size (メソッド)
protected {RootFrame.compute-initial-size}:void

RootFrame の初期サイズを設定します。

プログラミング注意事項

RootFrame.default を呼び出した後で、RootFrame を使用する前にこのメソッドを呼び出します。このメソッドは、RootFrame.default から分割されていますが、これにより RootFrame のサブクラスは construct-super の呼び出しと、このメソッドの呼び出しの間になんらかの処理をつなぎ合わせることができます。通常このような処理では、サイズを計算する前に RootFrame が存在する環境を詳細に設定します。このような設定の例として、埋め込みのグラフィックのサイズに適用されるオプション値を指定するオプション親に RootFrame をアタッチする場合があります。


fire-event-in-envelope (メソッド)
protected {RootFrame.fire-event-in-envelope e:PointerEvent}:bool

e を含む PointerEnvelopeEvent を作成し、この RootFrame で発生させます。GuiEvent.consumed? フラグの値を返します。

これにより、イベント座標をオブジェクトの起点に合わせて調整し、最も内側で最上位の Visual に、イベント e を送信します。

e: 発生するイベント。


get-bounds (メソッド)
public {RootFrame.get-bounds}:GRect

RootFrame の境界を返します。

戻り値

境界を記述する GRect。ここから RootFrame のサイズと起点の位置が決定されます。


get-elastic-bounds-into (メソッド)
protected {RootFrame.get-elastic-bounds-into}:void

レイアウト ネゴシエーションを行い、その結果を GRect に格納します。

lc: このレイアウト ネゴシエーションに使用する LayoutContext
gr: 結果を格納する GRect

説明

このメソッドは、self に対する width-first レイアウト ネゴシエーションを次のように行います。
  1. self.get-width-preference を呼び出します。これにより、幅設定 wpref が返されます。
  2. wpref の最初の最後のコンポーネントのユーザー設定サイズを lextent 引数と rextent 引数として self.constrain-width を呼び出します。この呼び出しの結果が、高さ設定 hpref になります。
  3. hpref の最初と最後のコンポーネントのユーザー設定サイズをそれぞれオブジェクトのアセントとディセントとして使用して、self.set-size を呼び出します。
この作業の結果、self は、その実際のサイズがユーザー設定サイズになるように配置されます。

上記のメソッドの呼び出し中にレイアウトの無効化 (Graphic.request-layout の呼び出し) が発生した場合、このメソッドはレイアウト ネゴシエーションを繰り返し実行しようとはしません。したがって、get-elastic-bounds-into の呼び出し側が、レイアウトの無効化が発生したかどうかをチェックし (self.layout-valid? が true であるか false であるかを確認し)、レイアウト ネゴシエーションの再試行などの適切な復元処理を実行する必要があります。


get-layout-context (メソッド)
public {RootFrame.get-layout-context}:LayoutContext

このオブジェクトの現在の LayoutContext を返します。

戻り値

layout-context オプションの値です (そのオプションが境界の場合)。それ以外の場合、RootFrame にルートされないグラフィック階層に含まれる、レイアウトに使用可能な、新しく作成された 代役のLayoutContext を返します。

オーバーライド

ローカルにキャッシュされた、適切な LayoutContext へのポインタを保持するオブジェクトは、このメソッドをオーバーライドしてそのポインタを返すことができます。

説明

LayoutContext がダミー LayoutContext かどうかを調べるには、LayoutContext.dummy? を使います。


get-nonparent-bounds-into (メソッド)
protected {RootFrame.get-nonparent-bounds-into gr:GRect}:void

レイアウト ネゴシエーションを行い、その結果を GRect に格納します。

gr: 結果を格納する GRect

説明

このメソッドは、self.get-layout-context を呼び出すことによって LayoutContext を取得して、その取得した LayoutContextgr を引数として self.get-elastic-bounds-into を呼び出します。


get-top-left-in-ancestor (メソッド)
public {RootFrame.get-top-left-in-ancestor
ancestor:Graphic
}:(x:Distance, y:Distance, found?:bool)

グラフィック階層に含まれる指定上位オブジェクトの座標フレームでこのオブジェクトの左上隅のロケーションを見つけます。

ancestor: 対象の上位オブジェクトです。

戻り値

対象の座標、ならびに ancestorself の上位オブジェクトである場合は true に、それ以外の場合は false に指定された bool です。この bool が false の場合、返される座標には意味はありません。

オーバーライド

これは Visual のサブクラスに定義されなくてはならない抽象メソッドです。

注意事項

レイアウトが現在有効ではないオブジェクトでの、このメソッドの呼び出しについては、Layout.get-bounds に含まれる注意を参照してください。


get-visible-bounds-into (メソッド)
public {RootFrame.get-visible-bounds-into grect:GRect}:void

オブジェクトの実際の可視領域の境界ボックスを計算します。

grect: この四角形の記述を格納する GRect。四角形の値は、現在のオブジェクトの内側起点からの相対値です。このオブジェクトが View を祖先に持っていない場合、grect が設定されて空の四角形を表します。

オーバーライド

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

注意事項

レイアウトが現在有効ではないオブジェクトでの、このメソッドの呼び出しについては、Layout.get-bounds に含まれる注意を参照してください。


get-visible-rect-in-root-into (メソッド)
public {RootFrame.get-visible-rect-in-root-into
rect:GRect
}:(Distance, Distance)

この Box ボックスを含むウィンドウに表示されている四角形の一部を決定します。

rect: この Box内部起点を基準として対象の四角形を示す GRectrect には、このメソッドの呼び出しによる副作用があります。呼び出し後の rect は、ウィンドウ内で実際に見えている元の四角形の一部を、そのウィンドウのトップレベルのView内部起点を基準として示します 。

戻り値

ルート View を基準としたこの Box の位置。

必要な場合は、これらのオフセットを使用して、rect をこの Box の座標フレームに変換して戻すことができます。例外:rect が空の四角形になる場合、つまり、元の四角形がまったく見えない場合の戻り値は任意です。

注意事項

このメソッドは、rect の境界を、その一部をクリッピングする任意の祖先の Box の指示どおりに減らします。しかし、この Box の祖先ではないオブジェクトが上に重なってその四角形の一部を隠している可能性がある遮蔽関係については考慮されません。したがって、このメソッドを呼び出した結果得られた rect 値は、可視領域の上境界を提供しますが、この領域全体が実際に見えていることを保証するわけではありません。

プログラミング注意事項

このメソッドは、BasicLayout.request-draw-rect によって呼び出され、再描画四角形で実際に再描画が必要である可能性がある部分を決定します。

オーバーライド

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


propagate-request-layout (メソッド)
public {RootFrame.propagate-request-layout epoch:int}:void

Box からそのグラフィカルな親 (存在する場合) に新しいレイアウト ネゴシエーションの要求を伝播します。

epoch: このレイアウト無効化に関連付けられている Layout Epoch。これは、通常、get-layout-epoch を使用して得られる現在の Layout Epoch です。

プログラミング注意事項

一般的に、このメソッドは、Box.request-layout から Box の親にレイアウトの要求を伝えるために呼び出されるか、Layout.request-layout から呼び出されます。

Box でこのメソッドを呼び出すことは、Box のグラフィカルな子孫のいずれかが新しいレイアウト ネゴシエーションを要求していることを示します。この状況は、Box での Box.request-layout の呼び出しとは対照的です。この場合は、Box 自体が新しいレイアウト ネゴシエーションを要求していることを意味します。これらの 2 つの別個のメソッドが提供されるのは、その後のレイアウト ネゴシエーションの初めに Graphic.attempt-revalidate-layout が呼び出されるときに、異なるアクションを保証するためです。Box.propagate-request-layout の呼び出しによって、この Box にレイアウト要求が通知された場合は、Box 自体では何も変更されていないので、Box の子で Graphic.attempt-revalidate-layout メソッドが呼び出されたときにすべての子の答えが true であれば、BoxGraphic.attempt-revalidate-layout に対する答えは常に true になります。しかし、Box.request-layout が呼び出された場合は、Box は、そのすべての子のレイアウトについて有効性を再検証できたとしても、それ自体のレイアウトが有効とは認められない場合があります。これは、グラフィカルな子の追加や削除、またはそれらの子の空白や配列での変更など、Box 自体の構造で変更が加えられている可能性があるからです。

オーバーライド

このメソッドは、情報を保持してレイアウト無効化を追跡する Box サブクラスでオーバーライドできます。このようなオーバーライド メソッドにはすべて super.propagate-request-layout の呼び出しが必要です。このメソッドは、グラフィック階層のルートになるように設計されている View などのクラスでもオーバーライドされます。この場合、レイアウト要求を記録し、新しいレイアウト ネゴシエーションに合わせて整列させるコードによってメソッドがオーバーライドされます。


request-draw (メソッド)
public {RootFrame.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 {RootFrame.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-draw-rect-in-root (メソッド)
public abstract {RootFrame.request-draw-rect-in-root rect:GRect}:void

RootFrame の座標系にすでに存在する GRect によって記述される領域の再ペイント処理を要求します。

説明

再ペイントされる領域は、グラフィカル階層のルートの座標系に関連して記述されます。
rect: RootFrame の座標系に基づいて再ペイントされる領域を記述する GRect

プログラミング注意事項

通常このメソッドが呼び出されるのは、最初に LayoutContext.rect-for-request-draw を介して rect を取得し、BasicLayout.get-visible-bounds-into などのメソッドを使用して値を rect に入力した後です。

ただし、LayoutContext にアクセスできる場合は、グラフィカル階層で RootFrame を探す代わりに、request-draw-rect-in-root を呼び出します。


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

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

説明

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

オーバーライド

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

{super.request-pointer-trace}


set-layout (メソッド)
public {RootFrame.set-layout l:#Layout}:void

Graphic のレイアウト オブジェクトを設定します。

l: 設置するレイアウト オブジェクト。

プログラミング注意事項

このメソッドは、このオブジェクトをグラフィカルな親に接続する過程で呼び出されます。グラフィック階層のオブジェクトの接続/切断に使われるプロトコルを理解せずにこのメソッドを使用するのは危険です。

注意事項

この Graphic が既にレイアウト オブジェクトを持っている場合、Graphic.detach によって先にこの Graphic がそのレイアウト オブジェクトから切断されてから、新しいレイアウト オブジェクトに接続されます。

オーバーライド

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


set-size-from-child (メソッド)
public {RootFrame.set-size-from-child
wspec:any = null,
hspec:any = null
}:void

ウィンドウの内容のサイズ設定に基づき、指定されたとおりに調整してウィンドウのサイズを指定します。

wspec, hspec: View の内容のサイズ設定から計算された幅や高さをオーバーライドするために、幅や高さを指定します。これらのパラメータのいずれか、または両方が指定されていない場合、内容のサイズ設定が使用されます。


validate-layout (メソッド)
public {RootFrame.validate-layout}:void

Box のレイアウトを有効にします。

プログラミング注意事項

このメソッドは、境界および原点の位置についての情報のクエリができるように Box のレイアウトを有効にする必要があるときに呼び出されます。このメソッドは、一般に、レイアウト システムの一部をなすコードによってのみ呼び出されます。

オーバーライド

この抽象メソッドは、Box の 具象サブクラスによって、必要なアクションを実際に実行するコードでオーバーライドされなければなりません。


validate-layout-recur (メソッド)
protected {RootFrame.validate-layout-recur
try-revalidate?:bool = false
}:void

レイアウト ネゴシエーションが成功するまでこれを実行します。

try-revalidate?: 次に説明されるように、View.attempt-revalidate-layout が呼び出されるかどうかを制御します。

説明

このメソッドの目的は、この View をルートとするグラフィック階層で、階層のレイアウトが有効な状態になるまで必要に応じてレイアウト ネゴシエーションを実行することです。

階層のレイアウトがすでに有効な状態にある場合 (self.layout-valid? の値が true であることにより示されます)、このメソッドは直ちに復帰します。それ以外の場合、 Layout Epoch (get-layout-epoch を呼び出して返される値) を増加して、新しいレイアウト ネゴシエーションを開始します。try-revalidate? 引数が true の場合、非効率的なレイアウト ネゴシエーションを回避するために self.attempt-revalidate-layout が呼び出されます。この呼び出しが true を返すと、validate-layout-recur が完了して復帰します。それ以外の場合、self.get-width-preferenceself.constrain-widthself.set-size を呼び出すことによって、width-first のレイアウト ネゴシエーションが全体的に行なわれます。これらの呼び出しのいずれかでレイアウトの無効(Graphic.request-layout の呼び出し) になった場合、レイアウト ネゴシエーションは最高 100 回まで繰り返され、その後にエラーをスローします。