/*
 * Xailer source code:
 *
 * Shape.prg
 * Clase TShape
 *
 * Copyright 2022 Jose F. Gimenez
 * Copyright 2022 Xailer.com
 * All rights reserved
 *
 */

#include "Xailer.ch"

CLASS XShape FROM TWinControl

PUBLISHED:
   PROPERTY nWidth      INIT 100
   PROPERTY nHeight     INIT 100

   PROPERTY nShapeType  INIT stHORZLINE   VALUES stHORZLINE, stVERTLINE, stRECTANGLE, stPOLYGON, stCURVEDPOLYGON, stSTAR, stCURVEDSTAR, stELLIPSE
   PROPERTY nClrLine    INIT clBlack   EDITOR PE_Color    WRITE INLINE ::FnClrLine := Value, ::Refresh()
   PROPERTY nLineWidth  INIT 1      WRITE INLINE ::FnLineWidth := Value, ::Refresh()
   PROPERTY nVertices   INIT 0      WRITE INLINE ::FnVertices  := Value, ::Refresh()
   PROPERTY nRadius     INIT 0      WRITE INLINE ::FnRadius    := Value, ::Refresh()
   PROPERTY lFillShape  INIT .F.    WRITE INLINE ::FlFillShape := Value, ::Refresh()
   PROPERTY nOpacity    INIT 0

RESERVED:
   PROPERTY nBorderStyle INIT bvNONE
   PROPERTY lBorder      INIT .F.
   PROPERTY lTransparent
   PROPERTY nGradient
   PROPERTY cText
   PROPERTY cMessage
   PROPERTY lParentFont
   PROPERTY oFont
   PROPERTY oCursor
   PROPERTY oBrush
   PROPERTY nClrText
   PROPERTY nClrPaneEnd
   PROPERTY cTooltip
   PROPERTY cBalloon
   PROPERTY cTooltipTitle
   PROPERTY nTooltipIcon
   PROPERTY HelpId
   PROPERTY nVAlignment
   PROPERTY nBkgndMarginX
   PROPERTY nBkgndMarginY
   PROPERTY nBkgndMode
   PROPERTY oBkgnd

   EVENT OnLButtonDown( oSender, nKeyFlags, nPosX, nPosY ) // --> Nil
   EVENT OnLButtonUp( oSender, nKeyFlags, nPosX, nPosY ) // --> Nil
   EVENT OnDblClick( oSender, nKeyFlags, nPosX, nPosY ) // --> Nil
   EVENT OnRButtonDown( oSender, nKeyFlags, nPosX, nPosY ) // --> Nil
   EVENT OnRButtonUp( oSender, nKeyFlags, nPosX, nPosY ) // --> Nil
   EVENT OnMouseMove( oSender, nKeyFlags, nPosX, nPosY ) // --> Nil
   EVENT OnShow( oSender ) // --> Nil
   EVENT OnHide( oSender ) // --> Nil
   EVENT OnBeginDrag( oSender, nPosX, nPosY ) // --> lResult
   EVENT OnEndDrag( oSender, oFrom, nPosX, nPosY ) // --> Nil
   EVENT OnClick( oSender ) // --> Nil
   EVENT OnDispTooltip( oSender, @cText, @cTitle, @nIcon, nItem ) // --> Nil
   EVENT OnPaint( oSender, hDC, @cPaintStruct ) // --> Nil
   EVENT OnPainted( oSender, hDC, @cPaintStruct ) // --> Nil

   METHOD WMEraseBkgnd()   INLINE 1
   METHOD WMPaint()
   METHOD WMPrintClient()  EXTERN XShape_WMPaint()

ENDCLASS

//------------------------------------------------------------------------------
