private void SetupTree()
            {
                tree = new TreeView ();
                this.store = new ListStore (typeof (object));
                tree.Model = store;

                TreeViewColumn col = new TreeViewColumn ();
                col.Sizing = TreeViewColumnSizing.Fixed;
                col.Spacing = 4;

                CellRendererText text_renderer =
                    new CellRendererText ();
                text_renderer.WrapMode = Pango.WrapMode.Word;
                col.PackStart (text_renderer, true);
                col.SetCellDataFunc (text_renderer,
                             new
                             TreeCellDataFunc
                             (PluginInfoCellDataFunc));

                CellRendererToggle loaded_renderer =
                    new CellRendererToggle ();
                loaded_renderer.Activatable = false;
                col.PackStart (loaded_renderer, false);
                col.SetCellDataFunc (loaded_renderer,
                             new
                             TreeCellDataFunc
                             (LoadedStatusCellDataFunc));

                col.Title = Catalog.GetString("Plugins Details");
                tree.AppendColumn (col);
            }
Exemplo n.º 2
0
        public CompleteWithTimerColumn()
        {
            TreeViewColumn = new TreeViewColumn {
                Title = Catalog.GetString ("Completed"),
                Sizing = TreeViewColumnSizing.Autosize,
                Resizable = false,
                Clickable = true
            };

            var renderer = new CellRendererToggle ();
            renderer.Toggled += OnTaskToggled;
            TreeViewColumn.PackStart (renderer, false);
            TreeViewColumn.SetCellDataFunc (renderer, TaskToggleCellDataFunc);
        }
Exemplo n.º 3
0
        public TimerColumn()
        {
            timeoutTargets = new ConcurrentDictionary<ITask, TaskCompleteTimer> ();

            TreeViewColumn = new TreeViewColumn {
                Title = Catalog.GetString ("Timer"),
                Sizing = TreeViewColumnSizing.Fixed,
                FixedWidth = 20,
                Resizable = false
            };

            var renderer = new CellRendererPixbuf {	Xalign = 0.5f };
            TreeViewColumn.PackStart (renderer, false);
            TreeViewColumn.SetCellDataFunc (renderer, TaskTimerCellDataFunc);
        }
        /// <summary>
        /// Required designer variable.
        /// </summary>
        //private System.ComponentModel.IContainer components = null;

        /*
         * /// <summary>
         * /// Clean up any resources being used.
         * /// </summary>
         * /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
         * protected override void Dispose(bool disposing)
         * {
         *      if (disposing && (components != null))
         *      {
         *              components.Dispose();
         *      }
         *      base.Dispose();
         * }
         */
        #region Windows Form Designer generated code

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LoginWindow));

            this.checkBox2 = new Gtk.CheckButton();
            this.checkBox1 = new Gtk.CheckButton();

            this.cancelButton = new Gtk.Button();
            this.loginButton  = new Gtk.Button();


            //
            // checkBox2
            //
            this.checkBox2.Active = true;
            this.checkBox2.Name   = "checkBox2";
            this.checkBox2.Label  = "Graphical Menu";
            this.checkBox2.Xalign = 0;

            //
            // checkBox1
            //
            this.checkBox1.Active = false;
            this.checkBox1.Name   = "checkBox1";
            this.checkBox1.Label  = "Don\'t save password";
            this.checkBox1.Xalign = 0;

            /*
             * //
             * // nickname_label
             * //
             * this.nickname_label.Name = "nickname_label";
             * this.nickname_label.Xalign = 0;
             * this.nickname_label.SetSizeRequest(73, 23);
             * this.nickname_label.Text = "Nickname:";
             *
             * //
             * // nickname
             * //
             * this.nickname.Name = "nickname";
             * this.nickname.Text = "Guest";
             */

            //
            // button1
            //
            this.cancelButton.SetSizeRequest(80, 25);
            this.cancelButton.Label    = "Cancel";
            this.cancelButton.Clicked += new System.EventHandler(this.Close);

            //
            // refreshButton
            //
            this.refreshButton      = new Gtk.Button();
            this.refreshButton.Name = "refreshButton";
            this.refreshButton.SetSizeRequest(80, 25);
            this.refreshButton.Label    = "Refresh";
            this.refreshButton.Clicked += new System.EventHandler(this.refreshButton_Click);

            //
            // LoginButton
            //
            this.loginButton.Name = "LoginButton";
            this.loginButton.SetSizeRequest(80, 25);
            this.loginButton.Label    = "Connect";
            this.loginButton.Clicked += new System.EventHandler(this.loginButton_Click);

            /*
             * //
             * // port
             * //
             * this.port.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(155)))), ((int)(((byte)(123)))), ((int)(((byte)(76)))));
             * this.port.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
             * this.port.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(213)))), ((int)(((byte)(184)))), ((int)(((byte)(142)))));
             * this.port.Location = new System.Drawing.Point(215, 101);
             * this.port.Margin = new System.Windows.Forms.Padding(0);
             * this.port.MaximumSize = new System.Drawing.Size(50, 25);
             * this.port.Name = "port";
             * this.port.Size = new System.Drawing.Size(50, 21);
             * this.port.TabIndex = 9;
             * this.port.Text = "14922";
             * this.port.TextChanged += new System.EventHandler(this.port_TextChanged);
             * //
             * // port_label
             * //
             * this.port_label.AutoSize = true;
             * this.port_label.BackColor = System.Drawing.Color.Transparent;
             * this.port_label.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(76)))), ((int)(((byte)(52)))), ((int)(((byte)(16)))));
             * this.port_label.Location = new System.Drawing.Point(183, 101);
             * this.port_label.Name = "port_label";
             * this.port_label.Size = new System.Drawing.Size(29, 15);
             * this.port_label.TabIndex = 8;
             * this.port_label.Text = "Port";
             * //
             * // server
             * //
             * this.server.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(155)))), ((int)(((byte)(123)))), ((int)(((byte)(76)))));
             * this.server.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
             * this.server.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(213)))), ((int)(((byte)(184)))), ((int)(((byte)(142)))));
             * this.server.Location = new System.Drawing.Point(27, 119);
             * this.server.Name = "server";
             * this.server.Size = new System.Drawing.Size(170, 21);
             * this.server.TabIndex = 7;
             * this.server.Text = "listserver.graalonline.com";
             * //
             * // server_label
             * //
             * this.server_label.AutoSize = true;
             * this.server_label.BackColor = System.Drawing.Color.Transparent;
             * this.server_label.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(76)))), ((int)(((byte)(52)))), ((int)(((byte)(16)))));
             * this.server_label.Location = new System.Drawing.Point(36, 94);
             * this.server_label.Name = "server_label";
             * this.server_label.Size = new System.Drawing.Size(42, 15);
             * this.server_label.TabIndex = 6;
             * this.server_label.Text = "Server";
             * this.server_label.Click += new System.EventHandler(this.server_label_Click);
             *
             */

            //
            // ServerWindow
            //
            Table table  = new Table(2, 1, false);
            Table table2 = new Table(1, 2, false);

            table2.RowSpacing = 1;
            Label spacer = new Label();

            spacer.SetSizeRequest(10, 1);
            table2.Attach(spacer, 0, 1, 0, 1, AttachOptions.Fill, AttachOptions.Fill, 5, 1);

            //table2.Attach(this.nickname_label, 0, 1, 1, 2, AttachOptions.Fill, AttachOptions.Fill, 5, 1);
            this.logText = new Gtk.Entry();
            this.logText.SetSizeRequest(230, 230);
            this.tree = new Gtk.NodeView();

            this.tree.SetSizeRequest(230, 230);

            this.musicListStore = new Gtk.ListStore(typeof(Gdk.Pixbuf), typeof(string), typeof(int));
            //this.tree.Selection.Changed += new System.EventHandler(OnSelectionChanged);

            this.tree.CursorChanged    += new System.EventHandler(OnSelectionChanged);
            this.tree.ButtonPressEvent += new ButtonPressEventHandler(delegate(object o, ButtonPressEventArgs args)
            {
                System.Console.WriteLine(args.ToString());
            });
            Gtk.CellRendererPixbuf pixbufrender = new Gtk.CellRendererPixbuf();
            TreeViewColumn         TypeCol      = this.tree.AppendColumn("", new Gtk.CellRendererPixbuf(), "pixbuf", 0);

            TypeCol.SortIndicator = true;
            TypeCol.SortColumnId  = 0;
            Gtk.CellRendererPixbuf cellpb = new Gtk.CellRendererPixbuf();
            Gtk.CellRendererText   cell   = new Gtk.CellRendererText();
            TypeCol.PackStart(cellpb, false);
            TypeCol.PackStart(cell, false);

            TreeViewColumn NameCol = this.tree.AppendColumn("Name", new Gtk.CellRendererText(), "text", 1);

            NameCol.SortIndicator = true;
            NameCol.SortColumnId  = 1;
            TreeViewColumn PCCol = this.tree.AppendColumn("Players", new Gtk.CellRendererText(), "text", 2);

            PCCol.SortIndicator = true;
            PCCol.SortColumnId  = 2;

            this.tree.FixedHeightMode  = false;
            this.tree.HeadersClickable = true;
            this.tree.SearchColumn     = 1;
            this.tree.EnableSearch     = true;
            this.tree.EnableTreeLines  = true;
            this.tree.ShowExpanders    = true;
            //this.tree.Vadjustment.
            musicListStore.AppendValues("", "Loading...", "");

            Gtk.Frame frame2 = new Gtk.Frame();
            this.tree.Model = musicListStore;

            this.GtkScrolledWindow            = new global::Gtk.ScrolledWindow();
            this.GtkScrolledWindow.Name       = "GtkScrolledWindow";
            this.GtkScrolledWindow.ShadowType = ((global::Gtk.ShadowType)(1));

            // Container child GtkScrolledWindow.Gtk.Container+ContainerChild

            this.GtkScrolledWindow.Add(this.tree);
            frame2.Add(this.GtkScrolledWindow);
            table2.Attach(this.logText, 1, 2, 0, 1, AttachOptions.Fill | AttachOptions.Expand, AttachOptions.Fill | AttachOptions.Expand, 5, 1);
            table2.Attach(frame2, 0, 1, 0, 1, AttachOptions.Fill, AttachOptions.Fill, 5, 1);


            HBox hbox = new HBox(true, 5);

            table.BorderWidth = 0;
            table.SetSizeRequest(100, 100);
            Frame frame = new Frame();

            frame.Label = " Servers ";
            //frame.Add(new Label());
            frame.Add(table2);
            table.Attach(frame, 0, 1, 0, 1, AttachOptions.Fill | AttachOptions.Expand, AttachOptions.Fill | AttachOptions.Expand, 5, 5);

            hbox.Add(this.cancelButton);
            hbox.Add(this.refreshButton);
            hbox.Add(this.loginButton);

            Alignment halign = new Alignment(1, 0, 0, 0);

            halign.Add(hbox);
            table.Attach(halign, 0, 1, 1, 2, AttachOptions.Fill, AttachOptions.Fill, 5, 5);
            this.Add(table);

            this.SetSizeRequest(520, 350);

            this.DoubleBuffered = true;

            this.Icon = global::Gdk.Pixbuf.LoadFromResource("OpenGraal.GraalIM.Resources.rcicon.ico");

            this.Name = "ServerWindow";
            this.SetPosition(Gtk.WindowPosition.Center);
            this.Title        = "Graal Servers";
            this.DeleteEvent += ServerWindow_Closed;
            this.Hidden      += ServerWindow_hide;
        }
        public OverridesImplementsDialog(MonoDevelop.Ide.Gui.Document editor, IType cls)
        {
            this.Build();
            this.editor = editor;
            this.cls    = cls;

            // FIXME: title
            Title = GettextCatalog.GetString("Override and/or implement members");

            store = new TreeStore(typeof(bool), typeof(Gdk.Pixbuf), typeof(string), typeof(bool), typeof(IMember));

            // Column #1
            TreeViewColumn nameCol = new TreeViewColumn();

            nameCol.Title     = GettextCatalog.GetString("Name");
            nameCol.Expand    = true;
            nameCol.Resizable = true;

            CellRendererToggle cbRenderer = new CellRendererToggle();

            cbRenderer.Activatable = true;
            cbRenderer.Toggled    += OnSelectToggled;
            nameCol.PackStart(cbRenderer, false);
            nameCol.AddAttribute(cbRenderer, "active", colCheckedIndex);

            CellRendererPixbuf iconRenderer = new CellRendererPixbuf();

            nameCol.PackStart(iconRenderer, false);
            nameCol.AddAttribute(iconRenderer, "pixbuf", colIconIndex);

            CellRendererText nameRenderer = new CellRendererText();

            nameRenderer.Ellipsize = Pango.EllipsizeMode.End;
            nameCol.PackStart(nameRenderer, true);
            nameCol.AddAttribute(nameRenderer, "text", colNameIndex);

            treeview.AppendColumn(nameCol);

            // Column #2
            CellRendererToggle explicitRenderer = new CellRendererToggle();

            explicitRenderer.Activatable = true;
            explicitRenderer.Xalign      = 0.0f;
            explicitRenderer.Toggled    += OnExplicitToggled;
            TreeViewColumn explicitCol = new TreeViewColumn();

            explicitCol.Title = GettextCatalog.GetString("Explicit");
            explicitCol.PackStart(explicitRenderer, true);
            explicitCol.SetCellDataFunc(explicitRenderer, new TreeCellDataFunc(RenderExplicitCheckbox));
            explicitCol.AddAttribute(explicitRenderer, "active", colExplicitIndex);
            treeview.AppendColumn(explicitCol);

            store.SetSortColumnId(colNameIndex, SortType.Ascending);
            treeview.Model = store;

            buttonCancel.Clicked    += OnCancelClicked;
            buttonOk.Clicked        += OnOKClicked;
            buttonSelectAll.Clicked += delegate
            {
                SelectAll(true);
            };
            buttonUnselectAll.Clicked += delegate
            {
                SelectAll(false);
            };

            refactorer = IdeApp.Workspace.GetCodeRefactorer(IdeApp.ProjectOperations.CurrentSelectedSolution);
            ambience   = AmbienceService.GetAmbienceForFile(cls.GetDefinition().Region.FileName);
            PopulateTreeView();
            UpdateOKButton();
        }
Exemplo n.º 6
0
        public DueDateColumn()
        {
            TreeViewColumn = new TreeViewColumn {
                Title      = Catalog.GetString("Due Date"),
                Sizing     = TreeViewColumnSizing.Fixed,
                Alignment  = 0f,
                FixedWidth = 90,
                Resizable  = false,
                Clickable  = true
            };

            var dueDateStore = new ListStore(typeof(string));
            var today        = DateTime.Now;

            dueDateStore.AppendValues(
                today.ToString(Catalog.GetString("M/d - ")) + Catalog.GetString("Today"));
            dueDateStore.AppendValues(
                today.AddDays(1).ToString(Catalog.GetString("M/d - ")) + Catalog.GetString("Tomorrow"));
            dueDateStore.AppendValues(
                today.AddDays(2).ToString(Catalog.GetString("M/d - ddd")));
            dueDateStore.AppendValues(
                today.AddDays(3).ToString(Catalog.GetString("M/d - ddd")));
            dueDateStore.AppendValues(
                today.AddDays(4).ToString(Catalog.GetString("M/d - ddd")));
            dueDateStore.AppendValues(
                today.AddDays(5).ToString(Catalog.GetString("M/d - ddd")));
            dueDateStore.AppendValues(
                today.AddDays(6).ToString(Catalog.GetString("M/d - ddd")));
            dueDateStore.AppendValues(
                today.AddDays(7).ToString(Catalog.GetString("M/d - ")) + Catalog.GetString("In 1 Week"));
            dueDateStore.AppendValues(Catalog.GetString("No Date"));
            dueDateStore.AppendValues(Catalog.GetString("Choose Date..."));

            var renderer = new CellRendererCombo {
                Editable   = true,
                HasEntry   = false,
                Model      = dueDateStore,
                TextColumn = 0,
                Xalign     = 0.0f
            };

            renderer.EditingStarted += (o, args) => {
                TreeIter iter;
                var      path = new TreePath(args.Path);
                if (!model.GetIter(out iter, path))
                {
                    return;
                }

                var task = model.GetValue(iter, 0) as ITask;
                if (task == null)
                {
                    return;
                }

                taskBeingEdited = new TaskBeingEdited(task, iter, path);
                if (CellEditingStarted != null)
                {
                    CellEditingStarted(this, new TaskRowEditingEventArgs(task, iter, path));
                }
            };

            renderer.EditingCanceled += delegate { EndCellEditing(); };

            renderer.Edited += (o, args) => {
                TreeIter iter;
                var      path    = new TreePath(args.Path);
                var      newText = args.NewText;
                if (newText != null && model.GetIter(out iter, path))
                {
                    //  2/11 - Today
                    //  2/12 - Tomorrow
                    //  2/13 - Wed
                    //  2/14 - Thu
                    //  2/15 - Fri
                    //  2/16 - Sat
                    //  2/17 - Sun
                    // --------------
                    //  2/18 - In 1 Week
                    // --------------
                    //  No Date
                    // ---------------
                    //  Choose Date...

                    var newDate = DateTime.MinValue;
                    var tday    = DateTime.Now;
                    var task    = model.GetValue(iter, 0) as ITask;

                    if (newText == tday.ToString(Catalog.GetString("M/d - ")) + Catalog.GetString("Today"))
                    {
                        newDate = tday;
                    }
                    else if (newText == tday.AddDays(1).ToString(Catalog.GetString("M/d - "))
                             + Catalog.GetString("Tomorrow"))
                    {
                        newDate = tday.AddDays(1);
                    }
                    else if (newText == Catalog.GetString("No Date"))
                    {
                        newDate = DateTime.MinValue;
                    }
                    else if (newText == tday.AddDays(7).ToString(Catalog.GetString("M/d - "))
                             + Catalog.GetString("In 1 Week"))
                    {
                        newDate = tday.AddDays(7);
                    }
                    else if (newText == Catalog.GetString("Choose Date..."))
                    {
                        var tc = new TaskCalendar(task, view.TreeView.Parent);
                        tc.ShowCalendar();
                        return;
                    }
                    else
                    {
                        for (int i = 2; i <= 6; i++)
                        {
                            DateTime testDate = tday.AddDays(i);
                            if (testDate.ToString(Catalog.GetString("M/d - ddd")) == newText)
                            {
                                newDate = testDate;
                                break;
                            }
                        }
                    }

                    Logger.Debug("task.State {0}", task.State);

                    if (task.State != TaskState.Completed)
                    {
                        // Modify the due date
                        task.DueDate = newDate;
                    }
                }
                EndCellEditing();
            };

            TreeViewColumn.PackStart(renderer, true);
            TreeViewColumn.SetCellDataFunc(renderer, DueDateCellDataFunc);
        }
