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);
            }
        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);
        }
Exemple #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);
        }
            private void PluginInfoCellDataFunc(TreeViewColumn
							     col,
							     CellRenderer
							     cell,
							     TreeModel model,
							     TreeIter iter)
            {
                CellRendererText r = (CellRendererText) cell;
                PluginInfo info =
                    (PluginInfo) model.GetValue (iter, 0);
                r.Markup =
                    String.Format ("<b>{0}</b>\n{1}",
                               info.Plugin.Name,
                               info.Plugin.
                               Description);
            }
        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 = 3;
            treeviewInspections.HasTooltip    = true;

            toggleRenderer.Toggled += OnTitleToggled;

            var titleCol = new TreeViewColumn();

            treeviewInspections.AppendColumn(titleCol);
            titleCol.PackStart(toggleRenderer, false);
            titleCol.Sizing = TreeViewColumnSizing.Autosize;
            titleCol.SetCellDataFunc(toggleRenderer, TitleColDataFunc);


            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 col = treeviewInspections.AppendColumn("Severity", comboRenderer);

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

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

            comboBoxStore.AppendValues(GetDescription(DiagnosticSeverity.Hidden), DiagnosticSeverity.Hidden);
            comboBoxStore.AppendValues(GetDescription(DiagnosticSeverity.Error), DiagnosticSeverity.Error);
            comboBoxStore.AppendValues(GetDescription(DiagnosticSeverity.Warning), DiagnosticSeverity.Warning);
            comboBoxStore.AppendValues(GetDescription(DiagnosticSeverity.Info), DiagnosticSeverity.Info);
            comboRenderer.Model      = comboBoxStore;
            comboRenderer.Mode       = CellRendererMode.Activatable;
            comboRenderer.TextColumn = 0;

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

            comboRenderer.Edited += OnComboEdited;

            col.SetCellDataFunc(comboRenderer, ComboDataFunc);
            treeviewInspections.HeadersVisible = false;
            treeviewInspections.RulesHint      = true;
            treeviewInspections.Model          = treeStore;
            treeviewInspections.SearchColumn   = -1;           // disable the interactive search
            GetAllSeverities();
            FillInspectors(null);
        }
Exemple #6
0
        /// <summary>
        /// Set up the UI inside the Window
        /// </summary>
        private void InitializeWidgets()
        {
            this.SetDefaultSize(600, 480);
            this.Icon =
                new Gdk.Pixbuf(Util.ImagesPath("ifolder-warning16.png"));
            VBox vbox = new VBox();

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

            HBox topbox = new HBox();

            topbox.Spacing = 10;

            Gdk.Pixbuf bigConflict =
                new Gdk.Pixbuf(Util.ImagesPath("ifolder-warning48.png"));
            Image conflictImage = new Image(bigConflict);

            conflictImage.Yalign = 0;
            topbox.PackStart(conflictImage, false, false, 0);

            VBox textbox = new VBox();

            textbox.Spacing = 10;

            Label l = new Label("<span weight=\"bold\" size=\"larger\">" +
                                Util.GS("This iFolder contains conflicts") +
                                "</span>");

            l.LineWrap   = false;
            l.UseMarkup  = true;
            l.Selectable = false;
            l.Xalign     = 0;
            l.Yalign     = 0;
            textbox.PackStart(l, true, true, 0);

            Table ifTable = new Table(2, 2, false);

            ifTable.ColumnSpacing = 10;
            ifTable.Homogeneous   = false;

            Label nameLabel = new Label(Util.GS("Name:"));

            nameLabel.Xalign = 1;
            ifTable.Attach(nameLabel, 0, 1, 0, 1,
                           Gtk.AttachOptions.Fill, Gtk.AttachOptions.Fill, 0, 0);

            Label nameValue = new Label(ifolder.Name);

            nameValue.UseUnderline = false;
            nameValue.Xalign       = 0;
            ifTable.Attach(nameValue, 1, 2, 0, 1);

            Label pathLabel = new Label(Util.GS("Location:"));

            pathLabel.Xalign = 1;
            ifTable.Attach(pathLabel, 0, 1, 1, 2,
                           Gtk.AttachOptions.Fill, Gtk.AttachOptions.Fill, 0, 0);

            Label pathValue = new Label(ifolder.UnManagedPath);

            pathValue.UseUnderline = false;
            pathValue.Xalign       = 0;
            ifTable.Attach(pathValue, 1, 2, 1, 2);

            textbox.PackStart(ifTable, false, true, 0);

            topbox.PackStart(textbox, true, true, 0);

            vbox.PackStart(topbox, false, true, 0);

            // Create the main TreeView and add it to a scrolled
            // window, then add it to the main vbox widget
            ConflictTreeView = new TreeView();
            ScrolledWindow sw = new ScrolledWindow();

            sw.Add(ConflictTreeView);
            sw.ShadowType = Gtk.ShadowType.EtchedIn;
            vbox.PackStart(sw, true, true, 0);

            //
            // File Conflict Box
            //
            fileConflictBox         = new HBox();
            fileConflictBox.Spacing = 10;

            LocalFrame = new Frame(Util.GS("Local Version"));
            fileConflictBox.PackStart(LocalFrame, true, true, 0);

            Table localTable = new Table(2, 4, false);

            localTable.BorderWidth   = 10;
            localTable.ColumnSpacing = 10;

            LocalNameLabel        = new Label(Util.GS("Name:"));
            LocalNameLabel.Xalign = 0;
            localTable.Attach(LocalNameLabel, 0, 1, 0, 1,
                              Gtk.AttachOptions.Fill, Gtk.AttachOptions.Fill, 0, 0);

            LocalNameValue = new Label("");
            LocalNameValue.UseUnderline = false;
            LocalNameValue.Xalign       = 0;
            localTable.Attach(LocalNameValue, 1, 2, 0, 1);

            LocalDateLabel        = new Label(Util.GS("Date:"));
            LocalDateLabel.Xalign = 0;
            localTable.Attach(LocalDateLabel, 0, 1, 1, 2,
                              Gtk.AttachOptions.Fill, Gtk.AttachOptions.Fill, 0, 0);

            LocalDateValue        = new Label("");
            LocalDateValue.Xalign = 0;
            localTable.Attach(LocalDateValue, 1, 2, 1, 2);

            LocalSizeLabel        = new Label(Util.GS("Size:"));
            LocalSizeLabel.Xalign = 0;
            localTable.Attach(LocalSizeLabel, 0, 1, 2, 3,
                              Gtk.AttachOptions.Fill, Gtk.AttachOptions.Fill, 0, 0);

            LocalSizeValue        = new Label("");
            LocalSizeValue.Xalign = 0;
            localTable.Attach(LocalSizeValue, 1, 2, 2, 3);

            LocalSaveButton = new Button(Stock.Open);
            localTable.Attach(LocalSaveButton, 0, 1, 3, 4,
                              Gtk.AttachOptions.Shrink, Gtk.AttachOptions.Shrink, 0, 5);
            LocalSaveButton.Clicked += new EventHandler(LocalOpenHandler);

            LocalFrame.Add(localTable);

            ServerFrame = new Frame(Util.GS("Server Version"));
            fileConflictBox.PackStart(ServerFrame, true, true, 0);

            Table serverTable = new Table(2, 4, false);

            serverTable.BorderWidth   = 10;
            serverTable.ColumnSpacing = 10;

            ServerNameLabel        = new Label(Util.GS("Name:"));
            ServerNameLabel.Xalign = 0;
            serverTable.Attach(ServerNameLabel, 0, 1, 0, 1,
                               Gtk.AttachOptions.Fill, Gtk.AttachOptions.Fill, 0, 0);

            ServerNameValue = new Label("");
            ServerNameValue.UseUnderline = false;
            ServerNameValue.Xalign       = 0;
            serverTable.Attach(ServerNameValue, 1, 2, 0, 1);

            ServerDateLabel        = new Label(Util.GS("Date:"));
            ServerDateLabel.Xalign = 0;
            serverTable.Attach(ServerDateLabel, 0, 1, 1, 2,
                               Gtk.AttachOptions.Fill, Gtk.AttachOptions.Fill, 0, 0);

            ServerDateValue        = new Label("");
            ServerDateValue.Xalign = 0;
            serverTable.Attach(ServerDateValue, 1, 2, 1, 2);

            ServerSizeLabel        = new Label(Util.GS("Size:"));
            ServerSizeLabel.Xalign = 0;
            serverTable.Attach(ServerSizeLabel, 0, 1, 2, 3,
                               Gtk.AttachOptions.Fill, Gtk.AttachOptions.Fill, 0, 0);

            ServerSizeValue        = new Label("");
            ServerSizeValue.Xalign = 0;
            serverTable.Attach(ServerSizeValue, 1, 2, 2, 3);

            ServerSaveButton = new Button(Stock.Open);
            serverTable.Attach(ServerSaveButton, 0, 1, 3, 4,
                               Gtk.AttachOptions.Shrink, Gtk.AttachOptions.Shrink, 0, 5);
            ServerSaveButton.Clicked += new EventHandler(ServerOpenHandler);

            ServerFrame.Add(serverTable);

            //
            // action box starts here
            //

            vbox.PackStart(fileConflictBox, false, false, 0);
            ActionFrame = new Frame(Util.GS("Action"));
            this.VBox.PackStart(ActionFrame, true, true, 0);

            Table actionTable = new Table(3, 5, false);

            actionTable.BorderWidth   = 5;
            actionTable.ColumnSpacing = 10;

            Label lable = new Label(Util.GS("Save to iFolder") + Util.GS(":"));

            lable.Xalign = 0;
            actionTable.Attach(lable, 0, 1, 0, 1,
                               AttachOptions.Shrink | AttachOptions.Fill, 0, 0, 0);

            LocalVersion = new RadioButton(Util.GS("Local Version"));
            actionTable.Attach(LocalVersion, 3, 4, 0, 1,
                               Gtk.AttachOptions.Shrink, Gtk.AttachOptions.Fill, 0, 5);

            ServerVersion = new RadioButton(LocalVersion, Util.GS("Server Version"));
            actionTable.Attach(ServerVersion, 4, 5, 0, 1,
                               Gtk.AttachOptions.Shrink, Gtk.AttachOptions.Fill, 0, 5);

            lable        = new Label(Util.GS("Save to Conflict Bin") + Util.GS(":"));
            lable.Xalign = 0;
            actionTable.Attach(lable, 0, 1, 1, 2,
                               AttachOptions.Shrink | AttachOptions.Fill, 0, 0, 0);

            CbinLocalVersion = new RadioButton(Util.GS("Local Version"));
            actionTable.Attach(CbinLocalVersion, 3, 4, 1, 2,
                               Gtk.AttachOptions.Shrink, Gtk.AttachOptions.Fill, 0, 5);

            CbinServerVersion = new RadioButton(CbinLocalVersion, Util.GS("Server Version"));
            actionTable.Attach(CbinServerVersion, 4, 5, 1, 2,
                               Gtk.AttachOptions.Shrink, Gtk.AttachOptions.Fill, 0, 5);

            EnableConflictBin = new CheckButton(Util.GS("Enable"));
            actionTable.Attach(EnableConflictBin, 1, 2, 1, 2,
                               Gtk.AttachOptions.Shrink, Gtk.AttachOptions.Fill, 0, 5);

            LocalVersion.Toggled      += new EventHandler(OnSaveToiFolderSelected);
            ServerVersion.Toggled     += new EventHandler(OnSaveToiFolderSelected);
            CbinLocalVersion.Toggled  += new EventHandler(OnSaveToCBinSelected);
            CbinServerVersion.Toggled += new EventHandler(OnSaveToCBinSelected);
            EnableConflictBin.Toggled += new EventHandler(OnEnableCBinChecked);

            DirectoryPath = new Entry();
            this.DirectoryPath.Changed += new EventHandler(OnDirectoryPathChanged);
            actionTable.Attach(DirectoryPath, 1, 3, 2, 3,
                               AttachOptions.Expand | AttachOptions.Fill, 0, 0, 0);
            lable = new Label(Util.GS("Conflict Bin Path") + Util.GS(":"));
            actionTable.Attach(lable, 0, 1, 2, 3,
                               AttachOptions.Fill | AttachOptions.Expand, 0, 0, 0);
            lable.LineWrap       = true;
            lable.Xalign         = 0.0F;
            lable.MnemonicWidget = DirectoryPath;

            BrowseButton = new Button(Util.GS("_Browse"));
            actionTable.Attach(BrowseButton, 3, 4, 2, 3, AttachOptions.Fill, 0, 0, 0);
            BrowseButton.Clicked += new EventHandler(OnBrowseButtonClicked);


            SaveButton = new Button(Stock.Save);
            actionTable.Attach(SaveButton, 4, 5, 2, 3,
                               Gtk.AttachOptions.Shrink, Gtk.AttachOptions.Shrink, 0, 8);
            SaveButton.Clicked += new EventHandler(SaveHandler);

            ActionFrame.Add(actionTable);

            //
            // Name Conflict Box
            //
            nameConflictBox         = new VBox();
            nameConflictBox.Spacing = 10;

            VBox nameConflictInternalBox = new VBox();

            nameConflictInternalBox.Spacing     = 10;
            nameConflictInternalBox.BorderWidth = 10;

            renameFileFrame = new Frame(Util.GS("Rename"));
            nameConflictBox.PackStart(renameFileFrame, true, true, 0);

            nameConflictSummary        = new Label(Util.GS("Enter a new name and click Rename to resolve the conflict."));
            nameConflictSummary.Xalign = 0;
//			nameConflictSummary.ColumnSpacing = 10;

            nameConflictInternalBox.PackStart(nameConflictSummary, false, false, 0);

            HBox nameConflictHBox = new HBox();

            nameConflictHBox.Spacing = 10;

            nameConflictFileNameLabel = new Label(Util.GS("Name:"));
            nameConflictHBox.PackStart(nameConflictFileNameLabel, false, false, 0);

            nameConflictEntry                  = new Entry();
            nameConflictEntry.CanFocus         = true;
            nameConflictEntry.Changed         += new EventHandler(OnNameEntryChanged);
            nameConflictEntry.ActivatesDefault = true;
            nameConflictHBox.PackStart(nameConflictEntry, true, true, 0);

            nameConflictInternalBox.PackStart(nameConflictHBox, false, false, 0);

            HBox saveButtonBox = new HBox();

            nameEntrySaveButton          = new Button(Util.GS("Rename"));
            nameEntrySaveButton.Clicked += new EventHandler(RenameFileHandler);
            saveButtonBox.PackStart(nameEntrySaveButton, false, false, 0);
            nameConflictInternalBox.PackEnd(saveButtonBox, false, false, 0);

            renameFileFrame.Add(nameConflictInternalBox);

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

            nameConflictBox.Visible = false;

            // Set up the iFolder TreeView
            ConflictTreeStore      = new ListStore(typeof(ConflictHolder));
            ConflictTreeView.Model = ConflictTreeStore;

            // File Name Column
            TreeViewColumn fileNameColumn = new TreeViewColumn();

            fileNameColumn.Title = Util.GS("Name");
            CellRendererText fileNameCR = new CellRendererText();

            fileNameCR.Xpad = 5;
            fileNameColumn.PackStart(fileNameCR, false);
            fileNameColumn.SetCellDataFunc(fileNameCR,
                                           new TreeCellDataFunc(FileNameCellTextDataFunc));
            fileNameColumn.Resizable = true;
            fileNameColumn.MinWidth  = 150;
            ConflictTreeView.AppendColumn(fileNameColumn);

            // Path Column
            TreeViewColumn pathColumn = new TreeViewColumn();

            pathColumn.Title = Util.GS("Folder");
            CellRendererText pathCR = new CellRendererText();

            pathCR.Xpad = 5;
            pathColumn.PackStart(pathCR, false);
            pathColumn.SetCellDataFunc(pathCR,
                                       new TreeCellDataFunc(PathCellTextDataFunc));
            pathColumn.Resizable = true;
            pathColumn.MinWidth  = 300;
            pathColumn.Sizing    = TreeViewColumnSizing.Autosize;
            ConflictTreeView.AppendColumn(pathColumn);

            // Conflict Type Column
            TreeViewColumn conflictTypeColumn = new TreeViewColumn();

            conflictTypeColumn.Title = Util.GS("Conflict Type");
            CellRendererText conflictTypeCR = new CellRendererText();

            conflictTypeCR.Xpad = 5;
            conflictTypeColumn.PackStart(conflictTypeCR, false);
            conflictTypeColumn.SetCellDataFunc(conflictTypeCR,
                                               new TreeCellDataFunc(ConflictTypeCellTextDataFunc));
            conflictTypeColumn.Resizable  = false;
            conflictTypeColumn.FixedWidth = 100;
            ConflictTreeView.AppendColumn(conflictTypeColumn);



            // Set up Pixbuf and Text Rendering for "iFolder Conflicts" column
//			CellRendererPixbuf mcrp = new CellRendererPixbuf();
//			TreeViewColumn memberColumn = new TreeViewColumn();
//			memberColumn.PackStart(mcrp, false);
//			memberColumn.SetCellDataFunc(mcrp, new TreeCellDataFunc(
//						ConflictCellPixbufDataFunc));
//			CellRendererText mcrt = new CellRendererText();
//			memberColumn.PackStart(mcrt, false);
//			memberColumn.SetCellDataFunc(mcrt, new TreeCellDataFunc(
//						ConflictCellTextDataFunc));
//			memberColumn.Title = Util.GS("iFolder Conflicts");
//			memberColumn.Resizable = true;
//			ConflictTreeView.AppendColumn(memberColumn);
            ConflictTreeView.Selection.Mode = SelectionMode.Multiple;

            ConflictTreeView.Selection.Changed += new EventHandler(
                OnEnhancedConflictSelectionChanged);

//			ConflictPixBuf =
//				new Gdk.Pixbuf(Util.ImagesPath("conflict24.png"));

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

            RefreshConflictList();
        }
