コード例 #1
0
        public ObjectInspectorPad()
        {
            controller = new ObjectInspectorTreeViewController();
            controller.AllowEditing = true;

            treeView = controller.GetMacTreeView(ObjectValueTreeViewFlags.ObjectValuePadFlags);

            fontChanger = new PadFontChanger(treeView, SetCustomFont);

            var scrolled = new AppKit.NSScrollView {
                DocumentView          = treeView,
                AutohidesScrollers    = false,
                HasVerticalScroller   = true,
                HasHorizontalScroller = true,
            };

            scrolled.WantsLayer    = true;
            scrolled.Layer.Actions = new NSDictionary(
                "actions", NSNull.Null,
                "contents", NSNull.Null,
                "hidden", NSNull.Null,
                "onLayout", NSNull.Null,
                "onOrderIn", NSNull.Null,
                "onOrderOut", NSNull.Null,
                "position", NSNull.Null,
                "sublayers", NSNull.Null,
                "transform", NSNull.Null,
                "bounds", NSNull.Null);

            var host = new GtkNSViewHost(scrolled);

            host.ShowAll();

            control = host;
        }
コード例 #2
0
        public ObjectValuePad(bool allowWatchExpressions = false)
        {
            if (UseNewTreeView)
            {
                controller = new ObjectValueTreeViewController(allowWatchExpressions);
                controller.AllowEditing = true;

                if (Platform.IsMac)
                {
                    LoggingService.LogInfo("Using MacObjectValueTreeView for {0}", allowWatchExpressions ? "Watch Pad" : "Locals Pad");
                    var treeView = controller.GetMacControl(ObjectValueTreeViewFlags.ObjectValuePadFlags);
                    _treeview = treeView;

                    fontChanger = new PadFontChanger(treeView, treeView.SetCustomFont, treeView.QueueResize);

                    var scrolled = new AppKit.NSScrollView {
                        DocumentView          = treeView,
                        AutohidesScrollers    = false,
                        HasVerticalScroller   = true,
                        HasHorizontalScroller = true,
                    };

                    // disable implicit animations
                    scrolled.WantsLayer    = true;
                    scrolled.Layer.Actions = new NSDictionary(
                        "actions", NSNull.Null,
                        "contents", NSNull.Null,
                        "hidden", NSNull.Null,
                        "onLayout", NSNull.Null,
                        "onOrderIn", NSNull.Null,
                        "onOrderOut", NSNull.Null,
                        "position", NSNull.Null,
                        "sublayers", NSNull.Null,
                        "transform", NSNull.Null,
                        "bounds", NSNull.Null);

                    var host = new GtkNSViewHost(scrolled);
                    host.ShowAll();

                    control = host;
                }
                else
                {
                    LoggingService.LogInfo("Using GtkObjectValueTreeView for {0}", allowWatchExpressions ? "Watch Pad" : "Locals Pad");
                    var treeView = controller.GetGtkControl(ObjectValueTreeViewFlags.ObjectValuePadFlags);
                    treeView.Show();

                    fontChanger = new PadFontChanger(treeView, treeView.SetCustomFont, treeView.QueueResize);

                    var scrolled = new ScrolledWindow {
                        HscrollbarPolicy = PolicyType.Automatic,
                        VscrollbarPolicy = PolicyType.Automatic
                    };
                    scrolled.Add(treeView);
                    scrolled.Show();

                    control = scrolled;
                }
            }
            else
            {
                LoggingService.LogInfo("Using old ObjectValueTreeView for {0}", allowWatchExpressions ? "Watch Pad" : "Locals Pad");
                tree              = new ObjectValueTreeView();
                tree.AllowAdding  = allowWatchExpressions;
                tree.AllowEditing = true;
                tree.Show();

                fontChanger = new PadFontChanger(tree, tree.SetCustomFont, tree.QueueResize);

                var scrolled = new ScrolledWindow {
                    HscrollbarPolicy = PolicyType.Automatic,
                    VscrollbarPolicy = PolicyType.Automatic
                };
                scrolled.Add(tree);
                scrolled.Show();

                control = scrolled;
            }

            DebuggingService.CurrentFrameChanged      += OnFrameChanged;
            DebuggingService.PausedEvent              += OnDebuggerPaused;
            DebuggingService.ResumedEvent             += OnDebuggerResumed;
            DebuggingService.StoppedEvent             += OnDebuggerStopped;
            DebuggingService.EvaluationOptionsChanged += OnEvaluationOptionsChanged;
            DebuggingService.VariableChanged          += OnVariableChanged;

            needsUpdateValues = false;
            needsUpdateFrame  = true;

            //If pad is created/opened while debugging...
            IsInitialResume = !DebuggingService.IsDebugging;
        }
