using System;
namespace DevComponents.Tree
{
	/// Specifies the way background image is displayed on background.
	public enum eStyleBackgroundImage:int
	{
		/// Image is stretched to fill the background
		Stretch=0,
		/// Image is centered inside the background
		Center=1,
		/// Image is tiled inside the background
		Tile=2,
		/// 
		/// Image is drawn in top left corner of container space.
		/// 
		TopLeft=3,
		/// 
		/// Image is drawn in top right corner of container space.
		/// 
		TopRight=4,
		/// 
		/// Image is drawn in bottom left corner of container space.
		/// 
		BottomLeft=5,
		/// 
		/// Image is drawn in bottom right corner of container space.
		/// 
		BottomRight=6
	}
	/// Indicates alignment of a part of the cell like image or check box in relation to the text.
	public enum eCellPartAlignment:int
	{
		/// 
		/// Part is aligned to the left center of the text assuming left-to-right
		/// orientation.
		/// 
		NearCenter=0,
		/// 
		/// Part is aligned to the right center of the text assuming left-to-right
		/// orientation.
		/// 
		FarCenter=1,
		/// 
		/// Part is aligned to the top left of the text assuming left-to-right
		/// orientation.
		/// 
		NearTop=2,
		/// Part is aligned above the text and centered.
		CenterTop=3,
		/// 
		/// Part is aligned to the top right of the text assuming left-to-right
		/// orientation.
		/// 
		FarTop=4,
		/// 
		/// Part is aligned to the bottom left of the text assuming left-to-right
		/// orientation.
		/// 
		NearBottom=5,
		/// Part is aligned below the text and centered.
		CenterBottom=6,
		/// 
		/// Part is aligned to the bottom right of the text assuming left-to-right
		/// orientation.
		/// 
		FarBottom=7
	}
	/// 
	/// Specifies the alignment of a text string relative to its element's rectangle.
	/// 
	public enum eStyleTextAlignment
	{
		/// 
		/// Specifies the text be aligned near from the origin position of the element's rectangle. In a left-to-right layout, the near position is left. In a right-to-left layout, the near position is right.
		/// 
		Near=System.Drawing.StringAlignment.Near,
		/// 
		/// Specifies that text is aligned in the center of the element's rectangle.
		/// 
		Center=System.Drawing.StringAlignment.Center,
		/// 
		/// Specifies that text is aligned far from the origin position of the element's rectangle. In a left-to-right layout, the far position is right. In a right-to-left layout, the far position is left.
		/// 
		Far=System.Drawing.StringAlignment.Far
	}
	/// 
	/// Specifies how to trim characters from a text that does not completely fit into a element's shape.
	/// 
	public enum eStyleTextTrimming
	{
		/// 
		/// Specifies that the text is trimmed to the nearest character.
		/// 
		Character=System.Drawing.StringTrimming.Character,
		/// 
		/// Specifies that the text is trimmed to the nearest character, and an ellipsis is inserted at the end of a trimmed line.
		/// 
		EllipsisCharacter=System.Drawing.StringTrimming.EllipsisCharacter,
		/// 
		/// The center is removed from trimmed lines and replaced by an ellipsis. The algorithm keeps as much of the last slash-delimited segment of the line as possible.
		/// 
		EllipsisPath=System.Drawing.StringTrimming.EllipsisPath,
		/// 
		/// Specifies that text is trimmed to the nearest word, and an ellipsis is inserted at the end of a trimmed line.
		/// 
		EllipsisWord=System.Drawing.StringTrimming.EllipsisWord,
		/// 
		/// Specifies no trimming.
		/// 
		None=System.Drawing.StringTrimming.None,
		/// 
		/// Specifies that text is trimmed to the nearest word.
		/// 
		Word=System.Drawing.StringTrimming.Word
	}
	/// 
	/// Specifies the border type for style element.
	/// 
	public enum eStyleBorderType:int
	{
		/// Indicates no border
		None,
		/// Border is a solid line
		Solid,
		/// Border is a solid dash line
		Dash,
		/// Border is solid dash-dot line
		DashDot,
		/// Border is solid dash-dot-dot line
		DashDotDot,
		/// Border consists of dots
		Dot,
		/// Etched Border
		Etched,
		/// Double Border
		Double
	}
	/// 
	/// Indicates absolute vertical alignment of the content.
	/// 
	internal enum eVerticalAlign
	{
		/// 
		/// Content is aligned to the top
		/// 
		Top,
		/// 
		/// Content is aligned in the middle
		/// 
		Middle,
		/// 
		/// Content is aligned at the bottom
		/// 
		Bottom
	}
	/// 
	/// Indicates absolute horizontal alignment
	/// 
	internal enum eHorizontalAlign
	{
		/// 
		/// Content is left aligned
		/// 
		Left,
		/// 
		/// Content is centered
		/// 
		Center,
		/// 
		/// Content is right aligned
		/// 
		Right
	}
	/// 
	/// Indicates prefered node layout position on Map tree layout when node is the child node of the top-level root node.
	/// 
	public enum eMapPosition
	{
		/// 
		/// Node is positioned based on default algorithm.
		/// 
		Default,
		/// 
		/// Sub-root node and all nodes after it are positioned to the left of the root.
		/// 
		Near,
		/// 
		/// Sub-root node and all nodes before it are positioned to the right of the root.
		/// 
		Far
	}
	/// 
	/// Indicates corner type for the border around visual element.
	/// 
	public enum eCornerType
	{
		/// 
		/// Specifies that corner type is inherited from parent setting.
		/// 
		Inherit,
		/// 
		/// Specifies square corner.
		/// 
		Square,
		/// 
		/// Specifies rounded corner.
		/// 
		Rounded,
		/// 
		/// Specifies diagonal corner.
		/// 
		Diagonal
	}
	/// 
	/// Specifies the column header visibility for the node.
	/// 
	public enum eNodeHeaderVisibility
	{
		/// 
		/// Column header is automatically shown/hidden based on the node's position in the tree. When
		/// Node is first child node i.e. with index=0 the header will be shown, otherwise header will
		/// be hidden.
		/// 
		Automatic,
		/// 
		/// Column header is always displayed regardless of node's position.
		/// 
		AlwaysShow,
		/// 
		/// Column header is always hidden regardless of node's position.
		/// 
		AlwaysHide
	}
	/// 
	/// Indicates the part of the node.
	/// 
	internal enum eNodeRectanglePart
	{
		/// 
		/// Bounds of complete node content except expand button. This also includes the child node bounds if node is expanded.
		/// 
		NodeContentBounds,
		/// 
		/// Bounds of the expand button which collapses/expands the node.
		/// 
		ExpandBounds,
		/// 
		/// Bounds of all child nodes of give node.
		/// 
		ChildNodeBounds,
		/// 
		/// Bounds for cells inside a node.
		/// 
		CellsBounds,
		/// 
		/// Complete node bounds including expand button.
		/// 
		NodeBounds,
		/// 
		/// Bounds of the command button.
		/// 
		CommandBounds
	}
	/// 
	/// Indicates the part of the cell.
	/// 
	internal enum eCellRectanglePart
	{
		/// 
		/// Bounds of check box or Rectangle.Empty if there is no check-box.
		/// 
		CheckBoxBounds,
		/// 
		/// Bounds of image inside the cell or Rectangle.Empty if there is no image.
		/// 
		ImageBounds,
		/// 
		/// Text bounds inside of cell.
		/// 
		TextBounds,
		/// 
		/// Cell bounds
		/// 
		CellBounds
	}
	/// 
	/// Indicates part of the node mouse is placed over.
	/// 
	internal enum eMouseOverNodePart
	{
		/// 
		/// Mouse is not over any node part.
		/// 
		None,
		/// 
		/// Mouse is placed over the node.
		/// 
		Node,
		/// 
		/// Mouse is placed over node expand button.
		/// 
		Expand,
		/// 
		/// Mouse is placed over the cell.
		/// 
		Cell,
		/// 
		/// Mouse is placed over the command button.
		/// 
		Command
	}
	/// 
	/// Indicates white-space part of the style.
	/// 
	[Flags()]
	public enum eSpacePart
	{
		/// 
		/// Represents style padding.
		/// 
		Padding=1,
		/// 
		/// Represents style border.
		/// 
		Border=2,
		/// 
		/// Represents style margin.
		/// 
		Margin=4
	}
	/// 
	/// Indicates the style side.
	/// 
	public enum eStyleSide
	{
		/// 
		/// Specifies left side of the style.
		/// 
		Left,
		/// 
		/// Specifies right side of the style.
		/// 
		Right,
		/// 
		/// Specifies top side of the style.
		/// 
		Top,
		/// 
		/// Specifies bottom side of the style.
		/// 
		Bottom
	}
	/// 
	/// Indicates the visibility of node expand part which allows user to expand/collaps node.
	/// 
	public enum eNodeExpandVisibility
	{
		/// 
		/// Default setting which indicates that when node has child nodes expand part is visible otherwise it is hidden.
		/// 
		Auto,
		/// 
		/// Expand part is always visible regardless of whether child nodes are present or not.
		/// 
		Visible,
		/// 
		/// Expand part is always hidden regardless of whether child nodes are present or not.
		/// 
		Hidden
	}
	/// 
	/// Specifies the action that raised a TreeGXEventArgs event
	/// 
	public enum eTreeAction
	{
		/// 
		/// The event was caused by a keystroke.
		/// 
		Keyboard,
		/// 
		/// The event was caused by a mouse operation.
		/// 
		Mouse,
		/// 
		/// The event was caused by the Node collapsing.
		/// 
		Collapse,
		/// 
		/// The event was caused by the Node expanding.
		/// 
		Expand,
		/// 
		/// The event is caused programmatically from user code.
		/// 
		Code
	}
	/// 
	/// Specifies node connector type. Node connector is the type of the line/connection that is drawn to connect child node to it's parent node.
	/// 
	public enum eNodeConnectorType
	{
		/// 
		/// Curved line connector type.
		/// 
		Curve,
		/// 
		/// Straight line connector type.
		/// 
		Line
	}
	/// 
	/// Specifies the cap style with which the connector line will start or end.
	/// 
	public enum eConnectorCap
	{
		/// 
		/// Specifies no cap.
		/// 
		None,
		/// 
		/// Round cap type.
		/// 
		Ellipse,
		/// 
		/// Arrow cap type.
		/// 
		Arrow
	}
	/// 
	/// Specifies the layout type used to position the cells within the nodes.
	/// 
	public enum eCellLayout
	{
		/// 
		/// Specifies that default setting is to be used for cell layout. Default is Horizontal. When set to default on the Node, setting from Tree control is used.
		/// 
		Default,
		/// Horizontal layout positions the cells horizontally next to each other.
		Horizontal,
		/// 
		/// Vertical layout positions cell vertically on top of each other.
		/// 
		Vertical
	}
	/// 
	/// Specifies the layout type used to position the parts of the cell like image, checkbox and text.
	/// 
	public enum eCellPartLayout
	{
		/// 
		/// Specifies that default setting is to be used for cell parts layout. Default is Horizontal. When set to default on the Cell, setting from Tree control is used.
		/// 
		Default,
		/// Horizontal layout positions the parts of the cell horizontally next to each other.
		Horizontal,
		/// 
		/// Vertical layout positions parts of the cell vertically on top of each other.
		/// 
		Vertical
	}
	/// 
	/// Specifies the color scheme loaded by ColorScheme object.
	/// 
	public enum eColorSchemeStyle
	{
		/// 
		/// Indicates Office 2003 like color scheme.
		/// 
		Office2003,
		/// 
		/// Indicates Office XP like color scheme.
		/// 
		OfficeXP,
		/// 
		/// Indicates VS.NET 2005 like color scheme.
		/// 
		VS2005
	}
	/// 
	/// Specifies the currently selected system color scheme if running on Windows XP.
	/// 
	internal enum eWinXPColorScheme
	{
		/// 
		/// Color scheme cannot be determined.
		/// 
		Undetermined,
		/// 
		/// Blue color scheme.
		/// 
		Blue,
		/// 
		/// Olive green color scheme.
		/// 
		OliveGreen,
		/// 
		/// Silver color scheme.
		/// 
		Silver
	}
	/// 
	/// Specifies the flow of diagram layout related to the root node.
	/// 
	public enum eDiagramFlow
	{
		/// 
		/// Nodes are positioned from left to right with root node being the left-most node.
		/// 
		LeftToRight,
		/// 
		/// Nodes are positioned from right to left with root node being the right-most
		/// node.
		/// 
		RightToLeft,
		/// 
		/// Nodes are positioned from top to bottom with root node being the top node.
		/// 
		TopToBottom,
		/// 
		/// Nodes are positioned from bottom to top with root node being bottom node.
		/// 
		BottomToTop
	}
	
