Click here to Skip to main content
15,881,204 members
Articles / Desktop Programming / Windows Forms

Storm - the world's best IDE framework for .NET

Rate me:
Please Sign up or sign in to vote.
4.96/5 (82 votes)
4 Feb 2010LGPL311 min read 273.7K   6.5K   340  
Create fast, flexible, and extensible IDE applications easily with Storm - it takes nearly no code at all!
using System;

using Storm.TextEditor.Drawing.GDI;

namespace Storm.TextEditor.Drawing
{
	/// <summary>
	/// Represents a class used by the DefaultPainter to hold brushes.
	/// </summary>
	public class RenderItems
		: IDisposable
	{
		#region Fields

		#region GDISurfaces

		private GDISurface backBuffer = null;
		private GDISurface selectionBuffer = null;
		private GDISurface stringBuffer = null;

		#endregion

		#region GDIFonts

		private GDIFont fontNormal = null;
		private GDIFont fontBold = null;
		private GDIFont fontItalic = null;
		private GDIFont fontUnderline = null;

		private GDIFont fontBoldItalic = null;
		private GDIFont fontBoldUnderline = null;
		private GDIFont fontItalicUnderline = null;
		private GDIFont fontBoldItalicUnderline = null;

		#endregion

		#region GDIBrushes

		private GDIBrush gutterMarginBrush = null;
		private GDIBrush gutterMarginBorderBrush = null;

		private GDIBrush lineNumberMarginBrush = null;
		private GDIBrush lineNumberMarginBorderBrush = null;

		private GDIBrush backgroundBrush = null;
		private GDIBrush highlightLineBrush = null;
		private GDIBrush outlineBrush = null;
		private GDIBrush collapsedBackgroundBrush = null;
		private GDIBrush symbolBrush = null;
		private GDIBrush expansionBackgroundBrush = null;

		#endregion

		#endregion

		#region Properties

		#region GDISurfaces

		/// <summary>
		/// Gets or sets the BackBuffer field of the RenderItems.
		/// </summary>
		public GDISurface BackBuffer
		{
			get { return backBuffer; }
			set { backBuffer = value; }
		}

		/// <summary>
		/// Gets or sets the SelectionBuffer field of the RenderItems.
		/// </summary>
		public GDISurface SelectionBuffer
		{
			get { return selectionBuffer; }
			set { selectionBuffer = value; }
		}

		/// <summary>
		/// Gets or sets the StringBuffer field of the RenderItems.
		/// </summary>
		public GDISurface StringBuffer
		{
			get { return stringBuffer; }
			set { stringBuffer = value; }
		}

		#endregion

		#region GDIFonts

		/// <summary>
		/// Gets or sets the FontNormal field of the RenderItems.
		/// </summary>
		public GDIFont FontNormal
		{
			get { return fontNormal; }
			set { fontNormal = value; }
		}

		/// <summary>
		/// Gets or sets the FontBold field of the RenderItems.
		/// </summary>
		public GDIFont FontBold
		{
			get { return fontBold; }
			set { fontBold = value; }
		}

		/// <summary>
		/// Gets or sets the FontItalic field of the RenderItems.
		/// </summary>
		public GDIFont FontItalic
		{
			get { return fontItalic; }
			set { fontItalic = value; }
		}

		/// <summary>
		/// Gets or sets the FontUnderline field of the RenderItems.
		/// </summary>
		public GDIFont FontUnderline
		{
			get { return fontUnderline; }
			set { fontUnderline = value; }
		}

		/// <summary>
		/// Gets or sets the FontBoldItalic field of the RenderItems.
		/// </summary>
		public GDIFont FontBoldItalic
		{
			get { return fontBoldItalic; }
			set { fontBoldItalic = value; }
		}

		/// <summary>
		/// Gets or sets the FontBoldUnderline field of the RenderItems.
		/// </summary>
		public GDIFont FontBoldUnderline
		{
			get { return fontBoldUnderline; }
			set { fontBoldUnderline = value; }
		}

		/// <summary>
		/// Gets or sets the FontItalicUnderline field of the RenderItems.
		/// </summary>
		public GDIFont FontItalicUnderline
		{
			get { return fontItalicUnderline; }
			set { fontItalicUnderline = value; }
		}

		/// <summary>
		/// Gets or sets the FontBoldItalicUnderline field of the RenderItems.
		/// </summary>
		public GDIFont FontBoldItalicUnderline
		{
			get { return fontBoldItalicUnderline; }
			set { fontBoldItalicUnderline = value; }
		}

		#endregion

		#region GDIBrushes

		/// <summary>
		/// Gets or sets the GutterMarginBrush field of the RenderItems.
		/// </summary>
		public GDIBrush GutterMarginBrush
		{
			get { return gutterMarginBrush; }
			set { gutterMarginBrush = value; }
		}

		/// <summary>
		/// Gets or sets the GutterMarginBorderBrush field of the RenderItems.
		/// </summary>
		public GDIBrush GutterMarginBorderBrush
		{
			get { return gutterMarginBorderBrush; }
			set { gutterMarginBorderBrush = value; }
		}

		/// <summary>
		/// Gets or sets the LineNumberMarginBrush field of the RenderItems.
		/// </summary>
		public GDIBrush LineNumberMarginBrush
		{
			get { return lineNumberMarginBrush; }
			set { lineNumberMarginBrush = value; }
		}

		/// <summary>
		/// Gets or sets the LineNumberMarginBorderBrush field of the RenderItems.
		/// </summary>
		public GDIBrush LineNumberMarginBorderBrush
		{
			get { return lineNumberMarginBorderBrush; }
			set { lineNumberMarginBorderBrush = value; }
		}

		/// <summary>
		/// Gets or sets the BackgroundBrush field of the RenderItems.
		/// </summary>
		public GDIBrush BackgroundBrush
		{
			get { return backgroundBrush; }
			set { backgroundBrush = value; }
		}

		/// <summary>
		/// Gets or sets the HighlightLineBrush field of the RenderItems.
		/// </summary>
		public GDIBrush HighlightLineBrush
		{
			get { return highlightLineBrush; }
			set { highlightLineBrush = value; }
		}

		/// <summary>
		/// Gets or sets the OutlineBrush field of the RenderItems.
		/// </summary>
		public GDIBrush OutlineBrush
		{
			get { return outlineBrush; }
			set { outlineBrush = value; }
		}

		/// <summary>
		/// Gets or sets the CollapsedBackgroundBrush field of the RenderItems.
		/// </summary>
		public GDIBrush CollapsedBackgroundBrush
		{
			get { return collapsedBackgroundBrush; }
			set { collapsedBackgroundBrush = value; }
		}

		/// <summary>
		/// Gets or sets the SymbolBrush field of the RenderItems.
		/// </summary>
		public GDIBrush SymbolBrush
		{
			get { return symbolBrush; }
			set { symbolBrush = value; }
		}

		/// <summary>
		/// Gets or sets the ExpansionBackgroundBrush field of the RenderItems.
		/// </summary>
		public GDIBrush ExpansionBackgroundBrush
		{
			get { return expansionBackgroundBrush; }
			set { expansionBackgroundBrush = value; }
		}

		#endregion

		#endregion

		#region IDisposable Members

		/// <summary>
		/// Removes the RenderItems and its children.
		/// </summary>
		public void Dispose()
		{
			if (backBuffer != null)
			{
				backBuffer.Dispose();
				backBuffer = null;
			}

			if (selectionBuffer != null)
			{
				selectionBuffer.Dispose();
				selectionBuffer = null;
			}

			if (stringBuffer != null)
			{
				stringBuffer.Dispose();
				stringBuffer = null;
			}

			if (fontNormal != null)
			{
				fontNormal.Dispose();
				fontNormal = null;
			}

			if (fontBold != null)
			{
				fontBold.Dispose();
				fontBold = null;
			}

			if (fontItalic != null)
			{
				fontItalic.Dispose();
				fontItalic = null;
			}

			if (fontBoldItalic != null)
			{
				fontBoldItalic.Dispose();
				fontBoldItalic = null;
			}

			if (fontUnderline != null)
			{
				fontUnderline.Dispose();
				fontUnderline = null;
			}

			if (fontBoldUnderline != null)
			{
				fontBoldUnderline.Dispose();
				fontBoldUnderline = null;
			}

			if (fontItalicUnderline != null)
			{
				fontItalicUnderline.Dispose();
				fontItalicUnderline = null;
			}

			if (fontBoldItalicUnderline != null)
			{
				fontBoldItalicUnderline.Dispose();
				fontBoldItalicUnderline = null;
			}

			if (gutterMarginBrush != null)
			{
				gutterMarginBrush.Dispose();
				gutterMarginBrush = null;
			}

			if (gutterMarginBrush != null)
			{
				gutterMarginBrush.Dispose();
				gutterMarginBrush = null;
			}

			if (lineNumberMarginBrush != null)
			{
				lineNumberMarginBrush.Dispose();
				lineNumberMarginBrush = null;
			}

			if (lineNumberMarginBorderBrush != null)
			{
				lineNumberMarginBorderBrush.Dispose();
				lineNumberMarginBorderBrush = null;
			}

			if (backgroundBrush != null)
			{
				backgroundBrush.Dispose();
				backgroundBrush = null;
			}

			if (highlightLineBrush != null)
			{
				highlightLineBrush.Dispose();
				highlightLineBrush = null;
			}

			if (outlineBrush != null)
			{
				outlineBrush.Dispose();
				outlineBrush = null;
			}
		}

		#endregion
	}
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The GNU Lesser General Public License (LGPLv3)



Comments and Discussions