示例#1
0
        public ListViewEntries()
        {
            ListView list = new ListView ();
            var editableTextField = new DataField<string> ();
            var nonEditableTextField = new DataField<string> ();

            ListStore store = new ListStore (editableTextField, nonEditableTextField);
            list.DataSource = store;
            list.GridLinesVisible = GridLines.Horizontal;

            var textCellView = new TextCellView { Editable = true, TextField = editableTextField };
            list.Columns.Add (new ListViewColumn ("Editable", textCellView));
            list.Columns.Add (new ListViewColumn ("Not Editable", new TextCellView { Editable = false, TextField = nonEditableTextField }));

            Random rand = new Random ();

            for (int n = 0; n < 10; n++) {
                var r = store.AddRow ();
                store.SetValue (r, editableTextField, "Editable value " + n);
                store.SetValue (r, nonEditableTextField, "Non-editable value " + n);
            }
            PackStart (list, true);
            var btn = new Button ("Add Row");
            btn.Clicked += delegate {
                var row = store.AddRow ();
                store.SetValues (row, editableTextField, "New editable text", nonEditableTextField, "New non-editable text");
                list.StartEditingCell (row, textCellView);
            };
            PackStart (btn, false, hpos: WidgetPlacement.Start);
        }
示例#2
0
        public void ListSimple()
        {
            using (var tempFile = new TemporaryFile())
            using (var store2 = new ListStore<int>(VirtualFileSystem.OpenStream(tempFile.Path, VirtualFileMode.OpenOrCreate, VirtualFileAccess.ReadWrite, VirtualFileShare.ReadWrite)))
            using (var store1 = new ListStore<int>(VirtualFileSystem.OpenStream(tempFile.Path, VirtualFileMode.OpenOrCreate, VirtualFileAccess.ReadWrite, VirtualFileShare.ReadWrite)))
            {
                store1.UseTransaction = true;

                // Add a value to store2 and saves it
                store2.AddValue(1);
                store2.Save();

                // Add a value to store1 without saving
                store1.AddValue(2);
                Assert.AreEqual(new[] { 2 }, store1.GetValues());

                // Check that store1 contains value from store2 first
                store1.LoadNewValues();
                Assert.AreEqual(new[] { 1, 2 }, store1.GetValues());

                // Save and check that results didn't change
                store1.Save();
                Assert.AreEqual(new[] { 1, 2 }, store1.GetValues());
            }
        }
示例#3
0
文件: ListView2.cs 项目: nite2006/xwt
        public ListView2()
        {
            ListView list = new ListView ();
            var editableActiveField = new DataField<bool> ();
            var nonEditableActiveField = new DataField<bool> ();
            var textField = new DataField<string> ();
            var textField2 = new DataField<string> ();
            var editableField = new DataField<bool> ();
            var somewhatEditableData = new DataField<bool>();

            ListStore store = new ListStore(editableActiveField, nonEditableActiveField, textField, textField2, editableField, somewhatEditableData);
            list.DataSource = store;

            list.Columns.Add (new ListViewColumn("Editable", new CheckBoxCellView { Editable = true, ActiveField = editableActiveField }));
            list.Columns.Add (new ListViewColumn("Not Editable", new CheckBoxCellView { Editable = false, ActiveField = nonEditableActiveField }));
            list.Columns.Add (new ListViewColumn("Editable", new TextCellView { Editable = true, TextField = textField }));
            list.Columns.Add(new ListViewColumn("Somewhat Editable", new CheckBoxCellView { EditableField = editableField, ActiveField = somewhatEditableData }));
            list.Columns.Add (new ListViewColumn("Somewhat Editable", new TextCellView { EditableField = editableField, TextField = textField2 }));

            Random rand = new Random ();

            for (int n=0; n<100; n++) {
                var r = store.AddRow ();
                store.SetValue (r, editableActiveField, rand.Next(0, 2) == 0);
                store.SetValue (r, nonEditableActiveField, rand.Next(0, 2) == 0);
                store.SetValue(r, somewhatEditableData, rand.Next(0, 2) == 0);
                store.SetValue (r, textField, n.ToString ());
                var edit = (n % 2) == 0;
                store.SetValue (r, editableField, edit);
                store.SetValue (r, textField2, edit ? "editable" : "not editable");
            }
            PackStart (list, true);
        }
示例#4
0
		public ListView1 ()
		{
			PackStart (new Label ("The listview should have a red background"));
			ListView list = new ListView ();
			list.GridLinesVisible = GridLines.Both;
			ListStore store = new ListStore (name, icon, text, icon2, progress);
			list.DataSource = store;
			list.Columns.Add ("Name", icon, name);
			list.Columns.Add ("Text", icon2, text);
			list.Columns.Add ("Progress", new TextCellView () { TextField = text }, new CustomCell () { ValueField = progress });

			var png = Image.FromResource (typeof(App), "class.png");

			Random rand = new Random ();
			
			for (int n=0; n<100; n++) {
				var r = store.AddRow ();
				store.SetValue (r, icon, png);
				store.SetValue (r, name, "Value " + n);
				store.SetValue (r, icon2, png);
				store.SetValue (r, text, "Text " + n);
				store.SetValue (r, progress, new CellData { Value = rand.Next () % 100 });
			}
			PackStart (list, true);

			list.RowActivated += delegate(object sender, ListViewRowEventArgs e) {
				MessageDialog.ShowMessage ("Row " + e.RowIndex + " activated");
			};

			Menu contextMenu = new Menu ();
			contextMenu.Items.Add (new MenuItem ("Test menu"));
			list.ButtonPressed += delegate(object sender, ButtonEventArgs e) {
				int row = list.GetRowAtPosition(new Point(e.X, e.Y));
				if (e.Button == PointerButton.Right && row >= 0) {
					// Set actual row to selected
					list.SelectRow(row);
					contextMenu.Popup(list, e.X, e.Y);
				}
			};

			var but = new Button ("Scroll one line");
			but.Clicked += delegate {
				list.VerticalScrollControl.Value += list.VerticalScrollControl.StepIncrement;
			};
			PackStart (but);

			var spnValue = new SpinButton ();
			spnValue.MinimumValue = 0;
			spnValue.MaximumValue = 99;
			spnValue.IncrementValue = 1;
			spnValue.Digits = 0;
			var btnScroll = new Button ("Go!");
			btnScroll.Clicked += (sender, e) => list.ScrollToRow((int)spnValue.Value);

			HBox scrollActBox = new HBox ();
			scrollActBox.PackStart (new Label("Scroll to Value: "));
			scrollActBox.PackStart (spnValue);
			scrollActBox.PackStart (btnScroll);
			PackStart (scrollActBox);
		}
示例#5
0
        public ListBoxSample()
        {
            // Default list box

            ListBox list = new ListBox ();

            for (int n=0; n<100; n++)
                list.Items.Add ("Value " + n);

            PackStart (list, true);

            // Custom list box

            ListBox customList = new ListBox ();
            ListStore store = new ListStore (name, icon);
            customList.DataSource = store;
            customList.Views.Add (new ImageCellView (icon));
            customList.Views.Add (new TextCellView (name));

            var png = Image.FromResource (typeof(App), "class.png");

            for (int n=0; n<100; n++) {
                var r = store.AddRow ();
                store.SetValue (r, icon, png);
                store.SetValue (r, name, "Value " + n);
            }
            PackStart (customList, true);
        }
            public ChessMovesWidget()
                : base()
            {
                first_move_number = -1;
                last_row = last_col = -1;
                blacksMoveNext = false;
                autoAppend = true;
                store = new ListStore (typeof (int),
                               typeof (string),
                               typeof (string),
                               typeof (MoveDetails),
                               typeof (MoveDetails));
                Model = store;

                AppendColumn (Catalog.GetString ("No"),
                          new CellRendererText (),
                          "text", 0);
                AppendColumn (Catalog.GetString ("White"),
                          new CellRendererText (),
                          "markup", 1);
                AppendColumn (Catalog.GetString ("Black"),
                          new CellRendererText (),
                          "markup", 2);
                Selection.Mode = SelectionMode.None;

                CursorChanged += OnCursorChanged;
            }
示例#7
0
        public ListView1()
        {
            PackStart (new Label ("The listview should have a red background"));
            ListView list = new ListView () {
                BackgroundColor = Colors.Red
            };
            ListStore store = new ListStore (name, icon, text, icon2);
            list.DataSource = store;
            list.Columns.Add ("Name", icon, name);
            list.Columns.Add ("Text", icon2, text);

            var png = Image.FromResource (typeof(App), "class.png");

            for (int n=0; n<100; n++) {
                var r = store.AddRow ();
                store.SetValue (r, icon, png);
                store.SetValue (r, name, "Value " + n);
                store.SetValue (r, icon2, png);
                store.SetValue (r, text, "Text " + n);
            }
            PackStart (list, BoxMode.FillAndExpand);

            list.RowActivated += delegate(object sender, ListViewRowEventArgs e) {
                MessageDialog.ShowMessage ("Row " + e.RowIndex + " activated");
            };
        }
示例#8
0
        public ListViewCombos()
        {
            ListView list = new ListView ();
            var indexField = new DataField<int> ();

            var indexField2 = new DataField<int> ();
            var itemsField = new DataField<ItemCollection> ();

            ListStore store = new ListStore (indexField, indexField2, itemsField);
            list.DataSource = store;
            list.GridLinesVisible = GridLines.Horizontal;

            var comboCellView = new ComboBoxCellView { Editable = true, SelectedIndexField = indexField };
            comboCellView.Items.Add (1, "one");
            comboCellView.Items.Add (2, "two");
            comboCellView.Items.Add (3, "three");

            list.Columns.Add (new ListViewColumn ("List 1", comboCellView));

            var comboCellView2 = new ComboBoxCellView { Editable = true, SelectedIndexField = indexField2, ItemsField = itemsField };
            list.Columns.Add (new ListViewColumn ("List 2", comboCellView2));

            int p = 0;
            for (int n = 0; n < 10; n++) {
                var r = store.AddRow ();
                store.SetValue (r, indexField, n % 3);
                var col = new ItemCollection ();
                for (int i = 0; i < 3; i++) {
                    col.Add (p, "p" + p);
                    p++;
                }
                store.SetValues (r, indexField2, n % 3, itemsField, col);
            }
            PackStart (list, true);
        }
            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);
            }
示例#10
0
文件: ListView1.cs 项目: nbros/xwt
        public ListView1()
        {
            PackStart (new Label ("The listview should have a red background"));
            ListView list = new ListView ();
            ListStore store = new ListStore (name, icon, text, icon2, progress);
            list.DataSource = store;
            list.Columns.Add ("Name", icon, name);
            list.Columns.Add ("Text", icon2, text);
            list.Columns.Add ("Progress", new CustomCell () { ValueField = progress });

            var png = Image.FromResource (typeof(App), "class.png");

            Random rand = new Random ();

            for (int n=0; n<100; n++) {
                var r = store.AddRow ();
                store.SetValue (r, icon, png);
                store.SetValue (r, name, "Value " + n);
                store.SetValue (r, icon2, png);
                store.SetValue (r, text, "Text " + n);
                store.SetValue (r, progress, rand.Next () % 100);
            }
            PackStart (list, true);

            list.RowActivated += delegate(object sender, ListViewRowEventArgs e) {
                MessageDialog.ShowMessage ("Row " + e.RowIndex + " activated");
            };

            var but = new Button ("Scroll one line");
            but.Clicked += delegate {
                list.VerticalScrollControl.Value += list.VerticalScrollControl.StepIncrement;
            };
            PackStart (but);
        }
		public override void Initialize (OptionsDialog dialog, object dataObject)
		{
			base.Initialize (dialog, dataObject);

			config = (SolutionRunConfigInfo)dataObject;

			store = new ListStore (selectedField, projectNameField, projectField, runConfigField, projectRunConfigsField);
			listView = new ListView (store);

			var col1 = new ListViewColumn (GettextCatalog.GetString ("Solution Item"));
			var cb = new CheckBoxCellView (selectedField);
			cb.Toggled += SelectionChanged;
			cb.Editable = true;
			col1.Views.Add (cb);
			col1.Views.Add (new TextCellView (projectNameField));
			listView.Columns.Add (col1);

			var configSelView = new ComboBoxCellView (runConfigField);
			configSelView.Editable = true;
			configSelView.ItemsField = projectRunConfigsField;
			var col2 = new ListViewColumn (GettextCatalog.GetString ("Run Configuration"), configSelView);
			listView.Columns.Add (col2);

			foreach (var it in config.Solution.GetAllSolutionItems ().Where (si => si.SupportsExecute ()).OrderBy (si => si.Name)) {
				var row = store.AddRow ();
				var si = config.EditedConfig.Items.FirstOrDefault (i => i.SolutionItem == it);
				var sc = si?.RunConfiguration?.Name ?? it.GetDefaultRunConfiguration ()?.Name;
				var configs = new ItemCollection ();
				foreach (var pc in it.GetRunConfigurations ())
					configs.Add (pc.Name);
				store.SetValues (row, selectedField, si != null, projectNameField, it.Name, projectField, it, runConfigField, sc, projectRunConfigsField, configs);
			}
		}
		void IOptionsPanel.Initialize (OptionsDialog dialog, object dataObject)
		{
			this.ExpandHorizontal = true;
			this.ExpandVertical = true;
			this.HeightRequest = 400;
			list = new ListView ();
			store = new ListStore (language, completeOnSpace, completeOnChars);

			var languageColumn = list.Columns.Add (GettextCatalog.GetString ("Language"), language);
			languageColumn.CanResize = true;

			var checkBoxCellView = new CheckBoxCellView (completeOnSpace);
			checkBoxCellView.Editable = true;
			var completeOnSpaceColumn = list.Columns.Add (GettextCatalog.GetString ("Complete on space"), checkBoxCellView);
			completeOnSpaceColumn.CanResize = true;

			var textCellView = new TextCellView (completeOnChars);
			textCellView.Editable = true;
			var doNotCompleteOnColumn = list.Columns.Add (GettextCatalog.GetString ("Do complete on"), textCellView);
			doNotCompleteOnColumn.CanResize = true;
			list.DataSource = store;
			PackStart (list, true, true);

			var hbox = new HBox ();
			var button = new Button ("Reset to default");
			button.Clicked += delegate {
				FillStore (CompletionCharacters.GetDefaultCompletionCharacters ());
			};	
			hbox.PackEnd (button, false, false);
			PackEnd (hbox, false, true);
			FillStore (CompletionCharacters.GetCompletionCharacters ());
		}
 public ChooseProjectsDialog(TeamFoundationServer server)
 {
     collectionStore = new ListStore(collectionName, collectionItem);
     projectsStore = new TreeStore(isProjectSelected, projectName, projectItem);
     BuildGui();
     if (server.ProjectCollections == null)
         SelectedProjects = new List<ProjectInfo>();
     else
         SelectedProjects = new List<ProjectInfo>(server.ProjectCollections.SelectMany(pc => pc.Projects));
     LoadData(server);
 }
示例#14
0
		public override IScrollableWidget CreateScrollableWidget ()
		{
			DataField<string> text = new DataField<string> ();
			ListStore s = new ListStore (text);
			var list = new ListView (s);
			list.Columns.Add ("Hi", text);

			for (int n = 0; n < 100; n++) {
				var r = s.AddRow ();
				s.SetValue (r, text, n + new string ('.',100));
			}
			return list;
		}
        void BuildGui()
        {
            this.Title = "Get";
            this.Resizable = false;
            VBox content = new VBox();
            content.PackStart(new Label(GettextCatalog.GetString("Files") + ":"));

            listStore = new ListStore(itemField, isSelectedField, nameField, pathField);
            var checkSell = new CheckBoxCellView(isSelectedField);
            checkSell.Editable = true;
            listView.Columns.Add("Name", checkSell, new TextCellView(nameField));
            listView.Columns.Add("Folder", new TextCellView(pathField));
            listView.MinHeight = 200;
            listView.DataSource = listStore;

            content.PackStart(listView);

            HBox typeBox = new HBox();
            typeBox.PackStart(new Label(GettextCatalog.GetString("Version") + ":"));
            versionBox.Items.Add(0, "Changeset");
            versionBox.Items.Add(1, "Latest Version");
            versionBox.SelectedItem = 1;
            versionBox.SelectionChanged += (sender, e) => changeSetNumber.Visible = (int)versionBox.SelectedItem == 0;
            typeBox.PackStart(versionBox);
            changeSetNumber.Visible = false;
            changeSetNumber.WidthRequest = 100;
            changeSetNumber.MinimumValue = 1;
            changeSetNumber.MaximumValue = int.MaxValue;
            changeSetNumber.Value = 0;
            changeSetNumber.IncrementValue = 1;
            changeSetNumber.Digits = 0;
            typeBox.PackStart(changeSetNumber);
            content.PackStart(typeBox);

            content.PackStart(forceGet);
            //content.PackStart(overrideGet);

            HBox buttonBox = new HBox();
            Button okButton = new Button(GettextCatalog.GetString("Get"));
            okButton.Clicked += OnGet;
            Button cancelButton = new Button(GettextCatalog.GetString("Cancel"));
            cancelButton.Clicked += (sender, e) => Respond(Command.Cancel);
            okButton.WidthRequest = cancelButton.WidthRequest = Constants.ButtonWidth;

            buttonBox.PackEnd(cancelButton);
            buttonBox.PackEnd(okButton);
            content.PackStart(buttonBox);

            this.Content = content;
        }
		public EnvironmentVariableCollectionEditor ()
		{
			store = new ListStore (keyField, valueField);
			list = new ListView (store);
			PackStart (list, true);

			TextCellView crt = new TextCellView ();
			crt.Editable = true;
			crt.TextField = keyField;
			var col = list.Columns.Add (GettextCatalog.GetString ("Variable"), crt);
			col.CanResize = true;
			crt.TextChanged += (s,a) => NotifyChanged ();

			valueCell = new TextCellView ();
			valueCell.Editable = true;
			valueCell.TextField = valueField;
			col = list.Columns.Add (GettextCatalog.GetString ("Value"), valueCell);
			col.CanResize = true;
			valueCell.TextChanged += (s, a) => NotifyChanged ();

			var box = new HBox ();

			var btn = new Button (GettextCatalog.GetString ("Add"));
			btn.Clicked += delegate {
				var row = store.AddRow ();
				list.SelectRow (row);
				list.StartEditingCell (row, crt);
				crt.TextChanged += CrtTextChanged;
				UpdateButtons ();
			};
			box.PackStart (btn);

			deleteButton = new Button (GettextCatalog.GetString ("Remove"));
			deleteButton.Clicked += delegate {
				var row = list.SelectedRow;
				if (row != -1) {
					store.RemoveRow (row);
					if (row < store.RowCount)
						list.SelectRow (row);
					else if (store.RowCount > 0)
						list.SelectRow (store.RowCount - 1);
					UpdateButtons ();
					NotifyChanged ();
				}
			};
			box.PackStart (deleteButton);

			PackStart (box);
			UpdateButtons ();
		}
