Пример #1
0
        public OneWidgetDialog(Widget widget)
        {
            this.Build ();

            var att = widget.GetType ().GetCustomAttributes (typeof(WidgetWindowAttribute), false);
            if (att.Length > 0)
                this.SetDefaultSize ((att [0] as WidgetWindowAttribute).DefaultWidth,
                                     (att [0] as WidgetWindowAttribute).DefaultHeight);

            widget.Show ();
            VBox.Add (widget);

            att = widget.GetType ().GetCustomAttributes (typeof(DisplayNameAttribute), true);
            if (att.Length > 0)
                Title = (att [0] as DisplayNameAttribute).DisplayName;

            tdiTab = widget as ITdiTab;
            if(tdiTab != null)
            {
                if(!String.IsNullOrWhiteSpace (tdiTab.TabName))
                    Title = tdiTab.TabName;
                tdiTab.TabParent = this;
                tdiTab.TabNameChanged += TdiTab_TabNameChanged;
                tdiTab.CloseTab += TdiTab_CloseTab;
            }

            this.ReshowWithInitialSize ();
        }
Пример #2
0
        /// When User Switch Notebook Viewer Page,
        /// This Method Catch event and if page is Folder Viewer object
        /// Do Folder Refresh & set menu/toolbar actions.
        /// Else if isn't Folder Viewer object
        /// setup toolbar & menu action (On/Off GoUp, GoHome, ecc)
        private void OnSwitchPage(object o, SwitchPageArgs args)
        {
            Gtk.Application.Invoke(delegate {
                Gtk.Widget page = notebookViewer.GetNthPage((int)args.PageNum);
                Type objType    = page.GetType();
                if (objType != typeof(FolderViewer))
                {
                    // NetworkViewer or Custom
                    SetSensitiveGoUpMenu(false);
                    SetSensitiveGoHomeMenu(false);
                }
                else
                {
                    // Folder Viewer
                    FolderViewer folderViewer = page as FolderViewer;
                    folderViewer.Refresh();

                    bool canGoUp = folderViewer.CanGoUp();
                    SetSensitiveGoUpMenu(canGoUp);
                    SetSensitiveGoHomeMenu(true);
                }

                // Set Sensitive Refresh Menu
                SetSensitiveRefreshMenu(objType.IsSubclassOf(typeof(RefreshableViewer)));
            });
        }
Пример #3
0
        public void AttachToWidget(Gtk.Widget widget)
        {
            int x, y;

            widget.GdkWindow.GetOrigin(out x, out y);

            if (widget.GetType() != typeof(Gtk.Window) || !widget.GetType().IsSubclassOf(typeof(Gtk.Window)))
            {
                x += widget.Allocation.X;
                y += widget.Allocation.Y;
            }

            x += widget.Allocation.Width / 2;
            y += widget.Allocation.Height / 2;

            SetGeometryHints(widget.Screen, x, y);
        }
Пример #4
0
 private void FolderViewerGoHome()
 {
     Gtk.Widget page = notebookViewer.CurrentPageWidget;
     if (page.GetType() == typeof(FolderViewer))
     {
         // Go Home if is Folder Viewer
         FolderViewer folderViewer = page as FolderViewer;
         folderViewer.GoHome();
     }
 }
Пример #5
0
        private void FolderViewerRefresh()
        {
            Gtk.Widget page    = notebookViewer.CurrentPageWidget;
            Type       objType = page.GetType();

            if (objType.IsSubclassOf(typeof(RefreshableViewer)) == true)
            {
                RefreshableViewer obj = page as RefreshableViewer;
                obj.Refresh();
            }
        }
Пример #6
0
        public void AttachToWidget(Gtk.Widget widget)
        {
            if (widget == null)
            {
                throw new ArgumentNullException("widget");
            }

            int x, y;

            widget.Window.GetOrigin(out x, out y);

            if (widget.GetType() != typeof(Gtk.Window) || !widget.GetType().IsSubclassOf(typeof(Gtk.Window)))
            {
                x += widget.Allocation.X;
                y += widget.Allocation.Y;
            }

            x += widget.Allocation.Width / 2;
            y += widget.Allocation.Height / 2;

            SetGeometryHints(widget.Screen, x, y);
            attach_widget = widget;
            status_icon   = null;
        }
