#!/usr/bin/env python3
from curses import wrapper
import curses
import time


class ActiveNumber:
    def __init__(self, window, row=0, col=0, number=0, active=False):
        self.window = window
        self.row = row
        self.col = col
        self.number = number
        self.active = active

    def draw(self):
        attr = curses.A_NORMAL
        if self.active:
            attr = curses.A_STANDOUT
        self.window.move(self.row, self.col)
        self.window.addstr("<")
        self.window.addstr(str(self.number).zfill(3), attr)
        self.window.addstr(">")
        self.window.refresh()

    def incr(self):
        self.number += 1 if self.number < 255 else self.number

    def decr(self):
        self.number -= 1 if self.number > 0 else self.number

def progress(window):
    # TODO: make it good
    win = window.subwin(10, 3, 0, 0)
    win.border(0)
    win.addstr(1, 1, "#")
    win.refresh()

def main(stdscr):
    stdscr.clear()
    # hide cursor
    curses.curs_set(0)

    #progress(stdscr)
    n1 = ActiveNumber(stdscr)
    n1.draw()

    stdscr.refresh()
    while True:
        k = stdscr.getkey()
        if str(k) == 'KEY_DOWN':
            n1.active = False
        if str(k) == 'KEY_UP':
            n1.active = True
        if str(k) == 'KEY_RIGHT':
            n1.incr()
        if str(k) == 'KEY_LEFT':
            n1.decr()
        n1.draw()

wrapper(main)