示例#17
0
        /// <summary>
        /// Constructor.
        /// </summary>
        public TextEntryHelper()
        {
            // Create text entry
            InnerTextEntry = new TextEntry();

            // Default bind
            InnerTextEntry.Changed += InnerTextEntry_Changed;

            // Self changed - show menu
            Changed += TextEntryHelper_Changed;

            // Key binding events
            InnerTextEntry.KeyReleased += InnerTextEntry_KeyPressed;

            // Helper
            VBox EntryHelper = new VBox();
            EntryHelper.PackStart(InnerTextEntry, true, true);

            // Create list store
            Values = new DataField<string>();
            HelperStore = new ListStore(Values);

            // Create helper list view
            HelperListView = new ListView()
            {
                MinHeight = 75,
                HeightRequest = 75,
                Visible = false,
                HeadersVisible = false,
                DataSource = HelperStore,
                SelectionMode = SelectionMode.Single
            };
            HelperListView.Columns.Add("Name", Values);

            // Click selection
            HelperListView.ButtonReleased += HelperListView_ButtonPressed;

            // Scroll view to
            EntryHelper.PackStart(HelperListView, true, true);

            // Margins
            MarginTop = 4;
            MarginBottom = 5;

            // Set as content
            Content = EntryHelper;

            // Show tree items
            InnerTextEntry.GotFocus += GotFocusHandler;
        }
示例#18
0
        public override void Clean(IExecuteContext executeContext, BuilderContext builderContext, bool deleteOutput)
        {
            // try to retrieve result from one of the object store
            var commandHash = Command.ComputeCommandHash(executeContext);
            // If there was an error computing the hash, early exit
            if (commandHash == ObjectId.Empty)
            {
                return;
            }

            var commandResultsFileStream = executeContext.ResultMap.OpenStream(commandHash, VirtualFileMode.OpenOrCreate, VirtualFileAccess.ReadWrite, VirtualFileShare.ReadWrite);
            var commandResultEntries = new ListStore<CommandResultEntry>(commandResultsFileStream) { AutoLoadNewValues = false };
            commandResultEntries.LoadNewValues();
            commandResultsFileStream.Close();

            CommandResultEntry matchingResult = FindMatchingResult(executeContext, commandResultEntries.GetValues());
            if (matchingResult != null)
            {
                if (deleteOutput)
                {
                    foreach (KeyValuePair<ObjectUrl, ObjectId> outputObject in matchingResult.OutputObjects)
                    {
                        switch (outputObject.Key.Type)
                        {
                            case UrlType.File:
                                try
                                {
                                    if (File.Exists(outputObject.Key.Path))
                                        File.Delete(outputObject.Key.Path);
                                }
                                catch (Exception)
                                {
                                    executeContext.Logger.Error("Unable to delete file: " + outputObject.Key.Path);
                                }
                                break;
                            case UrlType.ContentLink:
                            case UrlType.Content:
                                executeContext.ResultMap.Delete(outputObject.Value);
                                break;
                        }
                    }
                }
                foreach (CommandBuildStep spawnedStep in matchingResult.SpawnedCommands.Select(spawnedCommand => new CommandBuildStep(spawnedCommand)))
                {
                    spawnedStep.Clean(executeContext, builderContext, deleteOutput);
                }
            }

            executeContext.ResultMap.Delete(commandHash);
        }
示例#19
0
        public ListView2()
        {
            ListView list = new ListView();
            var editableActiveField = new DataField<bool>();
            var nonEditableActiveField = new DataField<bool>();
            var textField = new DataField<string>();
            var textField2 = new DataField<string>();
            var editableField = new DataField<bool>();
            var somewhatEditableData = new DataField<bool>();

            ListStore store = new ListStore(editableActiveField, nonEditableActiveField, textField, textField2, editableField, somewhatEditableData);
            list.DataSource = store;
            list.GridLinesVisible = GridLines.Horizontal;

            var checkCellView = new CheckBoxCellView { Editable = true, ActiveField = editableActiveField };
            checkCellView.Toggled += (sender, e) =>
            {

                if (list.CurrentEventRow == 0)
                {
                    MessageDialog.ShowError("CurrentEventRow is null. This is not supposed to happen");
                }
                else
                {
                    store.SetValue(list.CurrentEventRow, textField, "Toggled");
                }
            };

            list.Columns.Add(new ListViewColumn("Editable", checkCellView));
            list.Columns.Add(new ListViewColumn("Not Editable", new CheckBoxCellView { Editable = false, ActiveField = nonEditableActiveField }));
            list.Columns.Add(new ListViewColumn("Editable", new TextCellView { Editable = true, TextField = textField }));
            list.Columns.Add(new ListViewColumn("Somewhat Editable", new CheckBoxCellView { EditableField = editableField, ActiveField = somewhatEditableData }));
            list.Columns.Add(new ListViewColumn("Somewhat Editable", new TextCellView { EditableField = editableField, TextField = textField2 }));

            Random rand = new Random();

            for (int n = 0; n < 100; n++)
            {
                var r = store.AddRow();
                store.SetValue(r, editableActiveField, rand.Next(0, 2) == 0);
                store.SetValue(r, nonEditableActiveField, rand.Next(0, 2) == 0);
                store.SetValue(r, somewhatEditableData, rand.Next(0, 2) == 0);
                store.SetValue(r, textField, n.ToString());
                var edit = (n % 2) == 0;
                store.SetValue(r, editableField, edit);
                store.SetValue(r, textField2, edit ? "editable" : "not editable");
            }
            PackStart(list, true);
        }
 public WorkspaceAddEditDialog(Microsoft.TeamFoundation.VersionControl.Client.Workspace workspace, Microsoft.TeamFoundation.Client.ProjectCollection projectCollection)
 {
     this.projectCollection = projectCollection;
     if (workspace == null)
     {
         _action = DialogAction.Create;
     }
     else
     {
         this._workspace = workspace;
         _action = DialogAction.Edit;
     }
     _workingFoldersStore = new ListStore(_tfsFolder, _localFolder);
     BuildGui();
 }
示例#21
0
        public ListViewLog(bool squeezeEntries)
        {
            SqueezeEntries = squeezeEntries;

            infoIcon = StockIcons.Information.WithSize(IconSize.Small);
            warningIcon = StockIcons.Warning.WithSize(IconSize.Small);
            errorIcon = StockIcons.Error.WithSize(IconSize.Small);

            imgField = new DataField<Image>();
            typeField = new DataField<string>();
            timestampField = new DataField<string>();
            textField = new DataField<string>();
            objectField = new DataField<string>();
            machineField = new DataField<string>();
            idField = new DataField<ulong>();

            listStore = new ListStore(imgField, objectField, timestampField, typeField, textField, machineField, idField);

            DataSource = listStore;
            Columns.Add("Id", idField);
            Columns.Add("Type", imgField, typeField);
            Columns.Add("Timestamp", timestampField);
            Columns.Add("Source", objectField);
            Columns.Add("Machine", machineField);
            Columns.Add("Text", textField);

            var gtkScrolledWindow = (Gtk.ScrolledWindow)Toolkit.CurrentEngine.GetNativeWidget(this);
            gtkScrolledWindow.Child.CanFocus = false; //can only set this inside GTK since there is a ScrolledWindow wrapper... - should be fixed in XWT
            BorderVisible = false;

            gtkScrolledWindow.Vadjustment.ValueChanged += (sender, e) => 
            {
                var s = Scrolled;
                if (s == null)
                {
                    return;
                }

                if(gtkScrolledWindow.Vadjustment.Value < Epsilon)
                {
                    s(ScrolledState.ScrolledUp);
                }
                else if ((gtkScrolledWindow.Vadjustment.Upper - gtkScrolledWindow.Vadjustment.PageSize) - gtkScrolledWindow.Vadjustment.Value < Epsilon)
                {
                    s(ScrolledState.ScrolledDown);
                }
            };
        }
示例#22
0
文件: WidgetFocus.cs 项目: m13253/xwt
		public WidgetFocus ()
		{
			var text = new TextEntry ();
			var check = new CheckBox ("CheckBox");
			var slider = new HSlider ();
			ListStore store = new ListStore (value);
			var list = new ListView (store);
			list.Columns.Add ("Value", value);
			list.HeadersVisible = false;
			for (int n=0; n<10; n++) {
				var r = store.AddRow ();
				store.SetValue (r, value, "Value " + n);
			}

			var btn1 = new Button ("TextEnty");
			var btn2 = new Button ("Checkbox");
			var btn3 = new Button ("Slider");
			var btn4 = new Button ("ListBox");
			var btn5 = new Button ("Button");

			btn1.Clicked += (sender, e) => text.SetFocus ();
			btn2.Clicked += (sender, e) => check.SetFocus ();
			btn3.Clicked += (sender, e) => slider.SetFocus ();
			btn4.Clicked += (sender, e) => list.SetFocus ();
			btn5.Clicked += (sender, e) => btn1.SetFocus ();

			var btnBox = new HBox ();
			btnBox.PackStart (btn1);
			btnBox.PackStart (btn2);
			btnBox.PackStart (btn3);
			btnBox.PackStart (btn4);
			btnBox.PackStart (btn5);

			var focusBox = new HBox ();
			var vbox = new VBox ();
			vbox.PackStart (text);
			vbox.PackStart (check);
			vbox.PackStart (slider);
			focusBox.PackStart (vbox);
			focusBox.PackStart (list, true);

			PackStart (btnBox);
			PackStart (focusBox, true);
		}
示例#23
0
		public ListBoxSample ()
		{
			// Default list box
			
			ListBox list = new ListBox ();
			
			for (int n=0; n<100; n++)
				list.Items.Add ("Value " + n);
			
			PackStart (list, true);
			
			// Custom list box
			
			ListBox customList = new ListBox ();
			customList.GridLinesVisible = true;
			ListStore store = new ListStore (name, icon);
			customList.DataSource = store;
			customList.Views.Add (new ImageCellView (icon));
			customList.Views.Add (new TextCellView (name));
			
			var png = Image.FromResource (typeof(App), "class.png");
			
			for (int n=0; n<100; n++) {
				var r = store.AddRow ();
				store.SetValue (r, icon, png);
				store.SetValue (r, name, "Value " + n);
			}
			PackStart (customList, true);

			var spnValue = new SpinButton ();
			spnValue.MinimumValue = 0;
			spnValue.MaximumValue = 99;
			spnValue.IncrementValue = 1;
			spnValue.Digits = 0;
			var btnScroll = new Button ("Go!");
			btnScroll.Clicked += (sender, e) => customList.ScrollToRow((int)spnValue.Value);

			HBox scrollActBox = new HBox ();
			scrollActBox.PackStart (new Label("Scroll to Value: "));
			scrollActBox.PackStart (spnValue);
			scrollActBox.PackStart (btnScroll);
			PackStart (scrollActBox);
		}	
示例#24
0
        public ListView1()
        {
            ListView list = new ListView ();
            ListStore store = new ListStore (name, icon, text, icon2);
            list.DataSource = store;
            list.Columns.Add ("Name", icon, name);
            list.Columns.Add ("Text", icon2, text);

            var png = Image.FromResource (typeof(App), "class.png");

            for (int n=0; n<100; n++) {
                var r = store.AddRow ();
                store.SetValue (r, icon, png);
                store.SetValue (r, name, "Value " + n);
                store.SetValue (r, icon2, png);
                store.SetValue (r, text, "Text " + n);
            }
            PackStart (list, BoxMode.FillAndExpand);
        }
示例#25
0
		public ListViewCellBounds ()
		{
			MinHeight = 120;
			MinWidth = 100;

			container = new VBox ();
			ListView = new ListView();

			ListView.GridLinesVisible = GridLines.Both;
			ListStore = new ListStore (name, icon, text, check, progress);
			ListView.DataSource = ListStore;
			ListView.Columns.Add ("Name", icon, name);
			ListView.Columns.Add ("Check", new TextCellView () { TextField = text }, new CustomCell () { ValueField = progress, Size = new Size(20, 20) }, new CheckBoxCellView() { ActiveField = check });
			//list.Columns.Add ("Progress", new TextCellView () { TextField = text }, new CustomCell () { ValueField = progress }, new TextCellView () { TextField = text } );
			ListView.Columns.Add ("Progress", new CustomCell () { ValueField = progress });

			var png = Image.FromResource (typeof(App), "class.png");

			Random rand = new Random ();

			for (int n=0; n<100; n++) {
				var r = ListStore.AddRow ();
				ListStore.SetValue (r, icon, png);
				if (rand.Next (50) > 25) {
					ListStore.SetValue (r, name, "Value \n" + n);
					ListStore.SetValue (r, check, false);
				} else {
					ListStore.SetValue (r, name, "Value " + n);
					ListStore.SetValue (r, check, true);
				}
				ListStore.SetValue (r, text, "Text " + n);
				ListStore.SetValue (r, progress, new CellData { Value = rand.Next () % 100 });
			}

			ListView.SelectionChanged += (sender, e) => UpdateTracker (ListView.SelectedRow);
			ListView.MouseMoved += (sender, e) => UpdateTracker (ListView.GetRowAtPosition (e.X, e.Y));

			drawer = new ListTrackingCanvas (this);

			container.PackStart (ListView, true);
			container.PackStart (drawer);
			AddChild (container);
		}
            public ChessGameWidget()
                : base()
            {
                highlightMoveIndex = -1;

                gameInfoWidget = new ChessGameInfoWidget ();
                gameView = new TreeView ();
                moveStore = new ListStore (typeof (object));
                gameView.Model = moveStore;
                SetupMovesTree ();
                gameInfoWidget.Show ();
                gameView.Show ();
                Show ();

                PackStart (gameInfoWidget, false, false, 0);
                ScrolledWindow win = new ScrolledWindow ();
                  win.Child = gameView;
                  win.HscrollbarPolicy = PolicyType.Never;
                  win.VscrollbarPolicy = PolicyType.Automatic;
                  win.Show ();
                  PackStart (win, true, true, 0);
            }
		public ListViewDialog ()
		{
			Title = "Xwt List View Box Dialog";
			Width = 500;
			Height = 400;

			var vbox = new VBox ();
			Content = vbox;

			listView = new ListView ();
			listView.HeadersVisible = false;
			vbox.PackStart (listView);

			listStore = new ListStore (dataField);
			listView.DataSource = listStore;

			cellView = new CustomCanvasCellView ();
			var column = new ListViewColumn ("test", cellView);
			listView.Columns.Add (column);

			AddItems ();
		}
示例#28
0
文件: ListView2.cs 项目: neiz/xwt
        public ListView2()
        {
            ListView list = new ListView ();
            editable = new DataField<bool> ();
            nonEditable = new DataField<bool> ();
            var textField = new DataField<string> ();
            ListStore store = new ListStore (editable, nonEditable, textField);
            list.DataSource = store;

            list.Columns.Add (new ListViewColumn("Editable", new CheckBoxCellView { Editable = true, ActiveField = editable }));
            list.Columns.Add (new ListViewColumn("Not Editable", new CheckBoxCellView { Editable = false, ActiveField = nonEditable }));
            list.Columns.Add (new ListViewColumn("Editable", new TextCellView { Editable = true, TextField = textField }));

            Random rand = new Random ();

            for (int n=0; n<100; n++) {
                var r = store.AddRow ();
                store.SetValue (r, editable, rand.Next(0, 2) == 0);
                store.SetValue (r, nonEditable, rand.Next(0, 2) == 0);
                store.SetValue (r, textField, n.ToString ());
            }
            PackStart (list, true);
        }
示例#29
0
文件: UIBase.cs 项目: spox/irisim
            public UIBase()
            {
                this._controller = new Controller();
                this._controller.message_pump.ui_event += new UIEvent(this.UpdateConnectionStatus);
                this._controller.message_pump.ui_event += new UIEvent(this.UpdateEncryptionStatus);
                this._controller.message_pump.ui_event += new UIEvent(this.ErrorWatch);
                this._controller.message_pump.ui_event += new UIEvent(this.MessageWatch);
                this._chat_list_store = new ListStore(typeof(string), typeof(string));
                this._user_connections = new ConnectionCollection();
                this._user_accounts = new AccountCollection();
                this._user_chats = new Hashtable();
                this._current_chat = "";
                Application.Init();
                this.gxml = new Glade.XML(null, "irisim.glade", "chatWindow", null);
                this.gxml.Autoconnect(this);
                this.chatListView.FixedHeightMode = false;
                this.chatListView.HeadersVisible = true;
                this.chatListView.AppendColumn("Chats", new CellRendererText(), "text", 0);
                this.chatListView.Model = this._chat_list_store;
                this.chatListView.Selection.Changed += this.on_chatListView_changed;
                this.chatListView.ShowAll();

                Application.Run();
            }
示例#30
0
        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))
                {
                    ext.CommitMessageTextViewHook(textview);
                    if (separatorRequired)
                    {
                        HSeparator sep = new HSeparator();
                        sep.Show();
                        vboxExtensions.PackEnd(sep, false, false, 0);
                    }
                    vboxExtensions.PackEnd(ext, false, false, 0);
                    extensions.Add(ext);
                    ext.AllowCommitChanged += HandleAllowCommitChanged;
                    separatorRequired       = true;
                }
                else
                {
                    ext.Destroy();
                }
            }
            HandleAllowCommitChanged(null, null);

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

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

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

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

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

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

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

            SetResponseSensitive(ResponseType.Ok, responseSensitive);
        }
