89afb3f49f
* generator/BoxedGen.cs: don't generate glue dependencies. * glib/*.cs: remove glibsharpglue usage except thread.c. * glib/glue/*.c: kill all but thread.c. need glib 2.20 to kill it eventually. * pango/Attr*.cs: kill glue usage. * pango/glue/*.c: kill all but generated.c. it's next. * gtk/TreeIter.custom: kill a dumb glibsharpglue usage. svn path=/trunk/gtk-sharp/; revision=121880
448 lines
11 KiB
C#
448 lines
11 KiB
C#
// PropertyRegistration.cs - GObject property registration sample
|
|
//
|
|
// Author: Mike Kestner <mkestner@novell.com>
|
|
//
|
|
// Copyright (c) 2008 Novell, Inc.
|
|
|
|
namespace GtkSamples {
|
|
|
|
using System;
|
|
|
|
public class TestObject : GLib.Object {
|
|
|
|
public static int Main (string[] args)
|
|
{
|
|
GLib.GType.Init ();
|
|
TestObject obj = new TestObject ();
|
|
obj.TestInt ();
|
|
obj.TestUInt ();
|
|
obj.TestLong ();
|
|
obj.TestULong ();
|
|
obj.TestByte ();
|
|
obj.TestSByte ();
|
|
obj.TestBool ();
|
|
obj.TestFloat ();
|
|
obj.TestDouble ();
|
|
obj.TestString ();
|
|
//obj.TestIntPtr ();
|
|
//obj.TestBoxed ();
|
|
obj.TestGObject ();
|
|
Console.WriteLine ("All properties succeeded.");
|
|
return 0;
|
|
}
|
|
|
|
int my_int;
|
|
[GLib.Property ("my_int")]
|
|
public int MyInt {
|
|
get { return my_int; }
|
|
set { my_int = value; }
|
|
}
|
|
|
|
public void TestInt ()
|
|
{
|
|
GLib.Value val = new GLib.Value (42);
|
|
SetProperty ("my_int", val);
|
|
val.Dispose ();
|
|
if (MyInt != 42) {
|
|
Console.Error.WriteLine ("int Property setter did not run.");
|
|
Environment.Exit (1);
|
|
}
|
|
GLib.Value val2 = GetProperty ("my_int");
|
|
if ((int)val2.Val != 42) {
|
|
Console.Error.WriteLine ("int Property set/get roundtrip failed.");
|
|
Environment.Exit (1);
|
|
}
|
|
Console.WriteLine ("int succeeded.");
|
|
}
|
|
|
|
uint my_uint;
|
|
[GLib.Property ("my_uint")]
|
|
public uint MyUInt {
|
|
get { return my_uint; }
|
|
set { my_uint = value; }
|
|
}
|
|
|
|
public void TestUInt ()
|
|
{
|
|
GLib.Value val = new GLib.Value ((uint)42);
|
|
SetProperty ("my_uint", val);
|
|
val.Dispose ();
|
|
if (MyUInt != 42) {
|
|
Console.Error.WriteLine ("uint Property setter did not run.");
|
|
Environment.Exit (1);
|
|
}
|
|
GLib.Value val2 = GetProperty ("my_uint");
|
|
if ((uint)val2.Val != 42) {
|
|
Console.Error.WriteLine ("uint Property set/get roundtrip failed.");
|
|
Environment.Exit (1);
|
|
}
|
|
Console.WriteLine ("uint succeeded.");
|
|
}
|
|
|
|
long my_long;
|
|
[GLib.Property ("my_long")]
|
|
public long MyLong {
|
|
get { return my_long; }
|
|
set { my_long = value; }
|
|
}
|
|
|
|
public void TestLong ()
|
|
{
|
|
GLib.Value val = new GLib.Value ((long)42);
|
|
SetProperty ("my_long", val);
|
|
val.Dispose ();
|
|
if (MyLong != 42) {
|
|
Console.Error.WriteLine ("long Property setter did not run.");
|
|
Environment.Exit (1);
|
|
}
|
|
GLib.Value val2 = GetProperty ("my_long");
|
|
if ((long)val2.Val != 42) {
|
|
Console.Error.WriteLine ("long Property set/get roundtrip failed.");
|
|
Environment.Exit (1);
|
|
}
|
|
Console.WriteLine ("long succeeded.");
|
|
}
|
|
|
|
ulong my_ulong;
|
|
[GLib.Property ("my_ulong")]
|
|
public ulong MyULong {
|
|
get { return my_ulong; }
|
|
set { my_ulong = value; }
|
|
}
|
|
|
|
public void TestULong ()
|
|
{
|
|
GLib.Value val = new GLib.Value ((ulong)42);
|
|
SetProperty ("my_ulong", val);
|
|
val.Dispose ();
|
|
if (MyULong != 42) {
|
|
Console.Error.WriteLine ("ulong Property setter did not run.");
|
|
Environment.Exit (1);
|
|
}
|
|
GLib.Value val2 = GetProperty ("my_ulong");
|
|
if ((ulong)val2.Val != 42) {
|
|
Console.Error.WriteLine ("ulong Property set/get roundtrip failed.");
|
|
Environment.Exit (1);
|
|
}
|
|
Console.WriteLine ("ulong succeeded.");
|
|
}
|
|
|
|
byte my_byte;
|
|
[GLib.Property ("my_byte")]
|
|
public byte MyByte {
|
|
get { return my_byte; }
|
|
set { my_byte = value; }
|
|
}
|
|
|
|
public void TestByte ()
|
|
{
|
|
GLib.Value val = new GLib.Value ((byte)42);
|
|
SetProperty ("my_byte", val);
|
|
val.Dispose ();
|
|
if (MyByte != 42) {
|
|
Console.Error.WriteLine ("byte Property setter did not run.");
|
|
Environment.Exit (1);
|
|
}
|
|
GLib.Value val2 = GetProperty ("my_byte");
|
|
if ((byte)val2.Val != 42) {
|
|
Console.Error.WriteLine ("byte Property set/get roundtrip failed.");
|
|
Environment.Exit (1);
|
|
}
|
|
Console.WriteLine ("byte succeeded.");
|
|
}
|
|
|
|
sbyte my_sbyte;
|
|
[GLib.Property ("my_sbyte")]
|
|
public sbyte MySByte {
|
|
get { return my_sbyte; }
|
|
set { my_sbyte = value; }
|
|
}
|
|
|
|
public void TestSByte ()
|
|
{
|
|
GLib.Value val = new GLib.Value ((sbyte)42);
|
|
SetProperty ("my_sbyte", val);
|
|
val.Dispose ();
|
|
if (MySByte != 42) {
|
|
Console.Error.WriteLine ("sbyte Property setter did not run.");
|
|
Environment.Exit (1);
|
|
}
|
|
GLib.Value val2 = GetProperty ("my_sbyte");
|
|
if ((sbyte)val2.Val != 42) {
|
|
Console.Error.WriteLine ("sbyte Property set/get roundtrip failed.");
|
|
Environment.Exit (1);
|
|
}
|
|
Console.WriteLine ("sbyte succeeded.");
|
|
}
|
|
|
|
bool my_bool;
|
|
[GLib.Property ("my_bool")]
|
|
public bool MyBool {
|
|
get { return my_bool; }
|
|
set { my_bool = value; }
|
|
}
|
|
|
|
public void TestBool ()
|
|
{
|
|
GLib.Value val = new GLib.Value (true);
|
|
SetProperty ("my_bool", val);
|
|
val.Dispose ();
|
|
if (!MyBool) {
|
|
Console.Error.WriteLine ("bool Property setter did not run.");
|
|
Environment.Exit (1);
|
|
}
|
|
GLib.Value val2 = GetProperty ("my_bool");
|
|
if (!((bool)val2.Val)) {
|
|
Console.Error.WriteLine ("bool Property set/get roundtrip failed.");
|
|
Environment.Exit (1);
|
|
}
|
|
Console.WriteLine ("bool succeeded.");
|
|
}
|
|
|
|
float my_float;
|
|
[GLib.Property ("my_float")]
|
|
public float MyFloat {
|
|
get { return my_float; }
|
|
set { my_float = value; }
|
|
}
|
|
|
|
public void TestFloat ()
|
|
{
|
|
GLib.Value val = new GLib.Value (42.0f);
|
|
SetProperty ("my_float", val);
|
|
val.Dispose ();
|
|
if (MyFloat != 42.0f) {
|
|
Console.Error.WriteLine ("float Property setter did not run.");
|
|
Environment.Exit (1);
|
|
}
|
|
GLib.Value val2 = GetProperty ("my_float");
|
|
if ((float)val2.Val != 42.0f) {
|
|
Console.Error.WriteLine ("float Property set/get roundtrip failed.");
|
|
Environment.Exit (1);
|
|
}
|
|
Console.WriteLine ("float succeeded.");
|
|
}
|
|
|
|
double my_double;
|
|
[GLib.Property ("my_double")]
|
|
public double MyDouble {
|
|
get { return my_double; }
|
|
set { my_double = value; }
|
|
}
|
|
|
|
public void TestDouble ()
|
|
{
|
|
GLib.Value val = new GLib.Value (42.0);
|
|
SetProperty ("my_double", val);
|
|
val.Dispose ();
|
|
if (MyDouble != 42.0) {
|
|
Console.Error.WriteLine ("double Property setter did not run.");
|
|
Environment.Exit (1);
|
|
}
|
|
GLib.Value val2 = GetProperty ("my_double");
|
|
if ((double)val2.Val != 42.0) {
|
|
Console.Error.WriteLine ("double Property set/get roundtrip failed.");
|
|
Environment.Exit (1);
|
|
}
|
|
Console.WriteLine ("double succeeded.");
|
|
}
|
|
|
|
string my_string;
|
|
[GLib.Property ("my_string")]
|
|
public string MyString {
|
|
get { return my_string; }
|
|
set { my_string = value; }
|
|
}
|
|
|
|
public void TestString ()
|
|
{
|
|
GLib.Value val = new GLib.Value ("42");
|
|
SetProperty ("my_string", val);
|
|
val.Dispose ();
|
|
if (MyString != "42") {
|
|
Console.Error.WriteLine ("string Property setter did not run.");
|
|
Environment.Exit (1);
|
|
}
|
|
GLib.Value val2 = GetProperty ("my_string");
|
|
if ((string)val2.Val != "42") {
|
|
Console.Error.WriteLine ("string Property set/get roundtrip failed.");
|
|
Environment.Exit (1);
|
|
}
|
|
Console.WriteLine ("string succeeded.");
|
|
}
|
|
|
|
#if false
|
|
IntPtr my_intptr;
|
|
[GLib.Property ("my_intptr")]
|
|
public IntPtr MyIntPtr {
|
|
get { return my_intptr; }
|
|
set { my_intptr = value; }
|
|
}
|
|
|
|
public void TestIntPtr ()
|
|
{
|
|
IntPtr ptr = System.Runtime.InteropServices.Marshal.AllocHGlobal (4);
|
|
Console.WriteLine (ptr);
|
|
GLib.Value val = new GLib.Value (ptr);
|
|
SetProperty ("my_intptr", val);
|
|
val.Dispose ();
|
|
if (MyIntPtr != ptr) {
|
|
Console.Error.WriteLine ("IntPtr Property setter did not run.");
|
|
Environment.Exit (1);
|
|
}
|
|
GLib.Value val2 = GetProperty ("my_intptr");
|
|
Console.WriteLine (val2.Val);
|
|
if (!val2.Val.Equals (ptr)) {
|
|
Console.Error.WriteLine ("IntPtr Property set/get roundtrip failed.");
|
|
Environment.Exit (1);
|
|
}
|
|
Console.WriteLine ("IntPtr succeeded.");
|
|
}
|
|
|
|
Gdk.Color my_boxed;
|
|
[GLib.Property ("my_boxed")]
|
|
public Gdk.Color MyBoxed {
|
|
get { return my_boxed; }
|
|
set { my_boxed = value; }
|
|
}
|
|
|
|
public void TestBoxed ()
|
|
{
|
|
Gdk.Color color = new Gdk.Color (0, 0, 0);
|
|
GLib.Value val = (GLib.Value) color;
|
|
SetProperty ("my_boxed", val);
|
|
val.Dispose ();
|
|
if (!MyBoxed.Equals (color)) {
|
|
Console.Error.WriteLine ("boxed Property setter did not run.");
|
|
Environment.Exit (1);
|
|
}
|
|
GLib.Value val2 = GetProperty ("my_boxed");
|
|
if (color.Equals ((Gdk.Color)val2.Val)) {
|
|
Console.Error.WriteLine ("boxed Property set/get roundtrip failed.");
|
|
Environment.Exit (1);
|
|
}
|
|
Console.WriteLine ("boxed succeeded.");
|
|
}
|
|
#endif
|
|
|
|
GLib.Object my_object;
|
|
[GLib.Property ("my_object")]
|
|
public GLib.Object MyObject {
|
|
get { return my_object; }
|
|
set { my_object = value; }
|
|
}
|
|
|
|
public void TestGObject ()
|
|
{
|
|
Gtk.Window win = new Gtk.Window ("test");
|
|
GLib.Value val = new GLib.Value (win);
|
|
SetProperty ("my_object", val);
|
|
val.Dispose ();
|
|
if (MyObject != win) {
|
|
Console.Error.WriteLine ("GObject Property setter did not run.");
|
|
Environment.Exit (1);
|
|
}
|
|
GLib.Value val2 = GetProperty ("my_object");
|
|
if ((GLib.Object)val2.Val != win) {
|
|
Console.Error.WriteLine ("GObject Property set/get roundtrip failed.");
|
|
Environment.Exit (1);
|
|
}
|
|
Console.WriteLine ("GObject succeeded.");
|
|
}
|
|
|
|
#if false
|
|
int my_int;
|
|
[GLib.Property ("my_int")]
|
|
public int MyInt {
|
|
get { return my_int; }
|
|
set { my_int = value; }
|
|
}
|
|
|
|
public void TestInt ()
|
|
{
|
|
GLib.Value val = new GLib.Value (42);
|
|
SetProperty ("my_int", val);
|
|
val.Dispose ();
|
|
if (MyInt != 42) {
|
|
Console.Error.WriteLine ("Property setter did not run.");
|
|
Environment.Exit (1);
|
|
}
|
|
GLib.Value val2 = GetProperty ("my_int");
|
|
if ((int)val2.Val != 42) {
|
|
Console.Error.WriteLine ("Property set/get roundtrip failed.");
|
|
Environment.Exit (1);
|
|
}
|
|
}
|
|
|
|
int my_int;
|
|
[GLib.Property ("my_int")]
|
|
public int MyInt {
|
|
get { return my_int; }
|
|
set { my_int = value; }
|
|
}
|
|
|
|
public void TestInt ()
|
|
{
|
|
GLib.Value val = new GLib.Value (42);
|
|
SetProperty ("my_int", val);
|
|
val.Dispose ();
|
|
if (MyInt != 42) {
|
|
Console.Error.WriteLine ("Property setter did not run.");
|
|
Environment.Exit (1);
|
|
}
|
|
GLib.Value val2 = GetProperty ("my_int");
|
|
if ((int)val2.Val != 42) {
|
|
Console.Error.WriteLine ("Property set/get roundtrip failed.");
|
|
Environment.Exit (1);
|
|
}
|
|
}
|
|
|
|
int my_int;
|
|
[GLib.Property ("my_int")]
|
|
public int MyInt {
|
|
get { return my_int; }
|
|
set { my_int = value; }
|
|
}
|
|
|
|
public void TestInt ()
|
|
{
|
|
GLib.Value val = new GLib.Value (42);
|
|
SetProperty ("my_int", val);
|
|
val.Dispose ();
|
|
if (MyInt != 42) {
|
|
Console.Error.WriteLine ("Property setter did not run.");
|
|
Environment.Exit (1);
|
|
}
|
|
GLib.Value val2 = GetProperty ("my_int");
|
|
if ((int)val2.Val != 42) {
|
|
Console.Error.WriteLine ("Property set/get roundtrip failed.");
|
|
Environment.Exit (1);
|
|
}
|
|
}
|
|
|
|
int my_int;
|
|
[GLib.Property ("my_int")]
|
|
public int MyInt {
|
|
get { return my_int; }
|
|
set { my_int = value; }
|
|
}
|
|
|
|
public void TestInt ()
|
|
{
|
|
GLib.Value val = new GLib.Value (42);
|
|
SetProperty ("my_int", val);
|
|
val.Dispose ();
|
|
if (MyInt != 42) {
|
|
Console.Error.WriteLine ("Property setter did not run.");
|
|
Environment.Exit (1);
|
|
}
|
|
GLib.Value val2 = GetProperty ("my_int");
|
|
if ((int)val2.Val != 42) {
|
|
Console.Error.WriteLine ("Property set/get roundtrip failed.");
|
|
Environment.Exit (1);
|
|
}
|
|
}
|
|
#endif
|
|
|
|
}
|
|
}
|