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 @@ - + - + - - - - +