Ejemplo n.º 1
0
        public ColumnHeaderRenderer(NlmTreeListView listView)
        {
            ListView = listView;

            // Add Event.
            ListView.DrawColumnHeader += new DrawListViewColumnHeaderEventHandler(HandleDrawColumnHeader);
        }
Ejemplo n.º 2
0
        public MaxSystemEvents(NlmTreeListView listView, NodeController nodeControl)
        {
            // Set properties.
            ListView    = listView;
            NodeControl = nodeControl;

            // Create Events
            FilePreSave = new SystemNotificationObjectHandler(SystemNotificationCode.FilePreSave);
            FilePreSave.NotificationRaised += new EventHandler <SystemNotificationObjectEventArgs>(onFilePreSave);

            SystemPreReset = new SystemNotificationObjectHandler(SystemNotificationCode.SystemPreReset);
            SystemPreReset.NotificationRaised += new EventHandler <SystemNotificationObjectEventArgs>(onSystemPreReset);

            SystemPostReset = new SystemNotificationObjectHandler(SystemNotificationCode.SystemPostReset);
            SystemPostReset.NotificationRaised += new EventHandler <SystemNotificationObjectEventArgs>(onSystemPostReset);

            SystemPreNew = new SystemNotificationObjectHandler(SystemNotificationCode.SystemPreNew);
            SystemPreNew.NotificationRaised += new EventHandler <SystemNotificationObjectEventArgs>(onSystemPreReset);

            SystemPostNew = new SystemNotificationObjectHandler(SystemNotificationCode.SystemPostNew);
            SystemPostNew.NotificationRaised += new EventHandler <SystemNotificationObjectEventArgs>(onSystemPostReset);

            SystemPreLoad = new SystemNotificationObjectHandler(SystemNotificationCode.FilePreOpen);
            SystemPreLoad.NotificationRaised += new EventHandler <SystemNotificationObjectEventArgs>(onSystemPreReset);

            SystemPostLoad = new SystemNotificationObjectHandler(SystemNotificationCode.FilePostOpen);
            SystemPostLoad.NotificationRaised += new EventHandler <SystemNotificationObjectEventArgs>(onSystemPostReset);

            SystemPostMerge = new SystemNotificationObjectHandler(SystemNotificationCode.FilePostMerge);
            SystemPostMerge.NotificationRaised += new EventHandler <SystemNotificationObjectEventArgs>(onSystemPostMerge);

            // import, dunno if we need that one
            // xref
        }
Ejemplo n.º 3
0
        public MaxNodeEvents(NlmTreeListView listView, NodeController nodeControl)
            : base(listView, nodeControl)
        {
            ListView    = listView;
            NodeControl = nodeControl;

            NodeCreated = new SystemNotificationAnimHandler(SystemNotificationCode.NodeCreated);
            NodeCreated.NotificationRaised += new EventHandler <SystemNotificationAnimEventArgs>(onNodeCreated);
        }
Ejemplo n.º 4
0
        public static void onCreateFolder(Object sender, ClickEventArgs e)
        {
            NlmTreeListView listView = e.ListView;

            // Calculate unique name in current level.
            IEnumerable <FolderTreeNode> folderNodes = listView.NodeControl.Query.FolderNodes;

            String folderName = "Folder";
            Int32  index      = 1;

            while (folderNodes.Any(x => x.Name == folderName + index.ToString("000")))
            {
                index += 1;
            }
            folderName += index.ToString("000");

            // Create folder node.
            FolderTreeNode folderTreeNode = new FolderTreeNode(folderName);

            // Get parent node.
            BaseTreeNode parentTreeNode = null;

            if (listView.SelectedObjects.Count > 0)
            {
                BaseTreeNode treeNode = listView.SelectedObjects[0] as BaseTreeNode;
                if (treeNode is FolderTreeNode)
                {
                    parentTreeNode = treeNode;
                }
                if (treeNode is LayerTreeNode)
                {
                    parentTreeNode = treeNode.Parent;
                }
            }

            // Add folder to listview, ensure is visible by expanding parents.
            listView.AddObject(folderTreeNode, parentTreeNode);
            if (parentTreeNode != null)
            {
                listView.Expand(parentTreeNode);
            }

            // Scroll to new item.
            Int32 parentIndex = listView.IndexOf(folderTreeNode);

            if (parentIndex != -1)
            {
                listView.EnsureVisible(parentIndex);
            }

            // Sort, select, and begin edit.
            listView.Sort(listView.NlmColumns.NameColumn, SortOrder.Ascending);
            listView.SelectedObjects = new List <Object> {
                folderTreeNode
            };
            listView.EditModel(folderTreeNode);
        }
