MenuManager (クラス)
public MenuManager {inherits ImplicitPointerGrabManager}
インポート元: CURL.GUI.STANDARD. package 内で定義されています CURL.GUI.BASE.

単一のメニューを制御します。そして、それは MenuBar か、MenuPane.popup を呼び出すことで作成されるポップアップ メニューです。

説明

MenuManager には、開かれた各メニューにアクセスするのに使用されるトラバースのリストがあります。そのリストの最初のノードはルートのメニューになり、最後のノードは最後に開かれたメニューになります。ポインタのキャプチャやリリースも制御します。
MenuMenuItem は、menu-manager を調べるプロパティを使用して MenuManagerにアクセスします。
同時に最大一つのアクティブな MenuManager が存在します。それは、GuiManager.menu-manager を通じてアクセス可能です。
導入: バージョン 6.0

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

プロパティ
active-grab:ポインタグラブを持っている Graphic がある場合、それになります。
フィールド protected MenuManager.active-grab:#Graphic =null
active-item:最後にアクティブになったメニューのオブジェクトです。
フィールド protected MenuManager.active-item:#Visual =null
active?:MenuManager がアクティブな状態かそうでないかを示します。
フィールド public-get protected-set MenuManager.active?:bool
implicit-child-grab-object:ImplicitPointerGrabManager.continue-implicit-pointer-grab に渡されるオブジェクトです。ImplicitPointerGrabManager.release-implicit-pointer-grab によって null にリセットされます。
フィールド protected MenuManager.implicit-child-grab-object:#Visual =null
root-menu:この MenuManager が関連する Menu です。
フィールド public-get protected-set MenuManager.root-menu:Menu
traversal:開かれた Menu のトラバースのリストです。
フィールド public-get protected-set MenuManager.traversal:#MenuTraversal

