[MonoDevelop] S.W.F -> Gtk# Mappings

Jasper van Putten jas_lists@gmx.net
Fri, 23 Jan 2004 00:41:56 +0100


This is a multi-part message in MIME format.
--------------000801000309090706060605
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

John Luke wrote:

>On Thu, 2004-01-15 at 10:26 +0000, Jonathan Darrer wrote:
>  
>
>>I've put together a simple Form. If someone would like to port it to Gtk# to 
>>demonstrate the process.
>>    
>>
>
>Here is roughly the same thing in Gtk#, but I didn't port the original
>code, I just wrote it from the screenshot.  Keep in mind it would be
>slightly different using Glade and/or Gnome in addition to Gtk.  Also, I
>could have done a better job with the spacing.
>mcs WinForm.cs -r gtk-sharp
>  
>
Here is the same thing, but done with Glade.

Jasper


--------------000801000309090706060605
Content-Type: text/plain;
 name="gtkForm.cs"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="gtkForm.cs"

using System;
using Gtk;
using GtkSharp;
using Glade;

class WinForm
{
	[Glade.Widget]   
	Entry entry;
	[Glade.Widget]   
	Label bigLabel;
	
	
	
 	static void Main (string[] args)
	{
		new WinForm ();
	}
                
	WinForm ()
	{
		Application.Init ();
                 
         Glade.XML gxml = new Glade.XML ("file.glade", "window1", null);
         gxml.Autoconnect (this);          
                 
                 
         Application.Run();        
                 
                 
                 
		
	}
	
	void OnClicked (object o, EventArgs args)
	{
		bigLabel.Markup = "<span font_desc=\"Monospace 24\" color=\"blue\">" + entry.Text + "</span>";
	}
                
	void OnWindowDelete (object obj, DeleteEventArgs args)
	{
		Application.Quit();
	}
}

--------------000801000309090706060605
Content-Type: text/xml;
 name="file.glade"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="file.glade"

<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">

<glade-interface>

