674 lines
19 KiB
C#
674 lines
19 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.ComponentModel;
|
|
using System.ComponentModel.Design;
|
|
using System.Drawing;
|
|
using System.Reflection;
|
|
using System.Windows.Forms;
|
|
|
|
namespace DevComponents.DotNetBar.Design
|
|
{
|
|
/// <summary>
|
|
/// Represents Windows Forms designer for BubbleBar control.
|
|
/// </summary>
|
|
public class BubbleBarDesigner:System.Windows.Forms.Design.ControlDesigner
|
|
{
|
|
#region Private Variables
|
|
private bool m_IgnoreMouseUp=false;
|
|
private Point m_MouseDownPosition=Point.Empty;
|
|
private bool m_Capture=false;
|
|
|
|
#endregion
|
|
|
|
#region Internal Implementation
|
|
public BubbleBarDesigner()
|
|
{
|
|
}
|
|
|
|
public override void Initialize(IComponent component)
|
|
{
|
|
base.Initialize(component);
|
|
if(!component.Site.DesignMode)
|
|
return;
|
|
|
|
ISelectionService ss =(ISelectionService)GetService(typeof(ISelectionService));
|
|
if(ss!=null)
|
|
ss.SelectionChanged+=new EventHandler(OnSelectionChanged);
|
|
|
|
// If our component is removed we need to clean-up
|
|
IComponentChangeService cc=(IComponentChangeService)GetService(typeof(IComponentChangeService));
|
|
if(cc!=null)
|
|
cc.ComponentRemoving+=new ComponentEventHandler(this.OnComponentRemoving);
|
|
|
|
#if !TRIAL
|
|
IDesignerHost dh = this.GetService(typeof(IDesignerHost)) as IDesignerHost;
|
|
if (dh != null)
|
|
dh.LoadComplete += new EventHandler(dh_LoadComplete);
|
|
#endif
|
|
}
|
|
|
|
protected override void Dispose(bool disposing)
|
|
{
|
|
ISelectionService ss =(ISelectionService)GetService(typeof(ISelectionService));
|
|
if(ss!=null)
|
|
ss.SelectionChanged-=new EventHandler(OnSelectionChanged);
|
|
|
|
// If our component is removed we need to clean-up
|
|
IComponentChangeService cc=(IComponentChangeService)GetService(typeof(IComponentChangeService));
|
|
if(cc!=null)
|
|
cc.ComponentRemoving-=new ComponentEventHandler(this.OnComponentRemoving);
|
|
|
|
base.Dispose(disposing);
|
|
}
|
|
|
|
public override DesignerVerbCollection Verbs
|
|
{
|
|
get
|
|
{
|
|
DesignerVerb[] verbs = new DesignerVerb[]
|
|
{
|
|
new DesignerVerb("Create Tab", new EventHandler(CreateTab)),
|
|
new DesignerVerb("Create Button", new EventHandler(CreateButton))};
|
|
return new DesignerVerbCollection(verbs);
|
|
}
|
|
}
|
|
|
|
#if FRAMEWORK20
|
|
public override void InitializeNewComponent(IDictionary defaultValues)
|
|
{
|
|
base.InitializeNewComponent(defaultValues);
|
|
SetDesignTimeDefaults();
|
|
}
|
|
#else
|
|
public override void OnSetComponentDefaults()
|
|
{
|
|
base.OnSetComponentDefaults();
|
|
SetDesignTimeDefaults();
|
|
}
|
|
#endif
|
|
|
|
private void SetDesignTimeDefaults()
|
|
{
|
|
BubbleBar bar = this.Component as BubbleBar;
|
|
if (bar == null)
|
|
return;
|
|
// Setup default back style
|
|
bar.ButtonBackAreaStyle.SetColorScheme(new ColorScheme(eDotNetBarStyle.Office2003));
|
|
bar.ButtonBackAreaStyle.BackColor = Color.FromArgb(66, Color.DimGray);
|
|
bar.ButtonBackAreaStyle.BorderColor = Color.FromArgb(180, Color.WhiteSmoke);
|
|
bar.ButtonBackAreaStyle.BorderTop = eStyleBorderType.Solid;
|
|
bar.ButtonBackAreaStyle.BorderTopWidth = 1;
|
|
bar.ButtonBackAreaStyle.BorderBottom = eStyleBorderType.Solid;
|
|
bar.ButtonBackAreaStyle.BorderBottomWidth = 1;
|
|
bar.ButtonBackAreaStyle.BorderLeft = eStyleBorderType.Solid;
|
|
bar.ButtonBackAreaStyle.BorderLeftWidth = 1;
|
|
bar.ButtonBackAreaStyle.BorderRight = eStyleBorderType.Solid;
|
|
bar.ButtonBackAreaStyle.BorderRightWidth = 1;
|
|
bar.ButtonBackAreaStyle.PaddingBottom = 3;
|
|
bar.ButtonBackAreaStyle.PaddingTop = 3;
|
|
bar.ButtonBackAreaStyle.PaddingLeft = 3;
|
|
bar.ButtonBackAreaStyle.PaddingRight = 3;
|
|
bar.SelectedTabColors.BorderColor = Color.Black;
|
|
bar.MouseOverTabColors.BorderColor = SystemColors.Highlight;
|
|
|
|
#if !TRIAL
|
|
string key = GetLicenseKey();
|
|
bar.LicenseKey = key;
|
|
#endif
|
|
}
|
|
|
|
private void OnSelectionChanged(object sender, EventArgs e)
|
|
{
|
|
ISelectionService ss =(ISelectionService)GetService(typeof(ISelectionService));
|
|
if(ss==null)
|
|
return;
|
|
|
|
bool refresh=ResetFocus();
|
|
if(ss.PrimarySelection is BubbleBarTab)
|
|
{
|
|
if(((BubbleBarTab)ss.PrimarySelection).Parent==this.Control)
|
|
{
|
|
((BubbleBarTab)ss.PrimarySelection).Focus=true;
|
|
refresh=true;
|
|
}
|
|
}
|
|
else if(ss.PrimarySelection is BubbleButton)
|
|
{
|
|
if(((BubbleButton)ss.PrimarySelection).Parent.Parent==this.Control)
|
|
{
|
|
((BubbleButton)ss.PrimarySelection).Focus=true;
|
|
refresh=true;
|
|
}
|
|
}
|
|
|
|
if(refresh)
|
|
this.Control.Refresh();
|
|
}
|
|
|
|
private bool ResetFocus()
|
|
{
|
|
bool refresh=false;
|
|
BubbleBar bar=this.Control as BubbleBar;
|
|
foreach(BubbleBarTab tab in bar.Tabs)
|
|
{
|
|
if(tab.Focus)
|
|
{
|
|
tab.Focus=false;
|
|
refresh=true;
|
|
}
|
|
foreach(BubbleButton button in tab.Buttons)
|
|
{
|
|
if(button.Focus)
|
|
{
|
|
button.Focus=false;
|
|
refresh=true;
|
|
}
|
|
}
|
|
}
|
|
return refresh;
|
|
}
|
|
|
|
private void OnComponentRemoving(object sender,ComponentEventArgs e)
|
|
{
|
|
if(e.Component==this.Component)
|
|
ThisComponentRemoving(sender,e);
|
|
else if(e.Component is BubbleBarTab)
|
|
{
|
|
BubbleBarTab tab=e.Component as BubbleBarTab;
|
|
if(tab.Parent==this.Control)
|
|
{
|
|
IDesignerHost dh=(IDesignerHost)GetService(typeof(IDesignerHost));
|
|
BubbleButton[] buttons = new BubbleButton[tab.Buttons.Count];
|
|
tab.Buttons.CopyTo(buttons, 0);
|
|
foreach(BubbleButton button in buttons)
|
|
dh.DestroyComponent(button);
|
|
BubbleBar bar=this.Component as BubbleBar;
|
|
if(bar.Tabs.Contains(tab))
|
|
bar.Tabs.Remove(tab);
|
|
dh.DestroyComponent(tab);
|
|
bar.RecalcLayout();
|
|
bar.Refresh();
|
|
}
|
|
}
|
|
else if(e.Component is BubbleButton)
|
|
{
|
|
BubbleButton button=e.Component as BubbleButton;
|
|
if(button.GetBubbleBar()==this.Control)
|
|
{
|
|
if (button.Parent.Buttons.Contains(button))
|
|
button.Parent.Buttons.Remove(button);
|
|
IDesignerHost dh = (IDesignerHost)GetService(typeof(IDesignerHost));
|
|
dh.DestroyComponent(button);
|
|
BubbleBar bar=this.Component as BubbleBar;
|
|
bar.RecalcLayout();
|
|
bar.Refresh();
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Removes all tabs and buttons.
|
|
/// </summary>
|
|
protected virtual void ThisComponentRemoving(object sender, ComponentEventArgs e)
|
|
{
|
|
//m_InternalRemoving=true;
|
|
// try
|
|
// {
|
|
// Unhook events
|
|
IComponentChangeService cc=(IComponentChangeService)GetService(typeof(IComponentChangeService));
|
|
if(cc!=null)
|
|
cc.ComponentRemoving-=new ComponentEventHandler(this.OnComponentRemoving);
|
|
|
|
ISelectionService ss =(ISelectionService)GetService(typeof(ISelectionService));
|
|
if(ss!=null)
|
|
ss.SelectionChanged-=new EventHandler(OnSelectionChanged);
|
|
|
|
IDesignerHost dh=(IDesignerHost)GetService(typeof(IDesignerHost));
|
|
BubbleBar bar=this.Component as BubbleBar;
|
|
if(dh==null)
|
|
return;
|
|
|
|
foreach(BubbleBarTab tab in bar.Tabs)
|
|
{
|
|
foreach(BubbleButton button in tab.Buttons)
|
|
dh.DestroyComponent(button);
|
|
dh.DestroyComponent(tab);
|
|
}
|
|
//}
|
|
// finally
|
|
// {
|
|
// m_InternalRemoving=false;
|
|
// }
|
|
}
|
|
|
|
private void CreateButton(object sender,EventArgs e)
|
|
{
|
|
BubbleBar bar=this.Control as BubbleBar;
|
|
if(bar==null)
|
|
return;
|
|
|
|
if(bar.SelectedTab==null)
|
|
{
|
|
BubbleBarTab tab=CreateTab();
|
|
IComponentChangeService change=this.GetService(typeof(IComponentChangeService)) as IComponentChangeService;
|
|
if(change!=null)
|
|
change.OnComponentChanging(this.Component,TypeDescriptor.GetProperties(bar).Find("SelectedTab",true));
|
|
bar.SelectedTab=tab;
|
|
if(change!=null)
|
|
change.OnComponentChanged(this.Component,TypeDescriptor.GetProperties(bar).Find("SelectedTab",true),null,null);
|
|
}
|
|
|
|
if(bar.SelectedTab==null)
|
|
return;
|
|
|
|
BubbleButton button=CreateButton(bar.SelectedTab);
|
|
|
|
if(button==null)
|
|
return;
|
|
|
|
ISelectionService ss=(ISelectionService)GetService(typeof(ISelectionService));
|
|
if(ss!=null)
|
|
{
|
|
ArrayList list=new ArrayList();
|
|
list.Add(button);
|
|
ss.SetSelectedComponents(list);
|
|
}
|
|
}
|
|
|
|
private void CreateTab(object sender,EventArgs e)
|
|
{
|
|
BubbleBar bar=this.Control as BubbleBar;
|
|
if(bar==null)
|
|
return;
|
|
|
|
BubbleBarTab tab=CreateTab();
|
|
if(tab!=null)
|
|
{
|
|
if(bar.SelectedTab!=tab)
|
|
{
|
|
IComponentChangeService change=this.GetService(typeof(IComponentChangeService)) as IComponentChangeService;
|
|
if(change!=null)
|
|
change.OnComponentChanging(this.Component,TypeDescriptor.GetProperties(bar).Find("SelectedTab",true));
|
|
bar.SelectedTab=tab;
|
|
if(change!=null)
|
|
change.OnComponentChanged(this.Component,TypeDescriptor.GetProperties(bar).Find("SelectedTab",true),null,null);
|
|
}
|
|
|
|
ISelectionService ss=(ISelectionService)GetService(typeof(ISelectionService));
|
|
if(ss!=null)
|
|
{
|
|
ArrayList list=new ArrayList();
|
|
list.Add(tab);
|
|
ss.SetSelectedComponents(list);
|
|
}
|
|
}
|
|
}
|
|
|
|
private BubbleBarTab CreateTab()
|
|
{
|
|
BubbleBar bar=this.Control as BubbleBar;
|
|
if(bar==null)
|
|
return null;
|
|
|
|
IDesignerHost dh=(IDesignerHost)GetService(typeof(IDesignerHost));
|
|
if(dh==null)
|
|
return null;
|
|
|
|
IComponentChangeService change=this.GetService(typeof(IComponentChangeService)) as IComponentChangeService;
|
|
if(change!=null)
|
|
change.OnComponentChanging(this.Component,TypeDescriptor.GetProperties(bar).Find("Tabs",true));
|
|
|
|
BubbleBarTab tab=dh.CreateComponent(typeof(BubbleBarTab)) as BubbleBarTab;
|
|
if(tab==null)
|
|
return null;
|
|
|
|
tab.Text=tab.Name;
|
|
eTabItemColor color=eTabItemColor.Blue;
|
|
if(bar.Tabs.Count>0)
|
|
{
|
|
int tt=bar.Tabs.Count+1;
|
|
Type t=typeof(eTabItemColor);
|
|
FieldInfo[] fi=t.GetFields(BindingFlags.Public | BindingFlags.Static);
|
|
int count=fi.Length;
|
|
while(tt>count)
|
|
tt-=count;
|
|
if(tt==0) tt++;
|
|
color=(eTabItemColor)Enum.Parse(typeof(eTabItemColor),fi[tt].Name);
|
|
}
|
|
tab.PredefinedColor=color;
|
|
|
|
bar.Tabs.Add(tab);
|
|
|
|
if(change!=null)
|
|
change.OnComponentChanged(this.Component,TypeDescriptor.GetProperties(bar).Find("Tabs",true),null,null);
|
|
|
|
return tab;
|
|
}
|
|
|
|
private BubbleButton CreateButton(BubbleBarTab tab)
|
|
{
|
|
BubbleBar bar=this.Control as BubbleBar;
|
|
if(bar==null)
|
|
return null;
|
|
|
|
IDesignerHost dh=(IDesignerHost)GetService(typeof(IDesignerHost));
|
|
if(dh==null)
|
|
return null;
|
|
|
|
IComponentChangeService change=this.GetService(typeof(IComponentChangeService)) as IComponentChangeService;
|
|
if(change!=null)
|
|
change.OnComponentChanging(this.Component,TypeDescriptor.GetProperties(tab).Find("Buttons",true));
|
|
|
|
BubbleButton button=dh.CreateComponent(typeof(BubbleButton)) as BubbleButton;
|
|
if(button==null)
|
|
return null;
|
|
button.Image=Helpers.LoadBitmap("SystemImages.Note24.png");
|
|
button.ImageLarge = Helpers.LoadBitmap("SystemImages.Note64.png");
|
|
tab.Buttons.Add(button);
|
|
|
|
if(change!=null)
|
|
change.OnComponentChanged(this.Component,TypeDescriptor.GetProperties(tab).Find("Buttons",true),null,null);
|
|
|
|
return button;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Returns all components associated with this control
|
|
/// </summary>
|
|
public override System.Collections.ICollection AssociatedComponents
|
|
{
|
|
get
|
|
{
|
|
ArrayList c=new ArrayList(base.AssociatedComponents);
|
|
BubbleBar bar=this.Control as BubbleBar;
|
|
if(bar!=null)
|
|
{
|
|
foreach(BubbleBarTab tab in bar.Tabs)
|
|
{
|
|
c.Add(tab);
|
|
GetTabComponents(tab,c);
|
|
}
|
|
}
|
|
return c;
|
|
}
|
|
}
|
|
|
|
private void GetTabComponents(BubbleBarTab tab, ArrayList c)
|
|
{
|
|
foreach(BubbleButton b in tab.Buttons)
|
|
c.Add(b);
|
|
}
|
|
|
|
protected override void OnSetCursor()
|
|
{
|
|
BubbleBar bar=this.Control as BubbleBar;
|
|
Point pos=bar.PointToClient(System.Windows.Forms.Control.MousePosition);
|
|
BubbleButton button=bar.GetButtonAt(pos);
|
|
if(button!=null)
|
|
{
|
|
Cursor.Current=Cursors.Default;
|
|
return;
|
|
}
|
|
BubbleBarTab tab=bar.GetTabAt(pos);
|
|
if(tab!=null)
|
|
{
|
|
Cursor.Current=Cursors.Default;
|
|
return;
|
|
}
|
|
base.OnSetCursor();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Selection support for items on container.
|
|
/// </summary>
|
|
protected override void WndProc(ref Message m)
|
|
{
|
|
switch(m.Msg)
|
|
{
|
|
case WinApi.WM_LBUTTONDOWN:
|
|
case WinApi.WM_RBUTTONDOWN:
|
|
{
|
|
if(OnMouseDown(ref m))
|
|
return;
|
|
break;
|
|
}
|
|
case WinApi.WM_RBUTTONUP:
|
|
case WinApi.WM_LBUTTONUP:
|
|
{
|
|
if(OnMouseUp(ref m))
|
|
return;
|
|
break;
|
|
}
|
|
case WinApi.WM_MOUSEMOVE:
|
|
{
|
|
if(OnMouseMove(ref m))
|
|
return;
|
|
break;
|
|
}
|
|
case WinApi.WM_LBUTTONDBLCLK:
|
|
{
|
|
if(OnMouseDoubleClick(m))
|
|
return;
|
|
break;
|
|
}
|
|
}
|
|
|
|
base.WndProc(ref m);
|
|
}
|
|
|
|
private bool OnMouseDoubleClick(Message m)
|
|
{
|
|
bool processed=false;
|
|
|
|
ISelectionService selection = (ISelectionService) this.GetService(typeof(ISelectionService));
|
|
if(selection!=null && selection.PrimarySelection is BubbleButton && ((BubbleButton)selection.PrimarySelection).GetBubbleBar()==this.Control)
|
|
{
|
|
IDesignerHost host=(IDesignerHost) this.GetService(typeof(IDesignerHost));
|
|
if(host!=null)
|
|
{
|
|
IDesigner designer=host.GetDesigner(selection.PrimarySelection as IComponent);
|
|
if(designer!=null)
|
|
{
|
|
designer.DoDefaultAction();
|
|
processed=true;
|
|
}
|
|
}
|
|
}
|
|
|
|
return processed;
|
|
}
|
|
|
|
protected virtual bool OnMouseDown(ref Message m)
|
|
{
|
|
BubbleBar bar=this.Control as BubbleBar;
|
|
|
|
if(bar==null)
|
|
return false;
|
|
|
|
Point pos=bar.PointToClient(System.Windows.Forms.Control.MousePosition);
|
|
m_MouseDownPosition=pos;
|
|
|
|
BubbleButton button=bar.GetButtonAt(pos);
|
|
if(button!=null)
|
|
{
|
|
ISelectionService selection = (ISelectionService) this.GetService(typeof(ISelectionService));
|
|
if(selection!=null)
|
|
{
|
|
ArrayList arr=new ArrayList(1);
|
|
arr.Add(button);
|
|
#if FRAMEWORK20
|
|
selection.SetSelectedComponents(arr, SelectionTypes.Primary);
|
|
#else
|
|
selection.SetSelectedComponents(arr,SelectionTypes.MouseDown);
|
|
#endif
|
|
m_IgnoreMouseUp =true;
|
|
|
|
if(m.Msg==WinApi.WM_RBUTTONDOWN)
|
|
{
|
|
this.OnContextMenu(System.Windows.Forms.Control.MousePosition.X,System.Windows.Forms.Control.MousePosition.Y);
|
|
}
|
|
|
|
return true;
|
|
}
|
|
}
|
|
|
|
BubbleBarTab tab=bar.GetTabAt(pos);
|
|
if(tab!=null)
|
|
{
|
|
ISelectionService selection = (ISelectionService) this.GetService(typeof(ISelectionService));
|
|
if(selection!=null && selection.PrimarySelection!=tab)
|
|
{
|
|
ArrayList arr=new ArrayList(1);
|
|
arr.Add(tab);
|
|
#if FRAMEWORK20
|
|
selection.SetSelectedComponents(arr, SelectionTypes.Primary);
|
|
#else
|
|
selection.SetSelectedComponents(arr,SelectionTypes.MouseDown);
|
|
#endif
|
|
|
|
if (bar.SelectedTab!=tab)
|
|
{
|
|
IComponentChangeService change=this.GetService(typeof(IComponentChangeService)) as IComponentChangeService;
|
|
if(change!=null)
|
|
change.OnComponentChanging(this.Component,TypeDescriptor.GetProperties(bar).Find("SelectedTab",true));
|
|
|
|
bar.SelectedTab=tab;
|
|
|
|
if(change!=null)
|
|
change.OnComponentChanged(this.Component,TypeDescriptor.GetProperties(bar).Find("SelectedTab",true),null,null);
|
|
}
|
|
m_IgnoreMouseUp=true;
|
|
if(m.Msg!=WinApi.WM_RBUTTONDOWN)
|
|
return true;
|
|
}
|
|
|
|
if(m.Msg==WinApi.WM_RBUTTONDOWN)
|
|
{
|
|
this.OnContextMenu(System.Windows.Forms.Control.MousePosition.X,System.Windows.Forms.Control.MousePosition.Y);
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
protected virtual bool OnMouseMove(ref Message m)
|
|
{
|
|
BubbleBar bar=this.Control as BubbleBar;
|
|
Point pos=bar.PointToClient(System.Windows.Forms.Control.MousePosition);
|
|
|
|
if(Control.MouseButtons==MouseButtons.Left)
|
|
{
|
|
if(bar.DragInProgress)
|
|
{
|
|
bar.DragMouseMove(pos);
|
|
return true;
|
|
}
|
|
else if(!m_MouseDownPosition.IsEmpty && Math.Abs(m_MouseDownPosition.X-pos.X)>=2 || Math.Abs(m_MouseDownPosition.Y-pos.Y)>=2)
|
|
{
|
|
BubbleBarTab tabDrag=bar.GetTabAt(pos);
|
|
if(tabDrag!=null)
|
|
{
|
|
bar.StartDrag(tabDrag);
|
|
System.Windows.Forms.Control c=System.Windows.Forms.Control.FromHandle(m.HWnd);
|
|
if(c!=null)
|
|
{
|
|
m_Capture=true;
|
|
c.Capture=true;
|
|
}
|
|
return true;
|
|
}
|
|
BubbleButton buttonDrag=bar.GetButtonAt(pos);
|
|
if(buttonDrag!=null)
|
|
{
|
|
bar.StartDrag(buttonDrag);
|
|
System.Windows.Forms.Control c=System.Windows.Forms.Control.FromHandle(m.HWnd);
|
|
if(c!=null)
|
|
{
|
|
m_Capture=true;
|
|
c.Capture=true;
|
|
}
|
|
return true;
|
|
}
|
|
m_MouseDownPosition=Point.Empty;
|
|
}
|
|
}
|
|
|
|
//BubbleButton button=bar.GetButtonAt(pos);
|
|
BubbleBarTab tab=bar.GetTabAt(pos);
|
|
if(tab!=null)
|
|
bar.SetMouseOverTab(tab);
|
|
else
|
|
bar.SetMouseOverTab(null);
|
|
|
|
return false;
|
|
}
|
|
|
|
private bool OnMouseUp(ref Message m)
|
|
{
|
|
if(m_Capture)
|
|
{
|
|
System.Windows.Forms.Control c=System.Windows.Forms.Control.FromHandle(m.HWnd);
|
|
if(c!=null)
|
|
c.Capture=false;
|
|
m_Capture=false;
|
|
}
|
|
|
|
BubbleBar bar=this.Control as BubbleBar;
|
|
if(bar!=null && bar.DragInProgress)
|
|
{
|
|
Point pos=bar.PointToClient(System.Windows.Forms.Control.MousePosition);
|
|
bar.DragMouseUp(pos);
|
|
|
|
BubbleBarTab tab=bar.SelectedTab;
|
|
if(tab!=null)
|
|
{
|
|
IComponentChangeService change=this.GetService(typeof(IComponentChangeService)) as IComponentChangeService;
|
|
if(change!=null)
|
|
change.OnComponentChanging(this.Component,TypeDescriptor.GetProperties(tab).Find("Buttons",true));
|
|
if(change!=null)
|
|
change.OnComponentChanged(this.Component,TypeDescriptor.GetProperties(tab).Find("Buttons",true),null,null);
|
|
}
|
|
}
|
|
|
|
if(m_IgnoreMouseUp)
|
|
{
|
|
m_IgnoreMouseUp=false;
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
#endregion
|
|
|
|
#region Licensing Stuff
|
|
#if !TRIAL
|
|
private string GetLicenseKey()
|
|
{
|
|
string key = "";
|
|
Microsoft.Win32.RegistryKey regkey = Microsoft.Win32.Registry.LocalMachine;
|
|
regkey = regkey.OpenSubKey("Software\\DevComponents\\Licenses", false);
|
|
if (regkey != null)
|
|
{
|
|
object keyValue = regkey.GetValue("DevComponents.DotNetBar.DotNetBarManager2");
|
|
if (keyValue != null)
|
|
key = keyValue.ToString();
|
|
}
|
|
return key;
|
|
}
|
|
private void dh_LoadComplete(object sender, EventArgs e)
|
|
{
|
|
IDesignerHost dh = this.GetService(typeof(IDesignerHost)) as IDesignerHost;
|
|
if (dh != null)
|
|
dh.LoadComplete -= new EventHandler(dh_LoadComplete);
|
|
|
|
string key = GetLicenseKey();
|
|
BubbleBar bar = this.Control as BubbleBar;
|
|
if (key != "" && bar != null && bar.LicenseKey == "" && bar.LicenseKey != key)
|
|
TypeDescriptor.GetProperties(bar)["LicenseKey"].SetValue(bar, key);
|
|
}
|
|
#endif
|
|
#endregion
|
|
}
|
|
}
|