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); } }
public static void onFilterLayerFrozen(Object sender, ClickEventArgs e) { NlmCheckButton button = sender as NlmCheckButton; NlmTreeNodeFilterEngine nlmTreeNodeFilter = e.ListView.ModelFilter as NlmTreeNodeFilterEngine; if (button.Checked) { nlmTreeNodeFilter.AddFilter(TreeNodeFilter.LayerFrozen); } else { nlmTreeNodeFilter.RemoveFilter(TreeNodeFilter.LayerFrozen); } e.ListView.ModelFilter = nlmTreeNodeFilter; }
public NlmTreeListView() { DisabledHandles = new List <UIntPtr>(); Margin = new Padding(0); Dock = DockStyle.Fill; // Apply look from 3ds Max colour scheme and set ImageList. MaxLook.ApplyLook(this); NodeClassImageList.Apply(this); // Set properties. AllowDrop = true; IsSimpleDragSource = true; IsSimpleDropSink = true; FullRowSelect = true; UseAlternatingBackColors = true; RowHeight = 20; UseCustomSelectionColors = true; HideSelection = false; CellEditActivation = ObjectListView.CellEditActivateMode.DoubleClick; UseFiltering = true; BorderStyle = BorderStyle.FixedSingle; View = View.Details; OwnerDrawnHeader = true; RevealAfterExpand = false; // After expanding, the expand node moves to the top of the listview. It's kinda jarring so turn it off. CanUseApplicationIdle = false; // 3ds Max appears to completley suppress application idle events. DisabledItemStyle = new DisabledNodeStyle(this); SelectColumnsOnRightClick = true; SelectColumnsOnRightClickBehaviour = ColumnSelectBehaviour.InlineMenu; ShowCommandMenuOnRightClick = false; ShowFilterMenuOnRightClick = false; // Instance feature expansion classes. TreeColumnRenderer = new NlmTreeColumnRenderer(); ColumnHeaderRenderer = new ColumnHeaderRenderer(this); NlmColumns = new NlmColumnCollection(this); CellEditValidator = new CellEditValidator(this); MouseLeftClick = new MouseLeftClick(this); ModelFilter = new NlmTreeNodeFilterEngine(this); NodeControl = new NodeController(this); ContextMenu = new NlmContextMenu(this); // Load saved state if it exists MaxIO.LoadNlmData(this); this.CellEditStarting += new CellEditEventHandler(onBeforeLabelEdit); }
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); }
public static void SearchBarTextChanged(Object sender, SearchBarEventArgs e) { try { e.ListView.BeginUpdate(); // TODO: Why did I do this selection memory thing? IList selection = e.ListView.SelectedObjects; NlmTreeNodeFilterEngine nlmNodeFilter = e.ListView.ModelFilter as NlmTreeNodeFilterEngine; nlmNodeFilter.AddStringFilter(e.Text); e.ListView.ModelFilter = nlmNodeFilter; e.ListView.SelectObjects(selection); } catch { throw new Exception(); } finally { e.ListView.EndUpdate(); } }