Exemplo n.º 7
0
        public CommitDialog(ChangeSet changeSet)
        {
            Build();

            store                 = new ListStore(typeof(Xwt.Drawing.Image), typeof(string), typeof(string), typeof(bool), typeof(object));
            fileList.Model        = store;
            fileList.SearchColumn = -1;             // disable the interactive search
            this.changeSet        = changeSet;
            oldMessage            = changeSet.GlobalComment;

            CellRendererText crt     = new CellRendererText();
            var            crp       = new CellRendererImage();
            TreeViewColumn colStatus = new TreeViewColumn();

            colStatus.Title = GettextCatalog.GetString("Status");
            colStatus.PackStart(crp, false);
            colStatus.PackStart(crt, true);
            colStatus.Spacing = 2;
            colStatus.AddAttribute(crp, "image", 0);
            colStatus.AddAttribute(crt, "text", 1);
            CellRendererToggle cellToggle = new CellRendererToggle();

            cellToggle.Toggled += new ToggledHandler(OnCommitToggledHandler);
            TreeViewColumn colCommit = new TreeViewColumn("", cellToggle, "active", 3);
            TreeViewColumn colFile   = new TreeViewColumn(GettextCatalog.GetString("File"), new CellRendererText(), "text", 2);

            fileList.AppendColumn(colCommit);
            fileList.AppendColumn(colStatus);
            fileList.AppendColumn(colFile);

            colCommit.Visible = false;

            object[] exts = AddinManager.GetExtensionObjects("/MonoDevelop/VersionControl/CommitDialogExtensions", false);
            bool     separatorRequired = false;

            foreach (object ob in exts)
            {
                CommitDialogExtension ext = ob as CommitDialogExtension;
                if (ext == null)
                {
                    LoggingService.LogError("Commit extension type " + ob.GetType() + " must be a subclass of CommitDialogExtension");
                    continue;
                }
                if (ext.Initialize(changeSet))
                {
                    var newTitle = ext.FormatDialogTitle(changeSet, Title);
                    if (newTitle != null)
                    {
                        Title = newTitle;
                    }

                    ext.CommitMessageTextViewHook(textview);
                    if (separatorRequired)
                    {
                        HSeparator sep = new HSeparator();
                        sep.Show();
                        vboxExtensions.PackEnd(sep, false, false, 0);
                    }
                    vboxExtensions.PackEnd(ext, false, false, 0);
                    extensions.Add(ext);
                    ext.AllowCommitChanged += HandleAllowCommitChanged;
                    separatorRequired       = true;
                }
                else
                {
                    ext.Destroy();
                }
            }
            HandleAllowCommitChanged(null, null);

            foreach (ChangeSetItem info in changeSet.Items)
            {
                Xwt.Drawing.Image statusicon = VersionControlService.LoadIconForStatus(info.Status);
                string            lstatus    = VersionControlService.GetStatusLabel(info.Status);
                string            localpath;

                if (info.IsDirectory)
                {
                    localpath = (!info.LocalPath.IsChildPathOf(changeSet.BaseLocalPath)?
                                 ".":
                                 (string)info.LocalPath.ToRelative(changeSet.BaseLocalPath));
                }
                else
                {
                    localpath = System.IO.Path.GetFileName((string)info.LocalPath);
                }

                if (localpath.Length > 0 && localpath[0] == System.IO.Path.DirectorySeparatorChar)
                {
                    localpath = localpath.Substring(1);
                }
                if (localpath == "")
                {
                    localpath = ".";
                }                                                         // not sure if this happens

                store.AppendValues(statusicon, lstatus, localpath, true, info);
                selected.Add(info.LocalPath);
            }

            if (string.IsNullOrEmpty(changeSet.GlobalComment))
            {
                AuthorInformation   aInfo;
                CommitMessageFormat fmt = VersionControlService.GetCommitMessageFormat(changeSet, out aInfo);
                Message = changeSet.GenerateGlobalComment(fmt, aInfo);
            }
            else
            {
                Message = changeSet.GlobalComment;
            }

            textview.Buffer.Changed += OnTextChanged;
            responseSensitive        = !string.IsNullOrEmpty(Message);

            // Focus the text view and move the insert point to the beginning. Makes it easier to insert
            // a comment header.
            textview.Buffer.MoveMark(textview.Buffer.InsertMark, textview.Buffer.StartIter);
            textview.Buffer.MoveMark(textview.Buffer.SelectionBound, textview.Buffer.StartIter);
            textview.GrabFocus();
            textview.Buffer.MarkSet += OnMarkSet;

            SetResponseSensitive(ResponseType.Ok, responseSensitive);
        }
Exemplo n.º 8
0
        public int Run()
        {
            dialog.AddActionWidget(new Button(Stock.Cancel), ResponseType.Cancel);
            dialog.AddActionWidget(new Button(Stock.Ok), ResponseType.Ok);

            TreeView tree = new Gtk.TreeView();

            tree.RulesHint = true;
            ScrolledWindow w = new ScrolledWindow();

            w.Add(tree);
            dialog.VBox.Add(w);

            CellRendererText nameCell = new CellRendererText();

            CellRendererText initialCountCell = new CellRendererText();

            initialCountCell.Editable   = true;
            initialCountCell.WidthChars = 4;
            initialCountCell.Xalign     = 1;
            initialCountCell.Edited    += BuildCountEdited(1);

            CellRendererText minimumCountCell = new CellRendererText();

            minimumCountCell.Editable   = true;
            minimumCountCell.WidthChars = 4;
            minimumCountCell.Xalign     = 1;
            minimumCountCell.Edited    += BuildCountEdited(2);

            CellRendererText maximumCountCell = new CellRendererText();

            maximumCountCell.Editable   = true;
            maximumCountCell.WidthChars = 4;
            maximumCountCell.Xalign     = 1;
            maximumCountCell.Edited    += BuildCountEdited(3);

            TreeViewColumn randomCountColumn = new TreeViewColumn();

            randomCountColumn.Title = "Total\nAvailable";
            CellRendererText randomCountCell = new CellRendererText();

            randomCountCell.Editable   = true;
            randomCountCell.WidthChars = 4;
            randomCountCell.Xalign     = 1;
            randomCountColumn.PackStart(randomCountCell, true);
            randomCountColumn.SetCellDataFunc(randomCountCell, (TreeCellDataFunc)RandomCountData);
            randomCountCell.Edited += RandomCountEdited;

            CellRendererText appearanceCell = new CellRendererText();

            appearanceCell.Editable   = true;
            appearanceCell.WidthChars = 3;
            appearanceCell.Xalign     = 1;
            appearanceCell.Edited    += AppearanceEdited;

            TreeViewColumn infiniteAvailableColumn = new TreeViewColumn();

            infiniteAvailableColumn.Title = "Infinite\nAvailable";
            CellRendererToggle infiniteAvailableCell = new CellRendererToggle();

            infiniteAvailableCell.Activatable = true;
            infiniteAvailableColumn.PackStart(infiniteAvailableCell, true);
            infiniteAvailableColumn.SetCellDataFunc(infiniteAvailableCell, (TreeCellDataFunc)InfiniteAvailableData);
            infiniteAvailableCell.Toggled += InfiniteAvailableToggled;

            CellRendererToggle randomLocationCell = new CellRendererToggle();

            randomLocationCell.Activatable = true;
            randomLocationCell.Toggled    += RandomLocationToggled;

            tree.AppendColumn("Name", nameCell, "text", 0);
            tree.Columns[0].Expand = true;
            tree.AppendColumn("Initial\nCount", initialCountCell, "text", 1);
            tree.AppendColumn("Min\nCount", minimumCountCell, "text", 2);
            tree.AppendColumn("Max\nCount", maximumCountCell, "text", 3);
            tree.AppendColumn(randomCountColumn);
            tree.AppendColumn(infiniteAvailableColumn);
            tree.AppendColumn("Appearance (%)", appearanceCell, "text", 5);
            tree.AppendColumn("Random\nLocation", randomLocationCell, "active", 6);

            store      = new ListStore(typeof(string), typeof(int), typeof(int), typeof(int), typeof(int), typeof(int), typeof(bool));
            tree.Model = store;

            for (int i = 1; i < names.Length; ++i)
            {
                store.AppendValues(names[i], (int)placements[i].InitialCount, (int)placements[i].MinimumCount, (int)placements[i].MaximumCount, (int)placements[i].RandomCount, placements[i].RandomPercent, placements[i].RandomLocation);
            }

            dialog.ShowAll();
            int result = dialog.Run();

            if (result == (int)ResponseType.Ok)
            {
                int i = 1;
                foreach (object[] row in store)
                {
                    placements[i].InitialCount   = (short)(int)row[1];
                    placements[i].MinimumCount   = (short)(int)row[2];
                    placements[i].MaximumCount   = (short)(int)row[3];
                    placements[i].RandomCount    = (short)(int)row[4];
                    placements[i].RandomPercent  = (int)row[5];
                    placements[i].RandomLocation = (bool)row[6];
                    ++i;
                }
            }
            dialog.Destroy();
            return(result);
        }
Exemplo n.º 9
0
        private void ShowAdd2Page()
        {
            CmisTreeStore cmisStore = new CmisTreeStore();

            Gtk.TreeView treeView = new Gtk.TreeView(cmisStore.CmisStore);

            bool firstRepo = true;
            List <RootFolder> repositories = new List <RootFolder>();
            Dictionary <string, AsyncNodeLoader> loader = new Dictionary <string, AsyncNodeLoader> ();

            foreach (KeyValuePair <String, String> repository in Controller.repositories)
            {
                RootFolder root = new RootFolder()
                {
                    Name    = repository.Value,
                    Id      = repository.Key,
                    Address = Controller.saved_address.ToString()
                };
                if (firstRepo)
                {
                    root.Selected = true;
                    firstRepo     = false;
                }
                else
                {
                    root.Selected = false;
                }
                repositories.Add(root);
                CmisRepoCredentials cred = new CmisRepoCredentials()
                {
                    UserName = Controller.saved_user,
                    Password = Controller.saved_password,
                    Address  = Controller.saved_address,
                    RepoId   = repository.Key
                };
                AsyncNodeLoader asyncLoader = new AsyncNodeLoader(root, cred, PredefinedNodeLoader.LoadSubFolderDelegate, PredefinedNodeLoader.CheckSubFolderDelegate);
                asyncLoader.UpdateNodeEvent += delegate {
                    cmisStore.UpdateCmisTree(root);
                };
                cmisStore.UpdateCmisTree(root);
                asyncLoader.Load(root);
                loader.Add(root.Id, asyncLoader);
            }

            Header = CmisSync.Properties_Resources.Which;

            VBox layout_vertical = new VBox(false, 12);

            Button cancel_button = new Button(cancelText);

            cancel_button.Clicked += delegate {
                foreach (AsyncNodeLoader task in loader.Values)
                {
                    task.Cancel();
                }
                Controller.PageCancelled();
            };

            Button continue_button = new Button(continueText)
            {
                Sensitive = (repositories.Count > 0)
            };

            continue_button.Clicked += delegate {
                RootFolder root = repositories.Find(x => (x.Selected != false));
                if (root != null)
                {
                    foreach (AsyncNodeLoader task in loader.Values)
                    {
                        task.Cancel();
                    }
                    Controller.saved_repository = root.Id;
                    List <string> ignored  = NodeModelUtils.GetIgnoredFolder(root);
                    List <string> selected = NodeModelUtils.GetSelectedFolder(root);
                    Controller.Add2PageCompleted(root.Id, root.Path, ignored.ToArray(), selected.ToArray());
                }
            };

            Button back_button = new Button(backText)
            {
                Sensitive = true
            };

            back_button.Clicked += delegate {
                foreach (AsyncNodeLoader task in loader.Values)
                {
                    task.Cancel();
                }
                Controller.BackToPage1();
            };

            Gtk.TreeIter iter;
            treeView.HeadersVisible = false;
            treeView.Selection.Mode = SelectionMode.Single;

            TreeViewColumn column = new TreeViewColumn();

            column.Title = "Name";
            CellRendererToggle renderToggle = new CellRendererToggle();

            column.PackStart(renderToggle, false);
            renderToggle.Activatable = true;
            column.AddAttribute(renderToggle, "active", (int)CmisTreeStore.Column.ColumnSelected);
            column.AddAttribute(renderToggle, "inconsistent", (int)CmisTreeStore.Column.ColumnSelectedThreeState);
            column.AddAttribute(renderToggle, "radio", (int)CmisTreeStore.Column.ColumnRoot);
            renderToggle.Toggled += delegate(object render, ToggledArgs args) {
                TreeIter iterToggled;
                if (!cmisStore.CmisStore.GetIterFromString(out iterToggled, args.Path))
                {
                    Console.WriteLine("Toggled GetIter Error " + args.Path);
                    return;
                }

                Node node = cmisStore.CmisStore.GetValue(iterToggled, (int)CmisTreeStore.Column.ColumnNode) as Node;
                if (node == null)
                {
                    Console.WriteLine("Toggled GetValue Error " + args.Path);
                    return;
                }

                RootFolder selectedRoot = repositories.Find(x => (x.Selected != false));
                Node       parent       = node;
                while (parent.Parent != null)
                {
                    parent = parent.Parent;
                }
                RootFolder root = parent as RootFolder;
                if (root != selectedRoot)
                {
                    selectedRoot.Selected = false;
                    cmisStore.UpdateCmisTree(selectedRoot);
                }

                if (node.Parent == null)
                {
                    node.Selected = true;
                }
                else
                {
                    if (node.Selected == false)
                    {
                        node.Selected = true;
                    }
                    else
                    {
                        node.Selected = false;
                    }
                }
                cmisStore.UpdateCmisTree(root);
            };
            CellRendererText renderText = new CellRendererText();

            column.PackStart(renderText, false);
            column.SetAttributes(renderText, "text", (int)CmisTreeStore.Column.ColumnName);
            column.Expand = true;
            treeView.AppendColumn(column);

            treeView.AppendColumn("Status", new StatusCellRenderer(), "text", (int)CmisTreeStore.Column.ColumnStatus);

            treeView.RowExpanded += delegate(object o, RowExpandedArgs args) {
                Node node   = cmisStore.CmisStore.GetValue(args.Iter, (int)CmisTreeStore.Column.ColumnNode) as Node;
                Node parent = node;
                while (parent.Parent != null)
                {
                    parent = parent.Parent;
                }
                RootFolder root = parent as RootFolder;
                loader[root.Id].Load(node);
            };

            ScrolledWindow sw = new ScrolledWindow()
            {
                ShadowType = Gtk.ShadowType.In
            };

            sw.Add(treeView);

            layout_vertical.PackStart(new Label(""), false, false, 0);
            layout_vertical.PackStart(sw, true, true, 0);
            Add(layout_vertical);
            AddButton(back_button);
            AddButton(cancel_button);
            AddButton(continue_button);

            if (repositories.Count > 0)
            {
                continue_button.GrabDefault();
                continue_button.GrabFocus();
            }
            else
            {
                back_button.GrabDefault();
                back_button.GrabFocus();
            }
        }
        public LogWidget(VersionControlDocumentInfo info)
        {
            this.Build();
            this.info = info;
            if (info.Document != null)
            {
                this.preselectFile = info.Item.Path;
            }

            var separator = new HeaderBox();

            separator.SetMargins(1, 0, 0, 0);
            separator.HeightRequest = 4;
            separator.ShowAll();

            hpaned1 = hpaned1.ReplaceWithWidget(new HPanedThin(), true);
            vpaned1 = vpaned1.ReplaceWithWidget(new VPanedThin()
            {
                HandleWidget = separator
            }, true);

            revertButton           = new DocumentToolButton("vc-revert-command", GettextCatalog.GetString("Revert changes from this revision"));
            revertButton.Sensitive = false;
            revertButton.Clicked  += new EventHandler(RevertRevisionClicked);

            revertToButton           = new DocumentToolButton("vc-revert-command", GettextCatalog.GetString("Revert to this revision"));
            revertToButton.Sensitive = false;
            revertToButton.Clicked  += new EventHandler(RevertToRevisionClicked);

            refreshButton          = new DocumentToolButton(Gtk.Stock.Refresh, GettextCatalog.GetString("Refresh"));
            refreshButton.Clicked += new EventHandler(RefreshClicked);

            searchEntry = new SearchEntry();
            searchEntry.WidthRequest             = 200;
            searchEntry.ForceFilterButtonVisible = true;
            searchEntry.EmptyMessage             = GettextCatalog.GetString("Search");
            searchEntry.Changed += HandleSearchEntryFilterChanged;
            searchEntry.Ready    = true;
            searchEntry.Show();

            messageRenderer.Ellipsize = Pango.EllipsizeMode.End;
            TreeViewColumn colRevMessage = new TreeViewColumn();

            colRevMessage.Title = GettextCatalog.GetString("Message");
            var graphRenderer = new RevisionGraphCellRenderer();

            colRevMessage.PackStart(graphRenderer, false);
            colRevMessage.SetCellDataFunc(graphRenderer, GraphFunc);

            colRevMessage.PackStart(messageRenderer, true);
            colRevMessage.SetCellDataFunc(messageRenderer, MessageFunc);
            colRevMessage.Sizing = TreeViewColumnSizing.Autosize;

            treeviewLog.AppendColumn(colRevMessage);
            colRevMessage.MinWidth  = 350;
            colRevMessage.Resizable = true;


            TreeViewColumn colRevDate = new TreeViewColumn(GettextCatalog.GetString("Date"), textRenderer);

            colRevDate.SetCellDataFunc(textRenderer, DateFunc);
            colRevDate.Resizable = true;
            treeviewLog.AppendColumn(colRevDate);

            TreeViewColumn colRevAuthor = new TreeViewColumn();

            colRevAuthor.Title = GettextCatalog.GetString("Author");
            colRevAuthor.PackStart(pixRenderer, false);
            colRevAuthor.PackStart(textRenderer, true);
            colRevAuthor.SetCellDataFunc(textRenderer, AuthorFunc);
            colRevAuthor.SetCellDataFunc(pixRenderer, AuthorIconFunc);
            colRevAuthor.Resizable = true;
            treeviewLog.AppendColumn(colRevAuthor);

            TreeViewColumn colRevNum = new TreeViewColumn(GettextCatalog.GetString("Revision"), textRenderer);

            colRevNum.SetCellDataFunc(textRenderer, RevisionFunc);
            colRevNum.Resizable = true;
            treeviewLog.AppendColumn(colRevNum);

            treeviewLog.Model              = logstore;
            treeviewLog.Selection.Changed += TreeSelectionChanged;

            treeviewFiles = new FileTreeView();
            treeviewFiles.DiffLineActivated += HandleTreeviewFilesDiffLineActivated;
            scrolledwindowFiles.Child        = treeviewFiles;
            scrolledwindowFiles.ShowAll();

            changedpathstore = new TreeStore(typeof(Xwt.Drawing.Image), typeof(string), // icon/file name
                                             typeof(Xwt.Drawing.Image), typeof(string), // icon/operation
                                             typeof(string),                            // path
                                             typeof(string),                            // revision path (invisible)
                                             typeof(string [])                          // diff
                                             );

            TreeViewColumn colChangedFile = new TreeViewColumn();
            var            crp            = new CellRendererImage();
            var            crt            = new CellRendererText();

            colChangedFile.Title = GettextCatalog.GetString("File");
            colChangedFile.PackStart(crp, false);
            colChangedFile.PackStart(crt, true);
            colChangedFile.AddAttribute(crp, "image", 2);
            colChangedFile.AddAttribute(crt, "text", 3);
            treeviewFiles.AppendColumn(colChangedFile);

            TreeViewColumn colOperation = new TreeViewColumn();

            colOperation.Title = GettextCatalog.GetString("Operation");
            colOperation.PackStart(crp, false);
            colOperation.PackStart(crt, true);
            colOperation.AddAttribute(crp, "image", 0);
            colOperation.AddAttribute(crt, "text", 1);
            treeviewFiles.AppendColumn(colOperation);

            TreeViewColumn colChangedPath = new TreeViewColumn();

            colChangedPath.Title = GettextCatalog.GetString("Path");

            diffRenderer.DrawLeft = true;
            colChangedPath.PackStart(diffRenderer, true);
            colChangedPath.SetCellDataFunc(diffRenderer, SetDiffCellData);
            treeviewFiles.AppendColumn(colChangedPath);
            treeviewFiles.Model          = changedpathstore;
            treeviewFiles.TestExpandRow += HandleTreeviewFilesTestExpandRow;
            treeviewFiles.Events        |= Gdk.EventMask.PointerMotionMask;

            textviewDetails.WrapMode = Gtk.WrapMode.Word;

            labelAuthor.Text   = "";
            labelDate.Text     = "";
            labelRevision.Text = "";

            vbox2.Remove(scrolledwindow1);
            HeaderBox tb = new HeaderBox();

            tb.Show();
            tb.SetMargins(1, 0, 0, 0);
            tb.ShowTopShadow = true;
            tb.ShadowSize    = 4;
            tb.SetPadding(8, 8, 8, 8);
            tb.UseChildBackgroundColor = true;
            tb.Add(scrolledwindow1);
            vbox2.PackStart(tb, true, true, 0);
        }
