tests/curses_mouse.py
author Radek Brich <radek.brich@devl.cz>
Fri, 18 Jan 2013 22:36:50 +0100
changeset 62 2f61931520c9
parent 20 472a753664f9
child 110 cf3d49cdd6e2
permissions -rwxr-xr-x
Rework layouts: Layout is now normal Container which places its children upon resize event. Drop TopWindow, top is now any subclass of Container. Add floater concept: floaters are widgets drawn over normal widgets, not clipped by parent. Add HScrollbar and Scrollbar abstract base class.

#!/usr/bin/python
# -*- coding: utf-8 -*-

import curses
import locale

locale.setlocale(locale.LC_ALL,"")

def doStuff(screen):
    screen.addstr('%s\n' % curses.termname())
    screen.keypad(1)
    screen.scrollok(1)
    curses.nl()
    curses.mousemask(curses.ALL_MOUSE_EVENTS | curses.REPORT_MOUSE_POSITION)
    curses.mouseinterval(0)  # do not wait to detect clicks, we use only press/release
    while True:
        c = screen.getch()
        char = ' '
        if c < 256:
            char = curses.unctrl(c)
        screen.addstr('key: %x %s\n' % (c, char))

        if c == curses.KEY_MOUSE:
            m = curses.getmouse()
            screen.addstr('(%d %d %d %d %x)\n' % m)

        screen.refresh()

curses.wrapper(doStuff)