Skip to content
/foolPublic

Text-based User Interface Components

Notifications You must be signed in to change notification settings

s3bw/fool

Repository files navigation

Fool

Text-based User Interface Components

The goal is to create tui displays quickly, and to encapsulate the interaction logic with each component at instantiation.

Install

For latest

pip install git+ssh://git@github.com/foxyblue/fool.git@master 

Fool Projects

Examples

Please see example.py for working examples of the views found here

Accept user input

fromfoolimportconsolefromfool.barsimportTextBarfromfool.usripimportInputdefview(screen, model): left, right=model['left_right'] return [ TextBar("Option 1 or 2?", 5, 5), Input(left=left, right=right), ] defview_option_1(screen, model): return [TextBar("Option 1", 5, 5)] defview_option_2(screen, model): return [TextBar("Option 2", 5, 5)] model={'left_right': ('h', 'l')} action=console.display(view, model) ifaction=='left': console.display(view_option_1, model, close='q') elifaction=='right': console.display(view_option_2, model, close='q')

Display content

Display text in a window

fromfoolimportconsolefromfool.contentimportTextBlobfromfool.windowsimportTextWindowdefview(screen, model): main=TextWindow(w=70) main.content= [ TextBlob(path='example_text.txt') ] return [main] model={} console.display(view, model, close='q')

Columns

Populate a table.

fromfoolimportconsolefromfool.contentimportColumn, BooleanColumnfromfool.windowsimportTableWindowdefview(screen, model): """In this example we see a scrollable table window."""main_items=model['main'] main=TableWindow(w=40, items=main_items, scroll=('k', 'j')) content= [ BooleanColumn(name='more', size=2, align='centre'), Column(name='title', size=10, align='left'), Column(name='description', size=32, align='left'), ] main.content=contentreturn [main] model={'main': [{'title': 'first item', 'description': 'first item description', 'more': True},{'title': '2nd item', 'description': '2nd item description', 'more': False},{'title': '3rd item', 'description': '3rd item description', 'more': True}, ] } console.display(view, model, close='q')

About

Text-based User Interface Components

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages