Tulip.UI.Types.pas

Source Files

{******************************************************************************}
{                                                                              }
{                        Tulip - User Interface Library                        }
{                                                                              }
{             Copyright(c) 2012 Marcos Gomes. All rights Reserved.             }
{                                                                              }
{  --------------------------------------------------------------------------  }
{                                                                              }
{  This product is based on Asphyre Sphinx (c) 2000 - 2012  Yuriy Kotsarenko.  }
{       All rights reserved. Official web site: http://www.afterwarp.net       }
{                                                                              }
{******************************************************************************}
{                                                                              }
{  Important Notice:                                                           }
{                                                                              }
{  If you modify/use this code or one of its parts either in original or       }
{  modified form, you must comply with Mozilla Public License Version 2.0,     }
{  including section 3, "Responsibilities". Failure to do so will result in    }
{  the license breach, which will be resolved in the court. Remember that      }
{  violating author's rights either accidentally or intentionally is           }
{  considered a serious crime in many countries. Thank you!                    }
{                                                                              }
{  !! Please *read* Mozilla Public License 2.0 document located at:            }
{  http://www.mozilla.org/MPL/                                                 }
{                                                                              }
{  --------------------------------------------------------------------------  }
{                                                                              }
{  The contents of this file are subject to the Mozilla Public License         }
{  Version 2.0 (the "License"); you may not use this file except in            }
{  compliance with the License. You may obtain a copy of the License at        }
{  http://www.mozilla.org/MPL/                                                 }
{                                                                              }
{  Software distributed under the License is distributed on an "AS IS"         }
{  basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the     }
{  License for the specific language governing rights and limitations          }
{  under the License.                                                          }
{                                                                              }
{  The Original Code is Tulip.UI.Types.pas.                                    }
{                                                                              }
{  The Initial Developer of the Original Code is Marcos Gomes.                 }
{  Portions created by Marcos Gomes are Copyright (C) 2012, Marcos Gomes.      }
{  All Rights Reserved.                                                        }
{                                                                              }
{******************************************************************************}
{                                                                              }
{  Tulip.UI.Types.pas                                   Modified: 05-Out-2012  }
{  --------------------------------------------------------------------------  }
{                                                                              }
{                      Type definitions used by Controls                       }
{                                                                              }
{                                Version 1.02                                  }
{                                                                              }
{******************************************************************************}

unit Tulip.UI.Types;

interface

uses
  Winapi.Messages, System.Classes, System.Types, System.UITypes;

const
{$REGION 'Cursors'}
  crDefault = System.UITypes.crDefault;
  crNone = System.UITypes.crNone;
  crArrow = System.UITypes.crArrow;
  crCross = System.UITypes.crCross;
  crIBeam = System.UITypes.crIBeam;
  crSize = System.UITypes.crSize;
  crSizeNESW = System.UITypes.crSizeNESW;
  crSizeNS = System.UITypes.crSizeNS;
  crSizeNWSE = System.UITypes.crSizeNWSE;
  crSizeWE = System.UITypes.crSizeWE;
  crUpArrow = System.UITypes.crUpArrow;
  crHourGlass = System.UITypes.crHourGlass;
  crDrag = System.UITypes.crDrag;
  crNoDrop = System.UITypes.crNoDrop;
  crHSplit = System.UITypes.crHSplit;
  crVSplit = System.UITypes.crVSplit;
  crMultiDrag = System.UITypes.crMultiDrag;
  crSQLWait = System.UITypes.crSQLWait;
  crNo = System.UITypes.crNo;
  crAppStart = System.UITypes.crAppStart;
  crHelp = System.UITypes.crHelp;
  crHandPoint = System.UITypes.crHandPoint;
  crSizeAll = System.UITypes.crSizeAll;
{$ENDREGION}
{$REGION 'MouseButtons'}
  mbLeft = System.UITypes.TMouseButton.mbLeft;
  mbRight = System.UITypes.TMouseButton.mbRight;
  mbMiddle = System.UITypes.TMouseButton.mbMiddle;
{$ENDREGION}

type

{$REGION 'Controls'}
  TAColor = Cardinal;

  TEdge = (eLeft, eTop, eRight, eBottom);
  TEdges = set of Tulip.UI.Types.TEdge;
  TConstraintSize = 0 .. MaxInt;

  TControlState = set of (csLButtonDown, csClicked, csPalette, csReadingState,
    csAlignmentNeeded, csFocusing, csCreating, csPaintCopy, csCustomPaint,
    csDestroyingHandle, csDocking, csDesignerHide, csPanning, csRecreating,
    csAligning, csGlassPaint, csPrintClient, csMouseHover);

  TFocusRect = (fNone, fLight, fDark);

  TMouseButton = System.UITypes.TMouseButton;

  TProgressDisplay = (pdNone, pdValue, pdPercentage, pdCustom);

  TTabOrder = System.UITypes.TTabOrder;

  TUpDownType = (udNone, udUp, udDown);

{$ENDREGION}
{$REGION 'Events'}
  TMouseEvent = procedure(Sender: TObject; Button: TMouseButton;
    Shift: TShiftState; X, Y: Integer) of object;

  TMouseMoveEvent = procedure(Sender: TObject; Shift: TShiftState;
    X, Y: Integer) of object;

  TKeyEvent = procedure(Sender: TObject; var Key: Word; Shift: TShiftState)
    of object;

  TKeyPressEvent = procedure(Sender: TObject; var Key: Char) of object;

  TMouseWheelEvent = procedure(Sender: TObject; Shift: TShiftState;
    WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean) of object;

  TMouseWheelUpDownEvent = procedure(Sender: TObject; Shift: TShiftState;
    MousePos: TPoint; var Handled: Boolean) of object;

  TShortCutEvent = procedure(var Msg: TWMKey; var Handled: Boolean) of object;
{$ENDREGION}
{$REGION 'Text'}
  TStringArray = array of String;

  TSelection = record
    StartPos, EndPos: Integer;
  end;

  TAChar = record
    Char: Char;
    Width: Integer;
  end;

  TAChars = array of Tulip.UI.Types.TAChar;
  TEditCharCase = (ecNormal, ecUpperCase, ecLowerCase);

  THorizontalAlign = (aLeft, aCenter, aRight, aJustify);

  TVerticalAlign = (aTop, aMiddle, aBottom);

{$ENDREGION}

implementation

end.