Пример #7
0
	public static int Main ()
	{
		Gtk.Application.Init ();

		BOXED_VAL = new Gdk.Rectangle (1, 2, 3, 4);
		POINTER_VAL = (IntPtr) System.Runtime.InteropServices.GCHandle.Alloc ("foo");
		OBJECT_VAL = new Gtk.DrawingArea ();

		// Part 1: Make sure values of all types round-trip correctly within Gtk#
		GLib.Value val;

		try {
			val = new GLib.Value (BOOL_VAL);
			if ((bool)val != BOOL_VAL)
				CVError ("boolean cast", BOOL_VAL, (bool)val, val.Val);
			if ((bool)val.Val != BOOL_VAL)
				CVError ("boolean Val", BOOL_VAL, (bool)val, val.Val);
		} catch (Exception e) {
			ExceptionError ("boolean", e);
		}

		try {
			val = new GLib.Value (INT_VAL);
			if ((int)val != INT_VAL)
				CVError ("int cast", INT_VAL, (int)val, val.Val);
			if ((int)val.Val != INT_VAL)
				CVError ("int Val", INT_VAL, (int)val, val.Val);
		} catch (Exception e) {
			ExceptionError ("int", e);
		}

		try {
			val = new GLib.Value (UINT_VAL);
			if ((uint)val != UINT_VAL)
				CVError ("uint cast", UINT_VAL, (uint)val, val.Val);
			if ((uint)val.Val != UINT_VAL)
				CVError ("uint Val", UINT_VAL, (uint)val, val.Val);
		} catch (Exception e) {
			ExceptionError ("uint", e);
		}

		try {
			val = new GLib.Value (INT64_VAL);
			if ((long)val != INT64_VAL)
				CVError ("int64 cast", INT64_VAL, (long)val, val.Val);
			if ((long)val.Val != INT64_VAL)
				CVError ("int64 Val", INT64_VAL, (long)val, val.Val);
		} catch (Exception e) {
			ExceptionError ("int64", e);
		}

		try {
			val = new GLib.Value (UINT64_VAL);
			if ((ulong)val != UINT64_VAL)
				CVError ("uint64 cast", UINT64_VAL, (ulong)val, val.Val);
			if ((ulong)val.Val != UINT64_VAL)
				CVError ("uint64 Val", UINT64_VAL, (ulong)val, val.Val);
		} catch (Exception e) {
			ExceptionError ("uint64", e);
		}

		// gunichar doesn't have its own GValue type, it shares with guint

		try {
			val = new GLib.Value (ENUM_VAL);
			if ((Gtk.ArrowType)(Enum)val != ENUM_VAL)
				CVError ("enum cast", ENUM_VAL, (Gtk.ArrowType)(Enum)val, val.Val);
			if ((Gtk.ArrowType)(Enum)val.Val != ENUM_VAL)
				CVError ("enum Val", ENUM_VAL, (Gtk.ArrowType)(Enum)val, val.Val);
		} catch (Exception e) {
			ExceptionError ("enum", e);
		}

		try {
			val = new GLib.Value (FLAGS_VAL);
			if ((Gtk.AttachOptions)(Enum)val != FLAGS_VAL)
				CVError ("flags cast", FLAGS_VAL, (Gtk.AttachOptions)(Enum)val, val.Val);
			if ((Gtk.AttachOptions)(Enum)val.Val != FLAGS_VAL)
				CVError ("flags Val", FLAGS_VAL, (Gtk.AttachOptions)(Enum)val, val.Val);
		} catch (Exception e) {
			ExceptionError ("flags", e);
		}

		try {
			val = new GLib.Value (FLOAT_VAL);
			if ((float)val != FLOAT_VAL)
				CVError ("float cast", FLOAT_VAL, (float)val, val.Val);
			if ((float)val.Val != FLOAT_VAL)
				CVError ("float Val", FLOAT_VAL, (float)val, val.Val);
		} catch (Exception e) {
			ExceptionError ("float", e);
		}

		try {
			val = new GLib.Value (DOUBLE_VAL);
			if ((double)val != DOUBLE_VAL)
				CVError ("double cast", DOUBLE_VAL, (double)val, val.Val);
			if ((double)val.Val != DOUBLE_VAL)
				CVError ("double Val", DOUBLE_VAL, (double)val, val.Val);
		} catch (Exception e) {
			ExceptionError ("double", e);
		}

		try {
			val = new GLib.Value (STRING_VAL);
			if ((string)val != STRING_VAL)
				CVError ("string cast", STRING_VAL, (string)val, val.Val);
			if ((string)val.Val != STRING_VAL)
				CVError ("string Val", STRING_VAL, (string)val, val.Val);
		} catch (Exception e) {
			ExceptionError ("string", e);
		}

		try {
			val = new GLib.Value (BOXED_VAL);
			if ((Gdk.Rectangle)val != BOXED_VAL)
				CVError ("boxed cast", BOXED_VAL, (Gdk.Rectangle)val, val.Val);
			// Can't currently use .Val on boxed types
		} catch (Exception e) {
			ExceptionError ("boxed", e);
		}

		try {
			val = new GLib.Value (POINTER_VAL);
			if ((IntPtr)val != POINTER_VAL)
				CVError ("pointer cast", POINTER_VAL, (IntPtr)val, val.Val);
			if ((IntPtr)val.Val != POINTER_VAL)
				CVError ("pointer Val", POINTER_VAL, (IntPtr)val, val.Val);
		} catch (Exception e) {
			ExceptionError ("pointer", e);
		}

		try {
			val = new GLib.Value (OBJECT_VAL);
			if ((Gtk.DrawingArea)val != OBJECT_VAL)
				CVError ("object cast", OBJECT_VAL, (Gtk.DrawingArea)val, val.Val);
			if ((Gtk.DrawingArea)val.Val != OBJECT_VAL)
				CVError ("object Val", OBJECT_VAL, (Gtk.DrawingArea)val, val.Val);
		} catch (Exception e) {
			ExceptionError ("object", e);
		}

		// Test ManagedValue

		Structtest st = new Structtest (5, "foo");
		try {
			val = new GLib.Value (st);
			// No direct GLib.Value -> ManagedValue cast
			Structtest st2 = (Structtest)val.Val;
			if (st.Int != st2.Int || st.String != st2.String)
				CVError ("ManagedValue Val", st, (Gtk.DrawingArea)val, val.Val);
		} catch (Exception e) {
			ExceptionError ("ManagedValue", e);
		}

		// Part 2: method->unmanaged->property round trip
		Valobj vo;
		vo = new Valobj ();

		vo.Boolean = BOOL_VAL;
		if (vo.BooleanProp != BOOL_VAL)
			MPError ("boolean method->prop", BOOL_VAL, vo.Boolean, vo.BooleanProp);

		vo.Int = INT_VAL;
		if (vo.IntProp != INT_VAL)
			MPError ("int method->prop", INT_VAL, vo.Int, vo.IntProp);

		vo.Uint = UINT_VAL;
		if (vo.UintProp != UINT_VAL)
			MPError ("uint method->prop", UINT_VAL, vo.Uint, vo.UintProp);

		vo.Int64 = INT64_VAL;
		if (vo.Int64Prop != INT64_VAL)
			MPError ("int64 method->prop", INT64_VAL, vo.Int64, vo.Int64Prop);

		vo.Uint64 = UINT64_VAL;
		if (vo.Uint64Prop != UINT64_VAL)
			MPError ("uint64 method->prop", UINT64_VAL, vo.Uint64, vo.Uint64Prop);

		vo.Unichar = UNICHAR_VAL;
		if (vo.UnicharProp != UNICHAR_VAL)
			MPError ("unichar method->prop", UNICHAR_VAL, vo.Unichar, vo.UnicharProp);

		vo.Enum = ENUM_VAL;
		if (vo.EnumProp != ENUM_VAL)
			MPError ("enum method->prop", ENUM_VAL, vo.Enum, vo.EnumProp);

		vo.Flags = FLAGS_VAL;
		if (vo.FlagsProp != (FLAGS_VAL))
			MPError ("flags method->prop", FLAGS_VAL, vo.Flags, vo.FlagsProp);

		vo.Float = FLOAT_VAL;
		if (vo.FloatProp != FLOAT_VAL)
			MPError ("float method->prop", FLOAT_VAL, vo.Float, vo.FloatProp);

		vo.Double = DOUBLE_VAL;
		if (vo.DoubleProp != DOUBLE_VAL)
			MPError ("double method->prop", DOUBLE_VAL, vo.Double, vo.DoubleProp);

		vo.String = STRING_VAL;
		if (vo.StringProp != STRING_VAL)
			MPError ("string method->prop", STRING_VAL, vo.String, vo.StringProp);

		vo.Boxed = BOXED_VAL;
		if (vo.BoxedProp != BOXED_VAL)
			MPError ("boxed method->prop", BOXED_VAL, vo.Boxed, vo.BoxedProp);

		vo.Pointer = POINTER_VAL;
		if (vo.PointerProp != POINTER_VAL)
			MPError ("pointer method->prop", POINTER_VAL, vo.Pointer, vo.PointerProp);

		vo.Object = OBJECT_VAL;
		if (vo.ObjectProp != OBJECT_VAL) {
			MPError ("object method->prop", OBJECT_VAL.GetType().Name + " " + OBJECT_VAL.GetHashCode (),
				 vo.Object == null ? "null" : vo.Object.GetType().Name + " " + vo.Object.GetHashCode (),
				 vo.ObjectProp == null ? "null" : vo.ObjectProp.GetType().Name + " " + vo.ObjectProp.GetHashCode ());
		}


		// Part 3: property->unmanaged->method round trip
		vo = new Valobj ();

		vo.BooleanProp = BOOL_VAL;
		if (vo.Boolean != BOOL_VAL)
			MPError ("boolean prop->method", BOOL_VAL, vo.Boolean, vo.BooleanProp);

		vo.IntProp = INT_VAL;
		if (vo.Int != INT_VAL)
			MPError ("int prop->method", INT_VAL, vo.Int, vo.IntProp);

		vo.UintProp = UINT_VAL;
		if (vo.Uint != UINT_VAL)
			MPError ("uint prop->method", UINT_VAL, vo.Uint, vo.UintProp);

		vo.Int64Prop = INT64_VAL;
		if (vo.Int64 != INT64_VAL)
			MPError ("int64 prop->method", INT64_VAL, vo.Int64, vo.Int64Prop);

		vo.Uint64Prop = UINT64_VAL;
		if (vo.Uint64 != UINT64_VAL)
			MPError ("uint64 prop->method", UINT64_VAL, vo.Uint64, vo.Uint64Prop);

		vo.UnicharProp = UNICHAR_VAL;
		if (vo.Unichar != UNICHAR_VAL)
			MPError ("unichar prop->method", UNICHAR_VAL, vo.Unichar, vo.UnicharProp);

		vo.EnumProp = ENUM_VAL;
		if (vo.Enum != ENUM_VAL)
			MPError ("enum prop->method", ENUM_VAL, vo.Enum, vo.EnumProp);

		vo.FlagsProp = FLAGS_VAL;
		if (vo.Flags != (FLAGS_VAL))
			MPError ("flags prop->method", FLAGS_VAL, vo.Flags, vo.FlagsProp);

		vo.FloatProp = FLOAT_VAL;
		if (vo.Float != FLOAT_VAL)
			MPError ("float prop->method", FLOAT_VAL, vo.Float, vo.FloatProp);

		vo.DoubleProp = DOUBLE_VAL;
		if (vo.Double != DOUBLE_VAL)
			MPError ("double prop->method", DOUBLE_VAL, vo.Double, vo.DoubleProp);

		vo.StringProp = STRING_VAL;
		if (vo.String != STRING_VAL)
			MPError ("string prop->method", STRING_VAL, vo.String, vo.StringProp);

		vo.BoxedProp = BOXED_VAL;
		if (vo.Boxed != BOXED_VAL)
			MPError ("boxed prop->method", BOXED_VAL, vo.Boxed, vo.BoxedProp);

		vo.PointerProp = POINTER_VAL;
		if (vo.Pointer != POINTER_VAL)
			MPError ("pointer prop->method", POINTER_VAL, vo.Pointer, vo.PointerProp);

		vo.ObjectProp = OBJECT_VAL;
		if (vo.Object != OBJECT_VAL) {
			MPError ("object prop->method", OBJECT_VAL.GetType().Name + " " + OBJECT_VAL.GetHashCode (),
				 vo.Object == null ? "null" : vo.Object.GetType().Name + " " + vo.Object.GetHashCode (),
				 vo.ObjectProp == null ? "null" : vo.ObjectProp.GetType().Name + " " + vo.ObjectProp.GetHashCode ());
		}

		Console.WriteLine ("{0} errors", errors);

		return errors;
	}
