148 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			148 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.ComponentModel;
 | |
| using System.ComponentModel.Design;
 | |
| using System.Drawing;
 | |
| using DevComponents.DotNetBar.Design;
 | |
| 
 | |
| namespace DevComponents.DotNetBar
 | |
| {
 | |
| 	/// <summary>
 | |
| 	/// Summary description for DesignerSupport.
 | |
| 	/// </summary>
 | |
| 	internal class DesignerSupport
 | |
| 	{
 | |
| 		public static ItemContainer CreateItemContainer(IDesignerServices designer, BaseItem parent, eOrientation containerOrientation)
 | |
| 		{
 | |
| 			IDesignerHost dh=designer.GetService(typeof(IDesignerHost)) as IDesignerHost;
 | |
| 			IComponentChangeService cc=designer.GetService(typeof(IComponentChangeService)) as IComponentChangeService;
 | |
| 			
 | |
| 			if(dh==null || parent==null || cc==null)
 | |
| 				return null;
 | |
| 
 | |
| 			ItemContainer c=null;
 | |
| 
 | |
| 			DesignerTransaction trans=dh.CreateTransaction("New DotNetBar Item Container");
 | |
| 			try
 | |
| 			{
 | |
| 				c=dh.CreateComponent(typeof(ItemContainer)) as ItemContainer;
 | |
| 				TypeDescriptor.GetProperties(c)["LayoutOrientation"].SetValue(c,containerOrientation);
 | |
| 				cc.OnComponentChanging(parent,TypeDescriptor.GetProperties(c)["SubItems"]);
 | |
| 				parent.SubItems.Add(c);
 | |
| 				cc.OnComponentChanged(parent,TypeDescriptor.GetProperties(c)["SubItems"],null,null);
 | |
| 			}
 | |
| 			finally
 | |
| 			{
 | |
| 				if(!trans.Canceled)
 | |
| 					trans.Commit();
 | |
| 			}
 | |
| 
 | |
| 			return c;
 | |
|         }
 | |
| 
 | |
|         public static ItemDockContainer CreateItemDockContainer(IDesignerServices designer, BaseItem parent)
 | |
|         {
 | |
|             IDesignerHost dh = designer.GetService(typeof(IDesignerHost)) as IDesignerHost;
 | |
|             IComponentChangeService cc = designer.GetService(typeof(IComponentChangeService)) as IComponentChangeService;
 | |
| 
 | |
|             if (dh == null || parent == null || cc == null)
 | |
|                 return null;
 | |
| 
 | |
|             ItemDockContainer c = null;
 | |
| 
 | |
|             DesignerTransaction trans = dh.CreateTransaction("New DotNetBar Item Dock Container");
 | |
|             try
 | |
|             {
 | |
|                 c = dh.CreateComponent(typeof(ItemDockContainer)) as ItemDockContainer;
 | |
|                 cc.OnComponentChanging(parent, TypeDescriptor.GetProperties(c)["SubItems"]);
 | |
|                 parent.SubItems.Add(c);
 | |
|                 cc.OnComponentChanged(parent, TypeDescriptor.GetProperties(c)["SubItems"], null, null);
 | |
|             }
 | |
|             finally
 | |
|             {
 | |
|                 if (!trans.Canceled)
 | |
|                     trans.Commit();
 | |
|             }
 | |
| 
 | |
|             return c;
 | |
|         }
 | |
| 
 | |
|         public static RibbonTabItemGroup CreateRibbonTabItemGroup(RibbonStrip strip, IServiceProvider provider)
 | |
| 		{
 | |
| 			IDesignerHost dh=provider.GetService(typeof(IDesignerHost)) as IDesignerHost;
 | |
| 			IComponentChangeService cc=provider.GetService(typeof(IComponentChangeService)) as IComponentChangeService;
 | |
| 			if(dh==null || cc==null) return null;
 | |
|             
 | |
| 			DesignerTransaction trans=dh.CreateTransaction("New RibbonTabItemGroup");
 | |
| 			RibbonTabItemGroup group=null;
 | |
| 			try
 | |
| 			{
 | |
| 				group=dh.CreateComponent(typeof(RibbonTabItemGroup)) as RibbonTabItemGroup;
 | |
| 				cc.OnComponentChanging(strip,TypeDescriptor.GetProperties(strip)["TabGroups"]);
 | |
| 				strip.TabGroups.Add(group);				
 | |
| 				cc.OnComponentChanged(strip,TypeDescriptor.GetProperties(strip)["TabGroups"],null,null);
 | |
| 				SetDefaults(group);
 | |
| 			}
 | |
| 			catch
 | |
| 			{
 | |
| 				trans.Cancel();
 | |
| 				throw;
 | |
| 			}
 | |
| 			finally
 | |
| 			{
 | |
| 				if(!trans.Canceled)
 | |
| 					trans.Commit();
 | |
| 			}
 | |
| 			return group;
 | |
| 		}
 | |
| 
 | |
|         public static GalleryGroup CreateGalleryGroup(GalleryContainer gallery, IServiceProvider provider)
 | |
|         {
 | |
|             IDesignerHost dh = provider.GetService(typeof(IDesignerHost)) as IDesignerHost;
 | |
|             IComponentChangeService cc = provider.GetService(typeof(IComponentChangeService)) as IComponentChangeService;
 | |
|             if (dh == null || cc == null) return null;
 | |
| 
 | |
|             DesignerTransaction trans = dh.CreateTransaction("New GalleryGroup");
 | |
|             GalleryGroup group = null;
 | |
|             try
 | |
|             {
 | |
|                 group = dh.CreateComponent(typeof(GalleryGroup)) as GalleryGroup;
 | |
| 
 | |
|                 cc.OnComponentChanging(gallery, TypeDescriptor.GetProperties(gallery)["GalleryGroups"]);
 | |
|                 gallery.GalleryGroups.Add(group);
 | |
|                 cc.OnComponentChanged(gallery, TypeDescriptor.GetProperties(gallery)["GalleryGroups"], null, null);
 | |
| 
 | |
|                 group.Text = group.Name;
 | |
|             }
 | |
|             catch
 | |
|             {
 | |
|                 trans.Cancel();
 | |
|                 throw;
 | |
|             }
 | |
|             finally
 | |
|             {
 | |
|                 if (!trans.Canceled)
 | |
|                     trans.Commit();
 | |
|             }
 | |
|             return group;
 | |
|         }
 | |
|         
 | |
| 
 | |
| 		public static void SetDefaults(RibbonTabItemGroup group)
 | |
| 		{
 | |
| 			TypeDescriptor.GetProperties(group)["GroupTitle"].SetValue(group,"New Group");
 | |
| 			TypeDescriptor.GetProperties(group.Style)["Border"].SetValue(group.Style,eStyleBorderType.Solid);
 | |
| 			TypeDescriptor.GetProperties(group.Style)["BorderColor"].SetValue(group.Style,ColorScheme.GetColor("9A3A3B"));
 | |
| 			TypeDescriptor.GetProperties(group.Style)["CornerType"].SetValue(group.Style,eCornerType.Square);
 | |
|             TypeDescriptor.GetProperties(group.Style)["BackColor"].SetValue(group.Style, ColorScheme.GetColor("AE6D94"));
 | |
|             TypeDescriptor.GetProperties(group.Style)["BackColor2"].SetValue(group.Style, ColorScheme.GetColor("90487B"));
 | |
| 			TypeDescriptor.GetProperties(group.Style)["BackColorGradientAngle"].SetValue(group.Style,90);
 | |
| 			TypeDescriptor.GetProperties(group.Style)["BorderWidth"].SetValue(group.Style,1);
 | |
| 			TypeDescriptor.GetProperties(group.Style)["TextColor"].SetValue(group.Style,Color.White);
 | |
|             TypeDescriptor.GetProperties(group.Style)["TextShadowColor"].SetValue(group.Style, Color.Black);
 | |
|             TypeDescriptor.GetProperties(group.Style)["TextShadowOffset"].SetValue(group.Style, new Point(1,1));
 | |
| 			TypeDescriptor.GetProperties(group.Style)["TextAlignment"].SetValue(group.Style,eStyleTextAlignment.Center);
 | |
| 			TypeDescriptor.GetProperties(group.Style)["TextLineAlignment"].SetValue(group.Style,eStyleTextAlignment.Near);
 | |
| 		}
 | |
| 	}
 | |
| }
 |