Ejemplo n.º 5
0
        public static void LoadNlmData(NlmTreeListView listView)
        {
            NlmData nlmData = GetAppData(MaxNodes.RootNode, DataAddress.NlmData) as NlmData;

            if (nlmData != null)
            {
                NlmDataIO.RestoreNlmData(listView, nlmData);
            }
        }
Ejemplo n.º 6
0
        public DisabledNodeStyle(NlmTreeListView listView)
        {
            Color disableForeColor = Color.FromArgb(
                (listView.ForeColor.R / 2) + (listView.BackColor.R / 2),
                (listView.ForeColor.G / 2) + (listView.BackColor.G / 2),
                (listView.ForeColor.B / 2) + (listView.BackColor.B / 2)
                );

            ForeColor = disableForeColor;
        }
Ejemplo n.º 7
0
        public static void onSelectObjectsFromHighlight(Object sender, ClickEventArgs e)
        {
            NlmTreeListView listView = e.ListView;

            MaxNodes.ClearNodeSelection();

            IEnumerable <UIntPtr> handles = listView.NodeControl.Query.SelectionAndAllChildObjectHandles;

            MaxNodes.SelectNodes(handles);
        }
Ejemplo n.º 8
0
        public ColorColumn(NlmTreeListView listView)
        {
            Text      = "Color";
            Width     = 40;
            TextAlign = HorizontalAlignment.Center;

            AspectEngine = new ColorAspectEngine(listView, this);

            Renderer = new ColorRenderer();
        }
Ejemplo n.º 9
0
        public NodeDragDropEngine(NlmTreeListView listView, NodeParentEngine nodeParentEngine, MaxEventEngine maxEvents)
        {
            ListView         = listView;
            NodeParentEngine = nodeParentEngine;
            MaxEvents        = maxEvents;

            // Add Events.
            ListView.ModelCanDrop += new EventHandler <ModelDropEventArgs>(CanDrop);
            ListView.ModelDropped += new EventHandler <ModelDropEventArgs>(Dropped);
        }
Ejemplo n.º 10
0
        private static void onCreateLayer(Object sender, ClickEventArgs e, Boolean addSelection)
        {
            NlmTreeListView listView = e.ListView;

            listView.NodeControl.MaxEvents.LayerEvents.LayerCreated.UnregisterNotification();

            IILayer layer  = MaxLayers.CreateLayer(true, addSelection);
            UIntPtr handle = MaxAnimatable.GetHandleByAnim(layer);

            LayerTreeNode layerTreeNode = new LayerTreeNode(handle, listView.NodeControl.HandleMap);

            // Get parent node.
            BaseTreeNode parentTreeNode = null;

            if (listView.SelectedObjects.Count > 0)
            {
                BaseTreeNode treeNode = listView.SelectedObjects[0] as BaseTreeNode;
                if (treeNode is FolderTreeNode)
                {
                    parentTreeNode = treeNode;
                }
                if (treeNode is LayerTreeNode)
                {
                    parentTreeNode = treeNode.Parent;
                }
            }

            // Add folder to listview, ensure is visible by expanding parents.
            listView.AddObject(layerTreeNode, parentTreeNode);
            if (parentTreeNode != null)
            {
                listView.Expand(parentTreeNode);
            }

            // Scroll to new item.
            Int32 parentIndex = listView.IndexOf(layerTreeNode);

            if (parentIndex != -1)
            {
                listView.EnsureVisible(parentIndex);
            }

            // Sort, select
            listView.Sort(listView.NlmColumns.NameColumn, SortOrder.Ascending);
            listView.SelectedObjects = new List <Object> {
                layerTreeNode
            };

            // Focus on the listview to ensure text entry goes to the edit box, and begin edit.
            listView.Focus();
            listView.EditModel(layerTreeNode);

            // Register notification.
            listView.NodeControl.MaxEvents.LayerEvents.LayerCreated.RegisterNotification();
        }
