SkinnableControlUI (クラス)
public abstract shared SkinnableControlUI {inherits GuiEventTarget, TaggedSkinnableObject, OptionListInterface, Observer}
インポート元: CURL.GUI.STANDARD. package 内で定義されています CURL.GUI.CONTROL-UI-SKINNABLE.
直接継承しているサブクラス: SkinnableTabContainerUI, SkinnableCalendarControlUI, SkinnableTabAccordionUI, SkinnableProgressBarUI, SkinnableTreeControlUI, SkinnableBaseTextControlUI-of, SkinnableBaseDropdownUI, SkinnableMenuButtonUI, SkinnableDateFieldUI, SkinnableMenuPaneUI, SkinnableScrollbarUI, SkinnableGroupBoxUI, SkinnableMenuBarUI, SkinnableRecordGridUI, SkinnableTextDisplayUI, SkinnableListBoxUI, SkinnableSpinControlUI, SkinnableMultiTabAccordionUI, SkinnableSliderUI

スキンが適用されたControlUI オブジェクトにおける共通の基本クラスです。

説明

GUI Toolkitにおいて、Controlは、高次元で、データをカプセル化するオブジェクトです。それらは、ルック アンド フィールをControlUIにデリゲートします。SkinnableControlUIは、このプロセスの延長と捉えることが出来ます。ジェスチャー解釈と外観を切り離し、それぞれを再デリゲートします。
SkinnableControlUIは、その外観(ルック)をControlSkinにデリゲートします。ControlSkinは、UIのグラフィック階層の管理とあらゆる特殊なデコレーションの描画の責任を負います。
SkinnableControlUIは、そのジェスチャー解釈(フィール)をControlFeelにデリゲートします。ControlFeelは、UIのイベントの管理の責任を負います。
これらのデリゲート連携の為に、SkinnableControlUIは、コンテンツタグとビジュアルタグを利用します。両方とも、String識別子("tag")を使用して、重要なビジュアル要素を識別する方法です。コンテンツタグは、特定の広く役に立つ機能を単純化する為にUIによって提供される標準のサブGraphicを参照します。例えば、ボタンのラベルやテキストコントロール内の編集可能なテキストボックスは、コンテンツグラフィックとしてタグ付けされます。ビジュアルタグは、多くのシステムが視覚的に反映する標準の状態を参照します。例えば、コントロールがキーボードフォーカスを持っているかどうか、コントロールが無効になっているかどうか等です。タグ付けされたコンテンツグラフィックとタグ付けされた視覚状態のリストは、SkinnableControlUIのサブクラスによって異なります。

オーバーライド

ControlUIに組み込まなければなりません。
導入: バージョン 6.0

コンストラクタ
default:このタイプの新しいオブジェクトを作成します。
コンストラクタ public {SkinnableControlUI.default
control-skin:#ControlSkin,
control-feel:#ControlFeel
}

プロパティ
control-feel:このオブジェクトで使用される ControlFeel です。
アクセサ public SkinnableControlUI.control-feel:ControlFeel
セッター public SkinnableControlUI.control-feel:ControlFeel
control-skin:このオブジェクトで使用される ControlSkin です。
アクセサ public SkinnableControlUI.control-skin:ControlSkin
セッター public SkinnableControlUI.control-skin:ControlSkin
control-valid?:この UI に Control が設定されているかどうかを返します。
アクセサ public SkinnableControlUI.control-valid?:bool
display-context:このオブジェクトに関連付けられている DisplayContext
非ローカル オプション public SkinnableControlUI.display-context:#DisplayContext
look-and-feel:オプションの検索と ControlUI の指定に使用される LookAndFeel
非ローカル オプション public SkinnableControlUI.look-and-feel:LookAndFeel
visual-state:現在の、このオブジェクトの主な外観の状態です。
アクセサ public SkinnableControlUI.visual-state:String
セッター public SkinnableControlUI.visual-state:String
プロパティ 継承 TaggedSkinnableObject: content-tag
プロパティ 継承 OptionListInterface: option-parent, option-register-proc, options, options-present-here, registered-option-keys, style-options
プロパティ 継承 EventTarget: event-handlers
プロパティ 継承 SkinnableObject: ui-object