Пример #8
0
        /// <summary>

        /// Sets the given control's text property.

        /// </summary>

        /// <param name="control">Control to set</param>

        /// <param name="tip">ToolTip control</param>

        /// <history>

        /// [Curtis_Beard]		07/31/2006	Created

        /// [Curtis_Beard]		11/06/2006	CHG: Use Gtk controls

        /// </history>

        public static void SetControlText(Gtk.Widget control, Gtk.Tooltips tip)

        {
            if (__RootNode != null)

            {
                string formName = "";

                XmlNode node = __RootNode.SelectSingleNode("screen[@name='" + formName + "']");

                XmlNode controlNode;



                if (node != null)

                {
                    //node found, find control

                    controlNode = node.SelectSingleNode("control[@name='" + control.Name + "']");



                    if (controlNode != null)

                    {
                        //found control node

                        string value = controlNode.Attributes["value"].Value;



                        //text

                        if (control.GetType() == typeof(Gtk.Label))

                        {
                            ((Gtk.Label)control).Text = value;
                        }

                        else if (control.GetType() == typeof(Gtk.Button))

                        {
                            ((Gtk.Button)control).Label = value;
                        }

                        else if (control.GetType() == typeof(Gtk.CheckButton))

                        {
                            ((Gtk.CheckButton)control).Label = value;
                        }

                        else if (control.GetType() == typeof(Gtk.Frame))

                        {
                            ((Gtk.Frame)control).Label = value;
                        }



                        //tooltip

                        if (tip != null && controlNode.Attributes["tooltip"] != null)
                        {
                            tip.SetTip(control, controlNode.Attributes["tooltip"].Value, string.Empty);
                        }
                    }
                }
            }
        }
