Example #1
0
        private void menu_creat_dirs_Click(object sender, RoutedEventArgs e)
        {
            string name = "新建文件夹";
            string parent;

            if (CurrentPath.Length < 4)
            {
                parent = CurrentPath;
            }
            else
            {
                parent = CurrentPath + "\\";
            }
            while (Directory.Exists(parent + name))
            {
                name += " 副本";
            }
            Directory.CreateDirectory(parent + name);
            MyItemManager.FlushLBByCurrentPath(lb, CurrentPath);

            //同步treeview显示
            MyTreeViewItem mytv = new MyTreeViewItem(name, MyIcons.folder);
            var            it   = MyItemManager.GetTVItemFromPath(tv, CurrentPath);

            tv.BeginInit();
            it.Items.Add(mytv);
            tv.EndInit();
        }
Example #2
0
 //点击一个点 进行的树的初始化
 private void initSystemTreeView()
 {
     if (building != null)
     {
         MyTreeViewItem mainNode = new MyTreeViewItem(building);
         mainNode.Header            = createTreeViewItem(building.Name, null, false, -1, mainNode);
         mainNode.MouseDoubleClick += new MouseButtonEventHandler(mainNode_MouseDoubleClick);
         mainNode.IsExpanded        = true;
         system_tree.Items.Add(mainNode);
         // globalMapFor
         for (int i = 0; i < building.Cabs.Count; i++)
         {
             WpfApplication2.Model.Vo.Cab cab = building.Cabs[i];
             MyTreeViewItem treeNode          = new MyTreeViewItem(building.Cabs[i]);
             treeNode.Header            = createTreeViewItem(cab.Name, new BitmapImage(new Uri("/Images/rack.png", UriKind.Relative)), false, -1, treeNode);
             treeNode.MouseDoubleClick += cab_MouseLeftButtonDown;
             mainNode.Items.Add(treeNode);
             //显示通道
             Dictionary <String, List <Device> > subSystemNames = sortSubsystem(cab);
             foreach (var dic in subSystemNames)
             {
                 //  Device device = cab.Devices[j];
                 MyTreeViewItem subSystemNode = new MyTreeViewItem(dic.Value);
                 subSystemNode.Header            = createTreeViewItem(dic.Key, new BitmapImage(new Uri("/Images/home8.png", UriKind.Relative)), false, -1, subSystemNode);
                 subSystemNode.MouseDoubleClick += subSystemNode_MouseLeftButtonDown;
                 treeNode.Items.Add(subSystemNode);
             }
         }
     }
 }
Example #3
0
        //treeview选中项改变事件
        private void tv_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e)
        {
            if (TVChangeByOther)
            {
                return;                        //不来自tv本身的选择改变则直接退出
            }
            Back_History.AddLast(CurrentPath); //记录进栈
            MyTreeViewItem my_select = (MyTreeViewItem)tv.SelectedItem;

            CurrentPath = my_select.Tag.ToString();

            List <MyListBoxItem> list = MyItemManager.CreatLBItemFromPath(CurrentPath);

            lb.BeginInit();
            lb.Items.Clear();
            foreach (var i in list)
            {
                lb.Items.Add(i);
            }
            lb.EndInit();
            if (CurrentPath == "")
            {
                address_box.Text = "此电脑";
            }
            else
            {
                address_box.Text = CurrentPath;
            }
        }
