using System; using System.ComponentModel; using System.ComponentModel.Design; using System.Windows.Forms; using System.Windows.Forms.ComponentModel; using System.Windows.Forms.Design; using System.Drawing.Design; using System.Globalization; namespace DevComponents.DotNetBar.Design { /// /// Summary description for ShortcutsDesigner. /// public class ShortcutsDesigner:UITypeEditor { private IWindowsFormsEditorService m_EdSvc = null; public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context) { if (context != null && context.Instance != null) { return UITypeEditorEditStyle.DropDown; } return base.GetEditStyle(context); } public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { if (context!=null && context.Instance!=null && provider!=null) { m_EdSvc=(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService)); if(m_EdSvc!=null) { ShortcutsListBox lst=null; if(context.Instance is BaseItem) lst=new ShortcutsListBox(((BaseItem)context.Instance).Shortcuts); else if (context.Instance is ButtonX) lst = new ShortcutsListBox(((ButtonX)context.Instance).Shortcuts); else if(context.Instance is DotNetBarManager) lst=new ShortcutsListBox(((DotNetBarManager)context.Instance).AutoDispatchShortcuts); else if(context.Instance!=null) System.Windows.Forms.MessageBox.Show("Unknow control using shortcuts. Cannot edit shortcuts. ["+context.Instance.ToString()+"]"); else System.Windows.Forms.MessageBox.Show("Unknow control using shortcuts. Cannot edit shortcuts. [context instance null]"); if(lst!=null) { m_EdSvc.DropDownControl(lst); value=lst.Shortcuts(); ((ShortcutsCollection)value).Parent=context.Instance as BaseItem; } } } return value; } private class ShortcutsListBox:CheckedListBox { public ShortcutsListBox(ShortcutsCollection editingInstance):base() { // Load all shortcuts Array a=eShortcut.GetValues(typeof(eShortcut)); for(int i=1;i