lazarus/lcl/widgetset/wsshellctrls.pp
2021-03-07 14:39:17 +00:00

128 lines
3.7 KiB
ObjectPascal

{
*****************************************************************************
* WSShellCtrls.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.
*****************************************************************************
}
unit WSShellCtrls;
{$mode objfpc}{$H+}
{$I lcl_defines.inc}
interface
////////////////////////////////////////////////////
// I M P O R T A N T
////////////////////////////////////////////////////
// 1) Only class methods allowed
// 2) Class methods have to be published and virtual
// 3) To get as little as posible circles, the uses
// clause should contain only those LCL units
// needed for registration. WSxxx units are OK
// 4) To improve speed, register only classes in the
// initialization section which actually
// implement something
// 5) To enable your XXX widgetset units, look at
// the uses clause of the XXXintf.pp
////////////////////////////////////////////////////
uses
Classes, Types,
////////////////////////////////////////////////////
// To get as little as posible circles,
// uncomment only when needed for registration
////////////////////////////////////////////////////
ShellCtrls, ComCtrls,
////////////////////////////////////////////////////
WSControls, WSFactory, WSLCLClasses, WSComCtrls;
type
{ TWSCustomShellTreeView }
TWSCustomShellTreeView = class(TWSCustomTreeView)
published
class function DrawBuiltInIcon(ATreeView: TCustomShellTreeView;
ANode: TTreeNode; ARect: TRect): TSize; virtual;
class function GetBuiltinIconSize: TSize; virtual;
end;
TWSCustomShellTreeViewClass = class of TWSCustomShellTreeView;
{ TWSCustomShellListView }
TWSCustomShellListView = class(TWSCustomListView)
published
class function GetBuiltInImageIndex(AListView: TCustomShellListView;
const AFileName: String; ALargeImage: Boolean): Integer; virtual;
end;
TWSCustomShellListViewClass = class of TWSCustomShellListView;
procedure RegisterCustomShellTreeView;
procedure RegisterCustomShellListView;
implementation
uses
LResources;
{ TWSCustomShellTreeView }
class function TWSCustomShellTreeView.DrawBuiltInIcon(ATreeView: TCustomShellTreeView;
ANode: TTreeNode; ARect: TRect): TSize;
begin
Result.CX := 0;
Result.CY := 0;
end;
class function TWSCustomShellTreeView.GetBuiltinIconSize: TSize;
begin
Result.CX := 0;
Result.CY := 0;
end;
{ TWSCustomShellListView }
class function TWSCustomShellListView.GetBuiltInImageIndex(
AListView: TCustomShellListView; const AFileName: String;
ALargeImage: Boolean): Integer;
begin
Result := -1;
end;
{ Registration }
procedure RegisterCustomShellTreeView;
const
Done: Boolean = False;
begin
if Done then exit;
//WSRegisterCustomShellTreeView;
if not WSRegisterCustomShellTreeView then
RegisterWSComponent(TCustomShellTreeView, TWSCustomShellTreeView);
Done := True;
end;
procedure RegisterCustomShellListView;
const
Done: Boolean = False;
begin
if Done then exit;
// WSRegisterCustomShellListView;
if not WSRegisterCustomShellListView then
RegisterWSComponent(TCustomShellListView, TWSCustomShellListView);
Done := True;
end;
end.