mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-05-26 02:22:50 +02:00
162 lines
4.3 KiB
PHP
162 lines
4.3 KiB
PHP
{%MainUnit ../extctrls.pp}
|
|
|
|
{******************************************************************************
|
|
TControlBar
|
|
******************************************************************************
|
|
|
|
*****************************************************************************
|
|
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.
|
|
*****************************************************************************
|
|
|
|
}
|
|
|
|
{ TCustomControlBar }
|
|
|
|
constructor TCustomControlBar.Create(AOwner: TComponent);
|
|
begin
|
|
inherited Create(AOwner);
|
|
ControlStyle := [csAcceptsControls, csCaptureMouse, csClickEvents,
|
|
csDoubleClicks, csOpaque, csParentBackground];
|
|
FAutoDrag := True;
|
|
FAutoDock := True;
|
|
DragMode := dmAutomatic;
|
|
FPicture := TPicture.Create;
|
|
// FPicture.OnChange := @PictureChanged;
|
|
FRowSize := 26;
|
|
FRowSnap := True;
|
|
DoubleBuffered := True;
|
|
DockSite := True;
|
|
Width := 100;
|
|
Height := 50;
|
|
end;
|
|
|
|
destructor TCustomControlBar.Destroy;
|
|
begin
|
|
FPicture.Free;
|
|
inherited Destroy;
|
|
end;
|
|
|
|
procedure TCustomControlBar.AlignControls(aControl: TControl; var aRect: TRect);
|
|
begin
|
|
// ToDo: The layout algorithm must be implemented here.
|
|
// DebugLn('TCustomControlBar.AlignControls');
|
|
end;
|
|
|
|
function TCustomControlBar.CanAutoSize(var NewWidth, NewHeight: Integer): Boolean;
|
|
begin
|
|
Result := inherited CanAutoSize(NewWidth, NewHeight);
|
|
// DebugLn('TCustomControlBar.CanAutoSize');
|
|
end;
|
|
|
|
procedure TCustomControlBar.SetPicture(aValue: TPicture);
|
|
begin
|
|
FPicture.Assign(aValue);
|
|
end;
|
|
|
|
procedure TCustomControlBar.CreateParams(var aParams: TCreateParams);
|
|
begin
|
|
inherited CreateParams(aParams);
|
|
end;
|
|
|
|
procedure TCustomControlBar.DoBandMove(aControl: TControl; var aRect: TRect);
|
|
begin
|
|
// DebugLn('TCustomControlBar.DoBandMove');
|
|
if Assigned(FOnBandMove) then
|
|
FOnBandMove(Self, aControl, aRect);
|
|
end;
|
|
|
|
procedure TCustomControlBar.DoBandPaint(aControl: TControl; aCanvas: TCanvas;
|
|
var aRect: TRect; var aOptions: TBandPaintOptions);
|
|
begin
|
|
if Assigned(FOnBandPaint) then
|
|
FOnBandPaint(Self, aControl, aCanvas, aRect, aOptions);
|
|
end;
|
|
|
|
procedure TCustomControlBar.DockOver(aSource: TDragDockObject; X, Y: Integer;
|
|
aState: TDragState; var Accept: Boolean);
|
|
begin
|
|
inherited DockOver(aSource, X, Y, aState, Accept);
|
|
// DebugLn('TCustomControlBar.DockOver');
|
|
end;
|
|
|
|
function TCustomControlBar.DragControl(aControl: TControl; X, Y: Integer;
|
|
KeepCapture: Boolean): Boolean;
|
|
begin
|
|
// DebugLn('TCustomControlBar.DragControl');
|
|
Result := True;
|
|
if Assigned(aControl) and Assigned(FOnBandDrag) then
|
|
FOnBandDrag(Self, aControl, Result);
|
|
if Result then
|
|
aControl.BeginDrag(True);
|
|
end;
|
|
|
|
procedure TCustomControlBar.GetControlInfo(aControl: TControl;
|
|
var Insets: TRect; var PreferredSize, RowCount: Integer);
|
|
begin
|
|
if RowCount = 0 then
|
|
RowCount := 1;
|
|
if Assigned(FOnBandInfo) then
|
|
FOnBandInfo(Self, aControl, Insets, PreferredSize, RowCount);
|
|
end;
|
|
|
|
function TCustomControlBar.GetPalette: HPALETTE;
|
|
begin
|
|
if FPicture.Graphic <> nil then
|
|
Result := FPicture.Graphic.Palette
|
|
else
|
|
Result := 0;
|
|
end;
|
|
|
|
function TCustomControlBar.DoDragMsg(ADragMessage: TDragMessage; APosition: TPoint;
|
|
ADragObject: TDragObject; ATarget: TControl; ADocking: Boolean): LRESULT;
|
|
begin
|
|
// DebugLn('TCustomControlBar.DoDragMsg');
|
|
Result:=inherited DoDragMsg(ADragMessage, APosition, ADragObject, ATarget, ADocking);
|
|
end;
|
|
|
|
procedure TCustomControlBar.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
|
begin
|
|
// DebugLn('TCustomControlBar.MouseDown_1');
|
|
inherited MouseDown(Button, Shift, X, Y);
|
|
// ToDo
|
|
end;
|
|
|
|
procedure TCustomControlBar.MouseMove(Shift: TShiftState; X, Y: Integer);
|
|
begin
|
|
// DebugLn('TCustomControlBar.MouseMove_1');
|
|
inherited MouseMove(Shift, X, Y);
|
|
// ToDo
|
|
end;
|
|
|
|
procedure TCustomControlBar.MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
|
var
|
|
Cntrl: TControl;
|
|
begin
|
|
// DebugLn('TCustomControlBar.MouseUp');
|
|
// ToDo
|
|
if Assigned(FDragControl) then
|
|
begin
|
|
end;
|
|
inherited MouseUp(Button, Shift, X, Y);
|
|
end;
|
|
|
|
procedure TCustomControlBar.Paint;
|
|
begin
|
|
// ToDo
|
|
end;
|
|
|
|
procedure TCustomControlBar.FlipChildren(AllLevels: Boolean);
|
|
begin
|
|
// Do nothing
|
|
end;
|
|
|
|
procedure TCustomControlBar.StickControls;
|
|
begin
|
|
// ToDo
|
|
end;
|
|
|
|
|