Exemplo n.º 11
0
        public ChangeSetView()
        {
            ShadowType = Gtk.ShadowType.In;
            filelist   = new FileTreeView();
            filelist.Selection.Mode = SelectionMode.Multiple;

            Add(filelist);
            HscrollbarPolicy            = PolicyType.Automatic;
            VscrollbarPolicy            = PolicyType.Automatic;
            filelist.RowActivated      += OnRowActivated;
            filelist.DiffLineActivated += OnDiffLineActivated;

            CellRendererToggle cellToggle = new CellRendererToggle();
//			cellToggle.Toggled += new ToggledHandler(OnCommitToggledHandler);
            var crc = new CellRendererImage();

            crc.StockId       = "vc-comment";
            colCommit         = new TreeViewColumn();
            colCommit.Spacing = 2;
            colCommit.Widget  = new Xwt.ImageView(Xwt.Drawing.Image.FromResource("commit-16.png")).ToGtkWidget();
            colCommit.Widget.Show();
            colCommit.PackStart(cellToggle, false);
            colCommit.PackStart(crc, false);
            colCommit.AddAttribute(cellToggle, "active", ColCommit);
            colCommit.AddAttribute(cellToggle, "visible", ColShowToggle);
            colCommit.AddAttribute(crc, "visible", ColShowComment);
            colCommit.Visible = false;

            CellRendererText crt     = new CellRendererText();
            var            crp       = new CellRendererImage();
            TreeViewColumn colStatus = new TreeViewColumn();

            colStatus.Title = GettextCatalog.GetString("Status");
            colStatus.PackStart(crp, false);
            colStatus.PackStart(crt, true);
            colStatus.AddAttribute(crp, "image", ColIcon);
            colStatus.AddAttribute(crp, "visible", ColShowStatus);
            colStatus.AddAttribute(crt, "text", ColStatus);
            colStatus.AddAttribute(crt, "foreground", ColStatusColor);

            TreeViewColumn colFile = new TreeViewColumn();

            colFile.Title   = GettextCatalog.GetString("File");
            colFile.Spacing = 2;
            crp             = new CellRendererImage();
            diffRenderer    = new CellRendererDiff();
            colFile.PackStart(crp, false);
            colFile.PackStart(diffRenderer, true);
            colFile.AddAttribute(crp, "image", ColIconFile);
            colFile.AddAttribute(crp, "visible", ColShowStatus);
            colFile.SetCellDataFunc(diffRenderer, new TreeCellDataFunc(SetDiffCellData));

            filelist.AppendColumn(colStatus);
            filelist.AppendColumn(colCommit);
            filelist.AppendColumn(colFile);

            filestore               = new TreeStore(typeof(Xwt.Drawing.Image), typeof(string), typeof(string[]), typeof(bool), typeof(bool), typeof(string), typeof(bool), typeof(bool), typeof(Xwt.Drawing.Image), typeof(bool), typeof(string));
            filelist.Model          = filestore;
            filelist.SearchColumn   = -1;           // disable the interactive search
            filelist.TestExpandRow += new Gtk.TestExpandRowHandler(OnTestExpandRow);

            ShowAll();

            filelist.Selection.Changed += new EventHandler(OnCursorChanged);

            filelist.HeadersClickable = true;
            filestore.SetSortFunc(0, CompareNodes);
            colStatus.SortColumnId = 0;
            filestore.SetSortFunc(1, CompareNodes);
            colCommit.SortColumnId = 1;
            filestore.SetSortFunc(2, CompareNodes);
            colFile.SortColumnId = 2;

            filestore.SetSortColumnId(2, Gtk.SortType.Ascending);
        }
Exemplo n.º 12
0
        public TaskNameColumn()
        {
            TreeViewColumn = new TreeViewColumn {
                Title = Catalog.GetString ("Task Name"),
                Sizing = TreeViewColumnSizing.Autosize,
                Expand = true,
                Resizable = true
            };

            // TODO: Add in code to determine how wide we should make the name
            // column.
            // TODO: Add in code to readjust the size of the name column if the
            // user resizes the Task Window.
            //column.FixedWidth = 250;

            var renderer = new CellRendererText { Editable = true };

            renderer.EditingStarted += (o, args) => {
                TreeIter iter;
                var path = new TreePath (args.Path);
                if (!model.GetIter (out iter, path))
                    return;

                var task = model.GetValue (iter, 0) as ITask;
                if (task == null)
                    return;

                taskBeingEdited = new TaskBeingEdited (task, iter, path);
                if (CellEditingStarted != null)
                    CellEditingStarted (this, new TaskRowEditingEventArgs (task, iter, path));
            };

            renderer.EditingCanceled += delegate { EndCellEditing (); };

            renderer.Edited += (o, args) => {
                TreeIter iter;
                var path = new TreePath (args.Path);
                if (model.GetIter (out iter, path)) {
                    var task = model.GetValue (iter, 0) as ITask;
                    if (task == null)
                        return;

                    var newText = args.NewText;
                    // Attempt to derive due date information from text.
                    if (preferences.GetBool (PreferencesKeys.ParseDateEnabledKey) &&
                        task.State == TaskState.Active &&
                        task.DueDate == DateTime.MinValue) {

                        string parsedTaskText;
                        DateTime parsedDueDate;
                        TaskParser.Instance.TryParse (newText, out parsedTaskText, out parsedDueDate);

                        if (parsedDueDate != DateTime.MinValue)
                            task.DueDate = parsedDueDate;
                        newText = parsedTaskText;
                    }

                    task.Text = newText;
                }
                EndCellEditing ();
            };

            TreeViewColumn.PackStart (renderer, true);
            TreeViewColumn.SetCellDataFunc (renderer, TaskNameTextCellDataFunc);
        }
Exemplo n.º 13
0
            private void SetupTree()
            {
                gamesStore = new ListStore (typeof (object));
                tree.Model = gamesStore;
                tree.HeadersVisible = false;
                filter = new TreeModelFilter (gamesStore,
                                  null);
                filter.VisibleFunc = SearchFilterFunc;

                TreeViewColumn col;

                col = new TreeViewColumn ();
                idx_renderer = new CellRendererText ();
                idx_renderer.Yalign = 0;
                info_renderer = new CellRendererText ();
                col.Title = Catalog.GetString ("Games");
                col.PackStart (idx_renderer, false);
                col.SetCellDataFunc (idx_renderer,
                             new
                             TreeCellDataFunc
                             (IdxCellDataFunc));
                col.PackStart (info_renderer, true);
                col.SetCellDataFunc (info_renderer,
                             new
                             TreeCellDataFunc
                             (InfoCellDataFunc));
                col.Resizable = false;
                col.Expand = true;
                tree.AppendColumn (col);
            }
Exemplo n.º 14
0
            private void SetupMovesTree()
            {
                TreeViewColumn col = new TreeViewColumn ();
                CellRendererText moveno_renderer =
                    new CellRendererText ();
                CellRendererText whitemove_renderer =
                    new CellRendererText ();
                CellRendererText blackmove_renderer =
                    new CellRendererText ();
                moveno_renderer.Xalign = 1;
                col.PackStart (moveno_renderer, false);
                col.SetCellDataFunc (moveno_renderer,
                             new
                             TreeCellDataFunc
                             (MoveNumCellDataFunc));
                col.Title = Catalog.GetString("No");
                gameView.AppendColumn (col);

                col = new TreeViewColumn ();
                col.PackStart (whitemove_renderer, true);
                col.SetCellDataFunc (whitemove_renderer,
                             new
                             TreeCellDataFunc
                             (WhiteMoveCellDataFunc));
                col.Title = Catalog.GetString("White");
                col.Resizable = true;
                col.Expand = true;
                gameView.AppendColumn (col);
                whitecol = col;
                whitecol.Spacing = 5;

                col = new TreeViewColumn ();
                col.PackStart (blackmove_renderer, false);
                col.SetCellDataFunc (blackmove_renderer,
                             new
                             TreeCellDataFunc
                             (BlackMoveCellDataFunc));
                col.Expand = true;
                col.Title = Catalog.GetString("Black");
                gameView.AppendColumn (col);
                blackcol = col;

                gameView.HeadersVisible = true;
            }
Exemplo n.º 15
0
        void InitializeComponents()
        {
            iconView = new TemplateView();
            iconView.ShowAll();
            boxTemplates.PackStart(iconView, true, true, 0);

            catStore = new TreeStore(typeof(string), typeof(List <Category>), typeof(List <TemplateItem>));

            TreeViewColumn treeViewColumn = new TreeViewColumn();

            treeViewColumn.Title = "categories";
            CellRenderer cellRenderer = new CellRendererText();

            treeViewColumn.PackStart(cellRenderer, true);
            treeViewColumn.AddAttribute(cellRenderer, "text", 0);
            catView.AppendColumn(treeViewColumn);

            catStore.SetSortColumnId(0, SortType.Ascending);
            catView.Model = catStore;

            okButton.Clicked     += new EventHandler(OpenEvent);
            cancelButton.Clicked += new EventHandler(cancelClicked);

            nameEntry.Changed   += new EventHandler(NameChanged);
            nameEntry.Activated += new EventHandler(OpenEvent);

            infoLabel.Text          = string.Empty;
            labelTemplateTitle.Text = string.Empty;

            ReadOnlyCollection <Project> projects = null;

            if (parentProject == null)
            {
                projects = IdeApp.Workspace.GetAllProjects();
            }

            if (projects != null && projects.Count > 0)
            {
                Project curProject = IdeApp.ProjectOperations.CurrentSelectedProject;

                boxProject.Visible          = true;
                projectAddCheckbox.Active   = curProject != null;
                projectAddCheckbox.Toggled += new EventHandler(AddToProjectToggled);

                projectNames = new string[projects.Count];
                projectRefs  = new Project[projects.Count];
                int i = 0;

                bool singleSolution = IdeApp.Workspace.Items.Count == 1 && IdeApp.Workspace.Items[0] is Solution;

                foreach (Project project in projects)
                {
                    projectRefs[i] = project;
                    if (singleSolution)
                    {
                        projectNames[i++] = project.Name;
                    }
                    else
                    {
                        projectNames[i++] = project.ParentSolution.Name + "/" + project.Name;
                    }
                }

                Array.Sort(projectNames, projectRefs);
                i = Array.IndexOf(projectRefs, curProject);

                foreach (string pn in projectNames)
                {
                    projectAddCombo.AppendText(pn);
                }

                projectAddCombo.Active    = i != -1 ? i : 0;
                projectAddCombo.Sensitive = projectAddCheckbox.Active;
                projectAddCombo.Changed  += new EventHandler(AddToProjectComboChanged);

                projectPathLabel.Sensitive   = projectAddCheckbox.Active;
                projectFolderEntry.Sensitive = projectAddCheckbox.Active;
                if (curProject != null)
                {
                    projectFolderEntry.Path = curProject.BaseDirectory;
                }
                projectFolderEntry.PathChanged += new EventHandler(AddToProjectPathChanged);

                if (curProject != null)
                {
                    basePath      = curProject.BaseDirectory;
                    parentProject = curProject;
                }
            }
            else
            {
                boxProject.Visible = false;
            }

            catView.Selection.Changed += new EventHandler(CategoryChange);
            catView.RowActivated      += new RowActivatedHandler(CategoryActivated);
            iconView.SelectionChanged += new EventHandler(SelectedTemplateChanged);
            iconView.DoubleClicked    += new EventHandler(OpenEvent);
            InitializeDialog(false);
            InitializeView();
            UpdateOkStatus();
        }
Exemplo n.º 16
0
        public TypesView()
        {
            window         = new ScrolledWindow();
            list           = new TreeView();
            list.RulesHint = true;

            //                               icon            type            count            #bytes         avg size         avg age          # backtraces
            store      = new ListStore(typeof(string), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string), typeof(object));
            list.Model = store;

            CellRendererPixbuf pixbufRenderer     = new CellRendererPixbuf();
            CellRendererText   typeRenderer       = new CellRendererText();
            CellRendererText   countRenderer      = new CellRendererText();
            CellRendererText   totalSizeRenderer  = new CellRendererText();
            CellRendererText   avgSizeRenderer    = new CellRendererText();
            CellRendererText   avgAgeRenderer     = new CellRendererText();
            CellRendererText   backtracesRenderer = new CellRendererText();

            TreeViewColumn columnType       = new TreeViewColumn();
            TreeViewColumn columnCount      = new TreeViewColumn();
            TreeViewColumn columnTotalSize  = new TreeViewColumn();
            TreeViewColumn columnAvgSize    = new TreeViewColumn();
            TreeViewColumn columnAvgAge     = new TreeViewColumn();
            TreeViewColumn columnBacktraces = new TreeViewColumn();

            columnType.Title       = GettextCatalog.GetString("Type");
            columnCount.Title      = GettextCatalog.GetString("Count");
            columnTotalSize.Title  = GettextCatalog.GetString("Total Size");
            columnAvgSize.Title    = GettextCatalog.GetString("Avg Size");
            columnAvgAge.Title     = GettextCatalog.GetString("Avg Age");
            columnBacktraces.Title = GettextCatalog.GetString("Backtraces");

            columnType.PackStart(pixbufRenderer, false);
            columnType.PackStart(typeRenderer, true);
            columnCount.PackStart(countRenderer, true);
            columnTotalSize.PackStart(totalSizeRenderer, true);
            columnAvgSize.PackStart(avgSizeRenderer, true);
            columnAvgAge.PackStart(avgAgeRenderer, true);
            columnBacktraces.PackStart(backtracesRenderer, true);

            columnType.AddAttribute(pixbufRenderer, "stock-id", 0);
            columnType.AddAttribute(typeRenderer, "text", 1);
            columnCount.AddAttribute(countRenderer, "text", 2);
            columnTotalSize.AddAttribute(totalSizeRenderer, "text", 3);
            columnAvgSize.AddAttribute(avgSizeRenderer, "text", 4);
            columnAvgAge.AddAttribute(avgAgeRenderer, "text", 5);
            columnBacktraces.AddAttribute(backtracesRenderer, "text", 6);

            list.AppendColumn(columnType);
            list.AppendColumn(columnCount);
            list.AppendColumn(columnTotalSize);
            list.AppendColumn(columnAvgSize);
            list.AppendColumn(columnAvgAge);
            list.AppendColumn(columnBacktraces);

            int nc = 0;

            foreach (TreeViewColumn c in list.Columns)
            {
                store.SetSortFunc(nc, CompareNodes);
                c.SortColumnId = nc++;
            }
            store.SetSortColumnId(1, SortType.Descending);

            window.Add(list);
            window.ShowAll();
        }
Exemplo n.º 17
0
        /// <summary>
        /// Default constructor. Initialises intellisense popup, but doesn't display anything.
        /// </summary>
        public IntellisenseView(ViewBase owner) : base(owner)
        {
            completionForm = new Window(WindowType.Toplevel)
            {
                HeightRequest   = 300,
                WidthRequest    = 750,
                Decorated       = false,
                SkipPagerHint   = true,
                SkipTaskbarHint = true,
            };
            mainWidget = completionForm;

            Frame completionFrame = new Frame();

            completionForm.Add(completionFrame);

            ScrolledWindow completionScroller = new ScrolledWindow();

            completionFrame.Add(completionScroller);

            completionModel = new ListStore(typeof(Gdk.Pixbuf), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string), typeof(bool));
            completionView  = new Gtk.TreeView(completionModel);
            completionScroller.Add(completionView);

            TreeViewColumn column = new TreeViewColumn()
            {
                Title     = "Item",
                Resizable = true,
            };
            CellRendererPixbuf iconRender = new CellRendererPixbuf();

            column.PackStart(iconRender, false);
            CellRendererText textRender = new CellRendererText()
            {
                Editable   = false,
                WidthChars = 25,
                Ellipsize  = Pango.EllipsizeMode.End
            };

            column.PackStart(textRender, true);
            column.SetAttributes(iconRender, "pixbuf", 0);
            column.SetAttributes(textRender, "text", 1);
            completionView.AppendColumn(column);

            textRender = new CellRendererText()
            {
                Editable   = false,
                WidthChars = 10,
                Ellipsize  = Pango.EllipsizeMode.End
            };
            column = new TreeViewColumn("Units", textRender, "text", 2)
            {
                Resizable = true
            };
            completionView.AppendColumn(column);

            textRender = new CellRendererText()
            {
                Editable   = false,
                WidthChars = 15,
                Ellipsize  = Pango.EllipsizeMode.End
            };
            column = new TreeViewColumn("Type", textRender, "text", 3)
            {
                Resizable = true
            };
            completionView.AppendColumn(column);

            textRender = new CellRendererText()
            {
                Editable = false,
            };
            column = new TreeViewColumn("Descr", textRender, "text", 4)
            {
                Resizable = true
            };
            completionView.AppendColumn(column);

            completionView.HasTooltip        = true;
            completionView.TooltipColumn     = 5;
            completionForm.FocusOutEvent    += OnLeaveCompletion;
            completionView.ButtonPressEvent += OnButtonPress;
            completionView.KeyPressEvent    += OnContextListKeyDown;
            completionView.KeyReleaseEvent  += OnKeyRelease;
        }
