using System.Collections; namespace DevComponents.DotNetBar { using System; using System.Drawing; /// /// Interface for designer-item integration. /// public interface IBarItemDesigner { void StartExternalDrag(BaseItem item); } /// /// Interface implemented by target Bar interested in access to designer. /// public interface IBarDesignerServices { /// /// Gets or sets the BarBaseControlDesigner instance. /// IBarItemDesigner Designer { get;set;} } /// /// Provides design-time support for DotNetBar items. /// public interface IDesignTimeProvider { InsertPosition GetInsertPosition(Point pScreen, BaseItem DragItem); void DrawReversibleMarker(int iPos, bool Before); void InsertItemAt(BaseItem objItem, int iPos, bool Before); } public class InsertPosition { public int Position; public bool Before; public IDesignTimeProvider TargetProvider; public InsertPosition() { Position=-1; Before=false; TargetProvider=null; } public InsertPosition(int iPosition, bool bBefore, IDesignTimeProvider target) { this.Position=iPosition; this.Before=bBefore; this.TargetProvider=target; } public override string ToString() { if (TargetProvider == null) return string.Format("TargetProvider={0}, Position={1}, Before={2}", "null", Position, Before); else return string.Format("TargetProvider={0}, Position={1}, Before={2}", TargetProvider, Position, Before); } } /// /// Provides support for personalized menu items. /// public interface IPersonalizedMenuItem { eMenuVisibility MenuVisibility {get;set;} bool RecentlyUsed {get;set;} } public interface IOwnerItemEvents { void InvokeItemAdded(BaseItem item,EventArgs e); void InvokeItemRemoved(BaseItem item, BaseItem parent, int itemIndex); void InvokeMouseEnter(BaseItem item,EventArgs e); void InvokeMouseHover(BaseItem item,EventArgs e); void InvokeMouseLeave(BaseItem item,EventArgs e); void InvokeMouseDown(BaseItem item, System.Windows.Forms.MouseEventArgs e); void InvokeMouseUp(BaseItem item, System.Windows.Forms.MouseEventArgs e); void InvokeMouseMove(BaseItem item, System.Windows.Forms.MouseEventArgs e); void InvokeItemClick(BaseItem objItem); void InvokeItemDoubleClick(BaseItem objItem, System.Windows.Forms.MouseEventArgs e); void InvokeGotFocus(BaseItem item,EventArgs e); void InvokeLostFocus(BaseItem item,EventArgs e); void InvokeExpandedChange(BaseItem item,EventArgs e); void InvokeItemTextChanged(BaseItem item, EventArgs e); // void InvokeItemDisplayedChanged(BaseItem item, EventArgs e); void InvokeContainerControlDeserialize(BaseItem item,ControlContainerSerializationEventArgs e); void InvokeContainerControlSerialize(BaseItem item,ControlContainerSerializationEventArgs e); void InvokeContainerLoadControl(BaseItem item,EventArgs e); void InvokeOptionGroupChanging(BaseItem item, OptionGroupChangingEventArgs e); void InvokeToolTipShowing(object item, EventArgs e); void InvokeCheckedChanged(ButtonItem item, EventArgs e); } public interface IOwnerMenuSupport { bool PersonalizedAllVisible {get;set;} bool ShowFullMenusOnHover {get;set;} bool AlwaysShowFullMenus {get;set;} void RegisterPopup(PopupItem objPopup); void UnregisterPopup(PopupItem objPopup); bool RelayMouseHover(); // Events void InvokePopupClose(PopupItem item,EventArgs e); void InvokePopupContainerLoad(PopupItem item,EventArgs e); void InvokePopupContainerUnload(PopupItem item,EventArgs e); void InvokePopupOpen(PopupItem item,PopupOpenEventArgs e); void InvokePopupShowing(PopupItem item,EventArgs e); bool ShowPopupShadow {get;} eMenuDropShadow MenuDropShadow{get;set;} ePopupAnimation PopupAnimation{get;set;} bool AlphaBlendShadow{get;set;} /// /// Closes all popups managed by the owner control. /// void ClosePopups(); } public interface IOwnerBarSupport { void InvokeDockTabChange(Bar bar,DockTabChangeEventArgs e); void InvokeBarDock(Bar bar,EventArgs e); void InvokeBarUndock(Bar bar,EventArgs e); void InvokeAutoHideChanged(Bar bar,EventArgs e); void InvokeBarClosing(Bar bar,BarClosingEventArgs e); void InvokeAutoHideDisplay(Bar bar,AutoHideDisplayEventArgs e); void InvokeBarTearOff(Bar bar,EventArgs e); void InvokeBeforeDockTabDisplay(BaseItem item, EventArgs e); DockSiteInfo GetDockInfo(IDockInfo pDock, int x, int y); void DockComplete(); void BarContextMenu(System.Windows.Forms.Control bar, System.Windows.Forms.MouseEventArgs e); System.Collections.ArrayList WereVisible{get;} void AddShortcutsFromBar(Bar bar); void RemoveShortcutsFromBar(Bar bar); // Dock Site Support DockSite LeftDockSite{get;set;} DockSite RightDockSite{get;set;} DockSite TopDockSite{get;set;} DockSite BottomDockSite{get;set;} DockSite FillDockSite{get;set;} DockSite ToolbarLeftDockSite { get;set;} DockSite ToolbarRightDockSite { get;set;} DockSite ToolbarTopDockSite { get;set;} DockSite ToolbarBottomDockSite { get;set;} bool ApplyDocumentBarStyle{get;set;} } public interface IOwnerAutoHideSupport { // Auto-hide support AutoHidePanel LeftAutoHidePanel {get;set;} AutoHidePanel RightAutoHidePanel {get;set;} AutoHidePanel TopAutoHidePanel {get;set;} AutoHidePanel BottomAutoHidePanel {get;set;} bool HasLeftAutoHidePanel {get;} bool HasRightAutoHidePanel {get;} bool HasTopAutoHidePanel {get;} bool HasBottomAutoHidePanel {get;} } public interface IOwner { System.Windows.Forms.Form ParentForm {get;set;} System.Collections.ArrayList GetItems(string ItemName); System.Collections.ArrayList GetItems(string ItemName, Type itemType); System.Collections.ArrayList GetItems(string ItemName, Type itemType, bool useGlobalName); BaseItem GetItem(string ItemName); void SetExpandedItem(BaseItem objItem); BaseItem GetExpandedItem(); void SetFocusItem(BaseItem objFocusItem); BaseItem GetFocusItem(); void DesignTimeContextMenu(BaseItem objItem); void RemoveShortcutsFromItem(BaseItem objItem); void AddShortcutsFromItem(BaseItem objItem); System.Windows.Forms.ImageList Images {get;set;} System.Windows.Forms.ImageList ImagesMedium {get;set;} System.Windows.Forms.ImageList ImagesLarge {get;set;} // Drag support void StartItemDrag(BaseItem objItem); BaseItem DragItem{get;} bool DragInProgress{get;} bool ShowToolTips{get;set;} bool ShowShortcutKeysInToolTips{get;set;} bool AlwaysDisplayKeyAccelerators{get;set;} System.Windows.Forms.Form ActiveMdiChild{get;} System.Windows.Forms.MdiClient GetMdiClient(System.Windows.Forms.Form MdiForm); void Customize(); void InvokeResetDefinition(BaseItem item,EventArgs e); bool ShowResetButton{get;set;} void InvokeDefinitionLoaded(object sender,EventArgs e); void InvokeUserCustomize(object sender,EventArgs e); void InvokeEndUserCustomize(object sender, EndUserCustomizeEventArgs e); void OnApplicationActivate(); void OnApplicationDeactivate(); void OnParentPositionChanging(); bool DesignMode {get;} bool DisabledImagesGrayScale{get;set;} } /// /// Provides support for custom localization. /// public interface IOwnerLocalize { void InvokeLocalizeString(LocalizeEventArgs e); } internal interface IThemeCache { DevComponents.DotNetBar.ThemeWindow ThemeWindow{get;} DevComponents.DotNetBar.ThemeRebar ThemeRebar{get;} DevComponents.DotNetBar.ThemeToolbar ThemeToolbar{get;} DevComponents.DotNetBar.ThemeHeader ThemeHeader{get;} DevComponents.DotNetBar.ThemeScrollBar ThemeScrollBar{get;} DevComponents.DotNetBar.ThemeExplorerBar ThemeExplorerBar{get;} DevComponents.DotNetBar.ThemeProgress ThemeProgress{get;} DevComponents.DotNetBar.ThemeButton ThemeButton { get;} } public interface IBarImageSize { eBarImageSize ImageSize {get;set;} } /// /// Describes container support for setting the word-wrap behavior of it's sub-items. /// public interface IContainerWordWrap { /// /// Gets or sets whether sub items text will be word wrapped if it cannot fit the space allocated. /// bool WordWrapSubItems{get;set;} } /// /// Desribes interface that provides custom serialization support for items. /// public interface ICustomSerialization { /// /// Occurs after an item has been serialized to XmlElement and provides you with opportunity to add any custom data /// to serialized XML. This allows you to serialize any data with the item and load it back up in DeserializeItem event. /// /// /// To serialize custom data to XML definition control creates handle this event and use CustomXmlElement /// property on SerializeItemEventArgs to add new nodes or set attributes with custom data you want saved. /// event SerializeItemEventHandler SerializeItem; /// /// Occurs after an item has been de-serialized (load) from XmlElement and provides you with opportunity to load any custom data /// you have serialized during SerializeItem event. /// /// /// To de-serialize custom data from XML definition handle this event and use CustomXmlElement /// property on SerializeItemEventArgs to retrive any data you saved in SerializeItem event. /// event SerializeItemEventHandler DeserializeItem; /// /// Invokes SerializeItem event. /// /// Provides data for the event. void InvokeSerializeItem(SerializeItemEventArgs e); /// /// Invokes DeserializeItem event. /// /// Provides data for the event. void InvokeDeserializeItem(SerializeItemEventArgs e); /// /// Gets whether any handlers have been defined for SerializeItem event. If no handles have been defined to optimize performance SerializeItem event will not be attempted to fire. /// bool HasSerializeItemHandlers { get;} /// /// Gets whether any handlers have been defined for DeserializeItem event. If no handles have been defined to optimize performance DeserializeItem event will not be attempted to fire. /// bool HasDeserializeItemHandlers { get;} } /// /// Defines interface that should be implemented by controls that support per control renderers. /// public interface IRenderingSupport { /// /// Gets the renderer control will be rendered with. This can be either custom renderer set on the control or the /// Rendering.GlobalManager specified renderer. /// /// Rendering.BaseRenderer GetRenderer(); /// /// Gets or sets the redering mode used by control. Default value is eRenderMode.Global which means that static GlobalManager.Renderer is used. If set to Custom then Renderer property must /// also be set to the custom renderer that will be used. /// eRenderMode RenderMode { get; set; } /// /// Gets or sets the custom renderer used by the items on this control. RenderMode property must also be set to eRenderMode.Custom in order renderer /// specified here to be used. /// DevComponents.DotNetBar.Rendering.BaseRenderer Renderer { get; set;} } /// /// Defines interface for internal accessibility support for DotNetBar control. /// public interface IAccessibilitySupport { /// /// Gets or sets the item default accesibility action will be performed on. /// BaseItem DoDefaultActionItem { get; set;} } /// /// Provides interface for controls that support ribbon customization. /// public interface IRibbonCustomize { /// /// Called when item contained by the container is right-clicked. /// /// Instance of the item that was right-clicked. void ItemRightClick(BaseItem item); } /// /// Defines notification interface for scrollable item controls. /// public interface IScrollableItemControl { /// /// Indicates that item has been selected via keyboard. /// /// Reference to item being selected void KeyboardItemSelected(BaseItem item); } }