mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-14 19:59:14 +02:00
VirtualTreeView: LCL scaling of various distance/size parameters (Indent, Margin, Spacing, DragWidth etc).
git-svn-id: trunk@59404 -
This commit is contained in:
parent
1ed37fa154
commit
450f82294e
@ -236,8 +236,13 @@ const
|
|||||||
|
|
||||||
DEFAULT_CHECK_WIDTH = 16;
|
DEFAULT_CHECK_WIDTH = 16;
|
||||||
DEFAULT_COLUMN_WIDTH = 50;
|
DEFAULT_COLUMN_WIDTH = 50;
|
||||||
|
DEFAULT_DRAG_HEIGHT = 350;
|
||||||
|
DEFAULT_DRAG_WIDTH = 200;
|
||||||
DEFAULT_HEADER_HEIGHT = 19;
|
DEFAULT_HEADER_HEIGHT = 19;
|
||||||
|
DEFAULT_INDENT = 18;
|
||||||
|
DEFAULT_MARGIN = 4;
|
||||||
DEFAULT_NODE_HEIGHT = 18;
|
DEFAULT_NODE_HEIGHT = 18;
|
||||||
|
DEFAULT_SPACING = 3;
|
||||||
|
|
||||||
var // Clipboard format IDs used in OLE drag'n drop and clipboard transfers.
|
var // Clipboard format IDs used in OLE drag'n drop and clipboard transfers.
|
||||||
CF_VIRTUALTREE,
|
CF_VIRTUALTREE,
|
||||||
@ -988,6 +993,8 @@ type
|
|||||||
function IsBiDiModeStored: Boolean;
|
function IsBiDiModeStored: Boolean;
|
||||||
function IsCaptionAlignmentStored: Boolean;
|
function IsCaptionAlignmentStored: Boolean;
|
||||||
function IsColorStored: Boolean;
|
function IsColorStored: Boolean;
|
||||||
|
function IsMarginStored: Boolean;
|
||||||
|
function IsSpacingStored: Boolean;
|
||||||
function IsWidthStored: Boolean;
|
function IsWidthStored: Boolean;
|
||||||
procedure SetAlignment(const Value: TAlignment);
|
procedure SetAlignment(const Value: TAlignment);
|
||||||
procedure SetBiDiMode(Value: TBiDiMode);
|
procedure SetBiDiMode(Value: TBiDiMode);
|
||||||
@ -1047,12 +1054,12 @@ type
|
|||||||
property Hint: TTranslateString read FHint write FHint stored False;
|
property Hint: TTranslateString read FHint write FHint stored False;
|
||||||
property ImageIndex: TImageIndex read FImageIndex write SetImageIndex default -1;
|
property ImageIndex: TImageIndex read FImageIndex write SetImageIndex default -1;
|
||||||
property Layout: TVTHeaderColumnLayout read FLayout write SetLayout default blGlyphLeft;
|
property Layout: TVTHeaderColumnLayout read FLayout write SetLayout default blGlyphLeft;
|
||||||
property Margin: Integer read FMargin write SetMargin default 4;
|
property Margin: Integer read FMargin write SetMargin stored IsMarginStored;
|
||||||
property MaxWidth: Integer read FMaxWidth write SetMaxWidth default 10000;
|
property MaxWidth: Integer read FMaxWidth write SetMaxWidth default 10000;
|
||||||
property MinWidth: Integer read FMinWidth write SetMinWidth default 10;
|
property MinWidth: Integer read FMinWidth write SetMinWidth default 10;
|
||||||
property Options: TVTColumnOptions read FOptions write SetOptions default DefaultColumnOptions;
|
property Options: TVTColumnOptions read FOptions write SetOptions default DefaultColumnOptions;
|
||||||
property Position: TColumnPosition read FPosition write SetPosition;
|
property Position: TColumnPosition read FPosition write SetPosition;
|
||||||
property Spacing: Integer read FSpacing write SetSpacing default 3;
|
property Spacing: Integer read FSpacing write SetSpacing stored IsSpacingStored;
|
||||||
property Style: TVirtualTreeColumnStyle read FStyle write SetStyle default vsText;
|
property Style: TVirtualTreeColumnStyle read FStyle write SetStyle default vsText;
|
||||||
property Tag: NativeInt read FTag write FTag default 0;
|
property Tag: NativeInt read FTag write FTag default 0;
|
||||||
property Text: TTranslateString read GetText write SetText;
|
property Text: TTranslateString read GetText write SetText;
|
||||||
@ -2411,8 +2418,14 @@ type
|
|||||||
procedure InitRootNode(OldSize: Cardinal = 0);
|
procedure InitRootNode(OldSize: Cardinal = 0);
|
||||||
procedure InterruptValidation;
|
procedure InterruptValidation;
|
||||||
function IsDefaultNodeHeightStored: Boolean;
|
function IsDefaultNodeHeightStored: Boolean;
|
||||||
|
function IsDragHeightStored: Boolean;
|
||||||
|
function IsDragWidthStored: Boolean;
|
||||||
function IsFirstVisibleChild(Parent, Node: PVirtualNode): Boolean;
|
function IsFirstVisibleChild(Parent, Node: PVirtualNode): Boolean;
|
||||||
|
function IsIndentStored: Boolean;
|
||||||
function IsLastVisibleChild(Parent, Node: PVirtualNode): Boolean;
|
function IsLastVisibleChild(Parent, Node: PVirtualNode): Boolean;
|
||||||
|
function IsMarginStored: Boolean;
|
||||||
|
function IsSelectionCurveRadiusStored: Boolean;
|
||||||
|
function IsTextMarginStored: Boolean;
|
||||||
//lcl
|
//lcl
|
||||||
procedure LoadPanningCursors;
|
procedure LoadPanningCursors;
|
||||||
function MakeNewNode: PVirtualNode;
|
function MakeNewNode: PVirtualNode;
|
||||||
@ -2829,13 +2842,13 @@ type
|
|||||||
property DefaultHintKind: TVTHintKind read GetDefaultHintKind;
|
property DefaultHintKind: TVTHintKind read GetDefaultHintKind;
|
||||||
property DefaultNodeHeight: Cardinal read FDefaultNodeHeight write SetDefaultNodeHeight stored IsDefaultNodeHeightStored;
|
property DefaultNodeHeight: Cardinal read FDefaultNodeHeight write SetDefaultNodeHeight stored IsDefaultNodeHeightStored;
|
||||||
property DefaultPasteMode: TVTNodeAttachMode read FDefaultPasteMode write FDefaultPasteMode default amAddChildLast;
|
property DefaultPasteMode: TVTNodeAttachMode read FDefaultPasteMode write FDefaultPasteMode default amAddChildLast;
|
||||||
property DragHeight: Integer read FDragHeight write FDragHeight default 350;
|
property DragHeight: Integer read FDragHeight write FDragHeight stored IsDragHeightStored;
|
||||||
property DragImageKind: TVTDragImageKind read FDragImageKind write FDragImageKind default diComplete;
|
property DragImageKind: TVTDragImageKind read FDragImageKind write FDragImageKind default diComplete;
|
||||||
property DragOperations: TDragOperations read FDragOperations write FDragOperations default [doCopy, doMove];
|
property DragOperations: TDragOperations read FDragOperations write FDragOperations default [doCopy, doMove];
|
||||||
property DragSelection: TNodeArray read FDragSelection;
|
property DragSelection: TNodeArray read FDragSelection;
|
||||||
property LastDragEffect: LongWord read FLastDragEffect;
|
property LastDragEffect: LongWord read FLastDragEffect;
|
||||||
property DragType: TVTDragType read FDragType write FDragType default dtOLE;
|
property DragType: TVTDragType read FDragType write FDragType default dtOLE;
|
||||||
property DragWidth: Integer read FDragWidth write FDragWidth default 200;
|
property DragWidth: Integer read FDragWidth write FDragWidth stored IsDragWidthStored;
|
||||||
property DrawSelectionMode: TVTDrawSelectionMode read FDrawSelectionMode write FDrawSelectionMode
|
property DrawSelectionMode: TVTDrawSelectionMode read FDrawSelectionMode write FDrawSelectionMode
|
||||||
default smDottedRectangle;
|
default smDottedRectangle;
|
||||||
property EditColumn: TColumnIndex read FEditColumn write FEditColumn;
|
property EditColumn: TColumnIndex read FEditColumn write FEditColumn;
|
||||||
@ -2851,13 +2864,13 @@ type
|
|||||||
property IncrementalSearchDirection: TVTSearchDirection read FSearchDirection write FSearchDirection default sdForward;
|
property IncrementalSearchDirection: TVTSearchDirection read FSearchDirection write FSearchDirection default sdForward;
|
||||||
property IncrementalSearchStart: TVTSearchStart read FSearchStart write FSearchStart default ssFocusedNode;
|
property IncrementalSearchStart: TVTSearchStart read FSearchStart write FSearchStart default ssFocusedNode;
|
||||||
property IncrementalSearchTimeout: Cardinal read FSearchTimeout write FSearchTimeout default 1000;
|
property IncrementalSearchTimeout: Cardinal read FSearchTimeout write FSearchTimeout default 1000;
|
||||||
property Indent: Cardinal read FIndent write SetIndent default 18;
|
property Indent: Cardinal read FIndent write SetIndent stored IsIndentStored;
|
||||||
property LastClickPos: TPoint read FLastClickPos write FLastClickPos;
|
property LastClickPos: TPoint read FLastClickPos write FLastClickPos;
|
||||||
property LastDropMode: TDropMode read FLastDropMode write FLastDropMode;
|
property LastDropMode: TDropMode read FLastDropMode write FLastDropMode;
|
||||||
property LastHintRect: TRect read FLastHintRect write FLastHintRect;
|
property LastHintRect: TRect read FLastHintRect write FLastHintRect;
|
||||||
property LineMode: TVTLineMode read FLineMode write SetLineMode default lmNormal;
|
property LineMode: TVTLineMode read FLineMode write SetLineMode default lmNormal;
|
||||||
property LineStyle: TVTLineStyle read FLineStyle write SetLineStyle default lsDotted;
|
property LineStyle: TVTLineStyle read FLineStyle write SetLineStyle default lsDotted;
|
||||||
property Margin: Integer read FMargin write SetMargin default 4;
|
property Margin: Integer read FMargin write SetMargin stored IsMarginStored;
|
||||||
property NextNodeToSelect: PVirtualNode read FNextNodeToSelect; // Next tree node that we would like to select if the current one gets deleted
|
property NextNodeToSelect: PVirtualNode read FNextNodeToSelect; // Next tree node that we would like to select if the current one gets deleted
|
||||||
property NodeAlignment: TVTNodeAlignment read FNodeAlignment write SetNodeAlignment default naProportional;
|
property NodeAlignment: TVTNodeAlignment read FNodeAlignment write SetNodeAlignment default naProportional;
|
||||||
property NodeDataSize: Integer read FNodeDataSize write SetNodeDataSize default -1;
|
property NodeDataSize: Integer read FNodeDataSize write SetNodeDataSize default -1;
|
||||||
@ -2871,9 +2884,9 @@ type
|
|||||||
property RootNodeCount: Cardinal read GetRootNodeCount write SetRootNodeCount default 0;
|
property RootNodeCount: Cardinal read GetRootNodeCount write SetRootNodeCount default 0;
|
||||||
property ScrollBarOptions: TScrollBarOptions read FScrollBarOptions write SetScrollBarOptions;
|
property ScrollBarOptions: TScrollBarOptions read FScrollBarOptions write SetScrollBarOptions;
|
||||||
property SelectionBlendFactor: Byte read FSelectionBlendFactor write FSelectionBlendFactor default 128;
|
property SelectionBlendFactor: Byte read FSelectionBlendFactor write FSelectionBlendFactor default 128;
|
||||||
property SelectionCurveRadius: Cardinal read FSelectionCurveRadius write SetSelectionCurveRadius default 0;
|
property SelectionCurveRadius: Cardinal read FSelectionCurveRadius write SetSelectionCurveRadius stored IsSelectionCurveRadiusStored;
|
||||||
property StateImages: TCustomImageList read FStateImages write SetStateImages;
|
property StateImages: TCustomImageList read FStateImages write SetStateImages;
|
||||||
property TextMargin: Integer read FTextMargin write SetTextMargin default 4;
|
property TextMargin: Integer read FTextMargin write SetTextMargin stored IsTextMarginStored;
|
||||||
property TotalInternalDataSize: Cardinal read FTotalInternalDataSize;
|
property TotalInternalDataSize: Cardinal read FTotalInternalDataSize;
|
||||||
property TreeOptions: TCustomVirtualTreeOptions read FOptions write SetOptions;
|
property TreeOptions: TCustomVirtualTreeOptions read FOptions write SetOptions;
|
||||||
property WantTabs: Boolean read FWantTabs write FWantTabs default False;
|
property WantTabs: Boolean read FWantTabs write FWantTabs default False;
|
||||||
@ -6786,8 +6799,6 @@ begin
|
|||||||
FMinWidth := 10;
|
FMinWidth := 10;
|
||||||
FMaxWidth := 10000;
|
FMaxWidth := 10000;
|
||||||
FImageIndex := -1;
|
FImageIndex := -1;
|
||||||
FMargin := 4;
|
|
||||||
FSpacing := 3;
|
|
||||||
//FText := '';
|
//FText := '';
|
||||||
FOptions := DefaultColumnOptions;
|
FOptions := DefaultColumnOptions;
|
||||||
FAlignment := taLeftJustify;
|
FAlignment := taLeftJustify;
|
||||||
@ -6804,6 +6815,14 @@ begin
|
|||||||
|
|
||||||
inherited Create(Collection);
|
inherited Create(Collection);
|
||||||
|
|
||||||
|
{$IF LCL_FullVersion >= 1080000}
|
||||||
|
FMargin := Owner.Header.TreeView.Scale96ToFont(DEFAULT_MARGIN);
|
||||||
|
FSpacing := Owner.Header.TreeView.Scale96ToFont(DEFAULT_SPACING);
|
||||||
|
{$ELSE}
|
||||||
|
FMargin := DEFAULT_MARGIN;
|
||||||
|
FSpacing := DEFAULT_SPACING;
|
||||||
|
{$IFEND}
|
||||||
|
|
||||||
FWidth := Owner.FDefaultWidth;
|
FWidth := Owner.FDefaultWidth;
|
||||||
FLastWidth := Owner.FDefaultWidth;
|
FLastWidth := Owner.FDefaultWidth;
|
||||||
|
|
||||||
@ -6920,6 +6939,28 @@ end;
|
|||||||
|
|
||||||
//----------------------------------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
function TVirtualTreeColumn.IsMarginStored: Boolean;
|
||||||
|
begin
|
||||||
|
{$IF LCL_FullVersion >= 1080000}
|
||||||
|
Result := FMargin <> Owner.Header.TreeView.Scale96ToFont(DEFAULT_MARGIN);
|
||||||
|
{$ELSE}
|
||||||
|
Result := FMargin <> DEFAULT_MARGIN;
|
||||||
|
{$IFEND}
|
||||||
|
end;
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
function TVirtualTreeColumn.IsSpacingStored: Boolean;
|
||||||
|
begin
|
||||||
|
{$IF LCL_FullVersion >= 1080000}
|
||||||
|
Result := FSpacing <> Owner.Header.TreeView.Scale96ToFont(DEFAULT_SPACING);
|
||||||
|
{$ELSE}
|
||||||
|
Result := FSpacing <> DEFAULT_SPACING;
|
||||||
|
{$IFEND}
|
||||||
|
end;
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
function TVirtualTreeColumn.IsWidthStored: Boolean;
|
function TVirtualTreeColumn.IsWidthStored: Boolean;
|
||||||
begin
|
begin
|
||||||
Result := FWidth <> Owner.DefaultWidth;
|
Result := FWidth <> Owner.DefaultWidth;
|
||||||
@ -11302,6 +11343,10 @@ begin
|
|||||||
col := Columns[i];
|
col := Columns[i];
|
||||||
if col.IsWidthStored then
|
if col.IsWidthStored then
|
||||||
col.Width := Round(col.Width * AXProportion);
|
col.Width := Round(col.Width * AXProportion);
|
||||||
|
if col.IsSpacingStored then
|
||||||
|
col.Spacing := Round(col.Spacing * AXProportion);
|
||||||
|
if col.IsMarginStored then
|
||||||
|
col.Margin := Round(col.Margin * AXProportion);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
{$IFEND}
|
{$IFEND}
|
||||||
@ -12150,12 +12195,20 @@ begin
|
|||||||
|
|
||||||
{$IF LCL_FullVersion >= 1080000}
|
{$IF LCL_FullVersion >= 1080000}
|
||||||
FDefaultNodeHeight := Scale96ToFont(DEFAULT_NODE_HEIGHT);
|
FDefaultNodeHeight := Scale96ToFont(DEFAULT_NODE_HEIGHT);
|
||||||
|
FIndent := Scale96ToFont(DEFAULT_INDENT);
|
||||||
|
FMargin := Scale96ToFont(DEFAULT_MARGIN);
|
||||||
|
FTextMargin := Scale96ToFont(DEFAULT_MARGIN);
|
||||||
|
FDragHeight := Scale96ToFont(DEFAULT_DRAG_HEIGHT);
|
||||||
|
FDragWidth := Scale96ToFont(DEFAULT_DRAG_WIDTH);
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
FDefaultNodeHeight := DEFAULT_NODE_HEIGHT;
|
FDefaultNodeHeight := DEFAULT_NODE_HEIGHT;
|
||||||
|
FIndent := DEFAULT_INDENT;
|
||||||
|
FMargin := DEFAULT_MARGIN;
|
||||||
|
FTextMargin := DEFAULT_MARGIN;
|
||||||
|
FDragHeight := DEFAULT_DRAG_HEIGHT;
|
||||||
|
FDragWidth := DEFAULT_DRAG_WIDTH;
|
||||||
{$IFEND}
|
{$IFEND}
|
||||||
|
|
||||||
FIndent := 18;
|
|
||||||
|
|
||||||
FPlusBM := TBitmap.Create;
|
FPlusBM := TBitmap.Create;
|
||||||
FHotPlusBM := TBitmap.Create;
|
FHotPlusBM := TBitmap.Create;
|
||||||
FMinusBM := TBitmap.Create;
|
FMinusBM := TBitmap.Create;
|
||||||
@ -12187,12 +12240,8 @@ begin
|
|||||||
FBackground := TPicture.Create;
|
FBackground := TPicture.Create;
|
||||||
|
|
||||||
FDefaultPasteMode := amAddChildLast;
|
FDefaultPasteMode := amAddChildLast;
|
||||||
FMargin := 4;
|
|
||||||
FTextMargin := 4;
|
|
||||||
FLastDragEffect := DROPEFFECT_NONE;
|
FLastDragEffect := DROPEFFECT_NONE;
|
||||||
FDragType := dtOLE;
|
FDragType := dtOLE;
|
||||||
FDragHeight := 350;
|
|
||||||
FDragWidth := 200;
|
|
||||||
|
|
||||||
FColors := TVTColors.Create(Self);
|
FColors := TVTColors.Create(Self);
|
||||||
FEditDelay := 1000;
|
FEditDelay := 1000;
|
||||||
@ -13877,6 +13926,68 @@ end;
|
|||||||
|
|
||||||
//----------------------------------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
function TBaseVirtualTree.IsDragHeightStored: Boolean;
|
||||||
|
begin
|
||||||
|
{$IF LCL_FullVersion >= 1080000}
|
||||||
|
Result := FDragHeight <> Scale96ToFont(DEFAULT_DRAG_HEIGHT);
|
||||||
|
{$ELSE}
|
||||||
|
Result := FDragHeight <> DEFAULT_DRAG_HEIGHT;
|
||||||
|
{$IFEND}
|
||||||
|
end;
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
function TBaseVirtualTree.IsDragWidthStored: Boolean;
|
||||||
|
begin
|
||||||
|
{$IF LCL_FullVersion >= 1080000}
|
||||||
|
Result := FDragWidth <> Scale96ToFont(DEFAULT_DRAG_WIDTH);
|
||||||
|
{$ELSE}
|
||||||
|
Result := FDragWidth <> DEFAULT_DRAG_WIDTH;
|
||||||
|
{$IFEND}
|
||||||
|
end;
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
function TBaseVirtualTree.IsIndentStored: Boolean;
|
||||||
|
begin
|
||||||
|
{$IF LCL_FullVersion >= 1080000}
|
||||||
|
Result := FIndent <> Scale96ToFont(DEFAULT_INDENT);
|
||||||
|
{$ELSE}
|
||||||
|
Result := FIndent <> DEFAULT_INDENT;
|
||||||
|
{$IFEND}
|
||||||
|
end;
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
function TBaseVirtualTree.IsMarginStored: Boolean;
|
||||||
|
begin
|
||||||
|
{$IF LCL_FullVersion >= 1080000}
|
||||||
|
Result := FMargin <> Scale96ToFont(DEFAULT_MARGIN);
|
||||||
|
{$ELSE}
|
||||||
|
Result := FMargin <> DEFAULT_MARGIN;
|
||||||
|
{$IFEND}
|
||||||
|
end;
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
function TBaseVirtualTree.IsSelectionCurveRadiusStored: Boolean;
|
||||||
|
begin
|
||||||
|
Result := FSelectionCurveRadius <> 0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
function TBaseVirtualTree.IsTextMarginStored: Boolean;
|
||||||
|
begin
|
||||||
|
{$IF LCL_FullVersion >= 1080000}
|
||||||
|
Result := FTextMargin <> Scale96ToFont(DEFAULT_MARGIN);
|
||||||
|
{$ELSE}
|
||||||
|
Result := FTextMargin <> DEFAULT_MARGIN;
|
||||||
|
{$IFEND}
|
||||||
|
end;
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
procedure TBaseVirtualTree.LoadPanningCursors;
|
procedure TBaseVirtualTree.LoadPanningCursors;
|
||||||
|
|
||||||
var
|
var
|
||||||
@ -26466,6 +26577,18 @@ begin
|
|||||||
try
|
try
|
||||||
if IsDefaultNodeHeightStored then
|
if IsDefaultNodeHeightStored then
|
||||||
FDefaultNodeHeight := Round(FDefaultNodeHeight * AYProportion);
|
FDefaultNodeHeight := Round(FDefaultNodeHeight * AYProportion);
|
||||||
|
if IsIndentStored then
|
||||||
|
FIndent := Round(FIndent * AYProportion);
|
||||||
|
if IsMarginStored then
|
||||||
|
FMargin := Round(FMargin * AXProportion);
|
||||||
|
if IsTextMarginStored then
|
||||||
|
FTextMargin := Round(FTextMargin * AXProportion);
|
||||||
|
if IsSelectionCurveRadiusStored then
|
||||||
|
FSelectionCurveRadius := Round(FSelectionCurveRadius * AXProportion);
|
||||||
|
if IsDragHeightStored then
|
||||||
|
FDragHeight := Round(FDragHeight * AYProportion);
|
||||||
|
if IsDragWidthStored then
|
||||||
|
FDragWidth := Round(FDragWidth * AXProportion);
|
||||||
FHeader.AutoAdjustLayout(AXProportion, AYProportion);
|
FHeader.AutoAdjustLayout(AXProportion, AYProportion);
|
||||||
finally
|
finally
|
||||||
EnableAutoSizing;
|
EnableAutoSizing;
|
||||||
|
Loading…
Reference in New Issue
Block a user