Exemplo n.º 18
0
    public busca_pacientes(string _tipo_, string LoginEmpleado, string NomEmpleado, string AppEmpleado, string ApmEmpleado)
    {
        //string []userName = {"Admin","Root","Guest","Nobody"};
        //string []passWord= {"test","blank","Guest","password"};


        Console.WriteLine("registro_admision.glade");
        Glade.XML gxml = new Glade.XML(null, "registro_admision.glade", "busca_paciente", null);
        gxml.Autoconnect(this);

        busca_paciente.Show();

        //TreeView ListStore = new TreeView();
        treeViewEngine           = new TreeStore(typeof(bool), typeof(string), typeof(string), typeof(string));
        lista_de_Pacientes.Model = treeViewEngine;
        //treeViewEngine.SetSortFunc (0, StoreSortFunc);
        treeViewEngine.SetSortColumnId(1, Gtk.SortType.Ascending);


        for (int i = 0; i < 10; i++)
        {
            TreeIter iter = treeViewEngine.AppendValues(null, "Demo " + i, "Data " + i, "01/01/200" + i);
        }

        //lista_de_Pacientes.Selection.Changed += onItemSelected;  // cambio de fila
        lista_de_Pacientes.RowActivated += OnRowActivated;     // Doble click selecciono paciente

        TreeViewColumn     col_Seleccion = new TreeViewColumn();
        CellRendererToggle cellrtg       = new CellRendererToggle();

        col_Seleccion.Title = "Seleccion";     // titulo de la cabecera de la columna, si está visible
        col_Seleccion.PackStart(cellrtg, true);
        col_Seleccion.SetCellDataFunc(cellrtg, new TreeCellDataFunc(BoolCellDataFunc));
        col_Seleccion.AddAttribute(cellrtg, "active", 0);          // la siguiente columna será 1 en vez de 0

        cellrtg.Activatable = true;
        cellrtg.Toggled    += crt_toogled;

        TreeViewColumn   col_PidPaciente = new TreeViewColumn();
        CellRendererText cellrt          = new CellRendererText();

        col_PidPaciente.Title = "PID Paciente";          // titulo de la cabecera de la columna, si está visible
        col_PidPaciente.PackStart(cellrt, true);
        col_PidPaciente.AddAttribute(cellrt, "text", 1); // la siguiente columna será 1 en vez de 0
        cellrt.Editable = true;

        TreeViewColumn   col_NombrePaciente = new TreeViewColumn();
        CellRendererText cellrt1            = new CellRendererText();

        col_NombrePaciente.Title = "Nombre de Paciente";
        col_NombrePaciente.PackStart(cellrt1, true);
        col_NombrePaciente.AddAttribute(cellrt1, "text", 2);      // la siguiente columna será 2 en vez de 1

        TreeViewColumn col_fechaCrea = new TreeViewColumn();

        col_fechaCrea.Title = "Fecha";
        col_fechaCrea.PackStart(cellrt1, true);
        col_fechaCrea.AddAttribute(cellrt1, "text", 3);          // la siguiente columna será 3 en vez de 2

        lista_de_Pacientes.AppendColumn(col_Seleccion);
        lista_de_Pacientes.AppendColumn(col_PidPaciente);
        lista_de_Pacientes.AppendColumn(col_NombrePaciente);
        lista_de_Pacientes.AppendColumn(col_fechaCrea);
    }
Exemplo n.º 19
0
        /// <summary>
        /// Default constructor that configures the Completion form.
        /// </summary>
        public EditorView(ViewBase owner) : base(owner)
        {
            scroller   = new ScrolledWindow();
            textEditor = new MonoTextEditor();
            scroller.Add(textEditor);
            _mainWidget = scroller;
            TextEditorOptions options = new TextEditorOptions();

            options.EnableSyntaxHighlighting = true;
            options.ColorScheme              = "Visual Studio";
            options.HighlightCaretLine       = true;
            textEditor.Options               = options;
            textEditor.Document.LineChanged += OnTextHasChanged;
            textEditor.LeaveNotifyEvent     += OnTextBoxLeave;
            _mainWidget.Destroyed           += _mainWidget_Destroyed;

            CompletionForm                 = new Window(WindowType.Toplevel);
            CompletionForm.Decorated       = false;
            CompletionForm.SkipPagerHint   = true;
            CompletionForm.SkipTaskbarHint = true;
            Frame completionFrame = new Frame();

            CompletionForm.Add(completionFrame);
            ScrolledWindow completionScroller = new ScrolledWindow();

            completionFrame.Add(completionScroller);
            completionModel = new ListStore(typeof(Gdk.Pixbuf), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string));
            CompletionView  = new TreeView(completionModel);
            completionScroller.Add(CompletionView);
            TreeViewColumn     column     = new TreeViewColumn();
            CellRendererPixbuf iconRender = new Gtk.CellRendererPixbuf();

            column.PackStart(iconRender, false);
            CellRendererText textRender = new Gtk.CellRendererText();

            textRender.Editable = false;
            column.PackStart(textRender, true);
            column.SetAttributes(iconRender, "pixbuf", 0);
            column.SetAttributes(textRender, "text", 1);
            column.Title     = "Item";
            column.Resizable = true;
            CompletionView.AppendColumn(column);
            textRender       = new CellRendererText();
            column           = new TreeViewColumn("Units", textRender, "text", 2);
            column.Resizable = true;
            CompletionView.AppendColumn(column);
            textRender       = new CellRendererText();
            column           = new TreeViewColumn("Type", textRender, "text", 3);
            column.Resizable = true;
            CompletionView.AppendColumn(column);
            textRender       = new CellRendererText();
            column           = new TreeViewColumn("Descr", textRender, "text", 4);
            column.Resizable = true;
            CompletionView.AppendColumn(column);
            functionPixbuf = new Gdk.Pixbuf(null, "ApsimNG.Resources.Function.png", 16, 16);
            propertyPixbuf = new Gdk.Pixbuf(null, "ApsimNG.Resources.Property.png", 16, 16);
            textEditor.TextArea.KeyPressEvent += OnKeyPress;
            CompletionView.HasTooltip          = true;
            CompletionView.TooltipColumn       = 5;
            CompletionForm.FocusOutEvent      += OnLeaveCompletion;
            CompletionView.ButtonPressEvent   += OnContextListMouseDoubleClick;
            CompletionView.KeyPressEvent      += OnContextListKeyDown;
            CompletionView.KeyReleaseEvent    += CompletionView_KeyReleaseEvent;
            IntelliSenseChars = ".";
        }
Exemplo n.º 20
0
        public TriggersEditorWidget(ISchemaProvider schemaProvider, SchemaActions action)
        {
            if (schemaProvider == null)
            {
                throw new ArgumentNullException("schemaProvider");
            }

            this.schemaProvider = schemaProvider;
            this.action         = action;

            this.Build();

            sqlEditor.Editable     = false;
            sqlEditor.TextChanged += new EventHandler(SourceChanged);

            store                           = new ListStore(typeof(string), typeof(string), typeof(string), typeof(bool), typeof(string), typeof(bool), typeof(string), typeof(string), typeof(object));
            storeTypes                      = new ListStore(typeof(string));
            storeEvents                     = new ListStore(typeof(string));
            listTriggers.Model              = store;
            listTriggers.Selection.Changed += new EventHandler(OnSelectionChanged);

            foreach (string name in Enum.GetNames(typeof(TriggerType)))
            {
                storeTypes.AppendValues(name);
            }
            foreach (string name in Enum.GetNames(typeof(TriggerEvent)))
            {
                storeEvents.AppendValues(name);
            }

            TreeViewColumn colName     = new TreeViewColumn();
            TreeViewColumn colType     = new TreeViewColumn();
            TreeViewColumn colEvent    = new TreeViewColumn();
            TreeViewColumn colFireType = new TreeViewColumn();
            TreeViewColumn colPosition = new TreeViewColumn();
            TreeViewColumn colActive   = new TreeViewColumn();
            TreeViewColumn colComment  = new TreeViewColumn();

            colName.Title     = GettextCatalog.GetString("Name");
            colType.Title     = GettextCatalog.GetString("Type");
            colEvent.Title    = GettextCatalog.GetString("Event");
            colFireType.Title = GettextCatalog.GetString("Each Row");
            colPosition.Title = GettextCatalog.GetString("Position");
            colActive.Title   = GettextCatalog.GetString("Active");
            colComment.Title  = GettextCatalog.GetString("Comment");

            colType.MinWidth  = 120;
            colEvent.MinWidth = 120;

            CellRendererText   nameRenderer     = new CellRendererText();
            CellRendererCombo  typeRenderer     = new CellRendererCombo();
            CellRendererCombo  eventRenderer    = new CellRendererCombo();
            CellRendererToggle fireTypeRenderer = new CellRendererToggle();
            CellRendererText   positionRenderer = new CellRendererText();
            CellRendererToggle activeRenderer   = new CellRendererToggle();
            CellRendererText   commentRenderer  = new CellRendererText();

            nameRenderer.Editable = true;
            nameRenderer.Edited  += new EditedHandler(NameEdited);

            typeRenderer.Model      = storeTypes;
            typeRenderer.TextColumn = 0;
            typeRenderer.Editable   = true;
            typeRenderer.Edited    += new EditedHandler(TypeEdited);

            eventRenderer.Model      = storeEvents;
            eventRenderer.TextColumn = 0;
            eventRenderer.Editable   = true;
            eventRenderer.Edited    += new EditedHandler(EventEdited);

            fireTypeRenderer.Activatable = true;
            fireTypeRenderer.Toggled    += new ToggledHandler(FireTypeToggled);

            positionRenderer.Editable = true;
            positionRenderer.Edited  += new EditedHandler(PositionEdited);

            activeRenderer.Activatable = true;
            activeRenderer.Toggled    += new ToggledHandler(ActiveToggled);

            commentRenderer.Editable = true;
            commentRenderer.Edited  += new EditedHandler(CommentEdited);

            colName.PackStart(nameRenderer, true);
            colType.PackStart(typeRenderer, true);
            colEvent.PackStart(eventRenderer, true);
            colFireType.PackStart(fireTypeRenderer, true);
            colPosition.PackStart(positionRenderer, true);
            colActive.PackStart(activeRenderer, true);
            colComment.PackStart(commentRenderer, true);

            colName.AddAttribute(nameRenderer, "text", colNameIndex);
            colType.AddAttribute(typeRenderer, "text", colTypeIndex);
            colEvent.AddAttribute(eventRenderer, "text", colEventIndex);
            colFireType.AddAttribute(fireTypeRenderer, "active", colFireTypeIndex);
            colPosition.AddAttribute(positionRenderer, "text", colPositionIndex);
            colActive.AddAttribute(activeRenderer, "active", colActiveIndex);
            colComment.AddAttribute(commentRenderer, "text", colCommentIndex);

            listTriggers.AppendColumn(colName);
            listTriggers.AppendColumn(colType);
            listTriggers.AppendColumn(colEvent);
            listTriggers.AppendColumn(colFireType);
            listTriggers.AppendColumn(colPosition);
            listTriggers.AppendColumn(colActive);
            listTriggers.AppendColumn(colComment);

            ShowAll();
        }
Exemplo n.º 21
0
        /// <summary>
        /// Set up the UI inside the Window
        /// </summary>
        private void InitializeWidgets()
        {
            this.SetDefaultSize(500, 400);
            this.Icon = new Gdk.Pixbuf(Util.ImagesPath("ifolder16.png"));

            VBox dialogBox = new VBox();

            dialogBox.Spacing     = 10;
            dialogBox.BorderWidth = 10;
            this.VBox.PackStart(dialogBox, true, true, 0);

            Label l = new Label(
                string.Format("<span size=\"large\" weight=\"bold\">{0}</span>",
                              Util.GS("Add users to this iFolder")));

            l.Xalign    = 0;
            l.UseMarkup = true;
            dialogBox.PackStart(l, false, false, 0);



            //------------------------------
            // Selection Area
            //------------------------------
            HBox selBox = new HBox(false, 10);

            dialogBox.PackStart(selBox, true, true, 0);

            //------------------------------
            // All Users tree
            //------------------------------
            VBox vbox = new VBox(false, 0);

            selBox.PackStart(vbox, false, false, 0);

            //------------------------------
            // Find Entry
            //------------------------------
            HBox searchHBox = new HBox(false, 4);

            vbox.PackStart(searchHBox, false, false, 0);

            Label findLabel = new Label(Util.GS("_Find:"));

            searchHBox.PackStart(findLabel, false, false, 0);
            findLabel.Xalign = 0;

            SearchEntry = new Entry();
            searchHBox.PackStart(SearchEntry, true, true, 0);
            findLabel.MnemonicWidget = SearchEntry;
            SearchEntry.SelectRegion(0, -1);
            SearchEntry.CanFocus = true;
            SearchEntry.Changed +=
                new EventHandler(OnSearchEntryChanged);

            Image stopImage = new Image(Stock.Stop, Gtk.IconSize.Menu);

            stopImage.SetAlignment(0.5F, 0F);

            CancelSearchButton = new Button(stopImage);
            searchHBox.PackEnd(CancelSearchButton, false, false, 0);
            CancelSearchButton.Relief    = ReliefStyle.None;
            CancelSearchButton.Sensitive = false;

            CancelSearchButton.Clicked +=
                new EventHandler(OnCancelSearchButton);

            memberListModel = new MemberListModel(domainID, simws);

            memberList = new BigList(memberListModel);

            // FIXME: Fix up the BigList class to support both horizontal and vertical scrolling and then use the scroll adjustments to construct the ScrolledWindow
            ScrolledWindow sw = new ScrolledWindow(memberList.HAdjustment, memberList.VAdjustment);

            sw.ShadowType = Gtk.ShadowType.EtchedIn;
            sw.Add(memberList);
            vbox.PackStart(sw, true, true, 0);
            memberList.ItemSelected  += new ItemSelected(OnMemberIndexSelected);
            memberList.ItemActivated += new ItemActivated(OnMemberIndexActivated);


            //------------------------------
            // Buttons
            //------------------------------
            VBox btnBox = new VBox();

            btnBox.Spacing = 10;
            selBox.PackStart(btnBox, false, false, 0);

            Label spacer = new Label("");

            btnBox.PackStart(spacer, true, true, 0);

            HBox buttonHBox = new HBox(false, 4);

            spacer = new Label("");
            buttonHBox.PackStart(spacer, true, true, 0);
            Label buttonLabel = new Label(Util.GS("_Add"));

            buttonHBox.PackStart(buttonLabel, false, false, 0);
            Image buttonImage = new Image(Stock.GoForward, IconSize.Button);

            buttonHBox.PackStart(buttonImage, false, false, 0);
            spacer = new Label("");
            buttonHBox.PackStart(spacer, true, true, 0);
            UserAddButton = new Button(buttonHBox);
            btnBox.PackStart(UserAddButton, false, true, 0);
            UserAddButton.Clicked += new EventHandler(OnAddButtonClicked);

            buttonHBox = new HBox(false, 4);
            spacer     = new Label("");
            buttonHBox.PackStart(spacer, true, true, 0);
            buttonImage = new Image(Stock.GoBack, IconSize.Button);
            buttonHBox.PackStart(buttonImage, false, false, 0);
            buttonLabel = new Label(Util.GS("_Remove"));
            buttonHBox.PackStart(buttonLabel, false, false, 0);
            spacer = new Label("");
            buttonHBox.PackStart(spacer, true, true, 0);
            UserDelButton = new Button(buttonHBox);
            btnBox.PackStart(UserDelButton, false, true, 0);
            UserDelButton.Clicked += new EventHandler(OnRemoveButtonClicked);

            spacer = new Label("");
            btnBox.PackStart(spacer, true, true, 0);

            //------------------------------
            // Selected Users tree
            //------------------------------
            vbox = new VBox(false, 0);
            selBox.PackStart(vbox, true, true, 0);

            l        = new Label(Util.GS("_Users to add:"));
            l.Xalign = 0;
            vbox.PackStart(l, false, false, 0);

            SelTreeView = new TreeView();
            ScrolledWindow ssw = new ScrolledWindow();

            ssw.ShadowType = Gtk.ShadowType.EtchedIn;
            ssw.Add(SelTreeView);
            vbox.PackStart(ssw, true, true, 0);
            ssw.WidthRequest = 200;
            l.MnemonicWidget = SelTreeView;

            // Set up the iFolder TreeView
            SelTreeStore = new ListStore(typeof(MemberInfo));
            SelTreeStore.SetSortFunc(
                0,
                new TreeIterCompareFunc(SelTreeStoreSortFunction));
            SelTreeStore.SetSortColumnId(0, SortType.Ascending);
            SelTreeView.Model          = SelTreeStore;
            SelTreeView.HeadersVisible = false;

            // Set up Pixbuf and Text Rendering for "iFolder Users" column
            TreeViewColumn   selmemberColumn = new TreeViewColumn();
            CellRendererText smcrt           = new CellRendererText();

            selmemberColumn.PackStart(smcrt, false);
            selmemberColumn.SetCellDataFunc(smcrt, new TreeCellDataFunc(
                                                UserCellTextDataFunc));
            selmemberColumn.Title = Util.GS("Users to Add...");
            SelTreeView.AppendColumn(selmemberColumn);
            SelTreeView.Selection.Mode = SelectionMode.Multiple;

            SelTreeView.Selection.Changed += new EventHandler(
                OnSelUserSelectionChanged);

            this.AddButton(Stock.Cancel, ResponseType.Cancel);
            this.AddButton(Stock.Ok, ResponseType.Ok);
            this.AddButton(Stock.Help, ResponseType.Help);

            SetResponseSensitive(ResponseType.Ok, false);

            SearchiFolderUsers();
        }
