void MonoDevelop.DesignerSupport.IOutlinedDocument.ReleaseOutlineWidget()
        {
            if (outlineTreeView == null)
            {
                return;
            }
            var w = (ScrolledWindow)outlineTreeView.Parent;

            w.Destroy();
            if (outlineTreeModelSort != null)
            {
                outlineTreeModelSort.Dispose();
                outlineTreeModelSort = null;
            }
            if (outlineTreeStore != null)
            {
                outlineTreeStore.Dispose();
                outlineTreeStore = null;
            }
            outlineTreeView = null;
            settings        = null;
            foreach (var tw in toolbarWidgets)
            {
                tw.Destroy();
            }
            toolbarWidgets = null;
            comparer       = null;
        }
Esempio n. 2
0
        /// <param name="ambience">
        /// The ambience used on retrieval of node names.
        /// </param>
        /// <param name="properties">
        /// The properties used on retrieval of node sort keys and sorting settings.
        /// </param>
        /// <param name="model">
        /// The model containing the nodes to compare.
        /// </param>

        public ClassOutlineNodeComparer(Ambience ambience, ClassOutlineSettings settings, TreeModel model)
        {
            this.ambience = ambience;
            this.settings = settings;
            this.model    = model;
            BuildGroupTable();
        }
        Widget MonoDevelop.DesignerSupport.IOutlinedDocument.GetOutlineWidget()
        {
            if (outlineTreeView != null)
            {
                return(outlineTreeView);
            }

            outlineTreeStore     = new TreeStore(typeof(object));
            outlineTreeModelSort = new TreeModelSort(outlineTreeStore);

            settings = ClassOutlineSettings.Load();
            comparer = new ClassOutlineNodeComparer(GetAmbience(), settings, outlineTreeModelSort);

            outlineTreeModelSort.SetSortFunc(0, comparer.CompareNodes);
            outlineTreeModelSort.SetSortColumnId(0, SortType.Ascending);

            outlineTreeView = new MonoDevelop.Ide.Gui.Components.PadTreeView(outlineTreeStore);

            var pixRenderer = new CellRendererImage();

            pixRenderer.Xpad = 0;
            pixRenderer.Ypad = 0;

            outlineTreeView.TextRenderer.Xpad = 0;
            outlineTreeView.TextRenderer.Ypad = 0;

            TreeViewColumn treeCol = new TreeViewColumn();

            treeCol.PackStart(pixRenderer, false);

            treeCol.SetCellDataFunc(pixRenderer, new TreeCellDataFunc(OutlineTreeIconFunc));
            treeCol.PackStart(outlineTreeView.TextRenderer, true);

            treeCol.SetCellDataFunc(outlineTreeView.TextRenderer, new TreeCellDataFunc(OutlineTreeTextFunc));
            outlineTreeView.AppendColumn(treeCol);

            outlineTreeView.HeadersVisible = false;

            outlineTreeView.Selection.Changed += delegate {
                JumpToDeclaration(false);
            };

            outlineTreeView.RowActivated += delegate {
                JumpToDeclaration(true);
            };

            this.lastCU = Document.ParsedDocument;

            outlineTreeView.Realized += delegate { RefillOutlineStore(); };
            UpdateSorting();

            var sw = new CompactScrolledWindow();

            sw.Add(outlineTreeView);
            sw.ShowAll();
            return(sw);
        }
		public ClassOutlineSortingPreferencesDialog (ClassOutlineSettings settings)
		{
			this.Build ();

			priorityList.Model = new ListStore (typeof (string), typeof (string));
			priorityList.AppendColumn ("", new CellRendererText (), "text", 1);
			
			priorityList.Model.Clear ();
			foreach (string g in settings.GroupOrder) {
				priorityList.Model.AppendValues (g, ClassOutlineSettings.GetGroupName (g));
			}
			
			this.settings = settings;
		}