	/// 
	/// Specifies the flow of the map layout.
	/// 
	public enum eMapFlow
	{
		/// 
		/// Nodes are arranged around the root node.
		/// 
		Spread,
		/// 
		/// Nodes are arranged from below the root node.
		/// 
		TopToBottom,
		/// 
		/// Nodes are arranged above the root node.
		/// 
		BottomToTop,
		/// 
		/// Nodes are arranged to the right of the root node.
		/// 
		LeftToRight,
		/// 
		/// Nodes are arranged to the left of the root node.
		/// 
		RightToLeft
	}
	/// 
	/// Specifies the type of the expand button.
	/// 
	public enum eExpandButtonType
	{
		/// 
		/// Indicates elliptical expand button.
		/// 
		Ellipse,
		/// 
		/// Indicates rectangular expand button.
		/// 
		Rectangle,
		/// 
		/// Indicates that images are used for expand button. See 
		/// 
		Image
	}
	
	/// 
	/// Specifies the visual style for the tree control.
	/// 
	public enum eVisualStyle
	{
		/// 
		/// Indicates default visual style.
		/// 
		Default
	}
	/// 
	/// Specifies the layout type for the nodes.
	/// 
	public enum eNodeLayout
	{
		/// 
		/// Nodes are arranged arround root node in map format.
		/// 
		Map,
		/// 
		/// Nodes are arranged from left-to-right in diagram format.
		/// 
		Diagram
	}
	
	/// 
	/// Specifies renderer type used to render nodes.
	/// 
	public enum eNodeRenderMode
	{
		
		/// 
		/// Specifies default renderer which allows most customization through TreeGX
		/// properties. Default renderer integrates with the Style architecture to provide
		/// customization on renderer behavior.
		/// 
		Default,
		/// 
		/// 	Specifies professional renderer. Professional renderer is custom renderer
		///     which does not rely on Style architecture for customization of renderer appearance
		///     since it provides much richer appearance than Default renderer.
		/// 	Professional renderer colors can be controls through
		///     NodeProfessionalColorTable object which is exposed by
		///     NodeProfessionalRenderer.ColorTable property.
		/// 
		Professional,
		/// 
		/// Specifies that custom renderer is used. When set you must also set NodeRenderer
		/// to renderer you want to use.
		/// 
		Custom
	}
}