Пример #1
0
        private void EventTrigger_Selected(object sender, RoutedEventArgs e)
        {
            VerifyAccess();
            TreeViewItem  item = sender as TreeViewItem;
            TreeTableNode tr   = item.Header as TreeTableNode;

            tr.Checked = true;
        }
Пример #2
0
        void variablesListView_NodeOpened(TreeTableNode node)
        {
            VariableDetails details = (VariableDetails)node.Tag;

            mDebugger.Manager.StartProgressBarMarquee();

            mDebugger.ConnectedTarget.ExpandLocal(details.MakePath());
            mDebugger.ConnectedTarget.RetrieveLocals(mDebugger.CurrentThread, mDebugger.CurrentStackFrame.Depth);
        }
Пример #3
0
        private void NewWatch()
        {
            TreeTableNode node = new TreeTableNode("");

            node.SubItems.Add("");
            node.SubItems.Add("");
            node.Font = mBoldFont;
            variablesListView.Root.Items.Add(node);
            node.BeginEdit(0);
        }
Пример #4
0
 private void menuEditWatch_Click(object sender, EventArgs e)
 {
     if (variablesListView.SelectedIndices.Count == 1)
     {
         TreeTableNode node = variablesListView.Nodes[variablesListView.SelectedIndices[0]];
         if (node.Parent == variablesListView.Root)
         {
             node.BeginEdit(0);
         }
     }
 }
Пример #5
0
        private void DeleteWatch(TreeTableNode node)
        {
            VariableDetails varInfo = (VariableDetails)node.Tag;
            WatchDetails    watch   = mDebugger.FindWatch(varInfo.WatchID);

            if (watch != null)
            {
                mDebugger.RemoveWatch(watch);
            }
            node.Parent.Items.Remove(node);
        }
Пример #6
0
        private void UpdateFilterRecursive(TreeTableNode root)
        {
            foreach (TreeTableNode child in root.Items)
            {
                VariableDetails details = (VariableDetails)child.Tag;

                child.Visible    = IsVariableVisible(details);
                child.Expandable = details.HasEntries || (details.HasMetadata && ShowMetadata);

                UpdateFilterRecursive(child);
            }
        }
Пример #7
0
        void variablesListView_NodeClosed(TreeTableNode node)
        {
            VariableDetails details = (VariableDetails)node.Tag;

            if (!mUpdateInProgress && mDebugger.ConnectedTarget != null && mDebugger.CurrentStackFrame != null)
            {
                mDebugger.Manager.StartProgressBarMarquee();

                mDebugger.ConnectedTarget.CloseWatch(details.WatchID, details.MakePath());
                mDebugger.ConnectedTarget.UpdateWatch(details.WatchID, mDebugger.CurrentThread, mDebugger.CurrentStackFrame.Depth);
            }
        }
Пример #8
0
		public TreeTable()
		{
			InitializeComponent();

			m_root = new TreeTableNode();
			m_root.InternalSetOwner(this);

			m_nodes = new List<TreeTableNode>();
			m_keyhash = new Dictionary<string, TreeTableNode>();

			listView1.BeforeLabelEdit += new LabelEditEventHandler(listView1_BeforeLabelEdit);
			listView1.AfterLabelEdit += new LabelEditEventHandler(listView1_AfterLabelEdit);
		}
Пример #9
0
        private void variablesListView_BeforeLabelEdit(object sender, LabelEditEventArgs e)
        {
            TreeTableNode node = variablesListView.Nodes[e.Item];

            if (node.Parent != variablesListView.Root)
            {
                e.CancelEdit = true;
            }
            else
            {
                contextMenuStrip.Enabled = false;
                toolStrip1.Enabled       = false;
                m_editInProgress         = true;
            }
        }
