const
{$IFDEF PAIDVERS}
SDLVersionInfo = 'thumbnails_r1210_full';
IsLightEd = false;
{$ELSE}
SDLVersionInfo = 'thumbnails_r1210_lighted';
IsLightEd = true;
{$ENDIF}
Release = 1210;
type
TImageRequestProcessing = (irpShowEmpty, irpShowSlide,
irpShowFrameOnly, irpShowNothing);
TImageRequestEvent = procedure (Sender: TObject; ThumbID: integer;
var HowToProcess: TImageRequestProcessing;
var MarkIt: integer; var ImgBuffer: TBitMap) of object;
TImageClickEvent = procedure (Sender: TObject; X, Y: integer;
ThumbID: integer) of object;
TSlideRenderedEvent = procedure (Sender: TObject; Canvas: TCanvas;
X, Y: integer; ThumbID: integer) of object;
TSlideSelectMode = (ssmDisabled, ssmSingle, ssmMultiple);
{$IFDEF GE_LEV29}
[ComponentPlatformsAttribute(pidWin32 or pidWin64 or pidWin64x)]
{$ENDIF}
TThumbnails = class (TGraphicControl)
private
FFrameStyle : TFrameStyle; { style of frame }
FColorBG : TColor; { color of label background }
FColBlackLine : TColor; { colors to draw the frame }
FColGrayLine : TColor; { -"- }
FColWhiteLine : TColor; { -"- }
FColorScheme : TColorScheme; { color scheme of frames }
FFirstThumbIx : double; { index of first displayed thumbnail }
FMin : integer;
FMax : integer;
FNumSldX : integer;{ no. of visible slides in horiz. dir. }
FNumSldY : integer; { no. of visible slides in vert. dir. }
FThumbBaseSize : integer;
FSLideDist : integer; { distance between slides }
FSlideMargin : integer;
FOuterFrameStyle : TFrameStyle; { style of outer slide frame }
FInnerFrameStyle : TFrameStyle; { style of inner slide frame }
FOnImageRequest : TImageRequestEvent;
FOnSlideRendered : TSlideRenderedEvent;
FOnImageClick : TImageClickEvent;
FOnImageDblClick : TImageClickEvent;
FOnHiliteChange : TNotifyEvent;
FOnFirstImgRequ : TNotifyEvent;
FOnLastImgRequ : TNotifyEvent;
FAntiAlias : boolean;
FColorCover : TColor;
FColorSelected : TColor;
FColorHilite : TColor;
FMarkColor : TColor;
FLastHiLite : integer;
FHiliteThickness : integer;
FIsWorking : boolean;
FSelectedSlide : TBitFld;
FSelectMode : TSlideSelectMode;
FLastClickedSlide: integer;
procedure WMImageClick (var Msg: TWMMouse); message WM_LBUTTONUP;
procedure WMImageDblClick (var Msg: TWMMouse); message WM_LBUTTONDBLCLK;
function GetSelectedSlide (sldnum: integer): boolean;
procedure SetColorBG (Value: TColor);
procedure SetColorCover (Value: TColor);
procedure SetColorSelected (Value: TColor);
procedure SetColorHilite (Value: TColor);
procedure SetMarkColor (Value: TColor);
procedure SetBaseSize (Value: integer);
procedure SetHiliteThickn (Value: integer);
procedure SetFirstThumbIx (Value: double);
procedure SetFMin (Value: integer);
procedure SetFMax (Value: integer);
procedure SetAntiAlias (value: boolean);
procedure SetSlideMargin (Value: integer);
procedure SetSlideDist (Value: integer);
procedure SetColorScheme (Value: TColorScheme);
procedure SetFrameStyle (value: TFrameStyle);
procedure SetOuterFrameStyle (value: TFrameStyle);
procedure SetInnerFrameStyle (value: TFrameStyle);
procedure SetSelectedSlide (sldnum: integer; value: boolean);
procedure SetSlideSelectMode (value: TSlideSelectMode);
protected
procedure AssignTo (Dest: TPersistent); override;
procedure MouseMove (Shift: TShiftState; X,Y: integer); override;
procedure HiLite (ix: integer);
procedure ResetLastHiLite;
public
procedure Assign(Source: TPersistent); override;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
property FirstThumbIdx: double
read FFirstThumbIx write SetFirstThumbIx;
function FirstSelectedSlide: integer;
property NumSlidesHoriz: integer read FNumSldX;
property NumSlidesVert: integer read FNumSldY;
function NumSlidesSelected: integer;
function CalcSlideIndex (XPos, YPos: integer): integer;
procedure CalcSlidePos (SldNum: integer; var XPos, YPos: integer);
procedure Paint; override;
procedure ResetAllSelections;
property SlideSelected[SldNum: integer]: boolean
read GetSelectedSlide write SetSelectedSlide;
published
property Align;
property SlideSelectMode: TSlideSelectMode
read FSelectMode write SetSlideSelectMode;
property Anchors;
property AntiAlias: boolean read FAntiAlias write SetAntiAlias;
property ColorBackGnd: TColor read FColorBG write SetColorBG;
property ColorCover: TColor read FColorCover write SetColorCover;
property ColorSelected: TColor
read FColorSelected write SetColorSelected;
property ColorFocus: TColor read FColorHilite write SetColorHilite;
property ColorMark: TColor read FMarkColor write SetMarkColor;
property ColorScheme: TColorScheme
read FColorScheme write SetColorScheme;
property DragCursor;
property DragMode;
property Enabled;
property Font;
property FrameStyle: TFrameStyle read FFrameStyle write SetFrameStyle;
property FocusLinewidth: integer
read FHiliteThickness write SetHiliteThickn;
property FocusedSlide: integer read FLastHilite;
property InnerFrameStyle: TFrameStyle
read FInnerFrameStyle write SetInnerFrameStyle;
property Max: integer read FMax write SetFMax;
property Min: integer read FMin write SetFMin;
property OuterFrameStyle: TFrameStyle
read FOuterFrameStyle write SetOuterFrameStyle;
property ParentFont;
property ParentShowHint;
property PopupMenu;
property ShowHint;
property SlideSize: integer read FThumbBaseSize write SetBaseSize;
property SlideDistance: integer read FSlideDist write SetSlideDist;
property SlideMargin: integer read FSlideMargin write SetSlideMargin;
{$IFDEF GE_LEV17}
(**) property StyleElements;
{$ENDIF}
property Visible;
property OnClick;
property OnDblClick;
property OnMouseMove;
property OnMouseDown;
property OnMouseUp;
property OnStartDrag;
property OnDragDrop;
property OnEndDrag;
property OnDragOver;
property OnImageRequest: TImageRequestEvent
read FOnImageRequest write FOnImageRequest;
property OnImageClick: TImageClickEvent
read FOnImageClick write FOnImageClick;
property OnImageDblClick: TImageClickEvent
read FOnImageDblClick write FOnImageDblClick;
property OnFocusChange: TNotifyEvent
read FOnHiliteChange write FOnHiliteChange;
property OnFirstImageRequest: TNotifyEvent
read FOnFirstImgRequ write FOnFirstImgRequ;
property OnLastImageRequest: TNotifyEvent
read FOnLastImgRequ write FOnLastImgRequ;
property OnSlideRendered: TSlideRenderedEvent
read FOnSlideRendered write FOnSlideRendered;
property OnResize;
end;
|