Exemplo n.º 22
0
        public CodeIssuePanelWidget(string mimeType)
        {
            this.mimeType = mimeType;
            // ReSharper disable once DoNotCallOverridableMethodsInConstructor
            Build();

            // ensure selected row remains visible
            treeviewInspections.SizeAllocated += (o, args) => {
                TreeIter iter;
                if (treeviewInspections.Selection.GetSelected(out iter))
                {
                    var path = treeviewInspections.Model.GetPath(iter);
                    treeviewInspections.ScrollToCell(path, treeviewInspections.Columns[0], false, 0f, 0f);
                }
            };
            treeviewInspections.TooltipColumn = 2;
            treeviewInspections.HasTooltip    = true;

            var toggleRenderer = new CellRendererToggle();

            toggleRenderer.Toggled += delegate(object o, ToggledArgs args) {
                TreeIter iter;
                if (treeStore.GetIterFromString(out iter, args.Path))
                {
                    var provider = (BaseCodeIssueProvider)treeStore.GetValue(iter, 1);
                    enableState[provider] = !enableState[provider];
                }
            };

            var titleCol = new TreeViewColumn();

            treeviewInspections.AppendColumn(titleCol);
            titleCol.PackStart(toggleRenderer, false);
            titleCol.Sizing = TreeViewColumnSizing.Autosize;
            titleCol.SetCellDataFunc(toggleRenderer, delegate(TreeViewColumn treeColumn, CellRenderer cell, TreeModel model, TreeIter iter) {
                var provider = (BaseCodeIssueProvider)model.GetValue(iter, 1);
                if (provider == null)
                {
                    toggleRenderer.Visible = false;
                    return;
                }
                toggleRenderer.Visible = true;
                toggleRenderer.Active  = enableState[provider];
            });


            var cellRendererText = new CellRendererText {
                Ellipsize = Pango.EllipsizeMode.End
            };

            titleCol.PackStart(cellRendererText, true);
            titleCol.AddAttribute(cellRendererText, "markup", 0);
            titleCol.Expand = true;

            searchentryFilter.ForceFilterButtonVisible = true;
            searchentryFilter.RoundedShape             = true;
            searchentryFilter.HasFrame       = true;
            searchentryFilter.Ready          = true;
            searchentryFilter.Visible        = true;
            searchentryFilter.Entry.Changed += ApplyFilter;


            var comboRenderer = new CellRendererCombo {
                Alignment = Pango.Alignment.Center
            };
            var col = treeviewInspections.AppendColumn("Severity", comboRenderer);

            col.Sizing   = TreeViewColumnSizing.GrowOnly;
            col.MinWidth = 100;
            col.Expand   = false;

            var comboBoxStore = new ListStore(typeof(string), typeof(Severity));

//			comboBoxStore.AppendValues (GetDescription (Severity.None), Severity.None);
            comboBoxStore.AppendValues(GetDescription(Severity.Error), Severity.Error);
            comboBoxStore.AppendValues(GetDescription(Severity.Warning), Severity.Warning);
            comboBoxStore.AppendValues(GetDescription(Severity.Hint), Severity.Hint);
            comboBoxStore.AppendValues(GetDescription(Severity.Suggestion), Severity.Suggestion);
            comboRenderer.Model      = comboBoxStore;
            comboRenderer.Mode       = CellRendererMode.Activatable;
            comboRenderer.TextColumn = 0;

            comboRenderer.Editable = true;
            comboRenderer.HasEntry = false;

            comboRenderer.Edited += delegate(object o, EditedArgs args) {
                TreeIter iter;
                if (!treeStore.GetIterFromString(out iter, args.Path))
                {
                    return;
                }

                TreeIter storeIter;
                if (!comboBoxStore.GetIterFirst(out storeIter))
                {
                    return;
                }
                do
                {
                    if ((string)comboBoxStore.GetValue(storeIter, 0) == args.NewText)
                    {
                        var provider = (BaseCodeIssueProvider)treeStore.GetValue(iter, 1);
                        var severity = (Severity)comboBoxStore.GetValue(storeIter, 1);
                        severities[provider] = severity;
                        return;
                    }
                } while (comboBoxStore.IterNext(ref storeIter));
            };

            col.SetCellDataFunc(comboRenderer, delegate(TreeViewColumn treeColumn, CellRenderer cell, TreeModel model, TreeIter iter) {
                var provider = (BaseCodeIssueProvider)model.GetValue(iter, 1);
                if (provider == null)
                {
                    comboRenderer.Visible = false;
                    return;
                }
                var severity                = severities[provider];
                comboRenderer.Visible       = true;
                comboRenderer.Text          = GetDescription(severity);
                comboRenderer.BackgroundGdk = GetColor(severity);
            });
            treeviewInspections.HeadersVisible = false;
            treeviewInspections.Model          = treeStore;
            GetAllSeverities();
            FillInspectors(null);
        }
        public ProjectFileSelectorDialog(Project project, string defaultFilterName, string defaultFilterPattern, string [] buildActions)
        {
            this.project       = project;
            this.defaultFilter = new SelectFileDialogFilter(defaultFilterName, defaultFilterPattern ?? "*");
            this.buildActions  = buildActions;

            this.Build();

            projBuf      = ImageService.GetIcon(project.StockIcon, IconSize.Menu);
            dirClosedBuf = ImageService.GetIcon(MonoDevelop.Ide.Gui.Stock.ClosedFolder, IconSize.Menu);
            dirOpenBuf   = ImageService.GetIcon(MonoDevelop.Ide.Gui.Stock.OpenFolder, IconSize.Menu);

            TreeViewColumn projectCol = new TreeViewColumn();

            projectCol.Title = GettextCatalog.GetString("Project Folders");
            var pixRenderer = new CellRendererImage();
            CellRendererText txtRenderer = new CellRendererText();

            projectCol.PackStart(pixRenderer, false);
            projectCol.PackStart(txtRenderer, true);
            projectCol.SetCellDataFunc(pixRenderer, new TreeCellDataFunc(PixDataFunc));
            projectCol.SetCellDataFunc(txtRenderer, new TreeCellDataFunc(TxtDataFunc));
            projectTree.Model = dirStore;
            projectTree.AppendColumn(projectCol);
            TreeIter projectIter = dirStore.AppendValues("", FilePath.Empty);

            InitDirs(projectIter);
            projectTree.ExpandAll();
            projectTree.RowActivated += delegate {
                fileList.GrabFocus();
            };
            projectTree.KeyPressEvent += ProjectListKeyPressEvent;

            TreeViewColumn fileCol         = new TreeViewColumn();
            var            filePixRenderer = new CellRendererImage();

            fileCol.Title = GettextCatalog.GetString("Files");
            fileCol.PackStart(filePixRenderer, false);
            fileCol.PackStart(txtRenderer, true);
            fileCol.AddAttribute(filePixRenderer, "image", 1);
            fileCol.SetCellDataFunc(txtRenderer, new TreeCellDataFunc(TxtFileDataFunc));
            fileList.Model = fileStore;
            fileList.AppendColumn(fileCol);
            fileList.RowActivated += delegate {
                TreeIter iter;
                if (fileList.Selection.GetSelected(out iter))
                {
                    Respond(ResponseType.Ok);
                }
            };
            fileList.KeyPressEvent   += FileListKeyPressEvent;
            fileList.KeyReleaseEvent += FileListKeyReleaseEvent;

            TreeIter root;

            if (dirStore.GetIterFirst(out root))
            {
                projectTree.Selection.SelectIter(root);
            }

            UpdateFileList(null, null);

            projectTree.Selection.Changed += UpdateFileList;
            fileList.Selection.Changed    += UpdateSensitivity;


            this.DefaultResponse = ResponseType.Cancel;
            this.Modal           = true;
        }
Exemplo n.º 24
0
    protected void AddPlatformTab(string friendlyName, string msfPayloadFilter, Notebook parent, string negativeFilter = null, Widget payloadDetails = null)
    {
        HBox split = new HBox();

        TreeView payloads = new TreeView();

        payloads.RowActivated += (object o, RowActivatedArgs args) => {
            TreeModel model = _treeViews [_parentNotebook.CurrentPage].Model;

            TreeIter iter;
            model.GetIterFromString(out iter, args.Path.ToString());
            string str    = model.GetValue(iter, 1) as string;
            VBox   deeets = RedrawOptions(_newPayloads [str], true);

            HBox   updateButton = new HBox();
            Button update       = new Button("Update payload");
            update.Clicked += (object sender, EventArgs e) => {
                Dictionary <string, object> newopts = new Dictionary <string, object> ();
                foreach (Widget child in _dynamicOptions[_parentNotebook.CurrentPage].Children)
                {
                    if (child is CheckButton)
                    {
                        newopts.Add((child as CheckButton).Label, (child as CheckButton).Active.ToString());
                    }
                    else if (child is HBox)
                    {
                        foreach (Widget c in (child as HBox).Children)
                        {
                            if (c is Entry)
                            {
                                newopts.Add((c as Entry).TooltipText, (c as Entry).Text);
                            }
                        }
                    }
                }

                _newPayloads [str] = newopts;
            };

            updateButton.PackStart(update, false, false, 0);
            deeets.PackStart(updateButton, false, false, 0);
            deeets.ShowAll();
        };

        TreeViewColumn no = new TreeViewColumn();

        no.Title = "#";
        CellRendererText noText = new CellRendererText();

        no.PackStart(noText, true);
        no.AddAttribute(noText, "text", 0);

        TreeViewColumn treedeets = new TreeViewColumn();

        payloads.AppendColumn(no);

        CellRendererText treeDeetsText = new CellRendererText();

        treedeets.Title = "Details";
        treedeets.PackStart(treeDeetsText, true);
        treedeets.AddAttribute(treeDeetsText, "text", 1);
        payloads.AppendColumn(treedeets);

        ListStore payloadListStore = new ListStore(typeof(string), typeof(string));

        payloads.Model = payloadListStore;

        payloads.WidthRequest  = 250;
        payloads.HeightRequest = 500;

        _treeViews.Add(payloads);

        split.PackStart(payloads, false, false, 10);
        VBox deetsAndButtons = new VBox();
        VBox deets           = new VBox();

        HBox     payloadComboContainer = new HBox();
        ComboBox payloadCombo          = ComboBox.NewText();

        payloadCombo.Changed     += OnPayloadChanged;
        payloadCombo.WidthRequest = 250;

        var ps = ((List <object>)_payloads ["modules"]).Where(s => ((string)s).StartsWith(msfPayloadFilter));

        if (negativeFilter != null)
        {
            ps = ps.Where(s => !((string)s).Contains(negativeFilter));
        }

        foreach (var payload in ps.OrderBy(s => s))
        {
            payloadCombo.AppendText(payload.ToString());
        }

        payloadComboContainer.PackStart(payloadCombo, false, false, 0);

        deetsAndButtons.PackStart(payloadComboContainer, false, false, 0);
        deetsAndButtons.PackStart(deets, false, false, 0);

        if (payloadDetails != null)
        {
            deets.PackStart(payloadDetails, false, false, 0);
        }

        _dynamicOptions.Add(deets);
        split.PackEnd(deetsAndButtons, true, true, 0);
        parent.AppendPage(split, new Label(friendlyName));
    }
Exemplo n.º 25
0
        private void InitView(VolumeType volType, out TreeModel model)
        {
            currentVolumeType = volType;
            TreeViewColumn col;

            switch (volType)
            {
            case VolumeType.FileSystemVolume:
                HeadersVisible = false;

                CellRendererPixbuf pix = new CellRendererPixbuf();
                CellRendererText   txt = new CellRendererText();

                col = new TreeViewColumn();
                col.PackStart(pix, false);
                col.PackStart(txt, false);
                col.SetAttributes(pix, "pixbuf", 0);
                col.SetAttributes(txt, "text", 1);
                col.SetCellDataFunc(txt, CellDataFunc);
                AppendColumn(col);

                // set up store
                model = new TreeStore(typeof(Gdk.Pixbuf),
                                      typeof(string),
                                      /* VolumeItem - not visible */
                                      typeof(FileSystemVolumeItem));

                item_col = 2;
                break;

            case VolumeType.AudioCdVolume:
                HeadersVisible = true;

                col           = new TreeViewColumn(string.Empty, new CellRendererPixbuf(), "pixbuf", 0);
                col.Resizable = false;
                col.Expand    = false;
                AppendColumn(col);

                var tmp = new CellRendererText();
                col           = new TreeViewColumn(S._("Name"), tmp, "text", 1);
                col.Resizable = true;
                col.Expand    = true;
                col.SetCellDataFunc(tmp, CellDataFunc);
                AppendColumn(col);

                col           = new TreeViewColumn(S._("Artist"), new CellRendererText(), "text", 2);
                col.Resizable = true;
                col.Expand    = true;
                AppendColumn(col);

                col           = new TreeViewColumn(S._("Duration"), new CellRendererText(), "text", 3);
                col.Resizable = true;
                col.Expand    = false;
                AppendColumn(col);

                // set up store
                model = new ListStore(typeof(Gdk.Pixbuf),
                                      typeof(string),
                                      typeof(string),
                                      typeof(string),
                                      /* VolumeItem - not visible */
                                      typeof(AudioTrackVolumeItem));

                item_col = 4;
                break;

            default:
                throw new NotImplementedException("View initialization has not been implemented for this volumetype");
            }
        }
Exemplo n.º 26
0
        public OptionsDialog(MonoDevelop.Components.Window parentWindow, object dataObject, string extensionPath, bool removeEmptySections)
        {
            buttonCancel = new Gtk.Button(Gtk.Stock.Cancel);
            AddActionWidget(this.buttonCancel, ResponseType.Cancel);

            buttonOk = new Gtk.Button(Gtk.Stock.Ok);
            this.ActionArea.PackStart(buttonOk);
            buttonOk.Clicked += OnButtonOkClicked;

            mainHBox = new HBox();
            tree     = new TreeView();
            var sw = new ScrolledWindow();

            sw.Add(tree);
            sw.HscrollbarPolicy = PolicyType.Never;
            sw.VscrollbarPolicy = PolicyType.Automatic;
            sw.ShadowType       = ShadowType.None;

            var fboxTree = new HeaderBox();

            fboxTree.SetMargins(0, 1, 0, 1);
            fboxTree.SetPadding(0, 0, 0, 0);
            fboxTree.BackgroundColor = new Gdk.Color(255, 255, 255);
            fboxTree.Add(sw);
            mainHBox.PackStart(fboxTree, false, false, 0);

            Realized += delegate {
                fboxTree.BackgroundColor = tree.Style.Base(Gtk.StateType.Normal);
            };

            var vbox = new VBox();

            mainHBox.PackStart(vbox, true, true, 0);
            var headerBox = new HBox(false, 6);

            labelTitle        = new Label();
            labelTitle.Xalign = 0;
            textHeader        = new Alignment(0, 0, 1, 1);
            textHeader.Add(labelTitle);
            textHeader.BorderWidth = 12;
            headerBox.PackStart(textHeader, true, true, 0);

            imageHeader = new OptionsDialogHeader();
            imageHeader.Hide();
            headerBox.PackStart(imageHeader.ToGtkWidget());

            var fboxHeader = new HeaderBox();

            fboxHeader.SetMargins(0, 1, 0, 0);
            fboxHeader.Add(headerBox);
//			fbox.GradientBackround = true;
//			fbox.BackgroundColor = new Gdk.Color (255, 255, 255);
            Realized += delegate {
                var c = Style.Background(Gtk.StateType.Normal).ToXwtColor();
                c.Light += 0.09;
                fboxHeader.BackgroundColor = c.ToGdkColor();
            };
            StyleSet += delegate {
                if (IsRealized)
                {
                    var c = Style.Background(Gtk.StateType.Normal).ToXwtColor();
                    c.Light += 0.09;
                    fboxHeader.BackgroundColor = c.ToGdkColor();
                }
            };
            vbox.PackStart(fboxHeader, false, false, 0);

            pageFrame = new HBox();
            var fbox = new HeaderBox();

            fbox.SetMargins(0, 1, 0, 0);
            fbox.ShowTopShadow = true;
            fbox.Add(pageFrame);
            vbox.PackStart(fbox, true, true, 0);

            this.VBox.PackStart(mainHBox, true, true, 0);

            this.removeEmptySections = removeEmptySections;
            extensionContext         = AddinManager.CreateExtensionContext();

            this.mainDataObject = dataObject;
            this.extensionPath  = extensionPath;

            if (parentWindow != null)
            {
                TransientFor = parentWindow;
            }

            ImageService.EnsureStockIconIsLoaded(emptyCategoryIcon);

            store               = new TreeStore(typeof(OptionsDialogSection));
            tree.Model          = store;
            tree.HeadersVisible = false;

            // Column 0 is used to add some padding at the left of the expander
            TreeViewColumn col0 = new TreeViewColumn();

            col0.MinWidth = 6;
            tree.AppendColumn(col0);

            TreeViewColumn col = new TreeViewColumn();
            var            crp = new CellRendererImage();

            col.PackStart(crp, false);
            col.SetCellDataFunc(crp, PixbufCellDataFunc);
            var crt = new CellRendererText();

            col.PackStart(crt, true);
            col.SetCellDataFunc(crt, TextCellDataFunc);
            tree.AppendColumn(col);

            tree.ExpanderColumn = col;

            tree.Selection.Changed += OnSelectionChanged;

            Child.ShowAll();

            InitializeContext(extensionContext);

            FillTree();
            ExpandCategories();
            RestoreLastPanel();
            this.DefaultResponse = Gtk.ResponseType.Ok;

            buttonOk.CanDefault = true;
            buttonOk.GrabDefault();

            DefaultWidth  = 960;
            DefaultHeight = 680;
        }
