Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Mono/.NET bindings to the Unix Curses as well as GUI framework for creating text applications with Curses
C# C
branch: master

This branch is 3 commits ahead, 5 commits behind mono:master

Fix resize handling.

getch returns KEY_RESIZE if the window, containing the console app, is resized.
Add it to the check.
latest commit 922d5ed0ff
@txdv authored
Failed to load latest commit information.
docs Fix the special character drawings, thanks to Andrius Bentkus for fin…
AUTHORS Add files
AssemblyInfo.cs Add
ChangeLog 2010-05-25 Miguel de Icaza <>
Makefile Add idle handlers and stop method
TODO Add some docs
attrib.c Fix resize handling.
configure Remove MonoTorrent from here, keep this Curses-only, add some tiny do…
handles.cs 2007-04-14 Miguel de Icaza <>
mainloop.cs Add idle handlers and stop method
mltest.cs Use the mainloop
mono-curses.c It is true: gui.cs has mouse support now
mono-curses.csproj Update solution files. Fix
mono-curses.sln Update solution files.
mono-curses.snk Add
mono-curses.source * mono-curses.source: Add a /monodoc/node element so that
test.cs Add idle handlers and stop method



	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. 


	Console sharp is an ncurses binding licensed under the terms
	of the MIT X11 license.


	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

	Entry widget has emacs keybindings.

	ListView widget uses Model/View setup.

	Color and black and white support (first parameter to Application.Init)


	* 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

Something went wrong with that request. Please try again.