示例#1
0
        public static void LoadCertificateTree(Gtk.TreeStore certStore)
        {
            foreach (EveCertGroup group in m_CertGroups.Values)
            {
                Gtk.TreeIter groupIter = certStore.AppendValues(group.Name, -1, group.ID, true);
                group.TreeReference = new Gtk.TreeRowReference(certStore, certStore.GetPath(groupIter));
            }

            foreach (EveCertificate cert in m_Certificates.Values)
            {
                EveCertGroup group = m_CertGroups[cert.GroupID];
                Gtk.TreeIter groupIter;
                Gtk.TreeIter certIter;

                if (certStore.GetIter(out groupIter, group.TreeReference.Path))
                {
                    certIter = certStore.AppendValues(groupIter, cert.Name, cert.Grade, cert.ID, false);
                    cert.TreeReference = new Gtk.TreeRowReference(certStore, certStore.GetPath(certIter));
                }
            }
        }
示例#2
0
文件: TvShowGui.cs 项目: revenz/iMeta
 protected virtual void RenderTreeCell( Gtk.TreeViewColumn _column, Gtk.CellRenderer _cell, Gtk.TreeModel _model, Gtk.TreeIter _iter)
 {
     object o = _model.GetValue(_iter, 0);
     GuiComponents.TvEpisodeNodeItem node = o as GuiComponents.TvEpisodeNodeItem;
     Gdk.Color background = new Gdk.Color(255, 255, 255);
     if(node != null && (_model.GetPath(_iter).Indices[1] % 2) == 0)
         background = new Gdk.Color(240, 240, 255);
     if(_cell is Gtk.CellRendererText)
     {
         if(node != null)
         {
             switch(_column.SortColumnId)
             {
                 case 1: (_cell as Gtk.CellRendererText).Text = node.EpisodeNames; break;
                 case 3: (_cell as Gtk.CellRendererText).Text = node.Filename; break;
             }
         }
         else if(o is KeyNode && _column.SortColumnId == 0)
         {
             (_cell as Gtk.CellRendererText).Markup = ((KeyNode)o).Markup;
         }
         else
             (_cell as Gtk.CellRendererText).Text = "";
         (_cell as Gtk.CellRendererText).BackgroundGdk = background;
     }
     else if(_cell is TreeItemCellRenderer)
     {
         TreeItemCellRenderer render = (TreeItemCellRenderer)_cell;
         render.CellBackgroundGdk = background;
         render.Pixbuf = null;
         if(node != null)
         {
             render.Text = node.EpisodeNumbersString;
             render.Pixbuf = node.StatusIcon;
         }
         else
             render.Text = ((KeyNode)o).Key;
     }
     else
     {
         if(node != null)
         {
             switch(_column.SortColumnId)
             {
                 case 2: (_cell as Gtk.CellRendererPixbuf).Pixbuf = node.RatingIcon; break;
             }
         }
         else
         {
             (_cell as Gtk.CellRendererPixbuf).Pixbuf = Images.Empty;
         }
         (_cell as Gtk.CellRendererPixbuf).CellBackgroundGdk = background;
     }
 }
示例#3
0
		static void SetDiffCellData (Gtk.TreeViewColumn tree_column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter)
		{
			CellRendererDiff rc = (CellRendererDiff)cell;
			string[] lines = (string[])model.GetValue (iter, colDiff);
			if (lines == null)
				lines = new string[] { (string)model.GetValue (iter, colOperation) };

			rc.InitCell (tree_column.TreeView, ((TreeStore)model).IterDepth (iter) != 0, lines, model.GetPath (iter));
		}
示例#4
0
		static void AuthorIconFunc (Gtk.TreeViewColumn tree_column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter)
		{
			CellRendererImage renderer = (CellRendererImage)cell;
			var rev = (Revision)model.GetValue (iter, 0);
			if (string.IsNullOrEmpty (rev.Email))
				return;
			ImageLoader img = ImageService.GetUserIcon (rev.Email, 16);

			renderer.Image = img.Image;
			if (img.Downloading) {
				img.Completed += (sender, e) => {
					renderer.Image = img.Image;
					if (((ListStore)model).IterIsValid (iter))
						model.EmitRowChanged (model.GetPath (iter), iter);
				};
			}
		}
        private bool FilterTree(Gtk.TreeModel model, Gtk.TreeIter iter)
        {
            lock (inventory)
            {

                try
                {
                    if (this.entry_search.Text == "")
                        return true;

                    if (filtered.Contains(iter))//*sigh*
                        return true;

                    object obj = model.GetValue(iter, 1);
                    if (obj == null)
                        return false;

                    string Name = (string)obj;

                    if (Name.Contains(this.entry_search.Text))
                    {
                        filtered.Add(iter);//*sigh*

                        TreePath path = model.GetPath(iter);
                        while (path.Depth > 1)
                        {
                            path.Up();
                            TreeIter iter2;
                            model.GetIter(out iter2, path);
                            filtered.Add(iter2);//*sigh*
                        }

                        return true;
                    }

                    return false;
                }
                catch
                {
                    return false;
                }
            }
        }