Ejemplo n.º 11
0
 public NodeController(NlmTreeListView listView)
 {
     MaxEvents      = new MaxEventEngine(listView, this);
     HandleMap      = new HandleMap();
     Query          = new NodeQueryEngine(listView);
     Create         = new NodeCreateEngine(listView, HandleMap);
     Destroy        = new NodeDeleteEngine(listView, Query, HandleMap);
     CollapseExpand = new NodeCollapseExpandEngine(listView, Query);
     Parent         = new NodeParentEngine(listView);
     DragDrop       = new NodeDragDropEngine(listView, Parent, MaxEvents);
 }
Ejemplo n.º 12
0
        public static void SaveFolderData(IEnumerable <FolderTreeNode> treeNodes, NlmTreeListView owner)
        {
            List <FolderData> folderData = new List <FolderData>();

            foreach (FolderTreeNode treeNode in treeNodes)
            {
                folderData.Add(new FolderData(treeNode, owner));
            }
            IAnimatable rootNode = GlobalInterface.Instance.COREInterface.RootNode as IAnimatable;

            SetAppData(rootNode, DataAddress.FolderData, folderData);
        }
Ejemplo n.º 13
0
        // The main work is done here.
        // Find out if smart folder mode is being used
        // If false, return active image based on aspectValue.
        // If true, calculate correct icon to show depending on aspectValue and all parent values.
        // If a parent is true, the icon will be active and based on aspectValue.
        // If a parent is false, the icon will be inactive and based on aspectValue.
        public override void Render(Graphics g, Rectangle r)
        {
            this.DrawBackground(g, r);
            r = this.ApplyCellPadding(r);

            Image image       = null;
            bool? aspectValue = this.Aspect as bool?;

            // Is the listItem enabled? If so, we need to calculate the correct active/inactive icon.
            if (ListItem.Enabled)
            {
                NlmTreeListView ListView = this.ListView as NlmTreeListView;
                if (ListView.SmartFolderMode)
                {
                    BaseTreeNode baseTreeNode = this.RowObject as BaseTreeNode;
                    bool         parentValue  = true;
                    while (baseTreeNode.Parent != null)
                    {
                        INLMColumn nlmColumn = this.Column as INLMColumn;
                        if ((Boolean?)nlmColumn.AspectEngine.GetAspect(baseTreeNode.Parent) == false)
                        {
                            parentValue = false;
                            break;
                        }
                        baseTreeNode = baseTreeNode.Parent;
                    }
                    if (parentValue)
                    {
                        image = GetActiveImage(aspectValue);
                    }
                    else
                    {
                        image = GetInactiveImage(aspectValue);
                    }
                }
                // Dumb folder mode is a lot simpler :)
                else
                {
                    image = GetActiveImage(aspectValue);
                }
            }
            // If the item is disabled we want it to have 50% opacity, so we always use the inactive image.
            else
            {
                image = GetInactiveImage(aspectValue);
            }

            // Finally, after all that work, let's draw the image.
            if (image != null)
            {
                this.DrawAlignedImage(g, r, image);
            }
        }
Ejemplo n.º 14
0
 public static void ApplyLook(NlmTreeListView listView)
 {
     using (CuiUpdater cuiUpdater = CuiUpdater.GetInstance())
     {
         listView.BackColor                         = cuiUpdater.GetMaxColor(7);
         listView.ForeColor                         = cuiUpdater.GetMaxColor(1);
         listView.AlternateRowBackColor             = Color.FromArgb(listView.BackColor.R + 5, listView.BackColor.G + 5, listView.BackColor.B + 5);
         listView.HighlightBackgroundColor          = cuiUpdater.GetMaxColor(13);
         listView.UnfocusedHighlightBackgroundColor = cuiUpdater.GetMaxColor(13);
         listView.HighlightForegroundColor          = cuiUpdater.GetMaxColor(11);
         listView.UnfocusedHighlightForegroundColor = cuiUpdater.GetMaxColor(11);
     }
 }
Ejemplo n.º 15
0
        public static void SaveData(NlmTreeListView listView, NodeController nodeControl)
        {
            // Create folder and layer treeNode arrays.
            IEnumerable <FolderTreeNode> folderNodes = nodeControl.Query.FolderNodes;
            IEnumerable <LayerTreeNode>  layerNodes  = nodeControl.Query.LayerNodes;

            // Save layer and folder data.
            SaveFolderData(folderNodes, listView);
            SaveLayerData(layerNodes, listView, nodeControl.HandleMap);

            // Save TreeListView data
            SaveNlmData(listView);
        }
