forked from mono/mono-curses
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
64 lines (46 loc) · 1.71 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
mono-curses
===========
The goal of this library was to bind curses. There is a
low-level binding in binding.cs and a few chunks in handles.cs
that provide a basic abstraction.
The focus of this work though has been on a simple GUI toolkit
for writing desktop applications, inspired on the 15 year old
work that I did for the Midnight Commander (you can tell I
like those colors).
The work in `gui' does not take advantage of curses "WINDOWS"
or the Panel library as am not familiar with them, instead we
create our own abstraction here.
License
=======
Console sharp is an ncurses binding licensed under the terms
of the MIT X11 license.
Features
========
Detects window changes, invokes event for widgets to relayout if
the user wishes to.
Hotkeys (Alt-letter) are handled by buttons and a handful others.
Dialog boxes automatically get centered (even with window size change
scenarios).
Entry widget has emacs keybindings.
ListView widget uses Model/View setup.
Color and black and white support (first parameter to Application.Init)
TODO
====
* Rename x,y,w,h into something better, expose rects?
* Merge Widget and Container?
* Add scrollbar and thumb to listviews
* Add text view widget
* Add scrollable control
* Checkbox/Radio button are missing
* Date/Time widget
* Process widget
* Command line parsing to demo (to active B&W support).
* Implement Layout managers, which?
* Write a manual/tutorial
Implementation Notes
====================
The initial implementation used SafeHandles, but since
SafeHandles only became available in recent versions of Mono,
I have switched the code to use IntPtrs for now, and will go
back to it when newer versions of Mono become more wildly
available.