Пример #1
0
		public void FixtureSetUp ()
		{
			editor = new UITypeEditor ();

			Bitmap bitmap = new Bitmap (20, 20);
			graphics = Graphics.FromImage (bitmap);
		}
 public override object GetEditor(System.Type editorBaseType)
 {
     if ((editorBaseType == typeof(UITypeEditor)) && (this.editor == null))
     {
         this.editor = new AboutBoxUITypeEditor();
     }
     return this.editor;
 }
 //-----------------------------------------------------------------------------
 // Constructor
 //-----------------------------------------------------------------------------
 public CustomPropertyDescriptor(PropertyDocumentation documentation, UITypeEditor editor, Property property, Properties modifiedProperties)
     : base(documentation == null ? property.Name : documentation.ReadableName, null)
 {
     this.documentation		= documentation;
     this.editor				= editor;
     this.property			= property;
     this.modifiedProperties	= modifiedProperties;
 }
Пример #4
0
			public CursorUI (UITypeEditor host, IWindowsFormsEditorService service, object value)
			{
				this.service = service;
				this.value = value;
				TypeConverter conv = TypeDescriptor.GetConverter (typeof (Cursor));
				foreach (object o in conv.GetStandardValues())
					base.Items.Add (o);
			}
Пример #5
0
 public void PaintValue_Invoke_Nop()
 {
     using (var bm = new Bitmap(10, 10))
         using (var graphics = Graphics.FromImage(bm))
         {
             var editor = new UITypeEditor();
             editor.PaintValue(null, graphics, Rectangle.Empty);
             editor.PaintValue(new PaintValueEventArgs(null, null, graphics, Rectangle.Empty));
         }
 }
 /// <summary>
 /// Construct a Model. Based on the Type specified the Constructor populate AllowNull, DefaultValue, TypeConverter, StandardValues, StandardValueExclusive
 /// </summary>
 /// <param name="p_Type">The type of this model</param>
 public EditorUITypeEditor(Type p_Type)
     : base(p_Type)
 {
     object l_Editor = System.ComponentModel.TypeDescriptor.GetEditor(p_Type, typeof(System.Drawing.Design.UITypeEditor));
       if (l_Editor == null)
       {
     throw new MEDDataGridException("Type not valid, no editor associated to this type");
       }
       this.uiTypeEditor = (System.Drawing.Design.UITypeEditor)l_Editor;
 }
Пример #7
0
            public CursorUI(UITypeEditor host, IWindowsFormsEditorService service, object value)
            {
                this.service = service;
                this.value   = value;
                TypeConverter conv = TypeDescriptor.GetConverter(typeof(Cursor));

                foreach (object o in conv.GetStandardValues())
                {
                    base.Items.Add(o);
                }
            }
Пример #8
0
 public AlignmentUI(UITypeEditor host, IWindowsFormsEditorService service, object value)
 {
     this.service = service;
     this.value   = value;
     base.Items.Add(ContentAlignment.TopLeft);
     base.Items.Add(ContentAlignment.TopCenter);
     base.Items.Add(ContentAlignment.TopRight);
     base.Items.Add(ContentAlignment.MiddleLeft);
     base.Items.Add(ContentAlignment.MiddleCenter);
     base.Items.Add(ContentAlignment.MiddleRight);
     base.Items.Add(ContentAlignment.BottomLeft);
     base.Items.Add(ContentAlignment.BottomCenter);
     base.Items.Add(ContentAlignment.BottomRight);
 }
Пример #9
0
			public AlignmentUI (UITypeEditor host, IWindowsFormsEditorService service, object value)
			{
				this.service = service;
				this.value = value;
				base.Items.Add (ContentAlignment.TopLeft);
				base.Items.Add (ContentAlignment.TopCenter);
				base.Items.Add (ContentAlignment.TopRight);
				base.Items.Add (ContentAlignment.MiddleLeft);
				base.Items.Add (ContentAlignment.MiddleCenter);
				base.Items.Add (ContentAlignment.MiddleRight);
				base.Items.Add (ContentAlignment.BottomLeft);
				base.Items.Add (ContentAlignment.BottomCenter);
				base.Items.Add (ContentAlignment.BottomRight);
			}
        /// <summary>
        /// Initializes a new instance of <see cref="PopupEditorBindableProperty"/>.
        /// </summary>
        /// <param name="property">The underlying <see cref="Property"/> instance.</param>
        public PopupEditorBindableProperty(Property property)
            : base(property)
        {
            this.property = property;

            this.popupEditor = property.Attributes
                        .OfType<EditorAttribute>()
                        .Where(x => Type.GetType(x.EditorBaseTypeName, false) == typeof(UITypeEditor))
                        .Select(x => Type.GetType(x.EditorTypeName))
                        .Select(x => Activator.CreateInstance(x))
                        .Cast<UITypeEditor>()
                        .First();

            textReadOnly = property.Attributes.OfType<EditorWithReadOnlyTextAttribute>().Where(x => x.ReadonlyText).Any();
        }