Example #4
0
        protected override void AddPrefabItems(MyTreeViewItem parentItem, MyMwcObjectBuilder_Prefab_AppearanceEnum appearanceTextureEnum, BuildTypesEnum buildType, CategoryTypesEnum categoryType)
        {
            MyMwcLog.WriteLine("GAME AddPrefabItems - START");

            Vector2 itemSize = MyGuiConstants.CHECKBOX_SIZE * 3;

            foreach (MyMwcObjectBuilderTypeEnum enumValue in MyGuiPrefabHelpers.MyMwcPrefabTypesEnumValues)
            {
                foreach (int prefabId in MyMwcObjectBuilder_Base.GetObjectBuilderIDs(enumValue))
                {
                    MyPrefabConfiguration config             = MyPrefabConstants.GetPrefabConfiguration(enumValue, prefabId);
                    MyGuiPrefabHelper     prefabModuleHelper = MyGuiObjectBuilderHelpers.GetGuiHelper(enumValue, prefabId) as MyGuiPrefabHelper;

                    if (config == null)
                    {
                        continue;
                    }

                    if (config.FactionSpecific.HasValue && config.FactionSpecific.Value != appearanceTextureEnum)
                    {
                        continue;
                    }

                    if (config.BuildType == buildType && config.CategoryType == categoryType && config.EnabledInEditor)
                    {
                        MyMwcObjectBuilder_PrefabBase prefabObjectBuilder   = MyPrefabFactory.GetInstance().CreatePrefabObjectBuilder(enumValue, prefabId, appearanceTextureEnum);
                        MyBuildingSpecification       buildingSpecification = MyBuildingSpecifications.GetBuildingSpecification(prefabObjectBuilder);
                        MyTexture2D previewTexture = MyGuiManager.GetPrefabPreviewTexture(enumValue, prefabId, appearanceTextureEnum);
                        AddTreeViewItem(parentItem, prefabModuleHelper.Description, previewTexture, itemSize, MyGuiManager.GetBlankTexture(), MyGuiManager.GetBlankTexture(), MyGuiConstants.CHECKBOX_SIZE, prefabObjectBuilder, buildingSpecification);
                    }
                }
            }

            MyMwcLog.WriteLine("GAME AddPrefabItems - END");
        }
Example #5
0
        void subSystemNode_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            if (e.Handled)
            {
                return;
            }

            MyTreeViewItem treeNode = (MyTreeViewItem)sender;
            MyTreeViewItem cabNode  = (MyTreeViewItem)treeNode.Parent;

            if (cabNode.NodeObject is Building)
            {
                return;
            }
            Cab           cab    = (Cab)cabNode.NodeObject;
            List <Device> subsys = (List <Device>)treeNode.NodeObject;

            if (page.Content is CabsPage) //当前在cab页面 ,跳转到设备页面
            {
                page.Content = new DevicePage(page, cab);
            }
            else if (page.Content is DevicePage)
            {
            }
        }
Example #6
0
        private void Inspect(MyTreeViewItem item)
        {
            ThreadHelper.ThrowIfNotOnUIThread();

            if (CheckNotInBreakMode())
            {
                return;
            }

            inspectorWindow.control.ParentPanel.Children.Clear();
            VsUnityInspectorCommand.Instance.curInspectedObjects.Clear();

            int[]  index   = item.GetIndexOfItem();
            string tfQuery = GetTransformQuery(index);

            if (!isInitInspectObj)
            {
                dte.Debugger.ExecuteStatement(Statement: "UnityEngine.GameObject inspectObj;");
                isInitInspectObj = true;
            }

            EnvDTE.TextSelection selection = commandWindow?.Selection as EnvDTE.TextSelection;
            string gameObjectInfo          = GetDebuggerExecutionOutput(Statement: $"inspectObj = objs{tfQuery}.gameObject;", TreatAsExpression: true, selection);

            VsGameObject obj = new VsGameObject(gameObjectInfo);

            obj.Inspect(inspectorWindow);

            VsUnityInspectorCommand.Instance.curInspectedObjects.Add(obj);
        }
Example #7
0
        /// <summary>
        /// Try change group name, returns false on error
        /// </summary>
        public bool ChangeGroupName(MyObjectGroup group, string newName)
        {
            MyTreeViewItem groupItem = null;

            for (int i = 0; i < m_groupList.GetItemCount(); i++)
            {
                var item = m_groupList.GetItem(i);

                // Find group list item
                if (item.Tag == group)
                {
                    groupItem = item;
                }
                else
                {
                    if (item.Text.ToString() == newName)
                    {
                        return(false);
                    }
                }
            }

            if (groupItem != null)
            {
                group.Name     = new StringBuilder(newName);
                groupItem.Text = group.Name;
                return(true);
            }

            return(false);
        }
Example #8
0
        /// <summary>
        /// Treeview selected
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tv_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e)
        {
            MyTreeViewItem item = (MyTreeViewItem)e.NewValue;

            if (item != null)
            {
                App.ViewModel.SelectedFolder = item.Tag;
            }
        }
Example #9
0
        //窗口加载时初始化
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            tv.BeginInit();
            MyTreeViewItem root = MyItemManager.GetRootTVItem();

            tv.Items.Add(root);
            ((MyTreeViewItem)tv.Items[0]).IsSelected = true;
            tv.EndInit();
        }
