From 701aba3e4a2513f6a75a0764d4fe64f6babca558 Mon Sep 17 00:00:00 2001 From: Martin Willemoes Hansen Date: Mon, 25 Nov 2002 16:50:27 +0000 Subject: [PATCH] Moved from mwh.sysrq.dk svn path=/trunk/gtk-sharp/; revision=9185 --- gnometutorial/ChangeLog | 19 +- gnometutorial/IDEAS | 22 + gnometutorial/NOTES | 2 +- gnometutorial/PEOPLE | 17 + gnometutorial/bindings/gtk-sharp/base.png | Bin 0 -> 4462 bytes .../bindings/gtk-sharp/gtk-sharp.html | 569 ++++++++++++++++++ gnometutorial/bindings/gtk-sharp/label.png | Bin 0 -> 1917 bytes .../bindings/gtk-sharp/stockicons.png | Bin 0 -> 2670 bytes gnometutorial/ide/eclipse.html | 97 +++ gnometutorial/ide/emacs.html | 101 ++-- gnometutorial/index.html | 220 +++---- gnometutorial/mono.html | 148 ++--- gnometutorial/preface.html | 107 +--- gnometutorial/resources.html | 81 +++ gnometutorial/ressources.html | 71 --- gnometutorial/writers.html | 73 --- 16 files changed, 1016 insertions(+), 511 deletions(-) create mode 100644 gnometutorial/IDEAS create mode 100644 gnometutorial/PEOPLE create mode 100644 gnometutorial/bindings/gtk-sharp/base.png create mode 100644 gnometutorial/bindings/gtk-sharp/gtk-sharp.html create mode 100644 gnometutorial/bindings/gtk-sharp/label.png create mode 100644 gnometutorial/bindings/gtk-sharp/stockicons.png create mode 100644 gnometutorial/ide/eclipse.html create mode 100644 gnometutorial/resources.html delete mode 100644 gnometutorial/ressources.html delete mode 100644 gnometutorial/writers.html diff --git a/gnometutorial/ChangeLog b/gnometutorial/ChangeLog index 9e34fefc6..ed77ec799 100644 --- a/gnometutorial/ChangeLog +++ b/gnometutorial/ChangeLog @@ -1,7 +1,14 @@ -2002-11-16 Johannes Roith - - * Convert to XHTML - -2002-11-09 Johannes Roith - +2002-11-25 Martin Willemoes Hansen + + * Moved webcontent from mwh.sysrq.dk into the repository + * Is now available from http://www.go-mono.com/gnometutorial + * Rollback XHTML conversion + * Changed writers.html to PEOPLE and IDEAS + +2002-11-16 Johannes Roith + + * Convert to XHTML + +2002-11-09 Johannes Roith + * Initial import Martin Willemoes Hansen's tutorial and move stylesheets to an separate file \ No newline at end of file diff --git a/gnometutorial/IDEAS b/gnometutorial/IDEAS new file mode 100644 index 000000000..3dc99a232 --- /dev/null +++ b/gnometutorial/IDEAS @@ -0,0 +1,22 @@ +1. Some of the things you need (samples); can be re-used from the /sample + directory in the gtk-sharp module. At least that is a start! :) + + Richard Torkar + +2. My suggestion is to make a small application that would show + programmers how to build a full application, pick a target application + (for example you could pick the `same-gnome' game) and build it from + zero: + 1. Creating your UI using glade. + 2. Connecting the Glade code to C# + 3. Making the program go. + 4. Using the Canvas/Drawing. + 5. Creating a configuration dialog box with Glade. + 6. Loading configuration settings from GConf. + 7. Storing scores on a database. + 8. Internationalization. + 9. Adding an About Box and a logo + 10. Making the executable self-contained + 11. Creating a custom widget. + + Miguel de Icaza diff --git a/gnometutorial/NOTES b/gnometutorial/NOTES index 0c9df5148..d49dd2f34 100644 --- a/gnometutorial/NOTES +++ b/gnometutorial/NOTES @@ -15,4 +15,4 @@ please keep to these guidelines. your code here -3. Use the default gt+ theme and (optionally) the crux WM theme for screenshots \ No newline at end of file +3. Use the default gtk+2 theme and (optionally) the crux WM theme for screenshots \ No newline at end of file diff --git a/gnometutorial/PEOPLE b/gnometutorial/PEOPLE new file mode 100644 index 000000000..7681986c0 --- /dev/null +++ b/gnometutorial/PEOPLE @@ -0,0 +1,17 @@ +Martin Willemoes Hansen + Maintainer + Work on the framework of the tutorial. + +Johannes Roith + Work on the Glade# part. + +Pablo Baena + Threads stuff, Eclipse/mono/gtk#/glade#/glib# sections. + Is working on a front-end for Mencoder, which could be used as a sample. + +Raciel + Gtk# (right now porting the gtk tutorial to c#) + +Luyan + Chinese translation. + diff --git a/gnometutorial/bindings/gtk-sharp/base.png b/gnometutorial/bindings/gtk-sharp/base.png new file mode 100644 index 0000000000000000000000000000000000000000..5b7f0187e3ba0c08e0d6c15c221b0497b484fe4a GIT binary patch literal 4462 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 +GTK# + + + + +

