Exemple #1
0
		protected virtual void PaintArrow(Point p, SplitterPaintInfo info)
		{
			System.Drawing.Drawing2D.GraphicsPath path=UIGraphics.GetTrianglePath(p,ArrowSize,this.GetDirection(info));
			if(!info.Colors.ExpandFillColor.IsEmpty)
			{
				using(SolidBrush brush=new SolidBrush(info.Colors.ExpandFillColor))
					info.Graphics.FillPath(brush,path);
			}
			if(!info.Colors.ExpandLineColor.IsEmpty)
			{
				using(Pen pen=new Pen(info.Colors.ExpandLineColor,1))
					info.Graphics.DrawPath(pen,path);
			}
			path.Dispose();
		}
Exemple #2
0
		protected virtual void PaintBackground(SplitterPaintInfo info)
		{
			int gradientAngle=info.Colors.BackColorGradientAngle;
			Rectangle r=info.DisplayRectangle;

			if(info.Dock==DockStyle.Top || info.Dock==DockStyle.Bottom)
				gradientAngle+=90;

			if(info.Colors.BackColor2.IsEmpty)
			{
				using(SolidBrush brush=new SolidBrush(info.Colors.BackColor))
					info.Graphics.FillRectangle(brush,r);
			}
			else
			{
				using(System.Drawing.Drawing2D.LinearGradientBrush brush=CreateLinearGradientBrush(r,info.Colors.BackColor,info.Colors.BackColor2,gradientAngle))
					info.Graphics.FillRectangle(brush,r);
			}
		}
Exemple #3
0
		protected eTriangleDirection GetDirection(SplitterPaintInfo info)
		{
			if(info.Dock==DockStyle.Top && info.Expanded || info.Dock==DockStyle.Bottom && !info.Expanded)
			{
				// Points up
				return eTriangleDirection.Top;
			}
			else if(info.Dock==DockStyle.Top && !info.Expanded || info.Dock==DockStyle.Bottom && info.Expanded)
			{
				// Points down
				return eTriangleDirection.Bottom;
			}
			else if(info.Dock==DockStyle.Left && info.Expanded || info.Dock==DockStyle.Right && !info.Expanded)
			{
				// Points left
				return eTriangleDirection.Left;
			}
			return eTriangleDirection.Right;
		}
Exemple #4
0
		/// <summary>
		/// Paints splitter.
		/// </summary>
		/// <param name="info">Paint information.</param>
		public override void Paint(SplitterPaintInfo info)
		{
			int spacing=8;
			Rectangle r=info.DisplayRectangle;
			Graphics g=info.Graphics;
			SplitterColors colors=info.Colors;

			PaintBackground(info);

			if(info.Dock==DockStyle.Top || info.Dock==DockStyle.Bottom)
			{
				Point pStart=new Point(r.X+(r.Width-34)/2-1,r.Y+(r.Height-4)/2);
				using(SolidBrush brush=new SolidBrush(colors.GripLightColor)) //White
				{
					int x=pStart.X+1;
					int y=pStart.Y+1;
					for(int i=0;i<9;i++)
					{
						g.FillRectangle(brush,x,y,2,2);
						x+=4;
					}
				}

				using(SolidBrush brush=new SolidBrush(colors.GripDarkColor)) //Color.FromArgb(128,ControlPaint.Dark(colors.PanelBackground))))
				{
					int x=pStart.X;
					int y=pStart.Y;
					for(int i=0;i<9;i++)
					{
						g.FillRectangle(brush,x,y,2,2);
						x+=4;
					}
				}

				if(info.Expandable)
				{
					Point p=new Point(r.X+(r.Width-36)/2-this.ArrowSize-spacing,r.Y+(r.Height-ArrowSize/2)/2);
					this.PaintArrow(p,info);
					p.Offset(36+spacing*2+ArrowSize,0);
					this.PaintArrow(p,info);
				}
			}
			else
			{
				Point pStart=new Point(r.X+(r.Width-4)/2,r.Y+(r.Height-34)/2);
				using(SolidBrush brush=new SolidBrush(colors.GripLightColor))
				{
					int y=pStart.Y; //r.Y+(r.Height-34)/2;
					int x=pStart.X+1; // r.X+2;
					for(int i=0;i<9;i++)
					{
						g.FillRectangle(brush,x,y,2,2);
						y+=4;
					}
				}

				using(SolidBrush brush=new SolidBrush(colors.GripDarkColor))
				{
					int y=pStart.Y-1; //r.Y+(r.Height-34)/2-1;
					int x=pStart.X; //r.X+1;
					for(int i=0;i<9;i++)
					{
						g.FillRectangle(brush,x,y,2,2);
						y+=4;
					}
				}

				if(info.Expandable)
				{
					Point p=new Point(r.X+(r.Width-ArrowSize/2)/2,r.Y+(r.Height-36)/2-this.ArrowSize-spacing);
					this.PaintArrow(p,info);
					p.Offset(0,36+spacing*2+ArrowSize);
					this.PaintArrow(p,info);
				}
			}
		}