Example #10
0
        private void refreshTreeView()
        {
            treeView1.Items.Clear();
            using (EfContext context = new EfContext())
            {
                var query = (from f in context.VFilterNameGroups.AsQueryable()
                             select new
                {
                    FNameId = f.FilterNameId,
                    FName = f.FilterName,
                    FValueId = f.FilterValueId,
                    FValue = f.FilterValue
                });

                var groupNames = (from f in query
                                  group f by new
                {
                    Id = f.FNameId,
                    Name = f.FName
                } into g
                                  orderby g.Key.Name
                                  select g);



                foreach (var filterName in groupNames)
                {
                    var FName = new MyTreeViewItem
                    {
                        Id   = filterName.Key.Id.ToString(),
                        Name = filterName.Key.Name
                    };
                    TreeViewItem parent = new TreeViewItem();

                    parent.Header = FName;
                    treeView1.Items.Add(parent);

                    var FValues = from v in filterName
                                  group v by new MyTreeViewItem
                    {
                        Id   = v.FValueId.ToString(),
                        Name = v.FValue
                    };
                    foreach (var filterValue in FValues)
                    {
                        if (string.IsNullOrEmpty(filterValue.Key.Name))
                        {
                            continue;
                        }
                        TreeViewItem newChild = new TreeViewItem();
                        newChild.Header = filterValue.Key;
                        parent.Items.Add(newChild);
                    }
                }
            }
        }
Example #11
0
        /// <summary>
        /// Updates building progress
        /// </summary>
        /// <param name="treeViewItem">Treeview item</param>
        private void UpdateTreeViewItemStateBuildingProgress(MyTreeViewItem treeViewItem)
        {
            MyObjectToBuild objectToBuild = treeViewItem.Tag as MyObjectToBuild;

            treeViewItem.IconTexts[MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER].Text.Clear();
            //if (MyObjectToBuild.HasSameObjectBuilders(MyEditor.Static.FoundationFactory.BuildingObject, objectToBuild))
            if (MyEditor.Static.FoundationFactory.BuildingObject != null && MyEditor.Static.FoundationFactory.BuildingObject.IsSame(objectToBuild))
            {
                treeViewItem.IconTexts[MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER].Text.Append(GetBuildingObjectState(objectToBuild));
                treeViewItem.IconTexts[MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER].Text.Append(PERCENTAGE);
            }
        }
Example #12
0
        /// <summary>
        /// Updates building queue count
        /// </summary>
        /// <param name="treeViewItem">Treeview item</param>
        private void UpdateTreeViewItemStateBuildingQueue(MyTreeViewItem treeViewItem)
        {
            MyObjectToBuild objectToBuild = treeViewItem.Tag as MyObjectToBuild;

            int objectsInBuildingQueue = GetBuildingObjectInBuildinQueueCount(objectToBuild);

            treeViewItem.IconTexts[MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_BOTTOM].Text.Clear();
            if (objectsInBuildingQueue > 0)
            {
                treeViewItem.IconTexts[MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_BOTTOM].Text.Append(objectsInBuildingQueue);
            }
        }
Example #13
0
        private void AddSmallShipWeaponsItems(MyTreeViewItem parentItem)
        {
            Vector2 itemSize = MyGuiManager.GetNormalizedSizeFromScreenSize(new Vector2(64, 64));

            foreach (MyMwcObjectBuilder_SmallShip_Weapon_TypesEnum enumValue in MyGuiSmallShipHelpers.MyMwcObjectBuilder_SmallShip_Weapon_TypesEnumValues)
            {
                MyMwcObjectBuilder_SmallShip_Weapon weaponObjectBuilder   = new MyMwcObjectBuilder_SmallShip_Weapon(enumValue);
                MyBuildingSpecification             buildingSpecification = MyBuildingSpecifications.GetBuildingSpecification(weaponObjectBuilder);
                MyGuiSmallShipHelperWeapon          smallShipWeaponHelper = MyGuiObjectBuilderHelpers.GetGuiHelper(MyMwcObjectBuilderTypeEnum.SmallShip_Weapon, (int)enumValue) as MyGuiSmallShipHelperWeapon;
                AddTreeViewItem(parentItem, smallShipWeaponHelper.Description, smallShipWeaponHelper.Icon, itemSize, MyGuiManager.GetBlankTexture(), MyGuiManager.GetBlankTexture(), MyGuiConstants.CHECKBOX_SIZE, weaponObjectBuilder, buildingSpecification);
            }
        }