Пример #10
0
        public TreeTableNode getNodeByText(String TextPath, String seperator = ".")
        {
            String[]      texts = TextPath.Split(seperator.ToCharArray());
            int           depth = 0;
            TreeTableNode node  = null;

            if (Items.Count > 0)
            {
                for (int i = 0; i < Items.Count; i++)
                {
                    if (Items[i].Text.Equals(texts[depth]))
                    {
                        depth++;
                        node = Items[i];
                        break;
                    }
                }
                if (node == null)
                {
                    return(null);
                }
            }
            else
            {
                return(null);
            }

            while (node.Children.Count > 0 && texts.Length > depth)
            {
                for (int i = 0; i < node.Children.Count; i++)
                {
                    if (node.Children[i].Text.Equals(texts[depth]))
                    {
                        depth++;
                        node = node.Children[i];
                        break;
                    }
                }
            }
            if (texts.Length == depth)
            {
                return(node);
            }
            else
            {
                return(null);
            }
        }
Пример #11
0
        void Test()
        {
            VerifyAccess();
            TreeTableNode gst = new TreeTableNode("pGST", false);

            for (int j = 0; j < 4; j++)
            {
                TreeTableNode model = new TreeTableNode("model" + j, false);
                for (int i = 0; i < 4; i++)
                {
                    model.AddChild(new TreeTableNode("var" + i, false));
                }
                gst.AddChild(model);
            }
            this.Items.Add(gst);
        }
Пример #12
0
        /*
         * Boolean _mouseOverDispatched = false;
         * void MouseEnter(Object sender, RoutedEventArgs e)
         * {
         *  _clickSender = sender;
         *  _clickEventArg = e;
         *  DelFunc func = OnMouseOver;
         *  Dispatcher.Invoke(DispatcherPriority.Normal, new Action(func));
         *  if (_mouseOverDispatched == false) OnMouseOver();
         *  _mouseOverDispatched = false;
         * }
         *
         * void OnMouseOver()
         * {
         *  object sender = _clickSender;
         *  RoutedEventArgs e = _clickEventArg;
         *
         *  ContentPresenter p = null;
         *  TreeViewItem item = null;
         *  TreeNode up = null;
         *  try
         *  {
         *      if (e.OriginalSource is TextBlock)
         *      {
         *          //p = (e.OriginalSource as TextBlock).TemplatedParent as ContentPresenter;
         *          p = (e.OriginalSource as TextBlock).TemplatedParent as ContentPresenter;
         *      }
         *      else if (e.OriginalSource is Rectangle)
         *      {
         *          if ((e.OriginalSource as Rectangle).TemplatedParent is ContentPresenter)
         *          {
         *              p = (e.OriginalSource as Rectangle).TemplatedParent as ContentPresenter;
         *          }
         *          else
         *          {
         *              item = (e.OriginalSource as Rectangle).TemplatedParent as TreeViewItem;
         *          }
         *      }
         *      else if(e.OriginalSource is TreeViewItem)
         *      {
         *          item = e.OriginalSource as TreeViewItem;
         *      }else if(e.OriginalSource is TreeView){
         *          TreeView view = (e.OriginalSource as TreeView);
         *      }else{
         *          return;
         *      }
         *      if (item != null)
         *      {
         *          up = item.Header as TreeNode;
         *          (item.Parent as Grid).Children[0].Visibility = System.Windows.Visibility.Hidden;
         *      }
         *      else
         *      {
         *          up = p.Content as TreeNode;
         *          (p.Parent as Grid).Children[0].Visibility = System.Windows.Visibility.Hidden;
         *      }
         *  }
         *  catch
         *  {
         *
         *  }
         *  finally
         *  {
         *      _mouseOverDispatched = true;
         *  }
         * }
         */



        void addItemForTest()
        {
            //VerifyAccess();
            List <TreeTableNode> newlist = new List <TreeTableNode>(this.Items);

            for (int j = 0; j < 1; j++)
            {
                TreeTableNode model = new TreeTableNode("Tree" + j, false);
                for (int i = 0; i < 2; i++)
                {
                    model.AddChild(new TreeTableNode("TreeNode" + i, false));
                }

                newlist[0].AddChild(model);
            }
            this.Items = newlist;
        }
