Skip to content

M1C/Eto

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Eto.Forms

A cross platform desktop and mobile user interface framework

Discussion

Description

This framework is built so that you can target multiple platforms with one UI codebase.

The overall goal of this framework is to expose a common API that can be used to build functional applications that run across platforms using their native toolkit. This will make your applications look and work as if it were a native application on all platforms.

For advanced scenarios, you can take advantage of each platform's capabilities by wrapping your common UI in a larger application, or even create your own high-level controls with a custom implementations per platform.

This framework currently supports creating Desktop applications that work across Windows Forms, WPF, MonoMac, and GTK#. There is a Mobile/iOS port in the works, but is considered incomplete.

This framework was built so that using it in .NET is natural. For example, a simple hello-world application might look like:

public class MyForm : Form
{
	public MyForm ()
	{
		Text = "My Cross-Platform App";
		Size = new Size (200, 200);
		var label = new Label { Text = "Hello World!" };
		this.AddDockedControl (label);
	}
	
	[STAThread]
	static void Main () {
		Generator generator;

		if (Eto.Misc.Platform.IsWindows)
			generator = Generator.GetGenerator("Eto.Platform.Windows.Generator, Eto.Platform.Windows");
		else if (Eto.Misc.Platform.IsMac)
			generator = Generator.GetGenerator("Eto.Platform.Mac.Generator, Eto.Platform.Mac");
		else // use GTK#
			generator = Generator.GetGenerator("Eto.Platform.GtkSharp.Generator, Eto.Platform.Gtk");

		var app = new Application(generator);
		app.Initialized += delegate {
			app.MainForm = new MyForm ();
			app.MainForm.Show ();
		};
		app.Run ();
	}
}	

Applications

Namespaces

  • Eto.Forms - User interface
  • Eto.Drawing - Drawing/graphical routines
  • Eto.IO - Disk/Virtual directory abstraction
  • Eto.Platform.[Platform] - platform implementations

Currently supported targets

  • OS X: MonoMac (Cocoa)
  • Linux: GTK#
  • Windows: Windows Forms or WPF

Under development

  • iOS using MonoTouch

Future plans

  • Android using Mono for Android (or equivalent)

About

Cross platform GUI framework for desktop and mobile applications in .NET

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 99.8%
  • Shell 0.2%