(クラス)
public abstract BasicTextFlowBox
{inherits
TextFlowBox}
コンストラクタ protected | {BasicTextFlowBox.clone-appearance-from} |
コンストラクタ public | {BasicTextFlowBox.default ...} |
アクセサ protected BasicTextFlowBox.completely-clonable-children?:
bool
アクセサ protected BasicTextFlowBox.last-request-layout-epoch:
int
非ローカル オプション 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 プロパティ 継承 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
public | {BasicTextFlowBox.add obj:any, ...}:#Visual |
protected | {BasicTextFlowBox.calculate-width-preference}:Dimension |
public | {BasicTextFlowBox.clear}:void |
public | {BasicTextFlowBox.constrain-width}:Dimension |
draw: | このオブジェクトの可視表現を描画します。 |
public | {BasicTextFlowBox.draw-range-as-selected}:void |
public | {BasicTextFlowBox.end-pagination}:void |
protected | {BasicTextFlowBox.get-composition-width}:Distance |
public | {BasicTextFlowBox.get-height-preference}:Dimension |
public | {BasicTextFlowBox.get-range-as-selected-text}:void |
public | {BasicTextFlowBox.get-width-preference}:Dimension |
public | {BasicTextFlowBox.make-gui-mark}:GuiMark |
public | {BasicTextFlowBox.notify-option-children}:void |
public | {BasicTextFlowBox.paginate}:(PaginationState, PaginationQuality) |
public | {BasicTextFlowBox.register-options}:void |
public | {BasicTextFlowBox.search-next-here}:(pattern-start:#GuiMark, pattern-end:#GuiMark) |
public | {BasicTextFlowBox.search-prev-here}:(#GuiMark, #GuiMark) |
メソッド 継承 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 メソッド 継承 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 メソッド 継承 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
(コンストラクタ)
protected | {BasicTextFlowBox.clone-appearance-from} |
(コンストラクタ)
public | {BasicTextFlowBox.default ...} |
(アクセサ)
アクセサ protected BasicTextFlowBox.completely-clonable-children?:
bool Visual のすべての子を完全にクローン化できる場合は、true を返します。
オーバーライド
既定の実装は
true を返します。子がある
Box のようなサブクラスは、そのすべての子について、
complete-clone-required? が
true として渡された
Visual.clonable-appearance? が
true を返す場合は、このゲッターをオーバーライドし、
true を返す必要があります。その他の場合は
false を返すはずです。
(非ローカル オプション)
このオブジェクトに関連付けられている 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 オプションでの変更をモニタリングするコードは、この可能性を考慮に入れ、この状況における望ましくない動作の実行を回避しなくてはなりません。
(アクセサ)
アクセサ protected BasicTextFlowBox.last-request-layout-epoch:
int request-layout が最後に呼び出されたときの Layout Epoch を表す整数。
プログラミング注意事項
オーバーライド
(非ローカル オプション)
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.}
}
| |
(メソッド)
public | {BasicTextFlowBox.add obj:any, ...}:#Visual |
BasicTextFlowBox に 1 つ以上の子を追加します。
obj: 追加するオブジェクト。追加される前に
Visual に強制変換されます。
注意事項
このメソッドは、2 つのオプション キーワード引数も受け取ります。ただし、どちらか 1 つしか指定できません。どちらも指定されていない場合、新しい子は
BasicTextFlowBox に最後のオブジェクトとして追加されます。
- before=sibling は、obj を sibling の位置の直前に追加することを示します。
- after=sibling は、obj を sibling の位置の直後に追加することを示します。
指定する
sibling は、
TextFlowBox のトップレベルの直接の子でなければなりません (このメソッドで追加された子などがこれにあたります)。
戻り値
(
Visual に強制変換された後) 追加されたオブジェクト。
説明
obj がもともと
Visual だった場合は、それまで置かれていた場所から自動的に削除されます。
強制変換が行われる場合は、次の規則に従います。
オーバーライド
子の追加にさらに別の処理を関連付けることができるように、
BasicTextFlowBox のサブクラスでオーバーライドできます。この種のオーバーライド メソッドは、以下を呼び出す必要があります。
{super.add obj, ...}これで、
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
}
}
| |
(メソッド)
protected | {BasicTextFlowBox.calculate-width-preference}:Dimension |
(メソッド)
public | {BasicTextFlowBox.clear}:void |
(メソッド)
public | {BasicTextFlowBox.constrain-width}:Dimension |
指定した高さの制約を受けた場合にこの Graphic の高さ設定を返します。
lextent, rextent: 幅の制約。起点からの左と右の相対距離で表されます。
戻り値
オーバーライド
既定のメソッド
Graphic.constrain-width は、単に
Graphic.get-height-preference を呼び出します。このメソッドは、オブジェクトが高さ設定を計算する際に幅制約を考慮しなくてもいい場合はオーバーライドする必要がありません。
このメソッドをオーバライドするクラスでは必ず
Dimension を返すようにして、これで必要な垂直軸に沿ったスペースを
そのオブジェクトの起点との関係を含めて表します。実際には、これはこのメソッドが適切な
OriginElastic または
Dimension を返すことを意味します。
Dimension の場合は、「
次元から OriginElastics への変換」で説明する変換規則に従って、適切な
OriginElastic に変換されます。
重要:このメソッドのオーバーライド実装には、レイアウト ネゴシエーションが確実にグラフィック階層全体に適用されるように、スーパークラス実装の呼び出しを含める必要があります。
(メソッド)
このオブジェクトの可視表現を描画します。
オーバーライド
(メソッド)
public | {BasicTextFlowBox.draw-range-as-selected}:void |
このグラフィックの一部を選択領域として描画します。
説明
オーバーライド
(メソッド)
public | {BasicTextFlowBox.end-pagination}:void |
(メソッド)
protected | {BasicTextFlowBox.get-composition-width}:Distance |
テキストのラップに使用される幅を計算します。
lextent, rextent: 幅の制約。起点からの左と右の相対距離で表されます。
left-margin: 現在有効な左側のマージン。
right-margin: 現在有効な右側のマージン。
(メソッド)
(メソッド)
public | {BasicTextFlowBox.get-height-preference}:Dimension |
(メソッド)
public | {BasicTextFlowBox.get-range-as-selected-text}:void |
start-bound と end-bound 間の、このグラフィック内に含まれる選択したテキストを取得します。
start-bound: グラフィック内の開始ポイントを区切る
GuiMark。null の場合、開始ポイントはグラフィックの先頭の端と見なされます。
end-bound: グラフィック内の終了ポイントを区切る
GuiMark。null の場合、終了ポイントは、グラフィックの最後の端と見なされます。
オーバーライド
通常コンテナは再帰的に呼び出しを実行して、適切な区切り文字を挿入します。その他のサブクラスは、直接テキストを提供します。
(メソッド)
public | {BasicTextFlowBox.get-width-preference}:Dimension |
(メソッド)
public | {BasicTextFlowBox.make-gui-mark}:GuiMark |
この Graphic を参照する GuiMark を作成する標準的な方法。
戻り値
初期化されてグラフィックの先頭の端に新しく割り当てられた GuiMark。
オーバーライド
GuiMark のカスタム サブクラスが Graphic のコンテンツを参照する必要がある場合、Graphic のサブクラスでこのメソッドをオーバーライドします。
(メソッド)
public | {BasicTextFlowBox.notify-option-children}:void |
このオブジェクトのオプションの子にオプションが変更されたことを通知します。
item: 追加または削除されたバインディング オプション。
removed?: item が削除された場合は true、それ以外の場合は false。
オーバーライド
(メソッド)
public | {BasicTextFlowBox.paginate}:(PaginationState, PaginationQuality) |
グラフィックにパジネーションを適用します。
page-height: グラフィックをページにレンダリングするのに有効な高さ。これには、ボーダーとマージンが占めるスペースは含まれません。
next-page-height: このグラフィックが次のページに移動される場合に、このグラフィックをパジネートするのに有効な高さ。
戻り値
プログラミング注意事項
オーバーライド
Graphic 自身が何らかの具体的な方法でページ間でパジネーションを実行するようにしたい場合は、このメソッドをオーバーライドします。
このメソッドをオーバーライドするときは、以下の規則に従う必要があります。
page-height が負または無視できるほどである場合は、返されたパジネーション状態がオブジェクトの現在のパジネーション状態であり、返されたパジネーションの質が PaginationQuality.clipped-outside でなければなりません。
Box などのコンテナ (パジネーションによってその子をページ間で分割しないようにする場合)。このようなコンテナは、現行ページに子を収容できない場合は、次の 2 つのステップに従う必要があります。
2. 子にパジネーションを依頼し、返された
PaginationQuality が
PaginationQuality.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
}
}
}
注意事項
(メソッド)
指定された (x、y) ポイントをカバーする TextFlowBox の EventForwarder 子孫を返します。
x, y: ポイントの座標です。
戻り値
プログラミング注意事項
注意事項
オーバーライド
サブクラスは、上記の指定に適合する様式で、このメソッドを実装しなければなりません。
(メソッド)
public | {BasicTextFlowBox.register-options}:void |
このオブジェクトがバインドのモニタリングを必要とする非ローカル オプション キーを登録します。
プログラミング注意事項
このメソッドは、オブジェクトがモニタしているオプション キーを確認する必要がある場合に任意のコード内で呼び出されます。このメソッドは、プロシージャ
p をまったく呼び出さないかまたは何回か呼び出し、呼び出すたびに引数として
OptionKey を渡す必要があります。このオブジェクトによりモニタリングされるオプション キーのセットは、
p のすべての呼び出しで指定されたオプション キー セットの連結であると見なされます。
p を複数回呼び出せるという能力を利用して、オプション親はモニタの対象となるオプション キーのリストを指定して
p を一度呼び出し、次に、同じ引数
p を与えてオプションの子それぞれの
register-options メソッドを呼び出し、このメソッドの目的を果たすことができます。この方法はシンプルですが、ほとんどの場合は、オプション親がその子における
register-options 呼び出しの結果をキャッシュして、親の
register-options メソッドが呼び出されたときにそのリストを提供する方がより効率的です。ローカル バインディング オプションへの変更通知は、それらのキーが登録されていない場合でも行われます。
オーバーライド
OptionListInterface.register-options の既定の実装は、このオブジェクトの変更ハンドラを持つ各非ローカル オプションで
p を呼び出します。サブクラスは、
{super.register-options p} を呼び出し、登録される必要がある追加のオプション キー上全てで、
p を呼び出すように、このメソッドをオーバーライドする必要する必要があります。一般的に、これらの追加のオプション キーは、子供または子孫のオブジェクトが監視する必要がある非ローカル オプションに対応します。それは、このオブジェクトの子オブジェクト上で、
register-options を呼び出すことによって決定されます。
注意 一般的に、このメソッドをオーバーライドする必要があるオブジェクトだけが、オプションの子を持つオブジェクトです。
(メソッド)
public | {BasicTextFlowBox.search-next-here}:(pattern-start:#GuiMark, pattern-end:#GuiMark) |
この TextFlowBox 内に現れるパターンの境界を返します。
gm: 検索を開始する
GuiMark。指定しない場合は
TextFlowBox の最初から検索を開始します。
戻り値
パターンの開始を定める GuiMark と、終了を定める GuiMark。
説明
注意事項
現在の実装では、この
TextFlowBox のトップレベルの内容から
TextSearchPattern 型の
SearchPattern を見つけるだけです (他のパターンはグラフィカルな子から返される可能性があります)。また、現在の実装ではグラフィックの境界上にかかる
TextSearchPattern は検索しないことに注意してください。
(メソッド)
public | {BasicTextFlowBox.search-prev-here}:(#GuiMark, #GuiMark) |
この TextFlowBox 内に現れるパターンの境界を返します。
gm: 検索を開始する
GuiMark。指定しない場合は
TextFlowBox の最後から検索を開始します。
戻り値
パターンの開始を定める GuiMark と、終了を定める GuiMark。
説明
注意事項
現在の実装では、この
TextFlowBox のトップレベルの内容から
TextSearchPattern 型の
SearchPattern を見つけるだけです (他のパターンはグラフィカルな子から返される可能性があります)。また、現在の実装ではグラフィックの境界上にかかる
TextSearchPattern は検索しないことに注意してください。
(メソッド)
このオブジェクトにレイアウト幅と高さを代入します。
説明
このオブジェクトで set-size を呼び出すと、オブジェクトのレイアウト サイズを代入し、オブジェクトのレイアウト ネゴシエーションを完了します。グラフィック階層のすべてのオブジェクトにレイアウト サイズが代入された後で階層のレイアウト ネゴシエーションが完了します。
bounds: このオブジェクトの境界ボックスの左右および上下の範囲をオブジェクトの起点から相対的に示す
GRect。
プログラミング注意事項
このメソッドは、オブジェクトのグラフィカルな親によって呼び出されます。
オーバーライド