Пример #13
0
        private TreeTableNode AddWatch(string expression, int index)
        {
            WatchDetails  watch = mDebugger.AddWatch(expression);
            TreeTableNode node  = AddVariable(new VariableDetails(watch.ID, new LuaValue[] { }, null, null, false, false, false, false, VariableClass.Watch));

            node.Font = mBoldFont;
            if (index < 0)
            {
                variablesListView.Root.Items.Add(node);
            }
            else
            {
                variablesListView.Root.Items.Insert(index, node);
            }
            node.Text = expression;
            return(node);
        }
Пример #14
0
        protected virtual void RunWhenEndNodeClicked(TreeTableNode endNode)
        {
            //endNode.Checked = endNode.Checked;
            if (endNode.Checked == true)
            {
                endNode.Checked = false;
            }
            else if (endNode.Checked == false)
            {
                endNode.Checked = true;
            }
            else     //null
            {
                endNode.Checked = true;
            }


            //if (endNode.Parent != null)
            //   endNode.Parent.CheckSelf();
        }
Пример #15
0
        protected TreeTableNode AddVariable(VariableDetails varInfo)
        {
            string value = "";
            string type  = "";

            if (varInfo.Value != null)
            {
                value = QuoteValueString(varInfo.Value);
                type  = varInfo.Value.Type.ToString();
            }

            TreeTableNode node = new TreeTableNode(mDebugger.GetValueString(varInfo.Key));

            node.Key = varInfo.ToString();
            node.Tag = varInfo;
            node.SubItems.Add(value);
            node.SubItems.Add(type);

            if (varInfo.VariableClass == VariableClass.Upvalue)
            {
                node.Font = mBoldFont;
            }

            if (varInfo.Key != null)
            {
                if (varInfo.Key.Type == LuaValueType.TILDE_ENVIRONMENT || varInfo.Key.Type == LuaValueType.TILDE_METATABLE || varInfo.Key.Type == LuaValueType.TILDE_UPVALUES)
                {
                    node.Font = mItalicFont;
                }
            }

            if (varInfo.Value != null)
            {
                node.Expandable = varInfo.HasEntries || (varInfo.HasMetadata && ShowMetadata);
                node.Expanded   = varInfo.Expanded;
            }

            return(node);
        }
Пример #16
0
        private void DeleteSelectedWatches()
        {
            List <TreeTableNode> selection = new List <TreeTableNode>();

            foreach (int index in variablesListView.SelectedIndices)
            {
                TreeTableNode node = variablesListView.Nodes[index];
                if (node.Parent == variablesListView.Root)
                {
                    selection.Add(node);
                }
            }

            foreach (TreeTableNode node in selection)
            {
                DeleteWatch(node);
            }

            if (mDebugger.ConnectedTarget != null && mDebugger.CurrentStackFrame != null)
            {
                mDebugger.ConnectedTarget.RetrieveWatches(mDebugger.CurrentThread, mDebugger.CurrentStackFrame.Depth);
            }
        }
