Example #1
0
        internal WidgetDesignerBackend(Gtk.Container container, int designWidth, int designHeight)
        {
            ShadowType       = ShadowType.None;
            HscrollbarPolicy = PolicyType.Automatic;
            VscrollbarPolicy = PolicyType.Automatic;

            resizableFixed = new ResizableFixed();
            resizableFixed.ObjectViewer = defaultObjectViewer;

            wrapper = ObjectWrapper.Lookup(container);
            Gtk.Window window = container as Gtk.Window;

            if (window != null)
            {
                try {
                    metacityPreview = CreateMetacityPreview(window);
                    preview         = metacityPreview;
                    if (wrapper != null)
                    {
                        wrapper.Notify += OnWindowPropChange;
                    }
                } catch {
                    // If metacity is not available, use a regular box.
                    EventBox eventBox = new EventBox();
                    eventBox.Add(container);
                    preview = eventBox;
                }
            }
            else
            {
                EventBox eventBox = new EventBox();
                eventBox.Add(container);
                preview = eventBox;
            }

            resizableFixed.Put(preview, container);

            if (designWidth != -1)
            {
                preview.WidthRequest       = designWidth;
                preview.HeightRequest      = designHeight;
                resizableFixed.AllowResize = true;
            }
            else
            {
                resizableFixed.AllowResize = false;
            }

            preview.SizeAllocated += new Gtk.SizeAllocatedHandler(OnResized);

            AddWithViewport(resizableFixed);

            if (wrapper != null)
            {
                wrapper.AttachDesigner(resizableFixed);
            }

            resizableFixed.SelectionChanged += OnSelectionChanged;
        }
Example #2
0
        Metacity.Preview CreateMetacityPreview(Gtk.Window window)
        {
            Metacity.Preview metacityPreview = new Metacity.Preview();

            switch (window.TypeHint)
            {
            case Gdk.WindowTypeHint.Normal:
                metacityPreview.FrameType = Metacity.FrameType.Normal;
                break;

            case Gdk.WindowTypeHint.Dialog:
                metacityPreview.FrameType = window.Modal ? Metacity.FrameType.ModalDialog : Metacity.FrameType.Dialog;
                break;

            case Gdk.WindowTypeHint.Menu:
                metacityPreview.FrameType = Metacity.FrameType.Menu;
                break;

            case Gdk.WindowTypeHint.Splashscreen:
                metacityPreview.FrameType = Metacity.FrameType.Border;
                break;

            case Gdk.WindowTypeHint.Utility:
                metacityPreview.FrameType = Metacity.FrameType.Utility;
                break;

            default:
                metacityPreview.FrameType = Metacity.FrameType.Normal;
                break;
            }

            Metacity.FrameFlags flags =
                Metacity.FrameFlags.AllowsDelete |
                Metacity.FrameFlags.AllowsVerticalResize |
                Metacity.FrameFlags.AllowsHorizontalResize |
                Metacity.FrameFlags.AllowsMove |
                Metacity.FrameFlags.AllowsShade |
                Metacity.FrameFlags.HasFocus;

            if (window.Resizable)
            {
                flags = flags | Metacity.FrameFlags.AllowsMaximize;
            }

            metacityPreview.FrameFlags = flags;
            metacityPreview.ShowAll();
            metacityPreview.Add(window);

            metacityPreview.Theme = GetTheme();

            return(metacityPreview);
        }
Example #3
0
        internal WidgetDesignerBackend(Gtk.Container container, int designWidth, int designHeight)
        {
            ShadowType = ShadowType.None;
            HscrollbarPolicy = PolicyType.Automatic;
            VscrollbarPolicy = PolicyType.Automatic;

            resizableFixed = new ResizableFixed ();
            resizableFixed.ObjectViewer = defaultObjectViewer;

            wrapper = ObjectWrapper.Lookup (container);
            Gtk.Window window = container as Gtk.Window;

            if (window != null) {
                try {
                    metacityPreview = CreateMetacityPreview (window);
                    preview = metacityPreview;
                    if (wrapper != null)
                        wrapper.Notify += OnWindowPropChange;
                } catch {
                    // If metacity is not available, use a regular box.
                    EventBox eventBox = new EventBox ();
                    eventBox.Add (container);
                    preview = eventBox;
                }

            } else {
                EventBox eventBox = new EventBox ();
                eventBox.Add (container);
                preview = eventBox;
            }

            resizableFixed.Put (preview, container);

            if (designWidth != -1) {
                preview.WidthRequest = designWidth;
                preview.HeightRequest = designHeight;
                resizableFixed.AllowResize = true;
            } else {
                resizableFixed.AllowResize = false;
            }

            preview.SizeAllocated += new Gtk.SizeAllocatedHandler (OnResized);

            AddWithViewport (resizableFixed);

            if (wrapper != null)
                wrapper.AttachDesigner (resizableFixed);

            resizableFixed.SelectionChanged += OnSelectionChanged;
        }
Example #4
0
        Metacity.Preview CreateMetacityPreview(Gtk.Window window)
        {
            Metacity.Preview metacityPreview = new Metacity.Preview ();

            switch (window.TypeHint) {
            case Gdk.WindowTypeHint.Normal:
                metacityPreview.FrameType = Metacity.FrameType.Normal;
                break;
            case Gdk.WindowTypeHint.Dialog:
                metacityPreview.FrameType = window.Modal ? Metacity.FrameType.ModalDialog : Metacity.FrameType.Dialog;
                break;
            case Gdk.WindowTypeHint.Menu:
                metacityPreview.FrameType = Metacity.FrameType.Menu;
                break;
            case Gdk.WindowTypeHint.Splashscreen:
                metacityPreview.FrameType = Metacity.FrameType.Border;
                break;
            case Gdk.WindowTypeHint.Utility:
                metacityPreview.FrameType = Metacity.FrameType.Utility;
                break;
            default:
                metacityPreview.FrameType = Metacity.FrameType.Normal;
                break;
            }

            Metacity.FrameFlags flags =
                Metacity.FrameFlags.AllowsDelete |
                Metacity.FrameFlags.AllowsVerticalResize |
                Metacity.FrameFlags.AllowsHorizontalResize |
                Metacity.FrameFlags.AllowsMove |
                Metacity.FrameFlags.AllowsShade |
                Metacity.FrameFlags.HasFocus;

            if (window.Resizable)
                flags = flags | Metacity.FrameFlags.AllowsMaximize;

            metacityPreview.FrameFlags = flags;
            metacityPreview.ShowAll ();
            metacityPreview.Add (window);

            metacityPreview.Theme = GetTheme ();

            return metacityPreview;
        }