#region LGPL License
/*************************************************************************
Crazy Eddie's GUI System (http://crayzedsgui.sourceforge.net)
Copyright (C)2004 Paul D Turner (crayzed@users.sourceforge.net)
C# Port developed by Chris McGuirk (leedgitar@latenitegames.com)
Compatible with the Axiom 3D Engine (http://axiomengine.sf.net)
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*************************************************************************/
#endregion LGPL License
#region Using directives
using System;
using System.Text;
#endregion
namespace CrayzEdsGui.Base{
#region Input
/// <summary>
/// Enum containing all the possible keyboard codes.
/// </summary>
/// <remarks>
/// Cut and Pasted from Axiom ;)
/// </remarks>
public enum KeyCodes {
/// <summary>
/// The keyboard code for LButton.
/// </summary>
LButton ,
/// <summary>
/// The keyboard code for RButton.
/// </summary>
RButton ,
/// <summary>
/// The keyboard code for Cancel.
/// </summary>
Cancel ,
/// <summary>
/// The keyboard code for MButton.
/// </summary>
MButton ,
/// <summary>
/// The keyboard code for XButton1.
/// </summary>
XButton1 ,
/// <summary>
/// The keyboard code for XButton2.
/// </summary>
XButton2 ,
/// <summary>
/// The keyboard code for Backspace.
/// </summary>
Backspace,
/// <summary>
/// The keyboard code for Tab.
/// </summary>
Tab ,
/// <summary>
/// The keyboard code for LineFeed.
/// </summary>
LineFeed ,
/// <summary>
/// The keyboard code for Clear.
/// </summary>
Clear ,
/// <summary>
/// The keyboard code for Return.
/// </summary>
Return ,
/// <summary>
/// The keyboard code for Enter.
/// </summary>
Enter ,
/// <summary>
/// The keyboard code for ShiftKey.
/// </summary>
ShiftKey ,
/// <summary>
/// The keyboard code for ControlKey.
/// </summary>
ControlKey ,
/// <summary>
/// The keyboard code for Menu.
/// </summary>
Menu ,
/// <summary>
/// The keyboard code for Pause.
/// </summary>
Pause ,
/// <summary>
/// The keyboard code for Capital.
/// </summary>
Capital ,
/// <summary>
/// The keyboard code for CapsLock.
/// </summary>
CapsLock ,
/// <summary>
/// The keyboard code for Escape.
/// </summary>
Escape ,
/// <summary>
/// The keyboard code for Space.
/// </summary>
Space ,
/// <summary>
/// The keyboard code for Prior.
/// </summary>
Prior ,
/// <summary>
/// The keyboard code for PageUp.
/// </summary>
PageUp ,
/// <summary>
/// The keyboard code for Next.
/// </summary>
Next ,
/// <summary>
/// The keyboard code for PageDown.
/// </summary>
PageDown ,
/// <summary>
/// The keyboard code for End.
/// </summary>
End ,
/// <summary>
/// The keyboard code for Home.
/// </summary>
Home ,
/// <summary>
/// The keyboard code for Left.
/// </summary>
Left ,
/// <summary>
/// The keyboard code for Up.
/// </summary>
Up ,
/// <summary>
/// The keyboard code for Right.
/// </summary>
Right ,
/// <summary>
/// The keyboard code for Down.
/// </summary>
Down ,
/// <summary>
/// The keyboard code for Select.
/// </summary>
Select ,
/// <summary>
/// The keyboard code for Print.
/// </summary>
Print ,
/// <summary>
/// The keyboard code for Execute.
/// </summary>
Execute ,
/// <summary>
/// The keyboard code for Snapshot.
/// </summary>
Snapshot ,
/// <summary>
/// The keyboard code for PrintScreen.
/// </summary>
PrintScreen ,
/// <summary>
/// The keyboard code for Insert.
/// </summary>
Insert ,
/// <summary>
/// The keyboard code for Delete.
/// </summary>
Delete ,
/// <summary>
/// The keyboard code for Help.
/// </summary>
Help ,
/// <summary>
/// The keyboard code for D0.
/// </summary>
D0 ,
/// <summary>
/// The keyboard code for D1.
/// </summary>
D1 ,
/// <summary>
/// The keyboard code for D2.
/// </summary>
D2 ,
/// <summary>
/// The keyboard code for D3.
/// </summary>
D3 ,
/// <summary>
/// The keyboard code for D4.
/// </summary>
D4 ,
/// <summary>
/// The keyboard code for D5.
/// </summary>
D5 ,
/// <summary>
/// The keyboard code for D6.
/// </summary>
D6 ,
/// <summary>
/// The keyboard code for D7.
/// </summary>
D7 ,
/// <summary>
/// The keyboard code for D8.
/// </summary>
D8 ,
/// <summary>
/// The keyboard code for D9.
/// </summary>
D9 ,
/// <summary>
/// The keyboard code for A.
/// </summary>
A ,
/// <summary>
/// The keyboard code for B.
/// </summary>
B ,
/// <summary>
/// The keyboard code for C.
/// </summary>
C ,
/// <summary>
/// The keyboard code for D.
/// </summary>
D ,
/// <summary>
/// The keyboard code for E.
/// </summary>
E ,
/// <summary>
/// The keyboard code for F.
/// </summary>
F ,
/// <summary>
/// The keyboard code for G.
/// </summary>
G ,
/// <summary>
/// The keyboard code for H.
/// </summary>
H ,
/// <summary>
/// The keyboard code for I.
/// </summary>
I ,
/// <summary>
/// The keyboard code for J.
/// </summary>
J ,
/// <summary>
/// The keyboard code for K.
/// </summary>
K ,
/// <summary>
/// The keyboard code for L.
/// </summary>
L ,
/// <summary>
/// The keyboard code for M.
/// </summary>
M ,
/// <summary>
/// The keyboard code for N.
/// </summary>
N ,
/// <summary>
/// The keyboard code for O.
/// </summary>
O ,
/// <summary>
/// The keyboard code for P.
/// </summary>
P ,
/// <summary>
/// The keyboard code for Q.
/// </summary>
Q ,
/// <summary>
/// The keyboard code for R.
/// </summary>
R ,
/// <summary>
/// The keyboard code for S.
/// </summary>
S ,
/// <summary>
/// The keyboard code for T.
/// </summary>
T ,
/// <summary>
/// The keyboard code for U.
/// </summary>
U ,
/// <summary>
/// The keyboard code for V.
/// </summary>
V ,
/// <summary>
/// The keyboard code for W.
/// </summary>
W ,
/// <summary>
/// The keyboard code for X.
/// </summary>
X ,
/// <summary>
/// The keyboard code for Y.
/// </summary>
Y ,
/// <summary>
/// The keyboard code for Z.
/// </summary>
Z ,
/// <summary>
/// The keyboard code for LWin.
/// </summary>
LWin ,
/// <summary>
/// The keyboard code for RWin.
/// </summary>
RWin ,
/// <summary>
/// The keyboard code for Apps.
/// </summary>
Apps ,
/// <summary>
/// The keyboard code for NumPad0.
/// </summary>
NumPad0 ,
/// <summary>
/// The keyboard code for NumPad1.
/// </summary>
NumPad1 ,
/// <summary>
/// The keyboard code for NumPad2.
/// </summary>
NumPad2 ,
/// <summary>
/// The keyboard code for NumPad3.
/// </summary>
NumPad3 ,
/// <summary>
/// The keyboard code for NumPad4.
/// </summary>
NumPad4 ,
/// <summary>
/// The keyboard code for NumPad5.
/// </summary>
NumPad5 ,
/// <summary>
/// The keyboard code for NumPad6.
/// </summary>
NumPad6 ,
/// <summary>
/// The keyboard code for NumPad7.
/// </summary>
NumPad7 ,
/// <summary>
/// The keyboard code for NumPad8.
/// </summary>
NumPad8 ,
/// <summary>
/// The keyboard code for NumPad9.
/// </summary>
NumPad9 ,
/// <summary>
/// The keyboard code for Multiply.
/// </summary>
Multiply ,
/// <summary>
/// The keyboard code for Add.
/// </summary>
Add ,
/// <summary>
/// The keyboard code for Separator.
/// </summary>
Separator ,
/// <summary>
/// The keyboard code for Subtract.
/// </summary>
Subtract ,
/// <summary>
/// The keyboard code for Decimal.
/// </summary>
Decimal ,
/// <summary>
/// The keyboard code for Divide.
/// </summary>
Divide ,
/// <summary>
/// The keyboard code for F1.
/// </summary>
F1 ,
/// <summary>
/// The keyboard code for F2.
/// </summary>
F2 ,
/// <summary>
/// The keyboard code for F3.
/// </summary>
F3 ,
/// <summary>
/// The keyboard code for F4.
/// </summary>
F4 ,
/// <summary>
/// The keyboard code for F5.
/// </summary>
F5 ,
/// <summary>
/// The keyboard code for F6.
/// </summary>
F6 ,
/// <summary>
/// The keyboard code for F7.
/// </summary>
F7 ,
/// <summary>
/// The keyboard code for F8.
/// </summary>
F8 ,
/// <summary>
/// The keyboard code for F9.
/// </summary>
F9 ,
/// <summary>
/// The keyboard code for F10.
/// </summary>
F10 ,
/// <summary>
/// The keyboard code for F11.
/// </summary>
F11 ,
/// <summary>
/// The keyboard code for F12.
/// </summary>
F12 ,
/// <summary>
/// The keyboard code for F13.
/// </summary>
F13 ,
/// <summary>
/// The keyboard code for F14.
/// </summary>
F14 ,
/// <summary>
/// The keyboard code for F15.
/// </summary>
F15 ,
/// <summary>
/// The keyboard code for F16.
/// </summary>
F16 ,
/// <summary>
/// The keyboard code for F17.
/// </summary>
F17 ,
/// <summary>
/// The keyboard code for F18.
/// </summary>
F18 ,
/// <summary>
/// The keyboard code for F19.
/// </summary>
F19 ,
/// <summary>
/// The keyboard code for F20.
/// </summary>
F20 ,
/// <summary>
/// The keyboard code for F21.
/// </summary>
F21 ,
/// <summary>
/// The keyboard code for F22.
/// </summary>
F22 ,
/// <summary>
/// The keyboard code for F23.
/// </summary>
F23 ,
/// <summary>
/// The keyboard code for F24.
/// </summary>
F24 ,
/// <summary>
/// The keyboard code for NumLock.
/// </summary>
NumLock ,
/// <summary>
/// The keyboard code for Scroll.
/// </summary>
Scroll ,
/// <summary>
/// The keyboard code for LeftShift.
/// </summary>
LeftShift ,
/// <summary>
/// The keyboard code for RightShift.
/// </summary>
RightShift ,
/// <summary>
/// The keyboard code for LeftControl.
/// </summary>
LeftControl ,
/// <summary>
/// The keyboard code for RightControl.
/// </summary>
RightControl ,
/// <summary>
/// The keyboard code for LMenu.
/// </summary>
LMenu ,
/// <summary>
/// The keyboard code for RMenu.
/// </summary>
RMenu ,
/// <summary>
/// The keyboard code for ProcessKey.
/// </summary>
ProcessKey ,
/// <summary>
/// The keyboard code for Attn.
/// </summary>
Attn ,
/// <summary>
/// The keyboard code for EraseEof.
/// </summary>
EraseEof ,
/// <summary>
/// The keyboard code for Play.
/// </summary>
Play ,
/// <summary>
/// The keyboard code for Zoom.
/// </summary>
Zoom ,
/// <summary>
/// The keyboard code for NoName.
/// </summary>
NoName ,
/// <summary>
/// The keyboard code for KanaMode.
/// </summary>
KanaMode ,
/// <summary>
/// The keyboard code for HanguelMode.
/// </summary>
HanguelMode ,
/// <summary>
/// The keyboard code for HangulMode.
/// </summary>
HangulMode ,
/// <summary>
/// The keyboard code for JunjaMode.
/// </summary>
JunjaMode ,
/// <summary>
/// The keyboard code for FinalMode.
/// </summary>
FinalMode ,
/// <summary>
/// The keyboard code for HanjaMode.
/// </summary>
HanjaMode ,
/// <summary>
/// The keyboard code for KanjiMode.
/// </summary>
KanjiMode ,
/// <summary>
/// The keyboard code for IMEConvert.
/// </summary>
IMEConvert ,
/// <summary>
/// The keyboard code for IMENonconvert.
/// </summary>
IMENonconvert ,
/// <summary>
/// The keyboard code for IMEAceept.
/// </summary>
IMEAceept ,
/// <summary>
/// The keyboard code for IMEModeChange.
/// </summary>
IMEModeChange ,
/// <summary>
/// The keyboard code for BrowserBack.
/// </summary>
BrowserBack ,
/// <summary>
/// The keyboard code for BrowserForward.
/// </summary>
BrowserForward ,
/// <summary>
/// The keyboard code for BrowserRefresh.
/// </summary>
BrowserRefresh ,
/// <summary>
/// The keyboard code for BrowserStop.
/// </summary>
BrowserStop ,
/// <summary>
/// The keyboard code for BrowserSearch.
/// </summary>
BrowserSearch ,
/// <summary>
/// The keyboard code for BrowserFavorites.
/// </summary>
BrowserFavorites ,
/// <summary>
/// The keyboard code for BrowserHome.
/// </summary>
BrowserHome ,
/// <summary>
/// The keyboard code for VolumeMute.
/// </summary>
VolumeMute ,
/// <summary>
/// The keyboard code for VolumeDown.
/// </summary>
VolumeDown ,
/// <summary>
/// The keyboard code for VolumeUp.
/// </summary>
VolumeUp ,
/// <summary>
/// The keyboard code for MediaNextTrack.
/// </summary>
MediaNextTrack ,
/// <summary>
/// The keyboard code for MediaPreviousTrack.
/// </summary>
MediaPreviousTrack ,
/// <summary>
/// The keyboard code for MediaStop.
/// </summary>
MediaStop ,
/// <summary>
/// The keyboard code for MediaPlayPause.
/// </summary>
MediaPlayPause ,
/// <summary>
/// The keyboard code for LaunchMail.
/// </summary>
LaunchMail ,
/// <summary>
/// The keyboard code for SelectMedia.
/// </summary>
SelectMedia ,
/// <summary>
/// The keyboard code for LaunchApplication1.
/// </summary>
LaunchApplication1 ,
/// <summary>
/// The keyboard code for LaunchApplication2.
/// </summary>
LaunchApplication2 ,
/// <summary>
/// The keyboard code for Semicolon.
/// </summary>
Semicolon ,
/// <summary>
/// The keyboard code for Plus.
/// </summary>
Plus ,
/// <summary>
/// The keyboard code for Comma.
/// </summary>
Comma ,
/// <summary>
/// The keyboard code for Period.
/// </summary>
Period ,
/// <summary>
/// The keyboard code for QuestionMark.
/// </summary>
QuestionMark ,
/// <summary>
/// The keyboard code for Tilde.
/// </summary>
Tilde ,
/// <summary>
/// The keyboard code for OpenBracket.
/// </summary>
OpenBracket ,
/// <summary>
/// The keyboard code for Pipe.
/// </summary>
Pipe ,
/// <summary>
/// The keyboard code for CloseBracket.
/// </summary>
CloseBracket,
/// <summary>
/// The keyboard code for Quotes.
/// </summary>
Quotes,
/// <summary>
/// The keyboard code for Backslash.
/// </summary>
Backslash ,
/// <summary>
/// The keyboard code for Shift.
/// </summary>
Shift ,
/// <summary>
/// The keyboard code for Control.
/// </summary>
Control ,
/// <summary>
/// The keyboard code for LeftAlt.
/// </summary>
LeftAlt,
/// <summary>
/// The keyboard code for RightAlt.
/// </summary>
RightAlt
}
/// <summary>
/// Various possible mouse buttons.
/// </summary>
public enum MouseButton {
Left,
Right,
Middle,
X1,
X2,
/// <summary>
/// Serves as the count of mouse buttons, since the int value assigned to this
/// will end up being the number of values before it.
/// </summary>
Count
}
/// <summary>
/// System key flag values.
/// </summary>
[Flags]
public enum SystemKey {
None = 0,
/// <summary>
/// The left mouse button.
/// </summary>
LeftMouse = 0x01,
/// <summary>
/// The right mouse button.
/// </summary>
RightMouse = 0x02,
/// <summary>
/// Either shift key.
/// </summary>
Shift = 0x04,
/// <summary>
/// Either control key.
/// </summary>
Control = 0x08,
/// <summary>
/// The middle mouse button.
/// </summary>
MiddleMouse = 0x10,
/// <summary>
/// The first 'extra' mouse button.
/// </summary>
X1Mouse = 0x20,
/// <summary>
/// The second 'extra' mouse button.
/// </summary>
X2Mouse = 0x40
}
#endregion Input
#region Diagnostics
/// <summary>
/// Various levels of logging during runtime.
/// </summary>
public enum LoggingLevel {
/// <summary>
/// Only actual error conditions will be logged.
/// </summary>
Errors,
/// <summary>
/// Basic events will be logged (default level).
/// </summary>
Standard,
/// <summary>
/// Useful tracing (object creations etc) information will be logged.
/// </summary>
Informative,
/// <summary>
/// Mostly everything gets logged (use for heavy tracing only, log WILL be big).
/// </summary>
Insane
}
#endregion Diagnostics
#region Graphics/Formatting
/// <summary>
/// Horizontal formatting options for a <see cref="RenderableImage"/>.
/// </summary>
public enum HorizontalImageFormat {
/// <summary>
/// Image will be rendered at it's natural size and with it's left edge aligned with the left edge of the RenderableImage rect.
/// </summary>
LeftAligned,
/// <summary>
/// Image will be rendered at it's natural size and with it's right edge aligned with the right edge of the RenderableImage rect.
/// </summary>
RightAligned,
/// <summary>
/// Image will be rendered at it's natural size and horizontally centered within the RenderableImage rect.
/// </summary>
Centered,
/// <summary>
/// Image will be horizontally stretched to cover the entire width of the RenderableImage rect.
/// </summary>
Stretched,
/// <summary>
/// Image will be tiled horizontally across the width of the RenderableImage rect. The rightmost tile will be clipped to remain within the rect.
/// </summary>
Tiled
}
/// <summary>
/// Contains valid formatting types that can be specified when rendering text into a <see cref="Rect"/> area (the formatting Rect).
/// </summary>
public enum HorizontalTextFormat {
/// <summary>
/// All text is printed on a single line.
/// The left-most character is aligned with the left edge of the formatting Rect.
/// </summary>
Left,
/// <summary>
/// All text is printed on a single line.
/// The right-most character is aligned with the right edge of the formatting Rect.
/// </summary>
Right,
/// <summary>
/// All text is printed on a single line.
/// The text is centred horizontally in the formatting Rect.
/// </summary>
Center,
/// <summary>
/// Text is broken into multiple lines no wider than the formatting Rect.
/// The left-most character of each line is aligned with the left edge of the formatting Rect.
/// </summary>
WordWrapLeft,
/// <summary>
/// Text is broken into multiple lines no wider than the formatting Rect.
/// The right-most character of each line is aligned with the right edge of the formatting Rect.
/// </summary>
WordWrapRight,
/// <summary>
/// Text is broken into multiple lines no wider than the formatting Rect.
/// Each line is centred horizontally in the formatting Rect.
/// </summary>
WordWrapCentered
}
/// <summary>
/// Vertical formatting options for a static text widgets.
/// </summary>
public enum VerticalTextFormat {
/// <summary>
/// Text is output with the top of first line of text aligned with the top edge of the widget.
/// </summary>
Top,
/// <summary>
/// Text is output with the bottom of last line of text aligned with the bottom edge of the widget.
/// </summary>
Bottom,
/// <summary>
/// Text is output vertically centered within the widget.
/// </summary>
Centered
}
/// <summary>
/// Vertical formatting options for a <see cref="RenderableImage"/>.
/// </summary>
public enum VerticalImageFormat {
/// <summary>
/// Image will be rendered at it's natural size and with it's top edge aligned with the top edge of the RenderableImage rect.
/// </summary>
TopAligned,
/// <summary>
/// Image will be rendered at it's natural size and with it's bottom edge aligned with the bottom edge of the RenderableImage rect.
/// </summary>
BottomAligned,
/// <summary>
/// Image will be rendered at it's natural size and vertically centered within the RenderableImage rect.
/// </summary>
Centered,
/// <summary>
/// Image will be vertically stretched to cover the entire height of the RenderableImage rect.
/// </summary>
Stretched,
/// <summary>
/// Image will be tiled vertically down the height of the RenderableImage rect. The bottommost tile will be clipped to remain within the rect.
/// </summary>
Tiled
}
/// <summary>
/// Mode used for Window size and position metrics.
/// </summary>
/// <remarks>
/// Position information for a Window is always 'relative' to it's parent even in Absolute mode.
/// In Relative mode, layout is maintained for different screen resolutions, and also offers the
/// ability for child windows to properly adjust their layout as their parent is sized.
/// </remarks>
public enum MetricsMode {
/// <summary>
/// Metrics are specified as a decimal fraction of parent Window size.
/// </summary>
Relative,
/// <summary>
/// Metrics are specified as whole pixels.
/// </summary>
Absolute,
/// <summary>
/// Metrics are inherited from parent.
/// </summary>
Inherited
}
#endregion Graphics/Formatting
#region Behavior
/// <summary>
/// The set of possible locations for the mouse on a frame windows sizing border.
/// </summary>
public enum SizingLocation {
/// <summary>
/// Position is not a sizing location.
/// </summary>
None,
/// <summary>
/// Position will size from the top-left.
/// </summary>
TopLeft,
/// <summary>
/// Position will size from the top-right.
/// </summary>
TopRight,
/// <summary>
/// Position will size from the bottom left.
/// </summary>
BottomLeft,
/// <summary>
/// Position will size from the bottom right.
/// </summary>
BottomRight,
/// <summary>
/// Position will size from the top.
/// </summary>
Top,
/// <summary>
/// Position will size from the left.
/// </summary>
Left,
/// <summary>
/// Position will size from the bottom.
/// </summary>
Bottom,
/// <summary>
/// Position will size from the right.
/// </summary>
Right
}
/// <summary>
/// Enumeration of possible values for sorting direction
/// as used with ListHeaderSegment, ListHeader, and MultiColumnList classes.
/// </summary>
public enum SortDirection {
/// <summary>
/// Items should not be sorted.
/// </summary>
None,
/// <summary>
/// Items should be sorted in ascending order.
/// </summary>
Ascending,
/// <summary>
/// Items should be sorted in descending order.
/// </summary>
Descending
}
/// <summary>
/// Enumerated values for the selection modes
/// possible with a Multi-column list / grid widget.
/// </summary>
public enum GridSelectionMode {
/// <summary>
/// Any single row may be selected. All items in the row are selected.
/// </summary>
RowSingle,
/// <summary>
/// Multiple rows may be selected. All items in the row are selected.
/// </summary>
RowMultiple,
/// <summary>
/// Any single cell may be selected.
/// </summary>
CellSingle,
/// <summary>
/// Multiple cells bay be selected.
/// </summary>
CellMultiple,
/// <summary>
/// Any single item in a nominated column may be selected.
/// </summary>
NominatedColumnSingle,
/// <summary>
/// Multiple items in a nominated column may be selected.
/// </summary>
NominatedColumnMultiple,
/// <summary>
/// Any single column may be selected. All items in the column are selected.
/// </summary>
ColumnSingle,
/// <summary>
/// Multiple columns may be selected. All items in the column are selected.
/// </summary>
ColumnMultiple,
/// <summary>
/// Any single item in a nominated row may be selected.
/// </summary>
NominatedRowSingle,
/// <summary>
/// Multiple items in a nominated row may be selected.
/// </summary>
NominatedRowMultiple
}
#endregion Behavior
#region Fonts
/// <summary>
/// Available options for use when creating fonts.
/// </summary>
[Flags]
public enum FontFlags {
/// <summary>
/// No options.
/// </summary>
None = 0,
/// <summary>
/// Bold glyphs.
/// </summary>
Bold = 1
}
#endregion Fonts
}
|