Esempio n. 5
0
		public static ClassOutlineSettings Load ()
		{
			var cs = new ClassOutlineSettings ();
			cs.IsGrouped = PropertyService.Get (KEY_IS_GROUPED, false);
			cs.IsSorted = PropertyService.Get (KEY_IS_SORTED, false);
			
			string s = PropertyService.Get (KEY_GROUP_ORDER, "");
			if (s.Length == 0) {
				cs.GroupOrder = groupNames.Keys.ToArray ();
			} else {
				cs.GroupOrder = s.Split (new char[] {','}, StringSplitOptions.RemoveEmptyEntries);
			}
			return cs;
		}
        public ClassOutlineSortingPreferencesDialog(ClassOutlineSettings settings)
        {
            this.Build();

            priorityList.Model = new ListStore(typeof(string), typeof(string));
            priorityList.AppendColumn("", new CellRendererText(), "text", 1);

            priorityList.Model.Clear();
            foreach (string g in settings.GroupOrder)
            {
                priorityList.Model.AppendValues(g, ClassOutlineSettings.GetGroupName(g));
            }

            this.settings = settings;
        }
 public override void Dispose()
 {
     if (disposed)
     {
         return;
     }
     disposed = true;
     if (Document != null)
     {
         Document.DocumentParsed -= UpdateDocumentOutline;
     }
     RemoveRefillOutlineStoreTimeout();
     lastCU   = null;
     settings = null;
     comparer = null;
     base.Dispose();
 }
        public static ClassOutlineSettings Load()
        {
            var cs = new ClassOutlineSettings();

            cs.IsGrouped = PropertyService.Get(KEY_IS_GROUPED, false);
            cs.IsSorted  = PropertyService.Get(KEY_IS_SORTED, false);

            string s = PropertyService.Get(KEY_GROUP_ORDER, "");

            if (s.Length == 0)
            {
                cs.GroupOrder = groupNames.Keys.ToArray();
            }
            else
            {
                cs.GroupOrder = s.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
            }
            return(cs);
        }
		Widget MonoDevelop.DesignerSupport.IOutlinedDocument.GetOutlineWidget ()
		{
			if (outlineTreeView != null)
				return outlineTreeView;

			outlineTreeStore = new TreeStore (typeof(object));
			outlineTreeModelSort = new TreeModelSort (outlineTreeStore);
			
			settings = ClassOutlineSettings.Load ();
			comparer = new ClassOutlineNodeComparer (GetAmbience (), settings, outlineTreeModelSort);

			outlineTreeModelSort.SetSortFunc (0, comparer.CompareNodes);
			outlineTreeModelSort.SetSortColumnId (0, SortType.Ascending);

			outlineTreeView = new MonoDevelop.Ide.Gui.Components.PadTreeView (outlineTreeStore);

			var pixRenderer = new CellRendererPixbuf ();
			pixRenderer.Xpad = 0;
			pixRenderer.Ypad = 0;

			outlineTreeView.TextRenderer.Xpad = 0;
			outlineTreeView.TextRenderer.Ypad = 0;

			TreeViewColumn treeCol = new TreeViewColumn ();
			treeCol.PackStart (pixRenderer, false);

			treeCol.SetCellDataFunc (pixRenderer, new TreeCellDataFunc (OutlineTreeIconFunc));
			treeCol.PackStart (outlineTreeView.TextRenderer, true);

			treeCol.SetCellDataFunc (outlineTreeView.TextRenderer, new TreeCellDataFunc (OutlineTreeTextFunc));
			outlineTreeView.AppendColumn (treeCol);

			outlineTreeView.HeadersVisible = false;

			outlineTreeView.Selection.Changed += delegate {
				JumpToDeclaration (false);
			};
			
			outlineTreeView.RowActivated += delegate {
				JumpToDeclaration (true);
			};

			this.lastCU = Document.ParsedDocument;

			outlineTreeView.Realized += delegate { RefillOutlineStore (); };
			UpdateSorting ();

			var sw = new CompactScrolledWindow ();
			sw.Add (outlineTreeView);
			sw.ShowAll ();
			return sw;
		}
		void MonoDevelop.DesignerSupport.IOutlinedDocument.ReleaseOutlineWidget ()
		{
			if (outlineTreeView == null)
				return;
			var w = (ScrolledWindow)outlineTreeView.Parent;
			w.Destroy ();
			outlineTreeModelSort.Dispose ();
			outlineTreeModelSort = null;
			outlineTreeStore.Dispose ();
			outlineTreeStore = null;
			outlineTreeView = null;
			settings = null;
			foreach (var tw in toolbarWidgets)
				w.Destroy ();
			toolbarWidgets = null;
			comparer = null;
		}
		public override void Dispose ()
		{
			if (disposed)
				return;
			disposed = true;
			if (Document != null)
				Document.DocumentParsed -= UpdateDocumentOutline;
			RemoveRefillOutlineStoreTimeout ();
			lastCU = null;
			settings = null;
			comparer = null;
			base.Dispose ();
		}