Пример #17
0
        void CheckBoxClicked(object sender, RoutedEventArgs e)
        {
            VerifyAccess();
            if (_isChecking || TreeTableNode.IsChecking())
            {
                return;
            }
            _isChecking = true; //무한루프를 막기위함..
            CheckBox         c = sender as CheckBox;
            ContentPresenter p = c.TemplatedParent as ContentPresenter;
            TreeTableNode    treeNode;
            TreeViewItem     item = null;// = WpfFinder.getParentFromTemplate(c, DependencyObjectType.FromSystemType(typeof(TreeViewItem))) as TreeViewItem;

            //try
            //{
            if (p == null)
            {
                item     = c.TemplatedParent as TreeViewItem;
                treeNode = item.Header as TreeTableNode;
            }
            else
            {
                treeNode = p.Content as TreeTableNode;
            }

            /*
             * if (treeNode.Enabled && treeNode.Children.Count > 0)
             * {
             *  if (treeNode.Checked != null)
             *  {
             *      treeNode.CheckRecursive(c.IsChecked);
             *  }
             *  else
             *  {
             *      treeNode.CheckRecursive(true);
             *  }
             *  //if (treeNode.Parent != null) treeNode.Parent.CheckSelf();
             * }
             */



            //L_Title.Content = c.Name;
            //MessageBox.Show(c.Name);
            List <TreeTableNode> Added    = new List <TreeTableNode>();
            List <TreeTableNode> Removed  = new List <TreeTableNode>();
            List <TreeTableNode> Selected = new List <TreeTableNode>();

            if (treeNode.Children.Count == 0 && treeNode.Parent != null)     //endNode
            {
                if (BeforeClickedParent != treeNode.Parent)
                {
                    BeforeClickedParent = null;
                    BeforeClickedRow    = -1;
                }

                int row_index = treeNode.Parent.IndexOfChild(treeNode);
                if (E_OnNodeClicked != null && treeNode.Enabled == true)
                {
                    E_OnNodeClicked(this, new TreeNodeClickEventArg(treeNode.Path, treeNode.IndexPath, treeNode.Checked, treeNode, item, p));
                }


                if ((System.Windows.Input.Keyboard.GetKeyStates(Key.LeftShift) & KeyStates.Down) == KeyStates.Down)
                {
                    if (BeforeClickedRow >= 0)
                    {
                        int min = (BeforeClickedRow < row_index) ? BeforeClickedRow : row_index;
                        int max = (BeforeClickedRow < row_index) ? row_index : BeforeClickedRow;


                        for (int i = min; i <= max; i++)
                        {
                            TreeTableNode child = treeNode.Parent.Children[i];
                            if (child.Enabled)
                            {
                                if (E_OnNodeChecked != null && child.Checked != true)
                                {
                                    Added.Add(child);
                                }

                                treeNode.Parent.Children[i].Checked = true;
                            }
                        }
                        if (E_OnNodeChecked != null)
                        {
                            Selected = treeNode.SelectedSiblings;
                        }
                        if (E_OnNodeChecked != null)
                        {
                            E_OnNodeChecked(this, new TreeNodeCheckedEventArg(Selected, Added, Removed));
                        }
                    }
                }
                else if ((System.Windows.Input.Keyboard.GetKeyStates(Key.LeftCtrl) & KeyStates.Down) == KeyStates.Down)
                {
                    if (BeforeClickedRow >= 0)
                    {
                        int min = (BeforeClickedRow < row_index) ? BeforeClickedRow : row_index;
                        int max = (BeforeClickedRow < row_index) ? row_index : BeforeClickedRow;

                        for (int i = min; i <= max; i++)
                        {
                            TreeTableNode child = treeNode.Parent.Children[i];
                            if (child.Enabled)
                            {
                                if (E_OnNodeChecked != null && child.Checked != false)
                                {
                                    Removed.Add(child);
                                }

                                treeNode.Parent.Children[i].Checked = false;
                            }
                        }
                        if (E_OnNodeChecked != null)
                        {
                            Selected = treeNode.SelectedSiblings;
                        }
                        if (E_OnNodeChecked != null)
                        {
                            E_OnNodeChecked(this, new TreeNodeCheckedEventArg(Selected, Added, Removed));
                        }
                    }
                }
                else
                {
                    BeforeClickedRow    = row_index;
                    BeforeClickedParent = treeNode.Parent;
                    if (treeNode.Checked == true)
                    {
                        Added.Add(treeNode);
                    }
                    else if (treeNode.Checked == false)
                    {
                        Removed.Add(treeNode);
                    }
                    if (E_OnNodeChecked != null)
                    {
                        Selected = treeNode.SelectedSiblings;
                    }
                    if (E_OnNodeChecked != null)
                    {
                        E_OnNodeChecked(this, new TreeNodeCheckedEventArg(Selected, Added, Removed));
                    }
                }
            }
            else     //부모노드일때
            {
                treeNode.CheckRecursive(treeNode.Checked, Added, Removed, Selected);
                if (E_OnNodeChecked != null)
                {
                    E_OnNodeChecked(this, new TreeNodeCheckedEventArg(Selected, Added, Removed));
                }
            }
            treeNode.CheckSelf();
            //RunWhenEndNodeClicked(treeNode);
            //}
            //catch
            //{
            //    _isChecking = false;
            //    return;
            //}

            _isChecking = false;
        }