Exemplo n.º 27
0
        public override void Initialize(NodeBuilder[] builders, TreePadOption[] options, string menuPath)
        {
            base.Initialize(builders, options, menuPath);

            UnitTestService.TestSuiteChanged += OnTestSuiteChanged;
            paned = new VPaned();

            VBox            vbox       = new VBox();
            DockItemToolbar topToolbar = Window.GetToolbar(DockPositionType.Top);

            buttonRunAll = new Button(new ImageView(ImageService.GetIcon("md-execute-all", IconSize.Menu)));
            buttonRunAll.Accessible.Name        = "TestPad.RunAll";
            buttonRunAll.Accessible.Description = GettextCatalog.GetString("Start a test run and run all the tests");
            buttonRunAll.Clicked    += new EventHandler(OnRunAllClicked);
            buttonRunAll.Sensitive   = true;
            buttonRunAll.TooltipText = GettextCatalog.GetString("Run all tests");
            topToolbar.Add(buttonRunAll);

            buttonDebugAll = new Button(new ImageView(ImageService.GetIcon("md-debug-all", IconSize.Menu)));
            buttonDebugAll.Accessible.Name        = "TestPad.DebugAll";
            buttonDebugAll.Accessible.Description = GettextCatalog.GetString("Debug all the tests");
            buttonDebugAll.Clicked    += new EventHandler(OnDebugAllClicked);
            buttonDebugAll.Sensitive   = true;
            buttonDebugAll.TooltipText = GettextCatalog.GetString("Debug all tests");
            topToolbar.Add(buttonDebugAll);

            buttonStop                 = new Button(new ImageView(Ide.Gui.Stock.Stop, IconSize.Menu));
            buttonStop.Clicked        += new EventHandler(OnStopClicked);
            buttonStop.Sensitive       = false;
            buttonStop.TooltipText     = GettextCatalog.GetString("Cancel running test");
            buttonStop.Accessible.Name = "TestPad.StopAll";
            buttonStop.Accessible.SetTitle(GettextCatalog.GetString(("Cancel")));
            buttonStop.Accessible.Description = GettextCatalog.GetString("Stops the current test run");
            topToolbar.Add(buttonStop);
            topToolbar.ShowAll();

            vbox.PackEnd(base.Control, true, true, 0);
            vbox.FocusChain = new Gtk.Widget [] { base.Control };

            paned.Pack1(vbox, true, true);

            detailsPad = new VBox();

            EventBox eb     = new EventBox();
            HBox     header = new HBox();

            eb.Add(header);

            detailLabel         = new HeaderLabel();
            detailLabel.Padding = 6;

            Button hb = new Button(new ImageView("gtk-close", IconSize.SmallToolbar));

            hb.Relief   = ReliefStyle.None;
            hb.Clicked += new EventHandler(OnCloseDetails);
            header.PackEnd(hb, false, false, 0);

            hb          = new Button(new ImageView("gtk-go-back", IconSize.SmallToolbar));
            hb.Relief   = ReliefStyle.None;
            hb.Clicked += new EventHandler(OnGoBackTest);
            header.PackEnd(hb, false, false, 0);

            header.Add(detailLabel);
            Gdk.Color hcol = eb.Style.Background(StateType.Normal);
            hcol.Red   = (ushort)(((double)hcol.Red) * 0.9);
            hcol.Green = (ushort)(((double)hcol.Green) * 0.9);
            hcol.Blue  = (ushort)(((double)hcol.Blue) * 0.9);
            //	eb.ModifyBg (StateType.Normal, hcol);

            detailsPad.PackStart(eb, false, false, 0);

            VPaned panedDetails = new VPaned();

            panedDetails.BorderWidth = 3;
            VBox boxPaned1 = new VBox();

            chart = new TestChart();
            chart.SelectionChanged += new EventHandler(OnChartDateChanged);

            var chartWidget = chart.GetNativeWidget <Widget> ();

            chartWidget.ButtonPressEvent += OnChartButtonPress;
            chartWidget.HeightRequest     = 50;

            Toolbar toolbar = new Toolbar();

            toolbar.IconSize     = IconSize.SmallToolbar;
            toolbar.ToolbarStyle = ToolbarStyle.Icons;
            toolbar.ShowArrow    = false;
            ToolButton but = new ToolButton("gtk-zoom-in");

            but.Clicked += new EventHandler(OnZoomIn);
            toolbar.Insert(but, -1);

            but          = new ToolButton("gtk-zoom-out");
            but.Clicked += new EventHandler(OnZoomOut);
            toolbar.Insert(but, -1);

            but          = new ToolButton("gtk-go-back");
            but.Clicked += new EventHandler(OnChartBack);
            toolbar.Insert(but, -1);

            but          = new ToolButton("gtk-go-forward");
            but.Clicked += new EventHandler(OnChartForward);
            toolbar.Insert(but, -1);

            but          = new ToolButton("gtk-goto-last");
            but.Clicked += new EventHandler(OnChartLast);
            toolbar.Insert(but, -1);

            boxPaned1.PackStart(toolbar, false, false, 0);
            boxPaned1.PackStart(chart, true, true, 0);

            panedDetails.Pack1(boxPaned1, false, false);

            // Detailed test information --------

            infoBook = new ButtonNotebook();
            infoBook.PageLoadRequired += new EventHandler(OnPageLoadRequired);

            // Info - Group summary

            Frame          tf = new Frame();
            ScrolledWindow sw = new ScrolledWindow();

            detailsTree = new TreeView {
                Name = "testPadDetailsTree"
            };

            detailsTree.HeadersVisible = true;
            detailsTree.RulesHint      = true;
            detailsStore = new ListStore(typeof(object), typeof(string), typeof(string), typeof(string), typeof(string));
            SemanticModelAttribute modelAttr = new SemanticModelAttribute("store__UnitTest", "store__Name", "store__Passed",
                                                                          "store__ErrorsAndFailures", "store__Ignored");

            SCM.TypeDescriptor.AddAttributes(detailsStore, modelAttr);

            CellRendererText trtest = new CellRendererText();
            CellRendererText tr;

            TreeViewColumn col3 = new TreeViewColumn();

            col3.Expand = false;
//			col3.Alignment = 0.5f;
            col3.Widget = new ImageView(TestStatusIcon.Success);
            col3.Widget.Show();
            tr = new CellRendererText();
//			tr.Xalign = 0.5f;
            col3.PackStart(tr, false);
            col3.AddAttribute(tr, "markup", 2);
            detailsTree.AppendColumn(col3);

            TreeViewColumn col4 = new TreeViewColumn();

            col4.Expand = false;
//			col4.Alignment = 0.5f;
            col4.Widget = new ImageView(TestStatusIcon.Failure);
            col4.Widget.Show();
            tr = new CellRendererText();
//			tr.Xalign = 0.5f;
            col4.PackStart(tr, false);
            col4.AddAttribute(tr, "markup", 3);
            detailsTree.AppendColumn(col4);

            TreeViewColumn col5 = new TreeViewColumn();

            col5.Expand = false;
//			col5.Alignment = 0.5f;
            col5.Widget = new ImageView(TestStatusIcon.NotRun);
            col5.Widget.Show();
            tr = new CellRendererText();
//			tr.Xalign = 0.5f;
            col5.PackStart(tr, false);
            col5.AddAttribute(tr, "markup", 4);
            detailsTree.AppendColumn(col5);

            TreeViewColumn col1 = new TreeViewColumn();

//			col1.Resizable = true;
//			col1.Expand = true;
            col1.Title = "Test";
            col1.PackStart(trtest, true);
            col1.AddAttribute(trtest, "markup", 1);
            detailsTree.AppendColumn(col1);

            detailsTree.Model = detailsStore;

            sw.Add(detailsTree);
            tf.Add(sw);
            tf.ShowAll();

            TestSummaryPage = infoBook.AddPage(GettextCatalog.GetString("Summary"), tf);

            // Info - Regressions list

            tf = new Frame();
            sw = new ScrolledWindow();
            tf.Add(sw);
            regressionTree = new TreeView {
                Name = "testPadRegressionTree"
            };
            regressionTree.HeadersVisible = false;
            regressionTree.RulesHint      = true;
            regressionStore = new ListStore(typeof(object), typeof(string), typeof(Xwt.Drawing.Image));
            SemanticModelAttribute regressionModelAttr = new SemanticModelAttribute("store__UnitTest", "store__Name", "store__Icon");

            SCM.TypeDescriptor.AddAttributes(detailsStore, regressionModelAttr);

            CellRendererText trtest2 = new CellRendererText();
            var pr = new CellRendererImage();

            TreeViewColumn col = new TreeViewColumn();

            col.PackStart(pr, false);
            col.AddAttribute(pr, "image", 2);
            col.PackStart(trtest2, false);
            col.AddAttribute(trtest2, "markup", 1);
            regressionTree.AppendColumn(col);
            regressionTree.Model = regressionStore;
            sw.Add(regressionTree);
            tf.ShowAll();

            TestRegressionsPage = infoBook.AddPage(GettextCatalog.GetString("Regressions"), tf);

            // Info - Failed tests list

            tf = new Frame();
            sw = new ScrolledWindow();
            tf.Add(sw);
            failedTree = new TreeView();
            failedTree.HeadersVisible = false;
            failedTree.RulesHint      = true;
            failedStore = new ListStore(typeof(object), typeof(string), typeof(Xwt.Drawing.Image));
            SemanticModelAttribute failedModelAttr = new SemanticModelAttribute("store__UnitTest", "store__Name", "store__Icon");

            SCM.TypeDescriptor.AddAttributes(failedStore, failedModelAttr);

            trtest2 = new CellRendererText();
            pr      = new CellRendererImage();

            col = new TreeViewColumn();
            col.PackStart(pr, false);
            col.AddAttribute(pr, "image", 2);
            col.PackStart(trtest2, false);
            col.AddAttribute(trtest2, "markup", 1);
            failedTree.AppendColumn(col);
            failedTree.Model = failedStore;
            sw.Add(failedTree);
            tf.ShowAll();

            TestFailuresPage = infoBook.AddPage(GettextCatalog.GetString("Failed tests"), tf);

            // Info - results

            tf = new Frame();
            sw = new ScrolledWindow();
            tf.Add(sw);
            resultView          = new TextView();
            resultView.Editable = false;
            sw.Add(resultView);
            tf.ShowAll();
            TestResultPage = infoBook.AddPage(GettextCatalog.GetString("Result"), tf);

            // Info - Output

            tf = new Frame();
            sw = new ScrolledWindow();
            tf.Add(sw);
            outputView          = new TextView();
            outputView.Editable = false;
            sw.Add(outputView);
            tf.ShowAll();
            TestOutputPage = infoBook.AddPage(GettextCatalog.GetString("Output"), tf);

            panedDetails.Pack2(infoBook, true, true);
            detailsPad.PackStart(panedDetails, true, true, 0);
            paned.Pack2(detailsPad, true, true);

            paned.ShowAll();

            infoBook.HidePage(TestResultPage);
            infoBook.HidePage(TestOutputPage);
            infoBook.HidePage(TestSummaryPage);
            infoBook.HidePage(TestRegressionsPage);
            infoBook.HidePage(TestFailuresPage);

            detailsPad.Sensitive = false;
            detailsPad.Hide();

            detailsTree.RowActivated    += new Gtk.RowActivatedHandler(OnTestActivated);
            regressionTree.RowActivated += new Gtk.RowActivatedHandler(OnRegressionTestActivated);
            failedTree.RowActivated     += new Gtk.RowActivatedHandler(OnFailedTestActivated);

            foreach (UnitTest t in UnitTestService.RootTests)
            {
                TreeView.AddChild(t);
            }

            base.TreeView.Tree.Name = "unitTestBrowserTree";
        }
Exemplo n.º 28
0
        public KeyBindingsPanel()
        {
            this.Build();

            keyStore                  = new TreeStore(typeof(Command), typeof(string), typeof(string), typeof(string), typeof(int), typeof(string), typeof(bool), typeof(bool));
            keyTreeView.Model         = filterModel = new TreeModelFilter(keyStore, null);
            filterModel.VisibleColumn = visibleCol;

            TreeViewColumn col = new TreeViewColumn();

            col.Title   = GettextCatalog.GetString("Command");
            col.Spacing = 4;
            CellRendererImage crp = new CellRendererImage();

            col.PackStart(crp, false);
            col.AddAttribute(crp, "stock-id", iconCol);
            col.AddAttribute(crp, "visible", iconVisibleCol);
            CellRendererText crt = new CellRendererText();

            col.PackStart(crt, true);
            col.AddAttribute(crt, "text", labelCol);
            col.AddAttribute(crt, "weight", boldCol);
            keyTreeView.AppendColumn(col);

            bindingTVCol       = new TreeViewColumn();
            bindingTVCol.Title = GettextCatalog.GetString("Key Binding");
            CellRendererKeyButtons bindingRenderer = new CellRendererKeyButtons(this);

            bindingRenderer.KeyBindingSelected += BindingRenderer_KeyBindingSelected;
            bindingTVCol.PackStart(bindingRenderer, false);
            bindingTVCol.AddAttribute(bindingRenderer, "text", bindingCol);
            bindingTVCol.AddAttribute(bindingRenderer, "command", commandCol);
            keyTreeView.AppendColumn(bindingTVCol);

            keyTreeView.AppendColumn(GettextCatalog.GetString("Description"), new CellRendererText(), "text", descCol);

            keyTreeView.Selection.Changed += OnKeysTreeViewSelectionChange;

            accelEntry.KeyPressEvent   += OnAccelEntryKeyPress;
            accelEntry.KeyReleaseEvent += OnAccelEntryKeyRelease;
            accelEntry.Changed         += delegate {
                UpdateWarningLabel();
            };
            updateButton.Clicked += OnUpdateButtonClick;
            addButton.Clicked    += OnAddRemoveButtonClick;

            currentBindings = KeyBindingService.CurrentKeyBindingSet.Clone();

            schemes = new List <KeyBindingScheme> (KeyBindingService.Schemes);

            foreach (KeyBindingScheme s in schemes)
            {
                schemeCombo.AppendText(s.Name);
            }

            if (schemes.Count > 0)
            {
                schemeCombo.RowSeparatorFunc = (TreeModel model, TreeIter iter) => {
                    if (model.GetValue(iter, 0) as string == "---")
                    {
                        return(true);
                    }
                    return(false);
                };
                schemeCombo.AppendText("---");
            }
            schemeCombo.AppendText(GettextCatalog.GetString("Custom"));

            SelectCurrentScheme();
            schemeCombo.Changed += OnKeyBindingSchemeChanged;

            searchEntry.Ready    = true;
            searchEntry.Visible  = true;
            searchEntry.Changed += delegate {
                processedFilterTerms = searchEntry.Entry.Text.ToLower().Split(new char [] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                filterChanged        = true;
                if (!filterTimeoutRunning)
                {
                    filterTimeoutRunning = true;
                    GLib.Timeout.Add(50, delegate {
                        if (!filterChanged)
                        {
                            if (filterTimeoutRunning)
                            {
                                Refilter();
                            }
                            filterTimeoutRunning = false;
                            return(false);
                        }
                        filterChanged = false;
                        return(true);
                    });
                }
                ;
            };

            keyTreeView.SearchColumn = -1;             // disable the interactive search

            //HACK: workaround for MD Bug 608021: Stetic loses values assigned to "new" properties of custom widget
            conflicButton.Label        = GettextCatalog.GetString("_View Conflicts");
            conflicButton.UseUnderline = true;

            SetupAccessibility();
        }
Exemplo n.º 29
0
        /// <summary>
        /// Constructor. Initialises the jobs TreeView and the controls associated with it.
        /// </summary>
        /// <param name="owner"></param>
        public CloudJobDisplayView(ViewBase owner) : base(owner)
        {
            store = new ListStore(typeof(string), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string));

            Type[] types = new Type[columnTitles.Length];
            tree = new Gtk.TreeView()
            {
                CanFocus = true, RubberBanding = true, Name = "custom_treeview"
            };
            tree.Selection.Mode = SelectionMode.Multiple;

            for (int i = 0; i < columnTitles.Length; i++)
            {
                types[i] = typeof(string);
                TreeViewColumn col = new TreeViewColumn
                {
                    Title        = columnTitles[i],
                    SortColumnId = i,
                    Resizable    = true,
                    Sizing       = TreeViewColumnSizing.GrowOnly
                };
                CellRendererText cell = new CellRendererText();
                col.PackStart(cell, false);
                col.AddAttribute(cell, "text", i);
                tree.AppendColumn(col);
            }
            store = new ListStore(types);

            // this filter holds the model (data) and is used to filter jobs based on whether
            // they were submitted by the user
            filterOwner = new TreeModelFilter(store, null)
            {
                VisibleFunc = FilterOwnerFunc
            };
            filterOwner.Refilter();

            // the filter then goes into this TreeModelSort, which is used to sort results when
            // the user clicks on a column header
            sort = new TreeModelSort(filterOwner)
            {
                DefaultSortFunc = (model, a, b) => SortData(model, a, b, Array.IndexOf(columnTitles, "Start Time"))
            };
            for (int i = 0; i < columnTitles.Length; i++)
            {
                int count = i;
                sort.SetSortFunc(i, (model, a, b) => SortData(model, a, b, count));
            }


            // change the colour of every other row - makes it easier to read
            string style = "style \"custom-treestyle\"{ GtkTreeView::odd-row-color = \"#ECF2FD\" GtkTreeView::even-row-color = \"#FFFFFF\" GtkTreeView::allow-rules = 1 } widget \"*custom_treeview*\" style \"custom-treestyle\"";

            //tree.CanFocus = true;
            tree.RulesHint = true;
            Rc.ParseString(style);


            // the tree holds the sorted, filtered data
            tree.Model = sort;

            // the tree goes into this ScrolledWindow, allowing users to scroll down
            // to view more jobs
            ScrolledWindow scroll = new ScrolledWindow();

            scroll.Add(tree);
            // never allow horizontal scrolling, and only allow vertical scrolling when needed
            scroll.HscrollbarPolicy = PolicyType.Automatic;
            scroll.VscrollbarPolicy = PolicyType.Automatic;

            // the scrolled window goes into this frame to distinguish the job view
            // from the controls beside it
            Frame treeContainer = new Frame("Cloud Jobs");

            treeContainer.Add(scroll);

            chkFilterOwner = new CheckButton("Display my jobs only");
            // display the user's jobs only by default
            myJobsOnly              = true;
            chkFilterOwner.Active   = true;
            chkFilterOwner.Toggled += ApplyFilter;
            chkFilterOwner.Yalign   = 0;

            downloadProgress    = new ProgressBar(new Adjustment(0, 0, 1, 0.01, 0.01, 1));
            lblDownloadProgress = new Label("Downloading: ");

            downloadProgressContainer = new HBox();
            downloadProgressContainer.PackStart(lblDownloadProgress, false, false, 0);
            downloadProgressContainer.PackStart(downloadProgress, false, false, 0);

            loadingProgress = new ProgressBar(new Adjustment(0, 0, 100, 0.01, 0.01, 100));
            loadingProgress.Adjustment.Lower = 0;
            loadingProgress.Adjustment.Upper = 100;



            lblDownloadStatus        = new Label("");
            lblDownloadStatus.Xalign = 0;

            btnChangeDownloadDir          = new Button("Change Download Directory");
            btnChangeDownloadDir.Clicked += BtnChangeDownloadDir_Click;

            tblButtonContainer = new Table(1, 1, false);
            tblButtonContainer.Attach(btnChangeDownloadDir, 0, 1, 0, 1, AttachOptions.Shrink, AttachOptions.Shrink, 0, 0);

            btnDownload          = new Button("Download");
            btnDownload.Clicked += BtnDownload_Click;
            HBox downloadButtonContainer = new HBox();

            downloadButtonContainer.PackStart(btnDownload, false, true, 0);

            btnDelete          = new Button("Delete Job(s)");
            btnDelete.Clicked += BtnDelete_Click;
            HBox deleteButtonContainer = new HBox();

            deleteButtonContainer.PackStart(btnDelete, false, true, 0);

            btnStop          = new Button("Stop Job(s)");
            btnStop.Clicked += BtnStop_Click;
            HBox stopButtonContainer = new HBox();

            stopButtonContainer.PackStart(btnStop, false, true, 0);

            btnSetup          = new Button("Credentials");
            btnSetup.Clicked += BtnSetup_Click;
            HBox setupButtonContainer = new HBox();

            setupButtonContainer.PackStart(btnSetup, false, true, 0);

            progress = new HBox();
            progress.PackStart(new Label("Loading Jobs: "), false, false, 0);
            progress.PackStart(loadingProgress, false, false, 0);

            vboxDownloadStatuses = new VBox();

            controlsContainer = new VBox();
            controlsContainer.PackStart(chkFilterOwner, false, false, 0);
            controlsContainer.PackStart(downloadButtonContainer, false, false, 0);
            controlsContainer.PackStart(stopButtonContainer, false, false, 0);
            controlsContainer.PackStart(deleteButtonContainer, false, false, 0);
            controlsContainer.PackStart(setupButtonContainer, false, false, 0);
            controlsContainer.PackEnd(tblButtonContainer, false, false, 0);

            hboxPrimary = new HBox();
            hboxPrimary.PackStart(treeContainer, true, true, 0);
            hboxPrimary.PackStart(controlsContainer, false, true, 0);


            vboxPrimary = new VBox();
            vboxPrimary.PackStart(hboxPrimary);
            vboxPrimary.PackStart(lblDownloadStatus, false, false, 0);
            vboxPrimary.PackEnd(progress, false, false, 0);
            vboxPrimary.PackEnd(downloadProgressContainer, false, false, 0);

            _mainWidget = vboxPrimary;
            vboxPrimary.ShowAll();

            downloadProgressContainer.HideAll();
            HideLoadingProgressBar();
        }