Пример #9
0
    public static int Main()
    {
        Gtk.Application.Init();

        BOXED_VAL   = new Gdk.Rectangle(1, 2, 3, 4);
        POINTER_VAL = (IntPtr)System.Runtime.InteropServices.GCHandle.Alloc("foo");
        OBJECT_VAL  = new Gtk.DrawingArea();

        // Part 1: Make sure values of all types round-trip correctly within Gtk#
        GLib.Value val;

        try {
            val = new GLib.Value(BOOL_VAL);
            if ((bool)val != BOOL_VAL)
            {
                CVError("boolean cast", BOOL_VAL, (bool)val, val.Val);
            }
            if ((bool)val.Val != BOOL_VAL)
            {
                CVError("boolean Val", BOOL_VAL, (bool)val, val.Val);
            }
        } catch (Exception e) {
            ExceptionError("boolean", e);
        }

        try {
            val = new GLib.Value(INT_VAL);
            if ((int)val != INT_VAL)
            {
                CVError("int cast", INT_VAL, (int)val, val.Val);
            }
            if ((int)val.Val != INT_VAL)
            {
                CVError("int Val", INT_VAL, (int)val, val.Val);
            }
        } catch (Exception e) {
            ExceptionError("int", e);
        }

        try {
            val = new GLib.Value(UINT_VAL);
            if ((uint)val != UINT_VAL)
            {
                CVError("uint cast", UINT_VAL, (uint)val, val.Val);
            }
            if ((uint)val.Val != UINT_VAL)
            {
                CVError("uint Val", UINT_VAL, (uint)val, val.Val);
            }
        } catch (Exception e) {
            ExceptionError("uint", e);
        }

        try {
            val = new GLib.Value(INT64_VAL);
            if ((long)val != INT64_VAL)
            {
                CVError("int64 cast", INT64_VAL, (long)val, val.Val);
            }
            if ((long)val.Val != INT64_VAL)
            {
                CVError("int64 Val", INT64_VAL, (long)val, val.Val);
            }
        } catch (Exception e) {
            ExceptionError("int64", e);
        }

        try {
            val = new GLib.Value(UINT64_VAL);
            if ((ulong)val != UINT64_VAL)
            {
                CVError("uint64 cast", UINT64_VAL, (ulong)val, val.Val);
            }
            if ((ulong)val.Val != UINT64_VAL)
            {
                CVError("uint64 Val", UINT64_VAL, (ulong)val, val.Val);
            }
        } catch (Exception e) {
            ExceptionError("uint64", e);
        }

        // gunichar doesn't have its own GValue type, it shares with guint

        try {
            val = new GLib.Value(ENUM_VAL);
            if ((Gtk.ArrowType)(Enum) val != ENUM_VAL)
            {
                CVError("enum cast", ENUM_VAL, (Gtk.ArrowType)(Enum) val, val.Val);
            }
            if ((Gtk.ArrowType)(Enum) val.Val != ENUM_VAL)
            {
                CVError("enum Val", ENUM_VAL, (Gtk.ArrowType)(Enum) val, val.Val);
            }
        } catch (Exception e) {
            ExceptionError("enum", e);
        }

        try {
            val = new GLib.Value(FLAGS_VAL);
            if ((Gtk.AttachOptions)(Enum) val != FLAGS_VAL)
            {
                CVError("flags cast", FLAGS_VAL, (Gtk.AttachOptions)(Enum) val, val.Val);
            }
            if ((Gtk.AttachOptions)(Enum) val.Val != FLAGS_VAL)
            {
                CVError("flags Val", FLAGS_VAL, (Gtk.AttachOptions)(Enum) val, val.Val);
            }
        } catch (Exception e) {
            ExceptionError("flags", e);
        }

        try {
            val = new GLib.Value(FLOAT_VAL);
            if ((float)val != FLOAT_VAL)
            {
                CVError("float cast", FLOAT_VAL, (float)val, val.Val);
            }
            if ((float)val.Val != FLOAT_VAL)
            {
                CVError("float Val", FLOAT_VAL, (float)val, val.Val);
            }
        } catch (Exception e) {
            ExceptionError("float", e);
        }

        try {
            val = new GLib.Value(DOUBLE_VAL);
            if ((double)val != DOUBLE_VAL)
            {
                CVError("double cast", DOUBLE_VAL, (double)val, val.Val);
            }
            if ((double)val.Val != DOUBLE_VAL)
            {
                CVError("double Val", DOUBLE_VAL, (double)val, val.Val);
            }
        } catch (Exception e) {
            ExceptionError("double", e);
        }

        try {
            val = new GLib.Value(STRING_VAL);
            if ((string)val != STRING_VAL)
            {
                CVError("string cast", STRING_VAL, (string)val, val.Val);
            }
            if ((string)val.Val != STRING_VAL)
            {
                CVError("string Val", STRING_VAL, (string)val, val.Val);
            }
        } catch (Exception e) {
            ExceptionError("string", e);
        }

        try {
            val = new GLib.Value(BOXED_VAL);
            if ((Gdk.Rectangle)val != BOXED_VAL)
            {
                CVError("boxed cast", BOXED_VAL, (Gdk.Rectangle)val, val.Val);
            }
            // Can't currently use .Val on boxed types
        } catch (Exception e) {
            ExceptionError("boxed", e);
        }

        try {
            val = new GLib.Value(POINTER_VAL);
            if ((IntPtr)val != POINTER_VAL)
            {
                CVError("pointer cast", POINTER_VAL, (IntPtr)val, val.Val);
            }
            if ((IntPtr)val.Val != POINTER_VAL)
            {
                CVError("pointer Val", POINTER_VAL, (IntPtr)val, val.Val);
            }
        } catch (Exception e) {
            ExceptionError("pointer", e);
        }

        try {
            val = new GLib.Value(OBJECT_VAL);
            if ((Gtk.DrawingArea)val != OBJECT_VAL)
            {
                CVError("object cast", OBJECT_VAL, (Gtk.DrawingArea)val, val.Val);
            }
            if ((Gtk.DrawingArea)val.Val != OBJECT_VAL)
            {
                CVError("object Val", OBJECT_VAL, (Gtk.DrawingArea)val, val.Val);
            }
        } catch (Exception e) {
            ExceptionError("object", e);
        }

        // Test ManagedValue

        Structtest st = new Structtest(5, "foo");

        try {
            val = new GLib.Value(st);
            // No direct GLib.Value -> ManagedValue cast
            Structtest st2 = (Structtest)val.Val;
            if (st.Int != st2.Int || st.String != st2.String)
            {
                CVError("ManagedValue Val", st, (Gtk.DrawingArea)val, val.Val);
            }
        } catch (Exception e) {
            ExceptionError("ManagedValue", e);
        }

        // Part 2: method->unmanaged->property round trip
        Valobj vo;

        vo = new Valobj();

        vo.Boolean = BOOL_VAL;
        if (vo.BooleanProp != BOOL_VAL)
        {
            MPError("boolean method->prop", BOOL_VAL, vo.Boolean, vo.BooleanProp);
        }

        vo.Int = INT_VAL;
        if (vo.IntProp != INT_VAL)
        {
            MPError("int method->prop", INT_VAL, vo.Int, vo.IntProp);
        }

        vo.Uint = UINT_VAL;
        if (vo.UintProp != UINT_VAL)
        {
            MPError("uint method->prop", UINT_VAL, vo.Uint, vo.UintProp);
        }

        vo.Int64 = INT64_VAL;
        if (vo.Int64Prop != INT64_VAL)
        {
            MPError("int64 method->prop", INT64_VAL, vo.Int64, vo.Int64Prop);
        }

        vo.Uint64 = UINT64_VAL;
        if (vo.Uint64Prop != UINT64_VAL)
        {
            MPError("uint64 method->prop", UINT64_VAL, vo.Uint64, vo.Uint64Prop);
        }

        vo.Unichar = UNICHAR_VAL;
        if (vo.UnicharProp != UNICHAR_VAL)
        {
            MPError("unichar method->prop", UNICHAR_VAL, vo.Unichar, vo.UnicharProp);
        }

        vo.Enum = ENUM_VAL;
        if (vo.EnumProp != ENUM_VAL)
        {
            MPError("enum method->prop", ENUM_VAL, vo.Enum, vo.EnumProp);
        }

        vo.Flags = FLAGS_VAL;
        if (vo.FlagsProp != (FLAGS_VAL))
        {
            MPError("flags method->prop", FLAGS_VAL, vo.Flags, vo.FlagsProp);
        }

        vo.Float = FLOAT_VAL;
        if (vo.FloatProp != FLOAT_VAL)
        {
            MPError("float method->prop", FLOAT_VAL, vo.Float, vo.FloatProp);
        }

        vo.Double = DOUBLE_VAL;
        if (vo.DoubleProp != DOUBLE_VAL)
        {
            MPError("double method->prop", DOUBLE_VAL, vo.Double, vo.DoubleProp);
        }

        vo.String = STRING_VAL;
        if (vo.StringProp != STRING_VAL)
        {
            MPError("string method->prop", STRING_VAL, vo.String, vo.StringProp);
        }

        vo.Boxed = BOXED_VAL;
        if (vo.BoxedProp != BOXED_VAL)
        {
            MPError("boxed method->prop", BOXED_VAL, vo.Boxed, vo.BoxedProp);
        }

        vo.Pointer = POINTER_VAL;
        if (vo.PointerProp != POINTER_VAL)
        {
            MPError("pointer method->prop", POINTER_VAL, vo.Pointer, vo.PointerProp);
        }

        vo.Object = OBJECT_VAL;
        if (vo.ObjectProp != OBJECT_VAL)
        {
            MPError("object method->prop", OBJECT_VAL.GetType().Name + " " + OBJECT_VAL.GetHashCode(),
                    vo.Object == null ? "null" : vo.Object.GetType().Name + " " + vo.Object.GetHashCode(),
                    vo.ObjectProp == null ? "null" : vo.ObjectProp.GetType().Name + " " + vo.ObjectProp.GetHashCode());
        }


        // Part 3: property->unmanaged->method round trip
        vo = new Valobj();

        vo.BooleanProp = BOOL_VAL;
        if (vo.Boolean != BOOL_VAL)
        {
            MPError("boolean prop->method", BOOL_VAL, vo.Boolean, vo.BooleanProp);
        }

        vo.IntProp = INT_VAL;
        if (vo.Int != INT_VAL)
        {
            MPError("int prop->method", INT_VAL, vo.Int, vo.IntProp);
        }

        vo.UintProp = UINT_VAL;
        if (vo.Uint != UINT_VAL)
        {
            MPError("uint prop->method", UINT_VAL, vo.Uint, vo.UintProp);
        }

        vo.Int64Prop = INT64_VAL;
        if (vo.Int64 != INT64_VAL)
        {
            MPError("int64 prop->method", INT64_VAL, vo.Int64, vo.Int64Prop);
        }

        vo.Uint64Prop = UINT64_VAL;
        if (vo.Uint64 != UINT64_VAL)
        {
            MPError("uint64 prop->method", UINT64_VAL, vo.Uint64, vo.Uint64Prop);
        }

        vo.UnicharProp = UNICHAR_VAL;
        if (vo.Unichar != UNICHAR_VAL)
        {
            MPError("unichar prop->method", UNICHAR_VAL, vo.Unichar, vo.UnicharProp);
        }

        vo.EnumProp = ENUM_VAL;
        if (vo.Enum != ENUM_VAL)
        {
            MPError("enum prop->method", ENUM_VAL, vo.Enum, vo.EnumProp);
        }

        vo.FlagsProp = FLAGS_VAL;
        if (vo.Flags != (FLAGS_VAL))
        {
            MPError("flags prop->method", FLAGS_VAL, vo.Flags, vo.FlagsProp);
        }

        vo.FloatProp = FLOAT_VAL;
        if (vo.Float != FLOAT_VAL)
        {
            MPError("float prop->method", FLOAT_VAL, vo.Float, vo.FloatProp);
        }

        vo.DoubleProp = DOUBLE_VAL;
        if (vo.Double != DOUBLE_VAL)
        {
            MPError("double prop->method", DOUBLE_VAL, vo.Double, vo.DoubleProp);
        }

        vo.StringProp = STRING_VAL;
        if (vo.String != STRING_VAL)
        {
            MPError("string prop->method", STRING_VAL, vo.String, vo.StringProp);
        }

        vo.BoxedProp = BOXED_VAL;
        if (vo.Boxed != BOXED_VAL)
        {
            MPError("boxed prop->method", BOXED_VAL, vo.Boxed, vo.BoxedProp);
        }

        vo.PointerProp = POINTER_VAL;
        if (vo.Pointer != POINTER_VAL)
        {
            MPError("pointer prop->method", POINTER_VAL, vo.Pointer, vo.PointerProp);
        }

        vo.ObjectProp = OBJECT_VAL;
        if (vo.Object != OBJECT_VAL)
        {
            MPError("object prop->method", OBJECT_VAL.GetType().Name + " " + OBJECT_VAL.GetHashCode(),
                    vo.Object == null ? "null" : vo.Object.GetType().Name + " " + vo.Object.GetHashCode(),
                    vo.ObjectProp == null ? "null" : vo.ObjectProp.GetType().Name + " " + vo.ObjectProp.GetHashCode());
        }

        Console.WriteLine("{0} errors", errors);

        return(errors);
    }