Ejemplo n.º 16
0
        public static void RestoreNlmData(NlmTreeListView listView, NlmData nlmData)
        {
            listView.SmartFolderMode = nlmData.SmartFolderNode;
            NlmTreeNodeFilterEngine FilterEngine = listView.ModelFilter as NlmTreeNodeFilterEngine;

            if (nlmData.BonesFiltered)
            {
                FilterEngine.AddFilter(TreeNodeFilter.Bone);
            }

            if (nlmData.CameraFiltered)
            {
                FilterEngine.AddFilter(TreeNodeFilter.Camera);
            }

            if (nlmData.HelperFiltered)
            {
                FilterEngine.AddFilter(TreeNodeFilter.Helper);
            }

            if (nlmData.LightFiltered)
            {
                FilterEngine.AddFilter(TreeNodeFilter.Light);
            }

            if (nlmData.ObjectFiltered)
            {
                FilterEngine.AddFilter(TreeNodeFilter.Object);
            }

            if (nlmData.ShapeFiltered)
            {
                FilterEngine.AddFilter(TreeNodeFilter.Shape);
            }

            if (nlmData.SpaceWarpFiltered)
            {
                FilterEngine.AddFilter(TreeNodeFilter.SpaceWarp);
            }

            if (nlmData.LayerHiddenFiltered)
            {
                FilterEngine.AddFilter(TreeNodeFilter.LayerHidden);
            }

            if (nlmData.LayerFrozenFiltered)
            {
                FilterEngine.AddFilter(TreeNodeFilter.LayerFrozen);
            }
        }
Ejemplo n.º 17
0
        public NodeCollapseExpandEngine(NlmTreeListView listView, NodeQueryEngine nodeQuery)
        {
            ListView  = listView;
            NodeQuery = nodeQuery;

            ListView.CanExpandGetter = delegate(Object treeNode)
            {
                return((treeNode as BaseTreeNode).Children.Count > 0);
            };

            ListView.ChildrenGetter = delegate(Object treeNode)
            {
                return((treeNode as BaseTreeNode).Children);
            };
        }
Ejemplo n.º 18
0
        public CurrentColumn(NlmTreeListView listView)
        {
            Text  = "Current";
            Width = 40;
            TriStateCheckBoxes = true;
            TextAlign          = HorizontalAlignment.Center;

            AspectEngine = new CurrentAspectEngine(this, listView);

            Renderer = new MappedImageRenderer(new Object[] {
                true, new Bitmap(GetType().Module.Assembly.GetManifestResourceStream("NestedLayerManager.Resources.Icons.CheckState.CurrentChecked.png")),
                false, null,
                null, new Bitmap(GetType().Module.Assembly.GetManifestResourceStream("NestedLayerManager.Resources.Icons.CheckState.CurrentIndeterminate.png")),
            });
        }
Ejemplo n.º 19
0
        public NlmData(NlmTreeListView listView)
        {
            SmartFolderNode = listView.SmartFolderMode;

            NlmTreeNodeFilterEngine FilterEngine = listView.ModelFilter as NlmTreeNodeFilterEngine;

            BonesFiltered       = FilterEngine.IsFilterActive(TreeNodeFilter.Bone);
            CameraFiltered      = FilterEngine.IsFilterActive(TreeNodeFilter.Camera);
            HelperFiltered      = FilterEngine.IsFilterActive(TreeNodeFilter.Helper);
            LightFiltered       = FilterEngine.IsFilterActive(TreeNodeFilter.Light);
            ObjectFiltered      = FilterEngine.IsFilterActive(TreeNodeFilter.Object);
            ShapeFiltered       = FilterEngine.IsFilterActive(TreeNodeFilter.Shape);
            SpaceWarpFiltered   = FilterEngine.IsFilterActive(TreeNodeFilter.SpaceWarp);
            LayerHiddenFiltered = FilterEngine.IsFilterActive(TreeNodeFilter.LayerHidden);
            LayerFrozenFiltered = FilterEngine.IsFilterActive(TreeNodeFilter.LayerFrozen);
        }