Exemplo n.º 30
0
        public StackTracePad()
        {
            this.ShadowType = ShadowType.None;

            var evalCmd = new ActionCommand("StackTracePad.EvaluateMethodParams", GettextCatalog.GetString("Evaluate Method Parameters"));
            var gotoCmd = new ActionCommand("StackTracePad.ActivateFrame", GettextCatalog.GetString("Activate Stack Frame"));

            menuSet = new CommandEntrySet();
            menuSet.Add(evalCmd);
            menuSet.Add(gotoCmd);
            menuSet.AddSeparator();
            menuSet.AddItem(EditCommands.SelectAll);
            menuSet.AddItem(EditCommands.Copy);

            store = new ListStore(typeof(bool), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string), typeof(Pango.Style), typeof(object), typeof(int), typeof(bool));

            tree                   = new PadTreeView(store);
            tree.RulesHint         = true;
            tree.HeadersVisible    = true;
            tree.Selection.Mode    = SelectionMode.Multiple;
            tree.SearchEqualFunc   = Search;
            tree.EnableSearch      = true;
            tree.SearchColumn      = 1;
            tree.ButtonPressEvent += HandleButtonPressEvent;
            tree.DoPopupMenu       = ShowPopup;

            var col = new TreeViewColumn();
            var crp = new CellRendererImage();

            col.PackStart(crp, false);
            crp.Image = pointerImage;
            col.AddAttribute(crp, "visible", IconColumn);
            tree.AppendColumn(col);

            col           = new TreeViewColumn();
            col.Title     = GettextCatalog.GetString("Name");
            refresh       = new CellRendererImage();
            refresh.Image = ImageService.GetIcon(Gtk.Stock.Refresh).WithSize(12, 12);
            col.PackStart(refresh, false);
            col.AddAttribute(refresh, "visible", CanRefreshColumn);
            col.PackStart(tree.TextRenderer, true);
            col.AddAttribute(tree.TextRenderer, "text", MethodColumn);
            col.AddAttribute(tree.TextRenderer, "foreground", ForegroundColumn);
            col.AddAttribute(tree.TextRenderer, "style", StyleColumn);
            col.Resizable = true;
            col.Alignment = 0.0f;
            tree.AppendColumn(col);

            col       = new TreeViewColumn();
            col.Title = GettextCatalog.GetString("File");
            col.PackStart(tree.TextRenderer, false);
            col.AddAttribute(tree.TextRenderer, "text", FileColumn);
            col.AddAttribute(tree.TextRenderer, "foreground", ForegroundColumn);
            tree.AppendColumn(col);

            col       = new TreeViewColumn();
            col.Title = GettextCatalog.GetString("Language");
            col.PackStart(tree.TextRenderer, false);
            col.AddAttribute(tree.TextRenderer, "text", LangColumn);
            col.AddAttribute(tree.TextRenderer, "foreground", ForegroundColumn);
            tree.AppendColumn(col);

            col       = new TreeViewColumn();
            col.Title = GettextCatalog.GetString("Address");
            col.PackStart(tree.TextRenderer, false);
            col.AddAttribute(tree.TextRenderer, "text", AddrColumn);
            col.AddAttribute(tree.TextRenderer, "foreground", ForegroundColumn);
            tree.AppendColumn(col);

            Add(tree);
            ShowAll();
            UpdateDisplay();

            DebuggingService.CallStackChanged    += OnClassStackChanged;
            DebuggingService.CurrentFrameChanged += OnFrameChanged;
            DebuggingService.StoppedEvent        += OnDebuggingServiceStopped;

            tree.RowActivated += OnRowActivated;
        }
Exemplo n.º 31
0
        /// <summary>
        /// Displays a child window with a list of soils, from which the user can make a selection
        /// This should probabaly be re-factored into a separate class
        /// Code largely copied from the intellisense viewer
        /// </summary>
        /// <param name="soilList">The list of soils to display</param>
        /// <returns>The index within the list of the user's selection, or -2 if cancelled</returns>
        private int SelectSoil(List <XmlNode> soilList)
        {
            ListStore soilsModel;

            curSel    = -1;
            selWindow = new Window(WindowType.Toplevel)
            {
                HeightRequest   = 300,
                WidthRequest    = 750,
                Decorated       = false,
                SkipPagerHint   = true,
                SkipTaskbarHint = true,
                TransientFor    = dialog1,
                Parent          = dialog1,
                WindowPosition  = WindowPosition.CenterOnParent
            };

            Frame selFrame = new Frame();

            selWindow.Add(selFrame);

            ScrolledWindow selScroller = new ScrolledWindow();

            selFrame.Add(selScroller);

            soilsModel = new ListStore(typeof(string), typeof(string), typeof(string), typeof(string), typeof(string));
            soilsView  = new Gtk.TreeView(soilsModel);
            selScroller.Add(soilsView);

            TreeViewColumn column = new TreeViewColumn()
            {
                Title     = "Name",
                Resizable = true,
            };
            CellRendererText textRender = new CellRendererText()
            {
                Editable   = false,
                WidthChars = 25,
                Ellipsize  = Pango.EllipsizeMode.End
            };

            column.PackStart(textRender, true);
            column.SetAttributes(textRender, "text", 0);
            soilsView.AppendColumn(column);

            column = new TreeViewColumn("Apsoil number", textRender, "text", 1)
            {
                Resizable = true
            };
            soilsView.AppendColumn(column);

            column = new TreeViewColumn("Soil type", textRender, "text", 2)
            {
                Resizable = true
            };
            soilsView.AppendColumn(column);

            column = new TreeViewColumn("Distance", textRender, "text", 3)
            {
                Resizable = true
            };
            soilsView.AppendColumn(column);

            soilsView.HasTooltip        = true;
            soilsView.TooltipColumn     = 4;
            soilsView.ButtonPressEvent += OnButtonPress;
            soilsView.KeyPressEvent    += OnSoilListKeyDown;

            soilsModel.Clear();
            foreach (XmlNode node in soilList)
            {
                string name     = XmlUtilities.NameAttr(node);
                string number   = XmlUtilities.Value(node, "ApsoilNumber");
                string soilType = XmlUtilities.Value(node, "SoilType");
                string distance = XmlUtilities.Value(node, "distanceFromQueryLocation");
                string comments = XmlUtilities.Value(node, "Comments");
                soilsModel.AppendValues(name, number, soilType, distance, comments);
            }

            selWindow.ShowAll();
            while (curSel == -1)
            {
                GLib.MainContext.Iteration();
            }
            return(curSel);
        }
Exemplo n.º 32
0
        public StackTracePad()
        {
            this.ShadowType = ShadowType.None;

            ActionCommand gotoCmd = new ActionCommand("StackTracePad.ActivateFrame", GettextCatalog.GetString("Activate Stack Frame"));

            menuSet = new CommandEntrySet();
            menuSet.Add(gotoCmd);
            menuSet.AddSeparator();
            menuSet.AddItem(EditCommands.SelectAll);
            menuSet.AddItem(EditCommands.Copy);

            store = new ListStore(typeof(string), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string), typeof(Pango.Style));

            tree                = new MonoDevelop.Ide.Gui.Components.PadTreeView(store);
            tree.RulesHint      = true;
            tree.HeadersVisible = true;
            tree.Selection.Mode = SelectionMode.Multiple;
            tree.DoPopupMenu    = ShowPopup;

            TreeViewColumn col = new TreeViewColumn();
            CellRenderer   crp = new CellRendererIcon();

            col.PackStart(crp, false);
            col.AddAttribute(crp, "stock_id", 0);
            tree.AppendColumn(col);

            TreeViewColumn FrameCol = new TreeViewColumn();

            FrameCol.Title = GettextCatalog.GetString("Name");
            FrameCol.PackStart(tree.TextRenderer, true);
            FrameCol.AddAttribute(tree.TextRenderer, "text", 1);
            FrameCol.AddAttribute(tree.TextRenderer, "foreground", 5);
            FrameCol.AddAttribute(tree.TextRenderer, "style", 6);
            FrameCol.Resizable = true;
            FrameCol.Alignment = 0.0f;
            tree.AppendColumn(FrameCol);

            col       = new TreeViewColumn();
            col.Title = GettextCatalog.GetString("File");
            col.PackStart(tree.TextRenderer, false);
            col.AddAttribute(tree.TextRenderer, "text", 2);
            col.AddAttribute(tree.TextRenderer, "foreground", 5);
            tree.AppendColumn(col);

            col       = new TreeViewColumn();
            col.Title = GettextCatalog.GetString("Language");
            col.PackStart(tree.TextRenderer, false);
            col.AddAttribute(tree.TextRenderer, "text", 3);
            col.AddAttribute(tree.TextRenderer, "foreground", 5);
            tree.AppendColumn(col);

            col       = new TreeViewColumn();
            col.Title = GettextCatalog.GetString("Address");
            col.PackStart(tree.TextRenderer, false);
            col.AddAttribute(tree.TextRenderer, "text", 4);
            col.AddAttribute(tree.TextRenderer, "foreground", 5);
            tree.AppendColumn(col);

            Add(tree);
            ShowAll();

            current_backtrace = DebuggingService.CurrentCallStack;
            UpdateDisplay();

            DebuggingService.CallStackChanged    += (EventHandler)DispatchService.GuiDispatch(new EventHandler(OnClassStackChanged));
            DebuggingService.CurrentFrameChanged += (EventHandler)DispatchService.GuiDispatch(new EventHandler(OnFrameChanged));
            tree.RowActivated += OnRowActivated;
        }
Exemplo n.º 33
0
        public void Initialize(IPadWindow window)
        {
            // Toolbar and menu definitions

            ActionCommand gotoCmd       = new ActionCommand(LocalCommands.GoToFile, GettextCatalog.GetString("Go to File"));
            ActionCommand propertiesCmd = new ActionCommand(LocalCommands.Properties, GettextCatalog.GetString("Properties"), Gtk.Stock.Properties);

            menuSet = new CommandEntrySet();
            menuSet.Add(gotoCmd);
            menuSet.AddSeparator();
            menuSet.AddItem(DebugCommands.EnableDisableBreakpoint);
            menuSet.AddItem(DebugCommands.ClearAllBreakpoints);
            menuSet.AddItem(DebugCommands.DisableAllBreakpoints);
            menuSet.AddItem(EditCommands.DeleteKey);
            menuSet.AddSeparator();
            menuSet.Add(propertiesCmd);

            CommandEntrySet toolbarSet = new CommandEntrySet();

            toolbarSet.AddItem(DebugCommands.EnableDisableBreakpoint);
            toolbarSet.AddItem(DebugCommands.ClearAllBreakpoints);
            toolbarSet.AddItem(DebugCommands.DisableAllBreakpoints);
            toolbarSet.AddItem(EditCommands.Delete);
            toolbarSet.AddSeparator();
            toolbarSet.Add(propertiesCmd);

            // The breakpoint list

            store = new TreeStore(typeof(string), typeof(bool), typeof(string), typeof(object), typeof(string), typeof(string), typeof(string), typeof(string));

            tree                = new PadTreeView();
            tree.Model          = store;
            tree.RulesHint      = true;
            tree.HeadersVisible = true;
            tree.DoPopupMenu    = ShowPopup;
            tree.KeyPressEvent += OnKeyPressEvent;
            tree.Selection.Mode = SelectionMode.Multiple;

            treeState = new TreeViewState(tree, (int)Columns.Breakpoint);

            TreeViewColumn col = new TreeViewColumn();
            CellRenderer   crp = new CellRendererImage();

            col.PackStart(crp, false);
            col.AddAttribute(crp, "stock_id", (int)Columns.Icon);
            tree.AppendColumn(col);

            Gtk.CellRendererToggle toggleRender = new Gtk.CellRendererToggle();
            toggleRender.Toggled += new ToggledHandler(ItemToggled);
            col = new TreeViewColumn();
            col.PackStart(toggleRender, false);
            col.AddAttribute(toggleRender, "active", (int)Columns.Selected);
            tree.AppendColumn(col);

            TreeViewColumn FrameCol = new TreeViewColumn();
            CellRenderer   crt      = tree.TextRenderer;

            FrameCol.Title = GettextCatalog.GetString("Name");
            FrameCol.PackStart(crt, true);
            FrameCol.AddAttribute(crt, "text", (int)Columns.FileName);
            FrameCol.Resizable = true;
            FrameCol.Alignment = 0.0f;
            tree.AppendColumn(FrameCol);

            col           = tree.AppendColumn(GettextCatalog.GetString("Condition"), crt, "text", (int)Columns.Condition);
            col.Resizable = true;

            col           = tree.AppendColumn(GettextCatalog.GetString("Trace Expression"), crt, "text", (int)Columns.TraceExp);
            col.Resizable = true;

            col           = tree.AppendColumn(GettextCatalog.GetString("Hit Count"), crt, "text", (int)Columns.HitCount);
            col.Resizable = true;

            col           = tree.AppendColumn(GettextCatalog.GetString("Last Trace"), crt, "text", (int)Columns.LastTrace);
            col.Resizable = true;

            sw            = new Gtk.ScrolledWindow();
            sw.ShadowType = ShadowType.None;
            sw.Add(tree);

            control = sw;

            control.ShowAll();

            breakpoints = DebuggingService.Breakpoints;

            UpdateDisplay();

            breakpointUpdatedHandler = DispatchService.GuiDispatch <EventHandler <BreakpointEventArgs> > (OnBreakpointUpdated);
            breakpointRemovedHandler = DispatchService.GuiDispatch <EventHandler <BreakpointEventArgs> > (OnBreakpointRemoved);
            breakpointAddedHandler   = DispatchService.GuiDispatch <EventHandler <BreakpointEventArgs> > (OnBreakpointAdded);
            breakpointChangedHandler = DispatchService.GuiDispatch <EventHandler> (OnBreakpointChanged);

            breakpoints.BreakpointAdded   += breakpointAddedHandler;
            breakpoints.BreakpointRemoved += breakpointRemovedHandler;
            breakpoints.Changed           += breakpointChangedHandler;
            breakpoints.BreakpointUpdated += breakpointUpdatedHandler;

            DebuggingService.PausedEvent  += OnDebuggerStatusCheck;
            DebuggingService.ResumedEvent += OnDebuggerStatusCheck;
            DebuggingService.StoppedEvent += OnDebuggerStatusCheck;

            tree.RowActivated += OnRowActivated;

            DockItemToolbar toolbar = window.GetToolbar(PositionType.Top);

            toolbar.Add(toolbarSet, sw);
            toolbar.ShowAll();
        }
Exemplo n.º 34
0
        /// <summary>
        /// Populate the grid from the DataSource.
        /// Note that we don't statically set the contents of the grid cells, but rather do this
        /// dynamically in OnSetCellData. However, we do set up appropriate attributes for
        /// cell columns, and a set of cell renderers.
        /// </summary>
        private void PopulateGrid()
        {
            // WaitCursor = true;
            // Set the cursor directly rather than via the WaitCursor property, as the property setter
            // runs a message loop. This is normally desirable, but in this case, we have lots
            // of events associated with the grid data, and it's best to let them be handled in the
            // main message loop.

            if (MasterView.MainWindow != null)
            {
                MasterView.MainWindow.Cursor = new Gdk.Cursor(Gdk.CursorType.Watch);
            }

            ClearGridColumns();
            Fixedcolview.Visible = false;
            colLookup.Clear();
            // Begin by creating a new ListStore with the appropriate number of
            // columns. Use the string column type for everything.
            int nCols = DataSource != null ? this.DataSource.Columns.Count : 0;

            Type[] colTypes = new Type[nCols];
            for (int i = 0; i < nCols; i++)
            {
                colTypes[i] = typeof(string);
            }

            gridmodel = new ListStore(colTypes);


            image1.Visible = false;
            // Now set up the grid columns
            for (int i = 0; i < nCols; i++)
            {
                // Design plan: include renderers for text, toggles and combos, but hide all but one of them
                CellRendererText   textRender   = new Gtk.CellRendererText();
                CellRendererPixbuf pixbufRender = new CellRendererPixbuf();
                pixbufRender.Pixbuf = new Gdk.Pixbuf(null, "ApsimNG.Resources.MenuImages.Save.svg");
                pixbufRender.Xalign = 0.5f;

                if (i == 0 || i == nCols - 1)
                {
                    colLookup.Add(textRender, i);
                }
                else
                {
                    colLookup.Add(pixbufRender, i);
                }

                textRender.FixedHeightFromFont = 1;                                           // 1 line high

                pixbufRender.Height = 19;                                                     //TODO change based on zoom rate of UI //previously 23 before smaller UI font
                textRender.Editable = !isReadOnly;
                textRender.Xalign   = ((i == 0) || (i == 1) && isPropertyMode) ? 0.0f : 1.0f; // For right alignment of text cell contents; left align the first column

                TreeViewColumn column = new TreeViewColumn();
                column.Title = this.DataSource.Columns[i].Caption;

                if (i == 0 || i == nCols - 1)
                {
                    column.PackStart(textRender, true);     // 0
                }
                else
                {
                    column.PackStart(pixbufRender, false);  // 3
                }

                if (i == 0 || i == nCols - 1)
                {
                    column.SetCellDataFunc(textRender, OnSetCellData);
                }
                else
                {
                    column.SetCellDataFunc(pixbufRender, RenderActivityStatus);
                }
                if (i == 1 && isPropertyMode)
                {
                    column.Alignment = 0.0f;
                }
                else
                {
                    column.Alignment = 0.5f; // For centered alignment of the column header
                }

                Grid.AppendColumn(column);

                // Gtk Treeview doesn't support "frozen" columns, so we fake it by creating a second, identical, TreeView to display
                // the columns we want frozen
                // For now, these frozen columns will be treated as read-only text
                TreeViewColumn fixedColumn = new TreeViewColumn(this.DataSource.Columns[i].ColumnName, textRender, "text", i);
                //fixedColumn.Sizing = TreeViewColumnSizing.GrowOnly;
                fixedColumn.Resizable = false;
                if (i == 0)
                {
                    fixedColumn.SetCellDataFunc(textRender, OnSetCellData);
                }
                else
                {
                    fixedColumn.SetCellDataFunc(pixbufRender, RenderActivityStatus);
                }
                fixedColumn.Alignment = 0.0f; // For centered alignment of the column header
                fixedColumn.Visible   = true;
                Fixedcolview.AppendColumn(fixedColumn);
            }

            if (!isPropertyMode)
            {
                // Add an empty column at the end; auto-sizing will give this any "leftover" space
                TreeViewColumn fillColumn = new TreeViewColumn();
                Grid.AppendColumn(fillColumn);
                fillColumn.Sizing = TreeViewColumnSizing.Autosize;
            }

            int nRows = DataSource != null ? this.DataSource.Rows.Count : 0;

            Grid.Model         = null;
            Fixedcolview.Model = null;
            for (int row = 0; row < nRows; row++)
            {
                // We could store data into the grid model, but we don't.
                // Instead, we retrieve the data from our datastore when the OnSetCellData function is called
                gridmodel.Append();
            }
            Grid.Model = gridmodel;

            SetColumnHeaders(Grid);
            SetColumnHeaders(Fixedcolview);

            Grid.EnableSearch         = false;
            Fixedcolview.EnableSearch = false;

            Grid.Show();

            Fixedcolview.WidthRequest = 150;
            if (MasterView.MainWindow != null)
            {
                MasterView.MainWindow.Cursor = null;
            }
        }
