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

一般的な TextFlowBox 実装に共通のフィールドおよびメソッドを含むクラス。


コンストラクタ
clone-appearance-from:このタイプの新しいオブジェクトを作成するために Visual.clone-appearance が使用するコンストラクタ。
コンストラクタ protected {BasicTextFlowBox.clone-appearance-from
other:BasicTextFlowBox,
fixup:#{proc-type {Visual, Visual}:Visual}
}
default:すべての引数を基本クラスのコンストラクタに渡すことによって BasicTextFlowBox を初期化します。
コンストラクタ public {BasicTextFlowBox.default ...}

プロパティ
completely-clonable-children?:Visual のすべての子を完全にクローン化できる場合は、true を返します。
アクセサ protected BasicTextFlowBox.completely-clonable-children?:bool
display-context:このオブジェクトに関連付けられている DisplayContext
非ローカル オプション public BasicTextFlowBox.display-context:#DisplayContext
last-request-layout-epoch:request-layout が最後に呼び出されたときの Layout Epoch を表す整数。
アクセサ protected BasicTextFlowBox.last-request-layout-epoch:int
text-selectable?:TextFlowBox 内でテキスト選択を可能にします。
非ローカル オプション public BasicTextFlowBox.text-selectable?:bool
プロパティ 継承 TextFlowBox: color, font-family, font-size, font-style, font-weight, graphical-children, paragraph-after-spacing, paragraph-before-spacing, paragraph-first-line-offset, paragraph-justify, paragraph-left-indent, paragraph-line-spacing, paragraph-right-indent, style-element, text-bottom-margin, text-breakable?, text-left-margin, text-line-through?, text-preserve-whitespace?, text-right-margin, text-top-margin, text-underline?, viewport-width
プロパティ 継承 GetBoundsBox: layout-locally-valid?, layout-valid?
プロパティ 継承 Box: clip-child-shadows?, ordered-children, reverse-ordered-children
プロパティ 継承 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, clonable-class?, cursor, data-source, dragee, 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:BasicTextFlowBox に 1 つ以上の子を追加します。
public {BasicTextFlowBox.add obj:any, ...}:#Visual
calculate-width-preference:TextFlowBox の幅設定を算出します。
protected {BasicTextFlowBox.calculate-width-preference}:Dimension
clear:TextFlowBox の内容を削除します。
public {BasicTextFlowBox.clear}:void
constrain-width:指定した高さの制約を受けた場合にこの Graphic の高さ設定を返します。
public {BasicTextFlowBox.constrain-width
lc:LayoutContext,
lextent:Distance,
rextent:Distance
}:Dimension
draw:このオブジェクトの可視表現を描画します。
public {BasicTextFlowBox.draw renderer2d:Renderer2d}:void
draw-range-as-selected:このグラフィックの一部を選択領域として描画します。
public {BasicTextFlowBox.draw-range-as-selected
rng:GuiRange,
background:FillPattern,
color:FillPattern,
gc:Renderer2d
}:void
end-pagination:この Graphic に対するパジネーション プロセスを終了し、PaginationState を記録するためのデータ構造を割り当て解除します。
public {BasicTextFlowBox.end-pagination}:void
get-composition-width:テキストのラップに使用される幅を計算します。
protected {BasicTextFlowBox.get-composition-width
lextent:Distance,
rextent:Distance,
left-margin:Distance,
right-margin:Distance
}:Distance
get-display-context:このオブジェクトの現在の DisplayContext を返します。
public {BasicTextFlowBox.get-display-context}:DisplayContext
get-height-preference:この TextFlowBox の高さの設定を返します。
public {BasicTextFlowBox.get-height-preference}:Dimension
get-range-as-selected-text:start-boundend-bound 間の、このグラフィック内に含まれる選択したテキストを取得します。
public {BasicTextFlowBox.get-range-as-selected-text
into:StringBuf,
start-bound:#GuiMark = null,
end-bound:#GuiMark = null
}:void
get-width-preference:この TextFlowBox の幅の設定を返します。
public {BasicTextFlowBox.get-width-preference}:Dimension
make-gui-mark:この Graphic を参照する GuiMark を作成する標準的な方法。
public {BasicTextFlowBox.make-gui-mark}:GuiMark
notify-option-children:このオブジェクトのオプションの子にオプションが変更されたことを通知します。
public {BasicTextFlowBox.notify-option-children
item:OptionItem,
removed?:bool
}:void
paginate:グラフィックにパジネーションを適用します。
public {BasicTextFlowBox.paginate
page-height:Distance,
next-page-height:Distance,
query-only?:bool
}:(PaginationState, PaginationQuality)
pick-child:指定された (xy) ポイントをカバーする TextFlowBoxEventForwarder 子孫を返します。
public {BasicTextFlowBox.pick-child}:#EventForwarder
register-options:このオブジェクトがバインドのモニタリングを必要とする非ローカル オプション キーを登録します。
public {BasicTextFlowBox.register-options
p:{proc-type {OptionKey}:void}
}:void
search-next-here:この TextFlowBox 内に現れるパターンの境界を返します。
public {BasicTextFlowBox.search-next-here
pattern:SearchPattern,
gm:#GuiMark = null
}:(pattern-start:#GuiMark, pattern-end:#GuiMark)
search-prev-here:この TextFlowBox 内に現れるパターンの境界を返します。
public {BasicTextFlowBox.search-prev-here
pattern:SearchPattern,
gm:#GuiMark = null
}:(#GuiMark, #GuiMark)
set-size:このオブジェクトにレイアウト幅と高さを代入します。
public {BasicTextFlowBox.set-size lc:LayoutContext, bounds:GRect}:void
メソッド 継承 TextFlowBox: find-graphic-at, find-test-children, get-gui-path-to-child, get-text, note-attached, note-detaching
メソッド 継承 BasicBox: contains-point?, handle-crossing, on-pointer-envelope-event, pointer-enter-occurred, pointer-leave-occurred
メソッド 継承 GetBoundsBox: get-bounds, get-elastic-bounds-into, get-nonparent-bounds-into, propagate-request-layout, request-layout, validate-layout
メソッド 継承 Box: compare-children, get-delimited-child-text-selection, get-visible-rect-in-root-into, graphical-child-visible-at
メソッド 継承 Graphic: after-reposition, attempt-revalidate-layout, before-reposition, constrain-height, create-pagination-state, detach, 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, clone-appearance-helper, 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
メソッド 継承 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



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

このタイプの新しいオブジェクトを作成するために Visual.clone-appearance が使用するコンストラクタ。



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

すべての引数を基本クラスのコンストラクタに渡すことによって BasicTextFlowBox を初期化します。




プロパティ詳細
completely-clonable-children? (アクセサ)
アクセサ protected BasicTextFlowBox.completely-clonable-children?:bool

Visual のすべての子を完全にクローン化できる場合は、true を返します。

オーバーライド

既定の実装は true を返します。子がある Box のようなサブクラスは、そのすべての子について、complete-clone-required?true として渡された Visual.clonable-appearance?true を返す場合は、このゲッターをオーバーライドし、true を返す必要があります。その他の場合は false を返すはずです。


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


last-request-layout-epoch (アクセサ)
アクセサ protected BasicTextFlowBox.last-request-layout-epoch:int

request-layout が最後に呼び出されたときの Layout Epoch を表す整数。

プログラミング注意事項

この値が LayoutContext.epoch より大きい場合は、レイアウト処理中にレイアウト要求が行われたことを意味します。レイアウト処理が再実行されることになるので、この値を使用して、進行中の処理を完了前に停止することができます。get-layout-epoch も参照してください。

オーバーライド

既定の実装は、-1 を返します。これは、レイアウトが再実行されるかどうかを無視することを示します。サブクラスでエポックをキャッシュする場合は、TextFlowBox.propagate-request-layout をオーバーライドし、キャッシュされた値をここで返します。


text-selectable? (非ローカル オプション)
public BasicTextFlowBox.text-selectable?:bool

TextFlowBox 内でテキスト選択を可能にします。

説明

TextFlowBox がユーザーに対して、ポイントのプレスとドラッグによるインタラクティブなテキスト選択を許可するかどうかを指定します。プログラムによるテキストの選択は常に許可されています。

最初の例は選択可能で、次の例は選択不可能です。
例: 選択可能または不可能なテキスト
{TextFlowBox text-selectable?=true,
    {paragraph This text is selectable.}
}
{TextFlowBox text-selectable?=false,
    {paragraph This text is not selectable.}
}





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

BasicTextFlowBox に 1 つ以上の子を追加します。

obj: 追加するオブジェクト。追加される前に Visual に強制変換されます。

注意事項

このメソッドは、2 つのオプション キーワード引数も受け取ります。ただし、どちらか 1 つしか指定できません。どちらも指定されていない場合、新しい子は BasicTextFlowBox に最後のオブジェクトとして追加されます。指定する sibling は、TextFlowBox のトップレベルの直接の子でなければなりません (このメソッドで追加された子などがこれにあたります)。

戻り値

(Visual に強制変換された後) 追加されたオブジェクト。

説明

obj がもともと Visual だった場合は、それまで置かれていた場所から自動的に削除されます。

強制変換が行われる場合は、次の規則に従います。

オーバーライド

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

{super.add obj, ...}

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

注意事項

BasicTextFlowBox に何かを追加しても、パラグラフ、行、または語の境界が自動的に挿入されることは意味しません。

ボタンを押してテキストを末尾に追加します。
例: TextFlowBoxにテキストを追加
{value
    let tfb:TextFlowBox =
        {TextFlowBox
            width = 5cm,
            height = 6cm,
            border-color = "black",
            border-width = .05cm,
            "Initial content"
        }
    let addme:CommandButton =
        {CommandButton
            label="Add more content",
            {on Action do
                {tfb.add "and more"}
            }
        }
    {VBox
        tfb,
        addme
    }
}


calculate-width-preference (メソッド)
protected {BasicTextFlowBox.calculate-width-preference}:Dimension

TextFlowBox の幅設定を算出します。

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

戻り値

このオブジェクトの幅の設定を表す Dimension。この Dimension は、このメソッドの呼び出し元によって OriginElastic に変換されます。

注意事項

サブクラスでは、このメソッドを TextFlowBox.get-width-preference の実装の一部として役立てることができます。


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

TextFlowBox の内容を削除します。

説明

その理由は、TextFlowBox には通常、 Graphic 以外のオブジェクト (たとえば、テキスト) が含まれており、このメソッドは TextFlowBox からのテキストと Graphicを両方削除するために定義されています。


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

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

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

オーバーライド

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


draw-range-as-selected (メソッド)
public {BasicTextFlowBox.draw-range-as-selected
rng:GuiRange,
background:FillPattern,
color:FillPattern,
gc:Renderer2d
}:void

このグラフィックの一部を選択領域として描画します。

説明

このメソッドは GuiRangeSelectionContext による使用を目的とし、このグラフィックを描画するときに指定領域が選択されていることを示します。
rng: 選択時に描画されるグラフィックの範囲を限定するGuiRange。 この値はGuiRange.intersects-graphic?で指定されたグラフィックと交差されなくてはいけません。
background: 選択されたバックグランドの色を指す FillPattern
color: 選択されたフォーグランドの色を指すFillPattern
gc: Renderer2d

オーバーライド

このメソッドの実装では、rngGuiRange.intersects-graphic? で指定されたとおりにこのグラフィックを "交差" させることを前提とします。


end-pagination (メソッド)
public {BasicTextFlowBox.end-pagination}:void

この Graphic に対するパジネーション プロセスを終了し、PaginationState を記録するためのデータ構造を割り当て解除します。

プログラミング注意事項

Graphic.start-pagination が呼び出されたすべての Graphic のついて、このメソッドを呼び出す必要があります。

注意事項

これは、Layout.end-pagination を呼び出したときに呼び出されます。


get-composition-width (メソッド)
protected {BasicTextFlowBox.get-composition-width
lextent:Distance,
rextent:Distance,
left-margin:Distance,
right-margin:Distance
}:Distance

テキストのラップに使用される幅を計算します。

lextent, rextent: 幅の制約。起点からの左と右の相対距離で表されます。
left-margin: 現在有効な左側のマージン。
right-margin: 現在有効な右側のマージン。


get-display-context (メソッド)
public {BasicTextFlowBox.get-display-context}:DisplayContext

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

戻り値

GraphicOptions.display-context オプションが非 null 値にバインドされる場合、このオプションの値を返します。それ以外の場合、get-default-display-context によって返される値を返します。

オーバーライド

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


get-height-preference (メソッド)
public {BasicTextFlowBox.get-height-preference}:Dimension

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

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

戻り値

このオブジェクトの高さの設定を表す Dimension。この Dimension は、このメソッドの呼び出し元によって OriginElastic に変換されます。

注意事項

設定される高さは、各行が必要な幅を十分利用できる場合に TextFlowBox の内容をすべて収めるために必要な高さです。


get-range-as-selected-text (メソッド)
public {BasicTextFlowBox.get-range-as-selected-text
into:StringBuf,
start-bound:#GuiMark = null,
end-bound:#GuiMark = null
}:void

start-boundend-bound 間の、このグラフィック内に含まれる選択したテキストを取得します。

into: 結果を格納する StringBuf
start-bound: グラフィック内の開始ポイントを区切る GuiMark。null の場合、開始ポイントはグラフィックの先頭の端と見なされます。
end-bound: グラフィック内の終了ポイントを区切る GuiMark。null の場合、終了ポイントは、グラフィックの最後の端と見なされます。

オーバーライド

通常コンテナは再帰的に呼び出しを実行して、適切な区切り文字を挿入します。その他のサブクラスは、直接テキストを提供します。


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

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

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

戻り値

このオブジェクトの幅の設定を表す Dimension。この Dimension は、このメソッドの呼び出し元によって OriginElastic に変換されます。

注意事項

幅の設定の計算は、実際は BasicTextFlowBox.calculate-width-preference で行われます。これは追加の引数をとります。

詳細については、Box.get-width-preference を参照してください。


make-gui-mark (メソッド)
public {BasicTextFlowBox.make-gui-mark}:GuiMark

この Graphic を参照する GuiMark を作成する標準的な方法。

戻り値

初期化されてグラフィックの先頭の端に新しく割り当てられた GuiMark

オーバーライド

GuiMark のカスタム サブクラスが Graphic のコンテンツを参照する必要がある場合、Graphic のサブクラスでこのメソッドをオーバーライドします。


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

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

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

オーバーライド

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


paginate (メソッド)
public {BasicTextFlowBox.paginate
page-height:Distance,
next-page-height:Distance,
query-only?:bool
}:(PaginationState, PaginationQuality)

グラフィックにパジネーションを適用します。

page-height: グラフィックをページにレンダリングするのに有効な高さ。これには、ボーダーとマージンが占めるスペースは含まれません。
next-page-height: このグラフィックが次のページに移動される場合に、このグラフィックをパジネートするのに有効な高さ。
query-only?: true の場合は、この Graphic に対する PaginationState の状態は変わりません。詳細については、Graphic.get-pagination-state および注を参照してください。

戻り値

返される PaginationState は、このメソッドが呼び出された後の Graphic のパジネーション状態です。
返される PaginationQuality 値は、与えられた page-height を使用して達成されるページ分割の品質を示します。

プログラミング注意事項

Graphic にパジネーションを適用する前に、true に設定された query-only? でこの関数を呼び出すことができます。このように、呼び出し元は、与えられた page-height でどんな PaginationQuality を達成できるかを決定することができます。呼び出し元は、PaginationQuality に応じて、現行ページにあるオブジェクトの一部にパジネーションを適用するか、オブジェクト全体を次のページに押し込むことができます。これを行うには、このオブジェクトの先頭を指すように、Graphic に関連付けられた PaginationStatePaginationState.end-offset を設定します。

オーバーライド

Graphic 自身が何らかの具体的な方法でページ間でパジネーションを実行するようにしたい場合は、このメソッドをオーバーライドします。
このメソッドをオーバーライドするときは、以下の規則に従う必要があります。
query-only?Graphic.get-pagination-state を呼び出して、この Graphic の現在のパジネーションの状態を取得します。query-only?true であると、メソッドはこの GraphicPaginationState のクローンに作用します。
このメソッドが前に PaginationQuality.complete を返した Graphic で呼び出される場合は、PaginationState.start-offsetPaginationState.end-offset に設定されていて、返されたパジネーションの質が PaginationQuality.complete であることを確認してください。
page-height が負または無視できるほどである場合は、返されたパジネーション状態がオブジェクトの現在のパジネーション状態であり、返されたパジネーションの質が PaginationQuality.clipped-outside でなければなりません。
そうでない場合は、page-height が使用可能であれば、新しいページの PaginationState.start-offsetPaginationState.end-offset、および PaginationState.min-end-offset を計算して設定し、このパジネーション シーケンスにふさわしい PaginationQuality を返してください。
Box などのコンテナ (パジネーションによってその子をページ間で分割しないようにする場合)。このようなコンテナは、現行ページに子を収容できない場合は、次の 2 つのステップに従う必要があります。
1. その子が改ページしないように要求しているかどうかを調べる (Graphic.avoid-page-break? を参照)。要求している場合は、現行ページでこのグラフィックに使用できる高さが next-page-height より小さければ、その子を次のページに押し込みます。子を次のページに押し込むためには、コンテナがその現在の PaginationStatePaginationState.end-offset を、-{child.get-cell-bounds}.ascent である子の先頭に設定する必要があります。
2. 子にパジネーションを依頼し、返された PaginationQualityPaginationQuality.good 以上であれば、現行ページで子のパジネーションを開始する。そうでなければ、コンテナが、true として渡される query-only? と、独自の Graphic.paginate メソッドに渡された next-page-height として渡される page-height および next-page-heightとで Graphic.paginate メソッドを呼び出して子を次のページに押し込んだ場合に子のパジネーションが少なくとも PaginationQuality.good になるかどうかを調べる必要があります。PaginationQuality.good である場合は子を次のページに押し込み、そうでない場合は子が現行ページからパジネーションするようにします。
コンテナは、子グラフィックを直接パジネーションさせるのではなく、子グラフィックの Layout にパジネーションを依頼する必要があるので、注意してください。
以下は、Graphic.paginate がどのようにして実装されるかを示すコードです。
{method public open {paginate
page-height:Distance,
next-page-height:Distance,
query-only?:bool
}:(PaginationState, PaginationQuality)
let pstate:PaginationState = 
{self.get-pagination-state query-only?}
let bounds:GRect = pstate.bounds
let constant epsilon:Distance = epsilon-float * 1m

|| All done.
{if {abs bounds.descent - pstate.end-offset} < epsilon then
set pstate.start-offset = pstate.end-offset
{return pstate, PaginationQuality.complete}
}

|| No space left for the graphic.
{if page-height < epsilon then
{return pstate, PaginationQuality.clipped-outside}
}

let new-start-offset:Distance = pstate.min-end-offset
let new-end-offset:Distance = 
{min new-start-offset + page-height, bounds.descent}

{return
{pstate.advance-pagination
new-start-offset,
new-end-offset,
quality-if-not-complete = PaginationQuality.poor
}
}
}

注意事項

これは、Layout.paginate を呼び出したときに呼び出されます。


pick-child (メソッド)
public {BasicTextFlowBox.pick-child}:#EventForwarder

指定された (xy) ポイントをカバーする TextFlowBoxEventForwarder 子孫を返します。

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

戻り値

このポイントをカバーする EventForwarder 子孫、あるいはそのような子孫が存在しない場合は NULL です。

プログラミング注意事項

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

注意事項

他の Box は、通常このメソッドから Graphic を返しますが、TextFlowBox は返しません。

オーバーライド

サブクラスは、上記の指定に適合する様式で、このメソッドを実装しなければなりません。


register-options (メソッド)
public {BasicTextFlowBox.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 を呼び出すことによって決定されます。
注意 一般的に、このメソッドをオーバーライドする必要があるオブジェクトだけが、オプションの子を持つオブジェクトです。


search-next-here (メソッド)
public {BasicTextFlowBox.search-next-here
pattern:SearchPattern,
gm:#GuiMark = null
}:(pattern-start:#GuiMark, pattern-end:#GuiMark)

この TextFlowBox 内に現れるパターンの境界を返します。

pattern: 検索する SearchPattern
gm: 検索を開始する GuiMark。指定しない場合は TextFlowBox の最初から検索を開始します。

戻り値

パターンの開始を定める GuiMark と、終了を定める GuiMark

説明

このメソッドの詳細は Graphic.search-next-here を参照してください。

注意事項

現在の実装では、この TextFlowBox のトップレベルの内容から TextSearchPattern 型の SearchPattern を見つけるだけです (他のパターンはグラフィカルな子から返される可能性があります)。また、現在の実装ではグラフィックの境界上にかかる TextSearchPattern は検索しないことに注意してください。


search-prev-here (メソッド)
public {BasicTextFlowBox.search-prev-here
pattern:SearchPattern,
gm:#GuiMark = null
}:(#GuiMark, #GuiMark)

この TextFlowBox 内に現れるパターンの境界を返します。

pattern: 検索する SearchPattern
gm: 検索を開始する GuiMark。指定しない場合は TextFlowBox の最後から検索を開始します。

戻り値

パターンの開始を定める GuiMark と、終了を定める GuiMark

説明

このメソッドの詳細は Graphic.search-prev-here を参照してください。

注意事項

現在の実装では、この TextFlowBox のトップレベルの内容から TextSearchPattern 型の SearchPattern を見つけるだけです (他のパターンはグラフィカルな子から返される可能性があります)。また、現在の実装ではグラフィックの境界上にかかる TextSearchPattern は検索しないことに注意してください。


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

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

説明

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

プログラミング注意事項

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

オーバーライド

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