コード例 #3
0
 public SplitterMacHostWidget()
 {
     view = new MacSplitterWidget();
     host = new GtkNSViewHost(view);
 }
コード例 #4
0
        Widget CreateExceptionValueTreeView()
        {
            Widget scrolledWidget = null;

            if (useNewTreeView)
            {
                controller = new ObjectValueTreeViewController();
                controller.SetStackFrame(DebuggingService.CurrentFrame);
                controller.AllowExpanding = true;

                if (Platform.IsMac)
                {
                    macExceptionValueTreeView = controller.GetMacControl(ObjectValueTreeViewFlags.ObjectValuePadFlags);
                    macExceptionValueTreeView.UIElementName = "ExceptionCaughtDialog";
                }
                else
                {
                    exceptionValueTreeView = controller.GetGtkControl(ObjectValueTreeViewFlags.ExceptionCaughtFlags);
                }
            }
            else
            {
                var objValueTreeView = new ObjectValueTreeView();
                objValueTreeView.Frame          = DebuggingService.CurrentFrame;
                objValueTreeView.AllowPopupMenu = false;
                objValueTreeView.AllowExpanding = true;
                objValueTreeView.AllowPinning   = false;
                objValueTreeView.AllowEditing   = false;
                objValueTreeView.AllowAdding    = false;

                exceptionValueTreeView = objValueTreeView;
            }

            if (useNewTreeView && Platform.IsMac)
            {
                var scrolled = new AppKit.NSScrollView {
                    DocumentView          = macExceptionValueTreeView,
                    AutohidesScrollers    = true,
                    HasVerticalScroller   = true,
                    HasHorizontalScroller = true,
                };

                // disable implicit animations
                scrolled.WantsLayer    = true;
                scrolled.Layer.Actions = new NSDictionary(
                    "actions", NSNull.Null,
                    "contents", NSNull.Null,
                    "hidden", NSNull.Null,
                    "onLayout", NSNull.Null,
                    "onOrderIn", NSNull.Null,
                    "onOrderOut", NSNull.Null,
                    "position", NSNull.Null,
                    "sublayers", NSNull.Null,
                    "transform", NSNull.Null,
                    "bounds", NSNull.Null);

                var host = new GtkNSViewHost(scrolled);
                host.ShowAll();
                scrolledWidget = host;
            }
            else
            {
                exceptionValueTreeView.ModifyBase(StateType.Normal, Styles.ExceptionCaughtDialog.ValueTreeBackgroundColor.ToGdkColor());
                exceptionValueTreeView.ModifyBase(StateType.Active, Styles.ObjectValueTreeActiveBackgroundColor.ToGdkColor());
                exceptionValueTreeView.ModifyFont(Pango.FontDescription.FromString(Platform.IsWindows ? "9" : "11"));
                exceptionValueTreeView.RulesHint = false;
                exceptionValueTreeView.CanFocus  = true;
                exceptionValueTreeView.Show();

                var scrolled = new ScrolledWindow {
                    CanFocus         = true,
                    HscrollbarPolicy = PolicyType.Automatic,
                    VscrollbarPolicy = PolicyType.Automatic
                };

                scrolled.ShadowType = ShadowType.None;
                scrolled.Add(exceptionValueTreeView);
                scrolled.Show();
                scrolledWidget = scrolled;
            }

            var label = new Label();

            label.Markup = "<b>" + GettextCatalog.GetString("Properties") + "</b>";
            label.Xalign = 0;
            label.Xpad   = 10;

            if (exceptionValueTreeView != null)
            {
                exceptionValueTreeView.SetCommonAccessibilityAttributes("ExceptionCaughtDialog.ExceptionValueTreeView", label, null);
            }
            else
            {
                macExceptionValueTreeView.AccessibilityTitle = new NSString(label.Text);
            }

            var vbox = new VBox();

            vbox.PackStart(label, false, false, 12);
            vbox.PackStart(scrolledWidget, true, true, 0);
            vbox.ShowAll();

            return(vbox);
        }
コード例 #5
0
 public SplitterMacHostWidget()
 {
     view = new MacSplitterWidget();
     host = new GtkNSViewHost(view, AppKit.NSWindowOrderingMode.Above);
 }