JdSoft/ActImg/actimg.h
2021-09-12 22:11:31 +02:00

73 lines
2.6 KiB
C++

//---------------------------------------------------------------------------
#ifndef ActImgH
#define ActImgH
//---------------------------------------------------------------------------
#include <vcl\SysUtils.hpp>
#include <vcl\Controls.hpp>
#include <vcl\Classes.hpp>
#include <vcl\Forms.hpp>
#include <vcl\ExtCtrls.hpp>
//---------------------------------------------------------------------------
class PACKAGE TActiveImage : public TCustomControl
{
private:
// bool mcaptured;
enum CStates { CSt_NORMAL, CSt_PRESS, CSt_OVER } CState;
void __fastcall MouseMove( Classes::TShiftState Shift, int X, int Y);
void __fastcall MouseDown( TMouseButton Button, Classes::TShiftState Shift, int X, int Y);
void __fastcall MouseUp( TMouseButton Button, Classes::TShiftState Shift, int X, int Y);
protected:
bool MouseCaptured;
void __fastcall Paint();
void __fastcall CreateParams(TCreateParams &Params);
void __fastcall SetGlyphOver( Graphics::TBitmap *val );
void __fastcall SetGlyphPress( Graphics::TBitmap *val );
void __fastcall SetGlyphNormal( Graphics::TBitmap *val );
bool vAutoSize;
void __fastcall SetAutoSize( bool val );
MESSAGE void __fastcall CMMouseEnter ( TMessage& Msg );
MESSAGE void __fastcall CMMouseLeave ( TMessage& Msg );
public:
Graphics::TBitmap *GlyphOver,*GlyphNormal, *GlyphPress;
Graphics::TCanvas *RCanvas;
__fastcall TActiveImage(TComponent* Owner);
__fastcall ~TActiveImage();
__published:
__property Graphics::TBitmap *Glyph_Normal={read=GlyphNormal, write=SetGlyphNormal};
__property Graphics::TBitmap *Glyph_Over={read=GlyphOver, write=SetGlyphOver};
__property Graphics::TBitmap *Glyph_Press={read=GlyphPress, write=SetGlyphPress};
__property bool AutoSize={read=vAutoSize, write=SetAutoSize, default=false };
/*
__property TMouseEvent OnMouseDown = {read=FOnMouseDown, write=FOnMouseDown};
__property TMouseMoveEvent OnMouseMove = {read=FOnMouseMove, write=FOnMouseMove};
__property TMouseEvent OnMouseUp = {read=FOnMouseUp, write=FOnMouseUp};
__property Classes::TNotifyEvent OnClick = {read=FOnClick, write=FOnClick};
__property Classes::TNotifyEvent OnDblClick = {read=FOnDblClick, write=FOnDblClick};
*/
__property OnMouseDown;
__property OnMouseMove;
__property OnMouseUp;
__property OnClick;
__property OnDblClick;
BEGIN_MESSAGE_MAP
VCL_MESSAGE_HANDLER ( CM_MOUSEENTER, TMessage, CMMouseEnter )
VCL_MESSAGE_HANDLER ( CM_MOUSELEAVE, TMessage, CMMouseLeave )
END_MESSAGE_MAP(inherited);
};
//---------------------------------------------------------------------------
#endif