mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-06-04 16:38:16 +02:00
266 lines
6.0 KiB
PHP
266 lines
6.0 KiB
PHP
{%MainUnit ../extctrls.pp}
|
|
{
|
|
*****************************************************************************
|
|
* *
|
|
* This file is part of the Lazarus Component Library (LCL) *
|
|
* *
|
|
* See the file COPYING.modifiedLGPL, included in this distribution, *
|
|
* for details about the copyright. *
|
|
* *
|
|
* This program 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. *
|
|
* *
|
|
*****************************************************************************
|
|
}
|
|
Constructor TBevel.Create(AOwner:TComponent);
|
|
Begin
|
|
Inherited Create(AOwner);
|
|
ControlStyle:=ControlStyle-[csSetCaption,csOpaque];
|
|
FStyle:=bsLowered;
|
|
FShape:=bsBox;
|
|
|
|
SetBounds(0,0,50,50);
|
|
End;
|
|
|
|
Destructor TBevel.Destroy;
|
|
Begin
|
|
Inherited Destroy;
|
|
End;
|
|
|
|
procedure TBevel.Assign(Source: TPersistent);
|
|
begin
|
|
if Source is TBevel then
|
|
begin
|
|
FShape := TBevel(Source).Shape;
|
|
FStyle := TBevel(Source).Style;
|
|
end else
|
|
inherited;
|
|
end;
|
|
|
|
Procedure TBevel.Invalidate;
|
|
Begin
|
|
if Canvas.HandleAllocated then Paint;
|
|
End;
|
|
|
|
Function TBevel.GetStyle:TBevelStyle;
|
|
Begin
|
|
Result:=FStyle;
|
|
End;
|
|
|
|
Procedure TBevel.SetStyle(aStyle:TBevelStyle);
|
|
Begin
|
|
If FStyle<>aStyle Then
|
|
Begin
|
|
FStyle:=aStyle;
|
|
Invalidate;
|
|
End;
|
|
End;
|
|
|
|
Function TBevel.GetShape:TBevelShape;
|
|
Begin
|
|
Result:=FShape;
|
|
End;
|
|
|
|
Procedure TBevel.SetShape(aShape:TBevelShape);
|
|
Begin
|
|
If FShape<>aShape Then
|
|
Begin
|
|
FShape:=aShape;
|
|
Invalidate;
|
|
End;
|
|
End;
|
|
|
|
Procedure TBevel.Paint;
|
|
Var
|
|
Colora, Colorb: TColor;
|
|
ALeft, ATop: integer;
|
|
AWidth: LongInt;
|
|
AHeight: LongInt;
|
|
Begin
|
|
Case Style Of
|
|
bsRaised:
|
|
Begin
|
|
Colora:=cl3DHilight;
|
|
Colorb:=cl3DShadow;
|
|
End;
|
|
bsLowered:
|
|
Begin
|
|
Colora:=cl3DShadow;
|
|
Colorb:=cl3DHilight;
|
|
End;
|
|
End;
|
|
Canvas.Pen.Width:=1;
|
|
|
|
ALeft:=0;
|
|
ATop:=0;
|
|
AWidth:=Width;
|
|
AHeight:=Height;
|
|
|
|
Case Shape Of
|
|
bsBox:
|
|
With Canvas Do
|
|
Begin
|
|
Pen.Color:=Colora;
|
|
MoveTo(ALeft, ATop + AHeight - 1);
|
|
LineTo(ALeft, ATop);
|
|
LineTo(ALeft + AWidth - 1, ATop);
|
|
Pen.Color:=Colorb;
|
|
LineTo(ALeft + AWidth - 1, ATop + AHeight - 1);
|
|
LineTo(ALeft , ATop + AHeight - 1);
|
|
End;
|
|
bsFrame:
|
|
With Canvas Do
|
|
Begin
|
|
Pen.Color:=Colora;
|
|
MoveTo(ALeft, ATop + AHeight - 1);
|
|
LineTo(ALeft, ATop);
|
|
LineTo(ALeft + AWidth - 1, ATop);
|
|
MoveTo(ALeft + AWidth - 2, ATop + 1);
|
|
LineTo(ALeft + AWidth - 2, ATop + AHeight - 2);
|
|
LineTo(ALeft + 1, ATop + AHeight - 2);
|
|
Pen.Color:=Colorb;
|
|
MoveTo(ALeft + 1, ATop + AHeight - 2);
|
|
LineTo(ALeft + 1, ATop + 1);
|
|
LineTo(ALeft + AWidth - 2, ATop + 1);
|
|
MoveTo(ALeft + AWidth - 1, ATop);
|
|
LineTo(ALeft + AWidth - 1, ATop + AHeight - 1);
|
|
LineTo(ALeft, ATop + AHeight - 1);
|
|
End;
|
|
bsTopLine:
|
|
With Canvas Do
|
|
Begin
|
|
Pen.Color:=Colora;
|
|
MoveTo(ALeft, ATop);
|
|
LineTo(ALeft + AWidth - 1, ATop);
|
|
Pen.Color:=Colorb;
|
|
MoveTo(ALeft, ATop + 1);
|
|
LineTo(ALeft + AWidth - 1, ATop + 1);
|
|
End;
|
|
bsBottomLine:
|
|
With Canvas Do
|
|
Begin
|
|
Pen.Color:=Colorb;
|
|
MoveTo(ALeft, ATop + AHeight - 1);
|
|
LineTo(ALeft + AWidth - 1, ATop + AHeight - 1);
|
|
Pen.Color:=Colora;
|
|
MoveTo(ALeft, ATop + AHeight - 2);
|
|
LineTo(ALeft + AWidth - 1, ATop + AHeight - 2);
|
|
End;
|
|
bsLeftLine:
|
|
With Canvas Do
|
|
Begin
|
|
Pen.Color:=Colora;
|
|
MoveTo(ALeft, ATop);
|
|
LineTo(ALeft, ATop + AHeight - 1);
|
|
Pen.Color:=Colorb;
|
|
MoveTo(ALeft + 1, ATop);
|
|
LineTo(ALeft + 1, ATop + AHeight - 1);
|
|
End;
|
|
bsRightLine:
|
|
With Canvas Do
|
|
Begin
|
|
Pen.Color:=Colorb;
|
|
MoveTo(ALeft + AWidth - 1, ATop);
|
|
LineTo(ALeft + AWidth - 1, ATop + AHeight - 1);
|
|
Pen.Color:=Colora;
|
|
MoveTo(ALeft + AWidth - 2, ATop);
|
|
LineTo(ALeft + AWidth - 2, ATop + AHeight);
|
|
End;
|
|
End;
|
|
|
|
inherited Paint;
|
|
End;
|
|
|
|
// included by extctrls.pp
|
|
|
|
{
|
|
Procedure TBevel.Paint;
|
|
Var
|
|
Colora, Colorb:TColor;
|
|
Begin
|
|
Case Style Of
|
|
bsRaised:
|
|
Begin
|
|
Colora:=clSilver;
|
|
Colorb:=clGray;
|
|
End;
|
|
bsLowered:
|
|
Begin
|
|
Colora:=clGray;
|
|
Colorb:=clSilver;
|
|
End;
|
|
End;
|
|
Case Shape Of
|
|
bsBox:
|
|
With Canvas Do
|
|
Begin
|
|
Pen.Color:=Colora;
|
|
MoveTo(0, Height - 1);
|
|
LineTo(0, 0);
|
|
LineTo(Width - 1, 0);
|
|
Pen.Color:=Colorb;
|
|
LineTo(Width - 1, Height - 1);
|
|
LIneTo(0, Height - 1);
|
|
End;
|
|
bsFrame:
|
|
With Canvas Do
|
|
Begin
|
|
Pen.Color:=Colora;
|
|
MoveTo(0, 0);
|
|
LineTo(Width - 2, 0);
|
|
LineTo(Width - 2, Height - 2);
|
|
LineTo(0, Height - 2);
|
|
LineTo(0, 0);
|
|
Pen.Color:=Colorb;
|
|
MoveTo(1, 1);
|
|
LineTo(Width - 1, 1);
|
|
LineTo(Width - 1, Height - 1);
|
|
LineTo(1, Height - 1);
|
|
LineTo(1, 1);
|
|
End;
|
|
bsTopLine:
|
|
With Canvas Do
|
|
Begin
|
|
Pen.Color:=Colora;
|
|
MoveTo(0, 0);
|
|
LineTo(Width - 1, 0);
|
|
Pen.Color:=Colorb;
|
|
MoveTo(0, 1);
|
|
LineTo(Width - 1, 1);
|
|
End;
|
|
bsBottomLine:
|
|
With Canvas Do
|
|
Begin
|
|
Pen.Color:=Colorb;
|
|
MoveTo(0, Height - 1);
|
|
LineTo(Width - 1, Height - 1);
|
|
Pen.Color:=Colora;
|
|
MoveTo(0, Height - 2);
|
|
LineTo(Width - 1, Height - 2);
|
|
End;
|
|
bsLeftLine:
|
|
With Canvas Do
|
|
Begin
|
|
Pen.Color:=Colora;
|
|
MoveTo(0, 0);
|
|
LineTo(0, Height - 1);
|
|
Pen.Color:=Colorb;
|
|
MoveTo(1, 0);
|
|
LineTo(1, Height - 1);
|
|
End;
|
|
bsRightLine:
|
|
With Canvas Do
|
|
Begin
|
|
Pen.Color:=Colorb;
|
|
MoveTo(Width - 1, 0);
|
|
LineTo(Width - 1, Height - 1);
|
|
Pen.Color:=Colora;
|
|
MoveTo(Width - 2, 0);
|
|
LineTo(Width - 2, Height);
|
|
End;
|
|
End;
|
|
End;
|
|
}
|
|
|