示例#31
0
        public EditTemplateDialog(CodeTemplate template, bool isNew)
        {
            this.Build();
            this.Title                          = isNew ? GettextCatalog.GetString("New template") : GettextCatalog.GetString("Edit template");
            this.template                       = template;
            this.entryShortcut1.Text            = template.Shortcut ?? "";
            this.comboboxentryGroups.Entry.Text = template.Group ?? "";
            this.comboboxentryMime.Entry.Text   = template.MimeType ?? "";
            this.entryDescription.Text          = template.Description ?? "";
            this.textEditor.Document.MimeType   = template.MimeType;
            this.textEditor.Document.Text       = template.Code;

            checkbuttonExpansion.Active    = (template.CodeTemplateType & CodeTemplateType.Expansion) == CodeTemplateType.Expansion;
            checkbuttonSurroundWith.Active = (template.CodeTemplateType & CodeTemplateType.SurroundsWith) == CodeTemplateType.SurroundsWith;

            scrolledwindow1.Child = textEditor;
            textEditor.ShowAll();
            textEditor.Caret.PositionChanged += CaretPositionChanged;
            options = new Mono.TextEditor.TextEditorOptions();
            options.ShowLineNumberMargin = false;
            options.ShowFoldMargin       = false;
            options.ShowIconMargin       = false;
            options.ShowInvalidLines     = false;
            options.ShowSpaces           = options.ShowTabs = options.ShowEolMarkers = false;
            options.ColorScheme          = PropertyService.Get("ColorScheme", "Default");
            textEditor.Options           = options;

            HashSet <string> mimeTypes = new HashSet <string> ();
            HashSet <string> groups    = new HashSet <string> ();

            foreach (CodeTemplate ct in CodeTemplateService.Templates)
            {
                mimeTypes.Add(ct.MimeType);
                groups.Add(ct.Group);
            }
            comboboxentryMime.AppendText("");
            foreach (string mime in mimeTypes)
            {
                comboboxentryMime.AppendText(mime);
            }
            comboboxentryGroups.AppendText("");
            foreach (string group in groups)
            {
                comboboxentryGroups.AppendText(group);
            }
            textEditor.Document.TextReplaced += DocumentTextReplaced;
            this.buttonOk.Clicked            += ButtonOkClicked;

            checkbuttonWhiteSpaces.Toggled += CheckbuttonWhiteSpacesToggled;

            variablesListStore         = new ListStore(typeof(string), typeof(CodeTemplateVariable));
            comboboxVariables.Model    = variablesListStore;
            comboboxVariables.Changed += ComboboxVariablesChanged;

            variableStore                   = new TreeStore(typeof(string), typeof(CodeTemplateVariable), typeof(string), typeof(int));
            treeviewVariable.Model          = variableStore;
            treeviewVariable.HeadersVisible = false;

            treeviewVariable.AppendColumn("", new Gtk.CellRendererText(), "text", 0);
            CellRendererText nameRenderer = new CellRendererText();

            treeviewVariable.AppendColumn("", nameRenderer, delegate(TreeViewColumn col, CellRenderer cell, TreeModel model, TreeIter iter) {
                nameRenderer.Markup = ((string)model.GetValue(iter, 2));
            });

            grid = new MonoDevelop.Components.PropertyGrid.PropertyGrid();
            grid.PropertySort = MonoDevelop.Components.PropertyGrid.PropertySort.Alphabetical;
            grid.ShowHelp     = true;
            grid.ShowAll();
            grid.ShowToolbar = false;

            vbox4.Remove(scrolledwindow2);
            vbox4.PackEnd(grid, true, true, 0);

            UpdateVariables();
        }
示例#32
0
        public SingleplayerView(LauncherWindow window)
        {
            Worlds.Local = new Worlds();
            Worlds.Local.Load();

            Window        = window;
            this.MinWidth = 250;

            SingleplayerLabel = new Label("Singleplayer")
            {
                Font          = Font.WithSize(16),
                TextAlignment = Alignment.Center
            };
            WorldListView = new ListView
            {
                MinHeight     = 200,
                SelectionMode = SelectionMode.Single
            };
            CreateWorldButton = new Button("New world");
            DeleteWorldButton = new Button("Delete")
            {
                Sensitive = false
            };
            PlayButton = new Button("Play")
            {
                Sensitive = false
            };
            BackButton     = new Button("Back");
            CreateWorldBox = new VBox()
            {
                Visible = false
            };
            NewWorldName = new TextEntry()
            {
                PlaceholderText = "Name"
            };
            NewWorldSeed = new TextEntry()
            {
                PlaceholderText = "Seed (optional)"
            };
            NewWorldCommit = new Button("Create")
            {
                Sensitive = false
            };
            NewWorldCancel               = new Button("Cancel");
            NameField                    = new DataField <string>();
            WorldListStore               = new ListStore(NameField);
            WorldListView.DataSource     = WorldListStore;
            WorldListView.HeadersVisible = false;
            WorldListView.Columns.Add(new ListViewColumn("Name", new TextCellView {
                TextField = NameField, Editable = false
            }));
            ProgressLabel = new Label("Loading world...")
            {
                Visible = false
            };
            ProgressBar = new ProgressBar()
            {
                Visible = false, Indeterminate = true, Fraction = 0
            };

            BackButton.Clicked += (sender, e) =>
            {
                Window.InteractionBox.Remove(this);
                Window.InteractionBox.PackEnd(Window.MainMenuView);
            };
            CreateWorldButton.Clicked += (sender, e) =>
            {
                CreateWorldBox.Visible = true;
            };
            NewWorldCancel.Clicked += (sender, e) =>
            {
                CreateWorldBox.Visible = false;
            };
            NewWorldName.Changed += (sender, e) =>
            {
                NewWorldCommit.Sensitive = !string.IsNullOrEmpty(NewWorldName.Text);
            };
            NewWorldCommit.Clicked         += NewWorldCommit_Clicked;
            WorldListView.SelectionChanged += (sender, e) =>
            {
                PlayButton.Sensitive = DeleteWorldButton.Sensitive = WorldListView.SelectedRow != -1;
            };
            PlayButton.Clicked        += PlayButton_Clicked;
            DeleteWorldButton.Clicked += (sender, e) =>
            {
                var world = Worlds.Local.Saves[WorldListView.SelectedRow];
                WorldListStore.RemoveRow(WorldListView.SelectedRow);
                Worlds.Local.Saves = Worlds.Local.Saves.Where(s => s != world).ToArray();
                Directory.Delete(world.BaseDirectory, true);
            };

            foreach (var world in Worlds.Local.Saves)
            {
                var row = WorldListStore.AddRow();
                WorldListStore.SetValue(row, NameField, world.Name);
            }

            var createDeleteHbox = new HBox();

            CreateWorldButton.WidthRequest = DeleteWorldButton.WidthRequest = 0.5;
            createDeleteHbox.PackStart(CreateWorldButton, true);
            createDeleteHbox.PackStart(DeleteWorldButton, true);

            CreateWorldBox.PackStart(NewWorldName);
            CreateWorldBox.PackStart(NewWorldSeed);
            var newWorldHbox = new HBox();

            NewWorldCommit.WidthRequest = NewWorldCancel.WidthRequest = 0.5;
            newWorldHbox.PackStart(NewWorldCommit, true);
            newWorldHbox.PackStart(NewWorldCancel, true);
            CreateWorldBox.PackStart(newWorldHbox);

            this.PackStart(SingleplayerLabel);
            this.PackStart(WorldListView);
            this.PackStart(createDeleteHbox);
            this.PackStart(PlayButton);
            this.PackStart(CreateWorldBox);
            this.PackStart(ProgressLabel);
            this.PackStart(ProgressBar);
            this.PackEnd(BackButton);
        }
示例#33
0
        public override void Initialize(NodeBuilder[] builders, TreePadOption[] options, string menuPath)
        {
            base.Initialize(builders, options, menuPath);

            testChangedHandler            = (EventHandler)DispatchService.GuiDispatch(new EventHandler(OnDetailsTestChanged));
            testService.TestSuiteChanged += (EventHandler)DispatchService.GuiDispatch(new EventHandler(OnTestSuiteChanged));
            paned = new VPaned();

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

            buttonRunAll             = new Button(new Gtk.Image(Gtk.Stock.GoUp, IconSize.Menu));
            buttonRunAll.Clicked    += new EventHandler(OnRunAllClicked);
            buttonRunAll.Sensitive   = true;
            buttonRunAll.TooltipText = GettextCatalog.GetString("Run all tests");
            topToolbar.Add(buttonRunAll);

            buttonRun             = new Button(new Gtk.Image(Gtk.Stock.Execute, IconSize.Menu));
            buttonRun.Clicked    += new EventHandler(OnRunClicked);
            buttonRun.Sensitive   = true;
            buttonRun.TooltipText = GettextCatalog.GetString("Run test");
            topToolbar.Add(buttonRun);

            buttonStop             = new Button(new Gtk.Image(Gtk.Stock.Stop, IconSize.Menu));
            buttonStop.Clicked    += new EventHandler(OnStopClicked);
            buttonStop.Sensitive   = false;
            buttonStop.TooltipText = GettextCatalog.GetString("Cancel running test");
            topToolbar.Add(buttonStop);
            topToolbar.ShowAll();

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

            paned.Pack1(vbox, true, true);

            detailsPad = new VBox();

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

            eb.Add(header);

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

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

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

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

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

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

            VPaned panedDetails = new VPaned();

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

            chart = new TestChart();
            chart.ButtonPressEvent += OnChartButtonPress;
            chart.SelectionChanged += new EventHandler(OnChartDateChanged);
            chart.HeightRequest     = 50;

            Toolbar toolbar = new Toolbar();

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

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

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

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

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

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

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

            panedDetails.Pack1(boxPaned1, false, false);

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

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

            // Info - Group summary

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

            detailsTree = new TreeView();

            detailsTree.HeadersVisible = true;
            detailsTree.RulesHint      = true;
            detailsStore = new ListStore(typeof(object), typeof(string), typeof(string), typeof(string), typeof(string));

            CellRendererText trtest = new CellRendererText();
            CellRendererText tr;

            TreeViewColumn col3 = new TreeViewColumn();

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

            TreeViewColumn col4 = new TreeViewColumn();

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

            TreeViewColumn col5 = new TreeViewColumn();

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

            TreeViewColumn col1 = new TreeViewColumn();

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

            detailsTree.Model = detailsStore;

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

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

            // Info - Regressions list

            tf = new Frame();
            sw = new ScrolledWindow();
            tf.Add(sw);
            regressionTree = new TreeView();
            regressionTree.HeadersVisible = false;
            regressionTree.RulesHint      = true;
            regressionStore = new ListStore(typeof(object), typeof(string), typeof(Pixbuf));

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

            TreeViewColumn col = new TreeViewColumn();

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

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

            // Info - Failed tests list

            tf = new Frame();
            sw = new ScrolledWindow();
            tf.Add(sw);
            failedTree = new TreeView();
            failedTree.HeadersVisible = false;
            failedTree.RulesHint      = true;
            failedStore = new ListStore(typeof(object), typeof(string), typeof(Pixbuf));

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

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

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

            // Info - results

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

            // Info - Output

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

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

            paned.ShowAll();

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

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

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

            foreach (UnitTest t in testService.RootTests)
            {
                TreeView.AddChild(t);
            }
        }
 public ConnectToServerDialog()
 {
     serverStore = new ListStore(nameField, urlField, serverField);
     BuildGui();
     UpdateServersList();
 }
示例#35
0
        protected void OnBtnAddClicked(object sender, System.EventArgs e)
        {
            // create combobox selection by aggregating clubs
            List <string> clubs    = new List <string>();
            List <string> debaters = new List <string>();

            foreach (Debater d in Tournament.I.Debaters)
            {
                if (!clubs.Contains("@" + d.Club.Name))
                {
                    clubs.Add("@" + d.Club.Name);
                }
                debaters.Add(d.Name.ToString());
            }
            clubs.Sort();
            debaters.Sort();

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

            foreach (string c in clubs)
            {
                store.AppendValues(c);
            }
            foreach (string d in debaters)
            {
                store.AppendValues(d);
            }

            ComboBoxEntry cb = new ComboBoxEntry(store, 0);

            cb.Entry.Completion                  = new EntryCompletion();
            cb.Entry.Completion.Model            = store;
            cb.Entry.Completion.TextColumn       = 0;
            cb.Entry.Completion.InlineCompletion = true;
            HBox hbox = new HBox();
            // btnOk
            Button btnOk = new Button();
            Image  im    = new Image();

            im.Pixbuf = Stetic.IconLoader.LoadIcon(this, "gtk-apply", IconSize.Menu);
            btnOk.Add(im);
            btnOk.Clicked += delegate {
                try {
                    pattern = DebaterPattern.Parse(pattern + "; " + cb.ActiveText);
                }
                catch (Exception ex) {
                    MiscHelpers.ShowMessage(this,
                                            "Could not add pattern: " + ex.Message,
                                            MessageType.Error);
                    return;
                }
                UpdateGui();
            };
            hbox.PackStart(btnOk, false, false, 0);
            // btnCancel
            Button btnCancel = new Button();

            im        = new Image();
            im.Pixbuf = Stetic.IconLoader.LoadIcon(this, "gtk-cancel", IconSize.Menu);
            btnCancel.Add(im);
            btnCancel.Clicked += delegate {
                UpdateGui();
            };
            hbox.PackStart(btnCancel, false, false, 0);
            // cb as last element
            hbox.PackStart(cb, false, false, 0);
            hbox.ShowAll();
            vbox.PackStart(hbox, false, false, 0);
            alAdd.Hide();
            GtkScrolledWindow.Vadjustment.Value = GtkScrolledWindow.Vadjustment.Upper;
        }
示例#36
0
        //TODO: difference between columns and reference columns + combo events
        public ForeignKeyConstraintEditorWidget(ISchemaProvider schemaProvider, SchemaActions action, TableSchemaCollection tables, TableSchema table, ColumnSchemaCollection columns, ConstraintSchemaCollection constraints)
        {
            if (columns == null)
            {
                throw new ArgumentNullException("columns");
            }
            if (table == null)
            {
                throw new ArgumentNullException("table");
            }
            if (constraints == null)
            {
                throw new ArgumentNullException("constraints");
            }
            if (schemaProvider == null)
            {
                throw new ArgumentNullException("schemaProvider");
            }
            if (tables == null)
            {
                throw new ArgumentNullException("tables");
            }

            this.schemaProvider = schemaProvider;
            this.table          = table;
            this.tables         = tables;
            this.columns        = columns;
            this.constraints    = constraints;
            this.action         = action;

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

            IDbFactory fac = schemaProvider.ConnectionPool.DbFactory;

            if (fac.IsCapabilitySupported("ForeignKeyConstraint", action, ForeignKeyConstraintCapabilities.Cascade))
            {
                storeActions.AppendValues("Cascade", ForeignKeyAction.Cascade);
            }
            if (fac.IsCapabilitySupported("ForeignKeyConstraint", action, ForeignKeyConstraintCapabilities.Restrict))
            {
                storeActions.AppendValues("Restrict", ForeignKeyAction.Restrict);
            }
            if (fac.IsCapabilitySupported("ForeignKeyConstraint", action, ForeignKeyConstraintCapabilities.NoAction))
            {
                storeActions.AppendValues("No Action", ForeignKeyAction.NoAction);
            }
            if (fac.IsCapabilitySupported("ForeignKeyConstraint", action, ForeignKeyConstraintCapabilities.SetNull))
            {
                storeActions.AppendValues("Set Null", ForeignKeyAction.SetNull);
            }
            if (fac.IsCapabilitySupported("ForeignKeyConstraint", action, ForeignKeyConstraintCapabilities.SetDefault))
            {
                storeActions.AppendValues("Set Default", ForeignKeyAction.SetDefault);
            }

            foreach (TableSchema tbl in tables)
            {
                if (tbl.Name != table.Name)
                {
                    storeTables.AppendValues(tbl.Name);
                }
            }

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

            colName.Title               = GettextCatalog.GetString("Name");
            colRefTable.Title           = GettextCatalog.GetString("Reference Table");
            colIsColumnConstraint.Title = GettextCatalog.GetString("Column Constraint");
            colDeleteAction.Title       = GettextCatalog.GetString("Delete Action");
            colUpdateAction.Title       = GettextCatalog.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);

            isColumnConstraintRenderer.Activatable = true;
            isColumnConstraintRenderer.Toggled    += new ToggledHandler(IsColumnConstraintToggled);

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

            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();
        }