GTK#

+by Johannes Roith (johannes@jroith.de) [if you contribute to this chapter please add your name here]
+This chapter does use some content from the GTK+ Tutorial by Tony Gale, Ian Main, & the GTK team + +

Introduction

+ +GTK (GIMP Toolkit) is a library for creating graphical user interfaces. It is licensed using the LGPL license, so you can develop open software, free software, or even commercial non-free software using GTK without having to spend anything for licenses or royalties. +

+It's called the GIMP toolkit because it was originally written for developing the GNU Image Manipulation Program (GIMP), but GTK has now been used in a large number of software projects, including the GNU Network Object Model Environment (GNOME) project. GTK is built on top of GDK (GIMP Drawing Kit) which is basically a wrapper around the low-level functions for accessing the underlying windowing functions (Xlib in the case of the X windows system), and gdk-pixbuf, a library for client-side image manipulation. + +

HelloWorld, first try

+ +HelloWorld in Gtk#: + + + + + + + +
+
+	using Gtk;
+	using GtkSharp;
+	using System;
+
+	class Hello {
+
+		static void Main()
+		{
+			Application.Init ();
+
+			Window window = new Window ("helloworld");
+			window.Show();
+    
+			Application.Run ();
+    
+		}
+
+
+	}
+
+
+ + +[compile: mcs helloworld.cs -r gtk-sharp.dll -r glib-sharp.dll]

+It's a bit longer than console hello world and needs some explanation.

+Before we jump in the Main method, every GTK# Application will have to import the namespaces: +
+	using Gtk;
+	using GtkSharp;
+
+If you don't do so, each Class from one of these namespaces needs the namespace mentioned as prefix.
+
+In Main() at first you see: +
Application.Init()
+This initializes GTK and is needed in every GTK# Application.
+The next line create a new window. GTK# can set the title in the constructor and saves one line compared to C.
+
+Window window = new Window ("helloworld");
+
+
Application.Run()
shows the application and most importantly keeps it open, waiting for events, until Quit() is called. +

HelloWorld, second try

+While the above program compiles and runs, it's doesn't quit, properly. You've to exit with CRTL+C.

+ +
+
+	using Gtk;
+	using GtkSharp;
+	using System;
+
+	class Hello {
+
+		static void Main()
+		{
+			Application.Init ();
+
+			Window window = new Window ("helloworld");
+			window.DeleteEvent += new DeleteEventHandler (delete_event);
+			window.ShowAll ();
+
+    			Button btn = new Button ("Hello World");
+    			btn.Clicked += new EventHandler (hello);
+
+			Application.Run ();
+    
+		}
+
+
+		static void delete_event (object obj, DeleteEventArgs args)
+		{
+			    Application.Quit ();
+		}
+
+		static void hello (object obj, EventArgs args)
+		{
+			Console.WriteLine("Hello World");
+			Application.Quit ();
+		}
+	}
+
+
+This sample quits correctly.
+ +GTK is an event driven toolkit, which means it will sleep in Application.Run() until an event occurs and control is passed to the appropriate function. GTK# can make use of the type "event". When you close HelloWorld, the DeleteEvent is thrown, by the window. +To enable your application to react on the DeleteEvent, you must connect it to an event handler. +
+window.DeleteEvent += new DeleteEventHandler (delete_event);
+
+An event handler is passed an object, the object that fired the event, here window, and EventArgs. The EventArgs here have the special type DeleteEventArgs). +
+		static void delete_event (object obj, DeleteEventArgs args)
+		{
+			    Application.Quit ();
+		}
+
+This sample also adds a button to the window and connects the clicked event to "hello". +

Packing Widgets (Boxes)

+ +When creating an application, you'll want to put more than one widget inside a window. Our first helloworld example only used one widget so we could simply use a window.Add() call to "pack" the widget into the window. But when you want to put more than one widget into a window, how do you control where that widget is positioned? This is where packing comes in.

+If you come from Windows, you're probably used to position several widgets using coordinates. Also possible, that's not the way it's done in GTK#. Most packing is done by creating boxes. These are invisible widget containers that we can pack our widgets into which come in two forms, a horizontal box, and a vertical box. While this is more difficult for a newcomer it has some advantages: +
    +
  • Independent of screesize
  • +
  • Easier Internationalization
  • +
+ +When packing widgets into a horizontal box, the objects are inserted horizontally from left to right or right to left depending on the call used. In a vertical box, widgets are packed from top to bottom or vice versa. You may use any combination of boxes inside or beside other boxes to create the desired effect.

+An object may be another container or a widget. In fact, many widgets are actually containers themselves, including the button, but we usually only use a label inside a button.

+ +By using these calls, GTK knows where you want to place your widgets so it can do automatic resizing and other nifty things. There are also a number of options as to how your widgets should be packed. As you can imagine, this method gives us a quite a bit of flexibility when placing and creating widgets.