Exemple #7
0
        void RenderEvents(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter)
        {
            IViewModel viewModel = model.GetValue(iter, COL_DATA) as IViewModel;

            SetCellViewModel(cell, iter, viewModel);
        }
        public SearchResultWidget()
        {
            var vbox    = new VBox();
            var toolbar = new Toolbar()
            {
                Orientation  = Orientation.Vertical,
                IconSize     = IconSize.Menu,
                ToolbarStyle = ToolbarStyle.Icons,
            };

            this.PackStart(vbox, true, true, 0);
            this.PackStart(toolbar, false, false, 0);
            labelStatus = new Label()
            {
                Xalign  = 0,
                Justify = Justification.Left,
            };
            var hpaned = new HPaned();

            vbox.PackStart(hpaned, true, true, 0);
            vbox.PackStart(labelStatus, false, false, 0);
            var resultsScroll = new CompactScrolledWindow();

            hpaned.Pack1(resultsScroll, true, true);
            scrolledwindowLogView = new CompactScrolledWindow();
            hpaned.Pack2(scrolledwindowLogView, true, true);
            textviewLog = new TextView()
            {
                Editable = false,
            };
            scrolledwindowLogView.Add(textviewLog);

            store = new ListStore(typeof(SearchResult),
                                  typeof(bool) // didRead
                                  );

            treeviewSearchResults = new PadTreeView()
            {
                Model            = store,
                HeadersClickable = true,
                RulesHint        = true,
            };
            treeviewSearchResults.Selection.Mode = Gtk.SelectionMode.Multiple;
            resultsScroll.Add(treeviewSearchResults);

            this.ShowAll();

            var fileNameColumn = new TreeViewColumn {
                Resizable    = true,
                SortColumnId = 0,
                Title        = GettextCatalog.GetString("File")
            };

            fileNameColumn.FixedWidth = 200;

            var fileNamePixbufRenderer = new CellRendererPixbuf();

            fileNameColumn.PackStart(fileNamePixbufRenderer, false);
            fileNameColumn.SetCellDataFunc(fileNamePixbufRenderer, FileIconDataFunc);

            fileNameColumn.PackStart(treeviewSearchResults.TextRenderer, true);
            fileNameColumn.SetCellDataFunc(treeviewSearchResults.TextRenderer, FileNameDataFunc);
            treeviewSearchResults.AppendColumn(fileNameColumn);

//			TreeViewColumn lineColumn = treeviewSearchResults.AppendColumn (GettextCatalog.GetString ("Line"), new CellRendererText (), ResultLineDataFunc);
//			lineColumn.SortColumnId = 1;
//			lineColumn.FixedWidth = 50;
//

            TreeViewColumn textColumn = treeviewSearchResults.AppendColumn(GettextCatalog.GetString("Text"),
                                                                           treeviewSearchResults.TextRenderer, ResultTextDataFunc);

            textColumn.SortColumnId = 2;
            textColumn.Resizable    = true;
            textColumn.FixedWidth   = 300;


            TreeViewColumn pathColumn = treeviewSearchResults.AppendColumn(GettextCatalog.GetString("Path"),
                                                                           treeviewSearchResults.TextRenderer, ResultPathDataFunc);

            pathColumn.SortColumnId = 3;
            pathColumn.Resizable    = true;
            pathColumn.FixedWidth   = 500;


            store.SetSortFunc(0, CompareFileNames);
//			store.SetSortFunc (1, CompareLineNumbers);
            store.SetSortFunc(3, CompareFilePaths);

            treeviewSearchResults.RowActivated += TreeviewSearchResultsRowActivated;

            buttonStop = new ToolButton(Stock.Stop)
            {
                Sensitive = false
            };

            buttonStop.Clicked += ButtonStopClicked;

            buttonStop.TooltipText = GettextCatalog.GetString("Stop");
            toolbar.Insert(buttonStop, -1);

            var buttonClear = new ToolButton(Gtk.Stock.Clear);

            buttonClear.Clicked    += ButtonClearClicked;
            buttonClear.TooltipText = GettextCatalog.GetString("Clear results");
            toolbar.Insert(buttonClear, -1);

            var buttonOutput = new ToggleToolButton(Gui.Stock.OutputIcon);

            buttonOutput.Clicked    += ButtonOutputClicked;
            buttonOutput.TooltipText = GettextCatalog.GetString("Show output");
            toolbar.Insert(buttonOutput, -1);

            buttonPin             = new ToggleToolButton(Gui.Stock.PinUp);
            buttonPin.Clicked    += ButtonPinClicked;
            buttonPin.TooltipText = GettextCatalog.GetString("Pin results pad");
            toolbar.Insert(buttonPin, -1);

            store.SetSortColumnId(3, SortType.Ascending);
            ShowAll();

            scrolledwindowLogView.Hide();
        }
        void TaskToggleCellDataFunc(TreeViewColumn treeColumn, CellRenderer cell,
		                             TreeModel treeModel, TreeIter iter)
        {
            var crt = cell as CellRendererToggle;
            var task = model.GetValue (iter, 0) as ITask;
            if (task == null)
                crt.Active = false;
            else {
                var timerCol = (TimerColumn) view.GetColumn (typeof (TimerColumn));
                crt.Active = !(task.State == TaskState.Active && timerCol.GetTimer (task) == null);
            }
        }
            protected void BlackMoveCellDataFunc(TreeViewColumn
							      column,
							      CellRenderer r,
							      TreeModel model,
							      TreeIter iter)
            {
                CellRendererText renderer =
                    (CellRendererText) r;
                ChessMove move =
                    (ChessMove) model.GetValue (iter, 0);
                if (!highlightWhite
                    && (move.moveIdx - 1 ==
                    highlightMoveIndex))
                    renderer.Underline =
                        Pango.Underline.Single;
                else
                    renderer.Underline =
                        Pango.Underline.None;

                renderer.Text = move.blackmove ==
                    null ? "" : move.blackmove;
            }
Exemple #11
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;

            commandbar = new Toolbar();
            commandbar.ToolbarStyle = Gtk.ToolbarStyle.BothHoriz;
            commandbar.IconSize     = Gtk.IconSize.Menu;
            main.PackStart(commandbar, false, false, 0);

            buttonCommit             = new Gtk.ToolButton(new Gtk.Image("vc-commit", Gtk.IconSize.Menu), GettextCatalog.GetString("Commit..."));
            buttonCommit.IsImportant = true;
            buttonCommit.Clicked    += new EventHandler(OnCommitClicked);
            commandbar.Insert(buttonCommit, -1);

            Gtk.ToolButton btnRefresh = new Gtk.ToolButton(new Gtk.Image(Gtk.Stock.Refresh, IconSize.Menu), GettextCatalog.GetString("Refresh"));
            btnRefresh.IsImportant = true;
            btnRefresh.Clicked    += new EventHandler(OnRefresh);
            commandbar.Insert(btnRefresh, -1);

            buttonRevert             = new Gtk.ToolButton(new Gtk.Image("vc-revert-command", Gtk.IconSize.Menu), GettextCatalog.GetString("Revert"));
            buttonRevert.IsImportant = true;
            buttonRevert.Clicked    += new EventHandler(OnRevert);
            commandbar.Insert(buttonRevert, -1);

            showRemoteStatus             = new Gtk.ToolButton(new Gtk.Image("vc-remote-status", Gtk.IconSize.Menu), GettextCatalog.GetString("Show Remote Status"));
            showRemoteStatus.IsImportant = true;
            showRemoteStatus.Clicked    += new EventHandler(OnShowRemoteStatusClicked);
            commandbar.Insert(showRemoteStatus, -1);

            Gtk.ToolButton btnCreatePatch = new Gtk.ToolButton(new Gtk.Image("vc-diff", Gtk.IconSize.Menu), GettextCatalog.GetString("Create Patch"));
            btnCreatePatch.IsImportant = true;
            btnCreatePatch.Clicked    += new EventHandler(OnCreatePatch);
            commandbar.Insert(btnCreatePatch, -1);

            commandbar.Insert(new Gtk.SeparatorToolItem(), -1);

            Gtk.ToolButton btnOpen = new Gtk.ToolButton(new Gtk.Image(Gtk.Stock.Open, IconSize.Menu), GettextCatalog.GetString("Open"));
            btnOpen.IsImportant = true;
            btnOpen.Clicked    += new EventHandler(OnOpen);
            commandbar.Insert(btnOpen, -1);

            commandbar.Insert(new Gtk.SeparatorToolItem(), -1);

            Gtk.ToolButton btnExpand = new Gtk.ToolButton(null, GettextCatalog.GetString("Expand All"));
            btnExpand.IsImportant = true;
            btnExpand.Clicked    += new EventHandler(OnExpandAll);
            commandbar.Insert(btnExpand, -1);

            Gtk.ToolButton btnCollapse = new Gtk.ToolButton(null, GettextCatalog.GetString("Collapse All"));
            btnCollapse.IsImportant = true;
            btnCollapse.Clicked    += new EventHandler(OnCollapseAll);
            commandbar.Insert(btnCollapse, -1);

            commandbar.Insert(new Gtk.SeparatorToolItem(), -1);

            Gtk.ToolButton btnSelectAll = new Gtk.ToolButton(null, GettextCatalog.GetString("Select All"));
            btnSelectAll.IsImportant = true;
            btnSelectAll.Clicked    += new EventHandler(OnSelectAll);
            commandbar.Insert(btnSelectAll, -1);

            Gtk.ToolButton btnSelectNone = new Gtk.ToolButton(null, GettextCatalog.GetString("Select None"));
            btnSelectNone.IsImportant = true;
            btnSelectNone.Clicked    += new EventHandler(OnSelectNone);
            commandbar.Insert(btnSelectNone, -1);

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

            scroller                = new ScrolledWindow();
            scroller.ShadowType     = Gtk.ShadowType.In;
            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();

            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);

            commitBox.PackStart(labBox, false, false, 0);

            Gtk.ScrolledWindow frame = new Gtk.ScrolledWindow();
            frame.ShadowType           = ShadowType.In;
            commitText                 = new TextView();
            commitText.WrapMode        = WrapMode.WordChar;
            commitText.Buffer.Changed += OnCommitTextChanged;
            frame.Add(commitText);
            commitBox.PackStart(frame, true, true, 6);

            VPaned paned = new VPaned();

            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();
        }
Exemple #12
0
        public StackTracePadWidget()
        {
            this.ShadowType = ShadowType.None;

            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.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");
            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);
            col.Visible = false;            //By default Language column is hidden
            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);
            col.Visible = false;            //By default Address column is hidden
            tree.AppendColumn(col);

            Add(tree);

            LoadColumnsVisibility();
            LoadSettings();

            ShowAll();
            UpdateDisplay();

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

            tree.RowActivated += OnRowActivated;
        }
Exemple #13
0
        private EncapsulateFieldDialog(MonoDevelop.Ide.Gui.Document editor, IType declaringType, IField field)
        {
            this.editor        = editor;
            this.declaringType = declaringType;
            this.Build();

            Title = GettextCatalog.GetString("Encapsulate Fields");
            buttonOk.Sensitive = true;
            store           = new ListStore(typeof(bool), typeof(string), typeof(string), typeof(string), typeof(bool), typeof(IField));
            visibilityStore = new ListStore(typeof(string));

            // Column #1
            CellRendererToggle cbRenderer = new CellRendererToggle();

            cbRenderer.Activatable = true;
            cbRenderer.Toggled    += OnSelectedToggled;
            TreeViewColumn cbCol = new TreeViewColumn();

            cbCol.Title = "";
            cbCol.PackStart(cbRenderer, false);
            cbCol.AddAttribute(cbRenderer, "active", colCheckedIndex);
            treeview.AppendColumn(cbCol);

            // Column #2
            CellRendererText fieldRenderer = new CellRendererText();

            fieldRenderer.Weight = (int)Pango.Weight.Bold;
            TreeViewColumn fieldCol = new TreeViewColumn();

            fieldCol.Title  = GettextCatalog.GetString("Field");
            fieldCol.Expand = true;
            fieldCol.PackStart(fieldRenderer, true);
            fieldCol.AddAttribute(fieldRenderer, "text", colFieldNameIndex);
            treeview.AppendColumn(fieldCol);

            // Column #3
            CellRendererText propertyRenderer = new CellRendererText();

            propertyRenderer.Editable = true;
            propertyRenderer.Edited  += new EditedHandler(OnPropertyEdited);
            TreeViewColumn propertyCol = new TreeViewColumn();

            propertyCol.Title  = GettextCatalog.GetString("Property");
            propertyCol.Expand = true;
            propertyCol.PackStart(propertyRenderer, true);
            propertyCol.AddAttribute(propertyRenderer, "text", colPropertyNameIndex);
            propertyCol.SetCellDataFunc(propertyRenderer, new TreeCellDataFunc(RenderPropertyName));
            treeview.AppendColumn(propertyCol);

            // Column #4
            CellRendererCombo visiComboRenderer = new CellRendererCombo();

            visiComboRenderer.Model      = visibilityStore;
            visiComboRenderer.Editable   = true;
            visiComboRenderer.Edited    += new EditedHandler(OnVisibilityEdited);
            visiComboRenderer.HasEntry   = false;
            visiComboRenderer.TextColumn = 0;

            TreeViewColumn visiCol = new TreeViewColumn();

            visiCol.Title = GettextCatalog.GetString("Visibility");
            visiCol.PackStart(visiComboRenderer, false);
            visiCol.AddAttribute(visiComboRenderer, "text", colVisibilityIndex);
            treeview.AppendColumn(visiCol);

            // Column #5
            CellRendererToggle roRenderer = new CellRendererToggle();

            roRenderer.Activatable = true;
            roRenderer.Xalign      = 0.0f;
            roRenderer.Toggled    += new ToggledHandler(OnReadOnlyToggled);
            TreeViewColumn roCol = new TreeViewColumn();

            roCol.Title = GettextCatalog.GetString("Read only");
            roCol.PackStart(roRenderer, false);
            roCol.AddAttribute(roRenderer, "active", colReadOnlyIndex);
            treeview.AppendColumn(roCol);

            visibilityStore.AppendValues("Public");
            visibilityStore.AppendValues("Private");
            visibilityStore.AppendValues("Protected");
            visibilityStore.AppendValues("Internal");

            treeview.Model = store;

            foreach (IField ifield in declaringType.Fields)
            {
                bool   enabled      = field != null && (field.Name == ifield.Name);
                string propertyName = GeneratePropertyName(ifield.Name);
                store.AppendValues(enabled, ifield.Name, propertyName,
                                   "Public", ifield.IsReadonly || ifield.IsLiteral, ifield);

                if (enabled)
                {
                    CheckAndUpdateConflictMessage(propertyName, false);
                }
            }

            store.SetSortColumnId(colFieldNameIndex, SortType.Ascending);
            buttonSelectAll.Clicked   += OnSelectAllClicked;
            buttonUnselectAll.Clicked += OnUnselectAllClicked;
            buttonOk.Clicked          += OnOKClicked;
            buttonCancel.Clicked      += OnCancelClicked;

            UpdateOKButton();
        }
