Make it into a library

This commit is contained in:
Miguel de Icaza
2018-01-17 16:02:27 -05:00
parent 8159f641a2
commit 152126473a
25 changed files with 1162 additions and 33 deletions

View File

@@ -4,16 +4,74 @@ This is a simple UI toolkit for .NET.
It is an updated version of
[gui.cs](https://github.com/mono/mono-curses/blob/master/gui.cs) that
I wrote for [mono-curses](https://github.com/mono/mono-curses)
I wrote for [mono-curses](https://github.com/mono/mono-curses).
The toolkit contains various controls (labesl, text entry, buttons,
radio buttons, checkboxes, dialog boxes, windows, menus) for building
text user interfaces, a main loop, is designed to work on Curses and
the [Windows
Console](https://github.com/migueldeicaza/gui.cs/issues/27), works
well on both color and monochrome terminals and has mouse support on
terminal emulators that support it.
# API Documentation
Go to the [API documentation](https://migueldeicaza.github.io/gui.cs/api/Terminal.html) for details.
# Sample Usage
```
using Terminal.Gui;
class Demo {
static void Main ()
{
Application.Init ();
var top = Application.Top;
// Creates the top-level window to show
var win = new Window (new Rect (0, 1, top.Frame.Width, top.Frame.Height-1), "MyApp");
top.Add (win);
// Creates a menubar, the item "New" has a help menu.
var menu = new MenuBar (new MenuBarItem [] {
new MenuBarItem ("_File", new MenuItem [] {
new MenuItem ("_New", "Creates new file", NewFile),
new MenuItem ("_Close", "", () => Close ()),
new MenuItem ("_Quit", "", () => { if (Quit ()) top.Running = false; })
}),
new MenuBarItem ("_Edit", new MenuItem [] {
new MenuItem ("_Copy", "", null),
new MenuItem ("C_ut", "", null),
new MenuItem ("_Paste", "", null)
})
});
top.Add (menu);
// Add some controls
win.Add (
new Label (3, 2, "Login: "),
new TextField (14, 2, 40, ""),
new Label (3, 4, "Password: "),
new TextField (14, 4, 40, "") { Secret = true },
new CheckBox (3, 6, "Remember me"),
new RadioGroup (3, 8, new [] { "_Personal", "_Company" }),
new Button (3, 14, "Ok"),
new Button (10, 14, "Cancel"),
new Label (3, 18, "Press ESC and 9 to activate the menubar"));
ShowEntries (win);
Application.Run ();
}
}
```
This shows a UI like this:
# Running and Building
To run this, you will need a peer checkout of mono-ncurses to this
directory. I should make a NuGet package at some point.
Open the solution and run the sample program.
# Input Handling