Пример #18
0
		private void OnNodeClosed(TreeTableNode node)
		{
			if (!m_updateInProgress && NodeClosed != null)
				NodeClosed(node);
		}
Пример #19
0
		internal void NodeChangedKey(TreeTableNode item, string oldKey)
		{
			if (oldKey != "")
			{
				System.Diagnostics.Debug.Assert(m_keyhash.ContainsKey(oldKey));
				m_keyhash.Remove(oldKey);
			}

			if (item.Key != "")
			{
				System.Diagnostics.Debug.Assert(!m_keyhash.ContainsKey(oldKey));
				m_keyhash.Add(item.Key, item);
			}
		}
Пример #20
0
		internal void NodeAdded(TreeTableNode item)
		{
            AddToHashRecursive(item);
			UpdateItems();
		}
Пример #21
0
        protected void UpdateVariable(VariableDetails varInfo)
        {
            if (variablesListView.ContainsKey(varInfo.ToString()))
            {
                TreeTableNode node = variablesListView[varInfo.ToString()];
                node.Tag = varInfo;

                if (!varInfo.Valid)
                {
                    node.Items.Clear();

                    // Only remove the variable if it's not a root watch expression
                    if (varInfo.WatchID > 0 && varInfo.Path.Length == 0)
                    {
                        node.ForeColor        = SystemColors.InactiveCaptionText;
                        node.SubItems[1].Text = QuoteValueString(varInfo.Value);
                        node.SubItems[2].Text = varInfo.Value.Type.ToString();
                    }
                    else
                    {
                        node.Parent.Items.Remove(node);
                    }
                }
                else
                {
                    node.Expandable = varInfo.HasEntries || (varInfo.HasMetadata && ShowMetadata);
                    node.Expanded   = varInfo.Expanded;

                    string value = QuoteValueString(varInfo.Value);

                    if (!varInfo.Expanded)
                    {
                        node.Items.Clear();
                    }

                    if (varInfo.Value.Type == LuaValueType.NONE)
                    {
                        node.Items.Clear();

                        node.ForeColor = SystemColors.InactiveCaptionText;
                    }
                    else if (node.SubItems[1].Text != value || node.SubItems[2].Text != varInfo.Value.Type.ToString())
                    {
                        node.ForeColor        = Color.Red;
                        node.SubItems[1].Text = value;
                        node.SubItems[2].Text = varInfo.Value.Type.ToString();
                    }
                    else
                    {
                        node.ForeColor = variablesListView.ForeColor;
                    }
                }
                node.Visible = IsVariableVisible(varInfo);
            }
            else if (varInfo.Valid && (varInfo.WatchID == 0 || mDebugger.FindWatch(varInfo.WatchID) != null))
            {
                TreeTableNode parent = FindClosestAncestor(varInfo);
                TreeTableNode node   = AddVariable(varInfo);
                parent.Items.Insert(node, mNodeComparer);
                node.Visible = IsVariableVisible(varInfo);
            }
        }
Пример #22
0
		private int UpdateItemsRecursive(TreeTableNode root, int nextIndex, int depth)
		{
			foreach (TreeTableNode child in root.Items)
			{
				if (!child.Visible)
				{
					child.InternalSetVirtualIndex(-1);
					HideItemsRecursive(child);
				}
				else
				{
					child.Depth = depth;
					child.InternalSetVirtualIndex(nextIndex++);
					m_nodes.Add(child);
					if (child.Expandable && child.Expanded)
						nextIndex = UpdateItemsRecursive(child, nextIndex, depth + 1);
					else
						HideItemsRecursive(child);
				}
			}

			return nextIndex;
		}
Пример #23
0
		private void DeleteWatch(TreeTableNode node)
		{
			VariableDetails varInfo = (VariableDetails)node.Tag;
			WatchDetails watch = mDebugger.FindWatch(varInfo.WatchID);
			if (watch != null)
			{
				mDebugger.RemoveWatch(watch);
			}
			node.Parent.Items.Remove(node);
		}