Example #14
0
        private void UpdateTreeViewItemsState(MyTreeViewItem treeViewItem, MyTreeViewItemUpdateStateFlag updateFlags)
        {
            int itemsCount = treeViewItem.GetItemCount();

            for (int i = 0; i < itemsCount; i++)
            {
                UpdateTreeViewItemsState(treeViewItem.GetItem(i), updateFlags);
            }

            if (treeViewItem.Tag != null && treeViewItem.Tag is MyObjectToBuild)
            {
                UpdateTreeViewItemState(treeViewItem, updateFlags);
            }
        }
Example #15
0
 public override void Update()
 {
     base.Update();
     if (MyEditor.Static.FoundationFactory != null && MyEditor.Static.FoundationFactory.IsBuilding)
     {
         m_lastUpdateTime += MyConstants.PHYSICS_STEP_SIZE_IN_MILLISECONDS;
         if (m_lastUpdateTime >= UPDATE_TREEVIEW_ITEMS_STATE)
         {
             m_lastUpdateTime = 0;
             MyTreeViewItem treeViewItem = GetTreeViewItem(MyEditor.Static.FoundationFactory.BuildingObject);
             UpdateTreeViewItemState(treeViewItem, MyTreeViewItemUpdateStateFlag.BuildingProgress);
         }
     }
 }
Example #16
0
        /// <summary>
        /// 由选择多个检测点进来 看到的左侧的树状结构
        /// </summary>
        /// <param name="choosedArr"></param>
        private void initSystemTreeView(Boolean[] choosedArr)
        {
            Dictionary <string, Building> buildings = GlobalMapForShow.globalMapForBuiding;
            MyTreeViewItem mainNode = new MyTreeViewItem(null);

            mainNode.IsExpanded = true;
            mainNode.Header     = createTreeViewItem("请选择需要查看的柜子", null, false, 0, mainNode);
            system_tree.Items.Add(mainNode);

            for (int i = 0; i < buildings.Count; i++) //不同的房间
            {
                if (choosedArr[i])
                {
                    Building       b        = buildings[(i + 1) + ""];
                    MyTreeViewItem roomNode = new MyTreeViewItem(b);
                    roomNode.Header            = createTreeViewItem(b.Name, null, true, 1, roomNode);
                    roomNode.MouseDoubleClick += mainNode_MouseDoubleClick;
                    mainNode.Items.Add(roomNode);
                    if ((page.Content != null) && (page.Content is CabsPage) && (cabspage != null))
                    {
                        cabspage.addBuildingToShow(b);
                    }
                    for (int j = 0; j < b.Cabs.Count; j++) // 每个房间的柜子层
                    {
                        Cab            c       = b.Cabs[j];
                        MyTreeViewItem cabNode = new MyTreeViewItem(c);
                        cabNode.Header = createTreeViewItem(c.Name, new BitmapImage(new Uri("/Images/rack.png", UriKind.Relative)), true, 2, cabNode);
                        roomNode.Items.Add(cabNode);
                        //显示通道
                        Dictionary <String, List <Device> > subSystemNames = sortSubsystem(c);
                        foreach (var dic in subSystemNames)
                        {
                            //  Device device = cab.Devices[j];
                            MyTreeViewItem subSystemNode = new MyTreeViewItem(dic.Value);
                            subSystemNode.Header            = createTreeViewItem(dic.Key, new BitmapImage(new Uri("/Images/home8.png", UriKind.Relative)), false, -1, subSystemNode);
                            subSystemNode.MouseDoubleClick += subSystemNode_MouseLeftButtonDown;
                            roomNode.Items.Add(subSystemNode);
                        }
                        //List<string> subSystemNames = sortSubsystem(c);
                        //for (int k = 0; k < subSystemNames.Count; k++)
                        //{
                        //    //  Device device = cab.Devices[j];
                        //    MyTreeViewItem treeItem = new MyTreeViewItem(subSystemNames[k]);
                        //    treeItem.Header = createTreeViewItem(subSystemNames[k], new BitmapImage(new Uri("/Images/home8.png", UriKind.Relative)), false, -1, treeItem);
                        //    treeItem.Items.Add(treeItem);
                        //}
                    }
                }
            }
        }