示例#37
0
        private void AddWidgetsAndShow(EditorMode editorMode)
        {
            /* Set a handler for delete_event that immediately
             * exits GTK. */
            DeleteEvent += delete_event;

            if (null != TopLevelHBox)
            {
                TopLevelHBox.Hide();
                TopLevelHBox.Destroy();
                TopLevelHBox = null;
            }

            CurrentMode = editorMode;


            EditorWidget = null;

            switch (editorMode)
            {
            case EditorMode.Level:
                EditorWidget = new LevelEditLayout();
                ((LevelEditLayout)EditorWidget).TreeRefreshNeeded += TreeRefreshNeeded_Event;
                break;

            case EditorMode.Turret:
                EditorWidget = new TurretEditLayout();
                ((TurretEditLayout)EditorWidget).TreeRefreshNeeded += TreeRefreshNeeded_Event;
                break;

            case EditorMode.Enemy:
                EditorWidget = new EnemyEditLayout();
                ((EnemyEditLayout)EditorWidget).TreeRefreshNeeded += TreeRefreshNeeded_Event;
                break;

            case EditorMode.Projectile:
                EditorWidget = new ProjectileEditLayout();
                ((ProjectileEditLayout)EditorWidget).TreeRefreshNeeded += TreeRefreshNeeded_Event;
                break;

            case EditorMode.Analysis:
                EditorWidget = new LevelAnalysisLayout();
                ((LevelAnalysisLayout)EditorWidget).TreeRefreshNeeded += TreeRefreshNeeded_Event;
                break;
            }

            TopLevelHBox = new HBox(false, 0);
            Add(TopLevelHBox);
            TopLevelHBox.Show();

            //
            // Lefthand column
            //

            VBox vbox = new VBox(false, 0);

            TopLevelHBox.PackStart(vbox, false, true, 5);
            vbox.SetSizeRequest(100, -1);
            vbox.Show();

            Button addLevelButton = new Button("+");

            addLevelButton.Clicked += AddButton_Clicked;
            vbox.PackStart(addLevelButton, false, false, 5);
            addLevelButton.Show();

            Button removeLevelButton = new Button("-");

            removeLevelButton.Clicked += RemoveButton_Clicked;
            vbox.PackStart(removeLevelButton, false, false, 5);
            removeLevelButton.Show();

            tree = new TreeView();
            vbox.PackStart(tree, true, true, 0);

            // Create a column for the artist name
            TreeViewColumn   levelColumn       = new TreeViewColumn();
            CellRendererText levelCellRenderer = new CellRendererText();

            levelColumn.PackStart(levelCellRenderer, true);
            levelColumn.AddAttribute(levelCellRenderer, "text", 0);
            tree.AppendColumn(levelColumn);
            ListModel               = new ListStore(typeof(string));
            tree.Model              = ListModel;
            tree.Selection.Mode     = SelectionMode.Single;
            tree.Selection.Changed += TreeSelection_Changed;

            switch (editorMode)
            {
            case EditorMode.Level:
                levelColumn.Title = "Levels";
                PopulateTreeWithLevels();
                break;

            case EditorMode.Turret:
                levelColumn.Title = "Turrets";
                PopulateTreeWithTurrets();
                break;

            case EditorMode.Enemy:
                levelColumn.Title = "Enemies";
                PopulateTreeWithEnemies();
                break;

            case EditorMode.Projectile:
                levelColumn.Title = "Projectiles";
                PopulateTreeWithProjectilees();
                break;

            case EditorMode.Analysis:
                levelColumn.Title = "Analysis";
                PopulateTreeWithLevels();
                break;
            }

            tree.Show();


            //
            // Righthand column
            //

            vbox = new VBox(false, 0);
            TopLevelHBox.PackStart(vbox, true, true, 5);
            vbox.Show();

            HBox modeHbox = new HBox(true, 0);

            vbox.PackStart(modeHbox, false, true, 0);
            modeHbox.Show();

            Button modeButton = new Button("Level");

            modeButton.Show();
            modeButton.Clicked += level_clicked_event;
            modeHbox.PackStart(modeButton, false, false, 5);

            modeButton = new Button("Turret");
            modeButton.Show();
            modeButton.Clicked += turret_clicked_event;
            modeHbox.PackStart(modeButton, false, false, 5);

            modeButton = new Button("Enemy");
            modeButton.Show();
            modeButton.Clicked += enemy_clicked_event;
            modeHbox.PackStart(modeButton, false, false, 5);

            modeButton = new Button("Projectile");
            modeButton.Show();
            modeButton.Clicked += projectile_clicked_event;
            modeHbox.PackStart(modeButton, false, false, 5);

            modeButton = new Button("Analysis");
            modeButton.Show();
            modeButton.Clicked += analysis_clicked_event;
            modeHbox.PackStart(modeButton, false, false, 5);

            vbox.PackStart(EditorWidget, true, true, 5);
            EditorWidget.Show();


            ShowAll();

            LevelManager.WriteAssetDirectory();
        }
示例#38
0
 public SparkleTreeView(ListStore store) : base(store)
 {
 }
示例#39
0
        public SparkleSetup() : base()
        {
            Controller.HideWindowEvent += delegate {
                Application.Invoke(delegate {
                    HideAll();
                });
            };

            Controller.ShowWindowEvent += delegate {
                Application.Invoke(delegate {
                    ShowAll();
                    Present();
                });
            };

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

                    switch (type)
                    {
                    case PageType.Setup: {
                        Header      = "Welcome to SparkleShare!";
                        Description = "First off, what's your name and email?\nThis information is only visible 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
                        };

                        string username = UnixUserInfo.GetRealUser().RealName;

                        if (!string.IsNullOrEmpty(username))
                        {
                            name_entry.Text = username.TrimEnd(",".ToCharArray());
                        }

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

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

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

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

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

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

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

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


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

                        Controller.CheckSetupPage(name_entry.Text, email_entry.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);

                        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>"
                        };


                        // 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) {
                            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.CheckAddPage(address_entry.Text, path_entry.Text, 1);

                        // 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)
                                    {
                                        address_entry.Sensitive = false;
                                    }

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

                                    // TODO: Scroll to the selection

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


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

                        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.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);
                        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 {
                            Controller.PageCancelled();
                        };

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

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

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


                        CheckButton check_button = new CheckButton("Fetch prior history")
                        {
                            Active = false
                        };

                        check_button.Toggled += delegate {
                            Controller.HistoryItemChanged(check_button.Active);
                        };

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

                        Controller.CheckAddPage(address_entry.Text, path_entry.Text, 1);

                        break;
                    }

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

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

                        Button add_button = new Button("Add");

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

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

                        break;
                    }

                    case 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?";

                        this.progress_bar.Fraction = Controller.ProgressBarPercentage / 100;

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

                        Add(bar_wrapper);

                        break;
                    }

                    case 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   = "Do you have access rights to this remote project?",
                            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");

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

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

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

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

                        break;
                    }

                    case PageType.CryptoSetup: {
                        Header      = "Set up file encryption";
                        Description = "This project is supposed to be encrypted, but it doesn't yet have a password set. Please provide one below.";

                        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,
                        };

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

                        password_entry.Changed += delegate {
                            Controller.CheckCryptoSetupPage(password_entry.Text);
                        };


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

                        continue_button.Clicked += delegate {
                            Controller.CryptoSetupPageCompleted(password_entry.Text);
                        };

                        Button cancel_button = new Button("Cancel");

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

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


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

                        wrapper.PackStart(warning_wrapper, false, false, 0);


                        Add(wrapper);



                        AddButton(cancel_button);
                        AddButton(continue_button);

                        break;
                    }

                    case PageType.CryptoPassword: {
                        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
                        };

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

                        password_entry.Changed += delegate {
                            Controller.CheckCryptoPasswordPage(password_entry.Text);
                        };


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

                        continue_button.Clicked += delegate {
                            Controller.CryptoPasswordPageCompleted(password_entry.Text);
                        };

                        Button cancel_button = new Button("Cancel");

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

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

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

                        Add(wrapper);

                        AddButton(cancel_button);
                        AddButton(continue_button);

                        break;
                    }

                    case PageType.Finished: {
                        UrgencyHint = true;

                        if (!HasToplevelFocus)
                        {
                            string title   = "Your shared project is ready!";
                            string subtext = "You can find the files in your SparkleShare folder.";

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

                        Header      = "Your shared project is ready!";
                        Description = "You can find it in your SparkleShare folder";

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

                        open_folder_button.Clicked += delegate {
                            Controller.OpenFolderClicked();
                        };

                        Button finish_button = new Button("Finish");

                        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(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 on your computer " +
                                          "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 automatically with " +
                                          "the host and your team members.";

                            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 progress, provides easy access to " +
                                          "your projects and let's you view recent changes.";

                            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 = "You can do this through the status icon menu, or by clicking " +
                                          "magic buttons on webpages that look like this:";

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

                            Button finish_button   = new Button("Finish");
                            finish_button.Clicked += delegate {
                                Controller.TutorialPageCompleted();
                            };


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

                            check_button.Toggled += delegate {
                                Controller.StartupItemChanged(check_button.Active);
                            };

                            Add(slide);
                            AddOption(check_button);
                            AddButton(finish_button);

                            break;
                        }
                        }

                        break;
                    }
                    }

                    ShowAll();
                });
            };
        }
示例#40
0
        public override Control CreatePanelWidget()
        {
            HBox  hbox  = new HBox(false, 6);
            Label label = new Label();

            label.MarkupWithMnemonic = GettextCatalog.GetString("_Policy:");
            hbox.PackStart(label, false, false, 0);

            store       = new ListStore(typeof(string), typeof(PolicySet));
            policyCombo = new ComboBox(store);
            CellRenderer renderer = new CellRendererText();

            policyCombo.PackStart(renderer, true);
            policyCombo.AddAttribute(renderer, "text", 0);

            label.MnemonicWidget         = policyCombo;
            policyCombo.RowSeparatorFunc = (TreeModel model, TreeIter iter) =>
                                           ((string)model.GetValue(iter, 0)) == "--";
            hbox.PackStart(policyCombo, false, false, 0);

            VBox vbox = new VBox(false, 6);

            vbox.PackStart(hbox, false, false, 0);
            vbox.ShowAll();

            // Warning message to be shown when the user modifies the default policy

            warningMessage         = new HBox();
            warningMessage.Spacing = 6;
            var img = new ImageView(Stock.Warning, IconSize.Menu);

            warningMessage.PackStart(img, false, false, 0);
            Label wl = new Label(GettextCatalog.GetString("Changes done in this section will only be applied to new projects. " +
                                                          "Settings for existing projects can be modified in the project (or solution) options dialog."));

            wl.Xalign       = 0;
            wl.Wrap         = true;
            wl.WidthRequest = 450;
            warningMessage.PackStart(wl, true, true, 0);
            warningMessage.ShowAll();
            warningMessage.Visible = false;
            vbox.PackEnd(warningMessage, false, false, 0);

            notebook = new Notebook();

            // Get the panels for all mime types

            List <string> types = new List <string> ();

            types.AddRange(DesktopService.GetMimeTypeInheritanceChain(mimeType));

            panelData.SectionLoaded = true;
            panels = panelData.Panels;
            foreach (IMimeTypePolicyOptionsPanel panel in panelData.Panels)
            {
                panel.SetParentSection(this);
                Widget child = panel.CreateMimePanelWidget();

                Label tlabel = new Label(panel.Label);
                label.Show();
                child.Show();
                Alignment align = new Alignment(0.5f, 0.5f, 1f, 1f);
                align.BorderWidth = 6;
                align.Add(child);
                align.Show();

                notebook.AppendPage(align, tlabel);
                panel.LoadCurrentPolicy();
            }
            notebook.SwitchPage += delegate(object o, SwitchPageArgs args) {
                if (notebook.Page >= 0 && notebook.Page < this.panels.Count)
                {
                    this.panels[notebook.Page].PanelSelected();
                }
            };
            notebook.Show();
            vbox.PackEnd(notebook, true, true, 0);

            FillPolicies();
            policyCombo.Active = 0;

            loading = false;

            if (!isRoot && panelData.UseParentPolicy)
            {
                //in this case "parent" is always first in the list
                policyCombo.Active = 0;
                notebook.Sensitive = false;
            }
            else
            {
                UpdateSelectedNamedPolicy();
            }

            policyCombo.Changed += HandlePolicyComboChanged;

            return(vbox);
        }
示例#41
0
        public void Initialize(EditSession session)
        {
            this.session = session;

            //if standard values are supported by the converter, then
            //we list them in a combo
            if (session.Property.Converter.GetStandardValuesSupported(session))
            {
                store = new ListStore(typeof(string), typeof(object));

                //if converter doesn't allow nonstandard values, or can't convert from strings, don't have an entry
                if (session.Property.Converter.GetStandardValuesExclusive(session) || !session.Property.Converter.CanConvertFrom(session, typeof(string)))
                {
                    combo = new ComboBox(store);
                    var crt = new CellRendererText();
                    combo.PackStart(crt, true);
                    combo.AddAttribute(crt, "text", 0);
                }
                else
                {
                    combo = new ComboBoxEntry(store, 0);
                    entry = ((ComboBoxEntry)combo).Entry;
                    entry.HeightRequest = combo.SizeRequest().Height;
                }

                PackStart(combo, true, true, 0);
                combo.Changed += TextChanged;

                //fill the list
                foreach (object stdValue in session.Property.Converter.GetStandardValues(session))
                {
                    store.AppendValues(session.Property.Converter.ConvertToString(session, stdValue), ObjectBox.Box(stdValue));
                }

                //a value of "--" gets rendered as a --, if typeconverter marked with UsesDashesForSeparator
                object[] atts = session.Property.Converter.GetType()
                                .GetCustomAttributes(typeof(StandardValuesSeparatorAttribute), true);
                if (atts.Length > 0)
                {
                    string separator = ((StandardValuesSeparatorAttribute)atts[0]).Separator;
                    combo.RowSeparatorFunc = (model, iter) => separator == ((string)model.GetValue(iter, 0));
                }
            }
            // no standard values, so just use an entry
            else
            {
                entry = new Entry();
                PackStart(entry, true, true, 0);
            }

            //if we have an entry, fix it up a little
            if (entry != null)
            {
                entry.HasFrame       = false;
                entry.Changed       += TextChanged;
                entry.FocusOutEvent += FirePendingChangeEvent;
            }

            if (entry != null && ShouldShowDialogButton())
            {
                var button = new Button("...");
                PackStart(button, false, false, 0);
                button.Clicked += ButtonClicked;
            }

            Spacing = 3;
            ShowAll();
        }
示例#42
0
        public ExternalToolPanelWidget()
        {
            Build();
            // instantiate controls
            toolListBoxStore = new ListStore(typeof(string), typeof(ExternalTool));

            dependendControls = new Widget[] {
                titleTextBox, argumentTextBox,
                workingDirTextBox, promptArgsCheckBox, useOutputPadCheckBox,
                titleLabel, argumentLabel, commandLabel, defaultKeyLabel,
                defaultKeyTextBox, keyBindingInfoEventBox,
                workingDirLabel, browseButton,
                moveUpButton, moveDownButton,
                saveCurrentFileCheckBox,
                tagSelectorArgs, tagSelectorPath
            };

            foreach (ExternalTool tool in ExternalToolService.Tools)
            {
                toolListBoxStore.AppendValues(tool.MenuCommand, tool);
                toolListBoxItemCount++;
            }

            toolListBox.Reorderable    = false;
            toolListBox.HeadersVisible = true;
            toolListBox.Selection.Mode = SelectionMode.Multiple;
            toolListBox.Model          = toolListBoxStore;
            toolListBox.SearchColumn   = -1;           // disable the interactive search

            toolListBox.AppendColumn(GettextCatalog.GetString("Tools"), new CellRendererText(), "text", 0);

            tagSelectorArgs.TagModel    = IdeApp.Workbench.GetStringTagModelDescription();
            tagSelectorArgs.TargetEntry = argumentTextBox;

            tagSelectorPath.TagModel    = IdeApp.Workbench.GetStringTagModelDescription();
            tagSelectorPath.TargetEntry = workingDirTextBox;

            keyBindingInfoTooltip = new EventBoxTooltip(keyBindingInfoEventBox)
            {
                Severity = Tasks.TaskSeverity.Warning
            };

            toolListBox.Selection.Changed += SelectionChanged;
            removeButton.Clicked          += RemoveButtonClicked;
            addButton.Clicked             += AddButtonClicked;
            moveUpButton.Clicked          += MoveUpButtonClicked;
            moveDownButton.Clicked        += MoveDownButtonClicked;

            browseButton.PathChanged        += StoreValuesInSelectedTool;
            titleTextBox.Changed            += StoreValuesInSelectedTool;
            argumentTextBox.Changed         += StoreValuesInSelectedTool;
            workingDirTextBox.Changed       += StoreValuesInSelectedTool;
            promptArgsCheckBox.Toggled      += StoreValuesInSelectedTool;
            useOutputPadCheckBox.Toggled    += StoreValuesInSelectedTool;
            saveCurrentFileCheckBox.Toggled += StoreValuesInSelectedTool;

            defaultKeyTextBox.KeyPressEvent   += OnDefaultKeyEntryKeyPress;
            defaultKeyTextBox.KeyReleaseEvent += OnDefaultKeyEntryKeyRelease;

            SelectionChanged(this, EventArgs.Empty);

            SetupAccessibility();
        }
