コード例 #1
0
ファイル: TreeView.cs プロジェクト: ilhuber/ApsimX
        /// <summary>
        /// Allows for fine control over how each individual cell is rendered.
        /// </summary>
        /// <param name="col">Column in which the cell appears.</param>
        /// <param name="cell">
        /// The individual cells.
        /// Any changes to this cell only affect this cell.
        /// The other cells in the column are unaffected.
        /// </param>
        /// <param name="model">
        /// The tree model which holds the data being displayed in the tree.
        /// </param>
        /// <param name="iter">
        /// TreeIter object associated with this cell in the tree. This object
        /// can be used for many things, such as retrieving this cell's data.
        /// </param>
        private void OnSetCellData(TreeViewColumn col, CellRenderer cell, TreeModel model, TreeIter iter)
        {
            try
            {
                // This makes a lot of assumptions about how the tree model is structured.
                if (cell is CellRendererText)
                {
                    Color colour = (Color)model.GetValue(iter, 4);
                    if (colour == Color.Empty)
                    {
#if NETFRAMEWORK
                        Gdk.Color foreground = treeview1.Style.Foreground(StateType.Normal);
#else
                        Gdk.Color foreground = treeview1.StyleContext.GetColor(StateFlags.Normal).ToGdkColor();
#endif
                        colour = Utility.Colour.FromGtk(foreground);
                    }
                    (cell as CellRendererText).Strikethrough = (bool)model.GetValue(iter, 5);

                    // This is a bit of a hack which we use to convert a System.Drawing.Color
                    // to its hex string equivalent (e.g. #FF0000).
                    string hex = Utility.Colour.ToHex(colour);

                    string text = (string)model.GetValue(iter, 0);
                    (cell as CellRendererText).Markup = "<span foreground=\"" + hex + "\">" + text + "</span>";
                }
            }
            catch (Exception err)
            {
                ShowError(err);
            }
        }
コード例 #2
0
        /// <summary>
        /// Compares 2 elements from the ListStore and returns an indication of their relative values.
        /// </summary>
        /// <param name="model">Model of the ListStore.</param>
        /// <param name="a">Path to the first row.</param>
        /// <param name="b">Path to the second row.</param>
        /// <param name="i">Column to take values from.</param>
        /// <returns></returns>
        private int SortData(TreeModel model, TreeIter a, TreeIter b, int i)
        {
            object o1 = model.GetValue(a, i);
            object o2 = model.GetValue(b, i);

            if (o1 != null && o2 != null)
            {
                return(string.Compare(o1.ToString(), o2.ToString()));
            }
            return(0);
        }
コード例 #3
0
ファイル: CustomGameDialog.cs プロジェクト: nated099/gbrainy
        int GameSort(Gtk.ITreeModel model, Gtk.TreeIter a, Gtk.TreeIter b)
        {
            string    name_a, name_b;
            int       sort_column_id;
            SortType  order;
            ListStore store = (ListStore)model;

            store.GetSortColumnId(out sort_column_id, out order);

            name_a = (string)model.GetValue(a, sort_column_id);
            name_b = (string)model.GetValue(b, sort_column_id);
            return(String.Compare(name_a, name_b));
        }
コード例 #4
0
ファイル: TextCleaner.cs プロジェクト: pstuifzand/textcleaner
        private void RenderCommandName(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.ITreeModel model,
                                       Gtk.TreeIter iter)
        {
            CommandData data             = (CommandData)model.GetValue(iter, 0);
            var         cellRendererText = (CellRendererText)cell;
            var         text             = data.OperationText();

            cellRendererText.Text = text;
        }
コード例 #5
0
 /// <summary>
 /// Handles the DrawItem combo box event to display colours.
 /// </summary>
 /// <param name="cell_layout">The cell layout.</param>
 /// <param name="cell">The cell.</param>
 /// <param name="model">The tree model.</param>
 /// <param name="iter">The TreeIter.</param>
 private void OnDrawColourCombo(CellLayout cell_layout, CellRenderer cell, TreeModel model, TreeIter iter)
 {
     try
     {
         cell.CellBackgroundGdk = (Gdk.Color)model.GetValue(iter, 1);
     }
     catch (Exception err)
     {
         ShowError(err);
     }
 }
コード例 #6
0
ファイル: CellUtil.cs プロジェクト: xecrets/xwt
        public static object GetModelValue(TreeModel store, Gtk.TreeIter it, int column)
        {
            object val = store.GetValue(it, column);

            if (val is DBNull)
            {
                return(null);
            }
            else if (val is ObjectWrapper)
            {
                return(((ObjectWrapper)val).Object);
            }
            else
            {
                return(val);
            }
        }
コード例 #7
0
ファイル: CellUtil.cs プロジェクト: xecrets/xwt
 public object GetValue(IDataField field)
 {
     return(treeModel.GetValue(iter, field.Index));
 }
コード例 #8
0
ファイル: CellUtil.cs プロジェクト: m13253/xwt
		public static object GetModelValue (TreeModel store, Gtk.TreeIter it, int column)
		{
			object val = store.GetValue (it, column);
			if (val is DBNull)
				return null;
			else if (val is ObjectWrapper)
				return ((ObjectWrapper)val).Object;
			else
				return val;
		}