Пример #11
0
 public CursorUI(UITypeEditor editor)
 {
     this.editor          = editor;
     base.Height          = 310;
     this.ItemHeight      = Math.Max(4 + Cursors.Default.Size.Height, this.Font.Height);
     this.DrawMode        = DrawMode.OwnerDrawFixed;
     base.BorderStyle     = BorderStyle.None;
     this.cursorConverter = TypeDescriptor.GetConverter(typeof(Cursor));
     if (this.cursorConverter.GetStandardValuesSupported())
     {
         foreach (object obj2 in this.cursorConverter.GetStandardValues())
         {
             base.Items.Add(obj2);
         }
     }
 }
 public CursorUI(UITypeEditor editor)
 {
     this.editor = editor;
     base.Height = 310;
     this.ItemHeight = Math.Max(4 + Cursors.Default.Size.Height, this.Font.Height);
     this.DrawMode = DrawMode.OwnerDrawFixed;
     base.BorderStyle = BorderStyle.None;
     this.cursorConverter = TypeDescriptor.GetConverter(typeof(Cursor));
     if (this.cursorConverter.GetStandardValuesSupported())
     {
         foreach (object obj2 in this.cursorConverter.GetStandardValues())
         {
             base.Items.Add(obj2);
         }
     }
 }
Пример #13
0
        private object EditValueResourcePicker(System.Drawing.Design.UITypeEditor defaultEditor, System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
        {
            object obj;

            System.Windows.Forms.Application.AddMessageFilter(this);
            FoundResourcePickerDialog = false;
            try
            {
                obj = defaultEditor.EditValue(context, provider, value);
            }
            finally
            {
                System.Windows.Forms.Application.RemoveMessageFilter(this);
                DetachEvents();
            }
            return(obj);
        }
Пример #14
0
        private object _value; // current editor value

        #endregion Fields

        #region Constructors

        public UITypeEditorControl(UITypeEditor editor, bool allowTyping)
        {
            // save ctor parameters
            _editor = editor;
            _allowTyping = allowTyping;

            // initialize combo
            DropDownStyle = ComboBoxStyle.DropDown;
            DrawMode = DrawMode.OwnerDrawFixed;

            // initialize drop down editor
            _form = new Form();
            _form.StartPosition   = FormStartPosition.Manual;
            _form.FormBorderStyle = FormBorderStyle.None;
            _form.ShowInTaskbar   = false;
            _form.TopLevel        = true;
            _form.Deactivate     += new EventHandler(_form_Deactivate);
        }
Пример #15
0
        public void Ctor_Properties_DefaultValues()
        {
            var editor = new UITypeEditor();

            using (var bm = new Bitmap(10, 10))
                using (var graphics = Graphics.FromImage(bm))
                {
                    Assert.False(editor.IsDropDownResizable);
                    Assert.Equal(graphics, editor.EditValue(null, graphics));
                    Assert.Equal(graphics, editor.EditValue(null, null, graphics));
                    Assert.Equal(UITypeEditorEditStyle.None, editor.GetEditStyle());
                    Assert.Equal(UITypeEditorEditStyle.None, editor.GetEditStyle(null));
                    Assert.False(editor.GetPaintValueSupported());
                    Assert.False(editor.GetPaintValueSupported(null));

                    // nop
                    editor.PaintValue(bm, graphics, Rectangle.Empty);
                }
        }
Пример #16
0
        public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
        {
            object obj;

            UIService = (System.Windows.Forms.Design.IUIService)provider.GetService(typeof(System.Windows.Forms.Design.IUIService));
            try
            {
                System.Drawing.Design.UITypeEditor uitypeEditor = (System.Drawing.Design.UITypeEditor)System.ComponentModel.TypeDescriptor.GetEditor(typeof(System.Drawing.Image), typeof(System.Drawing.Design.UITypeEditor));
                if (uitypeEditor.GetType().FullName.StartsWith("Microsoft.VisualStudio"))
                {
                    return(EditValueResourcePicker(uitypeEditor, context, provider, value));
                }
                return(EditValueOpenDialog(value));
            }
            catch (System.Exception e)
            {
                UIService.ShowError(e);
            }
            return(value);
        }
Пример #17
0
            public CursorUI(UITypeEditor editor)
            {
                this.editor = editor;

                Height      = 310;
                ItemHeight  = (int)Math.Max(4 + Cursors.Default.Size.Height, Font.Height);
                DrawMode    = DrawMode.OwnerDrawFixed;
                BorderStyle = BorderStyle.None;

                cursorConverter = TypeDescriptor.GetConverter(typeof(Cursor));
                Debug.Assert(cursorConverter.GetStandardValuesSupported(), "Converter '" + cursorConverter.ToString() + "' does not support a list of standard values. We cannot provide a drop-down");

                // Fill the list with cursors.
                //
                if (cursorConverter.GetStandardValuesSupported())
                {
                    foreach (object obj in cursorConverter.GetStandardValues())
                    {
                        Items.Add(obj);
                    }
                }
            }
Пример #18
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="type">The Type of object that can be edited by this control.</param>
        protected PickerBase(Type type)
        {
            base.SetStyle(ControlStyles.Selectable, true);
            base.SetStyle(ControlStyles.FixedHeight, true);
            base.SetStyle(ControlStyles.DoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint, true);

            base.ResizeRedraw = true;

            paintValueOnly = false;
            paintValueFrame = true;
            paintValueWidth = 20;
            textEditable = true;
            autoCompletion = true;

            dropDownCommit = false;
            editingText = false;

            editedType = type;
            typeEditor = null;
            typeConverter = null;
            typeContext = null;
            parseMethod = null;
            editedValue = null;

            base.SuspendLayout();
            base.CausesValidation = true;

            pickerButton = new PickerButton(this);
            pickerValueBox = new PickerValueBox(this);
            pickerTextBox = new TextBox();
            pickerListBox = new PickerListBox(this);
            pickerService = new PickerService(this);

            // pickerButton
            pickerButton.Visible = true;
            pickerButton.Cursor = Cursors.Default;
            pickerButton.MouseDown += new MouseEventHandler(pickerButton_MouseDown);
            pickerButton.MouseUp += new MouseEventHandler(pickerButton_MouseUp);

            // pickerValueBox
            pickerValueBox.Visible = false;
            pickerValueBox.Cursor = Cursors.Default;
            pickerValueBox.MouseDown += new MouseEventHandler(pickerValueBox_MouseDown);

            // pickerTextBox
            pickerTextBox.AcceptsReturn = false;
            pickerTextBox.AcceptsTab = false;
            pickerTextBox.CausesValidation = false;
            pickerTextBox.BorderStyle = BorderStyle.None;
            pickerTextBox.KeyDown += new KeyEventHandler(pickerTextBox_KeyDown);
            pickerTextBox.KeyPress += new KeyPressEventHandler(pickerTextBox_KeyPress);
            pickerTextBox.KeyUp += new KeyEventHandler(pickerTextBox_KeyUp);
            pickerTextBox.TextChanged += new EventHandler(pickerTextBox_TextChanged);
            pickerTextBox.GotFocus += new EventHandler(pickerTextBox_GotFocus);
            pickerTextBox.LostFocus += new EventHandler(pickerTextBox_LostFocus);
            pickerTextBox.Validating += new CancelEventHandler(pickerTextBox_Validating);
            pickerTextBox.Validated += new EventHandler(pickerTextBox_Validated);

            // pickerListBox
            pickerListBox.Visible = true;
            pickerListBox.MouseUp += new MouseEventHandler(pickerListBox_MouseUp);
            pickerListBox.SelectedIndexChanged += new EventHandler(pickerListBox_SelectedIndexChanged);

            // pickerBase
            BackColor = SystemColors.Window;
            ForeColor = SystemColors.WindowText;

            base.Controls.Add(pickerButton);
            base.Controls.Add(pickerValueBox);
            base.Controls.Add(pickerTextBox);
            base.ResumeLayout();
        }
 protected override void OnPropertyTaskItemUpdated(System.Windows.Forms.ToolTip toolTip, ref int currentTabIndex)
 {
     this._editor = (UITypeEditor) base.PropertyDescriptor.GetEditor(typeof(UITypeEditor));
     base.OnPropertyTaskItemUpdated(toolTip, ref currentTabIndex);
     if (this._editor != null)
     {
         this._button.Ellipsis = this._editor.GetEditStyle(base.TypeDescriptorContext) == UITypeEditorEditStyle.Modal;
         this._hasSwatch = this._editor.GetPaintValueSupported(base.TypeDescriptorContext);
     }
     else
     {
         this._button.Ellipsis = false;
     }
     if (this._button.Ellipsis)
     {
         base.EditControl.AccessibleRole = this.IsReadOnly() ? AccessibleRole.StaticText : AccessibleRole.Text;
     }
     else
     {
         base.EditControl.AccessibleRole = this.IsReadOnly() ? AccessibleRole.DropList : AccessibleRole.ComboBox;
     }
     this._button.TabStop = this._button.Ellipsis;
     this._button.TabIndex = currentTabIndex++;
     this._button.AccessibleRole = this._button.Ellipsis ? AccessibleRole.PushButton : AccessibleRole.ButtonDropDown;
     this._button.AccessibleDescription = base.EditControl.AccessibleDescription;
     this._button.AccessibleName = base.EditControl.AccessibleName;
 }
 /// <include file='doc\COM2AboutBoxPropertyDescriptor.uex' path='docs/doc[@for="Com2AboutBoxPropertyDescriptor.GetEditor"]/*' />
 /// <devdoc>
 ///      Retrieves an editor of the requested type.
 /// </devdoc>
 public override object GetEditor(Type editorBaseType) {
     if (editorBaseType == typeof(UITypeEditor)) {
         if (editor == null) {
             editor = new AboutBoxUITypeEditor();
         }
     }
     
     return editor;
 }
 public UITypeEditorProxy(UITypeEditor uiTypeEditor,
                          object actualInstance)
 {
     this.actualInstance = actualInstance;
     this.uiTypeEditor = uiTypeEditor;
 }
Пример #22
0
        public void UITypeEditor_Ctor_Default()
        {
            var editor = new UITypeEditor();

            Assert.False(editor.IsDropDownResizable);
        }
 public Com2PropertyBuilderUITypeEditor(Com2PropertyDescriptor pd, string guidString, int type, UITypeEditor baseEditor) : base(baseEditor) {
     propDesc = pd;
     this.guidString = guidString;
     this.bldrType = type;
 }
 /// <summary>
 ///     Creates a new drop-down control to display the given UITypeEditor
 /// </summary>
 protected internal TreeGridDesignerInPlaceEditDropDown(
     UITypeEditor editor, PropertyDescriptor propertyDescriptor, object instance, TypeEditorHostEditControlStyle editStyle)
     : base(editor, propertyDescriptor, instance, editStyle)
 {
 }
 public Com2ExtendedUITypeEditor(UITypeEditor baseTypeEditor)
 {
     innerEditor = baseTypeEditor;
 }
Пример #26
0
        protected virtual void Dispose(bool disposing) {
            // make sure we don't accidentally
            // check flags in this state...
            flags  |= FL_CHECKED;

            SetFlag(FLAG_DISPOSED, true);
            
            cacheItems = null;
            converter = null;
            editor = null;
            accessibleObject = null;

            if (disposing) {
                DisposeChildren();
            }
        }
 /// <summary>
 ///     Creates a new drop-down control to display the given UITypeEditor
 /// </summary>
 protected internal TreeGridDesignerInPlaceEditDropDown(UITypeEditor editor, PropertyDescriptor propertyDescriptor, object instance)
     : base(editor, propertyDescriptor, instance)
 {
 }
 protected virtual void Dispose(bool disposing)
 {
     this.flags |= -2147483648;
     this.SetFlag(0x2000, true);
     this.cacheItems = null;
     this.converter = null;
     this.editor = null;
     this.accessibleObject = null;
     if (disposing)
     {
         this.DisposeChildren();
     }
 }
Пример #29
0
        internal override bool NotifyValueGivenParent(object obj, int type) {
            if (obj is ICustomTypeDescriptor) {
                obj = ((ICustomTypeDescriptor)obj).GetPropertyOwner(propertyInfo);
            }

            switch (type) {
                case NOTIFY_RESET:
                    
                    SetPropertyValue(obj, null, true, SR.GetString(SR.PropertyGridResetValue, this.PropertyName));
                    if (pvUIItems != null) {
                        for (int i = 0; i < pvUIItems.Length; i++) {
                            pvUIItems[i].Reset();
                        }
                    }
                    pvUIItems = null;
                    return false;
            case NOTIFY_CAN_RESET:
                    try {
                        return propertyInfo.CanResetValue(obj) || (pvUIItems != null && pvUIItems.Length > 0);
                    }
                    catch {
                    
                        if (this.exceptionConverter == null) {
                            // clear the flags
                            this.Flags = 0;
                            this.exceptionConverter = new ExceptionConverter();
                            this.exceptionEditor = new ExceptionEditor();
                        }
                        return false;
                    }
            case NOTIFY_SHOULD_PERSIST:
                try{
                    return propertyInfo.ShouldSerializeValue(obj);
                }
                catch {
                    
                    if (this.exceptionConverter == null) {
                        // clear the flags
                        this.Flags = 0;
                        this.exceptionConverter = new ExceptionConverter();
                        this.exceptionEditor = new ExceptionEditor();
                    }
                    return false;
                }
                    
                case NOTIFY_DBL_CLICK:
                case NOTIFY_RETURN:
                    if (eventBindings == null) {
                        eventBindings = (IEventBindingService)GetService(typeof(IEventBindingService));
                    }
                    if (eventBindings != null) {
                        EventDescriptor descriptor = eventBindings.GetEvent(propertyInfo);
                        if (descriptor != null) {
                            return ViewEvent(obj, null, null, true);
                        }
                    }
                break;
            }
            return false;
        }
		/// <summary>
		/// Initializes a new instance of the <see cref="NuGenImageIndexEditor"/> class.
		/// </summary>
		public NuGenImageIndexEditor()
		{
			_parentImageListProperty = "Parent";
			_imageEditor = (UITypeEditor)TypeDescriptor.GetEditor(typeof(Image), typeof(UITypeEditor));
		}
        internal override bool NotifyValueGivenParent(object obj, int type)
        {
            bool flag;
            if (obj is ICustomTypeDescriptor)
            {
                obj = ((ICustomTypeDescriptor) obj).GetPropertyOwner(this.propertyInfo);
            }
            switch (type)
            {
                case 1:
                    this.SetPropertyValue(obj, null, true, System.Windows.Forms.SR.GetString("PropertyGridResetValue", new object[] { this.PropertyName }));
                    if (this.pvUIItems != null)
                    {
                        for (int i = 0; i < this.pvUIItems.Length; i++)
                        {
                            this.pvUIItems[i].Reset();
                        }
                    }
                    break;

                case 2:
                    try
                    {
                        return (this.propertyInfo.CanResetValue(obj) || ((this.pvUIItems != null) && (this.pvUIItems.Length > 0)));
                    }
                    catch
                    {
                        if (this.exceptionConverter == null)
                        {
                            this.Flags = 0;
                            this.exceptionConverter = new ExceptionConverter();
                            this.exceptionEditor = new ExceptionEditor();
                        }
                        return false;
                    }
                    goto Label_00F1;

                case 3:
                case 5:
                    if (this.eventBindings == null)
                    {
                        this.eventBindings = (IEventBindingService) this.GetService(typeof(IEventBindingService));
                    }
                    if ((this.eventBindings != null) && (this.eventBindings.GetEvent(this.propertyInfo) != null))
                    {
                        return this.ViewEvent(obj, null, null, true);
                    }
                    goto Label_0175;

                case 4:
                    goto Label_00F1;

                default:
                    goto Label_0175;
            }
            this.pvUIItems = null;
            return false;
        Label_00F1:
            try
            {
                flag = this.propertyInfo.ShouldSerializeValue(obj);
            }
            catch
            {
                if (this.exceptionConverter == null)
                {
                    this.Flags = 0;
                    this.exceptionConverter = new ExceptionConverter();
                    this.exceptionEditor = new ExceptionEditor();
                }
                flag = false;
            }
            return flag;
        Label_0175:
            return false;
        }
 private void SetFlagsAndExceptionInfo(int flags, ExceptionConverter converter, ExceptionEditor editor)
 {
     this.Flags = flags;
     this.exceptionConverter = converter;
     this.exceptionEditor = editor;
 }
Пример #33
0
		/// <summary>
		/// Creates a new TypeEditorHost to display the given UITypeEditor
		/// </summary>
		/// <param name="editor">The UITypeEditor instance to host</param>
		/// <param name="propertyDescriptor">Property descriptor used to get/set values in the drop-down.</param>
		/// <param name="instance">Instance object used to get/set values in the drop-down.</param>
		protected OnScreenTypeEditorHost(UITypeEditor editor, PropertyDescriptor propertyDescriptor, object instance)
			: base(editor, propertyDescriptor, instance)
		{
		}
 internal void UpdateTypeConverterAndTypeEditorInternal(bool force, int dispid)
 {
     if ((!this.GetFlag(1) || force) && (this.owner.GetOcx() != null))
     {
         try
         {
             System.Windows.Forms.NativeMethods.IPerPropertyBrowsing perPropertyBrowsing = this.owner.GetPerPropertyBrowsing();
             if (perPropertyBrowsing != null)
             {
                 bool flag = false;
                 System.Windows.Forms.NativeMethods.CA_STRUCT pCaStringsOut = new System.Windows.Forms.NativeMethods.CA_STRUCT();
                 System.Windows.Forms.NativeMethods.CA_STRUCT pCaCookiesOut = new System.Windows.Forms.NativeMethods.CA_STRUCT();
                 int errorCode = 0;
                 try
                 {
                     errorCode = perPropertyBrowsing.GetPredefinedStrings(dispid, pCaStringsOut, pCaCookiesOut);
                 }
                 catch (ExternalException exception)
                 {
                     errorCode = exception.ErrorCode;
                 }
                 if (errorCode != 0)
                 {
                     flag = false;
                     if (this.converter is Com2EnumConverter)
                     {
                         this.converter = null;
                     }
                 }
                 else
                 {
                     flag = true;
                 }
                 if (flag)
                 {
                     OleStrCAMarshaler names = new OleStrCAMarshaler(pCaStringsOut);
                     Int32CAMarshaler values = new Int32CAMarshaler(pCaCookiesOut);
                     if ((names.Count > 0) && (values.Count > 0))
                     {
                         if (this.converter == null)
                         {
                             this.converter = new AxHost.AxEnumConverter(this, new AxHost.AxPerPropertyBrowsingEnum(this, this.owner, names, values, true));
                         }
                         else if (this.converter is AxHost.AxEnumConverter)
                         {
                             ((AxHost.AxEnumConverter) this.converter).RefreshValues();
                             AxHost.AxPerPropertyBrowsingEnum enum2 = ((AxHost.AxEnumConverter) this.converter).com2Enum as AxHost.AxPerPropertyBrowsingEnum;
                             if (enum2 != null)
                             {
                                 enum2.RefreshArrays(names, values);
                             }
                         }
                     }
                 }
                 else if (((ComAliasNameAttribute) this.baseProp.Attributes[typeof(ComAliasNameAttribute)]) == null)
                 {
                     Guid propertyPage = this.GetPropertyPage(dispid);
                     if (!Guid.Empty.Equals(propertyPage))
                     {
                         this.editor = new AxHost.AxPropertyTypeEditor(this, propertyPage);
                         if (!this.IsBrowsable)
                         {
                             this.AddAttribute(new BrowsableAttribute(true));
                         }
                     }
                 }
             }
             this.SetFlag(1, true);
         }
         catch (Exception)
         {
         }
     }
 }
Пример #35
0
 private void SetFlagsAndExceptionInfo(int flags, ExceptionConverter converter, ExceptionEditor editor)
 {
     this.Flags = flags;
     this.exceptionConverter = converter;
     this.exceptionEditor    = editor;
 }
Пример #36
0
		/// <summary>
		/// Creates a new TypeEditorHost to display the given UITypeEditor
		/// </summary>
		/// <param name="editor">The UITypeEditor instance to host</param>
		/// <param name="editControlStyle">The type of control to show in the edit area.</param>
		/// <param name="propertyDescriptor">Property descriptor used to get/set values in the drop-down.</param>
		/// <param name="instance">Instance object used to get/set values in the drop-down.</param>
		protected OnScreenTypeEditorHost(UITypeEditor editor, PropertyDescriptor propertyDescriptor, object instance, TypeEditorHostEditControlStyle editControlStyle)
			: base(editor, propertyDescriptor, instance, editControlStyle)
		{
		}
Пример #37
0
        internal override bool NotifyValueGivenParent(object obj, int type)
        {
            bool flag;

            if (obj is ICustomTypeDescriptor)
            {
                obj = ((ICustomTypeDescriptor)obj).GetPropertyOwner(this.propertyInfo);
            }
            switch (type)
            {
            case 1:
                this.SetPropertyValue(obj, null, true, System.Windows.Forms.SR.GetString("PropertyGridResetValue", new object[] { this.PropertyName }));
                if (this.pvUIItems != null)
                {
                    for (int i = 0; i < this.pvUIItems.Length; i++)
                    {
                        this.pvUIItems[i].Reset();
                    }
                }
                break;

            case 2:
                try
                {
                    return(this.propertyInfo.CanResetValue(obj) || ((this.pvUIItems != null) && (this.pvUIItems.Length > 0)));
                }
                catch
                {
                    if (this.exceptionConverter == null)
                    {
                        this.Flags = 0;
                        this.exceptionConverter = new ExceptionConverter();
                        this.exceptionEditor    = new ExceptionEditor();
                    }
                    return(false);
                }
                goto Label_00F1;

            case 3:
            case 5:
                if (this.eventBindings == null)
                {
                    this.eventBindings = (IEventBindingService)this.GetService(typeof(IEventBindingService));
                }
                if ((this.eventBindings != null) && (this.eventBindings.GetEvent(this.propertyInfo) != null))
                {
                    return(this.ViewEvent(obj, null, null, true));
                }
                goto Label_0175;

            case 4:
                goto Label_00F1;

            default:
                goto Label_0175;
            }
            this.pvUIItems = null;
            return(false);

Label_00F1:
            try
            {
                flag = this.propertyInfo.ShouldSerializeValue(obj);
            }
            catch
            {
                if (this.exceptionConverter == null)
                {
                    this.Flags = 0;
                    this.exceptionConverter = new ExceptionConverter();
                    this.exceptionEditor    = new ExceptionEditor();
                }
                flag = false;
            }
            return(flag);

Label_0175:
            return(false);
        }
Пример #38
0
 /// <summary>
 ///     Creates a new TypeEditorHost to display the given UITypeEditor
 /// </summary>
 /// <param name="editor">The UITypeEditor instance to host</param>
 /// <param name="propertyDescriptor">Property descriptor used to get/set values in the drop-down.</param>
 /// <param name="instance">Instance object used to get/set values in the drop-down.</param>
 protected TypeEditorHost(UITypeEditor editor, PropertyDescriptor propertyDescriptor, object instance)
     :
         this(UITypeEditorEditStyle.DropDown, propertyDescriptor, instance, TypeEditorHostEditControlStyle.Editable)
 {
     _uiTypeEditor = editor;
     if (editor != null)
     {
         _editStyle = editor.GetEditStyle(this);
     }
 }
Пример #39
0
 private void OnUITypeEditorChanged(UITypeEditor oldValue, UITypeEditor newValue)
 {
     OnPropertyChanged(new PropertyChangedEventArgs("UITypeEditor"));   
 }
 public Com2ExtendedUITypeEditor(Type baseType)
 {
     innerEditor = (UITypeEditor)TypeDescriptor.GetEditor(baseType, typeof(UITypeEditor));
 }
Пример #41
0
            /// <devdoc>
            /// Called externally to update the editor or type converter.
            /// This simply sets flags so this will happen, it doesn't actually to the update...
            /// we wait and do that on-demand for perf.
            /// </devdoc>
            internal void UpdateTypeConverterAndTypeEditorInternal(bool force, int dispid) {

                // check to see if we're being forced here or if the work really
                // needs to be done.
                //
                if (GetFlag(FlagUpdatedEditorAndConverter) && !force)  {
                    return;
                }
                
                if (owner.GetOcx() == null) {
                    return;
                }
                    

                try {
                    NativeMethods.IPerPropertyBrowsing ppb = owner.GetPerPropertyBrowsing();

                    if (ppb != null) {
                        bool hasStrings = false;

                        // check for enums
                        NativeMethods.CA_STRUCT caStrings = new NativeMethods.CA_STRUCT();
                        NativeMethods.CA_STRUCT caCookies = new NativeMethods.CA_STRUCT();

                        int hr = NativeMethods.S_OK;

                        try {
                            hr = ppb.GetPredefinedStrings(dispid, caStrings, caCookies);
                        }
                        catch(ExternalException ex) {
                            hr = ex.ErrorCode;
                            Debug.Fail("An exception occurred inside IPerPropertyBrowsing::GetPredefinedStrings(dispid=" +
                                       dispid + "), object type=" + new ComNativeDescriptor().GetClassName(ppb));
                        }


                        if (hr != NativeMethods.S_OK) {
                            hasStrings = false;
                            // Destroy the existing editor if we created the current one
                            // so if the items have disappeared, we don't hold onto the old
                            // items.
                            if (converter is Com2EnumConverter) {
                                converter = null;
                            }
                        }
                        else {
                            hasStrings = true;
                        }

                        if (hasStrings) {
                            OleStrCAMarshaler stringMarshaler = new OleStrCAMarshaler(caStrings);
                            Int32CAMarshaler  intMarshaler = new Int32CAMarshaler(caCookies);

                            if (stringMarshaler.Count > 0 && intMarshaler.Count > 0) {
                                if (converter == null) {
                                    converter = new AxEnumConverter(this, new AxPerPropertyBrowsingEnum(this, owner, stringMarshaler, intMarshaler, true));
                                }
                                else if (converter is AxEnumConverter){
                                    ((AxEnumConverter)converter).RefreshValues();
                                    AxPerPropertyBrowsingEnum axEnum = ((AxEnumConverter)converter).com2Enum as AxPerPropertyBrowsingEnum;
                                    if (axEnum != null) {
                                        axEnum.RefreshArrays(stringMarshaler, intMarshaler);
                                    }

                                }
                                
                            }
                            else {
                                //hasStrings = false;
                            }
                        }
                        else {
                            // if we didn't get any strings, try the proppage edtior
                            //
                            // Check to see if this is a property that we have already massaged to be a 
                            // .Net type. If it is, don't bother with custom property pages. We already
                            // have a .Net Editor for this type.
                            //
                            ComAliasNameAttribute comAlias = (ComAliasNameAttribute)baseProp.Attributes[typeof(ComAliasNameAttribute)];
                            if (comAlias == null) {
                                Guid g = GetPropertyPage(dispid);

                                if (!Guid.Empty.Equals(g)) {
                                   editor = new AxPropertyTypeEditor(this, g);
                                
                                   // Show any non-browsable property that has an editor through a 
                                   // property page.
                                   //
                                   if (!this.IsBrowsable) {
                                       Debug.WriteLineIf(AxPropTraceSwitch.TraceVerbose, "Making property: " + this.Name + " browsable because we found an editor.");
                                       AddAttribute(new BrowsableAttribute(true));
                                   }
                                }
                            }
                        }
                    }

                    SetFlag(FlagUpdatedEditorAndConverter, true);
                 }
                 catch (Exception e) {
                     Debug.WriteLineIf(AxPropTraceSwitch.TraceVerbose, "could not get the type editor for property: " + this.Name + " Exception: " + e);
                 }
            }
 public Com2PropertyPageUITypeEditor(Com2PropertyDescriptor pd, Guid guid, UITypeEditor baseEditor) : base(baseEditor)
 {
     this.propDesc = pd;
     this.guid = guid;
 }
Пример #43
0
        public PropInPlaceUITypeEditor(UITypeEditor _editor, bool editable)
        {
            this._editor = _editor;

            if (editable)
            {
                _edit = new PropInPlaceTextbox(false);
                _edit.Parent = this;
                _edit.Text = Text;
                _edit.TabStop = false;
            }

            _editorService = new EditorService(this);

            SetStyle(ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint |
                Utilities.DoubleBufferStyle | ControlStyles.Opaque | ControlStyles.ResizeRedraw, true);

            Cursor = Cursors.Arrow;
        }