Esempio n. 1
0
        public void GetSelectedComponents(ref List <ComponentFactoryInformation> components, ref List <Component> instances)
        {
            components.Clear();
            instances.Clear();

            // cannot operate on "instances" or "components" directly due to the lambda expression below (won't compile)
            List <ComponentFactoryInformation> components_ = new List <ComponentFactoryInformation>();
            List <Component> instances_ = new List <Component>();

            m_TreeStore.Foreach((TreeModel model, TreePath path, TreeIter iter) =>
            {
                UIComponentDescriptor item = model.GetValue(iter, 0) as UIComponentDescriptor;
                if (item != null)
                {
                    if (item.Selected)
                    {
                        if (item.Instance == null)
                        {
                            components_.Add(item.ComponentFactoryInformation);
                        }
                        else
                        {
                            instances_.Add(item.Instance);
                        }
                    }
                }
                return(false);
            });

            // cannot operate on "instances" or "components" directly due to the lambda expression below (won't compile)
            components = components_;
            instances  = instances_;
        }
        private void BuildTree()
        {
            // Setup thumbnail column
            {
                CellRendererPixbuf renderer = new CellRendererPixbuf();
                TreeViewColumn     column   = new TreeViewColumn("", renderer);
                column.SetCellDataFunc(renderer, (TreeViewColumn _column, CellRenderer _cell, TreeModel _model, TreeIter _iter) =>
                {
                    UIComponentDescriptor c = _model.GetValue(_iter, 0) as UIComponentDescriptor;
                    //(_cell as Gtk.CellRendererPixbuf).Pixbuf = _model.GetValue( _iter, 1) as Gdk.Pixbuf;
                });
                m_View.AppendColumn(column);
            }

            // Setup name column
            {
                CellRendererText renderer = new CellRendererText();
                TreeViewColumn   column   = new TreeViewColumn("Name", renderer);

                // set data in cell
                column.SetCellDataFunc(renderer, (TreeViewColumn _column, CellRenderer _cell, TreeModel _model, TreeIter _iter) =>
                {
                    UIComponentDescriptor c = _model.GetValue(_iter, 0) as UIComponentDescriptor;
                    //(_cell as Gtk.CellRendererText).Text = c.Component.
                });
                m_View.AppendColumn(column);
            }

            // setup checkbox column
            {
                CellRendererToggle renderer = new CellRendererToggle();
                TreeViewColumn     column   = new TreeViewColumn("", renderer);
                column.SetCellDataFunc(renderer, (TreeViewColumn _column, CellRenderer _cell, TreeModel _model, TreeIter _iter) =>
                {
                });
                m_View.AppendColumn(column);
            }
        }