public ObjectInspectorTreeView(
     IObjectValueDebuggerService debuggerService,
     ObjectValueTreeViewController controller,
     bool allowEditing,
     ObjectValueTreeViewFlags flags)
     : base(debuggerService, controller, allowEditing, flags)
 {
 }
Пример #2
0
        public MacObjectValueTreeView GetMacTreeView(ObjectValueTreeViewFlags flags)
        {
            if (view != null)
            {
                throw new InvalidOperationException("You can only get the control once for each controller instance");
            }

            var control = new ObjectInspectorTreeView(debuggerService, this, AllowEditing, flags);

            ConfigureView(control);
            view = control;

            return(control);
        }
Пример #3
0
        public MacObjectValueTreeView(
            IObjectValueDebuggerService debuggerService,
            ObjectValueTreeViewController controller,
            bool allowEditing,
            ObjectValueTreeViewFlags flags)
        {
            DebuggerService = debuggerService;
            Controller      = controller;

            this.rootPinVisible = (flags & ObjectValueTreeViewFlags.RootPinVisible) != 0;
            this.allowPopupMenu = (flags & ObjectValueTreeViewFlags.AllowPopupMenu) != 0;
            this.compactView    = (flags & ObjectValueTreeViewFlags.CompactView) != 0;
            this.allowEditing   = allowEditing;

            DataSource = dataSource = new MacObjectValueTreeViewDataSource(this, controller.Root, controller.AllowWatchExpressions);
            Delegate   = treeViewDelegate = new MacObjectValueTreeViewDelegate(this);
            ColumnAutoresizingStyle            = compactView ? NSTableViewColumnAutoresizingStyle.None : NSTableViewColumnAutoresizingStyle.Uniform;
            AllowsSelection                    = (flags & ObjectValueTreeViewFlags.AllowSelection) != 0;
            treeViewDelegate.SelectionChanged += OnSelectionChanged;
            UsesAlternatingRowBackgroundColors = true;
            FocusRingType            = NSFocusRingType.None;
            AllowsColumnResizing     = !compactView;
            AutoresizesOutlineColumn = false;
            SetCustomFont(null);

            var resizingMask = compactView ? NSTableColumnResizing.None : NSTableColumnResizing.UserResizingMask | NSTableColumnResizing.Autoresizing;

            nameColumn = new NSTableColumn("name")
            {
                Editable = controller.AllowWatchExpressions, MinWidth = MinimumNameColumnWidth, ResizingMask = resizingMask
            };
            nameColumn.Title = GettextCatalog.GetString("Name");
            nameColumn.Width = MinimumNameColumnWidth * 2;
            AddColumn(nameColumn);

            OutlineTableColumn = nameColumn;

            valueColumn = new NSTableColumn("value")
            {
                Editable = controller.AllowEditing, MinWidth = MinimumValueColumnWidth, ResizingMask = resizingMask
            };
            valueColumn.Title = GettextCatalog.GetString("Value");
            valueColumn.Width = MinimumValueColumnWidth * 2;
            if (compactView)
            {
                valueColumn.MaxWidth = 800;
            }
            AddColumn(valueColumn);

            if (!compactView)
            {
                typeColumn = new NSTableColumn("type")
                {
                    Editable = false, MinWidth = MinimumTypeColumnWidth, ResizingMask = resizingMask
                };
                typeColumn.Title = GettextCatalog.GetString("Type");
                typeColumn.Width = MinimumTypeColumnWidth * 2;
                AddColumn(typeColumn);
            }

            if ((flags & ObjectValueTreeViewFlags.AllowPinning) != 0)
            {
                pinColumn = new NSTableColumn("pin")
                {
                    Editable = false, ResizingMask = NSTableColumnResizing.None
                };
                pinColumn.MinWidth = pinColumn.MaxWidth = pinColumn.Width = MacDebuggerObjectPinView.MinWidth;
                AddColumn(pinColumn);
            }

            if ((flags & ObjectValueTreeViewFlags.HeadersVisible) != 0)
            {
                HeaderView.AlphaValue = 1.0f;
            }
            else
            {
                HeaderView = null;
            }

            PreviewWindowManager.WindowClosed += OnPreviewWindowClosed;

            // disable implicit animations
            WantsLayer    = true;
            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);
        }