Пример #10
0
        private void SwitchPage(Widget newPage)
        {
            Logger.DebugFormat("Switching to page {0}", newPage.GetType().Name);
            var viewBase = newPage as ViewBase;

            foreach (var view in MainUiContainer.Children.OfType<ViewBase>())
                view.Deactivated();
            if (MainUiContainer.Child != null)
                MainUiContainer.Remove(MainUiContainer.Child);
            MainUiContainer.Add(newPage);
            newPage.ShowAll();

            if(ButtonsUiContainer.Child!=null)
                ButtonsUiContainer.Remove(ButtonsUiContainer.Child);

            if (viewBase != null)
            {
                ButtonsUiContainer.Add(viewBase.DetachableViewControlsContainer);
                viewBase.Activated();
            }

            TouchMPCGtk.Settings.Default.LastPage = newPage.GetType().Name;
            TouchMPCGtk.Settings.Default.Save();
        }
Пример #11
0
 static bool IsSkipedType(Widget w, Type[] skipTypes)
 {
     return skipTypes.Count (t => w.GetType ().IsSubclassOf (t)) > 0;
 }
Пример #12
0
        private void ProbeAdjustable (Widget widget)
        {
            Type type = widget.GetType ();

            PropertyInfo hadj_prop = type.GetProperty ("Hadjustment");
            PropertyInfo vadj_prop = type.GetProperty ("Vadjustment");

            if (hadj_prop == null || vadj_prop == null) {
                return;
            }

            object hadj_value = hadj_prop.GetValue (widget, null);
            object vadj_value = vadj_prop.GetValue (widget, null);

            if (hadj_value == null || vadj_value == null
                || hadj_value.GetType () != typeof (Adjustment)
                || vadj_value.GetType () != typeof (Adjustment)) {
                return;
            }

            Hadjustment = (Adjustment)hadj_value;
            Vadjustment = (Adjustment)vadj_value;
        }