Metadata-Version: 2.1
Name: ezcurses
Version: 0.3.1
Summary: library to help with curses programming
Home-page: https://www.bitbucket.org/johannestaas/ezcurses
Author: Johan Nestaas
Author-email: johannestaas@gmail.com
License: GPLv3+
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Environment :: Console
Classifier: Environment :: X11 Applications :: Qt
Classifier: Environment :: MacOS X
Classifier: Environment :: Win32 (MS Windows)
Classifier: Operating System :: POSIX
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python
License-File: LICENSE

ezcurses
========

library to help with curses programming (Python 3.3+ compatible)

Installation
------------

From the project root directory::

    $ python setup.py install

Usage
-----

The easiest method is to just decorate your function, and use the injected ``scr`` argument::

    from time import sleep
    from ezcurses import curse

    @curse
    def main(scr, message_string):
        w, h = scr.max_size()
        scr.write(message_string, pos=(w // 2, h // 2))
        scr.refresh()
        sleep(1)

    if __name__ == '__main__':
        main('Hello world!')


You can also use the Cursed context manager.
Here's an example with windows with backgrounds and borders and colors::

    from ezcurses import Cursed

    with Cursed() as scr:
        w, h = scr.max_size()
        win1 = scr.new_win(orig=(0, 0), size=(20, 20))
        win2 = scr.new_win(orig=(20, 0), size=(20, 20))
        win1.border()
        win2.border()
        win1.background('+', color='red')
        win2.background('.', color=('green', 'blue'))
        win1.refresh()
        win2.refresh()
        s = win1.getstr((1, 1), echo=True)
        win2.write(s, (1, 1), color=('red', 'black'))
        win2.refresh()
        win1.write('Press q to quit', (1, 1), color=('black', 'red'))
        while win1.getkey() != 'q':
            pass

Release Notes
-------------

:0.2.12:
  - Add windows support with unicurses
:0.2.11:
  - Readme example was bad
:0.2.10:
  - Add multi_menu feature for selections spanning a screen
:0.2.9:
  - Rename _msgs to Menu.items
:0.2.8:
  - Much more intricate menu logic and new multi_menu.py example
:0.2.7:
  - Fix menu origin in windows bug
:0.2.6:
  - Make layout creatable with ``Screen.new_layout(border=True)``
:0.2.5:
  - Add Layout feature for bootstrap like rows and columns
:0.2.4:
  - Add Menu functionality and an example in examples/menu_example.py
:0.2.3:
  - make it much more tolerable for floats, if user does math stuff
:0.2.2:
  - add ``curse`` decorator
  - rename main context manager to ``Cursed``
:0.2.1:
  - fixed a few bugs in window without size
:0.2.0:
  - lots of clean up and testing, fix README
:0.1.2:
  - Make positional optional and a keyword ``pos`` for the ``getstr`` function
  - Add documentation to API
:0.1.1:
  - Make position optional for ``write`` and default (0, 0) like other funcs
:0.1.0:
  - New features for curses windows
  - get input, string and characters
  - add strings with colors to the window
  - add borders
  - draw lines
  - change background
  - very functional as is
:0.0.1:
  - Project created