Exemplo n.º 35
0
        public TestReportDialog(int passedNumber, int failedNumber,
                                List <string> resultsAL) :
            base("UnitTest", "UnitTest", IntPtr.Zero, 0, null, "UnitTest",
                 Stock.Ok, ResponseType.Ok)
        {
            string testReport;

            SetSizeRequest(700, 400);

            var passedLabel = new Label("Passed : " + passedNumber);
            var failedLabel = new Label("Failed : " + failedNumber);
            var table       = new GimpTable(2, 10, false)
            {
                BorderWidth = 12, ColumnSpacing = 6, RowSpacing = 6
            };

            var frame = new Frame("Tests results:");

            _filterEntry          = new Entry();
            _filterEntry.Changed += delegate
            {
                filter.Refilter();
            };

            var filterLabel = new Label("Assembly Search:");
            var filterBox   = new HBox();

            filterBox.PackStart(filterLabel, false, false, 20);
            filterBox.PackEnd(_filterEntry, true, true, 20);

            var tree           = new TreeView();
            var assemblyColumn = new TreeViewColumn()
            {
                Title = "Assembly"
            };

            var assemblyNameCell = new CellRendererText();

            assemblyColumn.PackStart(assemblyNameCell, true);
            var resultColumn = new TreeViewColumn()
            {
                Title = "Result"
            };

            var resultReportCell = new CellRendererText()
            {
                Editable = false
            };

            resultColumn.PackStart(resultReportCell, true);
            tree.AppendColumn(assemblyColumn);
            tree.AppendColumn(resultColumn);

            var resultListStore = new ListStore(typeof(string), typeof(string));

            foreach (string tmp in resultsAL)
            {
                int    pos      = tmp.IndexOf(":");
                string assembly = tmp.Substring(0, pos);
                // +2 because of the ': '
                testReport = tmp.Substring(pos + 2, tmp.Length - (pos + 2));
                resultListStore.AppendValues(assembly, testReport);
            }

            assemblyColumn.SetCellDataFunc(assemblyNameCell,
                                           new TreeCellDataFunc(RenderAssembly));
            resultColumn.SetCellDataFunc(resultReportCell,
                                         new TreeCellDataFunc(RenderResult));

            filter             = new TreeModelFilter(resultListStore, null);
            filter.VisibleFunc = new TreeModelFilterVisibleFunc(FilterTree);
            tree.Model         = filter;

            var sw = new ScrolledWindow()
            {
                ShadowType = ShadowType.EtchedIn
            };

            sw.SetPolicy(PolicyType.Automatic, PolicyType.Automatic);
            sw.Add(tree);

            var swBox = new HBox();

            swBox.PackStart(sw, true, true, 20);

            table.AttachAligned(0, 0, "", 0.0, 0.5, passedLabel, 1, true);
            table.AttachAligned(0, 1, "", 0.0, 0.5, failedLabel, 1, true);
            frame.Add(table);
            var dummyFrameBox = new HBox();

            dummyFrameBox.PackStart(frame, true, true, 20);
            VBox.PackStart(dummyFrameBox, false, false, 0);

            VBox.PackStart(swBox, true, true, 0);
            VBox.PackStart(filterBox, false, false, 0);
        }
            private void create_tree()
            {
                tree = new TreeView ();
                tree.Model = store;
                tree.HeadersVisible = false;
                //tree.HeadersClickable = true;

                CellRendererText renderer =
                    new CellRendererText ();
                renderer.Yalign = 0;

                TreeViewColumn col = new TreeViewColumn ();
                //col.Title = Catalog.GetString ("Tournament");
                col.PackStart (renderer, false);
                col.SetAttributes (renderer, "markup", 1);
                CellRendererText resultRenderer =
                    new CellRendererText ();
                resultRenderer.Xpad = 5;
                resultRenderer.Yalign = 0;
                col.PackStart (resultRenderer, false);
                col.SetAttributes (resultRenderer, "markup",
                           2);

                tree.AppendColumn (col);
                tree.RowActivated += OnRowActivated;
            }
Exemplo n.º 37
0
        public StatusView(string filepath, Repository vc)
            : base(Path.GetFileName(filepath) + " Status")
        {
            this.vc       = vc;
            this.filepath = filepath;
            changeSet     = vc.CreateChangeSet(filepath);

            main   = new VBox(false, 6);
            widget = main;

            buttonCommit = new Gtk.Button()
            {
                Image = new Gtk.Image("vc-commit", Gtk.IconSize.Menu),
                Label = GettextCatalog.GetString("Commit...")
            };
            buttonCommit.Image.Show();
            buttonRevert = new Gtk.Button()
            {
                Image = new Gtk.Image("vc-revert-command", Gtk.IconSize.Menu),
                Label = GettextCatalog.GetString("Revert")
            };
            buttonRevert.Image.Show();
            showRemoteStatus = new Gtk.Button()
            {
                Image = new Gtk.Image("vc-remote-status", Gtk.IconSize.Menu),
                Label = GettextCatalog.GetString("Show Remote Status")
            };
            showRemoteStatus.Image.Show();

            status = new Label("");
            main.PackStart(status, false, false, 0);

            scroller                = new ScrolledWindow();
            scroller.ShadowType     = Gtk.ShadowType.None;
            filelist                = new FileTreeView();
            filelist.Selection.Mode = Gtk.SelectionMode.Multiple;

            scroller.Add(filelist);
            scroller.HscrollbarPolicy   = PolicyType.Automatic;
            scroller.VscrollbarPolicy   = PolicyType.Automatic;
            filelist.RowActivated      += OnRowActivated;
            filelist.DiffLineActivated += OnDiffLineActivated;

            CellRendererToggle cellToggle = new CellRendererToggle();

            cellToggle.Toggled += new ToggledHandler(OnCommitToggledHandler);
            var crc = new CellRendererIcon();

            crc.StockId       = "vc-comment";
            colCommit         = new TreeViewColumn();
            colCommit.Spacing = 2;
            colCommit.Widget  = new Gtk.Image("vc-commit", Gtk.IconSize.Menu);
            colCommit.Widget.Show();
            colCommit.PackStart(cellToggle, false);
            colCommit.PackStart(crc, false);
            colCommit.AddAttribute(cellToggle, "active", ColCommit);
            colCommit.AddAttribute(cellToggle, "visible", ColShowToggle);
            colCommit.AddAttribute(crc, "visible", ColShowComment);

            CellRendererText crt     = new CellRendererText();
            var            crp       = new CellRendererPixbuf();
            TreeViewColumn colStatus = new TreeViewColumn();

            colStatus.Title = GettextCatalog.GetString("Status");
            colStatus.PackStart(crp, false);
            colStatus.PackStart(crt, true);
            colStatus.AddAttribute(crp, "pixbuf", ColIcon);
            colStatus.AddAttribute(crp, "visible", ColShowStatus);
            colStatus.AddAttribute(crt, "text", ColStatus);
            colStatus.AddAttribute(crt, "foreground", ColStatusColor);

            TreeViewColumn colFile = new TreeViewColumn();

            colFile.Title   = GettextCatalog.GetString("File");
            colFile.Spacing = 2;
            crp             = new CellRendererPixbuf();
            diffRenderer    = new CellRendererDiff();
            colFile.PackStart(crp, false);
            colFile.PackStart(diffRenderer, true);
            colFile.AddAttribute(crp, "pixbuf", ColIconFile);
            colFile.AddAttribute(crp, "visible", ColShowStatus);
            colFile.SetCellDataFunc(diffRenderer, new TreeCellDataFunc(SetDiffCellData));

            crt             = new CellRendererText();
            crp             = new CellRendererPixbuf();
            colRemote       = new TreeViewColumn();
            colRemote.Title = GettextCatalog.GetString("Remote Status");
            colRemote.PackStart(crp, false);
            colRemote.PackStart(crt, true);
            colRemote.AddAttribute(crp, "pixbuf", ColRemoteIcon);
            colRemote.AddAttribute(crt, "text", ColRemoteStatus);
            colRemote.AddAttribute(crt, "foreground", ColStatusColor);

            filelist.AppendColumn(colStatus);
            filelist.AppendColumn(colRemote);
            filelist.AppendColumn(colCommit);
            filelist.AppendColumn(colFile);

            colRemote.Visible = false;

            filestore               = new TreeStore(typeof(Gdk.Pixbuf), typeof(string), typeof(string[]), typeof(string), typeof(bool), typeof(bool), typeof(string), typeof(bool), typeof(bool), typeof(Gdk.Pixbuf), typeof(bool), typeof(Gdk.Pixbuf), typeof(string), typeof(bool), typeof(bool));
            filelist.Model          = filestore;
            filelist.TestExpandRow += new Gtk.TestExpandRowHandler(OnTestExpandRow);

            commitBox = new VBox();

            HeaderBox commitMessageLabelBox = new HeaderBox();

            commitMessageLabelBox.SetPadding(6, 6, 6, 6);
            commitMessageLabelBox.SetMargins(1, 1, 0, 0);

            HBox labBox = new HBox();

            labelCommit        = new Gtk.Label(GettextCatalog.GetString("Commit message:"));
            labelCommit.Xalign = 0;
            labBox.PackStart(new Gtk.Image("vc-comment", Gtk.IconSize.Menu), false, false, 0);
            labBox.PackStart(labelCommit, true, true, 3);

            commitMessageLabelBox.Add(labBox);
            commitMessageLabelBox.ShowAll();
            //commitBox.PackStart (commitMessageLabelBox, false, false, 0);

            Gtk.ScrolledWindow frame = new Gtk.ScrolledWindow();
            frame.HeightRequest        = 75;
            frame.ShadowType           = ShadowType.None;
            commitText                 = new TextView();
            commitText.WrapMode        = WrapMode.WordChar;
            commitText.Buffer.Changed += OnCommitTextChanged;
            frame.Add(commitText);
            commitBox.PackStart(frame, true, true, 0);

            var paned = new VPanedThin();

            paned.HandleWidget = commitMessageLabelBox;
            paned.Pack1(scroller, true, true);
            paned.Pack2(commitBox, false, false);
            main.PackStart(paned, true, true, 0);

            main.ShowAll();
            status.Visible = false;

            filelist.Selection.Changed += new EventHandler(OnCursorChanged);
            VersionControlService.FileStatusChanged += OnFileStatusChanged;

            filelist.HeadersClickable = true;
            filestore.SetSortFunc(0, CompareNodes);
            colStatus.SortColumnId = 0;
            filestore.SetSortFunc(1, CompareNodes);
            colRemote.SortColumnId = 1;
            filestore.SetSortFunc(2, CompareNodes);
            colCommit.SortColumnId = 2;
            filestore.SetSortFunc(3, CompareNodes);
            colFile.SortColumnId = 3;

            filestore.SetSortColumnId(3, Gtk.SortType.Ascending);

            filelist.DoPopupMenu = DoPopupMenu;

            StartUpdate();
        }
Exemplo n.º 38
0
        public DueDateColumn()
        {
            TreeViewColumn = new TreeViewColumn {
                Title = Catalog.GetString ("Due Date"),
                Sizing = TreeViewColumnSizing.Fixed,
                Alignment = 0f,
                FixedWidth = 90,
                Resizable = false,
                Clickable = true
            };

            var dueDateStore = new ListStore (typeof (string));
            var today = DateTime.Now;
            dueDateStore.AppendValues (
                today.ToString (Catalog.GetString ("M/d - ")) + Catalog.GetString ("Today"));
            dueDateStore.AppendValues (
                today.AddDays (1).ToString (Catalog.GetString ("M/d - ")) + Catalog.GetString ("Tomorrow"));
            dueDateStore.AppendValues (
                today.AddDays (2).ToString (Catalog.GetString ("M/d - ddd")));
            dueDateStore.AppendValues (
                today.AddDays (3).ToString (Catalog.GetString ("M/d - ddd")));
            dueDateStore.AppendValues (
                today.AddDays (4).ToString (Catalog.GetString ("M/d - ddd")));
            dueDateStore.AppendValues (
                today.AddDays (5).ToString (Catalog.GetString ("M/d - ddd")));
            dueDateStore.AppendValues (
                today.AddDays (6).ToString (Catalog.GetString ("M/d - ddd")));
            dueDateStore.AppendValues (
                today.AddDays (7).ToString (Catalog.GetString ("M/d - ")) + Catalog.GetString ("In 1 Week"));
            dueDateStore.AppendValues (Catalog.GetString ("No Date"));
            dueDateStore.AppendValues (Catalog.GetString ("Choose Date..."));

            var renderer = new CellRendererCombo {
                Editable = true,
                HasEntry = false,
                Model = dueDateStore,
                TextColumn = 0,
                Xalign = 0.0f
            };

            renderer.EditingStarted += (o, args) => {
                TreeIter iter;
                var path = new TreePath (args.Path);
                if (!model.GetIter (out iter, path))
                    return;

                var task = model.GetValue (iter, 0) as ITask;
                if (task == null)
                    return;

                taskBeingEdited = new TaskBeingEdited (task, iter, path);
                if (CellEditingStarted != null)
                    CellEditingStarted (this, new TaskRowEditingEventArgs (task, iter, path));
            };

            renderer.EditingCanceled += delegate { EndCellEditing (); };

            renderer.Edited += (o, args) => {
                TreeIter iter;
                var path = new TreePath (args.Path);
                var newText = args.NewText;
                if (newText != null && model.GetIter (out iter, path)) {

                    //  2/11 - Today
                    //  2/12 - Tomorrow
                    //  2/13 - Wed
                    //  2/14 - Thu
                    //  2/15 - Fri
                    //  2/16 - Sat
                    //  2/17 - Sun
                    // --------------
                    //  2/18 - In 1 Week
                    // --------------
                    //  No Date
                    // ---------------
                    //  Choose Date...

                    var newDate = DateTime.MinValue;
                    var tday = DateTime.Now;
                    var task = model.GetValue (iter, 0) as ITask;

                    if (newText == tday.ToString (Catalog.GetString ("M/d - ")) + Catalog.GetString ("Today"))
                        newDate = tday;
                    else if (newText == tday.AddDays (1).ToString (Catalog.GetString ("M/d - "))
                             + Catalog.GetString ("Tomorrow"))
                        newDate = tday.AddDays (1);
                    else if (newText == Catalog.GetString ("No Date"))
                        newDate = DateTime.MinValue;
                    else if (newText == tday.AddDays (7).ToString (Catalog.GetString ("M/d - "))
                             + Catalog.GetString ("In 1 Week"))
                        newDate = tday.AddDays (7);
                    else if (newText == Catalog.GetString ("Choose Date...")) {
                        var tc = new TaskCalendar (task, view.TreeView.Parent);
                        tc.ShowCalendar ();
                        return;
                    } else {
                        for (int i = 2; i <= 6; i++) {
                            DateTime testDate = tday.AddDays (i);
                            if (testDate.ToString (Catalog.GetString ("M/d - ddd")) == newText) {
                                newDate = testDate;
                                break;
                            }
                        }
                    }

                    Logger.Debug ("task.State {0}", task.State);

                    if (task.State != TaskState.Completed) {
                        // Modify the due date
                        task.DueDate = newDate;
                    }
                }
                EndCellEditing ();
            };

            TreeViewColumn.PackStart (renderer, true);
            TreeViewColumn.SetCellDataFunc (renderer, DueDateCellDataFunc);
        }
Exemplo n.º 39
0
        public PriorityColumn()
        {
            TreeViewColumn = new TreeViewColumn {
                Title = Catalog.GetString ("Priority"),
                Sizing = TreeViewColumnSizing.Fixed,
                Alignment = 0.5f,
                FixedWidth = 30,
                Resizable = false,
                Clickable = true
            };

            var priorityStore = new ListStore (typeof (string));
            priorityStore.AppendValues (Catalog.GetString ("1")); // High
            priorityStore.AppendValues (Catalog.GetString ("2")); // Medium
            priorityStore.AppendValues (Catalog.GetString ("3")); // Low
            priorityStore.AppendValues (Catalog.GetString ("-")); // None

            var renderer = new CellRendererCombo {
                Editable = true,
                HasEntry = false,
                Model = priorityStore,
                TextColumn = 0,
                Xalign = 0.5f
            };

            renderer.EditingStarted += (o, args) => {
                TreeIter iter;
                var path = new TreePath (args.Path);
                if (!model.GetIter (out iter, path))
                    return;

                var task = model.GetValue (iter, 0) as ITask;
                if (task == null)
                    return;

                taskBeingEdited = new TaskBeingEdited (task, iter, path);
                if (CellEditingStarted != null)
                    CellEditingStarted (this, new TaskRowEditingEventArgs (task, iter, path));
            };

            renderer.EditingCanceled += delegate { EndCellEditing (); };

            renderer.Edited += (o, args) => {
                TreeIter iter;
                var path = new TreePath (args.Path);
                if (model.GetIter (out iter, path)) {
                    TaskPriority newPriority;
                    var newText = args.NewText;
                    if (newText == Catalog.GetString ("3"))
                        newPriority = TaskPriority.Low;
                    else if (newText == Catalog.GetString ("2"))
                        newPriority = TaskPriority.Medium;
                    else if (newText == Catalog.GetString ("1"))
                        newPriority = TaskPriority.High;
                    else
                        newPriority = TaskPriority.None;

                    // Update the priority if it's different
                    var task = model.GetValue (iter, 0) as ITask;
                    if (task.Priority != newPriority)
                        task.Priority = newPriority;
                }
                EndCellEditing ();
            };

            TreeViewColumn.PackStart (renderer, true);
            TreeViewColumn.SetCellDataFunc (renderer, TaskPriorityCellDataFunc);
        }