Exemple #14
0
        private void BuildColumns()
        {
            // Hidden expander column
            TreeViewColumn col = new TreeViewColumn();

            col.Visible = false;
            AppendColumn(col);
            ExpanderColumn = col;

            source_column        = new TreeViewColumn();
            source_column.Sizing = TreeViewColumnSizing.Autosize;

            uint xpad = 2;

            // Special renderer for header rows; hidden for normal source rows
            header_renderer = new CellRendererText()
            {
                Xpad      = xpad,
                Ypad      = 4,
                Ellipsize = Pango.EllipsizeMode.End,
                Weight    = (int)Pango.Weight.Bold,
                Variant   = Pango.Variant.SmallCaps
            };

            // Renderer for source rows; hidden for header rows
            source_renderer      = new SourceRowRenderer();
            source_renderer.Xpad = xpad;

            source_column.PackStart(header_renderer, true);
            source_column.SetCellDataFunc(header_renderer, new Gtk.CellLayoutDataFunc((layout, cell, model, iter) => {
                if (model == null)
                {
                    throw new ArgumentNullException("model");
                }

                // be paranoid about the values returned from model.GetValue(), they may be null or have unexpected types, see bgo#683359
                var obj_type = model.GetValue(iter, (int)SourceModel.Columns.Type);
                if (obj_type == null || !(obj_type is SourceModel.EntryType))
                {
                    var source      = model.GetValue(iter, (int)SourceModel.Columns.Source) as Source;
                    var source_name = source == null ? "some source" : String.Format("source {0}", source.Name);

                    Log.ErrorFormat(
                        "SourceView of {0} could not render its source column because its type value returned {1} from the iter",
                        source_name, obj_type == null ? "null" : String.Format("an instance of {0}", obj_type.GetType().FullName));

                    header_renderer.Visible = false;
                    source_renderer.Visible = false;

                    return;
                }

                var type = (SourceModel.EntryType)obj_type;
                header_renderer.Visible = type == SourceModel.EntryType.Group;
                source_renderer.Visible = type == SourceModel.EntryType.Source;
                if (type == SourceModel.EntryType.Group)
                {
                    var source = (Source)model.GetValue(iter, (int)SourceModel.Columns.Source);
                    header_renderer.Visible = true;
                    header_renderer.Text    = source.Name;
                }
                else
                {
                    header_renderer.Visible = false;
                }
            }));

            int width, height;

            Gtk.Icon.SizeLookup(IconSize.Menu, out width, out height);
            source_renderer.RowHeight = RowHeight.Get();
            source_renderer.RowHeight = height;

            source_renderer.Ypad = (uint)RowPadding.Get();
            source_renderer.Ypad = 2;
            source_column.PackStart(source_renderer, true);
            source_column.SetCellDataFunc(source_renderer, new CellLayoutDataFunc(SourceRowRenderer.CellDataHandler));
            AppendColumn(source_column);

            HeadersVisible = false;
        }
Exemple #15
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);
        }
Exemple #16
0
        void TaskPriorityCellDataFunc(TreeViewColumn treeColumn, CellRenderer cell,
		                               TreeModel treeModel, TreeIter iter)
        {
            // TODO: Add bold (for high), light (for None), and also colors to priority?
            var crc = cell as CellRendererCombo;
            var task = model.GetValue (iter, 0) as ITask;
            if (task == null)
                return;

            switch (task.Priority) {
            case TaskPriority.Low:
                crc.Text = Catalog.GetString ("3");
                break;
            case TaskPriority.Medium:
                crc.Text = Catalog.GetString ("2");
                break;
            case TaskPriority.High:
                crc.Text = Catalog.GetString ("1");
                break;
            default:
                crc.Text = Catalog.GetString ("-");
                break;
            }
        }
Exemple #17
0
        void TaskTimerCellDataFunc(TreeViewColumn treeColumn, CellRenderer cell,
		                            TreeModel treeModel, TreeIter iter)
        {
            var task = treeModel.GetValue (iter, 0) as ITask;
            TaskCompleteTimer timer;
            var crp = cell as CellRendererPixbuf;
            if (task == null || !timeoutTargets.TryGetValue (task, out timer)) {
                crp.Pixbuf = null;
                return;
            }

            crp.Pixbuf = timer.CurrentAnimPixbuf;
        }
            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;
            }
Exemple #19
0
//		void ResultLineDataFunc (TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter)
//		{
//			if (TreeIter.Zero.Equals (iter))
//				return;
//			var lineRenderer = (CellRendererText)cell;
//			var searchResult = (SearchResult)store.GetValue (iter, SearchResultColumn);
//			if (searchResult == null)
//				return;
//
//			Document doc = GetDocument (searchResult);
//			int lineNr = doc.OffsetToLineNumber (searchResult.Offset) + 1;
//			bool didRead = (bool)store.GetValue (iter, DidReadColumn);
//			lineRenderer.Markup = MarkupText (lineNr.ToString (), didRead);
//		}
//
        void ResultTextDataFunc(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter)
        {
            if (TreeIter.Zero.Equals(iter))
            {
                return;
            }
            var textRenderer = (CellRendererText)cell;
            var searchResult = (SearchResult)store.GetValue(iter, SearchResultColumn);

            if (searchResult == null || searchResult.Offset < 0)
            {
                textRenderer.Markup = "Invalid search result";
                return;
            }

            Document doc = GetDocument(searchResult);

            if (doc == null)
            {
                textRenderer.Markup = "Can't create document for:" + searchResult.FileName;
                return;
            }
            int         lineNr = doc.OffsetToLineNumber(searchResult.Offset);
            LineSegment line   = doc.GetLine(lineNr);

            if (line == null)
            {
                textRenderer.Markup = "Invalid line number " + lineNr + " from offset: " + searchResult.Offset;
                return;
            }
            bool   isSelected = treeviewSearchResults.Selection.IterIsSelected(iter);
            int    indent     = line.GetIndentation(doc).Length;
            string markup     = doc.SyntaxMode != null?
                                doc.SyntaxMode.GetMarkup(doc, new TextEditorOptions(), highlightStyle, line.Offset + indent, line.EditableLength - indent, true, !isSelected, false) :
                                    GLib.Markup.EscapeText(doc.GetTextAt(line.Offset, line.EditableLength));

            if (!isSelected)
            {
                int    col = searchResult.Offset - line.Offset - indent;
                string tag;
                int    pos1 = FindPosition(markup, col, out tag);
                int    pos2 = FindPosition(markup, col + searchResult.Length, out tag);
                if (pos1 >= 0 && pos2 >= 0)
                {
                    markup = tag.StartsWith("span") ? markup.Insert(pos2, "</span></span><" + tag + ">") : markup.Insert(pos2, "</span>");
                    Color  searchColor = Mono.TextEditor.Highlighting.Style.ToGdkColor(highlightStyle.SearchTextBg);
                    double b1          = HslColor.Brightness(searchColor);
                    double b2          = HslColor.Brightness(AdjustColor(Style.Base(StateType.Normal), highlightStyle.Default.Color));
                    double delta       = Math.Abs(b1 - b2);
                    if (delta < 0.1)
                    {
                        HslColor color1 = highlightStyle.SearchTextBg;
                        if (color1.L + 0.5 > 1.0)
                        {
                            color1.L -= 0.5;
                        }
                        else
                        {
                            color1.L += 0.5;
                        }
                        searchColor = color1;
                    }
                    markup = markup.Insert(pos1, "<span background=\"" + SyntaxMode.ColorToPangoMarkup(searchColor) + "\">");
                }
            }
            string markupText = AdjustColors(markup.Replace("\t", new string (' ', TextEditorOptions.DefaultOptions.TabSize)));

            try {
                textRenderer.Markup = markupText;
            } catch (Exception e) {
                LoggingService.LogError("Error whil setting the text renderer markup to: " + markup, e);
            }
        }
            protected void InfoCellDataFunc(TreeViewColumn col,
							 CellRenderer r,
							 TreeModel model,
							 TreeIter iter)
            {
                CellRendererText renderer =
                    (CellRendererText) r;
                PGNChessGame game =
                    (PGNChessGame) model.GetValue (iter,
                                       0);
                string markup =
                    String.Format (Catalog.
                               GetString
                               ("<b>{0} vs {1}</b>\n")
                               +
                               Catalog.
                               GetString
                               ("<small><i>Result</i>: <b>{2}</b> ({3} moves)</small>"),
                               game.White,
                               game.Black,
                               game.Result,
                               game.Moves.Count);
                string eventvalue =
                    game.GetTagValue ("Event", null);
                if (eventvalue != null)
                  {
                      markup +=
                          String.
                          Format
                          (Catalog.
                           GetString
                           ("\n<small><i>Event</i>: {0}, <i>Date</i>: {1}</small>"),
                           eventvalue,
                           game.GetTagValue ("Date",
                                     "?"));
                  }
                renderer.Markup = markup;
            }
Exemple #21
0
        public SearchResultWidget()
        {
            Build();

            store = new ListStore(typeof(SearchResult),
                                  typeof(bool)                        // didRead
                                  );
            treeviewSearchResults.Model             = store;
            treeviewSearchResults.Selection.Mode    = Gtk.SelectionMode.Multiple;
            treeviewSearchResults.HeadersClickable  = true;
            treeviewSearchResults.PopupMenu        += OnPopupMenu;
            treeviewSearchResults.ButtonPressEvent += HandleButtonPressEvent;
            treeviewSearchResults.RulesHint         = true;

            var fileNameColumn = new TreeViewColumn {
                Resizable    = false,
                SortColumnId = 0,
                Title        = GettextCatalog.GetString("File")
            };

            fileNameColumn.FixedWidth = 200;

            var fileNamePixbufRenderer = new CellRendererPixbuf();

            fileNameColumn.PackStart(fileNamePixbufRenderer, false);
            fileNameColumn.SetCellDataFunc(fileNamePixbufRenderer, FileIconDataFunc);

            var fileNameRenderer = new CellRendererText();

            fileNameColumn.PackStart(fileNameRenderer, true);
            fileNameColumn.SetCellDataFunc(fileNameRenderer, FileNameDataFunc);
            treeviewSearchResults.AppendColumn(fileNameColumn);

//			TreeViewColumn lineColumn = treeviewSearchResults.AppendColumn (GettextCatalog.GetString ("Line"), new CellRendererText (), ResultLineDataFunc);
//			lineColumn.SortColumnId = 1;
//			lineColumn.FixedWidth = 50;
//

            TreeViewColumn textColumn = treeviewSearchResults.AppendColumn(GettextCatalog.GetString("Text"), new CellRendererText(), ResultTextDataFunc);

            textColumn.SortColumnId = 2;
            textColumn.Resizable    = false;
            textColumn.FixedWidth   = 300;


            TreeViewColumn pathColumn = treeviewSearchResults.AppendColumn(GettextCatalog.GetString("Path"), new CellRendererText(), ResultPathDataFunc);

            pathColumn.SortColumnId = 3;
            pathColumn.Resizable    = false;
            pathColumn.FixedWidth   = 500;


            store.SetSortFunc(0, CompareFileNames);
//			store.SetSortFunc (1, CompareLineNumbers);
            store.SetSortFunc(3, CompareFilePaths);

            treeviewSearchResults.RowActivated += TreeviewSearchResultsRowActivated;

            buttonStop = new ToolButton(Stock.Stop)
            {
                Sensitive = false
            };

            buttonStop.Clicked += ButtonStopClicked;

            buttonStop.TooltipText = GettextCatalog.GetString("Stop");
            toolbar.Insert(buttonStop, -1);

            var buttonClear = new ToolButton(Gtk.Stock.Clear);

            buttonClear.Clicked    += ButtonClearClicked;
            buttonClear.TooltipText = GettextCatalog.GetString("Clear results");
            toolbar.Insert(buttonClear, -1);

            var buttonOutput = new ToggleToolButton(Gui.Stock.OutputIcon);

            buttonOutput.Clicked    += ButtonOutputClicked;
            buttonOutput.TooltipText = GettextCatalog.GetString("Show output");
            toolbar.Insert(buttonOutput, -1);

            buttonPin             = new ToggleToolButton(Gui.Stock.PinUp);
            buttonPin.Clicked    += ButtonPinClicked;
            buttonPin.TooltipText = GettextCatalog.GetString("Pin results pad");
            toolbar.Insert(buttonPin, -1);

            store.SetSortColumnId(3, SortType.Ascending);
            ShowAll();

            scrolledwindowLogView.Hide();
        }
        //TODO: difference between columns and reference columns + combo events
        public ForeignKeyConstraintEditorWidget(ISchemaProvider schemaProvider, SchemaActions action, ForeignKeyConstraintEditorSettings settings)
        {
            if (schemaProvider == null)
            {
                throw new ArgumentNullException("schemaProvider");
            }
            if (settings == null)
            {
                throw new ArgumentNullException("settings");
            }

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

            this.Build();

            store        = new ListStore(typeof(string), typeof(string), typeof(bool), typeof(string), typeof(string), typeof(string), typeof(string), typeof(object));
            listFK.Model = store;

            storeActions = new ListStore(typeof(string), typeof(int));
            storeTables  = new ListStore(typeof(string), typeof(TableSchema));

            if (settings.SupportsCascade)
            {
                storeActions.AppendValues("Cascade", (int)ForeignKeyAction.Cascade);
            }
            if (settings.SupportsRestrict)
            {
                storeActions.AppendValues("Restrict", (int)ForeignKeyAction.Restrict);
            }
            if (settings.SupportsNoAction)
            {
                storeActions.AppendValues("No Action", (int)ForeignKeyAction.NoAction);
            }
            if (settings.SupportsSetNull)
            {
                storeActions.AppendValues("Set Null", (int)ForeignKeyAction.SetNull);
            }
            if (settings.SupportsSetDefault)
            {
                storeActions.AppendValues("Set Default", (int)ForeignKeyAction.SetDefault);
            }

            TreeViewColumn colName               = new TreeViewColumn();
            TreeViewColumn colRefTable           = new TreeViewColumn();
            TreeViewColumn colIsColumnConstraint = new TreeViewColumn();
            TreeViewColumn colDeleteAction       = new TreeViewColumn();
            TreeViewColumn colUpdateAction       = new TreeViewColumn();

            colName.Title               = AddinCatalog.GetString("Name");
            colRefTable.Title           = AddinCatalog.GetString("Reference Table");
            colIsColumnConstraint.Title = AddinCatalog.GetString("Column Constraint");
            colDeleteAction.Title       = AddinCatalog.GetString("Delete Action");
            colUpdateAction.Title       = AddinCatalog.GetString("Update Action");

            colRefTable.MinWidth = 120;

            CellRendererText   nameRenderer               = new CellRendererText();
            CellRendererCombo  refTableRenderer           = new CellRendererCombo();
            CellRendererToggle isColumnConstraintRenderer = new CellRendererToggle();
            CellRendererCombo  deleteActionRenderer       = new CellRendererCombo();
            CellRendererCombo  updateActionRenderer       = new CellRendererCombo();

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

            refTableRenderer.Model      = storeTables;
            refTableRenderer.TextColumn = 0;
            refTableRenderer.Editable   = true;
            refTableRenderer.Edited    += new EditedHandler(RefTableEdited);

            deleteActionRenderer.Model      = storeActions;
            deleteActionRenderer.TextColumn = 0;
            deleteActionRenderer.Editable   = true;
            deleteActionRenderer.Edited    += new EditedHandler(DeleteActionEdited);

            updateActionRenderer.Model      = storeActions;
            updateActionRenderer.TextColumn = 0;
            updateActionRenderer.Editable   = true;
            updateActionRenderer.Edited    += new EditedHandler(UpdateActionEdited);

            colName.PackStart(nameRenderer, true);
            colRefTable.PackStart(refTableRenderer, true);
            colIsColumnConstraint.PackStart(isColumnConstraintRenderer, true);
            colDeleteAction.PackStart(deleteActionRenderer, true);
            colUpdateAction.PackStart(updateActionRenderer, true);

            colName.AddAttribute(nameRenderer, "text", colNameIndex);
            colRefTable.AddAttribute(refTableRenderer, "text", colReferenceTableIndex);
            colIsColumnConstraint.AddAttribute(isColumnConstraintRenderer, "active", colIsColumnConstraintIndex);
            colDeleteAction.AddAttribute(deleteActionRenderer, "text", colDeleteActionIndex);
            colUpdateAction.AddAttribute(updateActionRenderer, "text", colUpdateActionIndex);

            colIsColumnConstraint.Visible = false;
            listFK.AppendColumn(colName);
            listFK.AppendColumn(colRefTable);
            listFK.AppendColumn(colIsColumnConstraint);
            listFK.AppendColumn(colDeleteAction);
            listFK.AppendColumn(colUpdateAction);

            columnSelecter.ColumnToggled          += new EventHandler(ColumnToggled);
            referenceColumnSelecter.ColumnToggled += new EventHandler(ReferenceColumnToggled);
            listFK.Selection.Changed += new EventHandler(SelectionChanged);

            ShowAll();
        }
