Adroit.Gui.PlanningView.BuildTaskColumns C# (CSharp) Method

BuildTaskColumns() private method

private BuildTaskColumns ( ) : void
return void
        void BuildTaskColumns()
        {
            var completed_column = new TreeViewColumn ();
            completed_column.Widget = new Gtk.Image (Stock.Apply, IconSize.Menu);
            completed_column.Widget.Show ();
            var ctoggle = new Gtk.CellRendererToggle ();
            ctoggle.Xalign = 0.5f;
            ctoggle.Activatable = true;
            ctoggle.Toggled += HandleTaskCompletedToggled;
            completed_column.PackStart (ctoggle, false);
            completed_column.SetCellDataFunc (ctoggle, (TreeCellDataFunc)TaskCompletedCellDataFunc);

            var flag_column = new TreeViewColumn ();
            flag_column.Widget = new Gtk.Image (System.Reflection.Assembly.GetExecutingAssembly (), "Resources.flag-green.png");
            flag_column.Widget.Show ();
            var cflag = new CellRendererFlag ();
            cflag.Mode = CellRendererMode.Editable;
            cflag.Changed += delegate (object o, FlagArgs e) {
                var path = new Gtk.TreePath (e.Path);
                FlagSelectedTask (path);
            };
            flag_column.PackStart (cflag, true);
            flag_column.SetCellDataFunc (cflag, (TreeCellDataFunc)TaskFlagCellDataFunc);

            var attach_column = new TreeViewColumn ();
            var attach_pixbuf = GetResourcePixbuf ("Resources.attachment-16.png");
            attach_column.Widget = new Gtk.Image (attach_pixbuf);
            attach_column.Widget.Show ();
            var attach_cpix = new CellRendererPixbuf ();
            attach_column.PackStart (attach_cpix, true);
            attach_column.Alignment = 0.5f;
            attach_column.SetCellDataFunc (attach_cpix, (TreeCellDataFunc)TaskAttachCellDataFunc);

            task_title_column = new TreeViewColumn ();
            task_title_column.Title = Catalog.GetString ("Title");
            task_title_column.Expand = true;

            var ctext = new CellRendererText ();
            ctext.Ellipsize = Pango.EllipsizeMode.End;
            ctext.Editable = true;
            ctext.Edited += OnTaskTitleEdited;
            ctext.EditingStarted += delegate {
                this.OnEditingStarted (ctext);
            };
            ctext.EditingCanceled += delegate {
                this.OnEditingStopped ();
            };
            task_title_column.PackStart (ctext, true);
            task_title_column.SetCellDataFunc (ctext, (TreeCellDataFunc)TaskTitleCellDataFunc);

            var next_action_column = new TreeViewColumn ();
            next_action_column.Title = Catalog.GetString ("Next Action");

            ctext = new CellRendererText ();
            ctext.Ellipsize = Pango.EllipsizeMode.End;
            ctext.Editable = true;
            ctext.Edited += OnTaskNextActionEdited;
            ctext.EditingStarted += delegate {
                this.OnEditingStarted (ctext);
            };
            ctext.EditingCanceled += delegate {
                this.OnEditingStopped ();
            };
            next_action_column.PackStart (ctext, true);
            next_action_column.SetCellDataFunc (ctext, (TreeCellDataFunc)TaskNextActionCellDataFunc);

            m_tasksTreeView.AppendColumn (completed_column);
            m_tasksTreeView.AppendColumn (flag_column);
            m_tasksTreeView.AppendColumn (attach_column);
            m_tasksTreeView.AppendColumn (task_title_column);
            m_tasksTreeView.AppendColumn (next_action_column);

            var targetEntries = new TargetEntry[] {
                new TargetEntry ("application/adroit-task", TargetFlags.App, 0),
            };

            this.m_tasksTreeView.EnableModelDragSource (Gdk.ModifierType.Button1Mask, targetEntries, Gdk.DragAction.Default | Gdk.DragAction.Move);
            this.m_tasksTreeView.DragDataGet += delegate(object o, DragDataGetArgs args) {
                TreeIter iter;
                TreeModel model;
                m_tasksTreeView.Selection.GetSelected (out model, out iter);
                var task = (Task)model.GetValue (iter, 0);
                args.SelectionData.Set (null, 0, BitConverter.GetBytes (task.Id));
            };
        }