Ejemplo n.º 20
0
        public static void onAddSelectedObjectsToLayer(Object sender, ClickEventArgs e)
        {
            // TODO:
            // This is quite slow compared to the NodeEventCallback LayerChanged. Look at that for tips.
            // Do we really need BeginUpdate and EndUpdate? Calculate which objects to refresh.
            // Also fix crappy bug where adding children to an expanded layer does not redraw properly.

            NlmTreeListView listView = e.ListView;

            try
            {
                listView.BeginUpdate();

                IList selection = listView.SelectedObjects;
                if (selection.Count == 1)
                {
                    LayerTreeNode layerTreeNode = selection[0] as LayerTreeNode;
                    if (layerTreeNode != null)
                    {
                        List <BaseTreeNode> moveTreeNodes = new List <BaseTreeNode>();

                        IAnimatable layerAnim = MaxAnimatable.GetAnimByHandle(layerTreeNode.Handle);
                        foreach (IINode maxNode in MaxNodes.SelectedNodes)
                        {
                            UIntPtr             maxNodeHandle = MaxAnimatable.GetHandleByAnim(maxNode as IAnimatable);
                            List <BaseTreeNode> treeNodes     = listView.NodeControl.HandleMap.GetTreeNodesByHandle(maxNodeHandle);
                            foreach (BaseTreeNode treeNode in treeNodes)
                            {
                                moveTreeNodes.Add(treeNode);
                            }
                            MaxNodes.MoveNodeToLayer(maxNode, layerAnim as IILayer);
                        }
                        listView.NodeControl.Parent.MoveTreeNodes(moveTreeNodes, layerTreeNode);
                    }
                }

                listView.Sort(listView.NlmColumns.NameColumn, SortOrder.Ascending);
            }
            catch
            {
                throw new Exception();
            }
            finally
            {
                e.ListView.EndUpdate();
            }
        }
Ejemplo n.º 21
0
        public static void onInstanceSelectedLayers(Object sender, ClickEventArgs e)
        {
            NlmTreeListView listView = e.ListView;

            // Multiple items are being added, so let's use BeginUpdate.
            try
            {
                listView.BeginUpdate();

                foreach (BaseTreeNode treeNode in listView.SelectedObjects)
                {
                    LayerTreeNode layerTreeNode = treeNode as LayerTreeNode;
                    if (layerTreeNode != null)
                    {
                        LayerTreeNode newLayerTreeNode = new LayerTreeNode(layerTreeNode.Handle, listView.NodeControl.HandleMap);

                        foreach (ObjectTreeNode objectTreeNode in treeNode.Children)
                        {
                            ObjectTreeNode newObjectTreeNode = new ObjectTreeNode(objectTreeNode.Class, objectTreeNode.Handle, listView.NodeControl.HandleMap);
                            newObjectTreeNode.Parent = newLayerTreeNode;
                            newLayerTreeNode.Children.Add(newObjectTreeNode);
                        }

                        //foreach (LayerTreeNode instanceNode in layerTreeNode.Instances)
                        //{
                        //    instanceNode.Instances.Add(newLayerTreeNode);
                        //    newLayerTreeNode.Instances.Add(instanceNode);
                        //}
                        //layerTreeNode.Instances.Add(newLayerTreeNode);
                        //newLayerTreeNode.Instances.Add(layerTreeNode);

                        listView.AddObject(newLayerTreeNode, treeNode.Parent);
                    }
                }

                listView.Sort(listView.NlmColumns.NameColumn, SortOrder.Ascending);
            }
            catch
            {
                throw new Exception();
            }
            finally
            {
                listView.EndUpdate();
            }
        }
Ejemplo n.º 22
0
        public static void SaveLayerData(IEnumerable <LayerTreeNode> treeNodes, NlmTreeListView owner, HandleMap handleMap)
        {
            foreach (LayerTreeNode treeNode in treeNodes)
            {
                // Saving layer data is comprised of two sections.
                IAnimatable layerAnim = MaxAnimatable.GetAnimByHandle(treeNode.Handle);
                if (layerAnim != null)
                {
                    // 1. Saving the layer data itself
                    LayerData layerData = new LayerData(treeNode, owner, handleMap);
                    SetAppData(layerAnim, DataAddress.LayerData, layerData);

                    // 2. Saving all folder parents of the layer, in case it is merged and the data is needed.
                    SaveParentFolderData(treeNode, layerAnim, owner);
                }
            }
        }