Example #17
0
        private void OnBuildingComplete(MyPrefabFoundationFactory sender, MyObjectToBuild buildObject)
        {
            MyTreeViewItemUpdateStateFlag updateFlags = MyTreeViewItemUpdateStateFlag.BuildCountAndDragAndDrop | MyTreeViewItemUpdateStateFlag.BuildingProgress;

            MyTreeViewItem treeViewItem = GetTreeViewItem(buildObject);

            UpdateTreeViewItemState(treeViewItem, updateFlags);

            if (sender.BuildingObject != null)
            {
                UpdateTreeViewItemState(GetTreeViewItem(sender.BuildingObject), MyTreeViewItemUpdateStateFlag.BuildingQueue);
            }
            FilterAddObjectTreePrivate(MyEditorGizmo.SelectedSnapPoint);
        }
        public void RemoveFilterName(TreeViewItem deleteItem)
        {
            if (deleteItem.Items.Count > 0)
            {
                foreach (TreeViewItem item in deleteItem.Items)
                {
                    RemoveFilterValue(int.Parse((item.Header as MyTreeViewItem).Id), int.Parse((deleteItem.Header as MyTreeViewItem).Id));
                }
            }
            MyTreeViewItem myDeleteItem = deleteItem.Header as MyTreeViewItem;
            var            deleteName   = _filterNameRepository.GetAll().SingleOrDefault(f => f.Id.ToString() == myDeleteItem.Id);

            _filterNameRepository.Remove(deleteName);
            _filterNameRepository.SaveChanges();
        }
        protected void AddPrefabType(MyTreeViewItem parentItem, MyMwcObjectBuilder_Prefab_AppearanceEnum appearanceTextureEnum, MyTextsWrapperEnum typeText, BuildTypesEnum buildTypesEnum,
                                     CategoryTypesEnum[] categories, MyTexture2D icon, Vector2 iconSize, MyTexture2D expand, MyTexture2D collapse,
                                     Vector2 expandIconSize)
        {
            var prefabTypeItem = parentItem == null?
                                 m_addObjectTreeView.AddItem(MyTextsWrapper.Get(typeText), icon, iconSize, expand, collapse, expandIconSize) :
                                     parentItem.AddItem(MyTextsWrapper.Get(typeText), icon, iconSize, expand, collapse, expandIconSize);

            foreach (var categoryTypesEnum in categories)
            {
                var categoryItem = prefabTypeItem.AddItem(MyGuiPrefabHelpers.GetMyGuiCategoryTypeHelper(categoryTypesEnum).Description, icon,
                                                          iconSize, expand, collapse, expandIconSize);
                AddPrefabItems(categoryItem, appearanceTextureEnum, buildTypesEnum, categoryTypesEnum);
            }
        }
Example #20
0
        private MyTreeViewItem GetTreeViewItem(MyObjectToBuild objectToBuild)
        {
            MyTreeViewItem result     = null;
            int            itemsCount = m_addObjectTreeView.GetItemCount();

            for (int i = 0; i < itemsCount; i++)
            {
                result = GetTreeViewItem(m_addObjectTreeView.GetItem(i), objectToBuild);
                if (result != null)
                {
                    break;
                }
            }
            return(result);
        }
Example #21
0
        private bool FilterResultByBuildItem(MyTreeViewItem item)
        {
            MyObjectToBuild objectToBuild = item.Tag as MyObjectToBuild;

            if (m_activeItemsWhichHasBuildFilter)
            {
                //if (MyEditor.Static.FoundationFactory.PrefabContainer.Inventory.GetInventoryItems(objectToBuild.ObjectBuilder).Count > 0)
                if (GetInventoryItemsCount(objectToBuild.ObjectBuilder) > 0)
                {
                    return(true);
                }
                return(false);
            }
            return(true);
        }