メソッド
begin-menu-traversal:MenuManagerをアクティブにし、初期トラバーサルを作成します。
public {MenuManager.begin-menu-traversal item:#MenuItem}:void
begin-menu-traversal-from-root:この MenuManagerをアクティブにし、MenuManager.root-menu 内の最初のMenuItem から開始するトラバーサルを作成します。
public {MenuManager.begin-menu-traversal-from-root}:void
continue-implicit-pointer-grab:暗黙的なポインタのグラブのグラブ オブジェクトを指定します。
public {MenuManager.continue-implicit-pointer-grab v:Visual}:void
end-menu-traversal:全てのアクティブなメニューのカスケードを解除したり、マネージャを非アクティブにしたり、ポインター グラブを解放することで、このメニューのトラバースを終了します。
public {MenuManager.end-menu-traversal}:void
forward-menu-event:PointerEventを、イベントの座標を含む最後にポストされた BaseMenuPane に転送します。
public {MenuManager.forward-menu-event
e:PointerEvent,
from:Graphic,
traversal:#MenuTraversal = self.traversal
}:bool
get-last-traversal:アクティブなメニュー アイテムを持つ最後のトラバースを返します。
public {MenuManager.get-last-traversal}:#MenuTraversal
get-last-traversal-menu:最後のトラバースに関連するメニューを返します。これがアクティブでなければ、null を返します。
public {MenuManager.get-last-traversal-menu}:#Menu
open-submenu:最後のトラバースが見つかるまで、トラバースを見ていきます。そのトラバースの現在のアイテムが SubMenu の場合、そのサブメニューを開きます。
public {MenuManager.open-submenu}:void
pointer-grab-ended:MenuManager が終了したことでポインタ グラブが開始したことを通知します。
protected {MenuManager.pointer-grab-ended}:void
process-access-char:アクセス キーを操作します。
public {MenuManager.process-access-char
ch:char,
query-only?:bool = false
}:bool
process-access-key-event:アクセス キー イベントを処理します。キーが、現在の Menu 上のアクセス キーであれば true を返します。
public {MenuManager.process-access-key-event e:KeyEvent}:bool
process-key-press:キーイベントを処理します。イベントが既に処理されている場合は true を返し(これ以上処理が行われるべきでないことを暗に意味しています。)、そうでない場合は false を返します。
public {MenuManager.process-key-press e:KeyPress}:bool
release-implicit-pointer-grab:暗黙的なポインタ グラブを終了します。
public {MenuManager.release-implicit-pointer-grab}:void
set-leaf-item:MenuItemMenu 内のアクティブなアイテムにします。
public {MenuManager.set-leaf-item item:MenuItem}:void
unset-leaf-item:アクティブな MenuItem の選択を解除します。
public {MenuManager.unset-leaf-item item:MenuItem}:void
walk-traversals:MenuPane が開かれる度にプロシージャを呼び出します。
public {MenuManager.walk-traversals
p:{proc-type {MenuTraversal}:void}
}:void
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize



コンストラクタ詳細
default (コンストラクタ)
public {MenuManager.default root-menu:Menu}

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

root-menu: この MenuManager が関連する Menu です。
導入: バージョン 6.0



プロパティ詳細
active-grab (フィールド)
protected MenuManager.active-grab:#Graphic =null

ポインタグラブを持っている Graphic がある場合、それになります。

導入: バージョン 6.0


active-item (フィールド)
protected MenuManager.active-item:#Visual =null

最後にアクティブになったメニューのオブジェクトです。

説明

これは、MenuMenuItem のどちらかになります。
導入: バージョン 6.0


active? (フィールド)
public-get protected-set MenuManager.active?:bool

MenuManager がアクティブな状態かそうでないかを示します。

説明

MenuManager.begin-menu-traversal 内で true に設定し、MenuManager.end-menu-traversal内で false に設定されます。
導入: バージョン 6.0


implicit-child-grab-object (フィールド)
protected MenuManager.implicit-child-grab-object:#Visual =null

ImplicitPointerGrabManager.continue-implicit-pointer-grab に渡されるオブジェクトです。ImplicitPointerGrabManager.release-implicit-pointer-grab によって null にリセットされます。

導入: バージョン 6.0


root-menu (フィールド)
public-get protected-set MenuManager.root-menu:Menu

この MenuManager が関連する Menu です。

導入: バージョン 6.0


traversal (フィールド)
public-get protected-set MenuManager.traversal:#MenuTraversal

開かれた Menu のトラバースのリストです。

導入: バージョン 6.0





メソッド詳細
begin-menu-traversal (メソッド)
public {MenuManager.begin-menu-traversal item:#MenuItem}:void

MenuManagerをアクティブにし、初期トラバーサルを作成します。

item: 最初にアクティブな MenuManager.root-menu のアイテムです。null の可能性があります。

注意事項

itemnull の場合、MenuManager.root-menu 内の MenuItem は選択されません。
導入: バージョン 6.0


begin-menu-traversal-from-root (メソッド)
public {MenuManager.begin-menu-traversal-from-root}:void

この MenuManagerをアクティブにし、MenuManager.root-menu 内の最初のMenuItem から開始するトラバーサルを作成します。

導入: バージョン 6.0


continue-implicit-pointer-grab (メソッド)
public {MenuManager.continue-implicit-pointer-grab v:Visual}:void

暗黙的なポインタのグラブのグラブ オブジェクトを指定します。

v: グラブ オブジェクトになるオブジェクト。

説明

暗黙的なポインタのグラブが発生した場合、そのグラブ オブジェクトは変更され、v になります。発生しない場合、この呼び出しの効果はありません。

プログラミング注意事項

このメソッドは、PointerPress.continue-implicit-pointer-grabDragStarted.continue-implicit-pointer-grab から呼び出されます。


end-menu-traversal (メソッド)
public {MenuManager.end-menu-traversal}:void

全てのアクティブなメニューのカスケードを解除したり、マネージャを非アクティブにしたり、ポインター グラブを解放することで、このメニューのトラバースを終了します。

導入: バージョン 6.0


forward-menu-event (メソッド)
public {MenuManager.forward-menu-event
e:PointerEvent,
from:Graphic,
traversal:#MenuTraversal = self.traversal
}:bool

PointerEventを、イベントの座標を含む最後にポストされた BaseMenuPane に転送します。

e: 転送される PointerEvent です。
from: ポインタ イベント eが、最初に起動されたターゲットです。
traversal: ポインタの座標を含む BaseMenuPane を探すのに使用される MenuTraversal です。

戻り値

ポインタ イベントe の座標を含む traversal 内の BaseMenuPane が見つかった場合、true になります。
導入: バージョン 6.0


get-last-traversal (メソッド)
public {MenuManager.get-last-traversal}:#MenuTraversal

アクティブなメニュー アイテムを持つ最後のトラバースを返します。

導入: バージョン 6.0


get-last-traversal-menu (メソッド)
public {MenuManager.get-last-traversal-menu}:#Menu

最後のトラバースに関連するメニューを返します。これがアクティブでなければ、null を返します。

注意事項

これは MenuManager.get-last-traversal とは異なり、アクティブなメニュー アイテムがある最後のトラバースを返します。
導入: バージョン 6.0


open-submenu (メソッド)
public {MenuManager.open-submenu}:void

最後のトラバースが見つかるまで、トラバースを見ていきます。そのトラバースの現在のアイテムが SubMenu の場合、そのサブメニューを開きます。

プログラミング注意事項

現在のサブ メニューを開くためにこれを呼び出します。アクティブでない MenuManager でこれを呼び出すとエラーになります。
導入: バージョン 6.0


pointer-grab-ended (メソッド)
protected {MenuManager.pointer-grab-ended}:void

MenuManager が終了したことでポインタ グラブが開始したことを通知します。

注意事項

MenuManager.active-grab も参照してください。

説明

MenuManager がトラバースを開始すると、ポインター グラブを開始するために、GuiManager.grab-pointerを呼び出します。このグラブが終了すると、このメソッドが呼び出されます。
MenuManager.active-grab が、非 null である場合、グラブはすぐに終了します。そのとき、このメソッドは再びポインターをグラブしようとします。
導入: バージョン 6.0


process-access-char (メソッド)
public {MenuManager.process-access-char
ch:char,
query-only?:bool = false
}:bool

アクセス キーを操作します。

ch: 文字の値。
query-only?: true の場合、このメソッドを呼び出すことはアクションを実行しません。ch が、現在の MenuBarMenuPane のアクセス キーである場合、単純に true を返します。

説明

ch が現在の Menu におけるアクセス文字である場合、関連するメニュー アイテムをアクティブにし、true を返します。そうでなければ、false を返します。
アクセス キーは MenuItem をナビゲートするためのキーです。
導入: バージョン 6.0


process-access-key-event (メソッド)
public {MenuManager.process-access-key-event e:KeyEvent}:bool

アクセス キー イベントを処理します。キーが、現在の Menu 上のアクセス キーであれば true を返します。

説明

eKeyPress イベントの場合、MenuManager.process-access-char にデリゲートします。そうでなければ、エラーをスローします。

プログラミング注意事項

これは、メニュー アクセス キーになりうるキー プレス イベントに関して MenuManager.process-key-press から呼び出されます。
導入: バージョン 6.0


process-key-press (メソッド)
public {MenuManager.process-key-press e:KeyPress}:bool

キーイベントを処理します。イベントが既に処理されている場合は true を返し(これ以上処理が行われるべきでないことを暗に意味しています。)、そうでない場合は false を返します。

説明

GuiManager は、操作できるようにキーボード イベントをFocusManager にデリゲートします。メニューがアクティブであれば、FocusManagerKeyPressを操作するためにこのルーチンを呼び出します。
このメソッドは GuiManager での使用のために設計されていますが、キーをシミュレーションするために呼び出すことができない理由はありません。
e: キープレス イベント。
導入: バージョン 6.0


release-implicit-pointer-grab (メソッド)
public {MenuManager.release-implicit-pointer-grab}:void

暗黙的なポインタ グラブを終了します。

説明

暗黙的なポインタのグラブが実行されている場合は、その操作が終了されます。明示的なポインタのグラブが実行されている場合、またはポインタのグラブが実行されていない場合は、この呼び出しは効果がありません。

プログラミング注意事項

このメソッドは、PointerPress.release-implicit-pointer-grab および DragStarted.release-implicit-pointer-grab から呼び出されます。


set-leaf-item (メソッド)
public {MenuManager.set-leaf-item item:MenuItem}:void

MenuItemMenu 内のアクティブなアイテムにします。

item: メニュー アイテムによって新しく選択される MenuItem です。

注意事項

itemMenu に含まれていなかったり、付随している Menu が開かれていない場合、このメソッドを呼び出しても何も起こりません。

プログラミング注意事項

Menu において選択されている MenuItem を変更するためにこれを呼び出します。これによって Menu は開かれません。
導入: バージョン 6.0


unset-leaf-item (メソッド)
public {MenuManager.unset-leaf-item item:MenuItem}:void

アクティブな MenuItem の選択を解除します。

item: 選択が解除された MenuItem です。
導入: バージョン 6.0


walk-traversals (メソッド)
public {MenuManager.walk-traversals
p:{proc-type {MenuTraversal}:void}
}:void

MenuPane が開かれる度にプロシージャを呼び出します。

導入: バージョン 6.0