示例#6
0
		void AuthorIconFunc (Gtk.TreeViewColumn tree_column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter)
		{
			CellRendererPixbuf renderer = (CellRendererPixbuf)cell;
			var rev = (Revision)model.GetValue (iter, 0);
			if (string.IsNullOrEmpty (rev.Email))
				return;
			ImageLoader img = ImageService.GetUserIcon (rev.Email, 16);
			if (img.LoadOperation.IsCompleted)
				renderer.Pixbuf = img.Pixbuf;
			else {
				renderer.Pixbuf = null;
				img.LoadOperation.Completed += delegate {
					Gtk.Application.Invoke (delegate {
						if (logstore.IterIsValid (iter))
							model.EmitRowChanged (model.GetPath (iter), iter);
					});
				};
			}
		}
 private void UpdateMaps(Gtk.TreeModel model, Gtk.TreeIter itr)
 {
     model.EmitRowChanged (model.GetPath (itr), itr);
 }
 internal virtual void RenderListItem(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter)
 {
     CellRendererCustom mycell   = (CellRendererCustom) cell;
     mycell.ItemIndex            = int.Parse( model.GetPath(iter).ToString() );
     mycell.Iter                 = iter;
     mycell.Text                 = this.Items[ mycell.ItemIndex ].ToString();
 }
        //checkbox cell function
        private void OnChkDataFunc(
		                        Gtk.TreeViewColumn col, Gtk.CellRenderer cell,
		                        Gtk.TreeModel model, Gtk.TreeIter iter
		                            )
        {
            CellRendererToggle c = cell as CellRendererToggle;
            String path = model.GetPath(iter).ToString();

            int item_index = int.Parse( path );
            c.Active       = ( checked_items.IndexOf( item_index ) != -1 );
        }
示例#10
0
    public static void TreeviewScrollToLastRow(Gtk.TreeView tv, Gtk.ListStore store, int nrows)
    {
        TreeIter iter = new TreeIter();
        bool iterOk = store.GetIterFirst(out iter);
        if(! iterOk)
            return;

        for(int i=0; i < (nrows -1); i++)
            iterOk = tv.Model.IterNext (ref iter);

        if(! iterOk)
            return;

        TreePath path = store.GetPath (iter);
        LogB.Debug(path.ToString());
        tv.ScrollToCell (path, tv.Columns[0], true, 0, 0);
    }
示例#11
0
    //selects a row that has an uniqueID (usually at col 0)
    public static bool TreeviewSelectRowWithID(Gtk.TreeView tv, Gtk.TreeStore store, int colNum, int id, bool scrollToRow)
    {
        if(id <= 0)
            return false;

        int rowNum = getRowNumOfThisID(store, colNum, id);
        if(rowNum == -1)
            return false;

        //set the selected
        int count = 0;
        TreeIter iter;
        bool iterOk = store.GetIterFirst(out iter);
        while(iterOk) {
            if(count == rowNum) {
                //1 select row
                tv.Selection.SelectIter(iter);

                //2 scroll to that row
                if(scrollToRow) {
                    TreePath path = store.GetPath (iter);
                    LogB.Debug(path.ToString());
                    tv.ScrollToCell (path, tv.Columns[0], true, 0, 0);
                }

                return true;
            }

            count ++;
            store.IterNext(ref iter);
        }
        return false;
    }
示例#12
0
 bool IsRowSeparator(Gtk.TreeModel model, Gtk.TreeIter iter)
 {
     Gtk.TreePath path = model.GetPath (iter);
     bool res = false;
     ApplicationContext.InvokeUserCode (delegate {
         res = EventSink.RowIsSeparator (path.Indices[0]);
     });
     return res;
 }
 private void RenderListItem(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter)
 {
     CellRendererCustom mycell   = (CellRendererCustom) cell;
     mycell.ItemIndex            = int.Parse( model.GetPath(iter).ToString() );
 }