Example #22
0
        private void OnBuildingQueueChanged(MyObjectToBuild objectToBuild, bool added)
        {
            MyTreeViewItemUpdateStateFlag updateFlags = MyTreeViewItemUpdateStateFlag.BuildingQueue;

            if (!added)
            {
                updateFlags = updateFlags | MyTreeViewItemUpdateStateFlag.BuildingProgress;
            }

            MyTreeViewItem treeViewItem = GetTreeViewItem(objectToBuild);

            UpdateTreeViewItemState(treeViewItem, updateFlags);

            UpdateTreeViewItemsState(MyTreeViewItemUpdateStateFlag.CanBuildAndRequirements);
        }
Example #23
0
        void mainNode_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            if (e.Handled)
            {
                return;
            }
            MyTreeViewItem item = (MyTreeViewItem)sender;
            Building       b    = (Building)item.NodeObject;

            if (page.Content is CabsPage)
            {
            }
            else if (page.Content is DevicePage) //当前在设备页面跳转到柜子页面
            {
                page.Content = new CabsPage(this, b);
            }
        }
Example #24
0
        void cab_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            if (e.Handled)
            {
                return;
            }
            MyTreeViewItem treeNode = (MyTreeViewItem)sender;
            Cab            cab      = (Cab)treeNode.NodeObject;

            if (page.Content is CabsPage)
            {
            }
            else if (page.Content is DevicePage) //当前在设备页面跳转到柜子页面
            {
                page.Content = new DevicePage(page, cab);
            }
            e.Handled = true;
        }
Example #25
0
        private void AddTreeViewItem(MyTreeViewItem parentItem, StringBuilder text, MyTexture2D icon, Vector2 iconSize, MyTexture2D expandIcon, MyTexture2D collapseIcon, Vector2 expandIconSize, MyMwcObjectBuilder_Base objectBuilder, MyBuildingSpecification buildingSpecification)
        {
            var item = parentItem.AddItem(new StringBuilder(), icon, iconSize, expandIcon, collapseIcon, expandIconSize);

            item.Tag     = new MyObjectToBuild(objectBuilder, buildingSpecification, MyGameplayConstants.GetGameplayProperties(objectBuilder, MyEditor.Static.FoundationFactory.PrefabContainer.Faction).MaxAmount);
            item.ToolTip = new MyToolTips();
            item.ToolTip.AddToolTip(text, Color.White, 0.7f);
            item.ToolTip.AddToolTip(MyTextsWrapper.Get(MyTextsWrapperEnum.BuildingRequirements));
            item.ToolTip.AddToolTip(new StringBuilder(), Color.Green);
            item.ToolTip.AddToolTip(new StringBuilder(), Color.Red);
            item.IconTexts = new MyIconTexts();
            item.IconTexts[MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_BOTTOM]   = new MyColoredText(new StringBuilder(), MyGuiConstants.COLORED_TEXT_DEFAULT_COLOR, 0.8f);
            item.IconTexts[MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_BOTTOM] = new MyColoredText(new StringBuilder());
            item.IconTexts[MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER] = new MyColoredText(new StringBuilder());
            item.Action     = OnItemAction;
            item.RightClick = OnItemRighClick;
            UpdateTreeViewItemState(item, MyTreeViewItemUpdateStateFlag.All);
        }
Example #26
0
        /// <summary>
        /// Helper method for drawing cell gui.
        /// </summary>
        /// <param name="cellRect">The rect in which the cell content will be drawn.</param>
        /// <param name="item">The item to be drawn.</param>
        /// <param name="column">The coulmn to be drawn.</param>
        void CellGUI(Rect cellRect, MyTreeViewItem item, Columns column)
        {
            switch (column)
            {
            case Columns.CONTROLS:

                break;

            case Columns.DISPLAY_NAME:
                cellRect.xMin += Mathf.Clamp(item.depth * depthIndentWidth, 0, float.MaxValue);
                GUI.Label(cellRect, item.displayName);
                break;

            case Columns.TIME:
                GUI.Label(cellRect, item.time);
                break;
            }
        }
Example #27
0
        private bool FilterResultByText(MyTreeViewItem item)
        {
            // Filter by text
            if (!string.IsNullOrEmpty(m_activeTextFilter))
            {
                if (item.ToolTip == null)
                {
                    return(false);
                }

                var toolTips = item.ToolTip.GetToolTips();
                if (toolTips.Count == 0 || toolTips[0].Text.ToString().IndexOf(m_activeTextFilter, StringComparison.InvariantCultureIgnoreCase) == -1)
                {
                    return(false);
                }
            }
            return(true);
        }