+
+[TODO] + +

A closer look at Buttons

+GTK# offers not just the normal button, but some other types, derived from it. +

Using Stock Icons

+Up to now, we only created Buttons containing a label. It's possible to create a +Button from Stock Icon, which is very good for consistency in Gnome apps:
+
+Common look & feel: Toolbar with 4 Stock Icons.
+ +
+
+Button stockbutton = Button.FromStock(stocktype);
+
+Gtk# offers a wide range of good-looking, well designed and accessible icons. +Anopther benfit of Stock Icons is, that they are available in many languages, +and there is no need, to translate them. +stocktype must be one of these values: +
+Gtk.Stock.Add
+Gtk.Stock.Apply
+Gtk.Stock.Bold
+Gtk.Stock.Cancel
+Gtk.Stock.Cdrom
+Gtk.Stock.Clear
+Gtk.Stock.Close
+Gtk.Stock.Convert
+Gtk.Stock.Copy
+Gtk.Stock.Cut
+Gtk.Stock.Delete
+Gtk.Stock.DialogError
+Gtk.Stock.DialogInfo
+Gtk.Stock.DialogQuestion
+Gtk.Stock.DialogWarning
+Gtk.Stock.StockDnd
+Gtk.Stock.DndMultiple
+Gtk.Stock.Execute
+Gtk.Stock.FIND
+Gtk.Stock.FIND_AND_REPLACE
+Gtk.Stock.FLOPPY
+Gtk.Stock.GOTO_BOTTOM
+Gtk.Stock.GOTO_FIRST
+Gtk.Stock.GOTO_LAST
+Gtk.Stock.GOTO_TOP
+Gtk.Stock.GO_BACK
+Gtk.Stock.GO_DOWN
+Gtk.Stock.GO_FORWARD
+Gtk.Stock.GO_UP
+Gtk.Stock.HELP
+Gtk.Stock.HOME
+Gtk.Stock.INDEX
+Gtk.Stock.ITALIC
+Gtk.Stock.JUMP_TO
+Gtk.Stock.JUSTIFY_CENTER
+Gtk.Stock.JUSTIFY_FILL
+Gtk.Stock.JUSTIFY_LEFT
+Gtk.Stock.JUSTIFY_RIGHT
+Gtk.Stock.MISSING_IMAGE
+Gtk.Stock.NEW
+Gtk.Stock.NO
+Gtk.Stock.OK
+Gtk.Stock.OPEN
+Gtk.Stock.PASTE
+Gtk.Stock.PREFERENCES
+Gtk.Stock.PRINT
+Gtk.Stock.PRINT_PREVIEW
+Gtk.Stock.PROPERTIES
+Gtk.Stock.QUIT
+Gtk.Stock.REDO
+Gtk.Stock.REFRESH
+Gtk.Stock.REMOVE
+Gtk.Stock.REVERT_TO_SAVED
+Gtk.Stock.SAVE
+Gtk.Stock.SAVE_AS
+Gtk.Stock.SELECT_COLOR
+Gtk.Stock.SELECT_FONT
+Gtk.Stock.SORT_ASCENDING
+Gtk.Stock.SORT_DESCENDING
+Gtk.Stock.SPELL_CHECK
+Gtk.Stock.STOP
+Gtk.Stock.STRIKETHROUGH
+Gtk.Stock.UNDELETE
+Gtk.Stock.UNDERLINE
+Gtk.Stock.UNDO
+Gtk.Stock.YES
+Gtk.Stock.ZOOM_100
+Gtk.Stock.ZOOM_FIT
+Gtk.Stock.ZOOM_IN
+Gtk.Stock.ZOOM_OUT
+
+
+
+
+

Custom Buttons

+You can put pretty much everything in the button. A often used example is a button with icon and label. +
+[TODO] +

Toggle Buttons

+ +ToggleButtons are similiar to the normal button, but when clicked, may be depressed, and when you click again, +they will pop back up. Click again, and they will pop back down. When popped down, the Property Active has the value "true". + +
+ 	using Gtk;
+	using GtkSharp;
+	using System;
+	using System.Drawing;
+
+	public class checkbuttons
+	{
+
+
+		public static void Main(string[] args)
+		{
+
+			Application.Init();   
+      
+   
+			Window window = new Window("toggle buttons");
+			  
+			window.DeleteEvent += new DeleteEventHandler (delete_event);
+
+			/* Creating a new ToggleButton*/
+
+			ToggleButton togglebutton = new ToggleButton  ("button1");
+			togglebutton.Clicked += new EventHandler (clickedCallback);
+
+
+			window.Add(togglebutton);
+			window.ShowAll();
+			     
+			Application.Run();
+			
+		}
+
+		static void delete_event (object obj, DeleteEventArgs args)
+		{
+
+			Application.Quit();
+		}
+
+		static void clickedCallback (object obj, EventArgs args)
+		{
+			/* Check Active Property */
+
+			if (((ToggleButton) obj).Active)
+				Console.WriteLine ("ToggleButton clicked, I'm activating");
+		}
+	}
+
+
+
+
+ + +

