mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-05 04:47:50 +02:00
260 lines
5.7 KiB
PHP
260 lines
5.7 KiB
PHP
{%MainUnit ../extctrls.pp}
|
|
{
|
|
*****************************************************************************
|
|
This file is part of the Lazarus Component Library (LCL)
|
|
|
|
See the file COPYING.modifiedLGPL.txt, included in this distribution,
|
|
for details about the license.
|
|
*****************************************************************************
|
|
}
|
|
constructor TBevel.Create(AOwner:TComponent);
|
|
begin
|
|
inherited Create(AOwner);
|
|
ControlStyle := ControlStyle - [csSetCaption,csOpaque];
|
|
FStyle := bsLowered;
|
|
FShape := bsBox;
|
|
|
|
with GetControlClassDefaultSize do
|
|
SetInitialBounds(0, 0, CX, CY);
|
|
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.SetStyle(AStyle: TBevelStyle);
|
|
begin
|
|
if FStyle <> AStyle Then
|
|
begin
|
|
FStyle := AStyle;
|
|
Invalidate;
|
|
end;
|
|
end;
|
|
|
|
procedure TBevel.SetShape(AShape:TBevelShape);
|
|
begin
|
|
if FShape <> AShape then
|
|
begin
|
|
FShape := AShape;
|
|
Invalidate;
|
|
end;
|
|
end;
|
|
|
|
class procedure TBevel.WSRegisterClass;
|
|
begin
|
|
RegisterPropertyToSkip(Self, 'ParentCustomHint', 'VCL compatibility property', '');
|
|
inherited WSRegisterClass;
|
|
RegisterBevel;
|
|
end;
|
|
|
|
class function TBevel.GetControlClassDefaultSize: TSize;
|
|
begin
|
|
Result.CX := 50;
|
|
Result.CY := 50;
|
|
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;
|
|
bsSpacer: ;//nothing
|
|
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;
|
|
}
|
|
|