TextEditPanel (クラス)
public TextEditPanel {inherits FontGraphic, TextEditLines, InputMethodClient, ContainerDragScroller}
パッケージ: CURL.GUI.TEXT-EDIT
この項目はサポートされていません。内部使用限定となっています。

コンストラクタ
default:
コンストラクタ public {TextEditPanel.default
buffer:#TextEditBuffer = null,
mode:TextEditMode = text-mode,
url:#Url = null,
allow-focus?:bool = true,
allow-input?:bool = true,
logical-cursor-navigation?:bool = false,
h-compress-order:int = rigid-compress-order,
h-stretch-order:int = rigid-stretch-order,
h-min-chars:int = 0,
h-max-chars:int = max-int,
v-compress-order:int = rigid-compress-order,
v-stretch-order:int = rigid-stretch-order,
v-min-chars:int = 0,
v-max-chars:int = max-int,
layout-thunk:#{proc-type {TextEditPanel}:void} = null,
activation-thunk:#{proc-type {TextEditPanel, bool}:void} = null,
update-status-thunk:#{proc-type {TextEditPanel}:void} = null,
status-msg-thunk:#{proc-type {String}:void} = null,
update-font-proc:#{proc-type {TextEditPanel}:void} = null,
bypass-undo-maintenance?:bool = false,
...
}

プロパティ
control-content-background:このオプションは、コントロール内容が背景を持つ場合にその色を制御します。
非ローカル オプション public TextEditPanel.control-content-background:Background
size:
アクセサ public final inline TextEditPanel.size:int
style-element:スタイリングの目的のための、この Visual の "要素" や "型" です。
アクセサ public TextEditPanel.style-element:String
プロパティ 継承 FontGraphic: text-breakable?, text-preserve-whitespace?
プロパティ 継承 TextEditLines: as-string-or-null, for-loop-count
プロパティ 継承 InputMethodClient: supports-inline-mode?
プロパティ 継承 ContainerDragScroller: ctrl-mode?, dragscrolling?, inner-scroll-buffer
プロパティ 継承 Graphic: avoid-page-break?, background, border-color, border-spec, border-style, border-width, cell-border-spec, cell-border-width, cell-margin, clip-child-shadows?, 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
プロパティ 継承 FontVisualMixin: cached-display-context, color, display-context, font, font-family, font-size, font-style, font-weight, text-line-through?, text-underline?
プロパティ 継承 Visual: _style-element, clonable-class?, completely-clonable-children?, 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
プロパティ 継承 EventTarget: event-handlers
プロパティ 継承 DataBindingTarget: data-binding-context, data-bindings
プロパティ 継承 OptionListInterface: option-register-proc, options-present-here, registered-option-keys