Exemple #23
0
        private void NameFunc(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter)
        {
            TrustedNodeInfo friend = (TrustedNodeInfo)model.GetValue(iter, 0);

            (cell as CellRendererText).Text = friend.Identifier;
        }
Exemple #24
0
        void DueDateCellDataFunc(TreeViewColumn treeColumn, CellRenderer cell,
		                          TreeModel treeModel, TreeIter iter)
        {
            var crc = cell as CellRendererCombo;
            var task = model.GetValue (iter, 0) as ITask;
            if (task == null)
                return;

            var date = task.State == TaskState.Completed ? task.CompletionDate : task.DueDate;
            if (date == DateTime.MinValue || date == DateTime.MaxValue) {
                crc.Text = "-";
                return;
            }

            if (date.Year == DateTime.Today.Year)
                crc.Text = date.ToString (Catalog.GetString ("M/d - ddd"));
            else
                crc.Text = date.ToString (Catalog.GetString ("M/d/yy - ddd"));
        }
 public bool IsSelected(TreeViewColumn col)
 {
     return(SelectedColumns.Contains(col));
 }
Exemple #26
0
        private void _initNodeStore()
        {
            nodestore = new NodeStore(typeof(ElementExportSettings));

            CellRendererText optionsRenderer = new CellRendererText();

            optionsRenderer.Editable = true;
            optionsRenderer.Edited  += (object o, EditedArgs args) => {
                ElementExportSettings vf = (ElementExportSettings)(NodeFileList.NodeStore.GetNode(new TreePath(args.Path)));
                vf.Options = args.NewText;
            };

            CellRendererText nameRenderer = new CellRendererText();

            nameRenderer.Editable = true;
            nameRenderer.Edited  += (object o, EditedArgs args) => {
                ElementExportSettings vf = (ElementExportSettings)(NodeFileList.NodeStore.GetNode(new TreePath(args.Path)));
                vf.Name = args.NewText;
            };

            NodeFileList.AppendColumn("Path", new Gtk.CellRendererText(), "text", 0);

            TreeViewColumn nameCol = NodeFileList.AppendColumn("Name", nameRenderer, "text", 1);

            nameCol.Resizable = true;

            CellRendererCombo cropRenderer = new CellRendererCombo();
            ListStore         model        = new ListStore(typeof(string), typeof(ElementExportSettings.CropSetting));

            foreach (object enumVal in Enum.GetValues(typeof(ElementExportSettings.CropSetting)))
            {
                model.AppendValues(enumVal.ToString(), enumVal);
            }
            cropRenderer.HasEntry   = false;
            cropRenderer.Editable   = true;
            cropRenderer.Model      = model;
            cropRenderer.TextColumn = 0;
            cropRenderer.Edited    += (o, args) => {
                ElementExportSettings vf = (ElementExportSettings)(NodeFileList.NodeStore.GetNode(new TreePath(args.Path)));
                vf.CropMode = (ElementExportSettings.CropSetting)Enum.Parse(typeof(ElementExportSettings.CropSetting), args.NewText);
            };
            TreeViewColumn cropCol = NodeFileList.AppendColumn("Crop Mode", cropRenderer, "text", 4);

            TreeViewColumn optionsCol = NodeFileList.AppendColumn("Options", optionsRenderer, "text", 2);

            optionsCol.Resizable = true;

            CellRendererPixbuf pixbufRenderer = new CellRendererPixbuf();

            TreeViewColumn pixCol = NodeFileList.AppendColumn("Export", pixbufRenderer, "stock-id", 5);

            NodeFileList.RowActivated += (o, args) => {
                if (args.Column == pixCol)
                {
                    ElementExportSettings tvg    = ((ElementExportSettings)NodeFileList.NodeStore.GetNode(args.Path));
                    ExportResultDialog    dialog = new ExportResultDialog(tvg.ExportLog);
                    dialog.Run();
                    dialog.Destroy();
                }
            };
            pixCol.Clicked += (sender, e) => {
            };

            NodeFileList.AppendColumn("", new CellRendererText());

            NodeFileList.Selection.Mode = SelectionMode.Multiple;

            NodeFileList.NodeStore = nodestore;
        }
 public bool IsSelected(TreeIter row, TreeViewColumn col)
 {
     return(IsSelected(new CellLocation(row, col)));
 }