示例#43
0
        private SettingsWindow(MainWindow parent, Builder builder, VirtualFileSystem virtualFileSystem, ContentManager contentManager) : base(builder.GetObject("_settingsWin").Handle)
        {
            Icon = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.Resources.Logo_Ryujinx.png");

            _parent = parent;

            builder.Autoconnect(this);

            _timeZoneContentManager = new TimeZoneContentManager();
            _timeZoneContentManager.InitializeInstance(virtualFileSystem, contentManager, IntegrityCheckLevel.None);

            _validTzRegions = new HashSet <string>(_timeZoneContentManager.LocationNameCache.Length, StringComparer.Ordinal); // Zone regions are identifiers. Must match exactly.

            // Bind Events.
            _configureController1.Pressed      += (sender, args) => ConfigureController_Pressed(sender, PlayerIndex.Player1);
            _configureController2.Pressed      += (sender, args) => ConfigureController_Pressed(sender, PlayerIndex.Player2);
            _configureController3.Pressed      += (sender, args) => ConfigureController_Pressed(sender, PlayerIndex.Player3);
            _configureController4.Pressed      += (sender, args) => ConfigureController_Pressed(sender, PlayerIndex.Player4);
            _configureController5.Pressed      += (sender, args) => ConfigureController_Pressed(sender, PlayerIndex.Player5);
            _configureController6.Pressed      += (sender, args) => ConfigureController_Pressed(sender, PlayerIndex.Player6);
            _configureController7.Pressed      += (sender, args) => ConfigureController_Pressed(sender, PlayerIndex.Player7);
            _configureController8.Pressed      += (sender, args) => ConfigureController_Pressed(sender, PlayerIndex.Player8);
            _configureControllerH.Pressed      += (sender, args) => ConfigureController_Pressed(sender, PlayerIndex.Handheld);
            _systemTimeZoneEntry.FocusOutEvent += TimeZoneEntry_FocusOut;

            _resScaleCombo.Changed += (sender, args) => _resScaleText.Visible = _resScaleCombo.ActiveId == "-1";
            _galThreading.Changed  += (sender, args) =>
            {
                if (_galThreading.ActiveId != ConfigurationState.Instance.Graphics.BackendThreading.Value.ToString())
                {
                    GtkDialog.CreateInfoDialog("Warning - Backend Threading", "Ryujinx must be restarted after changing this option for it to apply fully. Depending on your platform, you may need to manually disable your driver's own multithreading when using Ryujinx's.");
                }
            };

            // Setup Currents.
            if (ConfigurationState.Instance.Logger.EnableTrace)
            {
                _traceLogToggle.Click();
            }

            if (ConfigurationState.Instance.Logger.EnableFileLog)
            {
                _fileLogToggle.Click();
            }

            if (ConfigurationState.Instance.Logger.EnableError)
            {
                _errorLogToggle.Click();
            }

            if (ConfigurationState.Instance.Logger.EnableWarn)
            {
                _warningLogToggle.Click();
            }

            if (ConfigurationState.Instance.Logger.EnableInfo)
            {
                _infoLogToggle.Click();
            }

            if (ConfigurationState.Instance.Logger.EnableStub)
            {
                _stubLogToggle.Click();
            }

            if (ConfigurationState.Instance.Logger.EnableDebug)
            {
                _debugLogToggle.Click();
            }

            if (ConfigurationState.Instance.Logger.EnableGuest)
            {
                _guestLogToggle.Click();
            }

            if (ConfigurationState.Instance.Logger.EnableFsAccessLog)
            {
                _fsAccessLogToggle.Click();
            }

            foreach (GraphicsDebugLevel level in Enum.GetValues <GraphicsDebugLevel>())
            {
                _graphicsDebugLevel.Append(level.ToString(), level.ToString());
            }

            _graphicsDebugLevel.SetActiveId(ConfigurationState.Instance.Logger.GraphicsDebugLevel.Value.ToString());

            if (ConfigurationState.Instance.System.EnableDockedMode)
            {
                _dockedModeToggle.Click();
            }

            if (ConfigurationState.Instance.EnableDiscordIntegration)
            {
                _discordToggle.Click();
            }

            if (ConfigurationState.Instance.CheckUpdatesOnStart)
            {
                _checkUpdatesToggle.Click();
            }

            if (ConfigurationState.Instance.ShowConfirmExit)
            {
                _showConfirmExitToggle.Click();
            }

            if (ConfigurationState.Instance.HideCursorOnIdle)
            {
                _hideCursorOnIdleToggle.Click();
            }

            if (ConfigurationState.Instance.Graphics.EnableVsync)
            {
                _vSyncToggle.Click();
            }

            if (ConfigurationState.Instance.Graphics.EnableShaderCache)
            {
                _shaderCacheToggle.Click();
            }

            if (ConfigurationState.Instance.System.EnablePtc)
            {
                _ptcToggle.Click();
            }

            if (ConfigurationState.Instance.System.EnableInternetAccess)
            {
                _internetToggle.Click();
            }

            if (ConfigurationState.Instance.System.EnableFsIntegrityChecks)
            {
                _fsicToggle.Click();
            }

            switch (ConfigurationState.Instance.System.MemoryManagerMode.Value)
            {
            case MemoryManagerMode.SoftwarePageTable:
                _mmSoftware.Click();
                break;

            case MemoryManagerMode.HostMapped:
                _mmHost.Click();
                break;

            case MemoryManagerMode.HostMappedUnsafe:
                _mmHostUnsafe.Click();
                break;
            }

            if (ConfigurationState.Instance.System.ExpandRam)
            {
                _expandRamToggle.Click();
            }

            if (ConfigurationState.Instance.System.IgnoreMissingServices)
            {
                _ignoreToggle.Click();
            }

            if (ConfigurationState.Instance.Hid.EnableKeyboard)
            {
                _directKeyboardAccess.Click();
            }

            if (ConfigurationState.Instance.Hid.EnableMouse)
            {
                _directMouseAccess.Click();
            }

            if (ConfigurationState.Instance.Ui.EnableCustomTheme)
            {
                _custThemeToggle.Click();
            }

            // Custom EntryCompletion Columns. If added to glade, need to override more signals
            ListStore tzList = new ListStore(typeof(string), typeof(string), typeof(string));

            _systemTimeZoneCompletion.Model = tzList;

            CellRendererText offsetCol = new CellRendererText();
            CellRendererText abbrevCol = new CellRendererText();

            _systemTimeZoneCompletion.PackStart(offsetCol, false);
            _systemTimeZoneCompletion.AddAttribute(offsetCol, "text", 0);
            _systemTimeZoneCompletion.TextColumn = 1; // Regions Column
            _systemTimeZoneCompletion.PackStart(abbrevCol, false);
            _systemTimeZoneCompletion.AddAttribute(abbrevCol, "text", 2);

            int maxLocationLength = 0;

            foreach (var(offset, location, abbr) in _timeZoneContentManager.ParseTzOffsets())
            {
                var hours   = Math.DivRem(offset, 3600, out int seconds);
                var minutes = Math.Abs(seconds) / 60;

                var abbr2 = (abbr.StartsWith('+') || abbr.StartsWith('-')) ? string.Empty : abbr;

                tzList.AppendValues($"UTC{hours:+0#;-0#;+00}:{minutes:D2} ", location, abbr2);
                _validTzRegions.Add(location);

                maxLocationLength = Math.Max(maxLocationLength, location.Length);
            }

            _systemTimeZoneEntry.WidthChars = Math.Max(20, maxLocationLength + 1); // Ensure minimum Entry width
            _systemTimeZoneEntry.Text       = _timeZoneContentManager.SanityCheckDeviceLocationName(ConfigurationState.Instance.System.TimeZone);

            _systemTimeZoneCompletion.MatchFunc = TimeZoneMatchFunc;

            _systemLanguageSelect.SetActiveId(ConfigurationState.Instance.System.Language.Value.ToString());
            _systemRegionSelect.SetActiveId(ConfigurationState.Instance.System.Region.Value.ToString());
            _galThreading.SetActiveId(ConfigurationState.Instance.Graphics.BackendThreading.Value.ToString());
            _resScaleCombo.SetActiveId(ConfigurationState.Instance.Graphics.ResScale.Value.ToString());
            _anisotropy.SetActiveId(ConfigurationState.Instance.Graphics.MaxAnisotropy.Value.ToString());
            _aspectRatio.SetActiveId(((int)ConfigurationState.Instance.Graphics.AspectRatio.Value).ToString());

            _custThemePath.Buffer.Text           = ConfigurationState.Instance.Ui.CustomThemePath;
            _resScaleText.Buffer.Text            = ConfigurationState.Instance.Graphics.ResScaleCustom.Value.ToString();
            _resScaleText.Visible                = _resScaleCombo.ActiveId == "-1";
            _graphicsShadersDumpPath.Buffer.Text = ConfigurationState.Instance.Graphics.ShadersDumpPath;
            _fsLogSpinAdjustment.Value           = ConfigurationState.Instance.System.FsGlobalAccessLogMode;
            _systemTimeOffset = ConfigurationState.Instance.System.SystemTimeOffset;

            _gameDirsBox.AppendColumn("", new CellRendererText(), "text", 0);
            _gameDirsBoxStore  = new ListStore(typeof(string));
            _gameDirsBox.Model = _gameDirsBoxStore;

            foreach (string gameDir in ConfigurationState.Instance.Ui.GameDirs.Value)
            {
                _gameDirsBoxStore.AppendValues(gameDir);
            }

            if (_custThemeToggle.Active == false)
            {
                _custThemePath.Sensitive      = false;
                _custThemePathLabel.Sensitive = false;
                _browseThemePath.Sensitive    = false;
            }

            //Setup system time spinners
            UpdateSystemTimeSpinners();

            _audioBackendStore = new ListStore(typeof(string), typeof(AudioBackend));

            TreeIter openAlIter  = _audioBackendStore.AppendValues("OpenAL", AudioBackend.OpenAl);
            TreeIter soundIoIter = _audioBackendStore.AppendValues("SoundIO", AudioBackend.SoundIo);
            TreeIter sdl2Iter    = _audioBackendStore.AppendValues("SDL2", AudioBackend.SDL2);
            TreeIter dummyIter   = _audioBackendStore.AppendValues("Dummy", AudioBackend.Dummy);

            _audioBackendSelect = ComboBox.NewWithModelAndEntry(_audioBackendStore);
            _audioBackendSelect.EntryTextColumn  = 0;
            _audioBackendSelect.Entry.IsEditable = false;

            switch (ConfigurationState.Instance.System.AudioBackend.Value)
            {
            case AudioBackend.OpenAl:
                _audioBackendSelect.SetActiveIter(openAlIter);
                break;

            case AudioBackend.SoundIo:
                _audioBackendSelect.SetActiveIter(soundIoIter);
                break;

            case AudioBackend.SDL2:
                _audioBackendSelect.SetActiveIter(sdl2Iter);
                break;

            case AudioBackend.Dummy:
                _audioBackendSelect.SetActiveIter(dummyIter);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            _audioBackendBox.Add(_audioBackendSelect);
            _audioBackendSelect.Show();

            _previousVolumeLevel            = ConfigurationState.Instance.System.AudioVolume;
            _audioVolumeLabel               = new Label("Volume: ");
            _audioVolumeSlider              = new Scale(Orientation.Horizontal, 0, 100, 1);
            _audioVolumeLabel.MarginStart   = 10;
            _audioVolumeSlider.ValuePos     = PositionType.Right;
            _audioVolumeSlider.WidthRequest = 200;

            _audioVolumeSlider.Value         = _previousVolumeLevel * 100;
            _audioVolumeSlider.ValueChanged += VolumeSlider_OnChange;
            _audioBackendBox.Add(_audioVolumeLabel);
            _audioBackendBox.Add(_audioVolumeSlider);
            _audioVolumeLabel.Show();
            _audioVolumeSlider.Show();

            bool openAlIsSupported  = false;
            bool soundIoIsSupported = false;
            bool sdl2IsSupported    = false;

            Task.Run(() =>
            {
                openAlIsSupported  = OpenALHardwareDeviceDriver.IsSupported;
                soundIoIsSupported = SoundIoHardwareDeviceDriver.IsSupported;
                sdl2IsSupported    = SDL2HardwareDeviceDriver.IsSupported;
            });

            // This function runs whenever the dropdown is opened
            _audioBackendSelect.SetCellDataFunc(_audioBackendSelect.Cells[0], (layout, cell, model, iter) =>
            {
                cell.Sensitive = ((AudioBackend)_audioBackendStore.GetValue(iter, 1)) switch
                {
                    AudioBackend.OpenAl => openAlIsSupported,
                    AudioBackend.SoundIo => soundIoIsSupported,
                    AudioBackend.SDL2 => sdl2IsSupported,
                    AudioBackend.Dummy => true,
                    _ => throw new ArgumentOutOfRangeException()
                };
            });
示例#44
0
        Control IOptionsPanel.CreatePanelWidget()
        {
            HBox   hbox        = new HBox(false, 6);
            Label  label       = new Label();
            string displayName = polSet != null?GettextCatalog.GetString("_Policy") : PolicyTitleWithMnemonic;

            label.MarkupWithMnemonic = "<b>" + displayName + ":</b>";
            hbox.PackStart(label, false, false, 0);

            store       = new ListStore(typeof(string), typeof(PolicySet));
            policyCombo = new ComboBox(store);
            CellRenderer renderer = new CellRendererText();

            policyCombo.PackStart(renderer, true);
            policyCombo.AddAttribute(renderer, "text", 0);

            label.MnemonicWidget         = policyCombo;
            policyCombo.RowSeparatorFunc = (TreeModel model, TreeIter iter) =>
                                           ((string)model.GetValue(iter, 0)) == "--";
            hbox.PackStart(policyCombo, false, false, 0);

            VBox vbox = new VBox(false, 6);

            vbox.PackStart(hbox, false, false, 0);
            vbox.ShowAll();

            FillPolicies();
            policyCombo.Active = 0;

            // Message to be shown when the user changes default policies

            warningMessage         = new HBox();
            warningMessage.Spacing = 6;
            Image img = new Image(Stock.Warning, IconSize.LargeToolbar);

            warningMessage.PackStart(img, false, false, 0);
            Label wl = new Label(GettextCatalog.GetString("Changes done in this section will only be applied to new projects. " +
                                                          "Settings for existing projects can be modified in the project (or solution) options dialog."));

            wl.Xalign       = 0;
            wl.Wrap         = true;
            wl.WidthRequest = 450;
            warningMessage.PackStart(wl, true, true, 0);
            warningMessage.ShowAll();
            warningMessage.Visible = false;
            vbox.PackEnd(warningMessage, false, false, 0);

            policyPanel = CreatePanelWidget();
            //HACK: work around bug 469427 - broken themes match on widget names
            if (policyPanel.Name.IndexOf("Panel") > 0)
            {
                policyPanel.Name = policyPanel.Name.Replace("Panel", "_");
            }
            vbox.PackEnd(policyPanel, true, true, 0);

            InitializePolicy();

            loading = false;

            if (!IsRoot && !policyContainer.DirectHas <T> ())
            {
                //in this case "parent" is always first in the list
                policyCombo.Active = 0;
            }
            else
            {
                UpdateSelectedNamedPolicy();
            }

            policyCombo.Changed += HandlePolicyComboChanged;

            return(vbox);
        }
示例#45
0
        /// <summary>
        /// Constructor
        /// </summary>
        public UpgradeView(ViewBase owner) : base(owner)
        {
            Builder builder = BuilderFromResource("ApsimNG.Resources.Glade.UpgradeView.glade");

            window1          = (Window)builder.GetObject("window1");
            button1          = (Button)builder.GetObject("button1");
            button2          = (Button)builder.GetObject("button2");
            table1           = (Table)builder.GetObject("table1");
            table2           = (Table)builder.GetObject("table2");
            firstNameBox     = (Entry)builder.GetObject("firstNameBox");
            lastNameBox      = (Entry)builder.GetObject("lastNameBox");
            organisationBox  = (Entry)builder.GetObject("organisationBox");
            emailBox         = (Entry)builder.GetObject("emailBox");
            countryBox       = (ComboBox)builder.GetObject("countryBox");
            label1           = (Label)builder.GetObject("label1");
            licenseContainer = (Container)builder.GetObject("licenseContainer");
            checkbutton1     = (CheckButton)builder.GetObject("checkbutton1");
            listview1        = (Gtk.TreeView)builder.GetObject("listview1");
            alignment7       = (Alignment)builder.GetObject("alignment7");
            oldVersions      = (CheckButton)builder.GetObject("checkbutton2");
            listview1.Model  = listmodel;

            Version version = Assembly.GetExecutingAssembly().GetName().Version;

            if (version.Revision == 0)
            {
                button1.Sensitive = false;
                table2.Hide();
                checkbutton1.Hide();
            }

            CellRendererText textRender = new Gtk.CellRendererText();

            textRender.Editable = false;

            TreeViewColumn column0 = new TreeViewColumn("Version", textRender, "text", 0);

            listview1.AppendColumn(column0);
            column0.Sizing    = TreeViewColumnSizing.Autosize;
            column0.Resizable = true;

            TreeViewColumn column1 = new TreeViewColumn("Description", textRender, "text", 1);

            listview1.AppendColumn(column1);
            column1.Sizing    = TreeViewColumnSizing.Autosize;
            column1.Resizable = true;

            // Populate the combo box with a list of valid country names.
            ListStore countries = new ListStore(typeof(string));

            foreach (string country in Constants.Countries)
            {
                countries.AppendValues(country);
            }
            countryBox.Model = countries;

            // Add a cell renderer to the combo box.
            CellRendererText cell = new CellRendererText();

            countryBox.PackStart(cell, false);
            countryBox.AddAttribute(cell, "text", 0);

            // Make the tab order a little more sensible than the defaults
            table1.FocusChain = new Widget[] { alignment7, button1, button2 };
            table2.FocusChain = new Widget[] { firstNameBox, lastNameBox, emailBox, organisationBox, countryBox };

            licenseView = new MarkdownView(owner);
            licenseContainer.Add(licenseView.MainWidget);
            tabbedExplorerView = owner as IMainView;

            window1.TransientFor = owner.MainWidget.Toplevel as Window;
            window1.Modal        = true;
            oldVersions.Toggled += OnShowOldVersionsToggled;
            button1.Clicked     += OnUpgrade;
            button2.Clicked     += OnViewMoreDetail;
            window1.Destroyed   += OnFormClosing;
            window1.MapEvent    += OnShown;
        }
示例#46
0
        public override void LaunchDialogue()
        {
            //the Type in the collection
            IList  collection  = (IList)Value;
            string displayName = Property.DisplayName;

            //populate list with existing items
            ListStore itemStore = new ListStore(typeof(object), typeof(int), typeof(string));

            for (int i = 0; i < collection.Count; i++)
            {
                itemStore.AppendValues(collection [i], i, collection [i].ToString());
            }

            #region Building Dialogue

            TreeView     itemTree;
            PropertyGrid grid;
            TreeIter     previousIter = TreeIter.Zero;

            //dialogue and buttons
            Dialog dialog = new Dialog()
            {
                Title       = displayName + " Editor",
                Modal       = true,
                AllowGrow   = true,
                AllowShrink = true,
            };
            var toplevel = this.Container.Toplevel as Window;
            if (toplevel != null)
            {
                dialog.TransientFor = toplevel;
            }

            dialog.AddActionWidget(new Button(Stock.Cancel), ResponseType.Cancel);
            dialog.AddActionWidget(new Button(Stock.Ok), ResponseType.Ok);

            //three columns for items, sorting, PropGrid
            HBox hBox = new HBox();
            dialog.VBox.PackStart(hBox, true, true, 5);

            //propGrid at end
            grid = new PropertyGrid(base.EditorManager)
            {
                CurrentObject = null,
                WidthRequest  = 200,
                ShowHelp      = false
            };
            hBox.PackEnd(grid, true, true, 5);

            //followed by a ButtonBox
            VBox buttonBox = new VBox();
            buttonBox.Spacing = 6;
            hBox.PackEnd(buttonBox, false, false, 5);

            //add/remove buttons
            Button addButton = new Button(new Image(Stock.Add, IconSize.Button));
            buttonBox.PackStart(addButton, false, false, 0);
            if (types [0].IsAbstract)
            {
                addButton.Sensitive = false;
            }
            Button removeButton = new Button(new Gtk.Image(Stock.Remove, IconSize.Button));
            buttonBox.PackStart(removeButton, false, false, 0);

            //sorting buttons
            Button upButton = new Button(new Image(Stock.GoUp, IconSize.Button));
            buttonBox.PackStart(upButton, false, false, 0);
            Button downButton = new Button(new Image(Stock.GoDown, IconSize.Button));
            buttonBox.PackStart(downButton, false, false, 0);

            //Third column has list (TreeView) in a ScrolledWindow
            ScrolledWindow listScroll = new ScrolledWindow();
            listScroll.WidthRequest  = 200;
            listScroll.HeightRequest = 320;
            hBox.PackStart(listScroll, false, false, 5);

            itemTree = new TreeView(itemStore);
            itemTree.Selection.Mode = SelectionMode.Single;
            itemTree.HeadersVisible = false;
            listScroll.AddWithViewport(itemTree);

            //renderers and attribs for TreeView
            CellRenderer rdr = new CellRendererText();
            itemTree.AppendColumn(new TreeViewColumn("Index", rdr, "text", 1));
            rdr = new CellRendererText();
            itemTree.AppendColumn(new TreeViewColumn("Object", rdr, "text", 2));

            #endregion

            #region Events

            addButton.Clicked += delegate {
                //create the object
                object instance = System.Activator.CreateInstance(types[0]);

                //get existing selection and insert after it
                TreeIter oldIter, newIter;
                if (itemTree.Selection.GetSelected(out oldIter))
                {
                    newIter = itemStore.InsertAfter(oldIter);
                }
                //or append if no previous selection
                else
                {
                    newIter = itemStore.Append();
                }
                itemStore.SetValue(newIter, 0, instance);

                //select, set name and update all the indices
                itemTree.Selection.SelectIter(newIter);
                UpdateName(itemStore, newIter);
                UpdateIndices(itemStore);
            };

            removeButton.Clicked += delegate {
                //get selected iter and the replacement selection
                TreeIter iter, newSelection;
                if (!itemTree.Selection.GetSelected(out iter))
                {
                    return;
                }

                newSelection = iter;
                if (!IterPrev(itemStore, ref newSelection))
                {
                    newSelection = iter;
                    if (!itemStore.IterNext(ref newSelection))
                    {
                        newSelection = TreeIter.Zero;
                    }
                }

                //new selection. Zeroing previousIter prevents trying to update name of deleted iter.
                previousIter = TreeIter.Zero;
                if (itemStore.IterIsValid(newSelection))
                {
                    itemTree.Selection.SelectIter(newSelection);
                }

                //and the removal and index update
                itemStore.Remove(ref iter);
                UpdateIndices(itemStore);
            };

            upButton.Clicked += delegate {
                TreeIter iter, prev;
                if (!itemTree.Selection.GetSelected(out iter))
                {
                    return;
                }

                //get previous iter
                prev = iter;
                if (!IterPrev(itemStore, ref prev))
                {
                    return;
                }

                //swap the two
                itemStore.Swap(iter, prev);

                //swap indices too
                object prevVal = itemStore.GetValue(prev, 1);
                object iterVal = itemStore.GetValue(iter, 1);
                itemStore.SetValue(prev, 1, iterVal);
                itemStore.SetValue(iter, 1, prevVal);
            };

            downButton.Clicked += delegate {
                TreeIter iter, next;
                if (!itemTree.Selection.GetSelected(out iter))
                {
                    return;
                }

                //get next iter
                next = iter;
                if (!itemStore.IterNext(ref next))
                {
                    return;
                }

                //swap the two
                itemStore.Swap(iter, next);

                //swap indices too
                object nextVal = itemStore.GetValue(next, 1);
                object iterVal = itemStore.GetValue(iter, 1);
                itemStore.SetValue(next, 1, iterVal);
                itemStore.SetValue(iter, 1, nextVal);
            };

            itemTree.Selection.Changed += delegate {
                TreeIter iter;
                if (!itemTree.Selection.GetSelected(out iter))
                {
                    removeButton.Sensitive = false;
                    return;
                }
                removeButton.Sensitive = true;

                //update grid
                object obj = itemStore.GetValue(iter, 0);
                grid.CurrentObject = obj;

                //update previously selected iter's name
                UpdateName(itemStore, previousIter);

                //update current selection so we can update
                //name next selection change
                previousIter = iter;
            };

            grid.Changed += delegate {
                TreeIter iter;
                if (itemTree.Selection.GetSelected(out iter))
                {
                    UpdateName(itemStore, iter);
                }
            };

            TreeIter selectionIter;
            removeButton.Sensitive = itemTree.Selection.GetSelected(out selectionIter);

            dialog.ShowAll();
            grid.ShowToolbar = false;

            #endregion

            //if 'OK' put items back in collection
            //if (MonoDevelop.Ide.MessageService.ShowCustomDialog (dialog, toplevel) == (int)ResponseType.Ok)
            {
                DesignerTransaction tran = CreateTransaction(Instance);
                object old = collection;

                try {
                    collection.Clear();
                    foreach (object[] o in itemStore)
                    {
                        collection.Add(o[0]);
                    }
                    EndTransaction(Instance, tran, old, collection, true);
                }
                catch {
                    EndTransaction(Instance, tran, old, collection, false);
                    throw;
                }
            }
        }
示例#47
0
        private MainWindow(Builder builder) : base(builder.GetObject("_mainWin").Handle)
        {
            builder.Autoconnect(this);

            this.DeleteEvent      += Window_Close;
            _fullScreen.Activated += FullScreen_Toggled;

            ApplicationLibrary.ApplicationAdded        += Application_Added;
            ApplicationLibrary.ApplicationCountUpdated += ApplicationCount_Updated;
            GLRenderer.StatusUpdatedEvent += Update_StatusBar;

            _gameTable.ButtonReleaseEvent += Row_Clicked;

            // First we check that a migration isn't needed. (because VirtualFileSystem will create the new directory otherwise)
            bool continueWithStartup = Migration.PromptIfMigrationNeededForStartup(this, out bool migrationNeeded);

            if (!continueWithStartup)
            {
                End(null);
            }

            _virtualFileSystem = VirtualFileSystem.CreateInstance();
            _contentManager    = new ContentManager(_virtualFileSystem);

            if (migrationNeeded)
            {
                bool migrationSuccessful = Migration.DoMigrationForStartup(this, _virtualFileSystem);

                if (!migrationSuccessful)
                {
                    End(null);
                }
            }

            // Make sure that everything is loaded.
            _virtualFileSystem.Reload();

            _treeView = _gameTable;

            ApplyTheme();

            _mainWin.Icon            = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.assets.Icon.png");
            _mainWin.Title           = $"Ryujinx {Program.Version}";
            _stopEmulation.Sensitive = false;

            if (ConfigurationState.Instance.Ui.GuiColumns.FavColumn)
            {
                _favToggle.Active = true;
            }
            if (ConfigurationState.Instance.Ui.GuiColumns.IconColumn)
            {
                _iconToggle.Active = true;
            }
            if (ConfigurationState.Instance.Ui.GuiColumns.AppColumn)
            {
                _appToggle.Active = true;
            }
            if (ConfigurationState.Instance.Ui.GuiColumns.DevColumn)
            {
                _developerToggle.Active = true;
            }
            if (ConfigurationState.Instance.Ui.GuiColumns.VersionColumn)
            {
                _versionToggle.Active = true;
            }
            if (ConfigurationState.Instance.Ui.GuiColumns.TimePlayedColumn)
            {
                _timePlayedToggle.Active = true;
            }
            if (ConfigurationState.Instance.Ui.GuiColumns.LastPlayedColumn)
            {
                _lastPlayedToggle.Active = true;
            }
            if (ConfigurationState.Instance.Ui.GuiColumns.FileExtColumn)
            {
                _fileExtToggle.Active = true;
            }
            if (ConfigurationState.Instance.Ui.GuiColumns.FileSizeColumn)
            {
                _fileSizeToggle.Active = true;
            }
            if (ConfigurationState.Instance.Ui.GuiColumns.PathColumn)
            {
                _pathToggle.Active = true;
            }

#if USE_DEBUGGING
            _debugger = new Debugger.Debugger();
            _openDebugger.Activated += _openDebugger_Opened;
#else
            _openDebugger.Hide();
#endif

            _gameTable.Model = _tableStore = new ListStore(
                typeof(bool),
                typeof(Gdk.Pixbuf),
                typeof(string),
                typeof(string),
                typeof(string),
                typeof(string),
                typeof(string),
                typeof(string),
                typeof(string),
                typeof(string));

            _tableStore.SetSortFunc(5, TimePlayedSort);
            _tableStore.SetSortFunc(6, LastPlayedSort);
            _tableStore.SetSortFunc(8, FileSizeSort);
            _tableStore.SetSortColumnId(0, SortType.Descending);

            UpdateColumns();
            UpdateGameTable();

            Task.Run(RefreshFirmwareLabel);

            _statusBar.Hide();
        }
        public InstrumenationChartView(InstrumentationViewerDialog parent)
        {
            Build();

            this.parent = parent;

            // The list for the List Mode

            listViewStore  = new ListStore(typeof(ListViewValueInfo), typeof(Gdk.Pixbuf), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string));
            listView       = new TreeView();
            listView.Model = listViewStore;

            CellRendererText crx = new CellRendererText();

            listView.AppendColumn("Timestamp", crx, "text", 3);

            TreeViewColumn col = new TreeViewColumn();

            col.Title = "Counter";
            CellRendererPixbuf crp = new CellRendererPixbuf();

            col.PackStart(crp, false);
            col.AddAttribute(crp, "pixbuf", 1);
            col.PackStart(crx, true);
            col.AddAttribute(crx, "text", 2);
            listView.AppendColumn(col);

            listView.AppendColumn("Count", crx, "text", 4);
            listView.AppendColumn("Total Count", crx, "text", 5);
            listView.AppendColumn("Time", crx, "text", 6);

            listView.RowActivated += HandleListViewRowActivated;

            listViewScrolled = new ScrolledWindow();
            listViewScrolled.Add(listView);
            listViewScrolled.ShadowType       = ShadowType.In;
            listViewScrolled.HscrollbarPolicy = PolicyType.Automatic;
            listViewScrolled.VscrollbarPolicy = PolicyType.Automatic;
            listViewScrolled.ShowAll();
            boxCharts.PackStart(listViewScrolled, true, true, 0);

            // The series list

            seriesStore      = new ListStore(typeof(bool), typeof(Gdk.Pixbuf), typeof(string), typeof(ChartSerieInfo), typeof(String), typeof(String), typeof(String));
            listSeries.Model = seriesStore;

            col       = new TreeViewColumn();
            col.Title = "Counter";
            CellRendererToggle crt = new CellRendererToggle();

            col.PackStart(crt, false);
            col.AddAttribute(crt, "active", 0);

            crp = new CellRendererPixbuf();
            col.PackStart(crp, false);
            col.AddAttribute(crp, "pixbuf", 1);

            crx = new CellRendererText();
            col.PackStart(crx, true);
            col.AddAttribute(crx, "text", 2);
            listSeries.AppendColumn(col);

            listSeries.AppendColumn("Last", crx, "text", 4);
            listSeries.AppendColumn("Sel", crx, "text", 5);
            listSeries.AppendColumn("Diff", crx, "text", 6);

            crt.Toggled += SerieToggled;

            countChart = new BasicChart();
            countAxisY = new IntegerAxis(true);
            countAxisX = new DateTimeAxis(true);
            countChart.AddAxis(countAxisX, AxisPosition.Bottom);
            countChart.AddAxis(countAxisY, AxisPosition.Right);
            countChart.OriginY = 0;
            countChart.StartY  = 0;
//			countChart.EndY = 100;
            countChart.AllowSelection = true;
            countChart.SetAutoScale(AxisDimension.Y, false, true);
            countChart.SelectionStart.LabelAxis = countAxisX;
            countChart.SelectionEnd.LabelAxis   = countAxisX;
            countChart.SelectionChanged        += CountChartSelectionChanged;

            timeChart = new BasicChart();
            timeAxisY = new IntegerAxis(true);
            timeAxisX = new DateTimeAxis(true);
            timeChart.AddAxis(timeAxisX, AxisPosition.Bottom);
            timeChart.AddAxis(timeAxisY, AxisPosition.Right);
            timeChart.OriginY        = 0;
            timeChart.StartY         = 0;
            timeChart.EndY           = 100;
            timeChart.AllowSelection = true;
//			timeChart.SetAutoScale (AxisDimension.Y, true, true);
            timeChart.SelectionStart.LabelAxis = timeAxisX;
            timeChart.SelectionEnd.LabelAxis   = timeAxisX;

            frameCharts.PackStart(countChart, true, true, 0);
            frameCharts.PackStart(timeChart, true, true, 0);
            frameCharts.ShowAll();

            if (App.FromFile)
            {
                if (visibleTime > App.Service.EndTime - App.Service.StartTime)
                {
                    visibleTime = App.Service.EndTime - App.Service.StartTime;
                }
                startTime = App.Service.StartTime;
                endTime   = startTime + visibleTime;
            }
            else
            {
                endTime   = DateTime.Now;
                startTime = endTime - visibleTime;
            }

            DateTime st = App.Service.StartTime;

            if (st > startTime)
            {
                st = startTime;
            }

            chartScroller.Adjustment.Lower = st.Ticks;

            UpdateCharts();
            chartScroller.Value = chartScroller.Adjustment.Upper;

            if (!App.FromFile)
            {
                StartAutoscroll();
            }

            toggleTimeView.Active = true;
        }
        public ResxEditorWidget(ResxEditorView view)
        {
            openDialog   = new OpenFileDialog();
            resxNodeList = new Dictionary <string, ResXDataNode>();
            editorView   = view;

            stringDialog = new EditStringDialog();

            typeMenuAudioItem            = new MenuItem("Audio");
            typeMenuAudioItem.Activated += DropDownEventHandler;

            typeMenuFileItem            = new MenuItem("Files");
            typeMenuFileItem.Activated += DropDownEventHandler;

            typeMenuIconItem            = new MenuItem("Icons");
            typeMenuIconItem.Activated += DropDownEventHandler;

            typeMenuImageItem            = new MenuItem("Images");
            typeMenuImageItem.Activated += DropDownEventHandler;

            typeMenuOtherItem            = new MenuItem("Other");
            typeMenuOtherItem.Activated += DropDownEventHandler;

            typeMenuStringItem            = new MenuItem("Strings");
            typeMenuStringItem.Activated += DropDownEventHandler;

            // Menus
            typeMenu = new Menu()
            {
                typeMenuStringItem,
                typeMenuAudioItem,
                typeMenuFileItem,
                typeMenuIconItem,
                typeMenuImageItem,
                typeMenuOtherItem
            };

            // MenuToolButtons
            typeToolButton = new MenuToolButton(null, "Strings")
            {
                Menu = typeMenu
            };

            addButton          = new ToolButton(null, "Add");
            addButton.Clicked += AddButtonEventHandler;

            editButton          = new ToolButton(null, "Edit");
            editButton.Clicked += EditButtonEventHandler;

            removeButton          = new ToolButton(null, "Remove");
            removeButton.Clicked += RemoveButtonEventHandler;

            // Toolbars
            mainToolbar = new Toolbar()
            {
                addButton, editButton, removeButton, typeToolButton
            };

            // ListStores
            audioListStore  = new ListStore(typeof(string), typeof(string), typeof(string));
            fileListStore   = new ListStore(typeof(string), typeof(string), typeof(string), typeof(string));
            iconListStore   = new ListStore(typeof(Pixbuf), typeof(string), typeof(string));
            imageListStore  = new ListStore(typeof(Pixbuf), typeof(string), typeof(string), typeof(string));
            otherListStore  = new ListStore(typeof(string), typeof(string), typeof(string));
            stringListStore = new ListStore(typeof(string), typeof(string), typeof(string), typeof(string));

            // TreeViews
            audioTreeView = new TreeView(audioListStore);
            audioTreeView.Selection.Mode = SelectionMode.Multiple;
            audioTreeView.AppendColumn("ResourceName", new CellRendererText(), "text", 0).Resizable = true;
            audioTreeView.AppendColumn("FileSize", new CellRendererText(), "text", 1).Resizable     = true;
            audioTreeView.AppendColumn("Comment", new CellRendererText(), "text", 2).Resizable      = true;

            fileTreeView = new TreeView(fileListStore);
            fileTreeView.Selection.Mode = SelectionMode.Multiple;
            fileTreeView.AppendColumn("ResourceName", new CellRendererText(), "text", 0).Resizable  = true;
            fileTreeView.AppendColumn("FileSize", new CellRendererText(), "text", 1).Resizable      = true;
            fileTreeView.AppendColumn("FileName/Path", new CellRendererText(), "text", 2).Resizable = true;
            fileTreeView.AppendColumn("Comment", new CellRendererText(), "text", 3).Resizable       = true;

            iconTreeView = new TreeView(iconListStore);
            iconTreeView.Selection.Mode = SelectionMode.Multiple;
            iconTreeView.AppendColumn("Icon", new CellRendererPixbuf(), "pixbuf", 0).Resizable     = true;
            iconTreeView.AppendColumn("ResourceName", new CellRendererText(), "text", 1).Resizable = true;
            iconTreeView.AppendColumn("Comment", new CellRendererText(), "text", 2).Resizable      = true;

            imageTreeView = new TreeView(imageListStore);
            imageTreeView.Selection.Mode = SelectionMode.Multiple;
            imageTreeView.AppendColumn("Image", new CellRendererPixbuf(), "pixbuf", 0).Resizable    = true;
            imageTreeView.AppendColumn("ResourceName", new CellRendererText(), "text", 1).Resizable = true;
            imageTreeView.AppendColumn("Size", new CellRendererText(), "text", 2).Resizable         = true;
            imageTreeView.AppendColumn("Comment", new CellRendererText(), "text", 3).Resizable      = true;

            otherTreeView = new TreeView(otherListStore);
            otherTreeView.Selection.Mode = SelectionMode.Multiple;
            otherTreeView.AppendColumn("ResourceName", new CellRendererText(), "text", 0).Resizable = true;
            otherTreeView.AppendColumn("Type", new CellRendererText(), "text", 1).Resizable         = true;
            otherTreeView.AppendColumn("Comment", new CellRendererText(), "text", 2).Resizable      = true;

            stringTreeView = new TreeView(stringListStore);
            stringTreeView.Selection.Mode = SelectionMode.Multiple;
            stringTreeView.AppendColumn("ResourceName", new CellRendererText(), "text", 0).Resizable = true;
            stringTreeView.AppendColumn("Length", new CellRendererText(), "text", 1).Resizable       = true;
            stringTreeView.AppendColumn("Value", new CellRendererText(), "text", 2).Resizable        = true;
            stringTreeView.AppendColumn("Comment", new CellRendererText(), "text", 3).Resizable      = true;

            // SetUp
            Build();
            scrolledWindow.Add(stringTreeView);
            verticalBox.Add(mainToolbar);
            Box.BoxChild boxChild = ((Box.BoxChild)verticalBox[mainToolbar]);
            boxChild.Position = 0;
            boxChild.Expand   = false;
            typeMenu.ShowAll();
            ShowAll();
        }
        public SelectReferenceDialog()
        {
            Build();

            combinedBox = new CombinedBox();
            combinedBox.Show();
            mainBook = new Notebook();
            combinedBox.Add(mainBook);
            alignment1.Add(combinedBox);
            mainBook.ShowAll();

            filterEntry = combinedBox.FilterEntry;

            boxRefs.WidthRequest = 200;

            refTreeStore             = new ListStore(typeof(string), typeof(string), typeof(string), typeof(ProjectReference), typeof(Xwt.Drawing.Image));
            ReferencesTreeView.Model = refTreeStore;

            TreeViewColumn col = new TreeViewColumn();

            col.Title = GettextCatalog.GetString("Reference");
            CellRendererImage crp = new CellRendererImage();

            crp.Yalign = 0f;
            col.PackStart(crp, false);
            col.AddAttribute(crp, "image", IconColumn);
            CellRendererText text_render = new CellRendererText();

            col.PackStart(text_render, true);
            col.AddAttribute(text_render, "markup", NameColumn);
            text_render.Ellipsize = Pango.EllipsizeMode.End;

            ReferencesTreeView.AppendColumn(col);
//			ReferencesTreeView.AppendColumn (GettextCatalog.GetString ("Type"), new CellRendererText (), "text", TypeNameColumn);
//			ReferencesTreeView.AppendColumn (GettextCatalog.GetString ("Location"), new CellRendererText (), "text", LocationColumn);

            projectRefPanel  = new ProjectReferencePanel(this);
            packageRefPanel  = new PackageReferencePanel(this, false);
            allRefPanel      = new PackageReferencePanel(this, true);
            assemblyRefPanel = new AssemblyReferencePanel(this);
            panels.Add(allRefPanel);
            panels.Add(packageRefPanel);
            panels.Add(projectRefPanel);
            panels.Add(assemblyRefPanel);

            //mainBook.RemovePage (mainBook.CurrentPage);

            HBox tab = new HBox(false, 3);

//			tab.PackStart (new Image (ImageService.GetPixbuf (MonoDevelop.Ide.Gui.Stock.Reference, IconSize.Menu)), false, false, 0);
            tab.PackStart(new Label(GettextCatalog.GetString("_All")), true, true, 0);
            tab.BorderWidth = 3;
            tab.ShowAll();
            mainBook.AppendPage(allRefPanel, tab);

            tab = new HBox(false, 3);
//			tab.PackStart (new Image (ImageService.GetPixbuf (MonoDevelop.Ide.Gui.Stock.Package, IconSize.Menu)), false, false, 0);
            tab.PackStart(new Label(GettextCatalog.GetString("_Packages")), true, true, 0);
            tab.BorderWidth = 3;
            tab.ShowAll();
            mainBook.AppendPage(packageRefPanel, tab);

            tab = new HBox(false, 3);
//			tab.PackStart (new Image (ImageService.GetPixbuf (MonoDevelop.Ide.Gui.Stock.Project, IconSize.Menu)), false, false, 0);
            tab.PackStart(new Label(GettextCatalog.GetString("Pro_jects")), true, true, 0);
            tab.BorderWidth = 3;
            tab.ShowAll();
            mainBook.AppendPage(projectRefPanel, tab);

            tab = new HBox(false, 3);
//			tab.PackStart (new Image (ImageService.GetPixbuf (MonoDevelop.Ide.Gui.Stock.OpenFolder, IconSize.Menu)), false, false, 0);
            tab.PackStart(new Label(GettextCatalog.GetString(".Net A_ssembly")), true, true, 0);
            tab.BorderWidth = 3;
            tab.ShowAll();
            mainBook.AppendPage(assemblyRefPanel, tab);

            mainBook.Page = 0;

            var w = selectedHeader.Child;

            selectedHeader.Remove(w);
            HeaderBox header = new HeaderBox(1, 0, 1, 1);

            header.SetPadding(6, 6, 6, 6);
            header.GradientBackground = true;
            header.Add(w);
            selectedHeader.Add(header);

            RemoveReferenceButton.CanFocus        = false;
            ReferencesTreeView.Selection.Changed += new EventHandler(OnChanged);
            Child.ShowAll();
            OnChanged(null, null);
            InsertFilterEntry();
        }
示例#51
0
        public CompilerOptionsPanelWidget(DotNetProject project)
        {
            this.Build();
            this.project = project;
            DotNetProjectConfiguration configuration      = (DotNetProjectConfiguration)project.GetConfiguration(IdeApp.Workspace.ActiveConfiguration);
            CSharpCompilerParameters   compilerParameters = (CSharpCompilerParameters)configuration.CompilationParameters;
            var csproject = (CSharpProject)project;

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

            store.AppendValues(GettextCatalog.GetString("Executable"));
            store.AppendValues(GettextCatalog.GetString("Library"));
            store.AppendValues(GettextCatalog.GetString("Executable with GUI"));
            store.AppendValues(GettextCatalog.GetString("Module"));
            compileTargetCombo.Model = store;
            CellRendererText cr = new CellRendererText();

            compileTargetCombo.PackStart(cr, true);
            compileTargetCombo.AddAttribute(cr, "text", 0);
            compileTargetCombo.Active   = (int)configuration.CompileTarget;
            compileTargetCombo.Changed += new EventHandler(OnTargetChanged);

            if (project.IsLibraryBasedProjectType)
            {
                //fixme: should we totally hide these?
                compileTargetCombo.Sensitive = false;
                mainClassEntry.Sensitive     = false;
            }
            else
            {
                classListStore                     = new ListStore(typeof(string));
                mainClassEntry.Model               = classListStore;
                mainClassEntry.TextColumn          = 0;
                ((Entry)mainClassEntry.Child).Text = csproject.MainClass ?? string.Empty;

                UpdateTarget();
            }

            // Load the codepage. If it matches any of the supported encodigs, use the encoding name
            string foundEncoding = null;

            foreach (TextEncoding e in TextEncoding.SupportedEncodings)
            {
                if (e.CodePage == -1)
                {
                    continue;
                }
                if (e.CodePage == csproject.CodePage)
                {
                    foundEncoding = e.Id;
                }
                codepageEntry.AppendText(e.Id);
            }
            if (foundEncoding != null)
            {
                codepageEntry.Entry.Text = foundEncoding;
            }
            else if (csproject.CodePage != 0)
            {
                codepageEntry.Entry.Text = csproject.CodePage.ToString();
            }

            iconEntry.Path                    = csproject.Win32Icon;
            iconEntry.DefaultPath             = project.BaseDirectory;
            allowUnsafeCodeCheckButton.Active = compilerParameters.UnsafeCode;
            noStdLibCheckButton.Active        = compilerParameters.NoStdLib;

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

            langVerStore.AppendValues(GettextCatalog.GetString("Default"));
            langVerStore.AppendValues("ISO-1");
            langVerStore.AppendValues("ISO-2");
            langVerStore.AppendValues("Version 3");
            langVerStore.AppendValues("Version 4");
            langVerStore.AppendValues("Version 5");
            langVerStore.AppendValues("Version 6");
            langVerCombo.Model  = langVerStore;
            langVerCombo.Active = (int)compilerParameters.LangVersion;
        }
示例#52
0
        public UserTasksView()
        {
            highPrioColor   = StringToColor(IdeApp.Preferences.UserTasksHighPrioColor);
            normalPrioColor = StringToColor(IdeApp.Preferences.UserTasksNormalPrioColor);
            lowPrioColor    = StringToColor(IdeApp.Preferences.UserTasksLowPrioColor);

            store = new ListStore(
                typeof(string),                      // priority
                typeof(bool),                        // completed
                typeof(string),                      // desc
                typeof(TaskListEntry),               // user task
                typeof(Gdk.Color),                   // foreground color
                typeof(int));                        // font style

            sortModel = new TreeModelSort(store);

            view                    = new MonoDevelop.Ide.Gui.Components.PadTreeView(sortModel);
            view.RulesHint          = true;
            view.SearchColumn       = (int)Columns.Description;
            view.Selection.Changed += new EventHandler(SelectionChanged);
            TreeViewColumn col;

            CellRendererComboBox cellRendPriority = new CellRendererComboBox();

            cellRendPriority.Values   = priorities;
            cellRendPriority.Editable = true;
            cellRendPriority.Changed += new ComboSelectionChangedHandler(UserTaskPriorityEdited);
            col              = view.AppendColumn(GettextCatalog.GetString("Priority"), cellRendPriority, "text", Columns.Priority, "foreground-gdk", Columns.Foreground, "weight", Columns.Bold);
            col.Resizable    = true;
            col.SortColumnId = (int)Columns.Priority;

            CellRendererToggle cellRendCompleted = new CellRendererToggle();

            cellRendCompleted.Toggled    += new ToggledHandler(UserTaskCompletedToggled);
            cellRendCompleted.Activatable = true;
            col = view.AppendColumn(String.Empty, cellRendCompleted, "active", Columns.Completed);
            col.SortColumnId = (int)Columns.Completed;

            cellRendDesc          = view.TextRenderer;
            cellRendDesc.Editable = true;
            cellRendDesc.Edited  += new EditedHandler(UserTaskDescEdited);
            col              = view.AppendColumn(GettextCatalog.GetString("Description"), cellRendDesc, "text", Columns.Description, "strikethrough", Columns.Completed, "foreground-gdk", Columns.Foreground, "weight", Columns.Bold);
            col.Resizable    = true;
            col.SortColumnId = (int)Columns.Description;

            newButton       = new Button();
            newButton.Label = GettextCatalog.GetString("New Task");
            newButton.Image = new ImageView(Gtk.Stock.New, IconSize.Menu);
            newButton.Image.Show();
            newButton.Clicked    += new EventHandler(NewUserTaskClicked);
            newButton.TooltipText = GettextCatalog.GetString("Create New Task");

            copyButton       = new Button();
            copyButton.Label = GettextCatalog.GetString("Copy Task");
            copyButton.Image = new ImageView(Gtk.Stock.Copy, IconSize.Menu);
            copyButton.Image.Show();
            copyButton.Clicked    += CopyUserTaskClicked;
            copyButton.TooltipText = GettextCatalog.GetString("Copy Task Description");

            delButton       = new Button();
            delButton.Label = GettextCatalog.GetString("Delete Task");
            delButton.Image = new ImageView(Gtk.Stock.Delete, IconSize.Menu);
            delButton.Image.Show();
            delButton.Clicked    += new EventHandler(DeleteUserTaskClicked);
            delButton.TooltipText = GettextCatalog.GetString("Delete Task");

            TaskService.UserTasks.TasksChanged += UserTasksChanged;
            TaskService.UserTasks.TasksAdded   += UserTasksChanged;
            TaskService.UserTasks.TasksRemoved += UserTasksChanged;

            if (IdeApp.Workspace.IsOpen)
            {
                solutionLoaded = true;
            }

            IdeApp.Workspace.FirstWorkspaceItemOpened += CombineOpened;
            IdeApp.Workspace.LastWorkspaceItemClosed  += CombineClosed;

            IdeApp.Preferences.UserTasksLowPrioColor.Changed    += OnPropertyUpdated;
            IdeApp.Preferences.UserTasksNormalPrioColor.Changed += OnPropertyUpdated;
            IdeApp.Preferences.UserTasksHighPrioColor.Changed   += OnPropertyUpdated;
            ValidateButtons();

            // Initialize with existing tags.
            UserTasksChanged(this, null);
        }
示例#53
0
        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);

            var projectColumn = new TreeViewColumn {
                Resizable    = true,
                SortColumnId = 1,
                Title        = GettextCatalog.GetString("Project"),
                Sizing       = TreeViewColumnSizing.Fixed,
                FixedWidth   = 100
            };

            var projectPixbufRenderer = new CellRendererImage();

            projectColumn.PackStart(projectPixbufRenderer, false);
            projectColumn.SetCellDataFunc(projectPixbufRenderer, ResultProjectIconDataFunc);

            var renderer = treeviewSearchResults.TextRenderer;

            renderer.Ellipsize = Pango.EllipsizeMode.End;
            projectColumn.PackStart(renderer, true);
            projectColumn.SetCellDataFunc(renderer, ResultProjectDataFunc);
            treeviewSearchResults.AppendColumn(projectColumn);

            var fileNameColumn = new TreeViewColumn {
                Resizable    = true,
                SortColumnId = 2,
                Title        = GettextCatalog.GetString("File"),
                Sizing       = TreeViewColumnSizing.Fixed,
                FixedWidth   = 200
            };

            var fileNamePixbufRenderer = new CellRendererImage();

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

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


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

            textColumn.Resizable  = true;
            textColumn.Sizing     = TreeViewColumnSizing.Fixed;
            textColumn.FixedWidth = 300;

            pathColumn = treeviewSearchResults.AppendColumn(GettextCatalog.GetString("Path"),
                                                            renderer, ResultPathDataFunc);
            pathColumn.SortColumnId = 3;
            pathColumn.Resizable    = true;
            pathColumn.Sizing       = TreeViewColumnSizing.Fixed;
            pathColumn.FixedWidth   = 500;

            store.DefaultSortFunc = DefaultSortFunc;
            store.SetSortFunc(1, CompareProjectFileNames);
            store.SetSortFunc(2, CompareFileNames);
            store.SetSortFunc(3, CompareFilePaths);

            treeviewSearchResults.RowActivated += TreeviewSearchResultsRowActivated;

            buttonStop = new ToolButton(new ImageView(Gui.Stock.Stop, Gtk.IconSize.Menu), null)
            {
                Sensitive = false
            };
            buttonStop.Clicked    += ButtonStopClicked;
            buttonStop.TooltipText = GettextCatalog.GetString("Stop");
            toolbar.Insert(buttonStop, -1);

            var buttonClear = new ToolButton(new ImageView(Gui.Stock.Clear, Gtk.IconSize.Menu), null);

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

            var buttonOutput = new ToggleToolButton();

            buttonOutput.IconWidget  = new ImageView(Gui.Stock.OutputIcon, Gtk.IconSize.Menu);
            buttonOutput.Clicked    += ButtonOutputClicked;
            buttonOutput.TooltipText = GettextCatalog.GetString("Show output");
            toolbar.Insert(buttonOutput, -1);

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

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

            scrolledwindowLogView.Hide();
            treeviewSearchResults.FixedHeightMode = true;

            UpdateStyles();
            IdeApp.Preferences.ColorScheme.Changed += UpdateStyles;
        }
