summaryrefslogtreecommitdiffhomepage
path: root/contrib/luacurses/test/mouse.lua
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/luacurses/test/mouse.lua')
-rw-r--r--contrib/luacurses/test/mouse.lua54
1 files changed, 54 insertions, 0 deletions
diff --git a/contrib/luacurses/test/mouse.lua b/contrib/luacurses/test/mouse.lua
new file mode 100644
index 000000000..0129cd8c4
--- /dev/null
+++ b/contrib/luacurses/test/mouse.lua
@@ -0,0 +1,54 @@
+
+require("curses");
+
+function show_message(m)
+ local width = string.len(m) + 6;
+ local win = curses.newwin(5, width, (lines - 5) / 2, (cols - width) / 2);
+ win:keypad(true);
+ win:attron(curses.COLOR_PAIR(curses.COLOR_RED));
+ win:box('|', '-', '+');
+ win:mvaddstr(2, 3, m);
+ win:refresh();
+ win:getch();
+ win:delwin();
+end
+
+curses.initscr();
+curses.start_color();
+curses.init_pair(curses.COLOR_BLUE, curses.COLOR_BLUE, curses.COLOR_WHITE);
+curses.init_pair(curses.COLOR_RED, curses.COLOR_RED, curses.COLOR_WHITE);
+curses.cbreak();
+curses.noecho();
+curses.keypad(curses.stdscr(), true);
+
+lines = curses.LINES();
+cols = curses.COLS();
+
+mmasks =
+{
+ curses.BUTTON1_CLICKED,
+ curses.BUTTON2_CLICKED,
+ curses.BUTTON3_CLICKED,
+ curses.BUTTON4_CLICKED
+};
+
+table.foreachi(mmasks, function(_i, _m) curses.addmousemask(_m) end);
+curses.attron(curses.COLOR_PAIR(curses.COLOR_BLUE));
+curses.attron(curses.A_BOLD);
+curses.mvaddstr((lines - 5) / 2, (cols - 10) / 2, "click");
+
+curses.refresh();
+while(true) do
+ local c = curses.getch();
+ if (c == curses.KEY_MOUSE) then
+ local r, id, x, y, z, bstate = curses.getmouse();
+ if (r) then
+ show_message("id = " .. id .. ", x = " .. x .. ", y = " .. y .. ", z = " .. z .. ", bstate = " ..
+ string.format("0x%x", bstate));
+ end
+ break;
+ end
+end
+
+curses.endwin();
+