Exemple #28
0
        public void ShowPage(PageType type, string [] warnings)
        {
            if (type == PageType.Setup)
            {
                Header      = "Welcome to SparkleShare!";
                Description = "First off, what’s your name and email?\n(visible only to team members)";

                Table table = new Table(2, 3, true)
                {
                    RowSpacing    = 6,
                    ColumnSpacing = 6
                };

                Label name_label = new Label("<b>" + "Full Name:" + "</b>")
                {
                    UseMarkup = true,
                    Xalign    = 1
                };

                Entry name_entry = new Entry()
                {
                    Xalign           = 0,
                    ActivatesDefault = true
                };

                try {
                    UnixUserInfo user_info = UnixUserInfo.GetRealUser();

                    if (user_info != null && user_info.RealName != null)
                    {
                        // Some systems append a series of "," for some reason
                        name_entry.Text = user_info.RealName.TrimEnd(",".ToCharArray());
                    }
                } catch (ArgumentException) {
                    // No username, not a big deal
                }

                Entry email_entry = new Entry()
                {
                    Xalign           = 0,
                    ActivatesDefault = true
                };

                Label email_label = new Label("<b>" + "Email:" + "</b>")
                {
                    UseMarkup = true,
                    Xalign    = 1
                };

                table.Attach(name_label, 0, 1, 0, 1);
                table.Attach(name_entry, 1, 2, 0, 1);
                table.Attach(email_label, 0, 1, 1, 2);
                table.Attach(email_entry, 1, 2, 1, 2);

                VBox wrapper = new VBox(false, 9);
                wrapper.PackStart(table, true, false, 0);

                Button cancel_button   = new Button("Cancel");
                Button continue_button = new Button("Continue")
                {
                    Sensitive = false
                };


                Controller.UpdateSetupContinueButtonEvent += delegate(bool button_enabled) {
                    Application.Invoke(delegate { continue_button.Sensitive = button_enabled; });
                };

                name_entry.Changed    += delegate { Controller.CheckSetupPage(name_entry.Text, email_entry.Text); };
                email_entry.Changed   += delegate { Controller.CheckSetupPage(name_entry.Text, email_entry.Text); };
                cancel_button.Clicked += delegate { Controller.SetupPageCancelled(); };

                continue_button.Clicked += delegate {
                    Controller.SetupPageCompleted(name_entry.Text, email_entry.Text);
                };


                AddButton(cancel_button);
                AddButton(continue_button);
                Add(wrapper);

                Controller.CheckSetupPage(name_entry.Text, email_entry.Text);

                if (name_entry.Text.Equals(""))
                {
                    name_entry.GrabFocus();
                }
                else
                {
                    email_entry.GrabFocus();
                }
            }

            if (type == PageType.Add)
            {
                Header = "Where’s your project hosted?";

                VBox layout_vertical = new VBox(false, 16);
                HBox layout_fields   = new HBox(true, 32);
                VBox layout_address  = new VBox(true, 0);
                VBox layout_path     = new VBox(true, 0);

                ListStore store = new ListStore(typeof(string), typeof(Gdk.Pixbuf), typeof(string), typeof(SparklePlugin));

                SparkleTreeView tree_view = new SparkleTreeView(store)
                {
                    HeadersVisible = false
                };
                ScrolledWindow scrolled_window = new ScrolledWindow()
                {
                    ShadowType = ShadowType.In
                };
                scrolled_window.SetPolicy(PolicyType.Never, PolicyType.Automatic);

                // Padding column
                tree_view.AppendColumn("Padding", new Gtk.CellRendererText(), "text", 0);
                tree_view.Columns [0].Cells [0].Xpad = 4;

                // Icon column
                tree_view.AppendColumn("Icon", new Gtk.CellRendererPixbuf(), "pixbuf", 1);
                tree_view.Columns [1].Cells [0].Xpad = 4;

                // Service column
                TreeViewColumn service_column = new TreeViewColumn()
                {
                    Title = "Service"
                };
                CellRendererText service_cell = new CellRendererText()
                {
                    Ypad = 8
                };
                service_column.PackStart(service_cell, true);
                service_column.SetCellDataFunc(service_cell, new TreeCellDataFunc(RenderServiceColumn));

                foreach (SparklePlugin plugin in Controller.Plugins)
                {
                    store.AppendValues("", new Gdk.Pixbuf(plugin.ImagePath),
                                       "<span size=\"small\"><b>" + plugin.Name + "</b>\n" +
                                       "<span fgcolor=\"" + SecondaryTextColor + "\">" + plugin.Description + "</span>" +
                                       "</span>", plugin);
                }

                tree_view.AppendColumn(service_column);
                scrolled_window.Add(tree_view);

                Entry address_entry = new Entry()
                {
                    Text             = Controller.PreviousAddress,
                    Sensitive        = (Controller.SelectedPlugin.Address == null),
                    ActivatesDefault = true
                };

                Entry path_entry = new Entry()
                {
                    Text             = Controller.PreviousPath,
                    Sensitive        = (Controller.SelectedPlugin.Path == null),
                    ActivatesDefault = true
                };

                Label address_example = new Label()
                {
                    Xalign    = 0,
                    UseMarkup = true,
                    Markup    = "<span size=\"small\" fgcolor=\"" +
                                SecondaryTextColor + "\">" + Controller.SelectedPlugin.AddressExample + "</span>"
                };

                Label path_example = new Label()
                {
                    Xalign    = 0,
                    UseMarkup = true,
                    Markup    = "<span size=\"small\" fgcolor=\"" +
                                SecondaryTextColor + "\">" + Controller.SelectedPlugin.PathExample + "</span>"
                };


                TreeSelection default_selection = tree_view.Selection;
                TreePath      default_path      = new TreePath("" + Controller.SelectedPluginIndex);
                default_selection.SelectPath(default_path);

                tree_view.Model.Foreach(new TreeModelForeachFunc(
                                            delegate(ITreeModel model, TreePath path, TreeIter iter) {
                    string address;

                    try {
                        address = (model.GetValue(iter, 2) as SparklePlugin).Address;
                    } catch (NullReferenceException) {
                        address = "";
                    }

                    if (!string.IsNullOrEmpty(address) &&
                        address.Equals(Controller.PreviousAddress))
                    {
                        tree_view.SetCursor(path, service_column, false);
                        SparklePlugin plugin = (SparklePlugin)model.GetValue(iter, 2);

                        if (plugin.Address != null)
                        {
                            address_entry.Sensitive = false;
                        }

                        if (plugin.Path != null)
                        {
                            path_entry.Sensitive = false;
                        }

                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
                                            ));

                layout_address.PackStart(new Label()
                {
                    Markup = "<b>" + "Address" + "</b>",
                    Xalign = 0
                }, true, true, 0);

                layout_address.PackStart(address_entry, false, false, 0);
                layout_address.PackStart(address_example, false, false, 0);

                path_entry.Changed += delegate {
                    Controller.CheckAddPage(address_entry.Text, path_entry.Text, tree_view.SelectedRow);
                };

                layout_path.PackStart(new Label()
                {
                    Markup = "<b>" + "Remote Path" + "</b>",
                    Xalign = 0
                }, true, true, 0);

                layout_path.PackStart(path_entry, false, false, 0);
                layout_path.PackStart(path_example, false, false, 0);

                layout_fields.PackStart(layout_address, true, true, 0);
                layout_fields.PackStart(layout_path, true, true, 0);

                layout_vertical.PackStart(new Label(""), false, false, 0);
                layout_vertical.PackStart(scrolled_window, true, true, 0);
                layout_vertical.PackStart(layout_fields, false, false, 0);

                tree_view.ScrollToCell(new TreePath("" + Controller.SelectedPluginIndex), null, true, 0, 0);

                Add(layout_vertical);


                if (string.IsNullOrEmpty(path_entry.Text))
                {
                    address_entry.GrabFocus();
                    address_entry.Position = -1;
                }
                else
                {
                    path_entry.GrabFocus();
                    path_entry.Position = -1;
                }

                Button cancel_button = new Button("Cancel");
                Button add_button    = new Button("Add")
                {
                    Sensitive = false
                };


                Controller.ChangeAddressFieldEvent += delegate(string text,
                                                               string example_text, FieldState state) {
                    Application.Invoke(delegate {
                        address_entry.Text      = text;
                        address_entry.Sensitive = (state == FieldState.Enabled);
                        address_example.Markup  = "<span size=\"small\" fgcolor=\"" +
                                                  SecondaryTextColor + "\">" + example_text + "</span>";
                    });
                };

                Controller.ChangePathFieldEvent += delegate(string text,
                                                            string example_text, FieldState state) {
                    Application.Invoke(delegate {
                        path_entry.Text      = text;
                        path_entry.Sensitive = (state == FieldState.Enabled);
                        path_example.Markup  = "<span size=\"small\" fgcolor=\""
                                               + SecondaryTextColor + "\">" + example_text + "</span>";
                    });
                };

                Controller.UpdateAddProjectButtonEvent += delegate(bool button_enabled) {
                    Application.Invoke(delegate { add_button.Sensitive = button_enabled; });
                };


                tree_view.CursorChanged += delegate(object sender, EventArgs e) {
                    Controller.SelectedPluginChanged(tree_view.SelectedRow);
                };

                address_entry.Changed += delegate {
                    Controller.CheckAddPage(address_entry.Text, path_entry.Text, tree_view.SelectedRow);
                };

                cancel_button.Clicked += delegate { Controller.PageCancelled(); };
                add_button.Clicked    += delegate { Controller.AddPageCompleted(address_entry.Text, path_entry.Text); };


                CheckButton check_button = new CheckButton("Fetch prior history")
                {
                    Active = true
                };
                check_button.Toggled += delegate { Controller.HistoryItemChanged(check_button.Active); };

                AddOption(check_button);
                AddButton(cancel_button);
                AddButton(add_button);

                Controller.HistoryItemChanged(check_button.Active);
                Controller.CheckAddPage(address_entry.Text, path_entry.Text, 1);
            }

            if (type == PageType.Invite)
            {
                Header      = "You’ve received an invite!";
                Description = "Do you want to add this project to SparkleShare?";

                Table table = new Table(2, 3, true)
                {
                    RowSpacing    = 6,
                    ColumnSpacing = 6
                };

                Label address_label = new Label("Address:")
                {
                    Xalign = 1
                };
                Label path_label = new Label("Remote Path:")
                {
                    Xalign = 1
                };

                Label address_value = new Label("<b>" + Controller.PendingInvite.Address + "</b>")
                {
                    UseMarkup = true,
                    Xalign    = 0
                };

                Label path_value = new Label("<b>" + Controller.PendingInvite.RemotePath + "</b>")
                {
                    UseMarkup = true,
                    Xalign    = 0
                };

                table.Attach(address_label, 0, 1, 0, 1);
                table.Attach(address_value, 1, 2, 0, 1);
                table.Attach(path_label, 0, 1, 1, 2);
                table.Attach(path_value, 1, 2, 1, 2);

                VBox wrapper = new VBox(false, 9);
                wrapper.PackStart(table, true, false, 0);

                Button cancel_button = new Button("Cancel");
                Button add_button    = new Button("Add");


                cancel_button.Clicked += delegate { Controller.PageCancelled(); };
                add_button.Clicked    += delegate { Controller.InvitePageCompleted(); };


                AddButton(cancel_button);
                AddButton(add_button);
                Add(wrapper);
            }

            if (type == PageType.Syncing)
            {
                Header      = String.Format("Adding project ‘{0}’…", Controller.SyncingFolder);
                Description = "This may take a while for large projects.\nIsn’t it coffee-o’clock?";

                ProgressBar progress_bar = new ProgressBar();
                progress_bar.Fraction = Controller.ProgressBarPercentage / 100;

                Button cancel_button = new Button()
                {
                    Label = "Cancel"
                };
                Button finish_button = new Button("Finish")
                {
                    Sensitive = false
                };

                Label progress_label = new Label("Preparing to fetch files…")
                {
                    Justify = Justification.Right,
                    Xalign  = 1
                };


                Controller.UpdateProgressBarEvent += delegate(double percentage, string speed) {
                    Application.Invoke(delegate {
                        progress_bar.Fraction = percentage / 100;
                        progress_label.Text   = speed;
                    });
                };

                cancel_button.Clicked += delegate { Controller.SyncingCancelled(); };


                VBox bar_wrapper = new VBox(false, 0);
                bar_wrapper.PackStart(progress_bar, false, false, 21);
                bar_wrapper.PackStart(progress_label, false, true, 0);

                Add(bar_wrapper);
                AddButton(cancel_button);
                AddButton(finish_button);
            }

            if (type == PageType.Error)
            {
                Header = "Oops! Something went wrong" + "…";

                VBox  points           = new VBox(false, 0);
                Image list_point_one   = new Image(SparkleUIHelpers.GetIcon("list-point", 16));
                Image list_point_two   = new Image(SparkleUIHelpers.GetIcon("list-point", 16));
                Image list_point_three = new Image(SparkleUIHelpers.GetIcon("list-point", 16));

                Label label_one = new Label()
                {
                    Markup = "<b>" + Controller.PreviousUrl + "</b> is the address we’ve compiled. " +
                             "Does this look alright?",
                    Wrap   = true,
                    Xalign = 0
                };

                Label label_two = new Label()
                {
                    Text   = "Is this computer’s Client ID known by the host?",
                    Wrap   = true,
                    Xalign = 0
                };

                points.PackStart(new Label("Please check the following:")
                {
                    Xalign = 0
                }, false, false, 6);

                HBox point_one = new HBox(false, 0);
                point_one.PackStart(list_point_one, false, false, 0);
                point_one.PackStart(label_one, true, true, 12);
                points.PackStart(point_one, false, false, 12);

                HBox point_two = new HBox(false, 0);
                point_two.PackStart(list_point_two, false, false, 0);
                point_two.PackStart(label_two, true, true, 12);
                points.PackStart(point_two, false, false, 12);

                if (warnings.Length > 0)
                {
                    string warnings_markup = "";

                    foreach (string warning in warnings)
                    {
                        warnings_markup += "\n<b>" + warning + "</b>";
                    }

                    Label label_three = new Label()
                    {
                        Markup = "Here’s the raw error message:" + warnings_markup,
                        Wrap   = true,
                        Xalign = 0
                    };

                    HBox point_three = new HBox(false, 0);
                    point_three.PackStart(list_point_three, false, false, 0);
                    point_three.PackStart(label_three, true, true, 12);
                    points.PackStart(point_three, false, false, 12);
                }

                points.PackStart(new Label(""), true, true, 0);

                Button cancel_button    = new Button("Cancel");
                Button try_again_button = new Button("Try Again…")
                {
                    Sensitive = true
                };


                cancel_button.Clicked    += delegate { Controller.PageCancelled(); };
                try_again_button.Clicked += delegate { Controller.ErrorPageCompleted(); };


                AddButton(cancel_button);
                AddButton(try_again_button);
                Add(points);
            }

            if (type == PageType.CryptoSetup || type == PageType.CryptoPassword)
            {
                if (type == PageType.CryptoSetup)
                {
                    Header      = "Set up file encryption";
                    Description = "Please a provide a strong password that you don’t use elsewhere.";
                }
                else
                {
                    Header      = "This project contains encrypted files";
                    Description = "Please enter the password to see their contents.";
                }

                Label password_label = new Label("<b>" + "Password" + "</b>")
                {
                    UseMarkup = true,
                    Xalign    = 1
                };

                Entry password_entry = new Entry()
                {
                    Xalign           = 0,
                    Visibility       = false,
                    ActivatesDefault = true
                };

                CheckButton show_password_check_button = new CheckButton("Show password")
                {
                    Active = false,
                    Xalign = 0,
                };

                Table table = new Table(2, 3, true)
                {
                    RowSpacing    = 6,
                    ColumnSpacing = 6
                };

                table.Attach(password_label, 0, 1, 0, 1);
                table.Attach(password_entry, 1, 2, 0, 1);

                table.Attach(show_password_check_button, 1, 2, 1, 2);

                VBox wrapper = new VBox(false, 9);
                wrapper.PackStart(table, true, false, 0);

                Image warning_image = new Image(
                    SparkleUIHelpers.GetIcon("dialog-information", 24));

                Label warning_label = new Label()
                {
                    Xalign = 0,
                    Wrap   = true,
                    Text   = "This password can’t be changed later, and your files can’t be recovered if it’s forgotten."
                };

                HBox warning_layout = new HBox(false, 0);
                warning_layout.PackStart(warning_image, false, false, 15);
                warning_layout.PackStart(warning_label, true, true, 0);

                VBox warning_wrapper = new VBox(false, 0);
                warning_wrapper.PackStart(warning_layout, false, false, 15);

                if (type == PageType.CryptoSetup)
                {
                    wrapper.PackStart(warning_wrapper, false, false, 0);
                }

                Button cancel_button   = new Button("Cancel");
                Button continue_button = new Button("Continue")
                {
                    Sensitive = false
                };


                Controller.UpdateCryptoSetupContinueButtonEvent += delegate(bool button_enabled) {
                    Application.Invoke(delegate { continue_button.Sensitive = button_enabled; });
                };

                Controller.UpdateCryptoPasswordContinueButtonEvent += delegate(bool button_enabled) {
                    Application.Invoke(delegate { continue_button.Sensitive = button_enabled; });
                };

                show_password_check_button.Toggled += delegate {
                    password_entry.Visibility = !password_entry.Visibility;
                };

                password_entry.Changed += delegate {
                    if (type == PageType.CryptoSetup)
                    {
                        Controller.CheckCryptoSetupPage(password_entry.Text);
                    }
                    else
                    {
                        Controller.CheckCryptoPasswordPage(password_entry.Text);
                    }
                };

                cancel_button.Clicked += delegate { Controller.CryptoPageCancelled(); };

                continue_button.Clicked += delegate {
                    if (type == PageType.CryptoSetup)
                    {
                        Controller.CryptoSetupPageCompleted(password_entry.Text);
                    }
                    else
                    {
                        Controller.CryptoPasswordPageCompleted(password_entry.Text);
                    }
                };


                Add(wrapper);

                AddButton(cancel_button);
                AddButton(continue_button);

                password_entry.GrabFocus();
            }

            if (type == PageType.Finished)
            {
                Header      = "Your shared project is ready!";
                Description = "You can find the files in your SparkleShare folder.";

                UrgencyHint = true;

                Button show_files_button = new Button("Show Files…");
                Button finish_button     = new Button("Finish");


                show_files_button.Clicked += delegate { Controller.ShowFilesClicked(); };
                finish_button.Clicked     += delegate { Controller.FinishPageCompleted(); };


                if (warnings.Length > 0)
                {
                    Image warning_image = new Image(SparkleUIHelpers.GetIcon("dialog-information", 24));

                    Label warning_label = new Label(warnings [0])
                    {
                        Xalign = 0,
                        Wrap   = true
                    };

                    HBox warning_layout = new HBox(false, 0);
                    warning_layout.PackStart(warning_image, false, false, 15);
                    warning_layout.PackStart(warning_label, true, true, 0);

                    VBox warning_wrapper = new VBox(false, 0);
                    warning_wrapper.PackStart(warning_layout, false, false, 0);

                    Add(warning_wrapper);
                }
                else
                {
                    Add(null);
                }

                AddButton(show_files_button);
                AddButton(finish_button);
            }

            if (type == PageType.Tutorial)
            {
                switch (Controller.TutorialPageNumber)
                {
                case 1: {
                    Header      = "What’s happening next?";
                    Description = "SparkleShare creates a special folder on your computer " +
                                  "that will keep track of your projects.";

                    Button skip_tutorial_button = new Button("Skip Tutorial");
                    Button continue_button      = new Button("Continue");

                    skip_tutorial_button.Clicked += delegate { Controller.TutorialSkipped(); };
                    continue_button.Clicked      += delegate { Controller.TutorialPageCompleted(); };

                    AddButton(skip_tutorial_button);
                    AddButton(continue_button);

                    break;
                }

                case 2: {
                    Header      = "Sharing files with others";
                    Description = "All files added to your project folders are synced automatically with " +
                                  "the host and your team members.";

                    Button continue_button = new Button("Continue");
                    continue_button.Clicked += delegate { Controller.TutorialPageCompleted(); };
                    AddButton(continue_button);

                    break;
                }

                case 3: {
                    Header      = "The status icon helps you";
                    Description = "It shows the syncing progress, provides easy access to " +
                                  "your projects, and lets you view recent changes.";

                    Button continue_button = new Button("Continue");
                    continue_button.Clicked += delegate { Controller.TutorialPageCompleted(); };
                    AddButton(continue_button);

                    break;
                }

                case 4: {
                    Header      = "Here’s your unique Client ID";
                    Description = "You’ll need it whenever you want to link this computer to a host. " +
                                  "You can also find it in the status icon menu.";

                    Button finish_button   = new Button("Finish");
                    VBox   layout_vertical = new VBox(false, 0)
                    {
                        BorderWidth = 48
                    };
                    HBox layout_horizontal = new HBox(false, 6);

                    Entry link_code_entry = new Entry()
                    {
                        Text      = Program.Controller.CurrentUser.PublicKey,
                        Sensitive = false
                    };

                    Button copy_button = new Button(" Copy ");

                    CheckButton check_button = new CheckButton("Add SparkleShare to startup items");
                    check_button.Active = true;


                    copy_button.Clicked   += delegate { Controller.CopyToClipboardClicked(); };
                    check_button.Toggled  += delegate { Controller.StartupItemChanged(check_button.Active); };
                    finish_button.Clicked += delegate { Controller.TutorialPageCompleted(); };


                    layout_horizontal.PackStart(link_code_entry, true, true, 0);
                    layout_horizontal.PackStart(copy_button, false, false, 0);

                    layout_vertical.PackStart(new Label(""), true, true, 0);
                    layout_vertical.PackStart(layout_horizontal, false, false, 0);
                    layout_vertical.PackStart(new Label(""), true, true, 18);

                    Add(layout_vertical);

                    AddOption(check_button);
                    AddButton(finish_button);

                    break;
                }
                }

                if (Controller.TutorialPageNumber < 4)
                {
                    Image slide = SparkleUIHelpers.GetImage("tutorial-slide-" + Controller.TutorialPageNumber + ".png");
                    Add(slide);
                }
            }
        }
 public void Select(TreeIter row, TreeViewColumn col, bool addToCurrentCellSelection, bool notify = true)
 {
     Select(new CellLocation(row, col), addToCurrentCellSelection, notify);
 }
Exemple #30
0
 public ColumnMapping(FluentColumnsConfig <TNode> parentConfig, string title)
 {
     TreeViewColumn       = new TreeViewColumn();
     this.myConfig        = parentConfig;
     TreeViewColumn.Title = title;
 }
Exemple #31
0
        /// <summary>
        /// Default constructor. Initialises intellisense popup, but doesn't display anything.
        /// </summary>
        public IntellisenseView()
        {
            completionForm = new Window(WindowType.Toplevel)
            {
                HeightRequest   = 300,
                WidthRequest    = 750,
                Decorated       = false,
                SkipPagerHint   = true,
                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()
            {
                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;
        }
Exemple #32
0
        void TaskToggleCellDataFunc(TreeViewColumn treeColumn, CellRenderer cell,
		                             TreeModel treeModel, TreeIter iter)
        {
            var crt = cell as CellRendererToggle;
            var task = model.GetValue (iter, 0) as ITask;
            crt.Active = task != null && task.State != TaskState.Active;
        }
Exemple #33
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 = 3;
            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 = (Tuple <CodeDiagnosticDescriptor, DiagnosticDescriptor>)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, TitleColDataFunc);


            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 CustomCellRenderer {
                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(DiagnosticSeverity));

            comboBoxStore.AppendValues(GetDescription(DiagnosticSeverity.Hidden), DiagnosticSeverity.Hidden);
            comboBoxStore.AppendValues(GetDescription(DiagnosticSeverity.Error), DiagnosticSeverity.Error);
            comboBoxStore.AppendValues(GetDescription(DiagnosticSeverity.Warning), DiagnosticSeverity.Warning);
            comboBoxStore.AppendValues(GetDescription(DiagnosticSeverity.Info), DiagnosticSeverity.Info);
            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 = (Tuple <CodeDiagnosticDescriptor, DiagnosticDescriptor>)treeStore.GetValue(iter, 1);
                        var severity = (DiagnosticSeverity)comboBoxStore.GetValue(storeIter, 1);
                        severities[provider] = severity;
                        return;
                    }
                } while (comboBoxStore.IterNext(ref storeIter));
            };

            col.SetCellDataFunc(comboRenderer, ComboDataFunc);
            treeviewInspections.HeadersVisible = false;
            treeviewInspections.Model          = treeStore;
            treeviewInspections.SearchColumn   = -1;           // disable the interactive search
            GetAllSeverities();
            FillInspectors(null);
        }
