Ruby 1.9.3 リファレンスマニュアル > ライブラリ一覧 > cursesライブラリ > Curses::MouseEventクラス > bstate
bstate -> Integer[permalink][rdoc]マウスのボタンがクリックされたとか、押しっぱなしといった状態を返します。
戻り値の各ビットが、4 つのボタンを状態を表現しています。 次の定数を使って、状態を取得します。
ボタン 1 を離した状態
ボタン 1 を押した状態
ボタン 1 をクリックした状態
ボタン 1 をダブルクリックした状態
ボタン 1 をトリプルクリックした状態
ボタン 2 を離した状態
ボタン 2 を押した状態
ボタン 2 をクリックした状態
ボタン 2 をダブルクリックした状態
ボタン 2 をトリプルクリックした状態
ボタン 3 を離した状態
ボタン 3 を押した状態
ボタン 3 をクリックした状態
ボタン 3 をダブルクリックした状態
ボタン 3 をトリプルクリックした状態
ボタン 4 を離した状態
ボタン 4 を押した状態
ボタン 4 をクリックした状態
ボタン 4 をダブルクリックした状態
ボタン 4 をトリプルクリックした状態
例:
require "curses"
Curses.init_screen
begin
Curses.cbreak
Curses.stdscr.keypad(true)
Curses.mousemask(Curses::BUTTON1_PRESSED | Curses::BUTTON1_RELEASED |
Curses::BUTTON1_CLICKED | Curses::BUTTON1_DOUBLE_CLICKED |
Curses::BUTTON1_TRIPLE_CLICKED)
s = "Click"
Curses.setpos(Curses.lines / 2, Curses.cols / 2 - (s.length / 2))
Curses.addstr(s)
Curses.refresh
if Curses.getch == Curses::KEY_MOUSE
m = Curses.getmouse
if m
a = []
if m.bstate & Curses::BUTTON1_PRESSED
a.push("pressed")
end
if m.bstate & Curses::BUTTON1_RELEASED
a.push("released")
end
if m.bstate & Curses::BUTTON1_CLICKED
a.push("clicked")
end
if m.bstate & Curses::BUTTON1_DOUBLE_CLICKED
a.push("double-clicked")
end
if m.bstate & Curses::BUTTON1_TRIPLE_CLICKED
a.push("triple-clicked")
end
s = a.join(" ")
Curses.setpos(Curses.lines / 2 + 1, Curses.cols / 2 - (s.length / 2))
Curses.addstr(s)
Curses.refresh
end
end
ensure
Curses.close_screen
end
[SEE_ALSO] Curses.#mousemask、Curses.#getmouse