Ejemplo n.º 23
0
        public NestedLayerManager()
        {
            System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch();
            stopwatch.Start();

            ListView  = new NlmTreeListView();
            SearchBar = new NlmSearchBar(ListView);

            ButtonPanelLeft  = new NlmButtonPanelLeft(ListView);
            ButtonPanelRight = new NlmButtonPanelRight(ListView);
            ButtonPanelSide  = new NlmButtonPanelSide(ListView);

            MaxLook.ApplyLook(this);

            ColumnCount = 3;
            RowCount    = 3;
            Padding     = new Padding(3);
            Dock        = DockStyle.Fill;

            Controls.Add(ButtonPanelLeft, 1, 0);
            SetColumnSpan(ButtonPanelLeft, 1);

            Controls.Add(ButtonPanelRight, 2, 0);

            Controls.Add(SearchBar, 1, 1);
            SetColumnSpan(SearchBar, 2);

            Controls.Add(ButtonPanelSide, 0, 2);

            Controls.Add(ListView, 1, 2);
            SetColumnSpan(ListView, 2);

            RowStyles.Add(new RowStyle(SizeType.Absolute, ButtonPanelLeft.Controls[0].Height + 2));
            RowStyles.Add(new RowStyle(SizeType.Absolute, SearchBar.Height + 2));
            RowStyles.Add(new RowStyle(SizeType.AutoSize));
            ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, ButtonPanelSide.Controls[0].Width + 2));
            ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, ButtonPanelLeft.Controls.Count * ButtonPanelLeft.Controls[0].Width));
            ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, ButtonPanelRight.Controls.Count * ButtonPanelRight.Controls[0].Width));

            ListView.NodeControl.Create.BuildSceneTree();

            stopwatch.Stop();
            string listenerMessage = "Loaded in " + stopwatch.ElapsedMilliseconds + " milliseconds.";

            MaxListener.PrintToListener(listenerMessage);
        }
Ejemplo n.º 24
0
        public FolderData(FolderTreeNode treeNode, NlmTreeListView owner)
        {
            // Node Properties
            ID = treeNode.ID;
            if (treeNode.Parent != null)
            {
                ParentID = treeNode.Parent.ID;
            }
            Expanded = owner.IsExpanded(treeNode);

            // Column Properties
            Name    = treeNode.Name;
            Visible = treeNode.Visible;
            Freeze  = treeNode.Freeze;
            Render  = treeNode.Render;
            Color   = treeNode.Color;
            Box     = treeNode.Box;
        }
Ejemplo n.º 25
0
        public VisibleColumn(NlmTreeListView listView)
        {
            Text  = "Visible";
            Width = 40;
            TriStateCheckBoxes = true;
            TextAlign          = HorizontalAlignment.Center;

            AspectEngine = new VisibleAspectEngine(listView, this);

            Bitmap visibleCheckedBitmap       = new Bitmap(GetType().Module.Assembly.GetManifestResourceStream("NestedLayerManager.Resources.Icons.CheckState.VisibleChecked.png"));
            Bitmap visibleUncheckedBitmap     = new Bitmap(GetType().Module.Assembly.GetManifestResourceStream("NestedLayerManager.Resources.Icons.CheckState.VisibleUnchecked.png"));
            Bitmap visibleIndeterminateBitmap = new Bitmap(GetType().Module.Assembly.GetManifestResourceStream("NestedLayerManager.Resources.Icons.CheckState.VisibleIndeterminate.png"));

            Renderer = new MappedActiveImageRenderer(
                visibleCheckedBitmap,
                visibleUncheckedBitmap,
                visibleIndeterminateBitmap
                );
        }
Ejemplo n.º 26
0
        public RenderColumn(NlmTreeListView listView)
        {
            Text  = "Render";
            Width = 40;
            TriStateCheckBoxes = true;
            TextAlign          = System.Windows.Forms.HorizontalAlignment.Center;

            AspectEngine = new RenderAspectEngine(listView, this);

            Bitmap renderCheckedBitmap       = new Bitmap(GetType().Module.Assembly.GetManifestResourceStream("NestedLayerManager.Resources.Icons.CheckState.RenderChecked.png"));
            Bitmap renderUncheckedBitmap     = new Bitmap(GetType().Module.Assembly.GetManifestResourceStream("NestedLayerManager.Resources.Icons.CheckState.Unchecked.png"));
            Bitmap renderIndeterminateBitmap = new Bitmap(GetType().Module.Assembly.GetManifestResourceStream("NestedLayerManager.Resources.Icons.CheckState.RenderIndeterminate.png"));

            Renderer = new MappedActiveImageRenderer(
                renderCheckedBitmap,
                renderUncheckedBitmap,
                renderIndeterminateBitmap
                );
        }
