Update VirtualTrees component source to v7.6.1

This commit is contained in:
Ansgar Becker
2021-09-26 08:28:23 +02:00
parent 38c3a82380
commit fc1421c4d3
12 changed files with 1103 additions and 635 deletions

45
components/virtualtreeview/.gitignore vendored Normal file
View File

@@ -0,0 +1,45 @@
# Compiled source #
###################
*.dcu
*.obj
*.exe
*.bpl
*.bpi
*.dcp
*.rsm
*.stat
*.map
# Generated source #
###################
*.hpp
# Backup files #
###################
*.~*
# IDE Files #
###################
*.dproj.local
*.groupproj.local
*.identcache
*.dsk
*.tvsconfig
*.otares
*.drc
*.rc
*.res
*.local
# Output Folders #
###################
/Win32
/Win64
/OSX32
/__history
*.bak
*.Patch
VirtualTreeView.zip
*.#00
*.pch
*.skincfg

View File

@@ -1,14 +1,5 @@
V7.3: (04 Nov 2019)
See: https://github.com/Virtual-TreeView/Virtual-TreeView/milestone/13
V7.2.1: (07 Mar 2019)
See: https://github.com/Virtual-TreeView/Virtual-TreeView/milestone/14?closed=1
V7.2: (18 Feb 2019)
See: https://github.com/Virtual-TreeView/Virtual-TreeView/milestone/12?closed=1
V7.1: (27 Dec 2018)
See: https://github.com/Virtual-TreeView/Virtual-TreeView/milestone/11?closed=1
V7.1 and later:
https://github.com/JAM-Software/Virtual-TreeView/milestones?state=closed
V7.0: (22 Jul 2018)
* The support for Windows XP/2003 has been dropped (issue #707). This means:

View File

@@ -0,0 +1,10 @@
{
"id": "{A34BA07B-19B6-4C21-9DEE-65FCA52D00AB}",
"name": "Virtual Treeview",
"picture": "Resources\\VirtualTreeview-Icon.png",
"license_type": "MPL-1.1",
"platforms": "Win32;Win64",
"first_version": "6.2.0",
"package_compiler_min": 24,
"compiler_min": 24
}

View File

@@ -0,0 +1,56 @@
{
"search_pathes": [
{
"pathes": "Source",
"platforms": "Win32;Win64"
}
],
"browsing_pathes": [
{
"pathes": "Source",
"platforms": "Win32;Win64"
}
],
"source_folders": [
{
"folder": "source",
"base": "",
"recursive": true,
"filter": "*;*.*"
},
{
"folder": "Packages",
"base": "",
"recursive": true,
"filter": "*;*.*"
},
{
"folder": "Design",
"base": "",
"recursive": true,
"filter": "*;*.*"
}
],
"projects": [
{
"project": "Packages\\RAD Studio XE3\\VirtualTreeView.groupproj",
"compiler_max": 26
},
{
"project": "Packages\\RAD Studio XE6\\VirtualTreeView.groupproj",
"compiler": 27
},
{
"project": "Packages\\RAD Studio XE7\\VirtualTreeView.groupproj",
"compiler": 28
},
{
"project": "Packages\\RAD Studio XE8\\VirtualTreeView.groupproj",
"compiler": 29
},
{
"project": "Packages\\RAD Studio 10\\VirtualTreeView.groupproj",
"compiler_min": 30
}
]
}

View File

@@ -3,9 +3,9 @@ Supported Windows Versions: Windows Vista and higher
Extract the entire(!) ZIP file and follow the instructions below.
Delphi / RAD Studio 10.3 and higher Installation
Delphi / RAD Studio 10.4 and higher Installation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Open the project group "Packages\RAD Studio *\VirtualTreeView.groupproj"
1. Open the project group "Packages\RAD Studio 10.4+\VirtualTreeView.groupproj"
2. Right click on "VirtualTreesD*.bpl" and click "Install"
3. Go to "Tools > Options > Language > Delphi Options > Library > Library Path > [...]"
Browse to the "Source" folder of VirtualTreeView, press "OK", "Add", "OK"
@@ -19,6 +19,22 @@ Delphi / RAD Studio 10.3 and higher Installation
5. Close the RAD Studio Options dialog by clicking "Save".
Delphi / RAD Studio 10.3
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Open the project group "Packages\RAD Studio 10.3\VirtualTreeView.groupproj"
2. Right click on "VirtualTreesD270.bpl" and click "Install"
3. Go to "Tools > Options > Language > Delphi Options > Library > Library Path > [...]"
Browse to the "Source" folder of VirtualTreeView, press "OK", "Add", "OK"
Do this for both Win32 and Win64 platform, which you can choose in the dropdown box.
4. C++ Builder users only:
In the Options dialog go to "Environment Options > C++ Options > Paths and Directories"
a) Click "Library Path > [...]"
Browse to the "Source" folder of VirtualTreeView, press "OK", "Add", "OK"
b) Click "System Include path > [...]"
Browse to the "Source" folder of VirtualTreeView, press "OK", "Add", "OK"
5. Close the RAD Studio Options dialog by clicking "Save".
Delphi / RAD Studio XE3 - 10.2 Installation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Open the project group "Packages\RAD Studio *\VirtualTreeView.groupproj"