示例#54
0
 static XmlSchemaCompletionData GetSchema(ListStore registeredSchemasStore, TreeIter iter)
 {
     return((XmlSchemaCompletionData)registeredSchemasStore.GetValue(iter, 0));
 }
示例#55
0
        /// <summary>
        /// Default constructor. Initialises intellisense popup, but doesn't display anything.
        /// </summary>
        public IntellisenseView(ViewBase owner) : base(owner)
        {
            completionForm = new Window(WindowType.Toplevel)
            {
                HeightRequest   = 300,
                WidthRequest    = 750,
                Decorated       = false,
                SkipPagerHint   = true,
                SkipTaskbarHint = true,
            };

            Frame completionFrame = new Frame();

            completionForm.Add(completionFrame);

            ScrolledWindow completionScroller = new ScrolledWindow();

            completionFrame.Add(completionScroller);

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

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

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

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

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

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

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

            completionView.HasTooltip        = true;
            completionView.TooltipColumn     = 5;
            completionForm.FocusOutEvent    += OnLeaveCompletion;
            completionView.ButtonPressEvent += OnButtonPress;
            completionView.KeyPressEvent    += OnContextListKeyDown;
            completionView.KeyReleaseEvent  += OnKeyRelease;
        }
示例#56
0
        /**
         * Método privado para mostrar el mensaje
         * */
        private void ShowMessage()
        {
            if (this._message.MessageType != Constants.MENSAJE_CONEXION_A && this._message.MessageType != Constants.MENSAJE_CONEXION_B &&
                this._message.MessageType != Constants.MENSAJE_RESPUESTA_CONEXION_A && this._message.MessageType != Constants.MENSAJE_RESPUESTA_CONEXION_B)
            {
                this._messageView = new ListStore(typeof(string), typeof(string), typeof(string), typeof(string), typeof(string));

                //Añado las columnas
                treeviewMessage.AppendColumn(Constants.TABLA_COLUMNA_USUARIO_ORIGEN, new CellRendererText(), "text", 0);
                treeviewMessage.AppendColumn(Constants.TABLA_COLUMNA_USUARIO_DESTINO, new CellRendererText(), "text", 1);
                treeviewMessage.AppendColumn(Constants.TABLA_COLUMNA_TIPO_MENSAJE, new CellRendererText(), "text", 2);
                treeviewMessage.AppendColumn(Constants.TABLA_COLUMNA_TIPOBBDD, new CellRendererText(), "text", 3);
                treeviewMessage.AppendColumn(Constants.TABLA_COLUMNA_NOMBREBBDD, new CellRendererText(), "text", 4);

                this._messageView.AppendValues(this._message.Source, this._message.Destination, this._message.MessageType, this._message.Db_type, this._message.Db_name);
                labelCuerpo.LabelProp = this._message.Body == null || this._message.Body.InnerXml == "" ? "No hay cuerpo del mensaje" : this._message.Body.InnerXml;
            }
            else
            {
                this._messageView = new ListStore(typeof(string), typeof(string), typeof(string));

                switch (this._message.MessageType)
                {
                case Constants.MENSAJE_CONEXION_A:

                    //Añado las columnas
                    treeviewMessage.AppendColumn(Constants.TABLA_COLUMNA_USUARIO_ORIGEN, new CellRendererText(), "text", 0);
                    treeviewMessage.AppendColumn(Constants.TABLA_COLUMNA_USUARIO_DESTINO, new CellRendererText(), "text", 1);
                    treeviewMessage.AppendColumn(Constants.TABLA_COLUMNA_TIPO_MENSAJE, new CellRendererText(), "text", 2);
                    this._messageView.AppendValues(this._message.Source, this._message.Destination, this._message.MessageType);
                    this.labelCuerpo.LabelProp = "En este mensaje " + this._message.Source + " envió la siguiente clave pública a " + this._message.Destination + " : " + "\n" + this._message.KeyPair;
                    break;

                case Constants.MENSAJE_CONEXION_B:
                    //Añado las columnas
                    treeviewMessage.AppendColumn(Constants.TABLA_COLUMNA_USUARIO_ORIGEN, new CellRendererText(), "text", 0);
                    treeviewMessage.AppendColumn(Constants.TABLA_COLUMNA_USUARIO_DESTINO, new CellRendererText(), "text", 1);
                    treeviewMessage.AppendColumn(Constants.TABLA_COLUMNA_TIPO_MENSAJE, new CellRendererText(), "text", 2);
                    this._messageView.AppendValues(this._message.Source, this._message.Destination, this._message.MessageType);
                    labelCuerpo.LabelProp  = "En este mensaje " + this._message.Source + " envió la clave simétrica encriptada con la clave pública de " + this._message.Destination;
                    labelCuerpo.LabelProp += "\n" + "Por motivos de seguridad, no vamos a mostrar la clave simétrica \n";
                    break;

                case Constants.MENSAJE_RESPUESTA_CONEXION_A:
                    //Añado las columnas
                    treeviewMessage.AppendColumn(Constants.TABLA_COLUMNA_USUARIO_ORIGEN, new CellRendererText(), "text", 0);
                    treeviewMessage.AppendColumn(Constants.TABLA_COLUMNA_USUARIO_DESTINO, new CellRendererText(), "text", 1);
                    treeviewMessage.AppendColumn(Constants.TABLA_COLUMNA_TIPO_MENSAJE, new CellRendererText(), "text", 2);
                    this._messageView.AppendValues(this._message.Source, this._message.Destination, this._message.MessageType);
                    this.labelCuerpo.LabelProp = "En este mensaje " + this._message.Source + " envió la siguiente clave pública a " + this._message.Destination + " :" + "\n" + this._message.KeyPair;

                    break;

                case Constants.MENSAJE_RESPUESTA_CONEXION_B:
                    //Añado las columnas
                    treeviewMessage.AppendColumn(Constants.TABLA_COLUMNA_USUARIO_ORIGEN, new CellRendererText(), "text", 0);
                    treeviewMessage.AppendColumn(Constants.TABLA_COLUMNA_USUARIO_DESTINO, new CellRendererText(), "text", 1);
                    treeviewMessage.AppendColumn(Constants.TABLA_COLUMNA_TIPO_MENSAJE, new CellRendererText(), "text", 2);
                    this._messageView.AppendValues(this._message.Source, this._message.Destination, this._message.MessageType);
                    labelCuerpo.LabelProp  = "En este mensaje " + this._message.Source + " envió la clave simétrica encriptada con la clave pública de " + this._message.Destination;
                    labelCuerpo.LabelProp += "\n" + "Por motivos de seguridad, no vamos a mostrar la clave simétrica \n";

                    break;
                }
            }
            treeviewMessage.Model = this._messageView;
        }