Ejemplo n.º 27
0
        public static void SearchBarEnterPressed(Object sender, SearchBarEventArgs e)
        {
            // Using filtered objects will include parents which are not string matched.
            // It is necessary to remove them from the array first.

            NlmTreeListView listView      = e.ListView;
            String          searchString  = e.Text;
            IList           filteredNodes = new List <BaseTreeNode>();

            foreach (BaseTreeNode treeNode in listView.FilteredObjects)
            {
                String name = listView.NlmColumns.NameColumn.AspectEngine.GetAspect(treeNode) as String;
                if (name.IndexOf(searchString, StringComparison.OrdinalIgnoreCase) >= 0)
                {
                    filteredNodes.Add(treeNode);
                }
            }

            listView.SelectObjects(filteredNodes);
        }
Ejemplo n.º 28
0
        public NlmSearchBar(NlmTreeListView listView)
        {
            ListView = listView;
            MaxLook.ApplyLook(this);
            Margin             = new Padding(0);
            Dock               = DockStyle.Fill;
            this.BorderStyle   = BorderStyle.FixedSingle;
            this.Height        = 20;
            this.DispatchTimer = new DispatcherTimer {
                Interval = TimeSpan.FromMilliseconds(400)
            };
            this.TextChanged        += new EventHandler(OnTextChanged);
            this.KeyDown            += new KeyEventHandler(OnKeyDown);
            this.KeyPress           += new KeyPressEventHandler(StopThatDing);
            this.DispatchTimer.Tick += new EventHandler(OnTimerTick);
            this.GotFocus           += new EventHandler(onGotFocus);
            this.LostFocus          += new EventHandler(onLostFocus);

            DelayedTextChanged += new EventHandler <SearchBarEventArgs>(KeyEvents.SearchBarTextChanged);
            EnterKeyDown       += new EventHandler <SearchBarEventArgs>(KeyEvents.SearchBarEnterPressed);
        }
Ejemplo n.º 29
0
        public static void onSelectLayersFromSelectedObjects(Object sender, ClickEventArgs e)
        {
            NlmTreeListView     listView     = e.ListView;
            List <BaseTreeNode> newSelection = new List <BaseTreeNode>();

            foreach (IINode maxNode in MaxNodes.SelectedNodes)
            {
                UIntPtr             maxNodeHandle   = MaxAnimatable.GetHandleByAnim(maxNode as IAnimatable);
                List <BaseTreeNode> objectTreeNodes = listView.NodeControl.HandleMap.GetTreeNodesByHandle(maxNodeHandle);

                foreach (BaseTreeNode objectTreeNode in objectTreeNodes)
                {
                    BaseTreeNode layerTreeNode = objectTreeNode.Parent;
                    if (!newSelection.Contains(layerTreeNode))
                    {
                        newSelection.Add(layerTreeNode);
                    }
                    listView.NodeControl.CollapseExpand.ExpandAllParents(layerTreeNode);
                }
            }
            listView.SelectedObjects = newSelection;
        }
Ejemplo n.º 30
0
        public NlmColumnCollection(NlmTreeListView listView)
        {
            // Instance columns
            NameColumn    = new NameColumn(listView);
            CurrentColumn = new CurrentColumn(listView);
            VisibleColumn = new VisibleColumn(listView);
            FreezeColumn  = new FreezeColumn(listView);
            RenderColumn  = new RenderColumn(listView);
            ColorColumn   = new ColorColumn(listView);
            BoxColumn     = new BoxColumn(listView);

            // Add columns to owner
            listView.AllColumns.Add(NameColumn);
            listView.AllColumns.Add(CurrentColumn);
            listView.AllColumns.Add(VisibleColumn);
            listView.AllColumns.Add(FreezeColumn);
            listView.AllColumns.Add(RenderColumn);
            listView.AllColumns.Add(ColorColumn);
            listView.AllColumns.Add(BoxColumn);

            listView.RebuildColumns();
        }