View File

@@ -0,0 +1,56 @@
PROJECT = VirtualTrees
EMBARCADERO = $(PROGRAMFILES)\Embarcadero\RAD Studio
STUDIO = $(PROGRAMFILES)\Embarcadero\Studio
BDSCOMMONDIRMAIN = %PUBLIC%\Documents\Embarcadero\Studio
# Default MS Build version
!IF EXIST("$(PROGRAMFILES)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\msbuild.exe")
BUILDEXE = "$(PROGRAMFILES)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\msbuild.exe"
!ELSE
!IF EXIST("$(PROGRAMFILES)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\msbuild.exe")
BUILDEXE = "$(PROGRAMFILES)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\msbuild.exe"
!ELSE
BUILDEXE = "$(PROGRAMFILES)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\msbuild.exe"
!ENDIF
!ENDIF
BUILD = $(BUILDEXE) /t:Rebuild
clean:
ECHO Project: $(PROJECT) $(EMBARCADERO)
DEL /S /Q .\*.HPP
DEL /S /Q .\*.DCU
#TODO: Add demos and package folders
# build all packages for Delphi 10.4. Note: The variable $@ is expanded to the build target name
10.1 10.2 10.3 10.4+: Source\*.pas "Packages\RAD Studio $@\$(PROJECT)R.dpk" "Packages\RAD Studio $@\$(PROJECT)R.dproj" "Packages\RAD Studio $@\$(PROJECT)D.dpk" "Packages\RAD Studio $@\$(PROJECT)D.dproj"
SET BDS=$(STUDIO)\21.0
$(BUILD) "Packages\RAD Studio $@\$(PROJECT)R.dproj"
$(BUILD) "Packages\RAD Studio $@\$(PROJECT)D.dproj"
$(BUILD) /property:Platform=Win64 "Packages\RAD Studio $@\$(PROJECT)R.dproj"
$(MAKE) _samples
"Demos\Advanced\Advanced.exe": "Demos\Advanced\*.dproj" "Demos\Advanced\*.dpr" "Demos\Advanced\*.pas"
$(BUILD) "Demos\Advanced\Advanced.dproj"
"Demos\Minimal\Minimal.exe": "Demos\Minimal\*.dproj" "Demos\Minimal\*.dpr" "Demos\Minimal\*.pas"
$(BUILD) "Demos\Minimal\Minimal.dproj"
"Demos\Objects\Objects.exe": "Demos\Objects\*.dproj" "Demos\Objects\*.dpr" "Demos\Objects\*.pas"
$(BUILD) "Demos\Objects\MVCDemo.dproj"
"Demos\OLE\OLE.exe": "Demos\OLE\*.dproj" "Demos\OLE\*.dpr" "Demos\OLE\*.pas"
$(BUILD) "Demos\OLE\OLE.dproj"
_samples: "Demos\Advanced\Advanced.exe" "Demos\Minimal\Minimal.exe" "Demos\Objects\Objects.exe" "Demos\OLE\OLE.exe"
_continuousbuilds: clean 10.4+
_release:
#This small batch file is intended to create a source code release file of the VirtualTreeView as ZIP archive
#It expects the ZIP.EXE from the InfoZip project V3.0 or higher to be in the system's search path
#Download e.g. from: ftp://ftp.info-zip.org/pub/infozip/win32/
ZIP -9 -r .\VirtualTreeView.zip INSTALL.txt Changes.txt Source Design Packages Demos Contributions Help\VirtualTreeview.chm -i *.pas -i *.dpk -i *.groupproj -i *.dproj -i *.cbproj -i *.hlp -i *.rc -i *.res -i *.cfg -i *.dpr -i *.dof -i *.bpr -i *.dfm -i *.cpp -i *.inc -i *.dcr -i *.chm -i *.png -i *.js -i *.txt -i *.bmp -i *.uni
ECHO Source code zip archive "VirtualTreeView.zip" created.
ECHO !!! Please ensure that the const TVTVersion is correct or remove const!!!
ECHO !!! Please add version number to ZIP file name!!!
ECHO !!! Please create release at: https://github.com/Virtual-TreeView/Virtual-TreeView/releases
ECHO !!! Let JAM web-team upload the file to our server at https://www.jam-software.com/virtual-treeview

