mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-05-19 10:02:51 +02:00
Opkman: Voting system implemented locally.
git-svn-id: trunk@53697 -
This commit is contained in:
parent
25ef353188
commit
ca254979a9
4
.gitattributes
vendored
4
.gitattributes
vendored
@ -3290,6 +3290,10 @@ components/onlinepackagemanager/images/Tree_Buttons/Info.png -text svneol=unset#
|
|||||||
components/onlinepackagemanager/images/Tree_Buttons/Ok.png -text svneol=unset#image/png
|
components/onlinepackagemanager/images/Tree_Buttons/Ok.png -text svneol=unset#image/png
|
||||||
components/onlinepackagemanager/images/Tree_Buttons/Refresh.png -text svneol=unset#image/png
|
components/onlinepackagemanager/images/Tree_Buttons/Refresh.png -text svneol=unset#image/png
|
||||||
components/onlinepackagemanager/images/Tree_Buttons/Refresh1.png -text svneol=unset#image/png
|
components/onlinepackagemanager/images/Tree_Buttons/Refresh1.png -text svneol=unset#image/png
|
||||||
|
components/onlinepackagemanager/images/Tree_Buttons/StarEmpty.png -text svneol=unset#image/png
|
||||||
|
components/onlinepackagemanager/images/Tree_Buttons/StarFull.png -text svneol=unset#image/png
|
||||||
|
components/onlinepackagemanager/images/Tree_Buttons/StarFull_Blue.png -text svneol=unset#image/png
|
||||||
|
components/onlinepackagemanager/images/Tree_Buttons/StarHalfFull.png -text svneol=unset#image/png
|
||||||
components/onlinepackagemanager/languages/opkman_VirtualTrees.fi.po svneol=native#text/plain
|
components/onlinepackagemanager/languages/opkman_VirtualTrees.fi.po svneol=native#text/plain
|
||||||
components/onlinepackagemanager/languages/opkman_VirtualTrees.hu.po svneol=native#text/plain
|
components/onlinepackagemanager/languages/opkman_VirtualTrees.hu.po svneol=native#text/plain
|
||||||
components/onlinepackagemanager/languages/opkman_VirtualTrees.po svneol=native#text/plain
|
components/onlinepackagemanager/languages/opkman_VirtualTrees.po svneol=native#text/plain
|
||||||
|
Binary file not shown.
After Width: | Height: | Size: 584 B |
BIN
components/onlinepackagemanager/images/Tree_Buttons/StarFull.png
Normal file
BIN
components/onlinepackagemanager/images/Tree_Buttons/StarFull.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 637 B |
Binary file not shown.
After Width: | Height: | Size: 699 B |
Binary file not shown.
After Width: | Height: | Size: 762 B |
@ -65,6 +65,7 @@ resourcestring
|
|||||||
rsMainFrm_VSTHeaderColumn_Update = 'Update';
|
rsMainFrm_VSTHeaderColumn_Update = 'Update';
|
||||||
rsMainFrm_VSTHeaderColumn_Data = 'Status/Data';
|
rsMainFrm_VSTHeaderColumn_Data = 'Status/Data';
|
||||||
rsMainFrm_VSTHeaderColumn_Button = '';
|
rsMainFrm_VSTHeaderColumn_Button = '';
|
||||||
|
rsMainFrm_VSTHeaderColumn_Rating = 'Rating';
|
||||||
rsMainFrm_VSTText_PackageCategory = 'Package category';
|
rsMainFrm_VSTText_PackageCategory = 'Package category';
|
||||||
rsMainFrm_VSTText_PackageStatus = 'Package status';
|
rsMainFrm_VSTText_PackageStatus = 'Package status';
|
||||||
rsMainFrm_VSTText_Version = 'Version';
|
rsMainFrm_VSTText_Version = 'Version';
|
||||||
@ -179,6 +180,7 @@ resourcestring
|
|||||||
rsMainFrm_rsPackageDependency1 = 'Resolve dependency?';
|
rsMainFrm_rsPackageDependency1 = 'Resolve dependency?';
|
||||||
rsMainFrm_rsPackageDependency2 = 'Not resolving dependencies might lead to install failure!';
|
rsMainFrm_rsPackageDependency2 = 'Not resolving dependencies might lead to install failure!';
|
||||||
rsMainFrm_rsPackageDependency4 = 'dependency list. Unchecking it might lead to installing failure. Do you wish to continue?';
|
rsMainFrm_rsPackageDependency4 = 'dependency list. Unchecking it might lead to installing failure. Do you wish to continue?';
|
||||||
|
rsMainFrm_rsPackageRating = 'Your vote for package "%s" is: %s. Thank you for voting!';
|
||||||
|
|
||||||
//progress form
|
//progress form
|
||||||
rsProgressFrm_Caption0 = 'Downloading packages';
|
rsProgressFrm_Caption0 = 'Downloading packages';
|
||||||
|
@ -2,10 +2,10 @@ object MainFrm: TMainFrm
|
|||||||
Left = 463
|
Left = 463
|
||||||
Height = 640
|
Height = 640
|
||||||
Top = 164
|
Top = 164
|
||||||
Width = 850
|
Width = 900
|
||||||
Caption = 'Online Package Manager'
|
Caption = 'Online Package Manager'
|
||||||
ClientHeight = 640
|
ClientHeight = 640
|
||||||
ClientWidth = 850
|
ClientWidth = 900
|
||||||
Color = clBtnFace
|
Color = clBtnFace
|
||||||
Constraints.MinHeight = 400
|
Constraints.MinHeight = 400
|
||||||
Constraints.MinWidth = 600
|
Constraints.MinWidth = 600
|
||||||
@ -20,11 +20,11 @@ object MainFrm: TMainFrm
|
|||||||
Left = 0
|
Left = 0
|
||||||
Height = 570
|
Height = 570
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 850
|
Width = 900
|
||||||
Align = alClient
|
Align = alClient
|
||||||
BevelOuter = bvNone
|
BevelOuter = bvNone
|
||||||
ClientHeight = 570
|
ClientHeight = 570
|
||||||
ClientWidth = 850
|
ClientWidth = 900
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
OnResize = pnMainResize
|
OnResize = pnMainResize
|
||||||
object pnMessage: TPanel
|
object pnMessage: TPanel
|
||||||
@ -49,18 +49,18 @@ object MainFrm: TMainFrm
|
|||||||
Left = 0
|
Left = 0
|
||||||
Height = 60
|
Height = 60
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 850
|
Width = 900
|
||||||
Align = alTop
|
Align = alTop
|
||||||
BevelOuter = bvNone
|
BevelOuter = bvNone
|
||||||
ClientHeight = 60
|
ClientHeight = 60
|
||||||
ClientWidth = 850
|
ClientWidth = 900
|
||||||
Color = clBtnFace
|
Color = clBtnFace
|
||||||
ParentColor = False
|
ParentColor = False
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
OnResize = pnTopResize
|
OnResize = pnTopResize
|
||||||
object spExpand: TSpeedButton
|
object spExpand: TSpeedButton
|
||||||
Tag = 1
|
Tag = 1
|
||||||
Left = 802
|
Left = 852
|
||||||
Height = 20
|
Height = 20
|
||||||
Top = 13
|
Top = 13
|
||||||
Width = 21
|
Width = 21
|
||||||
@ -125,7 +125,7 @@ object MainFrm: TMainFrm
|
|||||||
end
|
end
|
||||||
object spCollapse: TSpeedButton
|
object spCollapse: TSpeedButton
|
||||||
Tag = 2
|
Tag = 2
|
||||||
Left = 824
|
Left = 874
|
||||||
Height = 20
|
Height = 20
|
||||||
Top = 13
|
Top = 13
|
||||||
Width = 21
|
Width = 21
|
||||||
@ -370,7 +370,7 @@ object MainFrm: TMainFrm
|
|||||||
Left = 0
|
Left = 0
|
||||||
Height = 510
|
Height = 510
|
||||||
Top = 60
|
Top = 60
|
||||||
Width = 850
|
Width = 900
|
||||||
Align = alClient
|
Align = alClient
|
||||||
Color = clBtnFace
|
Color = clBtnFace
|
||||||
PopupMenu = pmMemo
|
PopupMenu = pmMemo
|
||||||
@ -384,10 +384,10 @@ object MainFrm: TMainFrm
|
|||||||
Left = 0
|
Left = 0
|
||||||
Height = 70
|
Height = 70
|
||||||
Top = 570
|
Top = 570
|
||||||
Width = 850
|
Width = 900
|
||||||
Align = alBottom
|
Align = alBottom
|
||||||
ClientHeight = 70
|
ClientHeight = 70
|
||||||
ClientWidth = 850
|
ClientWidth = 900
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
OnResize = pnToolBarResize
|
OnResize = pnToolBarResize
|
||||||
object tbButtons: TToolBar
|
object tbButtons: TToolBar
|
||||||
@ -542,7 +542,7 @@ object MainFrm: TMainFrm
|
|||||||
left = 64
|
left = 64
|
||||||
top = 163
|
top = 163
|
||||||
Bitmap = {
|
Bitmap = {
|
||||||
4C69140000001000000010000000A38D780095806C12B3A18B9FC5B49FFEC6B5
|
4C69190000001000000010000000A38D780095806C12B3A18B9FC5B49FFEC6B5
|
||||||
A0FFC6B5A0FFC6B5A0FFC6B5A1FFBEAD98E3A5917C4BFFFFFF00988674000000
|
A0FFC6B5A0FFC6B5A0FFC6B5A1FFBEAD98E3A5917C4BFFFFFF00988674000000
|
||||||
0000000000000000000000000000FFEAD300AC9A886AD5C9BBF9E3D9CBFFE2D9
|
0000000000000000000000000000FFEAD300AC9A886AD5C9BBF9E3D9CBFFE2D9
|
||||||
CAFFE2D9CAFFE2D9CAFFE3D9CAFFE0D6C8FFC3B4A4CB84715C189B8874000000
|
CAFFE2D9CAFFE2D9CAFFE3D9CAFFE0D6C8FFC3B4A4CB84715C189B8874000000
|
||||||
@ -1182,7 +1182,167 @@ object MainFrm: TMainFrm
|
|||||||
1CFFFFBB19FF9B5005CC0000001A0000001900000016000000130000000E0000
|
1CFFFFBB19FF9B5005CC0000001A0000001900000016000000130000000E0000
|
||||||
000A000000050000000200000000FFFFFF00000000130000002F723A02A6974C
|
000A000000050000000200000000FFFFFF00000000130000002F723A02A6974C
|
||||||
02CC974C02CC723A02A600000033000000320000002C000000250000001C0000
|
02CC974C02CC723A02A600000033000000320000002C000000250000001C0000
|
||||||
00130000000A0000000400000000
|
00130000000A0000000400000000000000000000000000000000000000000000
|
||||||
|
000000000000000203011A699B401C6DA2400002030100000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
000000000100082131022AA4F2CF2AA5F3CF0925380200000100000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000203001B70A75228A4F4FD28A4F4FD1C75AD5200020300000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000001
|
||||||
|
0100071F2E0226A0EFCD26A3F3FE26A3F3FE26A1F0CD08243502000101000000
|
||||||
|
0000000000000000000000000000000102000001020000020301000204010414
|
||||||
|
1F021C7EBD6725A0F0FD25A1F1FE25A2F2FE25A0F0FD1D81C267041621020002
|
||||||
|
04010002030100010200000102000F456820145C8B4A1973AC6F1E89CF93229C
|
||||||
|
EAC0239EEEFC239FEFFE24A0F0FF24A0F0FF239FEFFE239EEEFC229CEBC01E8A
|
||||||
|
D0931973AD6F145D8D4A0F4669202294DED7219DECFC219EEDFD219EEEFE219E
|
||||||
|
EEFE219EEEFE229EEEFE229EEEFF229EEEFF229EEEFE219EEEFE219EEEFE219E
|
||||||
|
EEFE219EEDFD219DECFC2294DED70F3D5B1F2093DCD91F9CEBFE209CECFE209D
|
||||||
|
EDFF209DEDFF209DEDFF209DEDFF209DEDFF209DEDFF209DEDFF209DEDFF209C
|
||||||
|
ECFE1F9CEBFE2093DCD91041611F000203000E38551B1E90D9D51D9AE9FE1E9A
|
||||||
|
EAFE1E9BEBFF1E9BEBFF1E9BEBFF1E9BEBFF1E9BEBFF1E9BEBFF1E9AEAFE1D9A
|
||||||
|
E9FE1E91DAD50F3C591B0002030000000000000102000C354F191C91DCDD1C98
|
||||||
|
E8FE1C99E9FF1C99E9FF1C99E9FF1C99E9FF1C99E9FF1C99E9FF1C98E8FE1C92
|
||||||
|
DCDD0D3A55190001020000000000000000000000000000020401146EA6791A96
|
||||||
|
E6FE1B97E7FF1B97E7FF1B97E7FF1B97E7FF1B97E7FF1B97E7FF1A96E6FE1572
|
||||||
|
AD790002040100000000000000000000000000000000000203011270AC7C1894
|
||||||
|
E4FD1995E5FF1995E5FF1995E5FF1995E5FF1995E5FF1995E5FF1894E4FD1374
|
||||||
|
B37C0002030100000000000000000000000000000000000203011486D0A71692
|
||||||
|
E2FE1792E2FE1792E2FE1792E2FE1792E2FE1792E2FE1792E2FE1692E2FE158A
|
||||||
|
D5A7000305010000000000000000000000000000000002111A01148EDDD11590
|
||||||
|
E0FE1490DFFD158AD5F01474B2981473B198158AD5F01490DFFD1590E0FE148E
|
||||||
|
DDD1021521010000000000000000000000000000000005273E06138DDBF51489
|
||||||
|
D5F41472AE8D09314C160004060100030501092F48161371AC8D1489D5F4138D
|
||||||
|
DBF5062B4406000000000000000000000000000001000621330B126BA4870B39
|
||||||
|
561F0006090100010100000000000000000000010100000508010A37531F126B
|
||||||
|
A3870624380B00000100000000004D4D4D004D4D4D004D4D4D004D4D4D004D4D
|
||||||
|
4D004D4D4D004E4E4E019A9A9A409D9D9D404E4E4E014D4D4D004D4D4D004D4D
|
||||||
|
4D004D4D4D004D4D4D004D4D4D004D4D4D004D4D4D004D4D4D004D4D4D004D4D
|
||||||
|
4D004D4D4D0064646402C6C6C6CFC6C6C6CF686868024D4D4D004D4D4D004D4D
|
||||||
|
4D004D4D4D004D4D4D004D4D4D004D4D4D004D4D4D004D4D4D004D4D4D004D4D
|
||||||
|
4D004E4E4E009F9F9F52C6C6C6FDC6C6C6FDA3A3A3524E4E4E004D4D4D004D4D
|
||||||
|
4D004D4D4D004D4D4D004D4D4D004D4D4D004D4D4D004D4D4D004D4D4D004D4D
|
||||||
|
4D0063636302C3C3C3CDC5C5C5FEC5C5C5FEC3C3C3CD666666024D4D4D004D4D
|
||||||
|
4D004D4D4D004D4D4D004D4D4D004D4D4D004D4D4D004E4E4E014E4E4E015B5B
|
||||||
|
5B02AAAAAA67C3C3C3FDC3C3C3FEC4C4C4FEC3C3C3FDACACAC675D5D5D024E4E
|
||||||
|
4E014E4E4E014D4D4D004D4D4D00808080209090904AA1A1A16FB2B2B293C0C0
|
||||||
|
C0C0C1C1C1FCC2C2C2FEC3C3C3FFC3C3C3FFC2C2C2FEC1C1C1FCC0C0C0C0B3B3
|
||||||
|
B393A2A2A26F9292924A80808020BABABAD7C1C1C1FCC1C1C1FDC1C1C1FEC1C1
|
||||||
|
C1FEC1C1C1FEC1C1C1FEC1C1C1FFC1C1C1FFC1C1C1FEC1C1C1FEC1C1C1FEC1C1
|
||||||
|
C1FEC1C1C1FDC1C1C1FCBABABAD77979791FB9B9B9D9C0C0C0FEC0C0C0FEC1C1
|
||||||
|
C1FFC1C1C1FFC1C1C1FFC1C1C1FFC1C1C1FFC1C1C1FFC1C1C1FFC1C1C1FFC0C0
|
||||||
|
C0FEC0C0C0FEB9B9B9D97C7C7C1F4E4E4E007676761BB7B7B7D5BFBFBFFEBFBF
|
||||||
|
BFFEBFBFBFFFBFBFBFFFBFBFBFFFBFBFBFFFBFBFBFFFBFBFBFFFBFBFBFFEBFBF
|
||||||
|
BFFEB8B8B8D57979791B4E4E4E004D4D4D004D4D4D0074747419B8B8B8DDBDBD
|
||||||
|
BDFEBEBEBEFFBEBEBEFFBEBEBEFFBEBEBEFFBEBEBEFFBEBEBEFFBDBDBDFEB8B8
|
||||||
|
B8DD767676194D4D4D004D4D4D004D4D4D004D4D4D004E4E4E019E9E9E79BCBC
|
||||||
|
BCFEBDBDBDFFBDBDBDFFBDBDBDFFBDBDBDFFBDBDBDFFBDBDBDFFBCBCBCFEA1A1
|
||||||
|
A1794E4E4E014D4D4D004D4D4D004D4D4D004D4D4D004E4E4E01A0A0A07CBABA
|
||||||
|
BAFDBBBBBBFFBBBBBBFFBBBBBBFFBBBBBBFFBBBBBBFFBBBBBBFFBABABAFDA3A3
|
||||||
|
A37C4E4E4E014D4D4D004D4D4D004D4D4D004D4D4D004E4E4E01B1B1B1A7B9B9
|
||||||
|
B9FEB9B9B9FEB9B9B9FEB9B9B9FEB9B9B9FEB9B9B9FEB9B9B9FEB9B9B9FEB3B3
|
||||||
|
B3A74F4F4F014D4D4D004D4D4D004D4D4D004D4D4D0058585801B6B6B6D1B8B8
|
||||||
|
B8FEB8B8B8FDB3B3B3F0A3A3A398A2A2A298B3B3B3F0B8B8B8FDB8B8B8FEB6B6
|
||||||
|
B6D15C5C5C014D4D4D004D4D4D004D4D4D004D4D4D006A6A6A06B6B6B6F5B3B3
|
||||||
|
B3F4A1A1A18D717171164F4F4F014F4F4F0170707016A0A0A08DB3B3B3F4B6B6
|
||||||
|
B6F56D6D6D064D4D4D004D4D4D004D4D4D004D4D4D006565650B9C9C9C877676
|
||||||
|
761F515151014D4D4D004D4D4D004D4D4D004D4D4D00505050017575751F9C9C
|
||||||
|
9C876767670B4D4D4D004D4D4D00000000000000000000000000000000000000
|
||||||
|
000000000000000203011A699B401A699B404E4E4E014D4D4D004D4D4D004D4D
|
||||||
|
4D004D4D4D004D4D4D004D4D4D00000000000000000000000000000000000000
|
||||||
|
000000000100082031022BA4F1CF2BA4F1CF686868024D4D4D004D4D4D004D4D
|
||||||
|
4D004D4D4D004D4D4D004D4D4D00000000000000000000000000000000000000
|
||||||
|
0000000203001A6FA6522BA5F3FD2BA5F3FDA3A3A3524E4E4E004D4D4D004D4D
|
||||||
|
4D004D4D4D004D4D4D004D4D4D00000000000000000000000000000000000001
|
||||||
|
0100061F2E0225A0EECD2BA4F2FE2BA4F2FEC3C3C3CD666666024D4D4D004D4D
|
||||||
|
4D004D4D4D004D4D4D004D4D4D00000102000001020000020301000204010414
|
||||||
|
1F021C7DBD6724A0F0FD2AA3F2FE2AA3F2FEC3C3C3FDACACAC675D5D5D024E4E
|
||||||
|
4E014E4E4E014D4D4D004D4D4D000F456820135C8B4A1872AC6F1E89CE93229C
|
||||||
|
EAC0229EEEFC229FEFFE28A1F0FF28A1F0FFC2C2C2FEC1C1C1FCC0C0C0C0B3B3
|
||||||
|
B393A2A2A26F9292924A808080202193DDD7209CEBFC209DECFD209DEDFE209D
|
||||||
|
EDFE219DEDFE219EEEFE26A0EEFF26A0EEFFC1C1C1FEC1C1C1FEC1C1C1FEC1C1
|
||||||
|
C1FEC1C1C1FDC1C1C1FCBABABAD70F3D5B1F1F92DBD91F9BEAFE1F9BEBFE1F9C
|
||||||
|
ECFF1F9CECFF209CECFF249EECFF249EECFFC1C1C1FFC1C1C1FFC1C1C1FFC0C0
|
||||||
|
C0FEC0C0C0FEB9B9B9D97C7C7C1F000203000D38551B1E90D9D51D99E8FE1E99
|
||||||
|
E9FE1E9AEAFF1E9AEAFF239CEAFF239CEAFFBFBFBFFFBFBFBFFFBFBFBFFEBFBF
|
||||||
|
BFFEB8B8B8D57979791B4E4E4E0000000000000102000C354F191C91DCDD1B98
|
||||||
|
E8FE1C98E8FF1C98E8FF219AE8FF219AE8FFBEBEBEFFBEBEBEFFBDBDBDFEB8B8
|
||||||
|
B8DD767676194D4D4D004D4D4D00000000000000000000020401146EA6791996
|
||||||
|
E6FE1A97E7FF1A97E7FF1F98E6FF1F98E6FFBDBDBDFFBDBDBDFFBCBCBCFEA1A1
|
||||||
|
A1794E4E4E014D4D4D004D4D4D000000000000000000000203011270AC7C1894
|
||||||
|
E4FD1895E5FF1995E5FF1D97E4FF1D97E4FFBBBBBBFFBBBBBBFFBABABAFDA3A3
|
||||||
|
A37C4E4E4E014D4D4D004D4D4D000000000000000000000203011486D0A71692
|
||||||
|
E2FE1792E2FE1792E2FE1893E2FE1893E2FEB9B9B9FEB9B9B9FEB9B9B9FEB3B3
|
||||||
|
B3A74F4F4F014D4D4D004D4D4D00000000000000000002111A01148EDDD11590
|
||||||
|
E0FE1490DFFD158AD5F01575B2981575B298B3B3B3F0B8B8B8FDB8B8B8FEB6B6
|
||||||
|
B6D15C5C5C014D4D4D004D4D4D00000000000000000005273E06138DDBF5148A
|
||||||
|
D5F41472AE8D09314C16000406010004060170707016A0A0A08DB3B3B3F4B6B6
|
||||||
|
B6F56D6D6D064D4D4D004D4D4D0000000000000001000621330B126BA4870B39
|
||||||
|
561F000609010001010000000000000000004D4D4D00505050017575751F9C9C
|
||||||
|
9C876767670B4D4D4D004D4D4D00000000000000000000000000000000000000
|
||||||
|
000000000000030100019B4C1A40A2511C400301000100000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
00000101000031180802F2782ACFF3782ACF381C090201010000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
000003010000A7521B52F47828FDF47828FDAD541C5203010000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000100
|
||||||
|
00002E160702EF7526CDF37626FEF37626FEF07526CD35190802010000000000
|
||||||
|
0000000000000000000000000000020100000201000003010001040200011F0F
|
||||||
|
0402BD5B1C67F07525FDF17525FEF27525FEF07525FDC25E1D67210F04020402
|
||||||
|
000103010001020100000201000068320F208B43144AAC52196FCF641E93EA70
|
||||||
|
22C0EE7323FCEF7323FEF07424FFF07424FFEF7323FEEE7323FCEB7122C0D064
|
||||||
|
1E93AD53196F8D44144A69320F20DE6C22D7EC7021FCED7021FDEE7121FEEE71
|
||||||
|
21FEEE7121FEEE7222FEEE7222FFEE7222FFEE7222FEEE7121FEEE7121FEEE71
|
||||||
|
21FEED7021FDEC7021FCDE6C22D75B2D0F1FDC6920D9EB6E1FFEEC7020FEED70
|
||||||
|
20FFED7020FFED7020FFED7020FFED7020FFED7020FFED7020FFED7020FFEC70
|
||||||
|
20FEEB6E1FFEDC6920D96130101F03010000552B0E1BD9671ED5E96C1DFEEA6E
|
||||||
|
1EFEEB6E1EFFEB6E1EFFEB6E1EFFEB6E1EFFEB6E1EFFEB6E1EFFEA6E1EFEE96C
|
||||||
|
1DFEDA671ED5592C0F1B0301000000000000020100004F260C19DC671CDDE86C
|
||||||
|
1CFEE96C1CFFE96C1CFFE96C1CFFE96C1CFFE96C1CFFE96C1CFFE86C1CFEDC66
|
||||||
|
1CDD55280D190201000000000000000000000000000004020001A64C1479E66A
|
||||||
|
1AFEE76B1BFFE76B1BFFE76B1BFFE76B1BFFE76B1BFFE76B1BFFE66A1AFEAD50
|
||||||
|
1579040200010000000000000000000000000000000003010001AC4E127CE468
|
||||||
|
18FDE56919FFE56919FFE56919FFE56919FFE56919FFE56919FFE46818FDB352
|
||||||
|
137C030100010000000000000000000000000000000003010001D05E14A7E266
|
||||||
|
16FEE26717FEE26717FEE26717FEE26717FEE26717FEE26717FEE26616FED560
|
||||||
|
15A705020001000000000000000000000000000000001A0B0201DD6314D1E065
|
||||||
|
15FEDF6314FDD56015F0B2521498B1521498D56015F0DF6314FDE06515FEDD63
|
||||||
|
14D1210E0201000000000000000000000000000000003E1C0506DB6113F5D560
|
||||||
|
14F4AE50148D4C240916060200010502000148220916AC4E138DD56014F4DB61
|
||||||
|
13F5441F0606000000000000000000000000010100003318060BA44B12875628
|
||||||
|
0B1F09030001010000000000000000000000010000000803000153260A1FA34A
|
||||||
|
1287381A060B01010000000000004D4D4D004D4D4D004D4D4D004D4D4D004D4D
|
||||||
|
4D004D4D4D004E4E4E019A9A9A409D9D9D404E4E4E014D4D4D004D4D4D004D4D
|
||||||
|
4D004D4D4D004D4D4D004D4D4D004D4D4D004D4D4D004D4D4D004D4D4D004D4D
|
||||||
|
4D004D4D4D0064646402C6C6C6CFC6C6C6CF686868024D4D4D004D4D4D004D4D
|
||||||
|
4D004D4D4D004D4D4D004D4D4D004D4D4D004D4D4D004D4D4D004D4D4D004D4D
|
||||||
|
4D004E4E4E009F9F9F52C6C6C6FDC6C6C6FDA3A3A3524E4E4E004D4D4D004D4D
|
||||||
|
4D004D4D4D004D4D4D004D4D4D004D4D4D004D4D4D004D4D4D004D4D4D004D4D
|
||||||
|
4D0063636302C3C3C3CDC5C5C5FEC5C5C5FEC3C3C3CD666666024D4D4D004D4D
|
||||||
|
4D004D4D4D004D4D4D004D4D4D004D4D4D004D4D4D004E4E4E014E4E4E015B5B
|
||||||
|
5B02AAAAAA67C3C3C3FDC3C3C3FEC4C4C4FEC3C3C3FDACACAC675D5D5D024E4E
|
||||||
|
4E014E4E4E014D4D4D004D4D4D00808080209090904AA1A1A16FB2B2B293C0C0
|
||||||
|
C0C0C1C1C1FCC2C2C2FEC3C3C3FFC3C3C3FFC2C2C2FEC1C1C1FCC0C0C0C0B3B3
|
||||||
|
B393A2A2A26F9292924A80808020BABABAD7C1C1C1FCC1C1C1FDC1C1C1FEC1C1
|
||||||
|
C1FEC1C1C1FEC1C1C1FEC1C1C1FFC1C1C1FFC1C1C1FEC1C1C1FEC1C1C1FEC1C1
|
||||||
|
C1FEC1C1C1FDC1C1C1FCBABABAD77979791FB9B9B9D9C0C0C0FEC0C0C0FEC1C1
|
||||||
|
C1FFC1C1C1FFC1C1C1FFC1C1C1FFC1C1C1FFC1C1C1FFC1C1C1FFC1C1C1FFC0C0
|
||||||
|
C0FEC0C0C0FEB9B9B9D97C7C7C1F4E4E4E007676761BB7B7B7D5BFBFBFFEBFBF
|
||||||
|
BFFEBFBFBFFFBFBFBFFFBFBFBFFFBFBFBFFFBFBFBFFFBFBFBFFFBFBFBFFEBFBF
|
||||||
|
BFFEB8B8B8D57979791B4E4E4E004D4D4D004D4D4D0074747419B8B8B8DDBDBD
|
||||||
|
BDFEBEBEBEFFBEBEBEFFBEBEBEFFBEBEBEFFBEBEBEFFBEBEBEFFBDBDBDFEB8B8
|
||||||
|
B8DD767676194D4D4D004D4D4D004D4D4D004D4D4D004E4E4E019E9E9E79BCBC
|
||||||
|
BCFEBDBDBDFFBDBDBDFFBDBDBDFFBDBDBDFFBDBDBDFFBDBDBDFFBCBCBCFEA1A1
|
||||||
|
A1794E4E4E014D4D4D004D4D4D004D4D4D004D4D4D004E4E4E01A0A0A07CBABA
|
||||||
|
BAFDBBBBBBFFBBBBBBFFBBBBBBFFBBBBBBFFBBBBBBFFBBBBBBFFBABABAFDA3A3
|
||||||
|
A37C4E4E4E014D4D4D004D4D4D004D4D4D004D4D4D004E4E4E01B1B1B1A7B9B9
|
||||||
|
B9FEB9B9B9FEB9B9B9FEB9B9B9FEB9B9B9FEB9B9B9FEB9B9B9FEB9B9B9FEB3B3
|
||||||
|
B3A74F4F4F014D4D4D004D4D4D004D4D4D004D4D4D0058585801B6B6B6D1B8B8
|
||||||
|
B8FEB8B8B8FDB3B3B3F0A3A3A398A2A2A298B3B3B3F0B8B8B8FDB8B8B8FEB6B6
|
||||||
|
B6D15C5C5C014D4D4D004D4D4D004D4D4D004D4D4D006A6A6A06B6B6B6F5B3B3
|
||||||
|
B3F4A1A1A18D717171164F4F4F014F4F4F0170707016A0A0A08DB3B3B3F4B6B6
|
||||||
|
B6F56D6D6D064D4D4D004D4D4D004D4D4D004D4D4D006565650B9C9C9C877676
|
||||||
|
761F515151014D4D4D004D4D4D004D4D4D004D4D4D00505050017575751F9C9C
|
||||||
|
9C876767670B4D4D4D004D4D4D00
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
object imTBNor: TImageList
|
object imTBNor: TImageList
|
||||||
|
@ -207,6 +207,7 @@ type
|
|||||||
FUpdateSize: Int64;
|
FUpdateSize: Int64;
|
||||||
FIsDirZipped: Boolean;
|
FIsDirZipped: Boolean;
|
||||||
FZippedBaseDir: String;
|
FZippedBaseDir: String;
|
||||||
|
FRating: Integer;
|
||||||
FPackageFiles: TCollection;
|
FPackageFiles: TCollection;
|
||||||
function GetDownloadable: Boolean;
|
function GetDownloadable: Boolean;
|
||||||
function GetExtractable: Boolean;
|
function GetExtractable: Boolean;
|
||||||
@ -226,6 +227,7 @@ type
|
|||||||
property DownloadZipURL: String read FDownloadZipURL write FDownloadZipURL;
|
property DownloadZipURL: String read FDownloadZipURL write FDownloadZipURL;
|
||||||
property HasUpdate: Boolean read FHasUpdate write FHasUpdate;
|
property HasUpdate: Boolean read FHasUpdate write FHasUpdate;
|
||||||
property DisableInOPM: Boolean read FDisableInOPM write FDisableInOPM;
|
property DisableInOPM: Boolean read FDisableInOPM write FDisableInOPM;
|
||||||
|
property Rating: Integer read FRating write FRating;
|
||||||
published
|
published
|
||||||
property Name: String read FName write FName;
|
property Name: String read FName write FName;
|
||||||
property DisplayName: String read FDisplayName write FDisplayName;
|
property DisplayName: String read FDisplayName write FDisplayName;
|
||||||
|
@ -250,6 +250,7 @@ begin
|
|||||||
HasUpdate := False;
|
HasUpdate := False;
|
||||||
Package.DownloadZipURL := FXML.GetValue(Path + 'DownloadZipURL', '');
|
Package.DownloadZipURL := FXML.GetValue(Path + 'DownloadZipURL', '');
|
||||||
Package.DisableInOPM := FXML.GetValue(Path + 'DisableInOPM', False);
|
Package.DisableInOPM := FXML.GetValue(Path + 'DisableInOPM', False);
|
||||||
|
Package.Rating := FXML.GetValue(Path + 'Rating', 0);
|
||||||
PackageFileCount := FXML.GetValue(Path + 'Count', 0);
|
PackageFileCount := FXML.GetValue(Path + 'Count', 0);
|
||||||
for J := 0 to PackageFileCount - 1 do
|
for J := 0 to PackageFileCount - 1 do
|
||||||
begin
|
begin
|
||||||
@ -296,6 +297,7 @@ begin
|
|||||||
FXML.SetDeleteValue(Path + 'Name', Package.Name, '');
|
FXML.SetDeleteValue(Path + 'Name', Package.Name, '');
|
||||||
FXML.SetDeleteValue(Path + 'DownloadZipURL', Package.DownloadZipURL, '');
|
FXML.SetDeleteValue(Path + 'DownloadZipURL', Package.DownloadZipURL, '');
|
||||||
FXML.SetDeleteValue(Path + 'DisableInOPM', Package.DisableInOPM, False);
|
FXML.SetDeleteValue(Path + 'DisableInOPM', Package.DisableInOPM, False);
|
||||||
|
FXML.SetDeleteValue(Path + 'Rating', Package.Rating, 0);
|
||||||
FXML.SetDeleteValue(Path + 'Count', SerializablePackages.Items[I].PackageFiles.Count, 0);
|
FXML.SetDeleteValue(Path + 'Count', SerializablePackages.Items[I].PackageFiles.Count, 0);
|
||||||
for J := 0 to SerializablePackages.Items[I].PackageFiles.Count - 1 do
|
for J := 0 to SerializablePackages.Items[I].PackageFiles.Count - 1 do
|
||||||
begin
|
begin
|
||||||
|
@ -31,7 +31,8 @@ interface
|
|||||||
|
|
||||||
uses
|
uses
|
||||||
Classes, SysUtils, Controls, Graphics, Menus, Dialogs, Forms, LCLIntf, contnrs,
|
Classes, SysUtils, Controls, Graphics, Menus, Dialogs, Forms, LCLIntf, contnrs,
|
||||||
PackageIntf, Buttons, opkman_VirtualTrees, opkman_common, opkman_serializablepackages;
|
PackageIntf, Buttons, Math, opkman_VirtualTrees, opkman_VTGraphics, opkman_common,
|
||||||
|
opkman_serializablepackages;
|
||||||
|
|
||||||
|
|
||||||
type
|
type
|
||||||
@ -69,6 +70,7 @@ type
|
|||||||
InstallState: Integer;
|
InstallState: Integer;
|
||||||
ButtonID: Integer;
|
ButtonID: Integer;
|
||||||
Button: TSpeedButton;
|
Button: TSpeedButton;
|
||||||
|
Rating: Integer;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
TFilterBy = (fbPackageName, fbPackageFileName, fbPackageCategory, fbPackageState,
|
TFilterBy = (fbPackageName, fbPackageFileName, fbPackageCategory, fbPackageState,
|
||||||
@ -81,12 +83,14 @@ type
|
|||||||
private
|
private
|
||||||
FVST: TVirtualStringTree;
|
FVST: TVirtualStringTree;
|
||||||
FHoverNode: PVirtualNode;
|
FHoverNode: PVirtualNode;
|
||||||
|
FHoverP: TPoint;
|
||||||
FHoverColumn: Integer;
|
FHoverColumn: Integer;
|
||||||
FLink: String;
|
FLink: String;
|
||||||
FLinkClicked: Boolean;
|
FLinkClicked: Boolean;
|
||||||
FSortCol: Integer;
|
FSortCol: Integer;
|
||||||
FSortDir: opkman_VirtualTrees.TSortDirection;
|
FSortDir: opkman_VirtualTrees.TSortDirection;
|
||||||
FCheckingNodes: Boolean;
|
FCheckingNodes: Boolean;
|
||||||
|
FLeaving: Boolean;
|
||||||
FOnChecking: TOnChecking;
|
FOnChecking: TOnChecking;
|
||||||
FOnChecked: TNotifyEvent;
|
FOnChecked: TNotifyEvent;
|
||||||
procedure VSTBeforeCellPaint(Sender: TBaseVirtualTree;
|
procedure VSTBeforeCellPaint(Sender: TBaseVirtualTree;
|
||||||
@ -109,6 +113,8 @@ type
|
|||||||
{%H-}TextType: TVSTTextType);
|
{%H-}TextType: TVSTTextType);
|
||||||
procedure VSTFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode);
|
procedure VSTFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode);
|
||||||
procedure VSTMouseMove(Sender: TObject; {%H-}Shift: TShiftState; X, Y: Integer);
|
procedure VSTMouseMove(Sender: TObject; {%H-}Shift: TShiftState; X, Y: Integer);
|
||||||
|
procedure VSTMouseEnter(Sender: TObject);
|
||||||
|
procedure VSTMouseLeave(Sender: TObject);
|
||||||
procedure VSTMouseDown(Sender: TObject; Button: TMouseButton; {%H-}Shift: TShiftState; X, Y: Integer);
|
procedure VSTMouseDown(Sender: TObject; Button: TMouseButton; {%H-}Shift: TShiftState; X, Y: Integer);
|
||||||
procedure VSTGetHint(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex;
|
procedure VSTGetHint(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex;
|
||||||
var LineBreakStyle: TVTTooltipLineBreakStyle; var HintText: String);
|
var LineBreakStyle: TVTTooltipLineBreakStyle; var HintText: String);
|
||||||
@ -117,13 +123,15 @@ type
|
|||||||
procedure VSTCollapsed(Sender: TBaseVirtualTree; {%H-}Node: PVirtualNode);
|
procedure VSTCollapsed(Sender: TBaseVirtualTree; {%H-}Node: PVirtualNode);
|
||||||
procedure VSTExpanding(Sender: TBaseVirtualTree; {%H-}Node: PVirtualNode; var {%H-}Allowed: Boolean);
|
procedure VSTExpanding(Sender: TBaseVirtualTree; {%H-}Node: PVirtualNode; var {%H-}Allowed: Boolean);
|
||||||
procedure VSTCollapsing(Sender: TBaseVirtualTree; {%H-}Node: PVirtualNode; var {%H-}Allowed: Boolean);
|
procedure VSTCollapsing(Sender: TBaseVirtualTree; {%H-}Node: PVirtualNode; var {%H-}Allowed: Boolean);
|
||||||
procedure VSTOnDblClick(Sender: TObject);
|
procedure VSTDblClick(Sender: TObject);
|
||||||
procedure VSTScroll(Sender: TBaseVirtualTree; {%H-}DeltaX, {%H-}DeltaY: Integer);
|
procedure VSTScroll(Sender: TBaseVirtualTree; {%H-}DeltaX, {%H-}DeltaY: Integer);
|
||||||
function GetDisplayString(const AStr: String): String;
|
function GetDisplayString(const AStr: String): String;
|
||||||
function IsAllChecked(const AChecking: PVirtualNode): Boolean;
|
function IsAllChecked(const AChecking: PVirtualNode): Boolean;
|
||||||
procedure ButtonClick(Sender: TObject);
|
procedure ButtonClick(Sender: TObject);
|
||||||
procedure ShowButtons;
|
procedure ShowButtons;
|
||||||
procedure HideButtons;
|
procedure HideButtons;
|
||||||
|
procedure DrawStars(ACanvas: TCanvas; AStartIndex: Integer; P: TPoint; AAvarage: Double);
|
||||||
|
function GetColumn(const AX: Integer): Integer;
|
||||||
function TranslateCategories(const AStr: String): String;
|
function TranslateCategories(const AStr: String): String;
|
||||||
public
|
public
|
||||||
constructor Create(const AParent: TWinControl; const AImgList: TImageList;
|
constructor Create(const AParent: TWinControl; const AImgList: TImageList;
|
||||||
@ -173,6 +181,7 @@ begin
|
|||||||
DefaultText := '';
|
DefaultText := '';
|
||||||
Header.AutoSizeIndex := 4;
|
Header.AutoSizeIndex := 4;
|
||||||
Header.Height := 25;
|
Header.Height := 25;
|
||||||
|
|
||||||
with Header.Columns.Add do
|
with Header.Columns.Add do
|
||||||
begin
|
begin
|
||||||
Position := 0;
|
Position := 0;
|
||||||
@ -213,9 +222,10 @@ begin
|
|||||||
with Header.Columns.Add do
|
with Header.Columns.Add do
|
||||||
begin
|
begin
|
||||||
Position := 5;
|
Position := 5;
|
||||||
Width := 25;
|
Alignment := taCenter;
|
||||||
|
Width := 88;
|
||||||
Options := Options - [coResizable];
|
Options := Options - [coResizable];
|
||||||
Text := rsMainFrm_VSTHeaderColumn_Button;
|
Text := rsMainFrm_VSTHeaderColumn_Rating;
|
||||||
end;
|
end;
|
||||||
Header.Options := [hoAutoResize, hoColumnResize, hoRestrictDrag, hoShowSortGlyphs, hoVisible, hoAutoSpring];
|
Header.Options := [hoAutoResize, hoColumnResize, hoRestrictDrag, hoShowSortGlyphs, hoVisible, hoAutoSpring];
|
||||||
{$IFDEF LCLCarbon}
|
{$IFDEF LCLCarbon}
|
||||||
@ -226,7 +236,7 @@ begin
|
|||||||
ShowHint := True;
|
ShowHint := True;
|
||||||
TabOrder := 2;
|
TabOrder := 2;
|
||||||
TreeOptions.MiscOptions := [toCheckSupport, toFullRepaintOnResize, toInitOnSave, toToggleOnDblClick, toWheelPanning];
|
TreeOptions.MiscOptions := [toCheckSupport, toFullRepaintOnResize, toInitOnSave, toToggleOnDblClick, toWheelPanning];
|
||||||
TreeOptions.PaintOptions := [toHideFocusRect, toAlwaysHideSelection, toPopupMode, toShowButtons, toShowDropmark, toShowRoot, toThemeAware, toUseBlendedImages];
|
TreeOptions.PaintOptions := [toHideFocusRect, toAlwaysHideSelection, toPopupMode, toShowButtons, toShowDropmark, toShowRoot, toThemeAware];
|
||||||
TreeOptions.SelectionOptions := [toFullRowSelect, toRightClickSelect];
|
TreeOptions.SelectionOptions := [toFullRowSelect, toRightClickSelect];
|
||||||
TreeOptions.AutoOptions := [toAutoTristateTracking];
|
TreeOptions.AutoOptions := [toAutoTristateTracking];
|
||||||
OnBeforeCellPaint := @VSTBeforeCellPaint;
|
OnBeforeCellPaint := @VSTBeforeCellPaint;
|
||||||
@ -238,8 +248,10 @@ begin
|
|||||||
OnGetImageIndex := @VSTGetImageIndex;
|
OnGetImageIndex := @VSTGetImageIndex;
|
||||||
OnHeaderClick := @VSTHeaderClick;
|
OnHeaderClick := @VSTHeaderClick;
|
||||||
OnMouseMove := @VSTMouseMove;
|
OnMouseMove := @VSTMouseMove;
|
||||||
|
OnMouseLeave := @VSTMouseLeave;
|
||||||
|
OnMouseEnter := @VSTMouseEnter;
|
||||||
OnMouseDown := @VSTMouseDown;
|
OnMouseDown := @VSTMouseDown;
|
||||||
OnDblClick := @VSTOnDblClick;
|
OnDblClick := @VSTDblClick;
|
||||||
OnGetHint := @VSTGetHint;
|
OnGetHint := @VSTGetHint;
|
||||||
OnAfterCellPaint := @VSTAfterCellPaint;
|
OnAfterCellPaint := @VSTAfterCellPaint;
|
||||||
OnCollapsed := @VSTCollapsed;
|
OnCollapsed := @VSTCollapsed;
|
||||||
@ -299,6 +311,7 @@ begin
|
|||||||
Data^.InstallState := SerializablePackages.GetPackageInstallState(SerializablePackages.Items[I]);
|
Data^.InstallState := SerializablePackages.GetPackageInstallState(SerializablePackages.Items[I]);
|
||||||
Data^.HasUpdate := SerializablePackages.Items[I].HasUpdate;
|
Data^.HasUpdate := SerializablePackages.Items[I].HasUpdate;
|
||||||
Data^.DisableInOPM := SerializablePackages.Items[I].DisableInOPM;
|
Data^.DisableInOPM := SerializablePackages.Items[I].DisableInOPM;
|
||||||
|
Data^.Rating := SerializablePackages.Items[I].Rating;
|
||||||
FVST.IsDisabled[Node] := Data^.DisableInOPM;
|
FVST.IsDisabled[Node] := Data^.DisableInOPM;
|
||||||
Data^.DataType := 1;
|
Data^.DataType := 1;
|
||||||
for J := 0 to SerializablePackages.Items[I].PackageFiles.Count - 1 do
|
for J := 0 to SerializablePackages.Items[I].PackageFiles.Count - 1 do
|
||||||
@ -606,6 +619,70 @@ begin
|
|||||||
HideButtons;
|
HideButtons;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TVisualTree.DrawStars(ACanvas: TCanvas; AStartIndex: Integer;
|
||||||
|
P: TPoint; AAvarage: Double);
|
||||||
|
|
||||||
|
procedure Draw(const AX, AY: Integer; ATyp, ACnt: Integer);
|
||||||
|
var
|
||||||
|
Bmp: TBitMap;
|
||||||
|
I: Integer;
|
||||||
|
begin
|
||||||
|
Bmp := TBitmap.Create;
|
||||||
|
try
|
||||||
|
Bmp.Width := 16;
|
||||||
|
Bmp.Height := 16;
|
||||||
|
if AStartIndex + ATyp > 25 then
|
||||||
|
ShowMessage('crap');
|
||||||
|
TImageList(FVST.Images).GetBitmap(AStartIndex + ATyp, Bmp);
|
||||||
|
for I := 0 to ACnt - 1 do
|
||||||
|
ACanvas.Draw(AX + I*16 + 5, AY, Bmp);
|
||||||
|
finally
|
||||||
|
Bmp.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
var
|
||||||
|
F: Double;
|
||||||
|
I, X, Y: Integer;
|
||||||
|
Stars, NoStars: Integer;
|
||||||
|
HalfStar: Boolean;
|
||||||
|
begin
|
||||||
|
HalfStar := False;
|
||||||
|
F := Frac(AAvarage);
|
||||||
|
I := Trunc(AAvarage);
|
||||||
|
case CompareValue(F, 0.25, 0.005) of
|
||||||
|
-1:
|
||||||
|
begin
|
||||||
|
Stars := I;
|
||||||
|
NoStars := 5 - Stars;
|
||||||
|
end;
|
||||||
|
0, 1:
|
||||||
|
begin
|
||||||
|
if CompareValue(F, 0.75, 0.005) = -1 then
|
||||||
|
begin
|
||||||
|
Stars := I;
|
||||||
|
NoStars := 5 - Stars - 1;
|
||||||
|
HalfStar := True;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
Stars := I + 1;
|
||||||
|
NoStars := 5 - Stars;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
X := P.X;
|
||||||
|
Y := P.Y;
|
||||||
|
Draw(X, Y, 0, Stars);
|
||||||
|
Inc(X, Stars*16);
|
||||||
|
if HalfStar then
|
||||||
|
begin
|
||||||
|
Draw(X, Y, 2, 1);
|
||||||
|
Inc(X, 16);
|
||||||
|
end;
|
||||||
|
Draw(X, Y, 1, NoStars);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TVisualTree.VSTAfterCellPaint(Sender: TBaseVirtualTree;
|
procedure TVisualTree.VSTAfterCellPaint(Sender: TBaseVirtualTree;
|
||||||
TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
|
TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
|
||||||
const CellRect: TRect);
|
const CellRect: TRect);
|
||||||
@ -613,17 +690,19 @@ var
|
|||||||
Data: PData;
|
Data: PData;
|
||||||
R: TRect;
|
R: TRect;
|
||||||
Text: String;
|
Text: String;
|
||||||
|
P: TPoint;
|
||||||
|
Stars: Integer;
|
||||||
begin
|
begin
|
||||||
if Column = 5 then
|
if Column = 4 then
|
||||||
begin
|
begin
|
||||||
Data := FVST.GetNodeData(Node);
|
Data := FVST.GetNodeData(Node);
|
||||||
if Assigned(Data^.Button) then
|
if Assigned(Data^.Button) then
|
||||||
begin
|
begin
|
||||||
R := FVST.GetDisplayRect(Node, Column, false);
|
R := FVST.GetDisplayRect(Node, Column, False);
|
||||||
Data^.Button.Left := R.Left + 1;
|
Data^.Button.Width := 25;
|
||||||
Data^.Button.Width := R.Right - R.Left -2;
|
Data^.Button.Left := R.Right - Data^.Button.Width - 1;
|
||||||
Data^.Button.Top := R.Top + 1;
|
Data^.Button.Top := R.Top + 1;
|
||||||
Data^.Button.Height := R.Bottom - R.Top - 2;
|
Data^.Button.Height := R.Bottom - R.Top - 1;
|
||||||
case Data^.DataType of
|
case Data^.DataType of
|
||||||
3: Text := Data^.Description;
|
3: Text := Data^.Description;
|
||||||
9: Text := Data^.License;
|
9: Text := Data^.License;
|
||||||
@ -631,6 +710,25 @@ begin
|
|||||||
Data^.Button.Visible := ((R.Bottom > FVST.Top) and (R.Bottom < FVST.Top + FVST.Height)) and (Trim(Text) <> '');
|
Data^.Button.Visible := ((R.Bottom > FVST.Top) and (R.Bottom < FVST.Top + FVST.Height)) and (Trim(Text) <> '');
|
||||||
Data^.Button.Enabled := not FVST.IsDisabled[Node];
|
Data^.Button.Enabled := not FVST.IsDisabled[Node];
|
||||||
end;
|
end;
|
||||||
|
end
|
||||||
|
else if Column = 5 then
|
||||||
|
begin
|
||||||
|
Data := FVST.GetNodeData(Node);
|
||||||
|
if Data^.DataType = 1 then
|
||||||
|
begin
|
||||||
|
R := FVST.GetDisplayRect(Node, Column, False);
|
||||||
|
P.X := R.Left + 1;
|
||||||
|
P.Y := ((R.Bottom - R.Top - 16) div 2) + 1;
|
||||||
|
if (Node = FHoverNode) and (not FLeaving) and (FHoverP.X >= P.X + 1) and (Abs(FHoverP.X - P.X) <= R.Right - R.Bottom) then
|
||||||
|
begin
|
||||||
|
Stars := Trunc((FHoverP.X - P.X)/16) + 1;
|
||||||
|
if Stars > 5 then
|
||||||
|
Stars := 5;
|
||||||
|
DrawStars(TargetCanvas, 23, P, Stars)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
DrawStars(TargetCanvas, 20, P, Data^.Rating);
|
||||||
|
end
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -1020,6 +1118,7 @@ begin
|
|||||||
Data^.DownloadZipURL := Package.DownloadZipURL;
|
Data^.DownloadZipURL := Package.DownloadZipURL;
|
||||||
Data^.HasUpdate := Package.HasUpdate;
|
Data^.HasUpdate := Package.HasUpdate;
|
||||||
Data^.DisableInOPM := Package.DisableInOPM;
|
Data^.DisableInOPM := Package.DisableInOPM;
|
||||||
|
Data^.Rating := Package.Rating;
|
||||||
FVST.IsDisabled[Node] := Data^.DisableInOPM;
|
FVST.IsDisabled[Node] := Data^.DisableInOPM;
|
||||||
FVST.ReinitNode(Node, False);
|
FVST.ReinitNode(Node, False);
|
||||||
FVST.RepaintNode(Node);
|
FVST.RepaintNode(Node);
|
||||||
@ -1068,52 +1167,23 @@ procedure TVisualTree.VSTBeforeCellPaint(Sender: TBaseVirtualTree;
|
|||||||
var
|
var
|
||||||
Data: PData;
|
Data: PData;
|
||||||
begin
|
begin
|
||||||
Data := Sender.GetNodeData(Node);
|
if CellPaintMode = cpmPaint then
|
||||||
if (Data^.DataType = 0) or (Data^.DataType = 1) or (Data^.DataType = 2) then
|
|
||||||
begin
|
begin
|
||||||
if (Node = Sender.FocusedNode) then
|
Data := Sender.GetNodeData(Node);
|
||||||
begin
|
|
||||||
case Column of
|
if (Data^.DataType = 0) or (Data^.DataType = 1) or (Data^.DataType = 2) then
|
||||||
0: begin
|
TargetCanvas.Brush.Color := $00E5E5E5
|
||||||
if Data^.DataType = 0 then
|
|
||||||
TargetCanvas.Brush.Color := $00E5E5E5 //00D8D8D8
|
|
||||||
else
|
|
||||||
TargetCanvas.Brush.Color := $00E5E5E5;
|
|
||||||
TargetCanvas.FillRect(CellRect);
|
|
||||||
TargetCanvas.Brush.Color := FVST.Colors.FocusedSelectionColor;
|
|
||||||
TargetCanvas.FillRect(ContentRect)
|
|
||||||
end
|
|
||||||
else
|
|
||||||
begin
|
|
||||||
TargetCanvas.Brush.Color := FVST.Colors.FocusedSelectionColor;
|
|
||||||
TargetCanvas.FillRect(CellRect)
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end
|
|
||||||
else
|
else
|
||||||
begin
|
TargetCanvas.Brush.Color := clBtnFace;
|
||||||
if Data^.DataType = 0 then
|
TargetCanvas.FillRect(CellRect);
|
||||||
TargetCanvas.Brush.Color := $00E5E5E5 //00D8D8D8
|
|
||||||
else if Data^.DataType = 1 then
|
|
||||||
TargetCanvas.Brush.Color := $00E5E5E5;
|
|
||||||
TargetCanvas.FillRect(CellRect);
|
|
||||||
end;
|
|
||||||
end
|
|
||||||
else
|
|
||||||
begin
|
|
||||||
if (Node = Sender.FocusedNode) then
|
if (Node = Sender.FocusedNode) then
|
||||||
begin
|
begin
|
||||||
TargetCanvas.Brush.Color := FVST.Colors.FocusedSelectionColor;
|
TargetCanvas.Brush.Color := FVST.Colors.FocusedSelectionColor;
|
||||||
if Column = 0 then
|
if Column = 0 then
|
||||||
TargetCanvas.FillRect(ContentRect)
|
TargetCanvas.FillRect(ContentRect)
|
||||||
else
|
else
|
||||||
TargetCanvas.FillRect(CellRect);
|
TargetCanvas.FillRect(CellRect);
|
||||||
end
|
end
|
||||||
else
|
|
||||||
begin
|
|
||||||
TargetCanvas.Brush.Style := bsClear;
|
|
||||||
TargetCanvas.FillRect(CellRect);
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -1498,6 +1568,13 @@ begin
|
|||||||
TargetCanvas.Font.Color := clGreen
|
TargetCanvas.Font.Color := clGreen
|
||||||
else
|
else
|
||||||
TargetCanvas.Font.Color := clWhite;
|
TargetCanvas.Font.Color := clWhite;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
if Node <> Sender.FocusedNode then
|
||||||
|
TargetCanvas.Font.Color := clBlack
|
||||||
|
else
|
||||||
|
TargetCanvas.Font.Color := clWhite;
|
||||||
end;
|
end;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@ -1520,57 +1597,94 @@ begin
|
|||||||
Finalize(Data^);
|
Finalize(Data^);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TVisualTree.VSTMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
|
function TVisualTree.GetColumn(const AX: Integer): Integer;
|
||||||
var
|
var
|
||||||
I, L, R: Integer;
|
I: Integer;
|
||||||
|
L, R: Integer;
|
||||||
begin
|
begin
|
||||||
FHoverColumn := -1;
|
Result := -1;
|
||||||
FHoverNode:= VST.GetNodeAt(X, Y);
|
|
||||||
for I := 0 to VST.Header.Columns.Count - 1 do
|
for I := 0 to VST.Header.Columns.Count - 1 do
|
||||||
begin
|
begin
|
||||||
VST.Header.Columns.GetColumnBounds(I, L, R);
|
VST.Header.Columns.GetColumnBounds(I, L, R);
|
||||||
if (X >= L) and (X <= R) then
|
if (AX >= L) and (AX <= R) then
|
||||||
begin
|
begin
|
||||||
FHoverColumn := I;
|
Result := I;
|
||||||
Break;
|
Break;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TVisualTree.VSTMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
|
||||||
|
begin
|
||||||
|
FHoverColumn := -1;
|
||||||
|
FHoverP.X := X;
|
||||||
|
FHoverP.Y := Y;
|
||||||
|
FHoverNode:= VST.GetNodeAt(X, Y);
|
||||||
|
FHoverColumn := GetColumn(X);
|
||||||
|
if (FHoverColumn = 5) and (FHoverNode <> nil) then
|
||||||
|
begin
|
||||||
|
FVST.ReinitNode(FHoverNode, False);
|
||||||
|
FVST.RepaintNode(FHoverNode);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TVisualTree.VSTMouseEnter(Sender: TObject);
|
||||||
|
begin
|
||||||
|
FLeaving := False;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TVisualTree.VSTMouseLeave(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if Assigned(FHoverNode) then
|
||||||
|
begin
|
||||||
|
FLeaving := True;
|
||||||
|
FVST.ReinitNode(FHoverNode, False);
|
||||||
|
FVST.RepaintNode(FHoverNode)
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TVisualTree.VSTMouseDown(Sender: TObject; Button: TMouseButton;
|
procedure TVisualTree.VSTMouseDown(Sender: TObject; Button: TMouseButton;
|
||||||
Shift: TShiftState; X, Y: Integer);
|
Shift: TShiftState; X, Y: Integer);
|
||||||
var
|
var
|
||||||
Node: PVirtualNode;
|
Node: PVirtualNode;
|
||||||
Data: PData;
|
Data: PData;
|
||||||
I, L, R: Integer;
|
|
||||||
MenuItem: TMenuItem;
|
MenuItem: TMenuItem;
|
||||||
|
DownColumn: Integer;
|
||||||
|
R: TRect;
|
||||||
|
PackageName: String;
|
||||||
|
Package: TPackage;
|
||||||
begin
|
begin
|
||||||
Node := FVST.GetNodeAt(X, Y);
|
Node := FVST.GetNodeAt(X, Y);
|
||||||
if Node <> nil then
|
if Node <> nil then
|
||||||
begin
|
begin
|
||||||
|
DownColumn := GetColumn(X);
|
||||||
Data := FVST.GetNodeData(Node);
|
Data := FVST.GetNodeData(Node);
|
||||||
if Button = mbLeft then
|
if Button = mbLeft then
|
||||||
begin
|
begin
|
||||||
if (Data^.DataType = 17) or (Data^.DataType = 18) then
|
case DownColumn of
|
||||||
begin
|
4: if (Data^.DataType = 17) or (Data^.DataType = 18) and (DownColumn = 4) then
|
||||||
for I := 0 to VST.Header.Columns.Count - 1 do
|
|
||||||
begin
|
|
||||||
VST.Header.Columns.GetColumnBounds(I, L, R);
|
|
||||||
if (X >= L) and (X <= R) and (I = 4) then
|
|
||||||
begin
|
begin
|
||||||
FLinkClicked := True;
|
FLinkClicked := True;
|
||||||
if (Data^.DataType = 17) and (Trim(Data^.HomePageURL) <> '') then
|
if (Data^.DataType = 17) and (Trim(Data^.HomePageURL) <> '') then
|
||||||
begin
|
FLink := Data^.HomePageURL
|
||||||
FLink := Data^.HomePageURL;
|
|
||||||
Break
|
|
||||||
end
|
|
||||||
else if (Data^.DataType = 18) and (Trim(Data^.DownloadURL) <> '') then
|
else if (Data^.DataType = 18) and (Trim(Data^.DownloadURL) <> '') then
|
||||||
begin
|
|
||||||
FLink := Data^.DownloadURL;
|
FLink := Data^.DownloadURL;
|
||||||
Break;
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
end;
|
5: begin
|
||||||
|
R := FVST.GetDisplayRect(Node, DownColumn, False);
|
||||||
|
Data^.Rating := Trunc((FHoverP.X - R.Left - 1)/16) + 1;
|
||||||
|
if Data^.Rating > 5 then
|
||||||
|
Data^.Rating := 5;
|
||||||
|
Package := SerializablePackages.FindPackage(Data^.PackageName, fpbPackageName);
|
||||||
|
if Package <> nil then
|
||||||
|
Package.Rating := Data^.Rating;
|
||||||
|
if Data^.PackageDisplayName <> '' then
|
||||||
|
PackageName := Data^.PackageDisplayName
|
||||||
|
else
|
||||||
|
PackageName := Data^.PackageName;
|
||||||
|
MessageDlgEx(Format(rsMainFrm_rsPackageRating, [PackageName, InttoStr(Data^.Rating)]), mtInformation, [mbOk], TForm(FVST.Parent.Parent));
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
end
|
end
|
||||||
else if Button = mbRight then
|
else if Button = mbRight then
|
||||||
@ -1601,7 +1715,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TVisualTree.VSTOnDblClick(Sender: TObject);
|
procedure TVisualTree.VSTDblClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
if FLinkClicked then
|
if FLinkClicked then
|
||||||
begin
|
begin
|
||||||
|
@ -2354,6 +2354,8 @@ type
|
|||||||
// search, sort
|
// search, sort
|
||||||
FOnCompareNodes: TVTCompareEvent; // used during sort
|
FOnCompareNodes: TVTCompareEvent; // used during sort
|
||||||
FOnIncrementalSearch: TVTIncrementalSearchEvent; // triggered on every key press (not key down)
|
FOnIncrementalSearch: TVTIncrementalSearchEvent; // triggered on every key press (not key down)
|
||||||
|
FOnMouseEnter: TNotifyEvent;
|
||||||
|
FOnMouseLeave: TNotifyEvent;
|
||||||
|
|
||||||
procedure AdjustCoordinatesByIndent(var PaintInfo: TVTPaintInfo; Indent: Integer);
|
procedure AdjustCoordinatesByIndent(var PaintInfo: TVTPaintInfo; Indent: Integer);
|
||||||
procedure AdjustImageBorder(ImageWidth, ImageHeight: Integer; BidiMode: TBidiMode; VAlign: Integer; var R: TRect;
|
procedure AdjustImageBorder(ImageWidth, ImageHeight: Integer; BidiMode: TBidiMode; VAlign: Integer; var R: TRect;
|
||||||
@ -2480,6 +2482,7 @@ type
|
|||||||
procedure CMHintShow(var Message: TCMHintShow); message CM_HINTSHOW;
|
procedure CMHintShow(var Message: TCMHintShow); message CM_HINTSHOW;
|
||||||
procedure CMMouseLeave(var Message: TLMessage); message CM_MOUSELEAVE;
|
procedure CMMouseLeave(var Message: TLMessage); message CM_MOUSELEAVE;
|
||||||
procedure CMMouseWheel(var Message: TLMMouseEvent); message LM_MOUSEWHEEL;
|
procedure CMMouseWheel(var Message: TLMMouseEvent); message LM_MOUSEWHEEL;
|
||||||
|
procedure CMMouseEnter(var Message: TLMessage); message CM_MOUSEENTER;
|
||||||
{$ifdef EnableNativeTVM}
|
{$ifdef EnableNativeTVM}
|
||||||
procedure TVMGetItem(var Message: TLMessage); message TVM_GETITEM;
|
procedure TVMGetItem(var Message: TLMessage); message TVM_GETITEM;
|
||||||
procedure TVMGetItemRect(var Message: TLMessage); message TVM_GETITEMRECT;
|
procedure TVMGetItemRect(var Message: TLMessage); message TVM_GETITEMRECT;
|
||||||
@ -2640,6 +2643,8 @@ type
|
|||||||
function DoKeyAction(var CharCode: Word; var Shift: TShiftState): Boolean; virtual;
|
function DoKeyAction(var CharCode: Word; var Shift: TShiftState): Boolean; virtual;
|
||||||
procedure DoLoadUserData(Node: PVirtualNode; Stream: TStream); virtual;
|
procedure DoLoadUserData(Node: PVirtualNode; Stream: TStream); virtual;
|
||||||
procedure DoMeasureItem(TargetCanvas: TCanvas; Node: PVirtualNode; var NodeHeight: Integer); virtual;
|
procedure DoMeasureItem(TargetCanvas: TCanvas; Node: PVirtualNode; var NodeHeight: Integer); virtual;
|
||||||
|
procedure DoMouseEnter(); virtual;
|
||||||
|
procedure DoMouseLeave(); virtual;
|
||||||
procedure DoNodeCopied(Node: PVirtualNode); virtual;
|
procedure DoNodeCopied(Node: PVirtualNode); virtual;
|
||||||
function DoNodeCopying(Node, NewParent: PVirtualNode): Boolean; virtual;
|
function DoNodeCopying(Node, NewParent: PVirtualNode): Boolean; virtual;
|
||||||
function DoNodeHeightDblClickResize(Node: PVirtualNode; Column: TColumnIndex; Shift: TShiftState;
|
function DoNodeHeightDblClickResize(Node: PVirtualNode; Column: TColumnIndex; Shift: TShiftState;
|
||||||
@ -2917,6 +2922,8 @@ type
|
|||||||
property OnKeyAction: TVTKeyActionEvent read FOnKeyAction write FOnKeyAction;
|
property OnKeyAction: TVTKeyActionEvent read FOnKeyAction write FOnKeyAction;
|
||||||
property OnLoadNode: TVTSaveNodeEvent read FOnLoadNode write FOnLoadNode;
|
property OnLoadNode: TVTSaveNodeEvent read FOnLoadNode write FOnLoadNode;
|
||||||
property OnMeasureItem: TVTMeasureItemEvent read FOnMeasureItem write FOnMeasureItem;
|
property OnMeasureItem: TVTMeasureItemEvent read FOnMeasureItem write FOnMeasureItem;
|
||||||
|
property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter;
|
||||||
|
property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave;
|
||||||
property OnNodeCopied: TVTNodeCopiedEvent read FOnNodeCopied write FOnNodeCopied;
|
property OnNodeCopied: TVTNodeCopiedEvent read FOnNodeCopied write FOnNodeCopied;
|
||||||
property OnNodeCopying: TVTNodeCopyingEvent read FOnNodeCopying write FOnNodeCopying;
|
property OnNodeCopying: TVTNodeCopyingEvent read FOnNodeCopying write FOnNodeCopying;
|
||||||
property OnNodeExport: TVTNodeExportEvent read FOnNodeExport write FOnNodeExport;
|
property OnNodeExport: TVTNodeExportEvent read FOnNodeExport write FOnNodeExport;
|
||||||
@ -3585,6 +3592,8 @@ type
|
|||||||
property OnMouseMove;
|
property OnMouseMove;
|
||||||
property OnMouseUp;
|
property OnMouseUp;
|
||||||
property OnMouseWheel;
|
property OnMouseWheel;
|
||||||
|
property OnMouseEnter;
|
||||||
|
property OnMouseLeave;
|
||||||
property OnNewText;
|
property OnNewText;
|
||||||
property OnNodeCopied;
|
property OnNodeCopied;
|
||||||
property OnNodeCopying;
|
property OnNodeCopying;
|
||||||
@ -15044,6 +15053,12 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TBaseVirtualTree.CMMouseEnter(var Message: TLMessage);
|
||||||
|
begin
|
||||||
|
DoMouseEnter();
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
procedure TBaseVirtualTree.CMMouseLeave(var Message: TLMessage);
|
procedure TBaseVirtualTree.CMMouseLeave(var Message: TLMessage);
|
||||||
@ -15075,7 +15090,7 @@ begin
|
|||||||
|
|
||||||
Header.FColumns.FDownIndex := NoColumn;
|
Header.FColumns.FDownIndex := NoColumn;
|
||||||
Header.FColumns.FHoverIndex := NoColumn;
|
Header.FColumns.FHoverIndex := NoColumn;
|
||||||
|
DoMouseLeave();
|
||||||
inherited CMMouseLeave(Message);
|
inherited CMMouseLeave(Message);
|
||||||
{$ifdef DEBUG_VTV}Logger.ExitMethod([lcMessages],'CMMouseLeave');{$endif}
|
{$ifdef DEBUG_VTV}Logger.ExitMethod([lcMessages],'CMMouseLeave');{$endif}
|
||||||
end;
|
end;
|
||||||
@ -18973,6 +18988,22 @@ begin
|
|||||||
FOnMeasureItem(Self, TargetCanvas, Node, NodeHeight);
|
FOnMeasureItem(Self, TargetCanvas, Node, NodeHeight);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TBaseVirtualTree.DoMouseEnter();
|
||||||
|
|
||||||
|
begin
|
||||||
|
if Assigned(FOnMouseEnter) then
|
||||||
|
FOnMouseEnter(Self);
|
||||||
|
end;
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
procedure TBaseVirtualTree.DoMouseLeave;
|
||||||
|
|
||||||
|
begin
|
||||||
|
if Assigned(FOnMouseLeave) then
|
||||||
|
FOnMouseLeave(Self);
|
||||||
|
end;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
procedure TBaseVirtualTree.DoNodeCopied(Node: PVirtualNode);
|
procedure TBaseVirtualTree.DoNodeCopied(Node: PVirtualNode);
|
||||||
|
Loading…
Reference in New Issue
Block a user