Exemple #5
0
		/// <summary>
		/// Paints splitter.
		/// </summary>
		/// <param name="info">Paint information.</param>
		public virtual void Paint(SplitterPaintInfo info)
		{
		}
Exemple #6
0
		/// <summary>
		/// Paints splitter.
		/// </summary>
		/// <param name="info">Paint information.</param>
		public override void Paint(SplitterPaintInfo info)
		{
			int gripWidth=42;
			int spacing=8;
			Rectangle r=info.DisplayRectangle;
			Graphics g=info.Graphics;

			PaintBackground(info);

			if(info.Dock==DockStyle.Top || info.Dock==DockStyle.Bottom)
			{
				if(info.DisplayRectangle.Width-ArrowSize*2<gripWidth)
				{
					gripWidth=info.DisplayRectangle.Width-ArrowSize*2;
					if(gripWidth<0)
						gripWidth=info.DisplayRectangle.Width;
				}
				
				Point pStart=new Point(r.X+(r.Width-gripWidth)/2,r.Y+(r.Height-5)/2);
				SolidBrush brushLight=new SolidBrush(info.Colors.GripLightColor);
				SolidBrush brushDark=new SolidBrush(info.Colors.GripDarkColor);
				for(int i=pStart.X;i<pStart.X+gripWidth;i+=3)
				{
					g.FillRectangle(brushLight,i,pStart.Y+3,1,1);
					g.FillRectangle(brushDark,i+1,pStart.Y+4,1,1);
					g.FillRectangle(brushLight,i+1,pStart.Y,1,1);
					g.FillRectangle(brushDark,i+2,pStart.Y+1,1,1);
				}
				brushLight.Dispose();
				brushDark.Dispose();
				if(info.Expandable)
				{
					Point p=new Point(r.X+(r.Width-gripWidth)/2-this.ArrowSize-spacing,r.Y+(r.Height-ArrowSize/2)/2);
					this.PaintArrow(p,info);
					p.Offset(gripWidth+spacing*2+ArrowSize,0);
					this.PaintArrow(p,info);
				}
			}
			else
			{
				if(info.DisplayRectangle.Height-ArrowSize*2<gripWidth)
				{
					gripWidth=info.DisplayRectangle.Height-ArrowSize*2;
					if(gripWidth<0)
						gripWidth=info.DisplayRectangle.Height;
				}

				Point pStart=new Point(r.X+(r.Width-5)/2,r.Y+(r.Height-gripWidth)/2);
				SolidBrush brushLight=new SolidBrush(info.Colors.GripLightColor);
				SolidBrush brushDark=new SolidBrush(info.Colors.GripDarkColor);
				for(int i=pStart.Y;i<pStart.Y+gripWidth;i+=3)
				{
					g.FillRectangle(brushLight,pStart.X+3,i,1,1);
					g.FillRectangle(brushDark,pStart.X+4,i+1,1,1);
					g.FillRectangle(brushLight,pStart.X,i+1,1,1);
					g.FillRectangle(brushDark,pStart.X+1,i+2,1,1);
				}
				brushLight.Dispose();
				brushDark.Dispose();

				if(info.Expandable)
				{
					Point p=new Point(r.X+(r.Width-ArrowSize/2)/2,r.Y+(r.Height-gripWidth)/2-this.ArrowSize-spacing);
					this.PaintArrow(p,info);
					p.Offset(0,gripWidth+spacing*2+ArrowSize);
					this.PaintArrow(p,info);
				}
			}
		}