Check Buttons

+Check Buttons are squares with text besides them. From a programmers point of view, they work like ToggleButtons. + +
+CheckButton cb1 = new CheckButton ("CheckButton 1");
+
+

Radio Buttons

+
+[TODO]: Sample needs explanation. + +
+
+	using Gtk;
+	using GtkSharp;
+	using System;
+	using System.Drawing;
+
+
+	public class radiobuttons
+	{
+
+		static GLib.SList group = null;
+
+		static void delete_event (object obj, DeleteEventArgs args)
+		{
+			Application.Quit();
+		}
+
+		static void exitbutton_event (object obj, EventArgs args)
+		{
+			Application.Quit();
+		}
+
+		public static void Main(string[] args)
+		{
+
+			Application.Init();   
+      
+   
+			Window window = new Window("radio buttons");
+			  
+			window.DeleteEvent += new DeleteEventHandler (delete_event);
+			
+			window.BorderWidth = 0;
+			
+			VBox box1 = new VBox (false, 0);
+			window.Add(box1);
+			box1.Show();
+			
+			VBox box2 = new VBox (false, 10);
+			box2.BorderWidth = 10;
+			box1.PackStart(box2, true, true, 0);
+			box2.Show();
+			
+			RadioButton radiobutton = new RadioButton  (null, "button1");
+			box2.PackStart(radiobutton, true, true, 0);
+			radiobutton.Show();
+			group = radiobutton.Group;
+			RadioButton radiobutton2 = new RadioButton(group, "button2");
+			radiobutton2.Active = true;
+			box2.PackStart(radiobutton2, true, true, 0);
+			radiobutton2.Show();
+			
+			RadioButton  radiobutton3 = RadioButton.NewWithLabelFromWidget(radiobutton, "button3");
+			box2.PackStart(radiobutton3, true, true, 0);
+			radiobutton3.Show();
+			
+			HSeparator separator = new HSeparator ();
+			box1.PackStart (separator,false, true, 0);
+			separator.Show();
+			
+			VBox box3 = new VBox(false, 10);
+			box3.BorderWidth = 10;
+			box1.PackStart(box3,false, true, 0);
+			box3.Show();
+			
+			Button button = new Button ("close");
+			button.Clicked += new EventHandler (exitbutton_event);
+			
+			box3.PackStart(button, true, true, 0);
+			button.CanDefault = true;
+			button.GrabDefault();
+			button.Show();
+			  
+			window.ShowAll();
+			     
+			Application.Run();
+			
+		}
+	}
+
+ +

Container Widgets

+[TODO] +

Miscellaneous Widgets

+This section describes some often used widgets, but is not a complete reference. A more complete +listing will be available in the GTK# port of the GTK+ 2.0 tutorial or the GTK# documentation. +

Labels

+Creating a new Label... +
+Label label1 = new Label("Caption");
+
+A new feature makes it possible, to use simple styles in label captions. It's called GMarkup and is similiar to HTML: +
+Label label1 = new Label("A <span color=\"blue\">blue</span> <big>and</big> <b>bold</b> label");
+
+This line is rendered like that:

+

+The feature is possible, thanks to pango, that is discussed later. +

+The label text can be justified using: +
+label1.Justify = jtype;
+
+jtype must be a value of the Justification enumeration: +
+Justification.Left
+Justification.Right
+Justification.Center 
+Justification.Fill
+
+The label widget is also capable of line wrapping the text automatically. This can be activated using: +
+label1.LineWrap = true;
+
+The wrap argument takes a true or false value. +
+The text can be underlined: +
+label1.Pattern = "_________________________ _ _________ _ ______     __ _______ ___";
+
+ +An example application, using labels can be viewed here: label.cs +

Using Tooltips

+Tooltips are boxes with some text, that can be shown, when the mouse moves over a widget. +
+ +
+Tooltips tooltip1 = new Tooltips();
+tooltip1.SetTip(button1, "Click on this button to exit", null)
+
+ +You can use the same tooltip object for all widgets. This makes sense, because you can then enable/disable all tooltips easily: +
+tooltip1.Enable();
+tooltip1.Disable();
+
+

Progress Bars

+
+[TODO] +

Statusbar

+
+[TODO] +

Color Selection

+
+[TODO] +

File Selection

+The Gnome FileOpen/Close Dialog. +[TODO] +

Font Selection

+
+[TODO] +

Message Dialog

+
+[TODO] +

Tree View

+
+[TODO] +

Text View

+
+[TODO] +

Using Drag & Drop

+ + + +

Widget Overview

+ + +

Widget Hierarchy