メソッド
compute-height-preference:この TextEditPanel の高さ設定を算出します。
protected {TextEditPanel.compute-height-preference}:Dimension
draw:このオブジェクトの可視表現を描画します。
public {TextEditPanel.draw r:Renderer2d}:void
get-height-preference:この Graphic の高さ設定を返します。
public {TextEditPanel.get-height-preference lc:LayoutContext}:Dimension
get-insertion-point:
public {TextEditPanel.get-insertion-point}:(row:int, col:int)
get-range-as-selected-text:start-boundend-bound 間の、このグラフィック内に含まれる選択したテキストを取得します。
public {TextEditPanel.get-range-as-selected-text
into:StringBuf,
start-bound:#GuiMark = null,
end-bound:#GuiMark = null
}:void
get-width-preference:この Graphic の幅設定を返します。
public {TextEditPanel.get-width-preference lc:LayoutContext}:Dimension
handle-caret-position-request:キャレットの位置を提供します。
public {TextEditPanel.handle-caret-position-request
}:(value:InputMethodCaretPosition, handled?:bool)
handle-reconversion-request:再変換する String を提供します。
public {TextEditPanel.handle-reconversion-request
}:(value:String, handled?:bool)
load-from-stream:
public {TextEditPanel.load-from-stream tis:TextInputStream}:void
load-from-url:
public {TextEditPanel.load-from-url url:Url}:void
make-gui-mark:この Graphic を参照する GuiMark を作成する標準的な方法。
public {TextEditPanel.make-gui-mark}:TextEditGuiMark
note-dragscroll-continued:ドラッグスクロール動作が続いていることを記録します。
public {TextEditPanel.note-dragscroll-continued}:void
note-dragscroll-ended:ドラッグスクロール動作が終了したことを記録します。
public {TextEditPanel.note-dragscroll-ended}:void
on-composition-change-event:CompositionChangeEvent イベントのスタティック イベント ハンドラ
public {TextEditPanel.on-composition-change-event}:void
on-composition-result-event:CompositionResultEvent イベントのスタティック イベント ハンドラ
public {TextEditPanel.on-composition-result-event}:void
on-context-menu-event:ContextMenuEvent イベントのスタティック イベント ハンドラ
public {TextEditPanel.on-context-menu-event e:ContextMenuEvent}:void
on-drag-started:DragStarted イベントのスタティック イベント ハンドラ
public {TextEditPanel.on-drag-started e:DragStarted}:void
on-end-composition-event:EndCompositionEvent イベントのスタティック イベント ハンドラ
public {TextEditPanel.on-end-composition-event}:void
on-focus-in:FocusIn イベントのスタティック イベント ハンドラ
public {TextEditPanel.on-focus-in e:FocusIn}:void
on-focus-out:FocusOut イベントのスタティック イベント ハンドラ
public {TextEditPanel.on-focus-out e:FocusOut}:void
on-key-press:KeyPress イベントのスタティック イベント ハンドラ
public {TextEditPanel.on-key-press e:KeyPress}:void
on-pointer-press:PointerPress イベントのスタティック イベント ハンドラ
public {TextEditPanel.on-pointer-press e:PointerPress}:void
on-pointer-release:PointerRelease イベントのスタティック イベント ハンドラ
public {TextEditPanel.on-pointer-release e:PointerRelease}:void
on-start-composition-event:StartCompositionEvent イベントのスタティック イベント ハンドラ
public {TextEditPanel.on-start-composition-event}:void
paginate:グラフィックにパジネーションを適用します。
public {TextEditPanel.paginate
page-height:Distance,
next-page-height:Distance,
query-only?:bool
}:(PaginationState, PaginationQuality)
search-next-here:この Graphic 内か、その子の 1 つに現れるパターンの境界を返します。通常このメソッドは、アプリケーション コードから直接呼び出しません。代わりに Graphic.search-next を呼び出します。
public {TextEditPanel.search-next-here
pattern:SearchPattern,
gm:#GuiMark = null
}:(pattern-start:#GuiMark, pattern-end:#GuiMark)
search-prev-here:この Graphic 内か、その子の 1 つに現れるパターンの境界を返します。通常このメソッドは、アプリケーション コードから直接呼び出しません。代わりに Graphic.search-prev を呼び出します。
public {TextEditPanel.search-prev-here
pattern:SearchPattern,
gm:#GuiMark = null
}:(#GuiMark, #GuiMark)
set-buffer:
public {TextEditPanel.set-buffer buffer:TextEditBuffer}:void
set-insertion-point:
public {TextEditPanel.set-insertion-point row:int, col:int}:void
set-size:このオブジェクトにレイアウト幅と高さを代入します。
public {TextEditPanel.set-size lc:LayoutContext, bounds:GRect}:void
update-font-metrics:フォント メトリックの変更に対応します。
protected {TextEditPanel.update-font-metrics}:void
update-syntax:
public {TextEditPanel.update-syntax to-row:int}:void
write-to-stream:
public {TextEditPanel.write-to-stream tos:TextOutputStream}:void
メソッド 継承 TextEditLines: get
メソッド 継承 InputMethodClient: handle-font-request
メソッド 継承 ContainerDragScroller: note-dragscroll-started, on-grab-release, on-pointer-motion, start-dragscroll
メソッド 継承 FontGraphicMixin: react-to-font-option-change
メソッド 継承 Graphic: after-reposition, attempt-revalidate-layout, before-reposition, constrain-height, constrain-width, contains-point?, create-pagination-state, detach, draw-range-as-selected, draw-shadow, end-pagination, find-ancestor, find-graphic-at, 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, graphical-child-visible-at, on-drag-enter, on-inspection, on-pointer-enter, option-changed, paint-with-decorations, pointer-enter-occurred, pointer-leave-occurred, replace-with, request-draw, request-draw-rect, request-layout, request-pointer-trace, search-next, search-prev, set-layout, start-pagination, xy-offset-to
メソッド 継承 GuiEventTarget: handle-delegate-event, handle-event, on-action, on-cancel-mode, on-command-changed, on-commit, on-current-record-change-request, on-current-record-changed, on-destroy-notify, on-destroy-requested, on-drag-over, on-drag-pointer, on-drop, on-focus-event, 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-gui-event, on-input-method-event, on-key-event, on-pointer-button, on-pointer-crossing, on-pointer-event, 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-event, on-stop-event, on-view-activate, on-view-deactivate, on-window-close, remove-event-handlers-for-event-class
メソッド 継承 FontVisualMixin: calculate-pointsize, font-option-changed, get-display-context, invalidate-font, validate-font
メソッド 継承 Visual: add, add-from-init-args, animate, change-cursor, clear, clonable-appearance?, clone-appearance, clone-appearance-helper, find-test-children, get-focus-manager, get-gui-path-to-child, 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-attached, note-caret-position, note-detaching, on-drag-leave, on-pointer-envelope-event, 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
メソッド 継承 EventTarget: accepts-event-class?, add-event-handler, event-handler-present?, remove-event-handler, verify-event
メソッド 継承 GraphicOptions: any-to-Distance
メソッド 継承 BasicEventTarget: enqueue-event
メソッド 継承 DataBindingTarget: add-data-binding, get-data-binding, refresh-data-binding, remove-data-binding, unset-property, update-data-binding, validate-data-binding
メソッド 継承 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, notify-option-children, option-change-notify, option-lookup, option-lookup-here, option-propagate-notify, option-set?, propagate-option-change, register-options, 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
メソッド 継承 InitRestArgParser: process-rest-args
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize



コンストラクタ詳細
default (コンストラクタ)
public {TextEditPanel.default
buffer:#TextEditBuffer = null,
mode:TextEditMode = text-mode,
url:#Url = null,
allow-focus?:bool = true,
allow-input?:bool = true,
logical-cursor-navigation?:bool = false,
h-compress-order:int = rigid-compress-order,
h-stretch-order:int = rigid-stretch-order,
h-min-chars:int = 0,
h-max-chars:int = max-int,
v-compress-order:int = rigid-compress-order,
v-stretch-order:int = rigid-stretch-order,
v-min-chars:int = 0,
v-max-chars:int = max-int,
layout-thunk:#{proc-type {TextEditPanel}:void} = null,
activation-thunk:#{proc-type {TextEditPanel, bool}:void} = null,
update-status-thunk:#{proc-type {TextEditPanel}:void} = null,
status-msg-thunk:#{proc-type {String}:void} = null,
update-font-proc:#{proc-type {TextEditPanel}:void} = null,
bypass-undo-maintenance?:bool = false,
...
}
この項目はサポートされていません。内部使用限定となっています。



プロパティ詳細
control-content-background (非ローカル オプション)
public TextEditPanel.control-content-background:Background

このオプションは、コントロール内容が背景を持つ場合にその色を制御します。


例: control-content-background の指定
{HBox valign="bottom", spacing=4pt,
    control-appearance-changeable?=true, 
    control-content-background="yellow",
    {ComboBox width=1.2in, prompt="Choose One", "First", "Second"},
    {TextField width=1.0in, value="Sample text"}
}


size (アクセサ)
アクセサ public final inline TextEditPanel.size:int
この項目はサポートされていません。内部使用限定となっています。


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

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

説明

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

オーバーライド

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





メソッド詳細
compute-height-preference (メソッド)
protected {TextEditPanel.compute-height-preference}:Dimension

この TextEditPanel の高さ設定を算出します。

説明

TextEditPanel が、垂直スクロール バーを持ち伸長性に関するフラッグが適切に設定 (vstrech? = true) されている ScrollBox の内部にある場合、この値は垂直スクロール ボックスを表示するかどうか決定し、さらに表示する場合はスライダの大きさを決定するためだけに使われます。結果は通常、この TextEditPanel のバッファ内の行数に基づいて決まります。


draw (メソッド)
public {TextEditPanel.draw r:Renderer2d}:void

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

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

オーバーライド

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


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

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

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

戻り値

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

オーバーライド

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

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


get-insertion-point (メソッド)
public {TextEditPanel.get-insertion-point}:(row:int, col:int)
この項目はサポートされていません。内部使用限定となっています。


get-range-as-selected-text (メソッド)
public {TextEditPanel.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 {TextEditPanel.get-width-preference lc:LayoutContext}:Dimension

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

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

戻り値

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

オーバーライド

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

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


handle-caret-position-request (メソッド)
public {TextEditPanel.handle-caret-position-request
}:(value:InputMethodCaretPosition, handled?:bool)

キャレットの位置を提供します。

戻り値

リクエストが処理される場合は、InputMethodCaretPosition および true です。それ以外の場合 (既定) は、任意の値および false です。

説明

インプット メソッドがキャレットの位置をクエリする必要がよくあります。この一般的な理由は、インプット メソッド ウィンドウをキャレットに近い位置にグラフィック上で合わせるためです。

このリクエストが行われると、クライアント オブジェクトは現在のキャレットの位置を表す InputMethodCaretPosition を返します。位置が返されない場合、インプット メソッドは通常、既定の動作に戻ります (たとえば、キャレットが View の左上隅にあると想定します)。

注意事項

InputMethodCaretPosition の座標は InputMethodClient の座標系にある必要があります。


handle-reconversion-request (メソッド)
public {TextEditPanel.handle-reconversion-request
}:(value:String, handled?:bool)

再変換する String を提供します。

戻り値

リクエストが処理される場合は、String および true です。それ以外の場合は (既定)、任意の値および false です。

説明

インプット メソッドでは、シーケンスを入れ替えるために以前に入力したテキストを表示することができます。

このリクエストが行われると、クライアント オブジェクトは再変換のための String を返します。これは通常、現在選択されているコンテンツです。クライアント オブジェクトは通常、String をそのコンテンツから削除します。これは、文字列が元のコンテンツとして一度表示され、さらに再変換されたコンテンツとしてもう一度表示されるような、二重表示を避けるためです。


load-from-stream (メソッド)
public {TextEditPanel.load-from-stream tis:TextInputStream}:void
この項目はサポートされていません。内部使用限定となっています。


load-from-url (メソッド)
public {TextEditPanel.load-from-url url:Url}:void
この項目はサポートされていません。内部使用限定となっています。


make-gui-mark (メソッド)
public {TextEditPanel.make-gui-mark}:TextEditGuiMark

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

戻り値

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

オーバーライド

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


note-dragscroll-continued (メソッド)
public {TextEditPanel.note-dragscroll-continued}:void

ドラッグスクロール動作が続いていることを記録します。

x: 操作が連続して行われる、水平位置です。
y: 操作が続いている垂直のポイントです。

説明

このメソッドは、マウスが移動するときに呼び出されます。または、自動スクロールのタイマーが開始された場合は、それが発生する定期間隔で呼び出されます。


note-dragscroll-ended (メソッド)
public {TextEditPanel.note-dragscroll-ended}:void

ドラッグスクロール動作が終了したことを記録します。



on-composition-change-event (メソッド)
public {TextEditPanel.on-composition-change-event}:void

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

説明

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


on-composition-result-event (メソッド)
public {TextEditPanel.on-composition-result-event}:void

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

説明

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


on-context-menu-event (メソッド)
public {TextEditPanel.on-context-menu-event e:ContextMenuEvent}:void

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

説明

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


on-drag-started (メソッド)
public {TextEditPanel.on-drag-started e:DragStarted}:void

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

説明

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


on-end-composition-event (メソッド)
public {TextEditPanel.on-end-composition-event}:void

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

説明

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


on-focus-in (メソッド)
public {TextEditPanel.on-focus-in e:FocusIn}:void

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

説明

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


on-focus-out (メソッド)
public {TextEditPanel.on-focus-out e:FocusOut}:void

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

説明

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


on-key-press (メソッド)
public {TextEditPanel.on-key-press e:KeyPress}:void

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

説明

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


on-pointer-press (メソッド)
public {TextEditPanel.on-pointer-press e:PointerPress}:void

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

説明

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


on-pointer-release (メソッド)
public {TextEditPanel.on-pointer-release e:PointerRelease}:void

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

説明

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


on-start-composition-event (メソッド)
public {TextEditPanel.on-start-composition-event}:void

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

説明

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


paginate (メソッド)
public {TextEditPanel.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 を呼び出したときに呼び出されます。


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

この Graphic 内か、その子の 1 つに現れるパターンの境界を返します。通常このメソッドは、アプリケーション コードから直接呼び出しません。代わりに Graphic.search-next を呼び出します。

pattern: 検索する SearchPattern
gm: 検索を開始する GuiMark。指定しない場合は Graphic の先端から検索を開始します。gm を指定する場合、gm.graphic がこのメソッドを呼び出す Graphic等しくなければならない点に注意してください。

戻り値

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

説明

searchable? が true であるグラフィカルな子は、この Graphic の内容とともに再帰的に検索されます。
このメソッドは、Graphic を右から左に検索する Graphic.search-prev-here に似ています。

オーバーライド

このメソッドの基本実装は常に null, null を返します。SearchPattern を実際に識別して探し出せる Graphic のサブクラスでは、それを実行するためにこのメソッドをオーバーライドする必要があります。


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

この Graphic 内か、その子の 1 つに現れるパターンの境界を返します。通常このメソッドは、アプリケーション コードから直接呼び出しません。代わりに Graphic.search-prev を呼び出します。

pattern: 検索する SearchPattern
gm: 検索を開始する GuiMark。指定しない場合は Graphic の左端から検索を開始します。gm を指定する場合、gm.graphic がこのメソッドを呼び出す Graphic等しくなければならない点に注意してください。

戻り値

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

説明

searchable? が true であるグラフィカルな子は、この Graphic の内容とともに再帰的に検索されます。
このメソッドは、Graphic を左から右に検索する Graphic.search-next-here に似ています。

オーバーライド

このメソッドの基本実装は常に null, null を返します。SearchPattern を実際に識別して探し出せる Graphic のサブクラスでは、それを実行するためにこのメソッドをオーバーライドする必要があります。


set-buffer (メソッド)
public {TextEditPanel.set-buffer buffer:TextEditBuffer}:void
この項目はサポートされていません。内部使用限定となっています。


set-insertion-point (メソッド)
public {TextEditPanel.set-insertion-point row:int, col:int}:void
この項目はサポートされていません。内部使用限定となっています。


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

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

説明

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

プログラミング注意事項

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

オーバーライド

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


update-font-metrics (メソッド)
protected {TextEditPanel.update-font-metrics}:void

フォント メトリックの変更に対応します。

font: この FontVisualMixin で使用される Font
dc: この FontVisualMixinDisplayContext

説明

フォント メトリックは、Font が変更された場合、DisplayContext が変更された場合、または最後の update-font-metrics の呼び出し以降に FontVisualMixin.invalidate-font が呼び出されている場合に変更される可能性があります。


update-syntax (メソッド)
public {TextEditPanel.update-syntax to-row:int}:void
この項目はサポートされていません。内部使用限定となっています。


write-to-stream (メソッド)
public {TextEditPanel.write-to-stream tos:TextOutputStream}:void
この項目はサポートされていません。内部使用限定となっています。