Exemple #34
0
        public InputDocs() :
            base(Gtk.WindowType.Toplevel)
        {
            this.Build();

            FieldLables  = new Dictionary <int, Label>();
            FieldWidgets = new Dictionary <int, object>();
            FieldIcons   = new Dictionary <int, Gtk.Image>();
            ComboWorks.ComboFillReference(comboType, "doc_types", ComboWorks.ListMode.OnlyItems, false);
            ImageList = new ImageTreeStore(typeof(int),         //0 - id
                                           typeof(string),      //1 - Image Name
                                           typeof(string),      //2 - full path
                                           typeof(Document),    //3 - document
                                           typeof(Pixbuf),      //4 - thumbnails
                                           typeof(Pixbuf),      //5 - full image
                                           typeof(bool),        //6 - IsImage
                                           typeof(string),      //7 - Doc name
                                           typeof(string)       //8 - Doc Icon Name
                                           );

            TreeViewColumn ImageColumn = new TreeViewColumn();
            var            ImageCell   = new ImageListCellRenderer(Pango.FontDescription.FromString("Tahoma 10"), IconSize.Menu);

            ImageCell.Xalign = 0;
            ImageColumn.PackStart(ImageCell, true);
            ImageColumn.AddAttribute(ImageCell, "pixbuf", 4);
            ImageColumn.AddAttribute(ImageCell, "text", 7);
            ImageColumn.AddAttribute(ImageCell, "IsImageRow", 6);
            ImageColumn.AddAttribute(ImageCell, "IconName", 8);

            treeviewImages.AppendColumn(ImageColumn);
            treeviewImages.Model         = ImageList;
            treeviewImages.Reorderable   = true;
            treeviewImages.TooltipColumn = 1;
            treeviewImages.ShowAll();
            treeviewImages.Selection.Changed += OnTreeviewImagesSelectionChanged;
            NextDocNumber = 1;

            //Настраиваем сканирование
            logger.Debug("Initialaze scan");
            //scan = new ScanAuxWorks();
            try
            {
                scan                = new ScanWorks();
                scan.ScanerSetup    = ScanerSetup.Native;
                scan.Pulse         += OnScanWorksPulse;
                scan.ImageTransfer += OnScanWorksImageTransfer;

                var scanners = scan.GetScannerList();
                if (scanners.Length > 0)
                {
                    comboScaner.ItemsList = scanners;
                    comboScaner.Active    = scan.CurrentScanner;
                }
                else
                {
                    comboScaner.Sensitive = ScanAction.Sensitive = false;
                }
            }
            catch (Exception ex)
            {
                logger.Error(ex, "Не удалось инициализировать подсистему сканирования.");
                comboScaner.Sensitive = ScanAction.Sensitive = false;
            }
        }
        public LoadBankTransferDocumentDlg()
        {
            this.Build();
            _uow    = UnitOfWorkFactory.CreateWithoutRoot();
            TabName = "Загрузка из банк-клиента";

            var txtFilter = new FileFilter();

            txtFilter.AddPattern("*.txt");
            txtFilter.Name = "Текстовые файлы (*.txt)";
            var allFilter = new FileFilter();

            allFilter.AddPattern("*");
            allFilter.Name = "Все файлы";
            filechooser.AddFilter(txtFilter);
            filechooser.AddFilter(allFilter);

            labelDescription1.Markup = String.Format("<span background=\"{0}\">     </span> - объект будет создан", NeedToAdd);

            foreach (var category in _categoryRepository.ExpenseCategories(_uow))
            {
                expenseCategories.AppendValues(category.Name, category);
            }
            foreach (var category in _categoryRepository.IncomeCategories(_uow))
            {
                incomeCategories.AppendValues(category.Name, category);
            }

            TreeViewColumn checkColumn = new TreeViewColumn();

            checkColumn.Title = "";
            CellRendererToggle checkCell = new CellRendererToggle();

            checkCell.Activatable = true;
            checkCell.Toggled    += CheckCell_Toggled;
            checkColumn.PackStart(checkCell, true);
            checkColumn.AddAttribute(checkCell, "active", (int)Columns.CheckCol);


            TreeViewColumn numberColumn = new TreeViewColumn();

            numberColumn.Title = "№";
            CellRendererText numberCell = new CellRendererText();

            numberCell.Background = EvenRowColor;
            numberColumn.PackStart(numberCell, true);
            numberColumn.AddAttribute(numberCell, "text", (int)Columns.NumberCol);

            TreeViewColumn dateColumn = new TreeViewColumn();

            dateColumn.Title = "Дата";
            CellRendererText dateCell = new CellRendererText();

            dateColumn.PackStart(dateCell, true);
            dateColumn.AddAttribute(dateCell, "text", (int)Columns.DateCol);

            TreeViewColumn totalColumn = new TreeViewColumn();

            totalColumn.Title = "Сумма";
            CellRendererText totalCell = new CellRendererText();

            totalCell.Background = EvenRowColor;
            totalColumn.PackStart(totalCell, true);
            totalColumn.AddAttribute(totalCell, "text", (int)Columns.TotalCol);

            TreeViewColumn payerColumn = new TreeViewColumn();

            payerColumn.Title = "Плательщик";
            CellRendererText payerCell = new CellRendererText();

            payerCell.WidthChars = 40;
            payerColumn.PackStart(payerCell, true);
            payerColumn.AddAttribute(payerCell, "text", (int)Columns.PayerNameCol);
            payerColumn.AddAttribute(payerCell, "background", (int)Columns.PayerNameColorCol);
            payerColumn.Resizable = true;

            TreeViewColumn payerAccountColumn = new TreeViewColumn();

            payerAccountColumn.Title = "Счет плательщика";
            CellRendererText payerAccountCell = new CellRendererText();

            payerAccountColumn.PackStart(payerAccountCell, true);
            payerAccountColumn.AddAttribute(payerAccountCell, "text", (int)Columns.PayerAccountCol);
            payerAccountColumn.AddAttribute(payerAccountCell, "background", (int)Columns.PayerAccountColorCol);
            payerAccountColumn.Visible = false;

            TreeViewColumn payerBankColumn = new TreeViewColumn();

            payerBankColumn.Title = "Банк плательщика";
            CellRendererText payerBankCell = new CellRendererText();

            payerBankCell.WidthChars = 40;
            payerBankColumn.PackStart(payerBankCell, true);
            payerBankColumn.AddAttribute(payerBankCell, "text", (int)Columns.PayerBankCol);
            payerBankColumn.AddAttribute(payerBankCell, "background", (int)Columns.PayerBankColorCol);
            payerBankColumn.Resizable = true;
            payerBankColumn.Visible   = false;

            TreeViewColumn recipientColumn = new TreeViewColumn();

            recipientColumn.Title = "Получатель";
            CellRendererText recipientCell = new CellRendererText();

            recipientCell.WidthChars = 40;
            recipientColumn.PackStart(recipientCell, true);
            recipientColumn.AddAttribute(recipientCell, "text", (int)Columns.RecipientNameCol);
            recipientColumn.AddAttribute(recipientCell, "background", (int)Columns.RecipientNameColorCol);
            recipientColumn.Resizable = true;

            TreeViewColumn recipientAccountColumn = new TreeViewColumn();

            recipientAccountColumn.Title = "Счет получателя";
            CellRendererText recipientAccountCell = new CellRendererText();

            recipientAccountColumn.PackStart(recipientAccountCell, true);
            recipientAccountColumn.AddAttribute(recipientAccountCell, "text", (int)Columns.RecipientAccountCol);
            recipientAccountColumn.AddAttribute(recipientAccountCell, "background", (int)Columns.RecipientAccountColorCol);
            recipientAccountColumn.Visible = false;

            TreeViewColumn recipientBankColumn = new TreeViewColumn();

            recipientBankColumn.Title = "Банк получателя";
            CellRendererText recipientBankCell = new CellRendererText();

            recipientBankCell.WidthChars = 40;
            recipientBankColumn.PackStart(recipientBankCell, true);
            recipientBankColumn.AddAttribute(recipientBankCell, "text", (int)Columns.RecipientBankCol);
            recipientBankColumn.AddAttribute(recipientBankCell, "background", (int)Columns.RecipientBankColorCol);
            recipientBankColumn.Resizable = true;
            recipientBankColumn.Visible   = false;

            TreeViewColumn paymentReasonColumn = new TreeViewColumn();

            paymentReasonColumn.Title = "Назначение платежа";
            CellRendererText paymentReasonCell = new CellRendererText();

            paymentReasonCell.WidthChars = 40;
            paymentReasonColumn.PackStart(paymentReasonCell, true);
            paymentReasonColumn.AddAttribute(paymentReasonCell, "text", (int)Columns.PaymentReasonCol);
            paymentReasonColumn.Resizable = true;

            TreeViewColumn categoryColumn = new TreeViewColumn();

            categoryColumn.Title = "Категория дохода/расхода";
            CellRendererCombo categoryCombo = new CellRendererCombo();

            categoryCombo.TextColumn = 0;
            categoryCombo.Editable   = true;
            categoryCombo.HasEntry   = false;
            categoryCombo.Edited    += CategoryCombo_Edited;
            categoryColumn.PackStart(categoryCombo, true);
            categoryColumn.AddAttribute(categoryCombo, "model", (int)Columns.CategoryComboModel);
            categoryColumn.AddAttribute(categoryCombo, "text", (int)Columns.CategoryName);

            treeDocuments.AppendColumn(checkColumn);
            treeDocuments.AppendColumn(numberColumn);
            treeDocuments.AppendColumn(dateColumn);
            treeDocuments.AppendColumn(totalColumn);
            treeDocuments.AppendColumn(categoryColumn);
            treeDocuments.AppendColumn(payerColumn);
            treeDocuments.AppendColumn(payerAccountColumn);
            treeDocuments.AppendColumn(payerBankColumn);
            treeDocuments.AppendColumn(recipientColumn);
            treeDocuments.AppendColumn(recipientAccountColumn);
            treeDocuments.AppendColumn(recipientBankColumn);
            treeDocuments.AppendColumn(paymentReasonColumn);

            treeDocuments.Model         = documents;
            treeDocuments.TooltipColumn = (int)Columns.PaymentReasonCol;

            buttonUpload.Sensitive   = buttonReadFile.Sensitive = false;
            checkButtonAll.Sensitive = false;
        }
            protected void MoveNumCellDataFunc(TreeViewColumn
							    column,
							    CellRenderer r,
							    TreeModel model,
							    TreeIter iter)
            {
                CellRendererText renderer =
                    (CellRendererText) r;
                ChessMove move =
                    (ChessMove) model.GetValue (iter, 0);
                renderer.Text = "" + move.moveIdx;
            }
Exemple #37
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;
            catView.SearchColumn = -1;             // disable the interactive search

            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;

            Project[] projects = null;
            if (parentProject == null)
            {
                projects = IdeApp.Workspace.GetAllProjects().ToArray();
            }

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

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

                projectNames = new string[projects.Length];
                projectRefs  = new Project[projects.Length];
                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();
        }
            protected void IdxCellDataFunc(TreeViewColumn col,
							CellRenderer r,
							TreeModel model,
							TreeIter iter)
            {
                CellRendererText renderer =
                    (CellRendererText) r;
                TreePath path = model.GetPath (iter);
                renderer.Markup =
                    "<b>" + (path.Indices[0] + 1) +
                    ".</b>";
            }
Exemple #39
0
        void TaskNameTextCellDataFunc(TreeViewColumn treeColumn, CellRenderer cell,
		                               TreeModel treeModel, TreeIter iter)
        {
            var crt = cell as CellRendererText;
            crt.Ellipsize = Pango.EllipsizeMode.End;
            var task = model.GetValue (iter, 0) as ITask;
            if (task == null) {
                crt.Text = string.Empty;
                return;
            }

            var formatString = "{0}";
            var todayTasksColor = preferences.Get (PreferencesKeys.TodayTaskTextColor);
            var overdueTaskColor = preferences.Get (PreferencesKeys.OverdueTaskTextColor);

            if (!task.IsComplete && task.DueDate.Date == DateTime.Today.Date)
                crt.Foreground = todayTasksColor;
            // Overdue and the task has a date assigned to it.
            else if (!task.IsComplete && task.DueDate < DateTime.Today
                     && task.DueDate != DateTime.MinValue)
                crt.Foreground = overdueTaskColor;

            switch (task.State) {
            // TODO: Reimplement the feature below
            //			case TaskState.Active:
            //				// Strikeout the text
            //				var timer = timerCol.GetTimer (task);
            //				if (timer != null && timer.State == TaskCompleteTimerState.Running)
            //					formatString = "<span strikethrough=\"true\">{0}</span>";
            //				break;
            case TaskState.Discarded:
            case TaskState.Completed:
                // Gray out the text and add strikeout
                // TODO: Determine the grayed-out text color appropriate for the current theme
                formatString = "<span strikethrough=\"true\">{0}</span>";
                crt.Foreground = "#AAAAAA";
                break;
            }

            crt.Markup = string.Format (formatString, Markup.EscapeText (task.Text));
        }
            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);
            }
            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;
            }
