1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289
|
// The packages must be rebuilt to make the changes in this file active
// 64 Bit Windows does not allow for code execution in anything other than virtual address space.
// VSTools uses a stub allocation to make a object method a windows callback through assembly
// code. If using a replacement memory manager that does not use memory that is execuable in
// 64 bit windows, or if future Delphi memory managers change and allocate memory that is not
// executable in 64 bit Windows uncomment the following define. This will force the stub
// code to allocate virtual memory on it own. The drawback is it allocates it in 64k blocks but
// 64k in Win64 should be nothing.....
{.$DEFINE VIRTUALMEMSTUB}
// -----------------------------------------------------------------------------
// Use the following to try to reduce the size of a VET project if indicated
// features are not needed.
{$DEFINE SHELLNOTIFIER} // Shell notifer threads
{$DEFINE THREADEDICONS} // Image icon threads
{$DEFINE EXPLORERCOMBOBOX} // ExplorerCombobox
{$DEFINE PERSISTENTSTORAGE} // The persistent storage of VET, used to refresh tree to previous state
// -----------------------------------------------------------------------------
// EXTENDED VIRTUALTREEVIEW SUPPORT
//
// If using the modifications in VirtualTrees.pas to allow for different ImageLists
// to be used on a node by node bases then define the following:
// Note this change does not support overlays
//
//{$DEFINE EXTENDEDVIRTUALTREES}
//
// Make the following changes in VirtualTrees.pas
//
// (1)
// Search for
// TVTGetImageEvent = procedure(Sender: TBaseVirtualTree; Node: PVirtualNode; Kind: TVTImageKind; Column: TColumnIndex;
// var Ghosted: Boolean; var ImageIndex: Integer) of object;
//
// Add this below it
// TVTGetImageListEvent = procedure (Sender: TBaseVirtualTree; Node: PVirtualNode;
// var Index: Integer; var Images: TCustomImageList) of object;
//
// (2)
// Add this field to the base tree in the private section
//
// TBaseVirtualTree = class(TCustomControl)
// private
// ...
// FOnGetImageList: TVTGetImageListEvent; // Event handler to use different ImageList
// ...
// end;
//
// (3)
// Add this method to base tree in the protected section
//
// TBaseVirtualTree = class(TCustomControl)
// ...
// protected
// ...
// procedure DoGetImageList(Node: PVirtualNode; var Index: Integer; var Images: TCustomImageList); virtual;
// ...
// protected
// ....
// property OnGetImageList: TVTGetImageListEvent read FOnGetImageList write FOnGetImageList;
// ...
// end;
//
// (4)
// Implement the method like this:
//
// procedure TBaseVirtualTree.DoGetImageList(Node: PVirtualNode; var Index: Integer;
// var Images: TCustomImageList);
// begin
// if Assigned(FOnGetImageList) then
// FOnGetImageList(Self, Node, Index, Images);
// end;
//
// (5)
// Publish the new event in the StringTree
//
// TVirtualStringTree = class(TCustomVirtualStringTree)
// ...
// published
// ...
// property OnGetImageList;
// ...
// end;
//
// (6)
// Search for the PaintImage implementation, Add a new local variable and modify as
// shown
//
// procedure TBaseVirtualTree.PaintImage(const PaintInfo: TVTPaintInfo; ImageInfoIndex: TVTImageInfoIndex;
// Images: TCustomImageList; DoOverlay: Boolean);
// var
// ...
// ImageIndex: Integer;
// Temp: TCustomImageList;
// ...
// begin
// if ImageInfoIndex = iiNormal then
// begin
// Temp := Images;
// ImageIndex := PaintInfo.ImageInfo[ImageInfoIndex].Index;
// DoGetImageList(PaintInfo.Node, ImageIndex, Images);
// if not Assigned(Images) then
// Images := Temp;
// end;
//
// with PaintInfo, ImageInfo[ImageInfoIndex], Images do
// begin
// ...
// ...
// ImageList_DrawEx(Handle, ImageIndex, Canvas.Handle, XPos, YPos, 0, 0, GetRGBColor(BkColor), ForegroundColor,
// Style[ImageType] or ExtraStyle);
// end
// end;
//
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
// VIRTUAL NAMESPACE SUPPORT
//
// Use the following conditional define if you want to include the ability
// to use Virtual (Custom) Namespaces in VET. The the Doc/VirtualNamespace folder for
// an explination as to what VirtualNamespaces are
//{$DEFINE VIRTUALNAMESPACES}
// -----------------------------------------------------------------------------
//
// GRAPHICEX SUPPORT
//
// If you are using Mike Lischke's GraphicEx package to extend the thumbnails
// In VirtualExplorerListviewEx then uncomment this line to automatically link
// GraphicEx into the VirtualExplorerListviewEx
//{$DEFINE USEGRAPHICEX}
// The following are the registerable types supported by GraphicEx, see the
// GraphicConfiguration.inc file in GraphicEx to enable or disable types.
// NOTE:
// To enable GIF you must change
// {.$define UseLZW}
// to
// {$define UseLZW}
// in GraphicConfiguration.inc
//
// TargaGraphic // *.win, *.vst, *.vda, *.tga, *.icb
// TIFFGraphic // *.tiff, *.tif, *.fax
// EPSGraphic // *.eps
// PCXGraphic // *.pcx, *.pcc, *.scr
// RLAGraphic // *.rpf, *.rla
// SGIGraphic // *.sgi, *.rgba, *.rgb, *.bw
// PhotoshopGraphic // *.psd, *.pdd
// PortableMapGraphic // *.ppm, *.pgm, *.pbm
// AutodeskGraphic // *.cel, *.pic
// PCDGraphic // *.pcd, *.pic
// GIFGraphic // *.gif
// CUTGraphic // *.cut
// PaintshopProGraphic // *.psp
// PortableNetworkGraphic // *.png
// -----------------------------------------------------------------------------
//
// ImageEn SUPPORT
//
// If you are using HiComponents ImageEn package to extend the thumbnails
// in VirtualExplorerListviewEx then uncomment this line to automatically link
// ImageEn into the VirtualExplorerListviewEx.
// WARNING. You will need an LZW patent license from Unisys in order to provide
// end-user GIF support legally in your application.
// To support GIF and TIFF images you'll have to add GifLZW and TIFLZW units in
// your application, and set a few global variables in your Form.OnCreate event:
// DefGIF_LZWDECOMPFUNC := GIFLZWDecompress;
// DefGIF_LZWCOMPFUNC := GIFLZWCompress;
// DefTIFF_LZWDECOMPFUNC := TIFFLZWDecompress;
// DefTIFF_LZWCOMPFUNC := TIFFLZWCompress;
// For more information read the ImageEn help file.
//{$DEFINE USEIMAGEEN}
// -----------------------------------------------------------------------------
//
// ENVISION IMAGE LIBRARY SUPPORT
//
// If you are using Interval Software Envision Image Library package to extend the thumbnails
// in VirtualExplorerListviewEx then uncomment this line to automatically link
// Envision Image Library into the VirtualExplorerListviewEx.
//{$DEFINE USEENVISION}
// -----------------------------------------------------------------------------
//
// IMAGEMAGICK
//
// If you are using ImageMagick to extend the thumbnails
// in VirtualExplorerListviewEx then uncomment this line to automatically link
// ImageMagick into the VirtualExplorerListviewEx.
//{$DEFINE USEIMAGEMAGICK}
// -----------------------------------------------------------------------------
// TOOLBAR 2000 and TBX SUPPORT FOR VIRTUALSHELLHISTORY MENU
// -----------------------------------------------------------------------------
//
// Uncomment out the conditional define for Toolbar 2000 and TBX Toolbar support
//
// WARNING: WARNING: WARNING: WARNING: WARNING: WARNING: WARNING: WARNING: WARNING:
//
// You must either add the Tooolbar 2000 and/or the TBX packages to the
// VirtualShellToolsDx.dpk "Requires" section. Usually tbx_d5.dcp and tb2k_d5.dcp and
// TBXSwitcherItem_d5 if using the TBX addon theme switch for D5
// This is easier if you open the VirtualShellToolsDx.dpk with a text editor and add this:
//
// requires
// vcl50,
// VirtualTreesD5,
// VirtualToolsCommonD5,
// ThemeManager5,
// tb2k_d5,
// tbx_d5;
//
// For D6 replace with:
//
// requires
// VirtualTreesD6,
// VirtualToolsCommonD6,
// ThemeManager6
// tb2k_d6,
// tbx_d6;
//
// Then recompile VSTools
//
// DO NOT allow Delphi to add the units to the "Contains" section automaticlly
// if you forget to add the packages to the "Requires"
// section.
// Define USE_TOOLBAR_2000 if you use Toolbar 2000 alone OR USE_TBX if you
// use Toolbar 2000 with the TBX addon
//
// {$DEFINE USE_TOOLBAR_2000}
// {$DEFINE USE_TBX}
{$IFDEF USE_TBX}
{$DEFINE TBX}
{$DEFINE TBX_OR_TB2K}
{$ELSE}
{$IFDEF USE_TOOLBAR_2000}
{$DEFINE TOOLBAR_2000}
{$DEFINE TBX_OR_TB2K}
{$ENDIF}
{$ENDIF}
|