View File

@@ -0,0 +1,3 @@
@ECHO OFF
nmake _release
pause

View File

@@ -2,10 +2,10 @@
Virtual Treeview is a Delphi treeview control built from ground up. Many years of development made it one of the most flexible and advanced tree controls available today. Virtual Treeview starts off with the claim to improve many aspects of existing solutions and introduces some new technologies and principles which were not available before.
### Help Needed: Any volunteer that takes care about **C++ Builder** bugs and packages?
I don't use C++ Builder and my experience with it is very limited. This makes it difficult to take care about bugs that are reported in C++ Builder and to maintain the C++ Builder packages. I would be great if someone would volunteer to do this. Please contact me at joachim.marder+CPP@gmail.com.
I don't use C++ Builder and my experience with it is very limited. This makes it difficult to take care about bugs that are reported in C++ Builder and to maintain the C++ Builder packages. I would be great if someone would volunteer to do this.
### Downloads
**V7.4** official release for **RAD Studio XE3 to 10.4 Rio**: [JAM Software](https://www.jam-software.com/virtual-treeview/VirtualTreeView.zip) ([Changes](https://github.com/Virtual-TreeView/Virtual-TreeView/milestone/16?closed=1))
**V7.5** official release for **RAD Studio XE3 to 10.4.2 Rio**: [JAM Software](https://www.jam-software.com/virtual-treeview/VirtualTreeView.zip) ([Changes](https://github.com/JAM-Software/Virtual-TreeView/issues?q=is%3Aissue+milestone%3AV7.5+is%3Aclosed))
An experimental **FireMonkey** port can be found here: [livius2/Virtual-TreeView](https://github.com/livius2/Virtual-TreeView)

View File

@@ -33,8 +33,9 @@ uses
Winapi.Windows,
Winapi.Messages,
Winapi.UxTheme,
System.Classes,
System.UITypes,
Vcl.Graphics,
Vcl.Themes,
Vcl.Forms,
Vcl.Controls;
@@ -99,6 +100,9 @@ type
public
constructor Create(AControl: TWinControl); override;
destructor Destroy; override;
/// Draws an expand arrow like used in the RAD Studio IDE.
/// The code is not yet dpi-aware.
class procedure DrawExpandArrow(pBitmap: TBitmap; pExpanded: Boolean; pColor: TColor = clNone);
property HorzScrollRect;
property VertScrollRect;
end;
@@ -120,7 +124,6 @@ uses
System.SysUtils,
System.Math,
System.Types,
Vcl.Graphics,
VirtualTrees;
type
@@ -203,6 +206,32 @@ begin
inherited;
end;
class procedure TVclStyleScrollBarsHook.DrawExpandArrow(pBitmap: TBitmap; pExpanded: Boolean; pColor: TColor);
const
Size: TRect = (Left: 0; Top: 0; Right: 12; Bottom: 12);
ArrowPoints: array[Boolean, 0..5] of TPoint = (
((X:3; Y:1), (X:8; Y:6), (X:3; Y:11), (X:4; Y:11), (X:9; Y:6), (X:3; Y:0)),
((X:1; Y:3), (X:6; Y:8), (X:11; Y:3), (X:11; Y:4), (X:6; Y:9), (X:0; Y:3))
);
var
canvas: TCanvas;
begin
pBitmap.SetSize(Size.Width, Size.Height);
canvas := pBitmap.Canvas;
canvas.FillRect(Size);
if pColor = clNone then
begin
if Assigned(VTStyleServicesFunc) then
canvas.Pen.Color := VTStyleServicesFunc.GetSystemColor(clGrayText)
else
canvas.Pen.Color := Vcl.Themes.StyleServices.GetSystemColor(clGrayText)
end
else
canvas.Pen.Color := pColor;
canvas.Pen.Width := 1;
canvas.Polyline(ArrowPoints[pExpanded]);
end;
procedure TVclStyleScrollBarsHook.DrawHorzScrollBar(DC: HDC);
var
B: TBitmap;

View File

@@ -0,0 +1,8 @@
unit VirtualTrees.Types;
// Dummy unit to make migeration between V7 and V8 easier.
interface
implementation
end.

View File

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,162 @@
{
"metadata": {
"id": "JAM.VirtualTreeView",
"version": "7.4.0",
"description": "Virtual TreeView VCL Component",
"authors": "Joachim Marder",
"projectUrl": "https://github.com/Virtual-TreeView/Virtual-TreeView",
"license": "MPL-1.1, LGPL-2.0+",
"copyright": "Various, See project page",
"tags": "VCL, TreeView"
},
"targetPlatforms": [
{
"compiler": "XE3",
"platforms": "Win32, Win64",
"template": "default",
"variables" : {
"libsuffix" : "17"
}
},
{
"compiler": "XE4",
"platforms": "Win32, Win64",
"template": "default",
"variables" : {
"libsuffix" : "18"
}
},
{
"compiler": "XE5",
"platforms": "Win32, Win64",
"template": "default",
"variables" : {
"libsuffix" : "19"
}
},
{
"compiler": "XE6",
"platforms": "Win32, Win64",
"template": "default",
"variables" : {
"libsuffix" : "20"
}
},
{
"compiler": "XE7",
"platforms": "Win32, Win64",
"template": "default",
"variables" : {
"libsuffix" : "21"
}
},
{
"compiler": "XE8",
"platforms": "Win32, Win64",
"template": "default",
"variables" : {
"libsuffix" : "22"
}
},
{
"compiler": "10.0",
"platforms": "Win32, Win64",
"template": "default",
"variables" : {
"libsuffix" : "23",
"compiler" : "$compilerNoPoint$"
}
},
{
"compiler": "10.1",
"platforms": "Win32, Win64",
"template": "default",
"variables" : {
"libsuffix" : "24"
}
},
{
"compiler": "10.2",
"platforms": "Win32, Win64",
"template": "default",
"variables" : {
"libsuffix" : "25"
}
},
{
"compiler": "10.3",
"platforms": "Win32, Win64",
"template": "default",
"variables" : {
"libsuffix" : "26"
}
},
{
"compiler": "10.4",
"platforms": "Win32, Win64",
"template": "default",
"variables" : {
"libsuffix" : "27"
}
}
],
"templates": [
{
"comment": "all other compiler versions follow normal folder naming",
"name": "default",
"source": [
{
"src": ".\\Source\\*.pas",
"dest": "Source"
},
{
"src": ".\\Source\\*.res",
"dest": "Source"
},
{
"src": ".\\Design\\*.*",
"dest": "Design"
},
{
"src": ".\\packages\\Rad Studio $compiler$\\**",
"flatten": false,
"dest": "packages\\Rad Studio $compiler$"
}
],
"searchPaths": [
{
"path": "Source",
"source": true
}
],
"build": [
{
"id": "VirtualTreesR",
"project": ".\\Packages\\Rad Studio $compiler$\\VirtualTreesR.dproj",
"buildForDesign": true,
"buildForDesignComment" : "when true, will also build win32 if the platform is not win32, so that other packages that need this for design will work"
},
{
"id": "VirtualTreesD",
"project": ".\\Packages\\Rad Studio $compiler$\\VirtualTreesD.dproj",
"designOnly" : true,
"designOnlyComment" : "designOnly forces compilation with win32 compiler"
}
],
"runtime": [
{
"buildId": "VirtualTreesR",
"src": "bin\\VirtualTreesR$libsuffix$.bpl",
"copyLocal": true
}
],
"design": [
{
"buildId": "VirtualTreesD",
"src": "bin\\VirtualTreesD$libsuffix$.bpl",
"install": true
}
]
}
]
}