예제 #1
0
        public void AddGroup(ItemGroup igroup, object instance, string targetGtkVersion)
        {
            ArrayList props = new ArrayList();

            foreach (ItemDescriptor item in igroup)
            {
                if (item.IsInternal)
                {
                    continue;
                }
                if (item is PropertyDescriptor && item.SupportsGtkVersion(targetGtkVersion))
                {
                    props.Add(item);
                }
            }

            if (props.Count == 0)
            {
                return;
            }

            InstanceData idata = new InstanceData(instance);
            TreeIter     iter  = store.AppendValues(igroup.Label, null, true, idata);

            foreach (PropertyDescriptor item in props)
            {
                AppendProperty(iter, (PropertyDescriptor)item, idata);
            }
        }
예제 #2
0
        void PropertyData(Gtk.TreeViewColumn tree_column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter)
        {
            CellRendererProperty rc = (CellRendererProperty)cell;
            bool group = (bool)model.GetValue(iter, 2);

            if (group)
            {
                rc.SetData(null, null, null);
            }
            else
            {
                PropertyDescriptor prop     = (PropertyDescriptor)model.GetValue(iter, 1);
                PropertyEditorCell propCell = PropertyEditorCell.GetPropertyCell(prop);
                InstanceData       idata    = (InstanceData)model.GetValue(iter, 3);
                propCell.Initialize(tree, prop, idata.Instance);
                rc.SetData(idata.Instance, prop, propCell);
            }
        }
예제 #3
0
        void GroupData(Gtk.TreeViewColumn tree_column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter)
        {
            CellRendererPropertyGroup rc = (CellRendererPropertyGroup)cell;

            rc.IsGroup = (bool)model.GetValue(iter, 2);
            rc.Text    = (string)model.GetValue(iter, 0);

            PropertyDescriptor prop = (PropertyDescriptor)model.GetValue(iter, 1);

            if (prop != null)
            {
                InstanceData idata = (InstanceData)model.GetValue(iter, 3);
                rc.SensitiveProperty = prop.EnabledFor(idata.Instance) && prop.VisibleFor(idata.Instance);
            }
            else
            {
                rc.SensitiveProperty = true;
            }
        }
예제 #4
0
        void AppendProperty(TreeIter piter, PropertyDescriptor prop, InstanceData idata)
        {
            TreeIter iter;

            if (piter.Equals(TreeIter.Zero))
            {
                iter = store.AppendValues(prop.Label, prop, false, idata);
            }
            else
            {
                iter = store.AppendValues(piter, prop.Label, prop, false, idata);
            }
            if (prop.HasDependencies)
            {
                sensitives[prop] = prop;
            }
            if (prop.HasVisibility)
            {
                invisibles[prop] = prop;
            }
            propertyRows [prop] = store.GetStringFromIter(iter);
        }
예제 #5
0
파일: PropertyTree.cs 프로젝트: mono/stetic
        public void AddGroup(ItemGroup igroup, object instance, string targetGtkVersion)
        {
            ArrayList props = new ArrayList ();
            foreach (ItemDescriptor item in igroup) {
                if (item.IsInternal)
                    continue;
                if (item is PropertyDescriptor && item.SupportsGtkVersion (targetGtkVersion))
                    props.Add (item);
            }

            if (props.Count == 0)
                return;

            InstanceData idata = new InstanceData (instance);
            TreeIter iter = store.AppendValues (igroup.Label, null, true, idata);
            foreach (PropertyDescriptor item in props)
                AppendProperty (iter, (PropertyDescriptor)item, idata);
        }
예제 #6
0
파일: PropertyTree.cs 프로젝트: mono/stetic
 void AppendProperty(TreeIter piter, PropertyDescriptor prop, InstanceData idata)
 {
     TreeIter iter;
     if (piter.Equals (TreeIter.Zero))
         iter = store.AppendValues (prop.Label, prop, false, idata);
     else
         iter = store.AppendValues (piter, prop.Label, prop, false, idata);
     if (prop.HasDependencies)
         sensitives[prop] = prop;
     if (prop.HasVisibility)
         invisibles[prop] = prop;
     propertyRows [prop] = store.GetStringFromIter (iter);
 }