<widget class="GtkWindow" id="window1">
  <property name="visible">True</property>
  <property name="title" translatable="yes">Sample gtk# form with glade</property>
  <property name="type">GTK_WINDOW_TOPLEVEL</property>
  <property name="window_position">GTK_WIN_POS_NONE</property>
  <property name="modal">False</property>
  <property name="resizable">True</property>
  <property name="destroy_with_parent">False</property>
  <signal name="delete_event" handler="OnWindowDelete" last_modification_time="Thu, 22 Jan 2004 23:27:09 GMT"/>

  <child>
    <widget class="GtkVBox" id="vbox1">
      <property name="visible">True</property>
      <property name="homogeneous">False</property>
      <property name="spacing">0</property>

      <child>
	<widget class="GtkMenuBar" id="menubar1">
	  <property name="visible">True</property>

	  <child>
	    <widget class="GtkMenuItem" id="menuitem1">
	      <property name="visible">True</property>
	      <property name="label" translatable="yes">_File</property>
	      <property name="use_underline">True</property>

	      <child>
		<widget class="GtkMenu" id="menu1">

		  <child>
		    <widget class="GtkImageMenuItem" id="new1">
		      <property name="visible">True</property>
		      <property name="label">gtk-new</property>
		      <property name="use_stock">True</property>
		    </widget>
		  </child>

		  <child>
		    <widget class="GtkImageMenuItem" id="open1">
		      <property name="visible">True</property>
		      <property name="label">gtk-open</property>
		      <property name="use_stock">True</property>
		    </widget>
		  </child>

		  <child>
		    <widget class="GtkImageMenuItem" id="save1">
		      <property name="visible">True</property>
		      <property name="label">gtk-save</property>
		      <property name="use_stock">True</property>
		    </widget>
		  </child>

		  <child>
		    <widget class="GtkImageMenuItem" id="save_as1">
		      <property name="visible">True</property>
		      <property name="label">gtk-save-as</property>
		      <property name="use_stock">True</property>
		    </widget>
		  </child>

		  <child>
		    <widget class="GtkSeparatorMenuItem" id="separatormenuitem1">
		      <property name="visible">True</property>
		    </widget>
		  </child>

		  <child>
		    <widget class="GtkImageMenuItem" id="quit1">
		      <property name="visible">True</property>
		      <property name="label">gtk-quit</property>
		      <property name="use_stock">True</property>
		    </widget>
		  </child>
		</widget>
	      </child>
	    </widget>
	  </child>

	  <child>
	    <widget class="GtkMenuItem" id="menuitem2">
	      <property name="visible">True</property>
	      <property name="label" translatable="yes">_Edit</property>
	      <property name="use_underline">True</property>

	      <child>
		<widget class="GtkMenu" id="menu2">

		  <child>
		    <widget class="GtkImageMenuItem" id="cut1">
		      <property name="visible">True</property>
		      <property name="label">gtk-cut</property>
		      <property name="use_stock">True</property>
		    </widget>
		  </child>

		  <child>
		    <widget class="GtkImageMenuItem" id="copy1">
		      <property name="visible">True</property>
		      <property name="label">gtk-copy</property>
		      <property name="use_stock">True</property>
		    </widget>
		  </child>

		  <child>
		    <widget class="GtkImageMenuItem" id="paste1">
		      <property name="visible">True</property>
		      <property name="label">gtk-paste</property>
		      <property name="use_stock">True</property>
		    </widget>
		  </child>

		  <child>
		    <widget class="GtkImageMenuItem" id="delete1">
		      <property name="visible">True</property>
		      <property name="label">gtk-delete</property>
		      <property name="use_stock">True</property>
		    </widget>
		  </child>
		</widget>
	      </child>
	    </widget>
	  </child>

	  <child>
	    <widget class="GtkMenuItem" id="menuitem3">
	      <property name="visible">True</property>
	      <property name="label" translatable="yes">_View</property>
	      <property name="use_underline">True</property>

	      <child>
		<widget class="GtkMenu" id="menu3">
		</widget>
	      </child>
	    </widget>
	  </child>

	  <child>
	    <widget class="GtkMenuItem" id="menuitem4">
	      <property name="visible">True</property>
	      <property name="label" translatable="yes">_Help</property>
	      <property name="use_underline">True</property>

	      <child>
		<widget class="GtkMenu" id="menu4">

		  <child>
		    <widget class="GtkMenuItem" id="about1">
		      <property name="visible">True</property>
		      <property name="label" translatable="yes">_About</property>
		      <property name="use_underline">True</property>
		    </widget>
		  </child>
		</widget>
	      </child>
	    </widget>
	  </child>
	</widget>
	<packing>
	  <property name="padding">0</property>
	  <property name="expand">False</property>
	  <property name="fill">False</property>
	</packing>
      </child>

      <child>
	<widget class="GtkFrame" id="frame1">
	  <property name="border_width">14</property>
	  <property name="visible">True</property>
	  <property name="label_xalign">0</property>
	  <property name="label_yalign">0.5</property>
	  <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>

	  <child>
	    <widget class="GtkVBox" id="vbox2">
	      <property name="visible">True</property>
	      <property name="homogeneous">False</property>
	      <property name="spacing">0</property>

	      <child>
		<widget class="GtkLabel" id="label1">
		  <property name="visible">True</property>
		  <property name="label" translatable="yes">Type into the textbox and press the button.</property>
		  <property name="use_underline">False</property>
		  <property name="use_markup">False</property>
		  <property name="justify">GTK_JUSTIFY_LEFT</property>
		  <property name="wrap">False</property>
		  <property name="selectable">False</property>
		  <property name="xalign">0.5</property>
		  <property name="yalign">0.5</property>
		  <property name="xpad">0</property>
		  <property name="ypad">0</property>
		</widget>
		<packing>
		  <property name="padding">0</property>
		  <property name="expand">False</property>
		  <property name="fill">False</property>
		</packing>
	      </child>

	      <child>
		<widget class="GtkHBox" id="hbox1">
		  <property name="visible">True</property>
		  <property name="homogeneous">False</property>
		  <property name="spacing">0</property>

		  <child>
		    <widget class="GtkEntry" id="entry">
		      <property name="visible">True</property>
		      <property name="can_focus">True</property>
		      <property name="editable">True</property>
		      <property name="visibility">True</property>
		      <property name="max_length">0</property>
		      <property name="text" translatable="yes"></property>
		      <property name="has_frame">True</property>
		      <property name="invisible_char" translatable="yes">*</property>
		      <property name="activates_default">False</property>
		    </widget>
		    <packing>
		      <property name="padding">11</property>
		      <property name="expand">True</property>
		      <property name="fill">False</property>
		    </packing>
		  </child>

		  <child>
		    <widget class="GtkButton" id="pressme">
		      <property name="visible">True</property>
		      <property name="can_focus">True</property>
		      <property name="label" translatable="yes">Press Me!</property>
		      <property name="use_underline">True</property>
		      <property name="relief">GTK_RELIEF_NORMAL</property>
		      <signal name="clicked" handler="OnClicked" last_modification_time="Thu, 22 Jan 2004 23:25:43 GMT"/>
		    </widget>
		    <packing>
		      <property name="padding">6</property>
		      <property name="expand">False</property>
		      <property name="fill">False</property>
		    </packing>
		  </child>
		</widget>
		<packing>
		  <property name="padding">0</property>
		  <property name="expand">True</property>
		  <property name="fill">True</property>
		</packing>
	      </child>

	      <child>
		<widget class="GtkHBox" id="hbox2">
		  <property name="visible">True</property>
		  <property name="homogeneous">False</property>
		  <property name="spacing">0</property>

		  <child>
		    <widget class="GtkLabel" id="bigLabel">
		      <property name="visible">True</property>
		      <property name="label" translatable="yes"></property>
		      <property name="use_underline">False</property>
		      <property name="use_markup">True</property>
		      <property name="justify">GTK_JUSTIFY_LEFT</property>
		      <property name="wrap">False</property>
		      <property name="selectable">False</property>
		      <property name="xalign">0.46</property>
		      <property name="yalign">0.5</property>
		      <property name="xpad">69</property>
		      <property name="ypad">0</property>
		    </widget>
		    <packing>
		      <property name="padding">0</property>
		      <property name="expand">False</property>
		      <property name="fill">False</property>
		    </packing>
		  </child>

		  <child>
		    <placeholder/>
		  </child>
		</widget>
		<packing>
		  <property name="padding">0</property>
		  <property name="expand">True</property>
		  <property name="fill">True</property>
		</packing>
	      </child>
	    </widget>
	  </child>

	  <child>
	    <widget class="GtkLabel" id="label3">
	      <property name="visible">True</property>
	      <property name="label" translatable="yes"></property>
	      <property name="use_underline">False</property>
	      <property name="use_markup">False</property>
	      <property name="justify">GTK_JUSTIFY_LEFT</property>
	      <property name="wrap">False</property>
	      <property name="selectable">False</property>
	      <property name="xalign">0.5</property>
	      <property name="yalign">0.5</property>
	      <property name="xpad">0</property>
	      <property name="ypad">0</property>
	    </widget>
	    <packing>
	      <property name="type">label_item</property>
	    </packing>
	  </child>
	</widget>
	<packing>
	  <property name="padding">1</property>
	  <property name="expand">True</property>
	  <property name="fill">True</property>
	</packing>
      </child>
    </widget>
  </child>
</widget>

</glade-interface>

--------------000801000309090706060605--