mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-05 09:18:02 +02:00
128 lines
3.7 KiB
ObjectPascal
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.
|