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

KeyPressMatcher の配列に基づく具象 KeyPressDescriptor

ユーザーが "a"、"Ctrl+Shift+A"、"Alt+Shift+A"、"Alt+Ctrl+A" ではなく、"A (Shift+A)"、"Ctrl+A"、または "Alt+A" を押すとメッセージがポップアップ表示される、KeyPress 用のイベント ハンドラを次に示します。


{let kpd:KeyPressDescriptor =
    {KeyPressMatchers "A", "Ctrl+A", "Alt+A"}
}
{Fill
    width=3cm,
    height=2cm,
    background="blue",
    {on e:PointerPress at f:Fill do
        {f.request-key-focus}
        {e.consume}
    },
    {on FocusIn at f:Fill do
        set f.background = "green"
    },
    {on FocusOut at f:Fill do
        set f.background = "red"
    },
    {on e:KeyPress do
        {if {kpd.matches? e} then
            {popup-message "Matched key event"}
        }
    }
}

コンストラクタ
default:KeyPressMatchers を初期化します。
コンストラクタ public {KeyPressMatchers.default ...:Object}

プロパティ
description:このオブジェクトによって要求されるキーと修飾子を表す文字列を返します。
アクセサ public KeyPressMatchers.description:String

メソッド
matches?:この KeyPressDescriptor が、指定された KeyPress と一致するかどうかを判断します。
public {KeyPressMatchers.matches? kp:KeyPress}:bool
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize



コンストラクタ詳細
default (コンストラクタ)
public {KeyPressMatchers.default ...:Object}

KeyPressMatchers を初期化します。

...: KeyPressMatcher のリスト、および KeyPressMatcher を作成できる要素。... 引数のそれぞれは、KeyPressMatcher インスタンスまたは文字列です。引数が文字列の場合は、その文字列は KeyPressMatcher.init への引数として指定され、最終的な KeyPressMatcher インスタンスが使用されます。最終的な KeyPressMatchers インスタンスは、このオブジェクトの作成に使用される KeyPressMatcher インスタンスのいずれかが一致するすべての KeyPress イベントに対応します。



プロパティ詳細
description (アクセサ)
アクセサ public KeyPressMatchers.description:String

このオブジェクトによって要求されるキーと修飾子を表す文字列を返します。

説明

この文字列は、同じ方法で作成されたオブジェクトであっても、異なるプラットフォーム上で異なる可能性があります。例えば、{KeyPressMatcher "Shift+Accel+A"} の説明は、Windows と Linux 上では、"Ctrl+Shift+A" ですが、Macintosh 上では、Command と Shift のシンボルが文字 A の前につきます。この可変性は、Accel 修飾子を使用していない時でも発生する可能性があることに注意してください。他の修飾子もシンボルによって置き換えられる可能性があるからです。
導入: バージョン 6.0





メソッド詳細
matches? (メソッド)
public {KeyPressMatchers.matches? kp:KeyPress}:bool

この KeyPressDescriptor が、指定された KeyPress と一致するかどうかを判断します。

kp: 確認する KeyPress

説明

このメソッドは、kp が KeyPressMatcher.default に指定された記述と一致する場合に true を返します。KeyPressMatcher の値と修飾フラグは、kp の対応するプロパティと比較されます。

KeyPress イベント kp と一致する、指定された KeyPressMatcher の場合は、非 shift 修飾フラグが正確に一致していなければなりません。この条件を満たす場合は、次の 3 つのケースがあります。

- KeyPressMatcher の値が文字で、KeyPressMatcher での修飾フラグが少なくとも 1 つ true である場合は、shift 修飾フラグが正確に一致する必要があり、大文字と小文字の区別なく値が一致しなければなりません。

- KeyPressMatcher の値が文字で、KeyPressMatcher での修飾フラグがまったく true でない場合は、値が正確に一致しなければなりません。

- その他の場合には、値が正確に一致しなければならず、kp.shift? が "有効" な場合 (KeyPress.shifty? の箇所で説明したように、kp.shifty? が true の場合) は、KeyPressMatcher のシフト修飾子が kp.shift? と一致しなければなりません。