示例#57
0
        public XmlSchemasPanelWidget()
        {
            Build();

            //set up tree view for default schemas
            var textRenderer = new CellRendererText();

            registeredSchemasStore             = new ListStore(typeof(XmlSchemaCompletionData));
            registeredSchemasView.Model        = registeredSchemasStore;
            registeredSchemasView.SearchColumn = -1;             // disable the interactive search

            registeredSchemasView.AppendColumn(GettextCatalog.GetString("Namespace"), textRenderer,
                                               (TreeViewColumn col, CellRenderer cell, TreeModel model, TreeIter iter) => {
                ((CellRendererText)cell).Text = GetSchema(iter).NamespaceUri;
            }
                                               );

            registeredSchemasView.AppendColumn(GettextCatalog.GetString("Type"), textRenderer,
                                               (TreeViewColumn col, CellRenderer cell, TreeModel model, TreeIter iter) => {
                ((CellRendererText)cell).Text = GetSchema(iter).ReadOnly?
                                                GettextCatalog.GetString("Built in")
                                                : GettextCatalog.GetString("User schema");
            });

            registeredSchemasStore.SetSortFunc(0, SortSchemas);

            registeredSchemasStore.SetSortColumnId(0, SortType.Ascending);

            //update state of "remove" button depending on whether schema is read-only and anything's slected
            registeredSchemasView.Selection.Changed += delegate {
                var data = GetSelectedSchema();
                registeredSchemasRemoveButton.Sensitive = (data != null && !data.ReadOnly);
            };
            registeredSchemasRemoveButton.Sensitive = false;

            //set up cells for associations
            var extensionTextRenderer = new CellRendererText();

            extensionTextRenderer.Editable = true;
            var prefixTextRenderer = new CellRendererText();

            prefixTextRenderer.Editable = true;

            var comboEditor = new CellRendererCombo();

            registeredSchemasComboModel = new ListStore(typeof(string));
            comboEditor.Model           = registeredSchemasComboModel;
            comboEditor.Mode            = CellRendererMode.Editable;
            comboEditor.TextColumn      = 0;
            comboEditor.Editable        = true;
            comboEditor.HasEntry        = false;

            //rebuild combo's model from default schemas whenever editing starts
            comboEditor.EditingStarted += delegate(object sender, EditingStartedArgs args) {
                registeredSchemasComboModel.Clear();
                registeredSchemasComboModel.AppendValues(string.Empty);
                foreach (TreeIter iter in WalkStore(registeredSchemasStore))
                {
                    registeredSchemasComboModel.AppendValues(
                        GetSchema(iter).NamespaceUri
                        );
                }
                args.RetVal = true;
                registeredSchemasComboModel.SetSortColumnId(0, SortType.Ascending);
            };

            //set up tree view for associations
            defaultAssociationsStore             = new ListStore(typeof(string), typeof(string), typeof(string), typeof(bool));
            defaultAssociationsView.Model        = defaultAssociationsStore;
            defaultAssociationsView.SearchColumn = -1;             // disable the interactive search
            defaultAssociationsView.AppendColumn(GettextCatalog.GetString("File Extension"), extensionTextRenderer, "text", COL_EXT);
            defaultAssociationsView.AppendColumn(GettextCatalog.GetString("Namespace"), comboEditor, "text", COL_NS);
            defaultAssociationsView.AppendColumn(GettextCatalog.GetString("Prefix"), prefixTextRenderer, "text", COL_PREFIX);
            defaultAssociationsStore.SetSortColumnId(COL_EXT, SortType.Ascending);

            //editing handlers
            extensionTextRenderer.Edited += handleExtensionSet;
            comboEditor.Edited           += (sender, args) => setAssocValAndMarkChanged(args.Path, COL_NS, args.NewText ?? "");
            prefixTextRenderer.Edited    += delegate(object sender, EditedArgs args) {
                foreach (char c in args.NewText)
                {
                    if (!char.IsLetterOrDigit(c))
                    {
                        //FIXME: give an error message?
                        return;
                    }
                }
                setAssocValAndMarkChanged(args.Path, COL_PREFIX, args.NewText);
            };

            //update state of "remove" button depending on whether anything's slected
            defaultAssociationsView.Selection.Changed += delegate {
                TreeIter iter;
                defaultAssociationsRemoveButton.Sensitive =
                    defaultAssociationsView.Selection.GetSelected(out iter);
            };
            defaultAssociationsRemoveButton.Sensitive = false;
        }