Example #28
0
        private bool FilterResultByItemAndPrefabSnapPoint(MyTreeViewItem item)
        {
            if (!MyEditor.Static.SnapPointFilter || m_activeSnapPointFilter == null)
            {
                // Always pass if snap point filter is disabled or no snap point selected
                return(true);
            }

            MyObjectToBuild objectToBuild = item.Tag as MyObjectToBuild;

            if (objectToBuild.ObjectBuilder is MyMwcObjectBuilder_PrefabBase)
            {
                var snapPoints = MyEditor.GetPrefabSnapPoints(objectToBuild.ObjectBuilder.GetObjectBuilderType(), objectToBuild.ObjectBuilder.GetObjectBuilderId().Value);
                return(snapPoints.Exists(a => m_activeSnapPointFilter.CanAttachTo(a)));
            }

            return(false);
        }
Example #29
0
        private void OnItemAction(object sender, EventArgs args)
        {
            MyTreeViewItem  item          = sender as MyTreeViewItem;
            MyObjectToBuild objectToBuild = item.Tag as MyObjectToBuild;

            if (objectToBuild != null)
            {
                if (MyGuiScreenGamePlay.Static != null && MyGuiScreenGamePlay.Static.IsCheatEnabled(MyGameplayCheatsEnum.INSTANT_BUILDING))
                {
                    MyEditor.Static.FoundationFactory.PrefabContainer.Inventory.AddInventoryItem(objectToBuild.ObjectBuilder, objectToBuild.Amount, true);
                    UpdateTreeViewItemState(item, MyTreeViewItemUpdateStateFlag.BuildCountAndDragAndDrop);
                }
                else if (objectToBuild.BuildingSpecification.CanBuild(MyEditor.Static.FoundationFactory))
                {
                    MyEditor.Static.FoundationFactory.AddToBuildingQueue(objectToBuild);
                    OnBuildingQueueChanged(objectToBuild, true);
                }
            }
        }
Example #30
0
        private void HierarchyView_PreviewMouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {
            var hit = e.OriginalSource as DependencyObject;

            while (hit != null && !(hit is TreeViewItem))
            {
                hit = VisualTreeHelper.GetParent(hit);
            }

            MyTreeViewItem item = hit as MyTreeViewItem;

            if (item == null)
            {
                return;
            }

            e.Handled = true;
            item.doubleClicked?.Invoke();
        }
Example #31
0
        public void SetResources(PeFile peFile)
        {
            _peFile = peFile;
            // Clear the tree.
            tbResources.Items.Clear();

            // ROOT
            var rd = peFile.ImageResourceDirectory;

            if (rd == null)
                return;

            var root = new MyTreeViewItem<IMAGE_RESOURCE_DIRECTORY_ENTRY>(null)
            {
                Header = "Resource Directory"
            };

            // Type
            foreach (var de in rd.DirectoryEntries)
            {
                MyTreeViewItem<IMAGE_RESOURCE_DIRECTORY_ENTRY> item = null;
                if (de.IsIdEntry)
                {
                    item = new MyTreeViewItem<IMAGE_RESOURCE_DIRECTORY_ENTRY>(de)
                    {
                        Header = Utility.ResolveResourceId(de.ID)
                    };
                }
                else if (de.IsNamedEntry)
                {
                    item = new MyTreeViewItem<IMAGE_RESOURCE_DIRECTORY_ENTRY>(de)
                    {
                        Header = de.ResolvedName
                    };
                }

                // name/IDs
                foreach (var de2 in de.ResourceDirectory.DirectoryEntries)
                {
                    MyTreeViewItem<IMAGE_RESOURCE_DIRECTORY_ENTRY> item2 = null;
                    item2 = new MyTreeViewItem<IMAGE_RESOURCE_DIRECTORY_ENTRY>(de2)
                    {
                        Header = de2.ID.ToString()
                    };

                    foreach (var de3 in de2.ResourceDirectory.DirectoryEntries)
                    {
                        item2.Items.Add(new MyTreeViewItem<IMAGE_RESOURCE_DIRECTORY_ENTRY>(de3)
                        {
                            Header = de3.ID.ToHexString()
                        });
                    }

                    item?.Items.Add(item2);
                }

                root.Items.Add(item);
            }

            tbResources.Items.Add(root);
        }