メソッド
create-default-control-feel:登録が見つけられなかった時には、デフォルトのControlFeelを返します。
protected abstract {SkinnableControlUI.create-default-control-feel
}:ControlFeel
create-default-control-skin:登録が見つけられなかった時には、デフォルトのControlSkinを返します。
protected abstract {SkinnableControlUI.create-default-control-skin
}:ControlSkin
draw-skin:このオブジェクトのコントロール スキンを描画します。
protected {SkinnableControlUI.draw-skin renderer2d:Renderer2d}:void
get-tagged-content:設定されたタグの UI のグラフィカルコンテンツを取得します。
public {SkinnableControlUI.get-tagged-content
content-tag:String
}:#Graphic
get-tagged-visual-state:設定された外観のタグの String を返します。
public {SkinnableControlUI.get-tagged-visual-state
visual-tag:String
}:#String
handle-observer-message:監視対象のオブジェクトがメッセージを送信するときにこのメソッドを呼び出します。Observer はこのメソッドを実装して、変更が発生したときに処理を実行する必要があります。
protected {SkinnableControlUI.handle-observer-message
sender:Observable,
message:any
}:void
note-control-changed:UI の control プロパティが設定された時に呼び出されます。
protected {SkinnableControlUI.note-control-changed}:void
note-control-feel-changed:このオブジェクトにアタッチされた ControlFeel が変更された時に呼び出されます。
protected {SkinnableControlUI.note-control-feel-changed}:void
note-control-skin-changed:このオブジェクトにアタッチされた ControlSkin が変更された時に呼び出されます。
protected {SkinnableControlUI.note-control-skin-changed}:void
note-graphic-state-change:このオブジェクトのスクリーン境界は、関連したControlSkinから潜在的な影響を受けて変更されているかも知れないことに注意してください。
protected {SkinnableControlUI.note-graphic-state-change
change-type:GraphicStateChange
}:void
note-tagged-content-changed:このオブジェクトのタグが付けられたコンテンツ Graphic の一つが設定、または置き換えられた時に呼び出されます。
protected {SkinnableControlUI.note-tagged-content-changed
content-tag:String,
new-graphic:#Graphic
}:void
note-visual-state-changed:このオブジェクトの外観の状態の一つが変更された時に呼び出されます。
protected {SkinnableControlUI.note-visual-state-changed
visual-tag:String,
old-state:#String,
new-state:String
}:void
on-gui-event:GuiEventスタティック イベント ハンドラ
public {SkinnableControlUI.on-gui-event gui-event:GuiEvent}:void
option-change-notify:このオブジェクトで値が変更されたオプションについて、オプションの変更ハンドラを呼び出します。
protected {SkinnableControlUI.option-change-notify
item:OptionItem,
removed?:bool
}:void
overdraw-skin:このオブジェクトのコントロール スキンを描画します。
protected {SkinnableControlUI.overdraw-skin renderer2d:Renderer2d}:void
set-child-graphic:アタッチされた ControlSkin から、この UI のグラフィッカルな子を設定します。
protected {SkinnableControlUI.set-child-graphic g:#Graphic}:void
set-control-feel-from-registration:登録からcontrol-feelプロパティを設定します。
public {SkinnableControlUI.set-control-feel-from-registration}:void
set-control-skin-from-registration:登録からcontrol-skinプロパティを設定します。
public {SkinnableControlUI.set-control-skin-from-registration}:void
set-tagged-content:設定されたタグで UI のグラフィカルコンテンツを設定します。
public {SkinnableControlUI.set-tagged-content
content-tag:String,
content:#Graphic
}:void
set-tagged-visual-state:設定されたタグの外観の状態を設定します。
public {SkinnableControlUI.set-tagged-visual-state
visual-tag:String,
state:String
}:void
メソッド 継承 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-enter, on-drag-leave, 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-input-method-event, on-inspection, on-key-event, on-key-press, on-pointer-button, on-pointer-crossing, on-pointer-enter, on-pointer-envelope-event, on-pointer-event, on-pointer-leave, 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, notify-option-children, option-changed, 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
メソッド 継承 Observer: observe, stop-observing
メソッド 継承 EventTarget: accepts-event-class?, add-event-handler, event-handler-present?, remove-event-handler, verify-event
メソッド 継承 SkinnableObject: note-ui-changed
メソッド 継承 InitRestArgParser: non-keyword-init-arg, process-rest-args
メソッド 継承 BasicEventTarget: enqueue-event
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize



コンストラクタ詳細
default (コンストラクタ)
public {SkinnableControlUI.default
control-skin:#ControlSkin,
control-feel:#ControlFeel
}

このタイプの新しいオブジェクトを作成します。

control-skin: このオブジェクトで使用される ControlSkin です。
control-feel: このオブジェクトで使用される ControlFeel です。

説明

nullの場合、control-skincontrol-feelは、必要な時にLookAndFeelの登録からセットされます。
導入: バージョン 6.0



プロパティ詳細
control-feel (アクセサ)
アクセサ public SkinnableControlUI.control-feel:ControlFeel
セッター public SkinnableControlUI.control-feel:ControlFeel

このオブジェクトで使用される ControlFeel です。

説明

このプロパティを直接設定すると、LookAndFeel上の登録からオーバーライドします。
導入: バージョン 6.0


control-skin (アクセサ)
アクセサ public SkinnableControlUI.control-skin:ControlSkin
セッター public SkinnableControlUI.control-skin:ControlSkin

このオブジェクトで使用される ControlSkin です。

説明

このプロパティを直接設定すると、LookAndFeel上の登録からオーバーライドします。
導入: バージョン 6.0


control-valid? (アクセサ)
アクセサ public SkinnableControlUI.control-valid?:bool

この UI に Control が設定されているかどうかを返します。

説明

このUIがControlにアタッチされている間に、controlプロパティにアクセスしようとするとエラーが発生します。このプロパティは、この操作が安全であるかどうかを記録します。
導入: バージョン 6.0


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


look-and-feel (非ローカル オプション)
public SkinnableControlUI.look-and-feel:LookAndFeel

オプションの検索と ControlUI の指定に使用される LookAndFeel

説明

参照:Dialog.use-look-and-feel?


visual-state (アクセサ)
アクセサ public SkinnableControlUI.visual-state:String
セッター public SkinnableControlUI.visual-state:String

現在の、このオブジェクトの主な外観の状態です。

説明

既定の実装では、このアクセサを呼び出すことは get-tagged-visual-state メソッドを呼び出し、 visual-tag"" パラメータで set-tagged-visual-state を呼び出すことと同じです。
導入: バージョン 6.0





メソッド詳細
create-default-control-feel (メソッド)
protected abstract {SkinnableControlUI.create-default-control-feel
}:ControlFeel

登録が見つけられなかった時には、デフォルトのControlFeelを返します。

導入: バージョン 7.0


create-default-control-skin (メソッド)
protected abstract {SkinnableControlUI.create-default-control-skin
}:ControlSkin

登録が見つけられなかった時には、デフォルトのControlSkinを返します。

導入: バージョン 7.0


draw-skin (メソッド)
protected {SkinnableControlUI.draw-skin renderer2d:Renderer2d}:void

このオブジェクトのコントロール スキンを描画します。

renderer2d: 描画に使用される Renderer2d です。

説明

既定では、このメソッドは連携しているSkinnableControlUIControlSkin上でControlSkin.draw-skin-for-content-graphicを呼び出します。
TaggedSkinnableObject.overdraw-skinに似ていますが、下位のコンテンツを描画します。

プログラミング注意事項

一般的にこのメソッドは、Graphicも継承しているサブクラスの中から呼び出されます。標準のdrawメソッドの直前に呼び出されます。
導入: バージョン 6.0


get-tagged-content (メソッド)
public {SkinnableControlUI.get-tagged-content
content-tag:String
}:#Graphic

設定されたタグの UI のグラフィカルコンテンツを取得します。

content-tag: 対象の Graphic を表す String です。 "" が指定された場合は、 UI 自身になります。

戻り値

見つかった Graphic 、又は null です。
導入: バージョン 6.0


get-tagged-visual-state (メソッド)
public {SkinnableControlUI.get-tagged-visual-state
visual-tag:String
}:#String

設定された外観のタグの String を返します。

visual-tag: 対象の外観のタグを表す String です。 "" が指定された場合は、最初の外観の状態が返されます。

戻り値

設定されたタグの現在の外観の状態を示す String です。タグに対する値が見つからない場合は、 null になります。

説明

外観のタグは、一般に視覚的フィードバックをもたらすコントロールの状態に関連した情報のマーカーです。例えばコントロールがキーボード フォーカスを持っているのか、無効になっているのかどうか等です。
複合的で、独立した外観の状態を持つコントロールでは、 このメソッドは、タグによってある状態にアクセスするのに使用されます。
導入: バージョン 6.0


handle-observer-message (メソッド)
protected {SkinnableControlUI.handle-observer-message
sender:Observable,
message:any
}:void

監視対象のオブジェクトがメッセージを送信するときにこのメソッドを呼び出します。Observer はこのメソッドを実装して、変更が発生したときに処理を実行する必要があります。

sender: 変更があった Observable オブジェクトです。
message: これは、Observer からの変更に関する詳細情報が含まれています。詳細情報がない場合は NULL になります。


note-control-changed (メソッド)
protected {SkinnableControlUI.note-control-changed}:void

UI の control プロパティが設定された時に呼び出されます。

説明

このメソッドが呼ばれる場合、このオブジェクトが適切な Control にアタッチされ、control-valid? プロパティが true に設定されます。基本的な実装によって、ControlSkin のアタッチや ControlFeel の変更が note-control-changed を通じて通知されます。
導入: バージョン 6.0


note-control-feel-changed (メソッド)
protected {SkinnableControlUI.note-control-feel-changed}:void

このオブジェクトにアタッチされた ControlFeel が変更された時に呼び出されます。

導入: バージョン 6.0


note-control-skin-changed (メソッド)
protected {SkinnableControlUI.note-control-skin-changed}:void

このオブジェクトにアタッチされた ControlSkin が変更された時に呼び出されます。

導入: バージョン 6.0


note-graphic-state-change (メソッド)
protected {SkinnableControlUI.note-graphic-state-change
change-type:GraphicStateChange
}:void

このオブジェクトのスクリーン境界は、関連したControlSkinから潜在的な影響を受けて変更されているかも知れないことに注意してください。

change-type: 発生した変更の種類で、GraphicStateChange型です。

説明

既定では、このメソッドは、ControlSkin.note-content-graphic-state-changeを通じて、アタッチされたSkinnableControlUIControlSkinを通知します。

プログラミング注意事項

このメソッドは、GraphicであるTaggedSkinnableObjectよって、GraphicStateChangeがカバーする顕著な更新をGraphicが通知した時のみ呼び出されるべきです。
導入: バージョン 6.0


note-tagged-content-changed (メソッド)
protected {SkinnableControlUI.note-tagged-content-changed
content-tag:String,
new-graphic:#Graphic
}:void

このオブジェクトのタグが付けられたコンテンツ Graphic の一つが設定、または置き換えられた時に呼び出されます。

tag: 変更された、コンテンツ Graphic のタグです。
new-graphic: 変更された tag と一致する Graphic(または null)です。
導入: バージョン 6.0


note-visual-state-changed (メソッド)
protected {SkinnableControlUI.note-visual-state-changed
visual-tag:String,
old-state:#String,
new-state:String
}:void

このオブジェクトの外観の状態の一つが変更された時に呼び出されます。

visual-tag: 変更された外観の状態に関するタグです。 "" は、主な外観の状態です。
old-state: タグ付きの外観の状態に関する以前の値です。タグが存在していなかった場合は、null になります。
new-state: タグが付けられた外観の状態の新しい値です。
導入: バージョン 6.0


on-gui-event (メソッド)
public {SkinnableControlUI.on-gui-event gui-event:GuiEvent}:void

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

説明

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

オーバーライド

既定のメソッド GuiEventTarget.on-gui-event は何もしません。
導入: バージョン 6.0


option-change-notify (メソッド)
protected {SkinnableControlUI.option-change-notify
item:OptionItem,
removed?:bool
}:void

このオブジェクトで値が変更されたオプションについて、オプションの変更ハンドラを呼び出します。

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

説明

item で表されるオプション バインドについて、このオブジェクトのすべての変更ハンドラを見つけて呼び出します。さらに、このオブジェクトの OptionListInterface.option-changed メソッドを呼び出します。

オーバーライド

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


overdraw-skin (メソッド)
protected {SkinnableControlUI.overdraw-skin renderer2d:Renderer2d}:void

このオブジェクトのコントロール スキンを描画します。

renderer2d: 描画に使用される Renderer2d です。

説明

既定では、このメソッドは連携しているSkinnableControlUIControlSkin上でControlSkin.overdraw-skin-for-content-graphicを呼び出します。
TaggedSkinnableObject.draw-skinに似ていますが、上位のコンテンツを描画します。

プログラミング注意事項

一般的にこのメソッドは、Graphicも継承しているサブクラスの中から呼び出されます。標準のdrawメソッドの直後に呼び出されます。
導入: バージョン 6.0


set-child-graphic (メソッド)
protected {SkinnableControlUI.set-child-graphic g:#Graphic}:void

アタッチされた ControlSkin から、この UI のグラフィッカルな子を設定します。

説明

このメソッドは、このクラスがFrameに組み込まれている場合のみ機能します。全てのデフォルト、 ControlUI の具象クラスでは機能します。
導入: バージョン 6.0


set-control-feel-from-registration (メソッド)
public {SkinnableControlUI.set-control-feel-from-registration}:void

登録からcontrol-feelプロパティを設定します。

feel: 設定する ControlFeel

説明

直接設定するのとは異なり、登録が変更された時に、登録から設定されたフィールは、自動的に置き換えられます。
導入: バージョン 7.0


set-control-skin-from-registration (メソッド)
public {SkinnableControlUI.set-control-skin-from-registration}:void

登録からcontrol-skinプロパティを設定します。

skin: 設定する ControlSkin

説明

直接設定するのとは異なり、登録が変更された時に、登録から設定されたスキンは、自動的に置き換えられます。
導入: バージョン 7.0


set-tagged-content (メソッド)
public {SkinnableControlUI.set-tagged-content
content-tag:String,
content:#Graphic
}:void

設定されたタグで UI のグラフィカルコンテンツを設定します。

content-tag: 対象のコンテンツを表す String です。 "" が指定された場合は、 UI 自身になります。
content: タグ付きのコンテンツ になる Graphic です。そうでない時はnullです。

説明

contentGraphicは、しばしばTaggedSkinnableObjectのサブクラスです。
"" はセット出来ません。それは常にUI自身を参照するからです。 ""をセットしようとするとエラーがスローされます。
導入: バージョン 6.0


set-tagged-visual-state (メソッド)
public {SkinnableControlUI.set-tagged-visual-state
visual-tag:String,
state:String
}:void

設定されたタグの外観の状態を設定します。

visual-tag: 対象の外観のタグを表す String です。 "" が指定された場合は、最初の外観の状態になります。
state: 設定されたタグの新しい外観の状態を示す String です。

説明

外観のタグは、一般に視覚的フィードバックをもたらすコントロールの状態に関連した情報のマーカーです。例えばコントロールがキーボード フォーカスを持っているのか、無効になっているのかどうか等です。
複合的で、独立した外観の状態を持つコントロールでは、 このメソッドは、tagによってある状態を設定するのに使用されます。
visual-tagが存在していない場合には、作成され、指定された状態を割り当てます。
導入: バージョン 6.0