示例#58
0
        FindInFilesDialog(bool showReplace)
        {
            Build();

            properties = PropertyService.Get("MonoDevelop.FindReplaceDialogs.SearchOptions", new Properties());
            SetButtonIcon(toggleReplaceInFiles, "gtk-find-and-replace");
            SetButtonIcon(toggleFindInFiles, "gtk-find");

            // If we have an active floating window, attach the dialog to it. Otherwise use the main IDE window.
            var current_toplevel = Gtk.Window.ListToplevels().FirstOrDefault(x => x.IsActive);

            if (current_toplevel is Components.DockNotebook.DockWindow)
            {
                TransientFor = current_toplevel;
            }
            else
            {
                TransientFor = IdeApp.Workbench.RootWindow;
            }

            toggleReplaceInFiles.Active = showReplace;
            toggleFindInFiles.Active    = !showReplace;

            toggleFindInFiles.Toggled += delegate {
                if (toggleFindInFiles.Active)
                {
                    Title = GettextCatalog.GetString("Find in Files");
                    HideReplaceUI();
                }
            };

            toggleReplaceInFiles.Toggled += delegate {
                if (toggleReplaceInFiles.Active)
                {
                    Title = GettextCatalog.GetString("Replace in Files");
                    ShowReplaceUI();
                }
            };

            buttonSearch.Clicked += HandleSearchClicked;
            buttonClose.Clicked  += (sender, e) => Destroy();
            DeleteEvent          += (o, args) => Destroy();
            buttonSearch.GrabDefault();

            buttonStop.Clicked += ButtonStopClicked;
            var scopeStore = new ListStore(typeof(string));

            var workspace = IdeApp.Workspace;

            if (workspace != null && workspace.GetAllSolutions().Count == 1)
            {
                scopeStore.AppendValues(GettextCatalog.GetString("Whole solution"));
            }
            else
            {
                scopeStore.AppendValues(GettextCatalog.GetString("All solutions"));
            }
            scopeStore.AppendValues(GettextCatalog.GetString("Current project"));
            scopeStore.AppendValues(GettextCatalog.GetString("All open files"));
            scopeStore.AppendValues(GettextCatalog.GetString("Directories"));
            scopeStore.AppendValues(GettextCatalog.GetString("Current document"));
            scopeStore.AppendValues(GettextCatalog.GetString("Selection"));
            comboboxScope.Model = scopeStore;

            comboboxScope.Changed += HandleScopeChanged;

            InitFromProperties();

            if (showReplace)
            {
                toggleReplaceInFiles.Toggle();
            }
            else
            {
                toggleFindInFiles.Toggle();
            }

            if (IdeApp.Workbench.ActiveDocument != null)
            {
                var view = IdeApp.Workbench.ActiveDocument.GetContent <ITextBuffer> ();
                if (view != null)
                {
                    string selectedText = FormatPatternToSelectionOption(view.SelectedText, properties.Get("RegexSearch", false));
                    if (!string.IsNullOrEmpty(selectedText))
                    {
                        if (selectedText.Any(c => c == '\n' || c == '\r'))
                        {
//							comboboxScope.Active = ScopeSelection;
                        }
                        else
                        {
                            if (comboboxScope.Active == (int)SearchScope.Selection)
                            {
                                comboboxScope.Active = (int)SearchScope.CurrentDocument;
                            }
                            comboboxentryFind.Entry.Text = selectedText;
                        }
                    }
                    else if (comboboxScope.Active == (int)SearchScope.Selection)
                    {
                        comboboxScope.Active = (int)SearchScope.CurrentDocument;
                    }
                }
            }
            comboboxentryFind.Entry.SelectRegion(0, comboboxentryFind.ActiveText.Length);
            comboboxentryFind.GrabFocus();
            DeleteEvent += delegate { Destroy(); };
            UpdateStopButton();

            Child.Show();
        }
 public CheckOutDialog()
 {
     fileStore = new ListStore(isCheckedField, nameField, folderField, itemField);
     BuildGui();
 }
        public CustomPropertiesWidget(PListScheme scheme)
        {
            Scheme      = scheme ?? PListScheme.Empty;
            CurrentTree = new Dictionary <PObject, PListScheme.SchemaItem> ();
            treeview    = new PopupTreeView(this)
            {
                DoubleBuffered = true
            };
            treeview.HeadersClickable = true;

            RefreshKeyStore();
            PackStart(treeview, true, true, 0);
            FindOrAddNewEntry(TreeIter.Zero);
            ShowAll();

            var keyRenderer = new CellRendererCombo();

            keyRenderer.Editable        = true;
            keyRenderer.Model           = keyStore;
            keyRenderer.Mode            = CellRendererMode.Editable;
            keyRenderer.TextColumn      = 0;
            keyRenderer.EditingStarted += KeyRendererEditingStarted;
            keyRenderer.Edited         += KeyRendererEditingFinished;
            var col = new TreeViewColumn();

            col.Resizable = true;
            col.Title     = GettextCatalog.GetString("Property");
            col.PackStart(keyRenderer, true);
            col.SetCellDataFunc(keyRenderer, delegate(TreeViewColumn tree_column, CellRenderer cell, TreeModel tree_model, TreeIter iter) {
                var renderer = (CellRendererCombo)cell;
                string id    = (string)tree_model.GetValue(iter, 0) ?? "";
                var obj      = (PObject)tree_model.GetValue(iter, 1);
                if (obj == null)
                {
                    renderer.Text      = id;
                    renderer.Editable  = false;
                    renderer.Sensitive = false;
                    return;
                }

                var key            = (PListScheme.SchemaItem)tree_model.GetValue(iter, 2);
                var parentPArray   = obj.Parent is PArray;
                renderer.Editable  = !parentPArray;
                renderer.Sensitive = !parentPArray;
                if (parentPArray)
                {
                    renderer.Text = "";
                }
                else
                {
                    renderer.Text = key != null && ShowDescriptions ? key.Description : id;
                }
            });
            treeview.AppendColumn(col);

            col = new TreeViewColumn {
                MinWidth = 25, Resizable = false, Sizing = Gtk.TreeViewColumnSizing.Fixed
            };

            var removeRenderer = new CellRendererButton(ImageService.GetPixbuf("gtk-remove", IconSize.Menu));

            removeRenderer.Clicked += RemoveElement;
            col.PackEnd(removeRenderer, false);
            col.SetCellDataFunc(removeRenderer, delegate(TreeViewColumn tree_column, CellRenderer cell, TreeModel tree_model, TreeIter iter) {
                removeRenderer.Visible = treeview.Selection.IterIsSelected(iter) && !AddKeyNode.Equals(treeStore.GetValue(iter, 0));
            });

            var addRenderer = new CellRendererButton(ImageService.GetPixbuf("gtk-add", IconSize.Menu));

            addRenderer.Clicked += AddElement;
            col.PackEnd(addRenderer, false);
            col.SetCellDataFunc(addRenderer, delegate(TreeViewColumn tree_column, CellRenderer cell, TreeModel tree_model, TreeIter iter) {
                addRenderer.Visible = treeview.Selection.IterIsSelected(iter) && AddKeyNode.Equals(treeStore.GetValue(iter, 0));
            });
            treeview.AppendColumn(col);

            treeview.RowActivated += delegate(object o, RowActivatedArgs args) {
                TreeIter iter;
                if (treeStore.GetIter(out iter, args.Path) && AddKeyNode.Equals(treeStore.GetValue(iter, 0)))
                {
                    AddElement(o, EventArgs.Empty);
                }
            };

            var comboRenderer = new CellRendererCombo();

            var typeModel = new ListStore(typeof(string));

            typeModel.AppendValues(PArray.Type);
            typeModel.AppendValues(PDictionary.Type);
            typeModel.AppendValues(PBoolean.Type);
            typeModel.AppendValues(PData.Type);
            typeModel.AppendValues(PData.Type);
            typeModel.AppendValues(PNumber.Type);
            typeModel.AppendValues(PString.Type);
            comboRenderer.Model      = typeModel;
            comboRenderer.Mode       = CellRendererMode.Editable;
            comboRenderer.HasEntry   = false;
            comboRenderer.TextColumn = 0;
            comboRenderer.Edited    += delegate(object o, EditedArgs args) {
                TreeIter selIter;
                if (!treeStore.GetIterFromString(out selIter, args.Path))
                {
                    return;
                }

                PObject oldObj = (PObject)treeStore.GetValue(selIter, 1);
                if (oldObj != null && oldObj.TypeString != args.NewText)
                {
                    oldObj.Replace(PObject.Create(args.NewText));
                }
            };

            treeview.AppendColumn(GettextCatalog.GetString("Type"), comboRenderer, delegate(TreeViewColumn tree_column, CellRenderer cell, TreeModel tree_model, TreeIter iter) {
                var renderer           = (CellRendererCombo)cell;
                var value              = (string)tree_model.GetValue(iter, 0);
                var obj                = (PObject)tree_model.GetValue(iter, 1);
                var key                = (PListScheme.SchemaItem)tree_model.GetValue(iter, 2);
                renderer.Editable      = key == null && !AddKeyNode.Equals(value);
                renderer.ForegroundGdk = Style.Text(renderer.Editable ? StateType.Normal : StateType.Insensitive);
                renderer.Text          = obj == null ? "" : obj.TypeString;
            });

            var propRenderer = new CellRendererCombo();

            propRenderer.Model           = valueStore;
            propRenderer.Mode            = CellRendererMode.Editable;
            propRenderer.TextColumn      = 0;
            propRenderer.EditingStarted += PropRendererEditingStarted;
            propRenderer.Edited         += PropRendererEditingFinished;

            treeview.AppendColumn(GettextCatalog.GetString("Value"), propRenderer, delegate(TreeViewColumn tree_column, CellRenderer cell, TreeModel tree_model, TreeIter iter) {
                var renderer = (CellRendererCombo)cell;
                var obj      = (PObject)tree_model.GetValue(iter, 1);

                renderer.Sensitive = obj != null && !(obj is PDictionary || obj is PArray || obj is PData);
                renderer.Editable  = renderer.Sensitive;
                if (!renderer.Sensitive)
                {
                    renderer.Text = "";
                    return;
                }

                if (ShowDescriptions)
                {
                    var identifier = (string)tree_model.GetValue(iter, 0);
                    var values     = PListScheme.AvailableValues(obj, CurrentTree);
                    var item       = values == null ? null : values.FirstOrDefault(v => v.Identifier == identifier);
                    if (item != null && obj is IPValueObject)
                    {
                        // Ensure that we only display the Description if the items value matches the description/identifier.
                        // For example when setting the Document Type Name we wish to display whatever identifer the user types
                        // in and not the literal string 'Document Type Name'. However for somegthing like UISupportedDeviceOrientations
                        // we can safely display the description 'iPhone' or 'iPad' and not hide important information.
                        var actualValue = ((IPValueObject)obj).Value;
                        if (actualValue != null && (actualValue.ToString() == item.Description || actualValue.ToString() == item.Identifier))
                        {
                            renderer.Text = item.Description ?? item.Identifier;
                            return;
                        }
                    }
                }

                switch (obj.TypeString)
                {
                case PDictionary.Type:
                    renderer.Text = string.Format(GettextCatalog.GetPluralString("({0} item)", "({0} items)", ((PDictionary)obj).Count), ((PDictionary)obj).Count);
                    break;

                case PArray.Type:
                    renderer.Text = string.Format(GettextCatalog.GetPluralString("({0} item)", "({0} items)", ((PArray)obj).Count, ((PArray)obj).Count));
                    break;

                case PBoolean.Type:
                    renderer.Text = ((PBoolean)obj).Value ? GettextCatalog.GetString("Yes") : GettextCatalog.GetString("No");
                    break;

                case PData.Type:
                    renderer.Text = string.Format("byte[{0}]", ((PData)obj).Value.Length);
                    break;

                default:
                    if (obj is IPValueObject)
                    {
                        renderer.Text = (((IPValueObject)obj).Value ?? "").ToString();
                    }
                    else
                    {
                        renderer.Sensitive = false;
                        renderer.Text      = GettextCatalog.GetString("Could not render {0}.", obj.GetType().Name);
                    }
                    break;
                }
            });
            treeview.EnableGridLines = TreeViewGridLines.Horizontal;
            treeview.Model           = treeStore;
        }