//
//	Copyright © 2006 Nemetschek North America 
//	All Rights Reserved.
//
// Created by Vladislav Stanev

#pragma once

namespace VectorWorks
{
	namespace VWUI
	{
/*		// ---------------------------------------------------------------------------------------------------------------
		enum ECustomCtrlPenStyle {
			kCustomCtrlPenStyle_Solid,
			kCustomCtrlPenStyle_Dash,			/* -------  * /
			kCustomCtrlPenStyle_Dot,			/* .......  * /
			kCustomCtrlPenStyle_DashDot,		/* _._._._  * /
			kCustomCtrlPenStyle_DashDotDot,		/* _.._.._  * /
		};

		// ---------------------------------------------------------------------------------------------------------------
		enum ECustomCtrlBrushStyle {
			kCustomCtrlBrushStyle_Solid,
			kCustomCtrlBrushStyle_Horizontal,		/* ----- * /
			kCustomCtrlBrushStyle_Vertical,			/* ||||| * /
			kCustomCtrlBrushStyle_FDiagonal,		/* \\\\\ * /
			kCustomCtrlBrushStyle_BDiagonal,		/* ///// * /
			kCustomCtrlBrushStyle_Cross,			/* +++++ * /
			kCustomCtrlBrushStyle_DiagonalCross,	/* xxxxx * /
		};*/

		// ---------------------------------------------------------------------------------------------------------------
		class VWCustomCtrlPen
		{
		public:
								VWCustomCtrlPen();
								VWCustomCtrlPen(Uint8 red, Uint8 green, Uint8 blue);
								VWCustomCtrlPen(Uint8 red, Uint8 green, Uint8 blue, Sint16 size);
//								VWCustomCtrlPen(ECustomCtrlPenStyle style, Uint8 red, Uint8 green, Uint8 blue);
//								VWCustomCtrlPen(ECustomCtrlPenStyle style, Uint8 red, Uint8 green, Uint8 blue, Uint16 size);
								VWCustomCtrlPen(const VWCustomCtrlPen& src);
			virtual				~VWCustomCtrlPen();

			VWCustomCtrlPen&	operator=(const VWCustomCtrlPen& src);

		public:
			Sint16				GetSize() const;
			void				SetSize(Sint16 size);
			GSColor				GetColor() const;
			void				SetColor(Uint8 red, Uint8 green, Uint8 blue);
//			ECustomCtrlPenStyle	GetStyle() const;

		private:
			Uint16				fSize;
			GSColor				fColor;
//			ECustomCtrlPenStyle	fStyle;
		};

		// ---------------------------------------------------------------------------------------------------------------
		class VWCustomCtrlBrush
		{
		public:
								VWCustomCtrlBrush();
								VWCustomCtrlBrush(Uint8 red, Uint8 green, Uint8 blue);
//								VWCustomCtrlBrush(ECustomCtrlBrushStyle style, Uint8 red, Uint8 green, Uint8 blue);
								VWCustomCtrlBrush(const VWCustomCtrlBrush& src);
			virtual				~VWCustomCtrlBrush();

			VWCustomCtrlBrush&	operator=(const VWCustomCtrlBrush& src);

		public:
			GSColor					GetColor() const;
			void					SetColor(Uint8 red, Uint8 green, Uint8 blue);
//			ECustomCtrlBrushStyle	GetStyle() const;

		private:
//			ECustomCtrlBrushStyle	fStyle;
			GSColor					fColor;
		};

		// ---------------------------------------------------------------------------------------------------------------
		class VWCustomCtrlFont
		{
		public:
								VWCustomCtrlFont();
								VWCustomCtrlFont(const TXString& fontName, Uint32 size);
								VWCustomCtrlFont(const TXString& fontName, Uint32 size, bool bBold, bool bItalic, bool bUnderlined);
								VWCustomCtrlFont(const VWCustomCtrlFont& src);
			virtual				~VWCustomCtrlFont();

			VWCustomCtrlFont&	operator=(const VWCustomCtrlFont& src);

		public:
			TXString			GetFontName() const;
			Uint32				GetFontSize() const;
			void				SetFont(const TXString& name, Uint32 size);
			bool				GetBold() const;
			bool				GetItalic() const;
			bool				GetUnderlined() const;
			void				SetStyle(bool bold, bool italic, bool underlined);
			double				GetRotation() const;
			void				SetRotation(double rot);
			bool				GetBaselineMirror() const;
			void				SetBaselineMirror(bool mirror);

		private:
			TXString			fFontName;
			Uint32				fSize;
			bool				fbBold;
			bool				fbItalic;
			bool				fbUnderlined;
			double				fdRotation;
			bool				fbBaselineMirror;
		};
	}
}