Exemple #42
0
        protected override void Initialize(IPadWindow window)
        {
            Id = "MonoDevelop.Debugger.BreakpointPad";
            // 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);
            toolbarSet.AddSeparator();
            toolbarSet.Add(new CommandEntry(DebugCommands.NewFunctionBreakpoint)
            {
                DisplayType = CommandEntryDisplayType.IconAndText
            });
            toolbarSet.Add(new CommandEntry(DebugCommands.NewCatchpoint)
            {
                DisplayType = CommandEntryDisplayType.IconAndText
            });

            // 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();

            breakpoints.BreakpointAdded   += OnBreakpointAdded;
            breakpoints.BreakpointRemoved += OnBreakpointRemoved;
            breakpoints.Changed           += OnBreakpointChanged;
            breakpoints.BreakpointUpdated += OnBreakpointUpdated;

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

            tree.RowActivated += OnRowActivated;

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

            toolbar.Add(toolbarSet, sw);
            toolbar.ShowAll();
        }
        public StringListWidget()
        {
            treeview = new Gtk.TreeView();
            treeview.HeadersVisible = false;
            PackStart(treeview, true, true, 0);
            ShowAll();

            var col = new TreeViewColumn {
                MinWidth = CellRendererAddRemove.MinWidth, Resizable = true, Sizing = Gtk.TreeViewColumnSizing.Autosize
            };
            var addRemoveRenderer = new CellRendererAddRemove();

            col.PackStart(addRemoveRenderer, false);
            col.SetCellDataFunc(addRemoveRenderer, delegate(TreeViewColumn tree_column, CellRenderer cell, TreeModel tree_model, TreeIter iter)
            {
                if (treeStore.GetValue(iter, (int)ListColumn.Object) != null)
                {
                    addRemoveRenderer.Action = CellRendererAddRemove.AddRemoveAction.Remove;
                }
                else
                {
                    addRemoveRenderer.Action = CellRendererAddRemove.AddRemoveAction.Add;
                }
            });
            addRemoveRenderer.RemoveClicked += delegate
            {
                TreeIter iter;
                bool     hasSelection = treeview.Selection.GetSelected(out iter);
                PObject  obj          = null;
                if (hasSelection)
                {
                    obj = (PObject)treeStore.GetValue(iter, (int)ListColumn.Object);
                    treeStore.Remove(ref iter);

                    editing = true;
                    obj.Remove();
                    editing = false;
                }
            };
            addRemoveRenderer.AddClicked += delegate
            {
                PObject  obj = new PString(string.Empty);
                TreeIter iter;

                bool hasSelection = treeview.Selection.GetSelected(out iter);
                if (hasSelection)
                {
                    treeStore.SetValues(iter, string.Empty, obj);
                    AppendCreateNewEntry();

                    editing = true;
                    array.Add(obj);
                    editing = false;
                }
            };
            treeview.AppendColumn(col);

            var valueRenderer = new CellRendererCombo();

            valueRenderer.Mode       = CellRendererMode.Editable;
            valueRenderer.TextColumn = (int)ListColumn.DisplayValue;

            valueRenderer.Edited += delegate(object o, EditedArgs args)
            {
                TreeIter iter;

                if (!treeStore.GetIterFromString(out iter, args.Path))
                {
                    return;
                }

                var pObject = (PObject)treeStore.GetValue(iter, (int)ListColumn.Object);
                if (pObject == null)
                {
                    return;
                }

                string newValue = !string.IsNullOrEmpty(ValuePrefix) ? ValuePrefix + args.NewText : args.NewText;

                pObject.SetValue(newValue);
            };

            treeview.AppendColumn(GettextCatalog.GetString("Value"), valueRenderer, delegate(TreeViewColumn tree_column, CellRenderer cell, TreeModel tree_model, TreeIter iter)
            {
                var text     = (string)tree_model.GetValue(iter, (int)ListColumn.DisplayValue);
                var obj      = (PObject)tree_model.GetValue(iter, (int)ListColumn.Object);
                var renderer = (CellRendererCombo)cell;

                renderer.Sensitive = obj != null;
                renderer.Editable  = obj != null;
                renderer.Text      = text;
            });

            treeview.EnableGridLines = TreeViewGridLines.Horizontal;
            treeview.Model           = treeStore;
        }
Exemple #44
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);
        }
Exemple #45
0
        public ColumnMappingWidget(bool showCheckBoxes)
        {
            store = new ListStore(typeof(bool), typeof(ColumnContainer));
            list  = new TreeView(store);

            TreeViewColumn colName = new TreeViewColumn();

            colName.Title = GettextCatalog.GetString("Name");

            CellRendererToggle toggleRenderer = new CellRendererToggle();

            toggleRenderer.Activatable = true;
            toggleRenderer.Toggled    += new ToggledHandler(SelectToggled);
            colName.PackStart(toggleRenderer, false);
            CellRendererText nameRenderer = new CellRendererText();

            colName.PackStart(nameRenderer, true);

            TreeViewColumn colType = new TreeViewColumn();

            colType.Title = GettextCatalog.GetString("Type");
            CellRendererText typeRenderer = new CellRendererText();

            colType.PackStart(typeRenderer, true);

            TreeViewColumn colPropName = new TreeViewColumn();

            colPropName.Title = GettextCatalog.GetString("Property Name");
            CellRendererText propNameRenderer = new CellRendererText();

            propNameRenderer.Editable = true;
            propNameRenderer.Edited  += new EditedHandler(PropNameEdited);
            colPropName.PackStart(propNameRenderer, true);

            TreeViewColumn colPropType = new TreeViewColumn();

            colPropType.Title = GettextCatalog.GetString("Property Type");
            CellRendererTypeCombo propTypeRenderer = new CellRendererTypeCombo();

            colPropType.PackStart(propTypeRenderer, true);

            TreeViewColumn colNullable = new TreeViewColumn();

            colNullable.Title = GettextCatalog.GetString("Nullable");
            CellRendererToggle nullableRenderer = new CellRendererToggle();

            colNullable.PackStart(nullableRenderer, false);

            TreeViewColumn colSetter = new TreeViewColumn();

            colSetter.Title = GettextCatalog.GetString("Create Setter");
            CellRendererToggle setterRenderer = new CellRendererToggle();

            setterRenderer.Activatable = true;
            setterRenderer.Toggled    += new ToggledHandler(SetterToggled);
            colSetter.PackStart(setterRenderer, false);

            TreeViewColumn colCtor = new TreeViewColumn();

            colCtor.Title = GettextCatalog.GetString("Ctor Parameter");
            CellRendererToggle ctorParamRenderer = new CellRendererToggle();

            ctorParamRenderer.Activatable = true;
            ctorParamRenderer.Toggled    += new ToggledHandler(CtorParamToggled);
            colCtor.PackStart(ctorParamRenderer, false);

            colName.SetCellDataFunc(nameRenderer, new CellLayoutDataFunc(NameDataFunc));
            colType.SetCellDataFunc(typeRenderer, new CellLayoutDataFunc(TypeDataFunc));
            colPropName.SetCellDataFunc(propNameRenderer, new CellLayoutDataFunc(PropNameDataFunc));
            colPropType.SetCellDataFunc(propTypeRenderer, new CellLayoutDataFunc(PropTypeDataFunc));
            colNullable.SetCellDataFunc(nullableRenderer, new CellLayoutDataFunc(NullableDataFunc));
            colSetter.SetCellDataFunc(setterRenderer, new CellLayoutDataFunc(SetterDataFunc));
            colCtor.SetCellDataFunc(ctorParamRenderer, new CellLayoutDataFunc(CtorDataFunc));

            list.AppendColumn(colName);
            list.AppendColumn(colType);
            list.AppendColumn(colPropName);
            list.AppendColumn(colPropType);
            list.AppendColumn(colNullable);
            list.AppendColumn(colSetter);
            list.AppendColumn(colCtor);
            list.HeadersVisible = true;

            this.Add(list);
        }