+Here is the class hierarchy tree used to implement widgets: +
+GObject
+ |  
+ GtkObject
+  +GtkWidget
+  | +GtkMisc
+  | | +GtkLabel
+  | | | `GtkAccelLabel
+  | | +GtkArrow
+  | | `GtkImage
+  | +GtkContainer
+  | | +GtkBin
+  | | | +GtkAlignment
+  | | | +GtkFrame
+  | | | | `GtkAspectFrame
+  | | | +GtkButton
+  | | | | +GtkToggleButton
+  | | | | | `GtkCheckButton
+  | | | | |   `GtkRadioButton
+  | | | | `GtkOptionMenu
+  | | | +GtkItem
+  | | | | +GtkMenuItem
+  | | | |   +GtkCheckMenuItem
+  | | | |   | `GtkRadioMenuItem
+  | | | |   +GtkImageMenuItem
+  | | | |   +GtkSeparatorMenuItem
+  | | | |   `GtkTearoffMenuItem
+  | | | +GtkWindow
+  | | | | +GtkDialog
+  | | | | | +GtkColorSelectionDialog
+  | | | | | +GtkFileSelection
+  | | | | | +GtkFontSelectionDialog
+  | | | | | +GtkInputDialog
+  | | | | | `GtkMessageDialog
+  | | | | `GtkPlug
+  | | | +GtkEventBox
+  | | | +GtkHandleBox
+  | | | +GtkScrolledWindow
+  | | | `GtkViewport
+  | | +GtkBox
+  | | | +GtkButtonBox
+  | | | | +GtkHButtonBox
+  | | | | `GtkVButtonBox
+  | | | +GtkVBox
+  | | | | +GtkColorSelection
+  | | | | +GtkFontSelection
+  | | | | `GtkGammaCurve
+  | | | `GtkHBox
+  | | |   +GtkCombo
+  | | |   `GtkStatusbar
+  | | +GtkFixed
+  | | +GtkPaned
+  | | | +GtkHPaned
+  | | | `GtkVPaned
+  | | +GtkLayout
+  | | +GtkMenuShell
+  | | | +GtkMenuBar
+  | | | `GtkMenu
+  | | +GtkNotebook
+  | | +GtkSocket
+  | | +GtkTable
+  | | +GtkTextView
+  | | +GtkToolbar
+  | | `GtkTreeView
+  | +GtkCalendar
+  | +GtkDrawingArea
+  | | `GtkCurve
+  | +GtkEditable
+  | | +GtkEntry
+  | |   `GtkSpinButton
+  | +GtkRuler
+  | | +GtkHRuler
+  | | `GtkVRuler
+  | +GtkRange
+  | | +GtkScale
+  | | | +GtkHScale
+  | | | `GtkVScale
+  | | `GtkScrollbar
+  | |   +GtkHScrollbar
+  | |   `GtkVScrollbar
+  | +GtkSeparator
+  | | +GtkHSeparator
+  | | `GtkVSeparator
+  | +GtkInvisible
+  | +GtkPreview
+  | `GtkProgressBar
+  +GtkAdjustment
+  +GtkCellRenderer
+  | +GtkCellRendererPixbuf
+  | +GtkCellRendererText
+  | +GtkCellRendererToggle
+  +GtkItemFactory
+  +GtkTooltips
+  `GtkTreeViewColumn
+
+ + \ No newline at end of file diff --git a/gnometutorial/bindings/gtk-sharp/label.png b/gnometutorial/bindings/gtk-sharp/label.png new file mode 100644 index 0000000000000000000000000000000000000000..0042153bcd2bd3c4732bf434a9cab8ce18edc0c3 GIT binary patch literal 1917 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 literal 0 HcmV?d00001 diff --git a/gnometutorial/ide/eclipse.html b/gnometutorial/ide/eclipse.html new file mode 100644 index 000000000..f66e9de40 --- /dev/null +++ b/gnometutorial/ide/eclipse.html @@ -0,0 +1,97 @@ + + + +Eclipse for developing Mono applications + + + +

Eclipse for developing Mono applications

+ +

Introduction

+ +

When you visit Eclipse's web page, +you may wonder what Eclipse is: some Java library, an IDE, just and editor? +The answer is: all of the three. +The Eclipse Platform (as +this white paper states) is designed for building integrated development +environments (IDEs) that can be used to create applications as diverse as web +sites, embedded Java programs, C++ programs, and Enterprise JavaBeans. +What does it mean? That apart from initially having just an editor with +a few shortcuts for doing several common programming tasks easier, you can +extend the IDE to any language creating plug-ins that can run on any OS +that Eclipse is ported to.

+ +

With the multi-language nature of Mono, this seems to be a very +important project for future development of applications in this +framework. But even now it can be a very helpful IDE for developing +C# applications. There is already a basic C# plug-in for Eclipse, +that although lacking some interesting features, implements +auto indenting and syntax highlighting for this language. +Another extra point is that Eclipse can use the Gtk2 toolkit +on GNU/Linux. This is great for Gnome users, as it adapts better +to the environment.

+ +

Installation

+ +

First things first. You must get Eclipse from the +download section. +Choose any release you want to download and you'll be presented +with different packages of the Eclipse platform. Unless you are planning +to work in a plug-in for Eclipse, downloading the Platform Runtime Binary +for your OS will suffice (and will save you lots of bandwith). +Also remember that you will need a Java runtime environment (JRE), +that you can get following the instructions in the download page, +or from Sun's site.

+ +

The installation of the Eclipse platform is very quick and simple. +You just have to unzip the downloaded file in a directory, and from +there running the eclipse executable (you must have the JRE path +in your PATH environment variable). +The loading process is rather slow, but not slower than a few other +native applications out there.

+ +

Next you will want to install +Improve's C# +plug-in. Follow the instructions on the plug-in site.

+ +

Optionally, if you plan to be working on C/C++ code any time, you can +download the C Development Environment from the +Tools Project. +Just unzipping the plug-in on the Eclipse directory will suffice.

+ +

Using Eclipse

+ +

You can start a new C# project just by going to "File->New->Project" +and choosing 'Simple' on the dialog presented. Your newly created +project will appear at the Navigator on the left. You can now +start creating the layout of your project. You can do this by +using the context menu on the Navigator or by using the "File->New" menu. +To create a C# file you must use "New->C# File". The file will be filled +with a simple template of a C# program.

+ +

Let's say you want to import the newly created project to a CVS +repository you have access to. On the context menu +of the Navigator you have the "Team->Share Project" item. By clicking +on it you will get the chance to configure the CVS repository +settings, and then you will be presented with the Synchronize view +to see the files that will be added, and then you can choose which +ones to add to version control and which to ignore.

+ +

To check out a CVS module follow this procedure. Go to +"Window->Open Perspective->CVS Repository Exploring", then right click on +the "CVS Repositories" window and choose "New->Repository Location" +and fill in the dialog with your login settings. +You can then expand the CVS tree, right-click on a directory and +choose "Check Out As Project".

+ +

From now on you can experiment with the rest of the features. +You will be surprised at how stable and intuitive this application is.

+ +

+Acknowledge: some things were used from this +post on +www.gnomedesktop.org. +

+ + + \ No newline at end of file diff --git a/gnometutorial/ide/emacs.html b/gnometutorial/ide/emacs.html index 4da212503..894671f19 100644 --- a/gnometutorial/ide/emacs.html +++ b/gnometutorial/ide/emacs.html @@ -1,59 +1,42 @@ - - - -Emacs - - - -

Emacs

- -

Introduction

- -Emacs is a general purpose editor ie. not an IDE specificaly -designed for .net and c#.
-It is my experience that Emacs along with Glade and the Mono -tools makes a powerfull and productive development environment. -

Strengths about emacs:

- -
    -
  • Has support for almost every programming language you can -mention
  • - -
  • Is portable and thus available at all major computing -platforms.
  • - -
  • Easily extendable.
  • - -
  • Its free software.
  • -
- -For more information about emacs refer to this -

Modes

- -By default there is no c# mode available in emacs (21.2). Luckily -there is some third party modes available here: - - -

Questions and exercises

- -
    -
  1. Write HelloWorld.cs with emacs.
  2. - -
  3. Note which special features each c# mode has and compare -them.
  4. -
- -

Credits

- -Author: Martin Willemoes -Hansen - - - + + +Emacs + + + + + +

Emacs

+ +

Introduction

+Emacs is a general purpose editor ie. not an IDE specificaly designed for .net and c#. +
It is my experience that Emacs along with Glade and the Mono tools makes a powerfull and productive development environment. +

Strengths about emacs: +

    +
  • Has support for almost every programming language you can mention +
  • Is portable and thus available at all major computing platforms. +
  • Easily extendable. +
  • Its free software. +
+ +For more information about emacs refer to this + +

Modes

+By default there is no c# mode available in emacs (21.2). +Luckily there is some third party modes available here: + + +

Questions and exercises

+
    +
  1. Write HelloWorld.cs with emacs. +
  2. Note which special features each c# mode has and compare them. +
+ +

Credits

+Author: Martin Willemoes Hansen + + + \ No newline at end of file diff --git a/gnometutorial/index.html b/gnometutorial/index.html index 53d85e746..a776405be 100644 --- a/gnometutorial/index.html +++ b/gnometutorial/index.html @@ -1,133 +1,87 @@ - - - -The Gnome.NET Tutorial - - -
-

The Gnome.NET Tutorial First Edition

- -

A Much Needed Room For Breath

- - -

Contributors, Ideas etc

- -

Contents

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Preface
Chapter 1Mono
About the Mono Technology
- How Will Mono Technology Change My -Life?
- HelloWorld
- Architecture
- Tools
- Linux kernel support for -binaries
- Questions and exercises
- Credits
Chapter 2IDEs
Emacs
- Eclipse
- #develop
Chapter 3C# bindings
Introduction
- Gtk#
- Gdk#
- Glib#
- Atk#
- Pango#
- Gnome#
- Glade#
- GConf#
- Gda#
- Gnome-db#
- GStreamer#
- Questions and exercises
Chapter 4Testing & UI Design
NUnit
- GNOME Human Interface Guidelines
Chapter 5Cases
Same Gnome
- E-mail client
- Web browser
- Text editor
Appendix ARessources
API References
- Code samples
- Applications
- Tutorials
- Presentations
- Whitepapers
- Websites
- IRC
- Books
Appendix BCredits
Authors
-
-
- - - + + +The Gnome.NET Tutorial + + +
+

The Gnome.NET Tutorial First Edition

+

A Much Needed Room To Breathe

+ + + +

Contents

+ + + + + + + + + + + + + + + + + + + + + + + +
Preface
Chapter 1Mono
+ About the Mono Technology
+ How Will Mono Technology Change My Life?
+ HelloWorld
+ Architecture
+ Tools
+ Linux kernel support for binaries
+ Questions and exercises
+ Credits +
Chapter 2IDEs
+ Emacs
+ Eclipse
+ #develop +
Chapter 3C# bindings
+ Introduction
+ Gtk#
+ Gdk#
+ Glib#
+ Atk#
+ Pango#
+ Gnome#
+ Glade#
+ GConf#
+ Gda#
+ Gnome-db#
+ GStreamer#
+ Questions and exercises +
Chapter 4Testing & UI Design
+ NUnit
+ GNOME Human Interface Guidelines +
Chapter 5Cases
+ Same Gnome
+ E-mail client
+ Web browser
+ Text editor +
Appendix AResources
+ API References
+ Code samples
+ Applications
+ Tutorials
+ Presentations
+ Whitepapers
+ Websites
+ IRC
+ Books +
Appendix BCredits
+ Authors
+
+ + + +
\ No newline at end of file diff --git a/gnometutorial/mono.html b/gnometutorial/mono.html index 0d30e73e7..993468518 100644 --- a/gnometutorial/mono.html +++ b/gnometutorial/mono.html @@ -1,84 +1,64 @@ - - - - - - - -

Mono

- -

About the Mono Technology

- -
-

How Will Mono Technology Change My -Life?

- -
-

HelloWorld

- -
-This is a must in every book or tutorial, a "Hello, World!" -program, so here it is: -
-using System;
-
-class Hello {
-    static void Main() {
-        Console.WriteLine ("Hello, World!");
-    }
-}
-
- -mcs Hello.cs -o hello.exe
-mono hello.exe or mint hello.exe
-

Architecture

- -
-

Tools

- -

MonoDoc

- -

Mono Compiler Suite (mcs)

- -

Mono Interpreter (mint)

- -

Mono Content dumper and disassembler (monodis)

- -

Mono debugger

- -

Linux kernel support for binaries

- -You can make your mono .exe files executable by following these -steps: -
    -
  1. Enabling binfmt in your kernel.
  2. - -
  3. Adding the line below to your fstab:
    - -
    -binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc none
    -
    -
  4. - -
  5. On boot run the cmd below:
    - -
    -echo ':CLR:M::MZ::/usr/bin/mono:' > /proc/sys/fs/binfmt_misc/register
    -
    -
  6. - -
  7. chmod +x foobar.exe
  8. -
- -Another way to accomplish the above is to wrap the
-mono .exe file it in a shell script, like this: -
-#!/bin/sh
-/usr/bin/mono /usr/bin/mcs.exe "$@"
-
- -

Questions and exercises

- - - + + + + + +

Mono

+ +

About the Mono Technology


+

How Will Mono Technology Change My Life?

+Mono is enabling you to write desktop applications faster and leverage the existing GNOME platform as well as +bringing you a new set of development tools. + +HelloWorld +This is a must in every book or tutorial, a "Hello, World!" program, so here it is: + +
+using System;
+
+class Hello {
+    static void Main() {
+        Console.WriteLine ("Hello, World!");
+    }
+}
+
+ +mcs Hello.cs -o hello.exe
+mono hello.exe or +mint hello.exe +
+ +

Architecture

+ +

Tools

+

MonoDoc

+

Mono Compiler Suite (mcs)

+

Mono Interpreter (mint)

+

Mono Content dumper and disassembler (monodis)

+

Mono debugger

+ +

Linux kernel support for binaries

+You can make your mono .exe files executable by following these steps: +
    +
  1. Enabling binfmt in your kernel. +
  2. Adding the line below to your fstab:
    +
    binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc none
    +
  3. On boot run the cmd below:
    +
    echo ':CLR:M::MZ::/usr/bin/mono:' > /proc/sys/fs/binfmt_misc/register
    +
  4. chmod +x foobar.exe +
+ +Another way to accomplish the above is to wrap the
+mono .exe file it in a shell script, like this: +
+#!/bin/sh
+/usr/bin/mono /usr/bin/mcs.exe "$@"
+
+ +

Questions and exercises

+ +

Credits

+Author: Martin Willemoes Hansen + + + \ No newline at end of file diff --git a/gnometutorial/preface.html b/gnometutorial/preface.html index 0d30e73e7..3d467193b 100644 --- a/gnometutorial/preface.html +++ b/gnometutorial/preface.html @@ -1,84 +1,23 @@ - - - - - - - -

Mono

- -

About the Mono Technology

- -
-

How Will Mono Technology Change My -Life?

- -
-

HelloWorld

- -
-This is a must in every book or tutorial, a "Hello, World!" -program, so here it is: -
-using System;
-
-class Hello {
-    static void Main() {
-        Console.WriteLine ("Hello, World!");
-    }
-}
-
- -mcs Hello.cs -o hello.exe
-mono hello.exe or mint hello.exe
-

Architecture

- -
-

Tools

- -

MonoDoc

- -

Mono Compiler Suite (mcs)

- -

Mono Interpreter (mint)

- -

Mono Content dumper and disassembler (monodis)

- -

Mono debugger

- -

Linux kernel support for binaries

- -You can make your mono .exe files executable by following these -steps: -
    -
  1. Enabling binfmt in your kernel.
  2. - -
  3. Adding the line below to your fstab:
    - -
    -binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc none
    -
    -
  4. - -
  5. On boot run the cmd below:
    - -
    -echo ':CLR:M::MZ::/usr/bin/mono:' > /proc/sys/fs/binfmt_misc/register
    -
    -
  6. - -
  7. chmod +x foobar.exe
  8. -
- -Another way to accomplish the above is to wrap the
-mono .exe file it in a shell script, like this: -
-#!/bin/sh
-/usr/bin/mono /usr/bin/mcs.exe "$@"
-
- -

Questions and exercises

- - - + + +Preface + + + +

Preface

+ +This tutorial is born out of a vision of a first place to go for High Level +Gnome desktop programming. +
The idea is to give application programmers an overview of the platform, +
information about available development tools and sample code. + +

Who should read this tutorial?

+Programmers experienced with c#, who whish to get to understand and
+develop desktop applications for the Gnome.NET platform. + +

How to read this tutorial

+You can read from the beginning to the end or you can +skip around from topic to topic, no problemo. + + + \ No newline at end of file diff --git a/gnometutorial/resources.html b/gnometutorial/resources.html new file mode 100644 index 000000000..c06f37263 --- /dev/null +++ b/gnometutorial/resources.html @@ -0,0 +1,81 @@ + + +Resources + + + +

Resources

+ +

API References

+ + +

Code samples

+ + +

Applications

+ + +

Tutorials

+ + +

Presentations

+GUADEC 3 April 2002 + + +.NET ONE 2002 + + +Miscelaneous + + +

Whitepapers

+ + +

Websites

+ + +

IRC

+ + +Books +
    +
  • A Programmer's Introduction to C# by Eric Gunnerson +
  • Advanced .NET Remoting by Ingo Rammer +
  • ASP.NET in a Nutshell by G. Andrew Duthie & Matthew MacDonald +
  • Programming ASP.NET by Jessy Liberty & Dan Hurtwitz +
+ + + \ No newline at end of file diff --git a/gnometutorial/ressources.html b/gnometutorial/ressources.html deleted file mode 100644 index 2a248306b..000000000 --- a/gnometutorial/ressources.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -Ressources - - -

Ressources

- -

API References

- - - -

Code samples

- - - -

Applications

- - - -

Tutorials

- - - -

Websites

- - - -

IRC

- - - -

Books

- -
    -
  • A Programmer's Introduction to C# by Eric Gunnerson
  • - -
  • Advanced .NET Remoting: Ingo Rammer
  • -
- - - diff --git a/gnometutorial/writers.html b/gnometutorial/writers.html deleted file mode 100644 index 15c4a044f..000000000 --- a/gnometutorial/writers.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -Writers section - - -

Writers section

- -

Contributors

- -
    -
  • Martin Willemoes -Hansen
    -Maintainer
    -Main focus: Work on the framework of the tutorial.
  • - -
  • Johannes -Roith
    -Main focus: Work on the Glade# part.
  • - -
  • Pablo -Baena
    -Main focus: Threads stuff, Eclipse/mono/gtk#/glade#/glib# -sections.
    -Is working on a front-end for Mencoder, which could be used as a -sample.
  • - -
  • Luyan
    -Chinese translation.
  • -
- -

Ideas

- -
    -
  1. Some of the things you need (samples); can be re-used from -the /sample directory in the gtk-sharp module. At least that is a -start! :)
    -Richard Torkar
  2. - -
  3. My suggestion is to make a small application that would show -programmers how to build a full application, pick a target -application (for example you could pick the `same-gnome' game) -and build it from zero: -
      -
    • Creating your UI using glade.
    • - -
    • Connecting the Glade code to C#
    • - -
    • Making the program go.
    • - -
    • Using the Canvas/Drawing.
    • - -
    • Creating a configuration dialog box with Glade.
    • - -
    • Loading configuration settings from GConf.
    • - -
    • Storing scores on a database.
    • - -
    • Internationalization.
    • - -
    • Adding an About Box and a logo
    • - -
    • Making the executable self-contained
    • - -
    • Creating a custom widget.
    • -
    - -Miguel de Icaza
  4. -
- - -