Пример #24
0
		void variablesListView_NodeOpened(TreeTableNode node)
		{
			VariableDetails details = (VariableDetails)node.Tag;

			mDebugger.Manager.StartProgressBarMarquee();

			mDebugger.ConnectedTarget.ExpandLocal(details.MakePath());
			mDebugger.ConnectedTarget.RetrieveLocals(mDebugger.CurrentThread, mDebugger.CurrentStackFrame.Depth);
		}
Пример #25
0
        internal void AddToHashRecursive(TreeTableNode root)
        {
			if (root.Key != "")
			{
				System.Diagnostics.Debug.Assert(!m_keyhash.ContainsKey(root.Key));
				m_keyhash.Add(root.Key, root);
			}

            foreach (TreeTableNode node in root.Items)
            {
                AddToHashRecursive(node);
            }
        }
Пример #26
0
		internal void InvalidateNode(TreeTableNode node)
		{
			if (node.VirtualIndex >= 0)
			{
				if (m_updateInProgress)
					m_updateDirty = true;
				else
				{
					Rectangle bounds = listView1.GetItemRect(node.VirtualIndex, ItemBoundsPortion.Entire);
					listView1.Invalidate(bounds);
				}
			}

		}
Пример #27
0
		internal void NodeChangedSubItem(TreeTableNode node)
		{
			InvalidateNode(node);
		}
Пример #28
0
		internal void NodeReplaced(TreeTableNode oldItem, TreeTableNode newItem)
		{
            RemoveFromHashRecursive(oldItem);
            AddToHashRecursive(newItem);
			UpdateItems();
		}
Пример #29
0
		internal void NodeRemoved(TreeTableNode item)
		{
            RemoveFromHashRecursive(item);
			UpdateItems();
		}
Пример #30
0
		private void HideItemsRecursive(TreeTableNode root)
		{
			foreach (TreeTableNode child in root.Items)
			{
				child.InternalSetVirtualIndex(-1);
				HideItemsRecursive(child);
			}
		}
Пример #31
0
		internal void NodeChangedExpanded(TreeTableNode item)
		{
			if (item.Expanded)
				OnNodeOpened(item);
			else
				OnNodeClosed(item);

			UpdateItems();
		}
Пример #32
0
		void variablesListView_NodeClosed(TreeTableNode node)
		{
			VariableDetails details = (VariableDetails)node.Tag;

			if (!mUpdateInProgress && mDebugger.ConnectedTarget != null && mDebugger.CurrentStackFrame != null)
			{
				mDebugger.Manager.StartProgressBarMarquee();

				mDebugger.ConnectedTarget.CloseWatch(details.WatchID, details.MakePath());
				mDebugger.ConnectedTarget.UpdateWatch(details.WatchID, mDebugger.CurrentThread, mDebugger.CurrentStackFrame.Depth);
			}
		}
Пример #33
0
        void OnClick() //this function is called by Timer..
        {
            //VerifyAccess();
            if (clickArg.Count != 2)
            {
                return;
            }



            object          sender = clickArg.Sender;
            RoutedEventArgs e      = clickArg.MouseBtnArgs;

            ContentPresenter p        = null;
            TreeViewItem     item     = null;
            TreeTableNode    treeNode = null;

            FrameworkElement fe = e.OriginalSource as FrameworkElement;

            if (fe.TemplatedParent is ContentPresenter)
            {
                p = fe.TemplatedParent as ContentPresenter;
            }
            else if (fe.TemplatedParent is TreeViewItem)
            {
                item = fe.TemplatedParent as TreeViewItem;
            }
            else
            {
                return;
            }

            /*
             * if (e.OriginalSource is TextBlock)
             * {
             *  //p = (e.OriginalSource as TextBlock).TemplatedParent as ContentPresenter;
             *  p = (e.OriginalSource as TextBlock).TemplatedParent as ContentPresenter;
             *
             * }
             * else if (e.OriginalSource is Rectangle)
             * {
             *  if ((e.OriginalSource as Rectangle).TemplatedParent is ContentPresenter)
             *  {
             *      p = (e.OriginalSource as Rectangle).TemplatedParent as ContentPresenter;
             *  }
             *  else
             *  {
             *      item = (e.OriginalSource as Rectangle).TemplatedParent as TreeViewItem;
             *  }
             * }
             * else
             * {
             *  return;
             * }
             */

            //try
            {
                if (item != null)
                {
                    if (item.Items.Count > 0)
                    {
                        item.Tag = "Parent";
                    }
                    treeNode = item.Header as TreeTableNode;
                }
                else
                {
                    treeNode = p.Content as TreeTableNode;
                }

                if (treeNode.Enabled)
                {
                    if (treeNode.Children.Count > 0)
                    {
                        //(p.Parent as Grid).Children[0].Visibility = System.Windows.Visibility.Hidden;
                        RunWhenParentNodeClicked(treeNode);
                    }
                    else
                    {
                        RunWhenEndNodeClicked(treeNode);
                    }



                    if (E_OnNodeClicked != null && treeNode.Enabled)
                    {
                        E_OnNodeClicked(this, new TreeNodeClickEventArg(treeNode.Path, treeNode.IndexPath, treeNode.Checked, treeNode, item, p));
                    }
                }
            }
            //catch { }
        }