Exemple #46
0
    protected override void OnRowActivated(TreePath path, TreeViewColumn column)
    {
        var text = ClipboardItemStore.GetText(Model, path);

        RaiseItemsActivatedEvent(text);
    }
        public CommitDialog(ChangeSet changeSet)
        {
            Build();

            store          = new ListStore(typeof(Gdk.Pixbuf), typeof(string), typeof(string), typeof(bool), typeof(object));
            fileList.Model = store;
            this.changeSet = changeSet;
            oldMessage     = changeSet.GlobalComment;

            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.Spacing = 2;
            colStatus.AddAttribute(crp, "pixbuf", 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)
                {
                    MessageService.ShowError("Commit extension type " + ob.GetType() + " must be a subclass of CommitDialogExtension");
                    continue;
                }
                if (ext.Initialize(changeSet))
                {
                    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)
            {
                Gdk.Pixbuf statusicon = VersionControlService.LoadIconForStatus(info.Status);
                string     lstatus    = VersionControlService.GetStatusLabel(info.Status);

                string localpath = (!info.LocalPath.IsChildPathOf(changeSet.BaseLocalPath)?
                                    ".":
                                    (string)info.LocalPath.ToRelative(changeSet.BaseLocalPath));
                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;

            // Focus the text view and move the insert point to the begining. 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();
        }
            private void LoadedStatusCellDataFunc(TreeViewColumn
							       col,
							       CellRenderer
							       cell,
							       TreeModel
							       model,
							       TreeIter iter)
            {
                CellRendererToggle r =
                    (CellRendererToggle) cell;
                PluginInfo info =
                    (PluginInfo) model.GetValue (iter, 0);
                r.Active = info.Loaded;
            }
Exemple #49
0
        public SparkleSetup() : base()
        {
            SecondaryTextColor         = SparkleUIHelpers.GdkColorToHex(Style.Foreground(StateType.Insensitive));
            SecondaryTextColorSelected =
                SparkleUIHelpers.GdkColorToHex(
                    MixColors(
                        new TreeView().Style.Foreground(StateType.Selected),
                        new TreeView().Style.Background(StateType.Selected),
                        0.15
                        )
                    );

            Controller.ChangePageEvent += delegate(PageType type, string [] warnings) {
                Application.Invoke(delegate {
                    Reset();

                    switch (type)
                    {
                    case PageType.Setup: {
                        Header      = _("Welcome to SparkleShare!");
                        Description = "We'll need some info to mark your changes in the event log. " +
                                      "Don't worry, this stays between you and your peers.";

                        Table = new Table(4, 2, true)
                        {
                            RowSpacing = 6
                        };

                        Label name_label = new Label("<b>" + _("Full Name:") + "</b>")
                        {
                            UseMarkup = true,
                            Xalign    = 0
                        };

                        NameEntry          = new Entry(Controller.GuessedUserName);
                        NameEntry.Changed += delegate {
                            Controller.CheckSetupPage(NameEntry.Text, EmailEntry.Text);
                        };

                        EmailEntry          = new Entry(Controller.GuessedUserEmail);
                        EmailEntry.Changed += delegate {
                            Controller.CheckSetupPage(NameEntry.Text, EmailEntry.Text);
                        };

                        Label email_label = new Label("<b>" + _("Email:") + "</b>")
                        {
                            UseMarkup = true,
                            Xalign    = 0
                        };

                        Table.Attach(name_label, 0, 1, 0, 1);
                        Table.Attach(NameEntry, 1, 2, 0, 1);
                        Table.Attach(email_label, 0, 1, 1, 2);
                        Table.Attach(EmailEntry, 1, 2, 1, 2);

                        NextButton = new Button(_("Next"))
                        {
                            Sensitive = false
                        };

                        NextButton.Clicked += delegate(object o, EventArgs args) {
                            string full_name = NameEntry.Text;
                            string email     = EmailEntry.Text;

                            Controller.SetupPageCompleted(full_name, email);
                        };

                        AddButton(NextButton);
                        Add(Table);

                        Controller.UpdateSetupContinueButtonEvent += delegate(bool button_enabled) {
                            Application.Invoke(delegate {
                                    NextButton.Sensitive = button_enabled;
                                });
                        };

                        Controller.CheckSetupPage(NameEntry.Text, EmailEntry.Text);

                        break;
                    }

                    case PageType.Add: {
                        Header = _("Where's your project hosted?");

                        VBox layout_vertical = new VBox(false, 12);
                        HBox layout_fields   = new HBox(true, 12);
                        VBox layout_address  = new VBox(true, 0);
                        VBox layout_path     = new VBox(true, 0);


                        ListStore store = new ListStore(typeof(Gdk.Pixbuf),
                                                        typeof(string), typeof(SparklePlugin));

                        SparkleTreeView tree = new SparkleTreeView(store)
                        {
                            HeadersVisible = false
                        };
                        ScrolledWindow scrolled_window = new ScrolledWindow();
                        scrolled_window.AddWithViewport(tree);

                        // Icon column
                        tree.AppendColumn("Icon", new Gtk.CellRendererPixbuf(), "pixbuf", 0);
                        tree.Columns [0].Cells [0].Xpad = 6;

                        // Service column
                        TreeViewColumn service_column = new TreeViewColumn()
                        {
                            Title = "Service"
                        };
                        CellRendererText service_cell = new CellRendererText()
                        {
                            Ypad = 4
                        };
                        service_column.PackStart(service_cell, true);
                        service_column.SetCellDataFunc(service_cell, new TreeCellDataFunc(RenderServiceColumn));

                        foreach (SparklePlugin plugin in Controller.Plugins)
                        {
                            store.AppendValues(
                                new Gdk.Pixbuf(plugin.ImagePath),
                                "<span size=\"small\"><b>" + plugin.Name + "</b>\n" +
                                "<span fgcolor=\"" + SecondaryTextColorSelected + "\">" +
                                plugin.Description + "</span>" +
                                "</span>",
                                plugin);
                        }

                        tree.AppendColumn(service_column);

                        PathEntry    = new SparkleEntry();
                        AddressEntry = new SparkleEntry();


                        // Select the first plugin by default
                        TreeSelection default_selection = tree.Selection;
                        TreePath default_path           = new TreePath("0");
                        default_selection.SelectPath(default_path);
                        Controller.SelectedPluginChanged(0);

                        Controller.ChangeAddressFieldEvent += delegate(string text,
                                                                       string example_text, FieldState state) {
                            Console.WriteLine("> " + text);
                            Application.Invoke(delegate {
                                    AddressEntry.Text      = text;
                                    AddressEntry.Sensitive = (state == FieldState.Enabled);

                                    if (string.IsNullOrEmpty(example_text))
                                    {
                                        AddressEntry.ExampleText = null;
                                    }
                                    else
                                    {
                                        AddressEntry.ExampleText = example_text;
                                    }

                                    if (string.IsNullOrEmpty(text))
                                    {
                                        AddressEntry.ExampleTextActive = true;
                                    }
                                    else
                                    {
                                        AddressEntry.ExampleTextActive = false;
                                    }
                                });
                        };

                        Controller.ChangePathFieldEvent += delegate(string text,
                                                                    string example_text, FieldState state) {
                            Application.Invoke(delegate {
                                    PathEntry.Text      = text;
                                    PathEntry.Sensitive = (state == FieldState.Enabled);

                                    if (string.IsNullOrEmpty(example_text))
                                    {
                                        PathEntry.ExampleText = null;
                                    }
                                    else
                                    {
                                        PathEntry.ExampleText = example_text;
                                    }

                                    if (string.IsNullOrEmpty(text))
                                    {
                                        PathEntry.ExampleTextActive = true;
                                    }
                                    else
                                    {
                                        PathEntry.ExampleTextActive = false;
                                    }
                                });
                        };

                        // Update the address field text when the selection changes
                        tree.CursorChanged += delegate(object sender, EventArgs e) {
                            Controller.SelectedPluginChanged(tree.SelectedRow);
                            // TODO: Scroll to selected row when using arrow keys
                        };

                        tree.Model.Foreach(new TreeModelForeachFunc(delegate(TreeModel model,
                                                                             TreePath path, TreeIter iter) {
                                string address;

                                try {
                                    address = (model.GetValue(iter, 2) as SparklePlugin).Address;
                                } catch (NullReferenceException) {
                                    address = "";
                                }

                                if (!string.IsNullOrEmpty(address) &&
                                    address.Equals(Controller.PreviousAddress))
                                {
                                    tree.SetCursor(path, service_column, false);
                                    SparklePlugin plugin = (SparklePlugin)model.GetValue(iter, 2);

                                    if (plugin.Address != null)
                                    {
                                        AddressEntry.Sensitive = false;
                                    }

                                    if (plugin.Path != null)
                                    {
                                        PathEntry.Sensitive = false;
                                    }

                                    // TODO: Scroll to the selection

                                    return(true);
                                }
                                else
                                {
                                    return(false);
                                }
                            }));

                        AddressEntry.Completion = new EntryCompletion();
                        ListStore server_store  = new ListStore(typeof(string));

                        foreach (string host in Program.Controller.PreviousHosts)
                        {
                            server_store.AppendValues(host);
                        }

                        AddressEntry.Completion.Model      = server_store;
                        AddressEntry.Completion.TextColumn = 0;

                        AddressEntry.Changed += delegate {
                            Controller.CheckAddPage(AddressEntry.Text, PathEntry.Text, tree.SelectedRow);
                        };

                        layout_address.PackStart(new Label()
                            {
                                Markup = "<b>" + _("Address") + "</b>",
                                Xalign = 0
                            }, true, true, 0);

                        layout_address.PackStart(AddressEntry, true, true, 0);

                        PathEntry.Completion = new EntryCompletion();

                        ListStore folder_store = new ListStore(typeof(string));

                        //foreach (string host in Program.Controller.FolderPaths)
                        //    folder_store.AppendValues (host);

                        PathEntry.Completion.Model      = folder_store;
                        PathEntry.Completion.TextColumn = 0;

                        PathEntry.Changed += delegate {
                            Controller.CheckAddPage(AddressEntry.Text, PathEntry.Text, tree.SelectedRow);
                        };

                        layout_path.PackStart(new Label()
                            {
                                Markup = "<b>" + _("Remote Path") + "</b>", Xalign = 0
                            },
                                              true, true, 0);
                        layout_path.PackStart(PathEntry, true, true, 0);

                        layout_fields.PackStart(layout_address);
                        layout_fields.PackStart(layout_path);

                        layout_vertical.PackStart(new Label(""), false, false, 0);
                        layout_vertical.PackStart(scrolled_window, true, true, 0);
                        layout_vertical.PackStart(layout_fields, false, false, 0);

                        Add(layout_vertical);

                        // Cancel button
                        Button cancel_button = new Button(_("Cancel"));

                        cancel_button.Clicked += delegate {
                            Close();
                        };

                        // Sync button
                        SyncButton = new Button(_("Add"));

                        SyncButton.Clicked += delegate {
                            string server      = AddressEntry.Text;
                            string folder_name = PathEntry.Text;

                            Controller.AddPageCompleted(server, folder_name);
                        };

                        AddButton(cancel_button);
                        AddButton(SyncButton);

                        Controller.CheckAddPage(AddressEntry.Text, PathEntry.Text, tree.SelectedRow);

                        break;
                    }

                    case PageType.Syncing: {
                        Header      = String.Format(_("Adding project ‘{0}’…"), Controller.SyncingFolder);
                        Description = _("This may take a while.") + Environment.NewLine +
                                      _("Are you sure it’s not coffee o'clock?");

                        Button finish_button = new Button()
                        {
                            Sensitive = false,
                            Label     = _("Finish")
                        };

                        Button cancel_button = new Button()
                        {
                            Label = _("Cancel")
                        };

                        cancel_button.Clicked += delegate {
                            Controller.SyncingCancelled();
                        };

                        AddButton(cancel_button);
                        AddButton(finish_button);

                        Controller.UpdateProgressBarEvent += delegate(double percentage) {
                            Application.Invoke(delegate {
                                    this.progress_bar.Fraction = percentage / 100;
                                });
                        };

                        if (this.progress_bar.Parent != null)
                        {
                            (this.progress_bar.Parent as Container).Remove(this.progress_bar);
                        }

                        VBox bar_wrapper = new VBox(false, 0);
                        bar_wrapper.PackStart(this.progress_bar, false, false, 0);

                        Add(bar_wrapper);

                        break;
                    }

                    case PageType.Error: {
                        Header = _("Something went wrong") + "…";

                        VBox points          = new VBox(false, 0);
                        Image list_point_one = new Image(SparkleUIHelpers.GetIcon("list-point", 16))
                        {
                        };
                        Image list_point_two = new Image(SparkleUIHelpers.GetIcon("list-point", 16))
                        {
                        };
                        Image list_point_three = new Image(SparkleUIHelpers.GetIcon("list-point", 16))
                        {
                        };

                        Label label_one = new Label()
                        {
                            Text   = "First, have you tried turning it off and on again?",
                            Wrap   = true,
                            Xalign = 0
                        };

                        Label label_two = new Label()
                        {
                            Markup = "<b>" + Controller.PreviousUrl + "</b> is the address we've compiled. " +
                                     "Does this look alright?",
                            Wrap   = true,
                            Xalign = 0
                        };

                        Label label_three = new Label()
                        {
                            Text = "The host needs to know who you are. Did you upload the key that's in " +
                                   "your SparkleShare folder?",
                            Wrap   = true,
                            Xalign = 0
                        };


                        points.PackStart(new Label("Please check the following:")
                            {
                                Xalign = 0
                            }, false, false, 6);

                        HBox point_one = new HBox(false, 0);
                        point_one.PackStart(list_point_one, false, false, 0);
                        point_one.PackStart(label_one, true, true, 12);
                        points.PackStart(point_one, false, false, 12);

                        HBox point_two = new HBox(false, 0);
                        point_two.PackStart(list_point_two, false, false, 0);
                        point_two.PackStart(label_two, true, true, 12);
                        points.PackStart(point_two, false, false, 12);

                        HBox point_three = new HBox(false, 0);
                        point_three.PackStart(list_point_three, false, false, 0);
                        point_three.PackStart(label_three, true, true, 12);
                        points.PackStart(point_three, false, false, 12);

                        points.PackStart(new Label(""), true, true, 0);


                        Button try_again_button = new Button(_("Try Again…"))
                        {
                            Sensitive = true
                        };

                        try_again_button.Clicked += delegate {
                            Controller.ErrorPageCompleted();
                        };

                        AddButton(try_again_button);
                        Add(points);

                        break;
                    }

                    case PageType.Finished: {
                        UrgencyHint = true;

                        if (!HasToplevelFocus)
                        {
                            string title   = String.Format(_("‘{0}’ has been successfully added"), Controller.SyncingFolder);
                            string subtext = "";

                            SparkleUI.Bubbles.Controller.ShowBubble(title, subtext, null);
                        }

                        Header      = _("Project successfully added!");
                        Description = _("Access the files from your SparkleShare folder.");

                        // A button that opens the synced folder
                        Button open_folder_button = new Button(_("Open Folder"));

                        open_folder_button.Clicked += delegate {
                            Program.Controller.OpenSparkleShareFolder(Controller.SyncingFolder);
                        };

                        Button finish_button = new Button(_("Finish"));

                        finish_button.Clicked += delegate {
                            Controller.FinishedPageCompleted();
                            Close();
                        };


                        if (warnings != null)
                        {
                            Image warning_image = new Image(SparkleUIHelpers.GetIcon("dialog-warning", 24));
                            Label warning_label = new Label(warnings [0])
                            {
                                Xalign = 0
                            };

                            HBox warning_layout = new HBox(false, 0);
                            warning_layout.PackStart(warning_image, false, false, 0);
                            warning_layout.PackStart(warning_label, true, true, 0);

                            Add(warning_layout);
                        }
                        else
                        {
                            Add(null);
                        }


                        AddButton(open_folder_button);
                        AddButton(finish_button);

                        break;
                    }


                    case PageType.Tutorial: {
                        switch (Controller.TutorialPageNumber)
                        {
                        case 1: {
                            Header      = _("What's happening next?");
                            Description = _("SparkleShare creates a special folder in your personal folder " +
                                            "that will keep track of your projects.");

                            Button skip_tutorial_button   = new Button(_("Skip Tutorial"));
                            skip_tutorial_button.Clicked += delegate {
                                Controller.TutorialSkipped();
                            };

                            Button continue_button   = new Button(_("Continue"));
                            continue_button.Clicked += delegate {
                                Controller.TutorialPageCompleted();
                            };

                            Image slide = SparkleUIHelpers.GetImage("tutorial-slide-1.png");

                            Add(slide);

                            AddButton(skip_tutorial_button);
                            AddButton(continue_button);

                            break;
                        }

                        case 2: {
                            Header      = _("Sharing files with others");
                            Description = _("All files added to your project folders are synced with the host " +
                                            "automatically, as well as with your collaborators.");

                            Button continue_button   = new Button(_("Continue"));
                            continue_button.Clicked += delegate {
                                Controller.TutorialPageCompleted();
                            };

                            Image slide = SparkleUIHelpers.GetImage("tutorial-slide-2.png");

                            Add(slide);
                            AddButton(continue_button);

                            break;
                        }

                        case 3: {
                            Header      = _("The status icon is here to help");
                            Description = _("It shows the syncing process status, " +
                                            "and contains links to your projects and the event log.");

                            Button continue_button   = new Button(_("Continue"));
                            continue_button.Clicked += delegate {
                                Controller.TutorialPageCompleted();
                            };

                            Image slide = SparkleUIHelpers.GetImage("tutorial-slide-3.png");

                            Add(slide);
                            AddButton(continue_button);

                            break;
                        }

                        case 4: {
                            Header      = _("Adding projects to SparkleShare");
                            Description = _("Just click this button when you see it on the web, and " +
                                            "the project will be automatically added:");

                            Label label = new Label(_("…or select <b>‘Add Hosted Project…’</b> from the status icon menu " +
                                                      "to add one by hand."))
                            {
                                Wrap      = true,
                                Xalign    = 0,
                                UseMarkup = true
                            };

                            Image slide = SparkleUIHelpers.GetImage("tutorial-slide-4.png");

                            Button finish_button   = new Button(_("Finish"));
                            finish_button.Clicked += delegate {
                                Close();
                            };


                            VBox box = new VBox(false, 0);
                            box.Add(slide);
                            box.Add(label);

                            Add(box);
                            AddButton(finish_button);

                            break;
                        }
                        }

                        break;
                    }
                    }

                    ShowAll();
                });
            };
        }
Exemple #50
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);
        }
//		void ResultLineDataFunc (TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter)
//		{
//			if (TreeIter.Zero.Equals (iter))
//				return;
//			var lineRenderer = (CellRendererText)cell;
//			var searchResult = (SearchResult)store.GetValue (iter, SearchResultColumn);
//			if (searchResult == null)
//				return;
//
//			Document doc = GetDocument (searchResult);
//			int lineNr = doc.OffsetToLineNumber (searchResult.Offset) + 1;
//			bool didRead = (bool)store.GetValue (iter, DidReadColumn);
//			lineRenderer.Markup = MarkupText (lineNr.ToString (), didRead);
//		}
//
        void ResultTextDataFunc(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter)
        {
            if (TreeIter.Zero.Equals(iter))
            {
                return;
            }
            var textRenderer = (CellRendererText)cell;
            var searchResult = (SearchResult)store.GetValue(iter, SearchResultColumn);

            if (searchResult == null || searchResult.Offset < 0)
            {
                textRenderer.Markup = "Invalid search result";
                return;
            }

            var doc = GetDocument(searchResult);

            if (doc == null)
            {
                textRenderer.Markup = "Can't create document for:" + searchResult.FileName;
                return;
            }
            bool isSelected = treeviewSearchResults.Selection.IterIsSelected(iter);

            if (searchResult.Markup == null)
            {
                if (searchResult.LineNumber <= 0)
                {
                    searchResult.LineNumber = doc.OffsetToLineNumber(searchResult.Offset);
                }
                DocumentLine line = doc.GetLine(searchResult.LineNumber);
                if (line == null)
                {
                    textRenderer.Markup = "Invalid line number " + searchResult.LineNumber + " from offset: " + searchResult.Offset;
                    return;
                }
                int indent = line.GetIndentation(doc).Length;
                var data   = new Mono.TextEditor.TextEditorData(doc);
                data.ColorStyle = highlightStyle;
                var lineText = doc.GetTextAt(line.Offset + indent, line.Length - indent);
                int col      = searchResult.Offset - line.Offset - indent;
                // search result contained part of the indent.
                if (col + searchResult.Length < lineText.Length)
                {
                    lineText = doc.GetTextAt(line.Offset, line.Length);
                }

                var markup = doc.SyntaxMode != null?
                             data.GetMarkup(line.Offset + indent, line.Length - indent, true, !isSelected, false) :
                                 GLib.Markup.EscapeText(lineText);

                searchResult.Markup = AdjustColors(markup.Replace("\t", new string (' ', TextEditorOptions.DefaultOptions.TabSize)));

                if (col >= 0)
                {
                    uint start;
                    uint end;
                    try {
                        start = (uint)TextViewMargin.TranslateIndexToUTF8(lineText, col);
                        end   = (uint)TextViewMargin.TranslateIndexToUTF8(lineText, Math.Min(lineText.Length, col + searchResult.Length));
                    } catch (Exception e) {
                        LoggingService.LogError("Exception while translating index to utf8 (column was:" + col + " search result length:" + searchResult.Length + " line text:" + lineText + ")", e);
                        return;
                    }
                    searchResult.StartIndex = start;
                    searchResult.EndIndex   = end;
                }
            }


            try {
                textRenderer.Markup = searchResult.Markup;

                if (!isSelected)
                {
                    var    searchColor = searchResult.GetBackgroundMarkerColor(highlightStyle).Color;
                    double b1          = Mono.TextEditor.HslColor.Brightness(searchColor);
                    double b2          = Mono.TextEditor.HslColor.Brightness(AdjustColor(Style.Base(StateType.Normal), (Mono.TextEditor.HslColor)highlightStyle.PlainText.Foreground));
                    double delta       = Math.Abs(b1 - b2);
                    if (delta < 0.1)
                    {
                        Mono.TextEditor.HslColor color1 = highlightStyle.SearchResult.Color;
                        if (color1.L + 0.5 > 1.0)
                        {
                            color1.L -= 0.5;
                        }
                        else
                        {
                            color1.L += 0.5;
                        }
                        searchColor = color1;
                    }
                    if (searchResult.StartIndex != searchResult.EndIndex)
                    {
                        var attr = new Pango.AttrBackground((ushort)(searchColor.R * ushort.MaxValue), (ushort)(searchColor.G * ushort.MaxValue), (ushort)(searchColor.B * ushort.MaxValue));
                        attr.StartIndex = searchResult.StartIndex;
                        attr.EndIndex   = searchResult.EndIndex;

                        using (var list = textRenderer.Attributes.Copy()) {
                            list.Insert(attr);
                            textRenderer.Attributes = list;
                        }
                    }
                }
            } catch (Exception e) {
                LoggingService.LogError("Error whil setting the text renderer markup to: " + searchResult.Markup, e);
            }
        }