mirror of
https://github.com/gui-cs/Terminal.Gui.git
synced 2025-12-26 15:57:56 +01:00
Make it into a library
This commit is contained in:
64
README.md
64
README.md
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user