using System.Collections;
using System.ComponentModel.Design;
using System.Reflection;
+using System.Runtime.InteropServices;
using System.Windows.Forms.Design;
using System.Windows.Forms.PropertyGridInternal;
namespace System.Windows.Forms {
[Designer("System.Windows.Forms.Design.PropertyGridDesigner, " + Consts.AssemblySystem_Design, "System.ComponentModel.Design.IDesigner")]
+#if NET_2_0
+ [ClassInterface (ClassInterfaceType.AutoDispatch)]
+ [ComVisible (true)]
+#endif
public class PropertyGrid : System.Windows.Forms.ContainerControl, ComponentModel.Com2Interop.IComPropertyBrowser {
#region Private Members
internal Panel help_panel;
internal Label help_title_label;
internal Label help_description_label;
- private ContextMenu context_menu;
private MenuItem reset_menuitem;
private MenuItem description_menuitem;
private object current_property_value;
alphabetic_toolbarbutton = new ToolBarButton();
separator_toolbarbutton = new ToolBarButton();
propertypages_toolbarbutton = new ToolBarButton();
- context_menu = new ContextMenu();
+ ContextMenu context_menu = new ContextMenu();
toolbar_imagelist = new ImageList();
toolbar_imagelist.ColorDepth = ColorDepth.Depth32Bit;
}
}
- [BrowsableAttribute(false)]
+ [BrowsableAttribute (false)]
[EditorBrowsableAttribute(EditorBrowsableState.Advanced)]
public virtual bool CommandsVisible {
get {
}
}
- [DefaultValue(false)]
+#if NET_2_0
+ [DefaultValue (true)]
+#else
+ [DefaultValue (false)]
+#endif
public virtual bool CommandsVisibleIfAvailable {
get {
return commands_visible_if_available;
}
}
+#if NET_2_0
+ [DefaultValue ("Color [Control]")]
+#endif
public Color HelpBackColor {
get {
return help_panel.BackColor;
}
}
+#if NET_2_0
+ [DefaultValue ("Color [ControlText]")]
+#endif
public Color HelpForeColor {
get {
return help_panel.ForeColor;
}
}
+#if NET_2_0
+ [DefaultValue (false)]
+#endif
public bool LargeButtons {
get {
return large_buttons;
}
}
+#if NET_2_0
+ [DefaultValue ("Color [InactiveBorder]")]
+#endif
public Color LineColor {
get {
return line_color;
UpdateToolBarButtons();
ReflectObjects();
property_grid_view.Refresh();
-
- if (PropertySortChanged != null) {
- PropertySortChanged(this, EventArgs.Empty);
- }
+
+ EventHandler eh = (EventHandler)(Events [PropertySortChangedEvent]);
+ if (eh != null)
+ eh (this, EventArgs.Empty);
}
}
}
}
+#if NET_2_0
+ [DefaultValue ("Color [Window]")]
+#endif
public Color ViewBackColor {
get {
return property_grid_view.BackColor;
}
}
+#if NET_2_0
+ [DefaultValue ("Color [WindowText]")]
+#endif
public Color ViewForeColor {
get {
return property_grid_view.ForeColor;
}
[MonoTODO]
- protected void OnComComponentNameChanged(ComponentRenameEventArgs e) {
- throw new NotImplementedException();
+ protected void OnComComponentNameChanged(ComponentRenameEventArgs e)
+ {
+ ComponentRenameEventHandler eh = (ComponentRenameEventHandler)(Events [ComComponentNameChangedEvent]);
+ if (eh != null)
+ eh (this, e);
}
protected override void OnFontChanged(EventArgs e) {
}
protected virtual void OnPropertyValueChanged (PropertyValueChangedEventArgs e) {
- if (PropertyValueChanged != null) {
- PropertyValueChanged(this, e);
+ PropertyValueChangedEventHandler eh = (PropertyValueChangedEventHandler)(Events [PropertyValueChangedEvent]);
+ if (eh != null) {
+ eh (this, e);
current_property_value = selected_grid_item.Value;
}
}
}
protected virtual void OnSelectedGridItemChanged (SelectedGridItemChangedEventArgs e) {
- if (SelectedGridItemChanged != null) {
- SelectedGridItemChanged(this, e);
- }
+ SelectedGridItemChangedEventHandler eh = (SelectedGridItemChangedEventHandler)(Events [SelectedGridItemChangedEvent]);
+ if (eh != null)
+ eh (this, e);
}
protected virtual void OnSelectedObjectsChanged (EventArgs e) {
- if (SelectedObjectsChanged != null) {
- SelectedObjectsChanged(this, e);
- }
+ EventHandler eh = (EventHandler)(Events [SelectedObjectsChangedEvent]);
+ if (eh != null)
+ eh (this, e);
}
protected override void OnSystemColorsChanged (EventArgs e) {
return base.ProcessDialogKey (keyData);
}
+ [EditorBrowsable (EditorBrowsableState.Never)]
protected override void ScaleCore (float dx, float dy) {
base.ScaleCore (dx, dy);
}
#endregion
#region Events
- public event EventHandler PropertySortChanged;
- public event PropertyTabChangedEventHandler PropertyTabChanged;
- public event PropertyValueChangedEventHandler PropertyValueChanged;
- public event SelectedGridItemChangedEventHandler SelectedGridItemChanged;
- public event EventHandler SelectedObjectsChanged;
+ static object PropertySortChangedEvent = new object ();
+ static object PropertyTabChangedEvent = new object ();
+ static object PropertyValueChangedEvent = new object ();
+ static object SelectedGridItemChangedEvent = new object ();
+ static object SelectedObjectsChangedEvent = new object ();
+
+ public event EventHandler PropertySortChanged {
+ add { Events.AddHandler (PropertySortChangedEvent, value); }
+ remove { Events.RemoveHandler (PropertySortChangedEvent, value); }
+ }
+
+ public event PropertyTabChangedEventHandler PropertyTabChanged {
+ add { Events.AddHandler (PropertyTabChangedEvent, value); }
+ remove { Events.RemoveHandler (PropertyTabChangedEvent, value); }
+ }
+
+ public event PropertyValueChangedEventHandler PropertyValueChanged {
+ add { Events.AddHandler (PropertyValueChangedEvent, value); }
+ remove { Events.RemoveHandler (PropertyValueChangedEvent, value); }
+ }
+
+ public event SelectedGridItemChangedEventHandler SelectedGridItemChanged {
+ add { Events.AddHandler (SelectedGridItemChangedEvent, value); }
+ remove { Events.RemoveHandler (SelectedGridItemChangedEvent, value); }
+ }
+
+ public event EventHandler SelectedObjectsChanged {
+ add { Events.AddHandler (SelectedObjectsChangedEvent, value); }
+ remove { Events.RemoveHandler (SelectedObjectsChangedEvent, value); }
+ }
[Browsable(false)]
[EditorBrowsable(EditorBrowsableState.Never)]
throw new NotImplementedException();
}
- [MonoTODO]
- private event ComponentRenameEventHandler com_component_name_changed;
+ static object ComComponentNameChangedEvent = new object ();
event ComponentRenameEventHandler ComponentModel.Com2Interop.IComPropertyBrowser.ComComponentNameChanged {
- add { com_component_name_changed += value; }
- remove { com_component_name_changed -= value; }
+ add { Events.AddHandler (ComComponentNameChangedEvent, value); }
+ remove { Events.RemoveHandler (ComComponentNameChangedEvent, value); }
}
#endregion // Com2Interop.IComPropertyBrowser Interface
#region Private Helper Methods
- public GridItem FindFirstItem (GridItem root)
+ private GridItem FindFirstItem (GridItem root)
{
if (root.GridItemType == GridItemType.Property)
return root;
#if NET_2_0
+ [DefaultValue (false)]
public bool UseCompatibleTextRendering {
get {
return use_compatible_text_rendering;