protected void OnBrushLoad(object o, EventArgs args) { try { if (tilemap == null) { ErrorDialog.ShowError("Brush: No tilemap selected", "You have to select a tilemap before you load a brush"); return; } fileChooser.Title = "Choose a Brush"; fileChooser.Action = FileChooserAction.Open; fileChooser.SetCurrentFolder(Settings.Instance.LastBrushDir); fileChooser.Filter = fileChooser.Filters[3]; int result = fileChooser.Run(); fileChooser.Hide(); if (result != (int)ResponseType.Ok) { return; } Settings.Instance.LastBrushDir = fileChooser.CurrentFolder; Settings.Instance.Save(); string brushFile = fileChooser.Filename; BrushEditor editor = new BrushEditor(this, level.Tileset, brushFile); SetEditor(editor); } catch (Exception e) { ErrorDialog.Exception(e); } }
protected void OnBrushSaveAs(object o, EventArgs args) { try { IEditor editor = sectorSwitchNotebook.CurrentRenderer.Editor; if (!(editor is BrushEditor)) { ErrorDialog.ShowError("No brush editor active", "You need to open a brush before you can save changes to it"); return; } BrushEditor brushEditor = (BrushEditor)editor; fileChooser.Title = "Choose a Brush"; fileChooser.Action = FileChooserAction.Save; fileChooser.SetCurrentFolder(Settings.Instance.LastBrushDir); fileChooser.Filter = fileChooser.Filters[3]; int result = fileChooser.Run(); fileChooser.Hide(); if (result != (int)ResponseType.Ok) { return; } Settings.Instance.LastBrushDir = fileChooser.CurrentFolder; Settings.Instance.Save(); string brushFile = fileChooser.Filename; brushEditor.Brush.saveToFile(brushFile); /* * try { * LispSerializer serializer = new LispSerializer(typeof(Brush)); * serializer.Write(brushFile, brushEditor.Brush); * } catch(Exception e) { * ErrorDialog.Exception("Couldn't save brush", e); * } */ } catch (Exception e) { ErrorDialog.Exception(e); } }
protected void OnBrushLoad(object o, EventArgs args) { try { if (layerList.CurrentTilemap == null) { ErrorDialog.ShowError("Brush: No tilemap selected", "You have to select a tilemap before you load a brush"); return; } fileChooser.Title = "Choose a Brush"; fileChooser.Action = FileChooserAction.Open; fileChooser.SetCurrentFolder(Settings.Instance.LastBrushDir); int result = fileChooser.Run(); fileChooser.Hide(); if(result != (int) ResponseType.Ok) return; Settings.Instance.LastBrushDir = fileChooser.CurrentFolder; Settings.Instance.Save(); string brushFile = fileChooser.Filename; BrushEditor editor = new BrushEditor(this, layerList.CurrentTilemap, level.Tileset, brushFile); SetEditor(editor); } catch(Exception e) { ErrorDialog.Exception(e); } }
internal static ITypeEditor CreateDefaultEditor(Type propertyType, TypeConverter typeConverter, PropertyItem propertyItem) { ITypeEditor editor = null; var context = new EditorTypeDescriptorContext(null, propertyItem.Instance, propertyItem.PropertyDescriptor); if ((typeConverter != null) && typeConverter.GetStandardValuesSupported(context) && typeConverter.GetStandardValuesExclusive(context) && (propertyType != typeof(bool)) && (propertyType != typeof(bool?))) //Bool type always have a BooleanConverter with standardValues : True/False. { var items = typeConverter.GetStandardValues(context); editor = new SourceComboBoxEditor(items, typeConverter); } else if (propertyType == typeof(string)) { editor = new TextBoxEditor(); } else if (propertyType == typeof(bool) || propertyType == typeof(bool?)) { editor = new CheckBoxEditor(); } else if (propertyType == typeof(decimal) || propertyType == typeof(decimal? )) { editor = new DecimalUpDownEditor(); } else if (propertyType == typeof(double) || propertyType == typeof(double?)) { editor = new DoubleUpDownEditor(); } else if (propertyType == typeof(int) || propertyType == typeof(int?)) { editor = new IntegerUpDownEditor(); } else if (propertyType == typeof(short) || propertyType == typeof(short?)) { editor = new ShortUpDownEditor(); } else if (propertyType == typeof(long) || propertyType == typeof(long?)) { editor = new LongUpDownEditor(); } else if (propertyType == typeof(float) || propertyType == typeof(float?)) { editor = new SingleUpDownEditor(); } else if (propertyType == typeof(byte) || propertyType == typeof(byte?)) { editor = new ByteUpDownEditor(); } else if (propertyType == typeof(sbyte) || propertyType == typeof(sbyte?)) { editor = new SByteUpDownEditor(); } else if (propertyType == typeof(uint) || propertyType == typeof(uint?)) { editor = new UIntegerUpDownEditor(); } else if (propertyType == typeof(ulong) || propertyType == typeof(ulong?)) { editor = new ULongUpDownEditor(); } else if (propertyType == typeof(ushort) || propertyType == typeof(ushort?)) { editor = new UShortUpDownEditor(); } else if (propertyType == typeof(DateTime) || propertyType == typeof(DateTime? )) { editor = new DateTimeUpDownEditor(); } else if ((propertyType == typeof(Color)) || (propertyType == typeof(Color? ))) { editor = new ColorEditor(); } else if ((propertyType == typeof(Brush))) { editor = new BrushEditor(); } else if (propertyType.IsEnum) { editor = new EnumComboBoxEditor(); } else if (propertyType == typeof(TimeSpan) || propertyType == typeof(TimeSpan? )) { editor = new TimeSpanUpDownEditor(); } else if (propertyType == typeof(FontFamily) || propertyType == typeof(FontWeight) || propertyType == typeof(FontStyle) || propertyType == typeof(FontStretch)) { editor = new FontComboBoxEditor(); } else if (propertyType == typeof(Guid) || propertyType == typeof(Guid?)) { editor = new MaskedTextBoxEditor() { ValueDataType = propertyType, Mask = "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA" } } ; else if (propertyType == typeof(char) || propertyType == typeof(char?)) { editor = new MaskedTextBoxEditor() { ValueDataType = propertyType, Mask = "&" } } ; else if (propertyType == typeof(IPAddress)) { editor = new IpTextBoxEditor() { } } ; else if (propertyType == typeof(object)) { // If any type of object is possible in the property, default to the TextBoxEditor. // Useful in some case (e.g., Button.Content). // Can be reconsidered but was the legacy behavior on the PropertyGrid. editor = new TextBoxEditor(); } else { var listType = ListUtilities.GetListItemType(propertyType); // A List of T if (listType != null) { if (!listType.IsPrimitive && !listType.Equals(typeof(String)) && !listType.IsEnum) { editor = new Xceed.Wpf.Toolkit.PropertyGrid.Editors.CollectionEditor(); } else { editor = new Xceed.Wpf.Toolkit.PropertyGrid.Editors.PrimitiveTypeCollectionEditor(); } } else { var dictionaryType = ListUtilities.GetDictionaryItemsType(propertyType); var collectionType = ListUtilities.GetCollectionItemType(propertyType); // A dictionary of T or a Collection of T or an ICollection if ((dictionaryType != null) || (collectionType != null) || typeof(ICollection).IsAssignableFrom(propertyType)) { editor = new Xceed.Wpf.Toolkit.PropertyGrid.Editors.CollectionEditor(); } else { // If the type is not supported, check if there is a converter that supports // string conversion to the object type. Use TextBox in theses cases. // Otherwise, return a TextBlock editor since no valid editor exists. editor = (typeConverter != null && typeConverter.CanConvertFrom(typeof(string))) ? (ITypeEditor) new TextBoxEditor() : (ITypeEditor) new TextBlockEditor(); } } } return(editor); }
internal static ITypeEditor CreateDefaultEditor(Type propertyType, TypeConverter typeConverter) { ITypeEditor editor = null; if (propertyType == typeof(string)) { editor = new TextBoxEditor(); } else if (propertyType == typeof(bool) || propertyType == typeof(bool?)) { editor = new CheckBoxEditor(); } else if (propertyType == typeof(decimal) || propertyType == typeof(decimal? )) { editor = new DecimalUpDownEditor(); } else if (propertyType == typeof(double) || propertyType == typeof(double?)) { editor = new DoubleUpDownEditor(); } else if (propertyType == typeof(int) || propertyType == typeof(int?)) { editor = new IntegerUpDownEditor(); } else if (propertyType == typeof(short) || propertyType == typeof(short?)) { editor = new ShortUpDownEditor(); } else if (propertyType == typeof(long) || propertyType == typeof(long?)) { editor = new LongUpDownEditor(); } else if (propertyType == typeof(float) || propertyType == typeof(float?)) { editor = new SingleUpDownEditor(); } else if (propertyType == typeof(byte) || propertyType == typeof(byte?)) { editor = new ByteUpDownEditor(); } else if (propertyType == typeof(sbyte) || propertyType == typeof(sbyte?)) { editor = new SByteUpDownEditor(); } else if (propertyType == typeof(uint) || propertyType == typeof(uint?)) { editor = new UIntegerUpDownEditor(); } else if (propertyType == typeof(ulong) || propertyType == typeof(ulong?)) { editor = new ULongUpDownEditor(); } else if (propertyType == typeof(ushort) || propertyType == typeof(ushort?)) { editor = new UShortUpDownEditor(); } else if (propertyType == typeof(DateTime) || propertyType == typeof(DateTime? )) { editor = new DateTimeUpDownEditor(); } else if ((propertyType == typeof(Color)) || (propertyType == typeof(Color? ))) { editor = new ColorEditor(); } else if ((propertyType == typeof(Brush))) { editor = new BrushEditor(); } else if (propertyType.IsEnum) { editor = new EnumComboBoxEditor(); } else if (propertyType == typeof(TimeSpan) || propertyType == typeof(TimeSpan? )) { editor = new TimeSpanUpDownEditor(); } else if (propertyType == typeof(FontFamily) || propertyType == typeof(FontWeight) || propertyType == typeof(FontStyle) || propertyType == typeof(FontStretch)) { editor = new FontComboBoxEditor(); } else if (propertyType == typeof(Guid) || propertyType == typeof(Guid?)) { editor = new MaskedTextBoxEditor() { ValueDataType = propertyType, Mask = "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA" } } ; else if (propertyType == typeof(char) || propertyType == typeof(char?)) { editor = new MaskedTextBoxEditor() { ValueDataType = propertyType, Mask = "&" } } ; else if (propertyType == typeof(IPAddress)) { editor = new IpTextBoxEditor() { } } ; else if (propertyType == typeof(object)) { // If any type of object is possible in the property, default to the TextBoxEditor. // Useful in some case (e.g., Button.Content). // Can be reconsidered but was the legacy behavior on the PropertyGrid. editor = new TextBoxEditor(); } else { Type listType = ListUtilities.GetListItemType(propertyType); if (listType != null) { if (!listType.IsPrimitive && !listType.Equals(typeof(String)) && !listType.IsEnum) { editor = new Xceed.Wpf.Toolkit.PropertyGrid.Editors.CollectionEditor(); } else { editor = new Xceed.Wpf.Toolkit.PropertyGrid.Editors.PrimitiveTypeCollectionEditor(); } } else { // If the type is not supported, check if there is a converter that supports // string conversion to the object type. Use TextBox in theses cases. // Otherwise, return a TextBlock editor since no valid editor exists. editor = (typeConverter != null && typeConverter.CanConvertFrom(typeof(string))) ? (ITypeEditor) new TextBoxEditor() : (ITypeEditor) new TextBlockEditor(); } } return(editor); }