diff --git a/components/virtualtreeview-new/trunk/VirtualTrees.pas b/components/virtualtreeview-new/trunk/VirtualTrees.pas
index 7916025c2..ece87c9dc 100644
--- a/components/virtualtreeview-new/trunk/VirtualTrees.pas
+++ b/components/virtualtreeview-new/trunk/VirtualTrees.pas
@@ -29,6 +29,21 @@ unit VirtualTrees;
//
// January 2010 (j.wielicki@sotecware.net)
// - Improvement: Introduced 64-bit compatibility.
+// January 2010
+// - Bug fix: TBaseVirtualTree.AdjustTotalHeight now longer calculates wrong total heights if nodes have been
+// made invisible
+// - Bug fix: TCustomVirtualStringTree.OnMeasureTextWidth now works as intended
+// - Bug fix: Added missing $IFDEFs concerning theming support
+// - Bug fix: Removed default from properties TVirtualTreeColumn.Color and TVirtualTreeColumn.BiDiMode
+// July 2009
+// - Bug fix: TWorkerThread will no longer reference the tree after it has been destroyed (Mantis issue #384)
+// - Bug fix: TBaseVirtualTree.InternalConnectNode checked the expanded state of the wrong node if Mode was
+// amAddChildFirst or amAddChildLast
+// June 2009
+// - Bug fix: fixed some issues concerning the vista theme handling
+// - Improvement: removed hidden node handling in this branch
+// - Improvement: reverted header click handling to old version to keep compatibility in this branch
+// - Improvement: removed TVTPaintOption toHideTreeLinesIfThemed
// May 2009
// - Improvement: new TVTMiscOption toEditOnClick, toEditOnDblClick to control if editing can be started with a single
// click or a double click
@@ -491,8 +506,6 @@ type
Result: Integer;
end;
- TLMContextMenu = TLMMouse;
-
// Be careful when adding new states as this might change the size of the type which in turn
// changes the alignment in the node record as well as the stream chunks.
// Do not reorder the states and always add new states at the end of this enumeration in order to avoid
@@ -22316,8 +22329,8 @@ procedure TBaseVirtualTree.PaintCheckImage(const PaintInfo: TVTPaintInfo);
ButtonState := ButtonState or DFCS_CHECKED;
if Flat then
ButtonState := ButtonState or DFCS_FLAT;
- //lcl DrawFrameControl is different from windows
- DelphiCompat.DrawFrameControl(Canvas.Handle, R, DFC_BUTTON, ButtonType or ButtonState);
+
+ DrawFrameControl(Canvas.Handle, R, DFC_BUTTON, ButtonType or ButtonState);
end;
@@ -28357,8 +28370,7 @@ begin
{$ifndef Gtk}
SetMapMode(Canvas.Handle, GetMapMode(TargetCanvas.Handle));
{$endif}
- //Workaround to LCL bug 8626
- SetWindowOrgEx(Canvas.Handle, {$ifdef Gtk}-{$endif}Window.Left, 0, nil);
+ SetWindowOrgEx(Canvas.Handle, Window.Left, 0, nil);
R.Bottom := PaintInfo.Node.NodeHeight;
end;
// Set the origin of the canvas' brush. This depends on the node heights.
@@ -28671,7 +28683,7 @@ begin
{$ifdef DEBUG_VTV}Logger.Send([lcPaintDetails],'TargetRect',TargetRect);{$endif}
{$ifdef DEBUG_VTV}Logger.Send([lcPaintDetails],'NodeBitmap Width: %d Height: %d',[NodeBitmap.Width,NodeBitmap.Height]);{$endif}
// Call back application/descendants whether they want to erase this area.
- SetWindowOrgEx(NodeBitmap.Canvas.Handle,{$ifndef Windows}-{$endif}Target.X, 0, nil);
+ SetWindowOrgEx(NodeBitmap.Canvas.Handle, Target.X, 0, nil);
if not DoPaintBackground(NodeBitmap.Canvas, TargetRect) then
begin
if UseBackground then
@@ -30634,9 +30646,13 @@ begin
// This does not harm formatting as single line control, if we don't use word wrapping.
with Params do
begin
- Style := Style or ES_MULTILINE;
+ //todo: delphi uses Multiline for all
+ //Style := Style or ES_MULTILINE;
if vsMultiline in FLink.FNode.States then
+ begin
Style := Style and not (ES_AUTOHSCROLL or WS_HSCROLL) or WS_VSCROLL or ES_AUTOVSCROLL;
+ Style := Style or ES_MULTILINE;
+ end;
if tsUseThemes in FLink.FTree.FStates then
begin
Style := Style and not WS_BORDER;
@@ -30852,8 +30868,8 @@ constructor TCustomVirtualStringTree.Create(AOwner: TComponent);
begin
inherited;
-
- FDefaultText := 'Node';
+ if (Owner = nil) or (([csReading, csDesigning] * Owner.ComponentState) = [csDesigning]) then
+ FDefaultText := 'Node';
FInternalDataOffset := AllocateInternalDataArea(SizeOf(Cardinal));
end;
diff --git a/components/virtualtreeview-new/trunk/demos/advanced/Advanced.lpi b/components/virtualtreeview-new/trunk/demos/advanced/Advanced.lpi
index ad326dd7c..52cd2bde2 100644
--- a/components/virtualtreeview-new/trunk/demos/advanced/Advanced.lpi
+++ b/components/virtualtreeview-new/trunk/demos/advanced/Advanced.lpi
@@ -13,7 +13,7 @@
-
+
@@ -150,8 +150,13 @@
-
+
+
+
+
+
+
diff --git a/components/virtualtreeview-new/trunk/demos/dataarray/Main.lfm b/components/virtualtreeview-new/trunk/demos/dataarray/Main.lfm
index b00d20910..f61f88d9b 100644
--- a/components/virtualtreeview-new/trunk/demos/dataarray/Main.lfm
+++ b/components/virtualtreeview-new/trunk/demos/dataarray/Main.lfm
@@ -1,40 +1,41 @@
object Form1: TForm1
Left = 188
- Height = 437
+ Height = 434
Top = 104
- Width = 612
- ActiveControl = Button1
+ Width = 648
+ ActiveControl = MyTree
Caption = 'Form1'
- ClientHeight = 437
- ClientWidth = 612
+ ClientHeight = 434
+ ClientWidth = 648
Font.Height = -11
Font.Name = 'MS Sans Serif'
OnClose = FormClose
OnCreate = FormCreate
- LCLVersion = '0.9.27'
+ Position = poScreenCenter
+ LCLVersion = '0.9.29'
object Label1: TLabel
- Left = 207
+ Left = 224
Height = 14
- Top = 351
- Width = 149
+ Top = 348
+ Width = 174
Anchors = [akRight, akBottom]
- Caption = 'Array data of the clicked node'
+ Caption = 'Array data of the clicked node:'
ParentColor = False
end
object Label2: TLabel
- Left = 367
+ Left = 224
Height = 14
- Top = 335
- Width = 222
+ Top = 382
+ Width = 256
Anchors = [akRight, akBottom]
Caption = 'Find and show the node by specific array index'
ParentColor = False
end
object Label3: TLabel
- Left = 367
+ Left = 224
Height = 14
- Top = 351
- Width = 237
+ Top = 398
+ Width = 274
Anchors = [akRight, akBottom]
Caption = 'Type index to get related tree node on the screen:'
ParentColor = False
@@ -42,7 +43,7 @@ object Form1: TForm1
object Button1: TButton
Left = 8
Height = 25
- Top = 342
+ Top = 344
Width = 83
Anchors = [akLeft, akBottom]
BorderSpacing.InnerBorder = 4
@@ -53,7 +54,7 @@ object Form1: TForm1
object btnDelete: TButton
Left = 96
Height = 25
- Top = 342
+ Top = 344
Width = 97
Anchors = [akLeft, akBottom]
BorderSpacing.InnerBorder = 4
@@ -62,18 +63,21 @@ object Form1: TForm1
TabOrder = 1
end
object Edit1: TEdit
- Left = 208
- Height = 21
- Top = 376
- Width = 153
- Anchors = [akRight, akBottom]
+ AnchorSideLeft.Control = Label1
+ AnchorSideLeft.Side = asrBottom
+ Left = 402
+ Height = 23
+ Top = 344
+ Width = 170
+ Anchors = [akLeft, akBottom]
+ BorderSpacing.Left = 4
ReadOnly = True
TabOrder = 2
end
object btnCleanAll: TButton
Left = 56
Height = 25
- Top = 374
+ Top = 376
Width = 75
Anchors = [akLeft, akBottom]
BorderSpacing.InnerBorder = 4
@@ -82,25 +86,29 @@ object Form1: TForm1
TabOrder = 3
end
object Edit2: TEdit
- Left = 368
- Height = 21
- Top = 378
+ AnchorSideLeft.Control = Label3
+ AnchorSideLeft.Side = asrBottom
+ Left = 502
+ Height = 23
+ Top = 394
Width = 97
- Anchors = [akRight, akBottom]
+ Anchors = [akLeft, akBottom]
+ BorderSpacing.Left = 4
OnChange = Edit2Change
TabOrder = 4
end
object MyTree: TVirtualStringTree
Left = 3
- Height = 321
+ Height = 326
Top = 8
- Width = 605
+ Width = 641
Anchors = [akTop, akLeft, akRight, akBottom]
AutoScrollDelay = 1
- BorderStyle = bsSingle
DefaultText = 'Node'
+ Header.AutoSizeIndex = 0
Header.Columns = <
item
+ Position = 0
Text = 'Text'
Width = 150
end
@@ -115,6 +123,7 @@ object Form1: TForm1
Text = 'Random'
Width = 100
end>
+ Header.DefaultHeight = 17
Header.Font.Height = -11
Header.Font.Name = 'MS Sans Serif'
Header.Options = [hoColumnResize, hoDblClickResize, hoDrag, hoShowSortGlyphs, hoVisible]
diff --git a/components/virtualtreeview-new/trunk/demos/dataarray/dataarray.lpi b/components/virtualtreeview-new/trunk/demos/dataarray/dataarray.lpi
index f20be8e0b..c1df9ec15 100644
--- a/components/virtualtreeview-new/trunk/demos/dataarray/dataarray.lpi
+++ b/components/virtualtreeview-new/trunk/demos/dataarray/dataarray.lpi
@@ -13,11 +13,10 @@
-
+
-
@@ -52,8 +51,13 @@
-
+
+
+
+
+
+
diff --git a/components/virtualtreeview-new/trunk/demos/images/Unit1.lfm b/components/virtualtreeview-new/trunk/demos/images/Unit1.lfm
index b3e5f15c9..ccfbdff00 100644
--- a/components/virtualtreeview-new/trunk/demos/images/Unit1.lfm
+++ b/components/virtualtreeview-new/trunk/demos/images/Unit1.lfm
@@ -10,10 +10,12 @@ object Form1: TForm1
Font.Height = -11
Font.Name = 'MS Sans Serif'
OnCreate = FormCreate
- LCLVersion = '0.9.27'
+ LCLVersion = '0.9.29'
object VST1: TVirtualStringTree
Cursor = 63
+ Left = 0
Height = 440
+ Top = 0
Width = 500
Align = alClient
CheckImageKind = ckXP
@@ -22,10 +24,12 @@ object Form1: TForm1
DragMode = dmAutomatic
DragOperations = [doCopy, doMove, doLink]
DrawSelectionMode = smBlendedRectangle
+ Header.AutoSizeIndex = 0
Header.Columns = <
item
Hint = 'Glavna kolona'
ImageIndex = 0
+ Position = 0
Text = 'Main'
Width = 200
end
@@ -46,6 +50,7 @@ object Form1: TForm1
Text = 'Percent'
Width = 150
end>
+ Header.DefaultHeight = 17
Header.Font.Height = -11
Header.Font.Name = 'MS Sans Serif'
Header.Height = 24
diff --git a/components/virtualtreeview-new/trunk/demos/images/images.lpi b/components/virtualtreeview-new/trunk/demos/images/images.lpi
index 9915e1b55..ad9fa9817 100644
--- a/components/virtualtreeview-new/trunk/demos/images/images.lpi
+++ b/components/virtualtreeview-new/trunk/demos/images/images.lpi
@@ -13,11 +13,10 @@
-
+
-
@@ -43,17 +42,22 @@
+
-
-
+
+
+
+
+
+
diff --git a/components/virtualtreeview-new/trunk/demos/images/images.lpr b/components/virtualtreeview-new/trunk/demos/images/images.lpr
index ba4163da5..aebfdc31a 100644
--- a/components/virtualtreeview-new/trunk/demos/images/images.lpr
+++ b/components/virtualtreeview-new/trunk/demos/images/images.lpr
@@ -2,7 +2,7 @@ program images;
{$mode objfpc}{$H+}
-{$define DEBUG_VTV}
+{.$define DEBUG_VTV}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
diff --git a/components/virtualtreeview-new/trunk/demos/mininal/minimal_lcl.lpi b/components/virtualtreeview-new/trunk/demos/mininal/minimal_lcl.lpi
index 6edf1824d..ce4efeeee 100644
--- a/components/virtualtreeview-new/trunk/demos/mininal/minimal_lcl.lpi
+++ b/components/virtualtreeview-new/trunk/demos/mininal/minimal_lcl.lpi
@@ -17,7 +17,6 @@
-
diff --git a/components/virtualtreeview-new/trunk/demos/objects/mvcdemo.lpi b/components/virtualtreeview-new/trunk/demos/objects/mvcdemo.lpi
index 373102493..4334fef45 100644
--- a/components/virtualtreeview-new/trunk/demos/objects/mvcdemo.lpi
+++ b/components/virtualtreeview-new/trunk/demos/objects/mvcdemo.lpi
@@ -2,10 +2,11 @@
-
+
+
@@ -16,7 +17,6 @@
-
@@ -45,11 +45,10 @@
+
-
-
diff --git a/components/virtualtreeview-new/trunk/demos/unicode/unicode.lpi b/components/virtualtreeview-new/trunk/demos/unicode/unicode.lpi
index 47a3c1b37..18c0f8cc6 100644
--- a/components/virtualtreeview-new/trunk/demos/unicode/unicode.lpi
+++ b/components/virtualtreeview-new/trunk/demos/unicode/unicode.lpi
@@ -11,7 +11,6 @@
-
@@ -26,7 +25,7 @@
-
+
@@ -46,8 +45,8 @@
-
+
diff --git a/components/virtualtreeview-new/trunk/demos/vtbasic/VTNoData.lfm b/components/virtualtreeview-new/trunk/demos/vtbasic/VTNoData.lfm
index 0df6ac7ca..7647d98bd 100644
--- a/components/virtualtreeview-new/trunk/demos/vtbasic/VTNoData.lfm
+++ b/components/virtualtreeview-new/trunk/demos/vtbasic/VTNoData.lfm
@@ -3,7 +3,7 @@ object frmVTNoData: TfrmVTNoData
Height = 346
Top = 154
Width = 401
- ActiveControl = VT
+ ActiveControl = Panel1
Caption = 'Basic VT as a Tree (no node data used)'
ClientHeight = 346
ClientWidth = 401
@@ -14,9 +14,11 @@ object frmVTNoData: TfrmVTNoData
OnCreate = FormCreate
OnDestroy = FormDestroy
Position = poDefaultPosOnly
- LCLVersion = '0.9.27'
+ LCLVersion = '0.9.29'
object Panel1: TPanel
+ Left = 0
Height = 346
+ Top = 0
Width = 401
Align = alClient
BevelOuter = bvNone
@@ -31,9 +33,10 @@ object frmVTNoData: TfrmVTNoData
Top = 7
Width = 387
Align = alClient
- BorderStyle = bsSingle
DefaultText = 'Node'
+ Header.AutoSizeIndex = 0
Header.Columns = <>
+ Header.DefaultHeight = 17
Header.Font.Height = -11
Header.Font.Name = 'MS Shell Dlg 2'
Header.MainColumn = -1
@@ -64,7 +67,7 @@ object frmVTNoData: TfrmVTNoData
Left = 9
Height = 14
Top = 9
- Width = 76
+ Width = 82
Alignment = taCenter
Caption = 'VT.TreeOptions'
Font.Color = clRed
@@ -75,27 +78,27 @@ object frmVTNoData: TfrmVTNoData
end
object chkCheckBoxes: TCheckBox
Left = 180
- Height = 17
+ Height = 22
Top = 7
- Width = 81
+ Width = 93
Caption = 'Check Boxes'
OnClick = chkCheckBoxesClick
TabOrder = 0
end
object chkFullExpand: TCheckBox
Left = 100
- Height = 17
+ Height = 22
Top = 7
- Width = 75
+ Width = 86
Caption = 'Full Expand'
OnClick = chkFullExpandClick
TabOrder = 1
end
object chkShowLevel: TCheckBox
Left = 271
- Height = 17
+ Height = 22
Top = 7
- Width = 74
+ Width = 86
Caption = 'Show Level'
OnClick = chkShowLevelClick
TabOrder = 2
diff --git a/components/virtualtreeview-new/trunk/demos/vtbasic/VTNoData.pas b/components/virtualtreeview-new/trunk/demos/vtbasic/VTNoData.pas
index 0d4f76ef2..da881104f 100644
--- a/components/virtualtreeview-new/trunk/demos/vtbasic/VTNoData.pas
+++ b/components/virtualtreeview-new/trunk/demos/vtbasic/VTNoData.pas
@@ -167,7 +167,9 @@ implementation
'VariableNodeHeight',
'FullRowDrag',
'NodeHeightResize',
- 'NodeHeightDblClickResize'
+ 'NodeHeightDblClickResize',
+ 'EditOnClick',
+ 'EditOnDblClick'
);
aPaintOpts : array[0..Ord(High(TVTPaintOption ))] of string[25] =
@@ -191,7 +193,8 @@ implementation
'UseBlendedSelection', // Enable alpha blending for node selections.
'StaticBackground',
'ChildrenAbove',
- 'FixedIndent'
+ 'FixedIndent',
+ 'UseExplorerTheme'
);
aSelOpts : array[0..Ord(High(TVTSelectionOption))] of string[25] =
diff --git a/components/virtualtreeview-new/trunk/demos/vtbasic/vtbasic.lpi b/components/virtualtreeview-new/trunk/demos/vtbasic/vtbasic.lpi
index 004285740..a11f312e4 100644
--- a/components/virtualtreeview-new/trunk/demos/vtbasic/vtbasic.lpi
+++ b/components/virtualtreeview-new/trunk/demos/vtbasic/vtbasic.lpi
@@ -17,7 +17,6 @@
-
@@ -50,9 +49,9 @@
+
-
@@ -63,17 +62,17 @@
+
-
+
-
@@ -84,24 +83,24 @@
+
-
+
-
+
-
diff --git a/components/virtualtreeview-new/trunk/include/intf/gtk2/vtgraphicsi.inc b/components/virtualtreeview-new/trunk/include/intf/gtk2/vtgraphicsi.inc
index 848eef732..e675e37db 100644
--- a/components/virtualtreeview-new/trunk/include/intf/gtk2/vtgraphicsi.inc
+++ b/components/virtualtreeview-new/trunk/include/intf/gtk2/vtgraphicsi.inc
@@ -1,12 +1,12 @@
uses
- gtkdef, gdk2, GTKProc, Cairo;
+ gtk2def, gdk2, GTK2Proc, Cairo;
function gdk_cairo_create(drawable: PGdkDrawable): Pcairo_t cdecl external gdklib;
procedure AlphaBlend(Source, Destination: HDC; const R: TRect; const Target: TPoint; Mode: TBlendMode; ConstantAlpha, Bias: Integer);
- function GetContext(GtkDC: TGtkDeviceContext): Pcairo_t;
+ function GetContext(GtkDC: TGtk2DeviceContext): Pcairo_t;
begin
Result := nil;
if (GtkDC <> nil) and (GtkDC.Drawable <> nil) then
@@ -14,8 +14,8 @@ procedure AlphaBlend(Source, Destination: HDC; const R: TRect; const Target: TPo
end;
var
- SrcDC: TGtkDeviceContext absolute Source;
- DestDC: TGtkDeviceContext absolute Destination;
+ SrcDC: TGtk2DeviceContext absolute Source;
+ DestDC: TGtk2DeviceContext absolute Destination;
SrcContext, DestContext: Pcairo_t;
begin
case Mode of
diff --git a/components/virtualtreeview-new/trunk/virtualtreeview_package.lpk b/components/virtualtreeview-new/trunk/virtualtreeview_package.lpk
index 0cc434f14..8f8df5c8f 100644
--- a/components/virtualtreeview-new/trunk/virtualtreeview_package.lpk
+++ b/components/virtualtreeview-new/trunk/virtualtreeview_package.lpk
@@ -2,7 +2,7 @@
-
+
@@ -16,9 +16,9 @@
-
-
+
@@ -51,16 +51,13 @@
-
+
-
+
-
-
-
-
+