示例#14
0
        public static void LoadMarket(Gtk.TreeStore marketStore, Gtk.ListStore itemStore)
        {
            LoadMarket();

            foreach(EveMarketGroup group in m_MarketGroups.Values)
            {
                Gtk.TreeIter groupIter;
                Gtk.TreeIter  parentIter;

                if (group.ParentID > -1 && marketStore.GetIter(out parentIter, m_MarketGroups[group.ParentID].TreeReference.Path))
                {
                    groupIter = marketStore.AppendNode(parentIter);
                }
                else
                {
                    groupIter = marketStore.AppendNode();
                }

                group.TreeReference = new Gtk.TreeRowReference(marketStore, marketStore.GetPath(groupIter));
                marketStore.SetValues(groupIter, new Gdk.Pixbuf(ItemDatabase.GetMarketIconStream(group.IconString)), group.Name, group.ID, group.HasItems, true);
            }

            foreach (EveItem item in m_Items.Values)
            {
                if (item.MarketGroupID > -1)
                {
                    Gtk.TreeIter parentIter;
                    if (marketStore.GetIter(out parentIter, m_MarketGroups[item.MarketGroupID].TreeReference.Path))
                    {
                        Gtk.TreeIter childIter = marketStore.AppendValues(parentIter, null, item.Name, item.ID, false, false);
                        itemStore.AppendValues(item.Name, item.ID);

                        item.TreeReference = new Gtk.TreeRowReference(marketStore, marketStore.GetPath(childIter));
                    }
                }
            }
        }
示例#15
0
		void AddToTree (Gtk.TreeStore treeStore, Gtk.TreeIter iter, PDictionary dict)
		{
			iterTable[dict] = iter;
			foreach (var item in dict) {
				var key = item.Key.ToString ();
				var subIter = iter.Equals (TreeIter.Zero) ? treeStore.AppendValues (key, item.Value) : treeStore.AppendValues (iter, key, item.Value);
				if (item.Value is PArray)
					AddToTree (treeStore, subIter, (PArray)item.Value);
				if (item.Value is PDictionary)
					AddToTree (treeStore, subIter, (PDictionary)item.Value);
				if (expandedObjects.Contains (item.Value))
					treeview.ExpandRow (treeStore.GetPath (subIter), true);
			}
			AddCreateNewEntry (iter);
			
			if (!rebuildArrays.Contains (dict)) {
				rebuildArrays.Add (dict);
				dict.Changed += HandleDictRebuild;
			}
		}
		static void RenderIcon (Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter)
		{
			CodeTemplate template = (CodeTemplate)model.GetValue (iter, 0);

			var cri = (CellRendererImage)cell;
			if (template == null) {
				cri.Image = ImageService.GetIcon (((TreeView)column.TreeView).GetRowExpanded (model.GetPath (iter)) ? MonoDevelop.Ide.Gui.Stock.OpenFolder : MonoDevelop.Ide.Gui.Stock.ClosedFolder, IconSize.Menu);
			} else {
				cri.Image = ImageService.GetIcon (template.Icon, IconSize.Menu);
			}
				
		}
示例#17
0
		void AddToTree (Gtk.TreeStore treeStore, Gtk.TreeIter iter, PArray arr)
		{
			iterTable[arr] = iter;
			
			for (int i = 0; i < arr.Count; i++) {
				var item = arr[i];
				
				var txt = string.Format (GettextCatalog.GetString ("Item {0}"), i);
				var subIter = iter.Equals (TreeIter.Zero) ? treeStore.AppendValues (txt, item) : treeStore.AppendValues (iter, txt, item);
				
				if (item is PArray)
					AddToTree (treeStore, subIter, (PArray)item);
				if (item is PDictionary)
					AddToTree (treeStore, subIter, (PDictionary)item);
				if (expandedObjects.Contains (item))
					treeview.ExpandRow (treeStore.GetPath (subIter), true);
			}

			AddCreateNewEntry  (iter);
			
			if (!rebuildArrays.Contains (arr)) {
				rebuildArrays.Add (arr);
				arr.Changed += HandleArrRebuild;
			}
		}
示例#18
0
            public TreeMapItem(Gtk.TreeModel m,
			                    ref Gtk.TreeIter iter,
			                    bool horiz,
			                    int textColumn,
			                    int weightColumn)
            {
                if (m == null)
                    throw new ArgumentNullException ("m");

                if (iter.Equals (Gtk.TreeIter.Zero))
                    throw new ArgumentException ("iter");

                if (textColumn < 0)
                    throw new ArgumentException ("textColumn");

                if (weightColumn < 0)
                    throw new ArgumentException ("weightColumn");

                Path = m.GetPath (iter);
                Title = (string)m.GetValue (iter, textColumn);
                Weight = (double)m.GetValue (iter, weightColumn);
                X = 0;
                Y = 0;
                Width = 0;
                Height = 0;
                Children = null;
                Horiz = horiz;

                Gtk.TreeIter citer;
                double c_total = 0.0;

                if (m.IterChildren (out citer, iter)) {
                    do {
                        AddChild (new TreeMapItem (m, ref citer, !horiz, textColumn, weightColumn));
                    } while (m.IterNext (ref citer));

                    // Get total weight
                    Children.ForEach (delegate (TreeMapItem i) {
                        c_total += Math.Abs (i.Weight);
                    });

                    this.ChildrenWeight = c_total;
                }
            }