class

Runtime::Tray

Inherits Reference < Object

トレイ常駐 UI(仕様書 4.7 節)。

メニュー項目のハンドラは対応する usecase を呼ぶだけで、tray 自身はロジックを持たない。 呼び出し先は composition root が on_command に登録する。

Constants

APP_ICON_RESOURCE = 1_u32

リソースに埋め込むアプリケーションアイコンの ID。

CLASS_NAME = "KxNotifyUtilsTrayWindow"
ICON_ID = 1_u32
IDLE_TIMER_ID = 1_u64

メニュー表示中に主ループを進めるためのタイマー。 間隔は主ループの 1 拍(10 ミリ秒)に合わせる。

IDLE_TIMER_INTERVAL_MS = 10_u32
Log = ::Log.for("runtime")
WINDOW_NAME = "KxNotifyUtils"

Constructors

Class methods

window_proc(hwnd : LibWin32::Handle, message : UInt32, w_param : LibWin32::WParam, l_param : LibWin32::LParam) : LibWin32::LResult

C の関数ポインタとして渡すため、クロージャを持たないクラスメソッドとして定義する。

Source

Instance methods

on_command

メニューが選ばれたときに呼ぶフック。

Source
on_command=(on_command : Proc(Command, Nil))

メニューが選ばれたときに呼ぶフック。

Source
on_idle

メニュー表示中に一定間隔で呼ぶフック。composition root が主ループ 1 拍分を登録する。

Source
on_idle=(on_idle : Proc(Nil))

メニュー表示中に一定間隔で呼ぶフック。composition root が主ループ 1 拍分を登録する。

Source
paused

中継の一時停止の状態。メニューのチェック表示に使う。

Source
paused=(paused : Bool)

中継の一時停止の状態。メニューのチェック表示に使う。

Source
pump

溜まっているメッセージを処理する。 常駐の主ループから繰り返し呼ぶため、メッセージが無ければすぐ戻る。

Source
quit_requested?
Source
show_balloon(title : String, body : String, level : UInt32 = LibWin32::NIIF_INFO) : Bool

バルーン通知。許可の誘導とエラーの通知に使う。 出せたかどうかを返す。 アイコンを登録できていなければ何も出ない。Explorer の再起動後に 登録し直せなかった場合がこれにあたる。 出たことにして進む呼び出し側があるため、黙って戻らない(issue #10)。

Source
start

メッセージ専用ウィンドウを作り、トレイアイコンを登録する。

Source
steamvr_available=(value : Bool) : Nil
Source
steamvr_available?

SteamVR 連携が使えるか。使えないときは登録と解除を選べなくする。

ツールチップにも出すため、代入のたびに書き換えにいく(issue #27)。 呼び出し側に書き換えを頼むと、状態を入れたのに出ないままの経路が作れてしまう。

ここで値が変わったかは見ない。判断は update_tooltip が文字列で行う。

Source
steamvr_registered
Source
steamvr_registered=(steamvr_registered : Bool)
Source
stop
Source
update_state

更新の進み具合。取得と適用の項目の出し分けに使う。

Source
update_state=(update_state : UpdateState)

更新の進み具合。取得と適用の項目の出し分けに使う。

Source

Nested types