using System.Windows.Forms; using System; using DevComponents.DotNetBar.Rendering; using DevComponents.DotNetBar.Metro.Rendering; using DevComponents.DotNetBar.Controls; namespace DevComponents.DotNetBar { /// /// Summary description for PainterFactory. /// internal class PainterFactory { private static Office2003ButtonItemPainter m_Office2003Painter=new Office2003ButtonItemPainter(); private static Office2007ButtonItemPainter m_Office2007Painter = new Office2007ButtonItemPainter(); private static MetroButtonItemPainter m_MetroButtonPainter = new MetroButtonItemPainter(); private static Office2003RibbonTabItemPainter m_RibbonTabItemOffice2003Painter=new Office2003RibbonTabItemPainter(); private static Office2007ItemContainerPainter m_Office2007ItemContainerPainter = new Office2007ItemContainerPainter(); private static Office2007BarBackgroundPainter m_Office2007BarBackgroundPainter = new Office2007BarBackgroundPainter(); private static Office2007KeyTipsPainter m_Office2007KeyTipsPainter = new Office2007KeyTipsPainter(); private static Office2007DialogLauncherPainter m_Office2007RibbonBarPainter = new Office2007DialogLauncherPainter(); private static Office2007RibbonControlPainter m_Office2007RibbonControlPainter = new Office2007RibbonControlPainter(); private static Office2007RibbonTabItemPainter m_Office2007RibbonTabItemPainter = new Office2007RibbonTabItemPainter(); //private static Office2007RibbonTabGroupPainter m_Office2007RibbonTabGroupPainter = new Office2007RibbonTabGroupPainter(); private static Rendering.Office2007ColorItemPainter m_Office2007ColorItemPainter = new Rendering.Office2007ColorItemPainter(); private static Office2007SystemCaptionItemPainter m_Office2007SystemCaptionItemPainter = null; private static Office2007MdiSystemItemPainter m_Office2007MdiSystemItemPainter = new Office2007MdiSystemItemPainter(); private static Office2007FormCaptionPainter m_Office2007FormCaptionPainter = new Office2007FormCaptionPainter(); private static Rendering.Office2007RibbonOverflowPainter m_Office2007RibbonOverflowPainter = new DevComponents.DotNetBar.Rendering.Office2007RibbonOverflowPainter(); private static Rendering.Office2007QatOverflowPainter m_Office2007QatOverflowPainter = new DevComponents.DotNetBar.Rendering.Office2007QatOverflowPainter(); private static Rendering.Office2007QatCustomizeItemPainter m_Office2007QatCustomizePainter = new DevComponents.DotNetBar.Rendering.Office2007QatCustomizeItemPainter(); private static Rendering.Office2007CheckBoxItemPainter m_Office2007CheckBoxItemPainter = new Rendering.Office2007CheckBoxItemPainter(); private static Rendering.Office2007ProgressBarItemPainter m_Office2007ProgressBarPainter = new DevComponents.DotNetBar.Rendering.Office2007ProgressBarItemPainter(); private static Rendering.Office2007NavigationPanePainter m_Office2007NavPanePainter = new DevComponents.DotNetBar.Rendering.Office2007NavigationPanePainter(); private static Rendering.SliderPainter m_SliderPainter = new DevComponents.DotNetBar.Rendering.Office2007SliderPainter(); private static Rendering.SideBarPainter m_SideBarPainter = new DevComponents.DotNetBar.Rendering.Office2007SideBarPainter(); private static CrumbBarItemViewPainter m_CrumbBarItemViewPainter = null; private static SwitchButtonPainter m_SwitchButtonPainter = null; private static Office2010NavPaneButtonPainter _Office2010NavPaneButtonPainter = new Office2010NavPaneButtonPainter(); private static Rendering.RangeSliderPainter _RangeSliderPainter = new DevComponents.DotNetBar.Rendering.Office2010RangeSliderPainter(); public static ButtonItemPainter CreateButtonPainter(ButtonItem button) { if (button is RibbonTabItem) { return CreateRibbonTabItemPainter((RibbonTabItem)button); } if (button is TabFormItem) { return CreateTabFormItemPainter((TabFormItem)button); } else if (button is NewTabFormItem) { return CreateNewTabFormItemPainter((NewTabFormItem)button); } if (button is RibbonOverflowButtonItem) { ButtonItemPainter p = CreateRibbonOverflowButtonPainter((RibbonOverflowButtonItem)button); if (p != null) return p; } eDotNetBarStyle buttonEffectiveStyle = button.EffectiveStyle; if (buttonEffectiveStyle == eDotNetBarStyle.Office2010 && button.ContainerState == eContainerState.NavigationPane) { return _Office2010NavPaneButtonPainter; } if (buttonEffectiveStyle == eDotNetBarStyle.Office2010 && button is ApplicationButton) return Office2010ApplicationButtonPainter; else if (button is DevComponents.DotNetBar.Metro.MetroAppButton || button is ApplicationButton && StyleManager.IsMetro(buttonEffectiveStyle)) return MetroAppButtonPainter; if (BarFunctions.IsOffice2007Style(buttonEffectiveStyle)) { if (StyleManager.IsMetro(buttonEffectiveStyle)) return m_MetroButtonPainter; if (button.ContainerControl is RibbonBar) return m_Office2007Painter; return m_Office2007Painter; } return m_Office2003Painter; } private static ButtonItemPainter _Office2010ApplicationButtonPainter; public static ButtonItemPainter Office2010ApplicationButtonPainter { get { if (_Office2010ApplicationButtonPainter == null) _Office2010ApplicationButtonPainter = new Office2010AppButtonPainter(); return _Office2010ApplicationButtonPainter; } } private static ButtonItemPainter _MetroAppButtonPainter; public static ButtonItemPainter MetroAppButtonPainter { get { if (_MetroAppButtonPainter == null) _MetroAppButtonPainter = new DevComponents.DotNetBar.Metro.Rendering.MetroAppButtonPainter(); return _MetroAppButtonPainter; } } public static CrumbBarItemViewPainter GetCrumbBarItemViewPainter(ButtonItem button) { if (m_CrumbBarItemViewPainter == null) m_CrumbBarItemViewPainter = new CrumbBarItemViewPainter(); return m_CrumbBarItemViewPainter; } public static ButtonItemPainter CreateRibbonOverflowButtonPainter(RibbonOverflowButtonItem button) { if (BarFunctions.IsOffice2007Style(button.EffectiveStyle)) return m_Office2007RibbonOverflowPainter; return null; } public static ButtonItemPainter CreateRibbonTabItemPainter(RibbonTabItem tab) { if (BarFunctions.IsOffice2007Style(tab.EffectiveStyle) && !tab.IsOnMenu) { return m_Office2007RibbonTabItemPainter; } if ((tab.EffectiveStyle == eDotNetBarStyle.Office2003 || tab.EffectiveStyle == eDotNetBarStyle.VS2005) && !tab.IsOnMenu) { return m_RibbonTabItemOffice2003Painter; } return m_Office2003Painter; } private static OfficeTabFormItemPainter _TabFormItemPainter=new OfficeTabFormItemPainter(); public static ButtonItemPainter CreateTabFormItemPainter(TabFormItem tab) { return _TabFormItemPainter; } private static OfficeNewTabFormItemPainter _NewTabFormItemPainter = new OfficeNewTabFormItemPainter(); public static ButtonItemPainter CreateNewTabFormItemPainter(NewTabFormItem tab) { return _NewTabFormItemPainter; } public static ItemContainerPainter CreateItemContainerPainter(ItemContainer container) { if (BarFunctions.IsOffice2007Style(container.EffectiveStyle)) return m_Office2007ItemContainerPainter; return null; } public static BarBackgroundPainter CreateBarBackgroundPainter(Bar bar) { return m_Office2007BarBackgroundPainter; } public static KeyTipsPainter CreateKeyTipsPainter() { if (StyleManager.IsMetro(StyleManager.Style)) return MetroKeyTipsPainter; else return m_Office2007KeyTipsPainter; } private static MetroKeyTipsPainter _MetroKeyTipsPainter = null; private static MetroKeyTipsPainter MetroKeyTipsPainter { get { if (_MetroKeyTipsPainter == null) _MetroKeyTipsPainter = new MetroKeyTipsPainter(); return _MetroKeyTipsPainter; } } public static DialogLauncherPainter CreateRibbonBarPainter(RibbonBar ribbon) { if (BarFunctions.IsOffice2007Style(ribbon.EffectiveStyle)) return m_Office2007RibbonBarPainter; return null; } private static RibbonTabGroupPainter _Office2010RibbonTabGroupPainter = null; private static RibbonTabGroupPainter Office2010RibbonTabGroupPainter { get { if (_Office2010RibbonTabGroupPainter == null) _Office2010RibbonTabGroupPainter = new Office2010RibbonTabGroupPainter(); return _Office2010RibbonTabGroupPainter; } } private static RibbonTabGroupPainter _Office2007RibbonTabGroupPainter = null; private static RibbonTabGroupPainter Office2007RibbonTabGroupPainter { get { if (_Office2007RibbonTabGroupPainter == null) _Office2007RibbonTabGroupPainter = new Office2007RibbonTabGroupPainter(); return _Office2007RibbonTabGroupPainter; } } private static RibbonTabGroupPainter _MetroRibbonTabGroupPainter = null; private static RibbonTabGroupPainter MetroRibbonTabGroupPainter { get { if (_MetroRibbonTabGroupPainter == null) _MetroRibbonTabGroupPainter = new MetroRibbonTabGroupPainter(); return _MetroRibbonTabGroupPainter; } } public static RibbonTabGroupPainter CreateRibbonTabGroupPainter(eDotNetBarStyle style) { if (style == eDotNetBarStyle.Office2010) return Office2010RibbonTabGroupPainter; else if (StyleManager.IsMetro(style)) return MetroRibbonTabGroupPainter; else return Office2007RibbonTabGroupPainter; } public static Rendering.ColorItemPainter CreateColorItemPainter(ColorItem item) { return m_Office2007ColorItemPainter; } public static RibbonControlPainter CreateRibbonControlPainter(RibbonControl r) { if (BarFunctions.IsOffice2007Style(r.EffectiveStyle)) return m_Office2007RibbonControlPainter; return null; } private static SystemCaptionItemPainter _MetroCaptionItemPainter = null; private static SystemCaptionItemPainter MetroCaptionItemPainter { get { if (_MetroCaptionItemPainter == null) _MetroCaptionItemPainter = new DevComponents.DotNetBar.Metro.Rendering.MetroCaptionItemPainter(); return _MetroCaptionItemPainter; } } private static Office2010SystemCaptionItemPainter _Office2010SystemCaptionItemPainter=null; private static SystemCaptionItemPainter Office2010SystemCaptionItemPainter { get { if (_Office2010SystemCaptionItemPainter == null) _Office2010SystemCaptionItemPainter = new Office2010SystemCaptionItemPainter(); return _Office2010SystemCaptionItemPainter; } } private static Office2007SystemCaptionItemPainter _Office2007SystemCaptionItemPainter = null; private static SystemCaptionItemPainter Office2007SystemCaptionItemPainter { get { if (_Office2007SystemCaptionItemPainter == null) _Office2007SystemCaptionItemPainter = new Office2007SystemCaptionItemPainter(); return _Office2007SystemCaptionItemPainter; } } public static SystemCaptionItemPainter CreateSystemCaptionItemPainter(SystemCaptionItem item) { eDotNetBarStyle effectiveStyle = item.EffectiveStyle; if (effectiveStyle == eDotNetBarStyle.Office2010) return Office2010SystemCaptionItemPainter; if (StyleManager.IsMetro(effectiveStyle)) return MetroCaptionItemPainter; if (BarFunctions.IsOffice2007Style(effectiveStyle)) return Office2007SystemCaptionItemPainter; return null; } public static MdiSystemItemPainter CreateMdiSystemItemPainter(MDISystemItem mdiSystemItem) { if (BarFunctions.IsOffice2007Style(mdiSystemItem.EffectiveStyle)) return m_Office2007MdiSystemItemPainter; return null; } public static FormCaptionPainter CreateFormCaptionPainter(Form form) { return m_Office2007FormCaptionPainter; } public static DevComponents.DotNetBar.Rendering.QatOverflowPainter CreateQatOverflowItemPainter(QatOverflowItem ribbonQatOverflowItem) { return m_Office2007QatOverflowPainter; } public static DevComponents.DotNetBar.Rendering.QatCustomizeItemPainter CreateQatCustomizeItemPainter(QatCustomizeItem qatCustomizeItem) { return m_Office2007QatCustomizePainter; } public static Rendering.Office2007CheckBoxItemPainter CreateCheckBoxItemPainter(CheckBoxItem item) { return m_Office2007CheckBoxItemPainter; } /// /// Forces the creation of the objects inside of factory. /// public static void InitFactory() { } public static DevComponents.DotNetBar.Rendering.ProgressBarItemPainter CreateProgressBarItemPainter(ProgressBarItem progressBarItem) { return m_Office2007ProgressBarPainter; } internal static DevComponents.DotNetBar.Rendering.NavigationPanePainter CreateNavigationPanePainter() { return m_Office2007NavPanePainter; } internal static DevComponents.DotNetBar.Rendering.SliderPainter CreateSliderPainter(SliderItem slider) { return m_SliderPainter; } internal static DevComponents.DotNetBar.Rendering.RangeSliderPainter CreateRangeSliderPainter(RangeSliderItem slider) { return _RangeSliderPainter; } internal static DevComponents.DotNetBar.Rendering.SideBarPainter CreateSideBarPainter() { return m_SideBarPainter; } private static MetroSwitchButtonPainter _MetroSwitchPainter = null; internal static SwitchButtonPainter CreateSwitchButtonPainter(SwitchButtonItem item) { if (StyleManager.IsMetro(item.EffectiveStyle)) { if (_MetroSwitchPainter == null) _MetroSwitchPainter = new MetroSwitchButtonPainter(); return _MetroSwitchPainter; } else { if (m_SwitchButtonPainter == null) m_SwitchButtonPainter = new Office2010SwitchButtonPainter(); } return m_SwitchButtonPainter; } //private static MetroStepItemPainter _MetroStepItemPainter = null; private static OfficeStepItemPainter _OfficeStepItemPainter = null; internal static StepItemPainter CreateStepItemPainter(StepItem item) { //if (StyleManager.IsMetro(item.EffectiveStyle)) //{ // if (_MetroStepItemPainter == null) _MetroStepItemPainter = new MetroStepItemPainter(); // return _MetroStepItemPainter; //} //else //{ if (_OfficeStepItemPainter == null) _OfficeStepItemPainter = new OfficeStepItemPainter(); //} return _OfficeStepItemPainter; } private static OfficeListBoxItemPainter _OfficeListBoxPainter = null; internal static OfficeListBoxItemPainter CreateListBoxItemPainter(ListBoxItem item) { //if (StyleManager.IsMetro(item.EffectiveStyle)) //{ // if (_MetroStepItemPainter == null) _MetroStepItemPainter = new MetroStepItemPainter(); // return _MetroStepItemPainter; //} //else //{ if (_OfficeListBoxPainter == null) { _OfficeListBoxPainter = new OfficeListBoxItemPainter(); _OfficeListBoxPainter.CheckBoxPainter = m_Office2007CheckBoxItemPainter; } //} return _OfficeListBoxPainter; } private static OfficeSideNavItemPainter _OfficeSideNavItemPainter = null; internal static OfficeSideNavItemPainter CreateSideNavItemPainter(SideNavItem item) { //if (StyleManager.IsMetro(item.EffectiveStyle)) //{ // if (_MetroStepItemPainter == null) _MetroStepItemPainter = new MetroStepItemPainter(); // return _MetroStepItemPainter; //} //else //{ if (_OfficeSideNavItemPainter == null) { _OfficeSideNavItemPainter = new OfficeSideNavItemPainter(); } //} return _OfficeSideNavItemPainter; } private static TabFormStripPainter _TabFormStripPainter = null; internal static TabFormStripPainter CreateTabFormStripPainter(TabFormStripControl c) { if(_TabFormStripPainter==null) _TabFormStripPainter=new OfficeTabFormStripPainter(); return _TabFormStripPainter; } private static TabFormPainter _TabFormPainter=new OfficeTabFormPainter(); internal static TabFormPainter CreateTabFormPainter(TabParentForm form) { return _TabFormPainter; } } }