Пример #34
0
		private void NewWatch()
		{
			TreeTableNode node = new TreeTableNode("");
			node.SubItems.Add("");
			node.SubItems.Add("");
			node.Font = mBoldFont;
			variablesListView.Root.Items.Add(node);
			node.BeginEdit(0);
		}
Пример #35
0
 protected virtual void RunWhenParentNodeClicked(TreeTableNode parentNode)
 {
     //addItemForTest(); //forTest
 }
Пример #36
0
        private void variablesListView_AfterLabelEdit(object sender, LabelEditEventArgs e)
        {
            m_editInProgress         = false;
            contextMenuStrip.Enabled = true;
            toolStrip1.Enabled       = true;

            TreeTableNode node = variablesListView.Nodes[e.Item];

            string expression = e.Label == null ? "" : e.Label.Trim();

            variablesListView.BeginUpdate();

            // Did the user cancel adding a new watch?
            if (node.Text == "" && expression == "")
            {
                e.CancelEdit = true;
                node.Parent.Items.Remove(node);
            }

            // Did the user cancel the change?
            else if (e.Label == null || expression == node.Text)
            {
                // Do nothing
            }

            // Did the user delete an existing watch?
            else if (expression == "")
            {
                e.CancelEdit = true;
                DeleteWatch(node);
            }

            // The user modified an existing watch
            else
            {
                VariableDetails oldVar = node.Tag as VariableDetails;
                if (oldVar != null)
                {
                    WatchDetails oldWatch = mDebugger.FindWatch(oldVar.WatchID);
                    if (oldWatch != null)
                    {
                        mDebugger.RemoveWatch(oldWatch);
                    }
                }

                WatchDetails    newWatch = mDebugger.AddWatch(expression);
                VariableDetails newVar   = new VariableDetails(newWatch.ID, new LuaValue[] { }, null, null, false, false, false, false, VariableClass.Watch);
                node.Tag              = newVar;
                node.Key              = newVar.ToString();
                node.Text             = expression;
                node.SubItems[1].Text = "";
                node.SubItems[2].Text = "";

                if (mDebugger.ConnectedTarget != null && mDebugger.CurrentStackFrame != null)
                {
                    mDebugger.ConnectedTarget.RetrieveWatches(mDebugger.CurrentThread, mDebugger.CurrentStackFrame.Depth);
                }
            }

            variablesListView.EndUpdate();
        }
Пример #37
0
		internal void NodeChangedVisible(TreeTableNode item)
		{
			UpdateItems();
		}
Пример #38
0
		internal void NodeChangedExpandable(TreeTableNode node)
		{
			InvalidateNode(node);
		}
Пример #39
0
        internal void RemoveFromHashRecursive(TreeTableNode root)
        {
			if (root.Key != "")
			{
				System.Diagnostics.Debug.Assert(m_keyhash.ContainsKey(root.Key));
				m_keyhash.Remove(root.Key);
			}

            foreach (TreeTableNode node in root.Items)
            {
                RemoveFromHashRecursive(node);
            }
        }