52 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using DevComponents.DotNetBar.Rendering;
 | 
						|
using System;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.Text;
 | 
						|
 | 
						|
namespace DevComponents.DotNetBar.Metro.Rendering
 | 
						|
{
 | 
						|
    internal class MetroButtonItemPainter : Office2007ButtonItemPainter
 | 
						|
    {
 | 
						|
        private static RoundRectangleShapeDescriptor _DefaultMetroShape = new RoundRectangleShapeDescriptor(0);
 | 
						|
        private static RoundRectangleShapeDescriptor _DefaultMobileShape = new RoundRectangleShapeDescriptor(2);
 | 
						|
        protected override IShapeDescriptor GetButtonShape(ButtonItem button, ItemPaintArgs pa)
 | 
						|
        {
 | 
						|
            IShapeDescriptor shape = MetroButtonItemPainter.GetButtonShape(button);
 | 
						|
            
 | 
						|
            if (pa.ContainerControl is ButtonX)
 | 
						|
                shape = ((ButtonX)pa.ContainerControl).GetButtonShape();
 | 
						|
            else if (pa.ContainerControl is NavigationBar)
 | 
						|
                shape = ((NavigationBar)pa.ContainerControl).ButtonShape;
 | 
						|
            return shape;
 | 
						|
        }
 | 
						|
        private static IShapeDescriptor GetButtonShape(ButtonItem button)
 | 
						|
        {
 | 
						|
            if (button.Shape != null)
 | 
						|
                return button.Shape;
 | 
						|
            else if(StyleManager.Style == eStyle.OfficeMobile2014)
 | 
						|
                return _DefaultMobileShape;
 | 
						|
            return _DefaultMetroShape;
 | 
						|
        }
 | 
						|
 | 
						|
        public override DotNetBar.Rendering.Office2007ButtonItemColorTable GetColorTable(ButtonItem button, eButtonContainer buttonCont)
 | 
						|
        {
 | 
						|
            if (buttonCont == eButtonContainer.MetroTabStrip)
 | 
						|
            {
 | 
						|
                Office2007ColorTable colorTable = this.ColorTable;
 | 
						|
                object st = null;
 | 
						|
                if (colorTable.ContextualTables.TryGetValue(Office2007ColorTable.GetContextualKey(ButtonColorTableType, "MetroTabStrip"), out st))
 | 
						|
                    return (Office2007ButtonItemColorTable)st;
 | 
						|
            }
 | 
						|
            else if (buttonCont == eButtonContainer.NavigationPane)
 | 
						|
            {
 | 
						|
                Office2007ColorTable colorTable = this.ColorTable;
 | 
						|
                object st = null;
 | 
						|
                if (colorTable.ContextualTables.TryGetValue(Office2007ColorTable.GetContextualKey(ButtonColorTableType, "NavigationBar"), out st))
 | 
						|
                    return (Office2007ButtonItemColorTable)st;
 | 
						|
            }
 | 
						|
 | 
						|
            return base.GetColorTable(button, buttonCont);
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |